Skip to content

Commit 89bf3bd

Browse files
committed
fix: Make package.json accept newer versions of libs, e.g. Expo (#886)
This PR fixes package.json in both expo and bare resource fetchers. - [ ] Yes - [x] No - [x] Bug fix (change which fixes an issue) - [ ] New feature (change which adds functionality) - [ ] Documentation update (improves or adds clarity to existing documentation) - [ ] Other (chores, tests, code style improvements etc.) - [x] iOS - [ ] Android * Run minimal app that utilizes this version of our library with expo 55 (pack react native executorch and expo resource fetchers into tgz and install in template app) and check if everything works correctly. * Run text to image example as this PR introduces changes in this package and check if everything works ok. <!-- Add screenshots here, if applicable --> Closes #882 - [x] I have performed a self-review of my code - [x] I have commented my code, particularly in hard-to-understand areas - [x] I have updated the documentation accordingly - [ ] My changes generate no new warnings <!-- Include any additional information, assumptions, or context that reviewers might need to understand this PR. -->
1 parent a305030 commit 89bf3bd

5 files changed

Lines changed: 72 additions & 22 deletions

File tree

docs/docs/06-api-reference/classes/TextToImageModule.md

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Class: TextToImageModule
22

3-
Defined in: [packages/react-native-executorch/src/modules/computer_vision/TextToImageModule.ts:14](https://github.com/software-mansion/react-native-executorch/blob/326d6344894d75625c600d5988666e215a32d466/packages/react-native-executorch/src/modules/computer_vision/TextToImageModule.ts#L14)
3+
Defined in: [packages/react-native-executorch/src/modules/computer_vision/TextToImageModule.ts:14](https://github.com/software-mansion/react-native-executorch/blob/a305030e7ac90325b5f5072ed4ef18e419f59d34/packages/react-native-executorch/src/modules/computer_vision/TextToImageModule.ts#L14)
44

55
Module for text-to-image generation tasks.
66

@@ -14,7 +14,7 @@ Module for text-to-image generation tasks.
1414

1515
> **new TextToImageModule**(`inferenceCallback?`): `TextToImageModule`
1616
17-
Defined in: [packages/react-native-executorch/src/modules/computer_vision/TextToImageModule.ts:22](https://github.com/software-mansion/react-native-executorch/blob/326d6344894d75625c600d5988666e215a32d466/packages/react-native-executorch/src/modules/computer_vision/TextToImageModule.ts#L22)
17+
Defined in: [packages/react-native-executorch/src/modules/computer_vision/TextToImageModule.ts:22](https://github.com/software-mansion/react-native-executorch/blob/a305030e7ac90325b5f5072ed4ef18e419f59d34/packages/react-native-executorch/src/modules/computer_vision/TextToImageModule.ts#L22)
1818

1919
Creates a new instance of `TextToImageModule` with optional callback on inference step.
2020

@@ -40,7 +40,7 @@ Optional callback function that receives the current step index during inference
4040

4141
> **nativeModule**: `any` = `null`
4242
43-
Defined in: [packages/react-native-executorch/src/modules/BaseModule.ts:8](https://github.com/software-mansion/react-native-executorch/blob/326d6344894d75625c600d5988666e215a32d466/packages/react-native-executorch/src/modules/BaseModule.ts#L8)
43+
Defined in: [packages/react-native-executorch/src/modules/BaseModule.ts:8](https://github.com/software-mansion/react-native-executorch/blob/a305030e7ac90325b5f5072ed4ef18e419f59d34/packages/react-native-executorch/src/modules/BaseModule.ts#L8)
4444

4545
Native module instance
4646

@@ -54,7 +54,7 @@ Native module instance
5454

5555
> **delete**(): `void`
5656
57-
Defined in: [packages/react-native-executorch/src/modules/BaseModule.ts:41](https://github.com/software-mansion/react-native-executorch/blob/326d6344894d75625c600d5988666e215a32d466/packages/react-native-executorch/src/modules/BaseModule.ts#L41)
57+
Defined in: [packages/react-native-executorch/src/modules/BaseModule.ts:41](https://github.com/software-mansion/react-native-executorch/blob/a305030e7ac90325b5f5072ed4ef18e419f59d34/packages/react-native-executorch/src/modules/BaseModule.ts#L41)
5858

5959
Unloads the model from memory.
6060

@@ -70,9 +70,9 @@ Unloads the model from memory.
7070

7171
### forward()
7272

73-
> **forward**(`input`, `imageSize`, `numSteps`, `seed?`): `Promise`\<`string`\>
73+
> **forward**(`input`, `imageSize?`, `numSteps?`, `seed?`): `Promise`\<`string`\>
7474
75-
Defined in: [packages/react-native-executorch/src/modules/computer_vision/TextToImageModule.ts:100](https://github.com/software-mansion/react-native-executorch/blob/326d6344894d75625c600d5988666e215a32d466/packages/react-native-executorch/src/modules/computer_vision/TextToImageModule.ts#L100)
75+
Defined in: [packages/react-native-executorch/src/modules/computer_vision/TextToImageModule.ts:100](https://github.com/software-mansion/react-native-executorch/blob/a305030e7ac90325b5f5072ed4ef18e419f59d34/packages/react-native-executorch/src/modules/computer_vision/TextToImageModule.ts#L100)
7676

7777
Runs the model to generate an image described by `input`, and conditioned by `seed`, performing `numSteps` inference steps.
7878
The resulting image, with dimensions `imageSize`×`imageSize` pixels, is returned as a base64-encoded string.
@@ -85,13 +85,13 @@ The resulting image, with dimensions `imageSize`×`imageSize` pixels, is returne
8585

8686
The text prompt to generate the image from.
8787

88-
##### imageSize
88+
##### imageSize?
8989

9090
`number` = `512`
9191

9292
The desired width and height of the output image in pixels.
9393

94-
##### numSteps
94+
##### numSteps?
9595

9696
`number` = `5`
9797

@@ -115,7 +115,7 @@ A Base64-encoded string representing the generated PNG image.
115115

116116
> `protected` **forwardET**(`inputTensor`): `Promise`\<[`TensorPtr`](../interfaces/TensorPtr.md)[]\>
117117
118-
Defined in: [packages/react-native-executorch/src/modules/BaseModule.ts:23](https://github.com/software-mansion/react-native-executorch/blob/326d6344894d75625c600d5988666e215a32d466/packages/react-native-executorch/src/modules/BaseModule.ts#L23)
118+
Defined in: [packages/react-native-executorch/src/modules/BaseModule.ts:23](https://github.com/software-mansion/react-native-executorch/blob/a305030e7ac90325b5f5072ed4ef18e419f59d34/packages/react-native-executorch/src/modules/BaseModule.ts#L23)
119119

120120
Runs the model's forward method with the given input tensors.
121121
It returns the output tensors that mimic the structure of output from ExecuTorch.
@@ -144,7 +144,7 @@ Array of output tensors.
144144

145145
> **getInputShape**(`methodName`, `index`): `Promise`\<`number`[]\>
146146
147-
Defined in: [packages/react-native-executorch/src/modules/BaseModule.ts:34](https://github.com/software-mansion/react-native-executorch/blob/326d6344894d75625c600d5988666e215a32d466/packages/react-native-executorch/src/modules/BaseModule.ts#L34)
147+
Defined in: [packages/react-native-executorch/src/modules/BaseModule.ts:34](https://github.com/software-mansion/react-native-executorch/blob/a305030e7ac90325b5f5072ed4ef18e419f59d34/packages/react-native-executorch/src/modules/BaseModule.ts#L34)
148148

149149
Gets the input shape for a given method and index.
150150

@@ -178,7 +178,7 @@ The input shape as an array of numbers.
178178

179179
> **interrupt**(): `void`
180180
181-
Defined in: [packages/react-native-executorch/src/modules/computer_vision/TextToImageModule.ts:127](https://github.com/software-mansion/react-native-executorch/blob/326d6344894d75625c600d5988666e215a32d466/packages/react-native-executorch/src/modules/computer_vision/TextToImageModule.ts#L127)
181+
Defined in: [packages/react-native-executorch/src/modules/computer_vision/TextToImageModule.ts:132](https://github.com/software-mansion/react-native-executorch/blob/a305030e7ac90325b5f5072ed4ef18e419f59d34/packages/react-native-executorch/src/modules/computer_vision/TextToImageModule.ts#L132)
182182

183183
Interrupts model generation. The model is stopped in the nearest step.
184184

@@ -190,9 +190,9 @@ Interrupts model generation. The model is stopped in the nearest step.
190190

191191
### load()
192192

193-
> **load**(`model`, `onDownloadProgressCallback`): `Promise`\<`void`\>
193+
> **load**(`model`, `onDownloadProgressCallback?`): `Promise`\<`void`\>
194194
195-
Defined in: [packages/react-native-executorch/src/modules/computer_vision/TextToImageModule.ts:35](https://github.com/software-mansion/react-native-executorch/blob/326d6344894d75625c600d5988666e215a32d466/packages/react-native-executorch/src/modules/computer_vision/TextToImageModule.ts#L35)
195+
Defined in: [packages/react-native-executorch/src/modules/computer_vision/TextToImageModule.ts:35](https://github.com/software-mansion/react-native-executorch/blob/a305030e7ac90325b5f5072ed4ef18e419f59d34/packages/react-native-executorch/src/modules/computer_vision/TextToImageModule.ts#L35)
196196

197197
Loads the model from specified resources.
198198

@@ -222,7 +222,7 @@ Object containing sources for tokenizer, scheduler, encoder, unet, and decoder.
222222

223223
[`ResourceSource`](../type-aliases/ResourceSource.md)
224224

225-
##### onDownloadProgressCallback
225+
##### onDownloadProgressCallback?
226226

227227
(`progress`) => `void`
228228

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
{
2+
"name": "@react-native-executorch/expo-resource-fetcher",
3+
"version": "0.1.0",
4+
"description": "Expo resource fetcher for react-native-executorch",
5+
"main": "lib/index.js",
6+
"types": "lib/index.d.ts",
7+
"exports": {
8+
".": {
9+
"import": "./lib/index.js",
10+
"types": "./lib/index.d.ts"
11+
}
12+
},
13+
"files": [
14+
"lib"
15+
],
16+
"license": "MIT",
17+
"repository": {
18+
"type": "git",
19+
"url": "git+https://github.com/software-mansion/react-native-executorch.git",
20+
"directory": "packages/expo-resource-fetcher"
21+
},
22+
"scripts": {
23+
"prepare": "tsc",
24+
"typecheck": "tsc --noEmit",
25+
"lint": "eslint \"**/*.{js,ts,tsx}\"",
26+
"clean": "del-cli lib"
27+
},
28+
"peerDependencies": {
29+
"expo": ">=54.0.0",
30+
"expo-asset": ">=12.0.0",
31+
"expo-file-system": ">=19.0.0",
32+
"react-native": "*",
33+
"react-native-executorch": "*"
34+
},
35+
"devDependencies": {
36+
"@types/react": "~19.1.10",
37+
"expo": "^54.0.0",
38+
"expo-asset": "12.0.11",
39+
"expo-file-system": "^19.0.20",
40+
"react": "19.1.0",
41+
"react-native": "0.81.5",
42+
"react-native-executorch": "workspace:*",
43+
"typescript": "~5.9.2"
44+
}
45+
}

packages/react-native-executorch/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,8 @@
6767
},
6868
"peerDependencies": {
6969
"expo": ">=54.0.0",
70-
"expo-asset": "^12.0.0",
71-
"expo-file-system": "^19.0.0",
70+
"expo-asset": ">=12.0.0",
71+
"expo-file-system": ">=19.0.0",
7272
"react": "*",
7373
"react-native": "*"
7474
},

packages/react-native-executorch/src/modules/computer_vision/TextToImageModule.ts

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { ResourceFetcher } from '../../utils/ResourceFetcher';
22
import { ResourceSource } from '../../types/common';
33
import { BaseModule } from '../BaseModule';
4-
import { Buffer } from 'buffer';
4+
55
import { PNG } from 'pngjs/browser';
66
import { RnExecutorchErrorCode } from '../../errors/ErrorCodes';
77
import { RnExecutorchError } from '../../errors/errorUtils';
@@ -115,10 +115,15 @@ export class TextToImageModule extends BaseModule {
115115
return '';
116116
}
117117
const png = new PNG({ width: imageSize, height: imageSize });
118-
png.data = Buffer.from(outputArray);
118+
png.data = outputArray as unknown as Buffer;
119119
const pngBuffer = PNG.sync.write(png, { colorType: 6 });
120-
const pngString = pngBuffer.toString('base64');
121-
return pngString;
120+
const pngArray = new Uint8Array(pngBuffer as unknown as ArrayBufferLike);
121+
let binary = '';
122+
const chunkSize = 8192;
123+
for (let i = 0; i < pngArray.length; i += chunkSize) {
124+
binary += String.fromCharCode(...pngArray.subarray(i, i + chunkSize));
125+
}
126+
return btoa(binary);
122127
}
123128

124129
/**

yarn.lock

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12966,8 +12966,8 @@ __metadata:
1296612966
zod: "npm:^3.25.0"
1296712967
peerDependencies:
1296812968
expo: ">=54.0.0"
12969-
expo-asset: ^12.0.0
12970-
expo-file-system: ^19.0.0
12969+
expo-asset: ">=12.0.0"
12970+
expo-file-system: ">=19.0.0"
1297112971
react: "*"
1297212972
react-native: "*"
1297312973
languageName: unknown

0 commit comments

Comments
 (0)