jazz-react-native 0.9.9 → 0.9.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
1
 
2
- > jazz-react-native@0.9.9 build /home/runner/work/jazz/jazz/packages/jazz-react-native
2
+ > jazz-react-native@0.9.10 build /home/runner/work/jazz/jazz/packages/jazz-react-native
3
3
  > rm -rf ./dist && tsc --sourceMap --outDir dist
4
4
 
package/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # jazz-browser
2
2
 
3
+ ## 0.9.10
4
+
5
+ ### Patch Changes
6
+
7
+ - f76274c: Fix image handling in react-native
8
+ - 5e83864: Improve error management on initial auth, fixed an infinite loop when migration fails
9
+ - Updated dependencies [4aa377d]
10
+ - Updated dependencies [5e83864]
11
+ - cojson@0.9.10
12
+ - jazz-tools@0.9.10
13
+ - cojson-storage-rn-sqlite@0.8.53
14
+ - cojson-transport-ws@0.9.10
15
+ - jazz-react-core@0.8.51
16
+
3
17
  ## 0.9.9
4
18
 
5
19
  ### Patch Changes
package/dist/index.js CHANGED
@@ -2,5 +2,6 @@ export * from "./provider.js";
2
2
  export * from "./auth/auth.js";
3
3
  export * from "./storage/kv-store-context.js";
4
4
  export * from "./hooks.js";
5
+ export * from "./media.js";
5
6
  export { parseInviteLink, createInviteLink, setupKvStore } from "./platform.js";
6
7
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,+BAA+B,CAAC;AAC9C,cAAc,YAAY,CAAC;AAE3B,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,+BAA+B,CAAC;AAC9C,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAE3B,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC"}
package/dist/media.js CHANGED
@@ -8,20 +8,37 @@ export function useProgressiveImg({ image, maxWidth, }) {
8
8
  return;
9
9
  const unsub = image.subscribe({}, (update) => {
10
10
  const highestRes = update?.highestResAvailable({ maxWidth });
11
- if (highestRes) {
12
- if (highestRes.res !== lastHighestRes) {
13
- lastHighestRes = highestRes.res;
14
- const blob = highestRes.stream.toBlob();
15
- if (blob) {
16
- const blobURI = URL.createObjectURL(blob);
17
- setCurrent({ src: blobURI, res: highestRes.res });
18
- return () => {
19
- setTimeout(() => URL.revokeObjectURL(blobURI), 200);
20
- };
21
- }
11
+ if (highestRes && highestRes.res !== lastHighestRes) {
12
+ lastHighestRes = highestRes.res;
13
+ // use the base64 data directly
14
+ const chunks = highestRes.stream.getChunks();
15
+ if (chunks?.chunks && chunks.chunks.length > 0) {
16
+ // convert chunks to base64
17
+ const totalLength = chunks.chunks.reduce((acc, chunk) => acc + chunk.length, 0);
18
+ const combinedArray = new Uint8Array(totalLength);
19
+ let offset = 0;
20
+ chunks.chunks.forEach((chunk) => {
21
+ combinedArray.set(chunk, offset);
22
+ offset += chunk.length;
23
+ });
24
+ // Create data URL
25
+ const base64 = Buffer.from(combinedArray).toString("base64");
26
+ const dataUrl = `data:${chunks.mimeType};base64,${base64}`;
27
+ setCurrent({
28
+ src: dataUrl,
29
+ res: highestRes.res,
30
+ });
31
+ }
32
+ else {
33
+ // Fallback to placeholder if chunks aren't available
34
+ console.warn("No chunks available for image", image.id);
35
+ setCurrent({
36
+ src: update?.placeholderDataURL,
37
+ res: "placeholder",
38
+ });
22
39
  }
23
40
  }
24
- else {
41
+ else if (!highestRes) {
25
42
  setCurrent({
26
43
  src: update?.placeholderDataURL,
27
44
  res: "placeholder",
package/dist/media.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"media.js","sourceRoot":"","sources":["../src/media.tsx"],"names":[],"mappings":"AACA,OAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEnD,sBAAsB;AACtB,MAAM,UAAU,iBAAiB,CAAC,EAChC,KAAK,EACL,QAAQ,GAIT;IACC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAEpC,SAAS,CAAC,CAAC;IAEb,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,cAAkC,CAAC;QACvC,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE;YAC3C,MAAM,UAAU,GAAG,MAAM,EAAE,mBAAmB,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC7D,IAAI,UAAU,EAAE,CAAC;gBACf,IAAI,UAAU,CAAC,GAAG,KAAK,cAAc,EAAE,CAAC;oBACtC,cAAc,GAAG,UAAU,CAAC,GAAG,CAAC;oBAChC,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;oBACxC,IAAI,IAAI,EAAE,CAAC;wBACT,MAAM,OAAO,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;wBAC1C,UAAU,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC;wBAClD,OAAO,GAAG,EAAE;4BACV,UAAU,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,CAAC;wBACtD,CAAC,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,UAAU,CAAC;oBACT,GAAG,EAAE,MAAM,EAAE,kBAAkB;oBAC/B,GAAG,EAAE,aAAa;iBACnB,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC;IACf,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE1B,OAAO;QACL,GAAG,EAAE,OAAO,EAAE,GAAG;QACjB,GAAG,EAAE,OAAO,EAAE,GAAG;QACjB,YAAY,EAAE,KAAK,EAAE,YAAY;KAClC,CAAC;AACJ,CAAC;AAED,sBAAsB;AACtB,MAAM,UAAU,cAAc,CAAC,EAC7B,QAAQ,EACR,KAAK,EACL,QAAQ,GAST;IACC,MAAM,MAAM,GAAG,iBAAiB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IACtD,OAAO,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;AACpC,CAAC"}
1
+ {"version":3,"file":"media.js","sourceRoot":"","sources":["../src/media.tsx"],"names":[],"mappings":"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"}
package/dist/provider.js CHANGED
@@ -57,6 +57,9 @@ export function JazzProvider({ children, auth, peer, AccountSchema = Account, Cr
57
57
  return currentContext;
58
58
  }
59
59
  const promise = createContext();
60
+ promise.catch((e) => {
61
+ console.error("Error creating Jazz context", e);
62
+ });
60
63
  // In development mode we don't return a cleanup function because otherwise
61
64
  // the double effect execution would mark the context as done immediately.
62
65
  if (process.env.NODE_ENV === "development") {
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAmB,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,OAAO,EAA4B,MAAM,YAAY,CAAC;AAC/D,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAEL,mBAAmB,GACpB,MAAM,eAAe,CAAC;AAgBvB,gCAAgC;AAChC,MAAM,UAAU,YAAY,CAA0C,EACpE,QAAQ,EACR,IAAI,EACJ,IAAI,EACJ,aAAa,GAAG,OAAuC,EACvD,cAAc,EACd,OAAO,GACgB;IACvB,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,QAAQ,EAAoC,CAAC;IAEnE,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEpD,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACrC,cAAc,CAAC,OAAO,GAAG,KAAK,CAAC;IAE/B,SAAS,CAAC,GAAG,EAAE;QACb,iFAAiF;QACjF,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,EAAE,CAAC;YAC3C,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;gBAC3B,OAAO;YACT,CAAC;YACD,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC;YAE9B,2EAA2E;YAC3E,0EAA0E;YAC1E,EAAE;YACF,qDAAqD;YACrD,MAAM,eAAe,GAAG,GAAG,CAAC;YAE5B,IAAI,eAAe,EAAE,CAAC;gBACpB,eAAe,CAAC,IAAI,EAAE,CAAC;YACzB,CAAC;QACH,CAAC;QAED,KAAK,UAAU,aAAa;YAC1B,MAAM,cAAc,GAAG,MAAM,mBAAmB,CAC9C,IAAI,KAAK,OAAO;gBACd,CAAC,CAAC;oBACE,IAAI;oBACJ,cAAc;oBACd,OAAO;iBACR;gBACH,CAAC,CAAC;oBACE,aAAa;oBACb,IAAI,EAAE,IAAI;oBACV,IAAI;oBACJ,cAAc;oBACd,OAAO;iBACR,CACN,CAAC;YAEF,MAAM,MAAM,GAAG,GAAG,EAAE;gBAClB,cAAc,CAAC,MAAM,EAAE,CAAC;gBACxB,MAAM,CAAC,SAAS,CAAC,CAAC;gBAClB,eAAe,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;gBAElC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,EAAE,CAAC;oBAC3C,yDAAyD;oBACzD,uCAAuC;oBACvC,cAAc,CAAC,IAAI,EAAE,CAAC;gBACxB,CAAC;YACH,CAAC,CAAC;YAEF,MAAM,CAAC;gBACL,GAAG,cAAc;gBACjB,aAAa;gBACb,MAAM;aACP,CAAC,CAAC;YAEH,OAAO,cAAc,CAAC;QACxB,CAAC;QAED,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;QAEhC,2EAA2E;QAC3E,0EAA0E;QAC1E,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,EAAE,CAAC;YAC3C,OAAO;QACT,CAAC;QAED,OAAO,GAAG,EAAE;YACV,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;IAE9C,OAAO,CACL,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,QAAQ,CAAC,EAAE,WAAW,CAAC,QAAQ,CAAC,CAC3E,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jazz-react-native",
3
- "version": "0.9.9",
3
+ "version": "0.9.10",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
@@ -27,11 +27,11 @@
27
27
  "dependencies": {
28
28
  "@scure/base": "1.2.1",
29
29
  "react-native-quick-crypto": "1.0.0-beta.9",
30
- "jazz-react-core": "0.8.50",
31
- "cojson": "0.9.9",
32
- "cojson-transport-ws": "0.9.9",
33
- "cojson-storage-rn-sqlite": "0.8.52",
34
- "jazz-tools": "0.9.9"
30
+ "jazz-react-core": "0.8.51",
31
+ "cojson": "0.9.10",
32
+ "cojson-transport-ws": "0.9.10",
33
+ "cojson-storage-rn-sqlite": "0.8.53",
34
+ "jazz-tools": "0.9.10"
35
35
  },
36
36
  "peerDependencies": {
37
37
  "@react-native-community/netinfo": "*",
package/src/index.ts CHANGED
@@ -2,5 +2,6 @@ export * from "./provider.js";
2
2
  export * from "./auth/auth.js";
3
3
  export * from "./storage/kv-store-context.js";
4
4
  export * from "./hooks.js";
5
+ export * from "./media.js";
5
6
 
6
7
  export { parseInviteLink, createInviteLink, setupKvStore } from "./platform.js";
package/src/media.tsx CHANGED
@@ -18,19 +18,40 @@ export function useProgressiveImg({
18
18
  if (!image) return;
19
19
  const unsub = image.subscribe({}, (update) => {
20
20
  const highestRes = update?.highestResAvailable({ maxWidth });
21
- if (highestRes) {
22
- if (highestRes.res !== lastHighestRes) {
23
- lastHighestRes = highestRes.res;
24
- const blob = highestRes.stream.toBlob();
25
- if (blob) {
26
- const blobURI = URL.createObjectURL(blob);
27
- setCurrent({ src: blobURI, res: highestRes.res });
28
- return () => {
29
- setTimeout(() => URL.revokeObjectURL(blobURI), 200);
30
- };
31
- }
21
+ if (highestRes && highestRes.res !== lastHighestRes) {
22
+ lastHighestRes = highestRes.res;
23
+ // use the base64 data directly
24
+ const chunks = highestRes.stream.getChunks();
25
+ if (chunks?.chunks && chunks.chunks.length > 0) {
26
+ // convert chunks to base64
27
+ const totalLength = chunks.chunks.reduce(
28
+ (acc, chunk) => acc + chunk.length,
29
+ 0,
30
+ );
31
+ const combinedArray = new Uint8Array(totalLength);
32
+ let offset = 0;
33
+ chunks.chunks.forEach((chunk) => {
34
+ combinedArray.set(chunk, offset);
35
+ offset += chunk.length;
36
+ });
37
+
38
+ // Create data URL
39
+ const base64 = Buffer.from(combinedArray).toString("base64");
40
+ const dataUrl = `data:${chunks.mimeType};base64,${base64}`;
41
+
42
+ setCurrent({
43
+ src: dataUrl,
44
+ res: highestRes.res,
45
+ });
46
+ } else {
47
+ // Fallback to placeholder if chunks aren't available
48
+ console.warn("No chunks available for image", image.id);
49
+ setCurrent({
50
+ src: update?.placeholderDataURL,
51
+ res: "placeholder",
52
+ });
32
53
  }
33
- } else {
54
+ } else if (!highestRes) {
34
55
  setCurrent({
35
56
  src: update?.placeholderDataURL,
36
57
  res: "placeholder",
package/src/provider.tsx CHANGED
@@ -96,6 +96,10 @@ export function JazzProvider<Acc extends Account = RegisteredAccount>({
96
96
 
97
97
  const promise = createContext();
98
98
 
99
+ promise.catch((e) => {
100
+ console.error("Error creating Jazz context", e);
101
+ });
102
+
99
103
  // In development mode we don't return a cleanup function because otherwise
100
104
  // the double effect execution would mark the context as done immediately.
101
105
  if (process.env.NODE_ENV === "development") {