@rocicorp/zero 0.25.0-canary.3 → 0.25.0-canary.6

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.
Files changed (75) hide show
  1. package/out/chunk-ASRS2LFV.js +35 -0
  2. package/out/chunk-ASRS2LFV.js.map +7 -0
  3. package/out/{chunk-U2KJIWVC.js → chunk-EZM3XBAB.js} +2 -47
  4. package/out/chunk-EZM3XBAB.js.map +7 -0
  5. package/out/{chunk-5H7WNLPK.js → chunk-HCZQVP5R.js} +2 -2
  6. package/out/{chunk-SRLXXPNB.js → chunk-PFM5IJC4.js} +4 -4
  7. package/out/{chunk-JKP7HDC6.js → chunk-TAUDS4QP.js} +48 -7
  8. package/out/chunk-TAUDS4QP.js.map +7 -0
  9. package/out/{chunk-RYFBHAD4.js → chunk-WPAQ4EPM.js} +16 -19
  10. package/out/chunk-WPAQ4EPM.js.map +7 -0
  11. package/out/{chunk-IWL6EEA6.js → chunk-WWNKZSEE.js} +590 -73
  12. package/out/chunk-WWNKZSEE.js.map +7 -0
  13. package/out/expo-sqlite.js +4 -4
  14. package/out/{lazy-inspector-4CO3DXP5.js → lazy-inspector-XLKVABX2.js} +6 -6
  15. package/out/op-sqlite.js +3 -3
  16. package/out/react-native.js +4 -4
  17. package/out/react.js +5 -4
  18. package/out/react.js.map +2 -2
  19. package/out/replicache/src/kv/sqlite-store.d.ts +1 -7
  20. package/out/replicache/src/kv/sqlite-store.d.ts.map +1 -1
  21. package/out/replicache/src/sqlite.d.ts +1 -1
  22. package/out/replicache/src/sqlite.d.ts.map +1 -1
  23. package/out/shared/src/deep-merge.d.ts +6 -3
  24. package/out/shared/src/deep-merge.d.ts.map +1 -1
  25. package/out/solid.js +5 -5
  26. package/out/sqlite.js +3 -5
  27. package/out/zero/package.json +2 -2
  28. package/out/zero/src/zero-cache-dev.js +57 -40
  29. package/out/zero/src/zero-cache-dev.js.map +1 -1
  30. package/out/zero-cache/src/db/pg-to-lite.d.ts +10 -0
  31. package/out/zero-cache/src/db/pg-to-lite.d.ts.map +1 -1
  32. package/out/zero-cache/src/db/pg-to-lite.js +16 -2
  33. package/out/zero-cache/src/db/pg-to-lite.js.map +1 -1
  34. package/out/zero-cache/src/services/change-source/column-metadata.d.ts +10 -3
  35. package/out/zero-cache/src/services/change-source/column-metadata.d.ts.map +1 -1
  36. package/out/zero-cache/src/services/change-source/column-metadata.js +26 -13
  37. package/out/zero-cache/src/services/change-source/column-metadata.js.map +1 -1
  38. package/out/zero-cache/src/services/change-source/replica-schema.d.ts.map +1 -1
  39. package/out/zero-cache/src/services/change-source/replica-schema.js +13 -0
  40. package/out/zero-cache/src/services/change-source/replica-schema.js.map +1 -1
  41. package/out/zero-cache/src/services/replicator/change-processor.d.ts.map +1 -1
  42. package/out/zero-cache/src/services/replicator/change-processor.js +33 -0
  43. package/out/zero-cache/src/services/replicator/change-processor.js.map +1 -1
  44. package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts.map +1 -1
  45. package/out/zero-cache/src/services/view-syncer/pipeline-driver.js +2 -24
  46. package/out/zero-cache/src/services/view-syncer/pipeline-driver.js.map +1 -1
  47. package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts.map +1 -1
  48. package/out/zero-cache/src/services/view-syncer/view-syncer.js +4 -29
  49. package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -1
  50. package/out/zero-client/src/client/custom.d.ts +2 -2
  51. package/out/zero-client/src/client/custom.d.ts.map +1 -1
  52. package/out/zero-client/src/client/mutation-tracker.d.ts +2 -2
  53. package/out/zero-client/src/client/mutation-tracker.d.ts.map +1 -1
  54. package/out/zero-client/src/client/mutator-proxy.d.ts.map +1 -1
  55. package/out/zero-client/src/mod.d.ts +1 -1
  56. package/out/zero-client/src/mod.d.ts.map +1 -1
  57. package/out/zero-react/src/mod.d.ts +1 -1
  58. package/out/zero-react/src/mod.d.ts.map +1 -1
  59. package/out/zero-react/src/zero-provider.d.ts +1 -0
  60. package/out/zero-react/src/zero-provider.d.ts.map +1 -1
  61. package/out/zero.js +6 -7
  62. package/out/zql/src/builder/builder.d.ts +1 -1
  63. package/out/zql/src/builder/builder.d.ts.map +1 -1
  64. package/out/zql/src/planner/planner-join.js +1 -1
  65. package/out/zql/src/planner/planner-join.js.map +1 -1
  66. package/package.json +2 -2
  67. package/out/chunk-HYS7YLNL.js +0 -575
  68. package/out/chunk-HYS7YLNL.js.map +0 -7
  69. package/out/chunk-IWL6EEA6.js.map +0 -7
  70. package/out/chunk-JKP7HDC6.js.map +0 -7
  71. package/out/chunk-RYFBHAD4.js.map +0 -7
  72. package/out/chunk-U2KJIWVC.js.map +0 -7
  73. /package/out/{chunk-5H7WNLPK.js.map → chunk-HCZQVP5R.js.map} +0 -0
  74. /package/out/{chunk-SRLXXPNB.js.map → chunk-PFM5IJC4.js.map} +0 -0
  75. /package/out/{lazy-inspector-4CO3DXP5.js.map → lazy-inspector-XLKVABX2.js.map} +0 -0
@@ -0,0 +1,35 @@
1
+ // ../replicache/src/kv/throw-if-closed.ts
2
+ function storeError() {
3
+ return new Error("Store is closed");
4
+ }
5
+ function transactionError() {
6
+ return new Error("Transaction is closed");
7
+ }
8
+ function throwIfStoreClosed(store) {
9
+ if (store.closed) {
10
+ throw storeError();
11
+ }
12
+ }
13
+ function throwIfTransactionClosed(transaction) {
14
+ if (transaction.closed) {
15
+ throw transactionError();
16
+ }
17
+ }
18
+ function transactionIsClosedRejection() {
19
+ return Promise.reject(transactionError());
20
+ }
21
+ function maybeTransactionIsClosedRejection(transaction) {
22
+ return transaction.closed ? transactionIsClosedRejection() : void 0;
23
+ }
24
+ function storeIsClosedRejection() {
25
+ return Promise.reject(storeError());
26
+ }
27
+
28
+ export {
29
+ throwIfStoreClosed,
30
+ throwIfTransactionClosed,
31
+ transactionIsClosedRejection,
32
+ maybeTransactionIsClosedRejection,
33
+ storeIsClosedRejection
34
+ };
35
+ //# sourceMappingURL=chunk-ASRS2LFV.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../replicache/src/kv/throw-if-closed.ts"],
4
+ "sourcesContent": ["function storeError(): Error {\n return new Error('Store is closed');\n}\n\nfunction transactionError(): Error {\n return new Error('Transaction is closed');\n}\n\nexport function throwIfStoreClosed(store: {readonly closed: boolean}): void {\n if (store.closed) {\n throw storeError();\n }\n}\n\nexport function throwIfTransactionClosed(transaction: {\n readonly closed: boolean;\n}): void {\n if (transaction.closed) {\n throw transactionError();\n }\n}\n\nexport function transactionIsClosedRejection() {\n return Promise.reject(transactionError());\n}\n\nexport function maybeTransactionIsClosedRejection(transaction: {\n readonly closed: boolean;\n}): Promise<never> | undefined {\n return transaction.closed ? transactionIsClosedRejection() : undefined;\n}\n\nexport function storeIsClosedRejection() {\n return Promise.reject(storeError());\n}\n"],
5
+ "mappings": ";AAAA,SAAS,aAAoB;AAC3B,SAAO,IAAI,MAAM,iBAAiB;AACpC;AAEA,SAAS,mBAA0B;AACjC,SAAO,IAAI,MAAM,uBAAuB;AAC1C;AAEO,SAAS,mBAAmB,OAAyC;AAC1E,MAAI,MAAM,QAAQ;AAChB,UAAM,WAAW;AAAA,EACnB;AACF;AAEO,SAAS,yBAAyB,aAEhC;AACP,MAAI,YAAY,QAAQ;AACtB,UAAM,iBAAiB;AAAA,EACzB;AACF;AAEO,SAAS,+BAA+B;AAC7C,SAAO,QAAQ,OAAO,iBAAiB,CAAC;AAC1C;AAEO,SAAS,kCAAkC,aAEnB;AAC7B,SAAO,YAAY,SAAS,6BAA6B,IAAI;AAC/D;AAEO,SAAS,yBAAyB;AACvC,SAAO,QAAQ,OAAO,WAAW,CAAC;AACpC;",
6
+ "names": []
7
+ }
@@ -50,29 +50,6 @@ function unreachable(_) {
50
50
  throw new Error("Unreachable");
51
51
  }
52
52
 
53
- // ../replicache/src/with-transactions.ts
54
- function withRead(store, fn) {
55
- return using(store.read(), fn);
56
- }
57
- function withWriteNoImplicitCommit(store, fn) {
58
- return using(store.write(), fn);
59
- }
60
- function withWrite(store, fn) {
61
- return using(store.write(), async (write) => {
62
- const result = await fn(write);
63
- await write.commit();
64
- return result;
65
- });
66
- }
67
- async function using(x, fn) {
68
- const write = await x;
69
- try {
70
- return await fn(write);
71
- } finally {
72
- write.release();
73
- }
74
- }
75
-
76
53
  // ../shared/src/has-own.ts
77
54
  var { hasOwn } = Object;
78
55
 
@@ -196,22 +173,6 @@ function deepFreezeAllowUndefined(v) {
196
173
  return deepFreeze(v);
197
174
  }
198
175
 
199
- // ../shared/src/random-uint64.ts
200
- function randomUint64() {
201
- const high = Math.floor(Math.random() * 4294967295);
202
- const low = Math.floor(Math.random() * 4294967295);
203
- return BigInt(high) << 32n | BigInt(low);
204
- }
205
-
206
- // ../replicache/src/persist/make-client-id.ts
207
- function makeClientID() {
208
- const length = 18;
209
- const high = randomUint64();
210
- const low = randomUint64();
211
- const combined = high << 64n | low;
212
- return combined.toString(32).slice(-length).padStart(length, "0");
213
- }
214
-
215
176
  export {
216
177
  assert,
217
178
  assertString,
@@ -226,12 +187,6 @@ export {
226
187
  hasOwn,
227
188
  deepFreeze,
228
189
  assertDeepFrozen,
229
- deepFreezeAllowUndefined,
230
- randomUint64,
231
- withRead,
232
- withWriteNoImplicitCommit,
233
- withWrite,
234
- using,
235
- makeClientID
190
+ deepFreezeAllowUndefined
236
191
  };
237
- //# sourceMappingURL=chunk-U2KJIWVC.js.map
192
+ //# sourceMappingURL=chunk-EZM3XBAB.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../shared/src/asserts.ts", "../../shared/src/has-own.ts", "../../shared/src/config.ts", "../../replicache/src/frozen-json.ts"],
4
+ "sourcesContent": ["export function assert(\n b: unknown,\n msg: string | (() => string) = 'Assertion failed',\n): asserts b {\n if (!b) {\n throw new Error(typeof msg === 'string' ? msg : msg());\n }\n}\n\nexport function assertString(v: unknown): asserts v is string {\n assertType(v, 'string');\n}\n\nexport function assertNumber(v: unknown): asserts v is number {\n assertType(v, 'number');\n}\n\nexport function assertBoolean(v: unknown): asserts v is boolean {\n assertType(v, 'boolean');\n}\n\nfunction assertType(v: unknown, t: string) {\n if (typeof v !== t) {\n throwInvalidType(v, t);\n }\n}\n\nexport function assertObject(v: unknown): asserts v is Record<string, unknown> {\n if (v === null) {\n throwInvalidType(v, 'object');\n }\n assertType(v, 'object');\n}\n\nexport function assertArray(v: unknown): asserts v is unknown[] {\n if (!Array.isArray(v)) {\n throwInvalidType(v, 'array');\n }\n}\n\nexport function invalidType(v: unknown, t: string): string {\n let s = 'Invalid type: ';\n if (v === null || v === undefined) {\n s += v;\n } else {\n s += `${typeof v} \\`${v}\\``;\n }\n return s + `, expected ${t}`;\n}\n\nexport function throwInvalidType(v: unknown, t: string): never {\n throw new Error(invalidType(v, t));\n}\n\nexport function assertNotNull<T>(v: T | null): asserts v is T {\n if (v === null) {\n throw new Error('Expected non-null value');\n }\n}\n\nexport function assertUndefined<T>(\n v: T | undefined,\n msg = 'Expected undefined value',\n): asserts v is T {\n if (v !== undefined) {\n throw new Error(msg);\n }\n}\n\nexport function assertNotUndefined<T>(\n v: T | undefined,\n msg = 'Expected non undefined value',\n): asserts v is T {\n if (v === undefined) {\n throw new Error(msg);\n }\n}\n\nexport function assertInstanceof<T>(\n v: unknown,\n t: new (...args: unknown[]) => T,\n): asserts v is T {\n if (!(v instanceof t)) {\n throw new Error(`Expected instanceof ${t.name}`);\n }\n}\n\nexport function assertUint8Array(v: unknown): asserts v is Uint8Array {\n assertInstanceof(v, Uint8Array);\n}\n\nexport function unreachable(): never;\nexport function unreachable(v: never): never;\nexport function unreachable(_?: never): never {\n throw new Error('Unreachable');\n}\n\nexport function notImplemented(): never {\n throw new Error('Not implemented');\n}\n", "// hasOwn was added in ES2022\nexport const {hasOwn} = Object;\n", "declare const process: {\n env: {\n NODE_ENV?: string;\n };\n};\n\nexport const isProd = process.env.NODE_ENV === 'production';\n\nexport {isProd as skipAssertJSONValue};\n", "import {throwInvalidType} from '../../shared/src/asserts.ts';\nimport {skipAssertJSONValue} from '../../shared/src/config.ts';\nimport {hasOwn} from '../../shared/src/has-own.ts';\nimport type {\n ReadonlyJSONObject,\n ReadonlyJSONValue,\n} from '../../shared/src/json.ts';\nimport {skipFreeze, skipFrozenAsserts} from './config.ts';\nimport type {Cookie, FrozenCookie} from './cookies.ts';\n\ndeclare const frozenJSONTag: unique symbol;\n\n/**\n * Used to mark a type as having been frozen.\n */\nexport type FrozenTag<T> = T & {readonly [frozenJSONTag]: true};\n\nexport type FrozenJSONValue =\n | null\n | string\n | boolean\n | number\n | FrozenJSONArray\n | FrozenJSONObject;\n\ntype FrozenJSONArray = FrozenTag<ReadonlyArray<FrozenJSONValue>>;\n\nexport type FrozenJSONObject = FrozenTag<{\n readonly [key: string]: FrozenJSONValue;\n}>;\n\n/**\n * We tag deep frozen objects in debug mode so that we do not have to deep\n * freeze an object more than once.\n */\nconst deepFrozenObjects = new WeakSet<object>();\n\n/**\n * Recursively freezes the passed in value (mutates it) and returns it.\n *\n * This is controlled by `skipFreeze` which is true in release mode.\n */\nexport function deepFreeze(v: Cookie): FrozenCookie;\nexport function deepFreeze(v: ReadonlyJSONValue): FrozenJSONValue;\nexport function deepFreeze(v: ReadonlyJSONValue): FrozenJSONValue {\n if (skipFreeze) {\n return v as FrozenJSONValue;\n }\n\n deepFreezeInternal(v, []);\n return v as FrozenJSONValue;\n}\n\nfunction deepFreezeInternal(\n v: ReadonlyJSONValue | undefined,\n seen: object[],\n): void {\n switch (typeof v) {\n case 'undefined':\n throw new TypeError('Unexpected value undefined');\n case 'boolean':\n case 'number':\n case 'string':\n return;\n case 'object': {\n if (v === null) {\n return;\n }\n\n if (deepFrozenObjects.has(v)) {\n return;\n }\n deepFrozenObjects.add(v);\n\n if (seen.includes(v)) {\n throwInvalidType(v, 'Cyclic JSON object');\n }\n\n seen.push(v);\n\n Object.freeze(v);\n if (Array.isArray(v)) {\n deepFreezeArray(v, seen);\n } else {\n deepFreezeObject(v as ReadonlyJSONObject, seen);\n }\n seen.pop();\n return;\n }\n\n default:\n throwInvalidType(v, 'JSON value');\n }\n}\n\nfunction deepFreezeArray(\n v: ReadonlyArray<ReadonlyJSONValue>,\n seen: object[],\n): void {\n for (const item of v) {\n deepFreezeInternal(item, seen);\n }\n}\n\nfunction deepFreezeObject(v: ReadonlyJSONObject, seen: object[]): void {\n for (const k in v) {\n if (hasOwn(v, k)) {\n const value = v[k];\n if (value !== undefined) {\n deepFreezeInternal(value, seen);\n }\n }\n }\n}\n\nexport function assertFrozenJSONValue(\n v: unknown,\n): asserts v is FrozenJSONValue {\n if (skipFrozenAsserts || skipAssertJSONValue) {\n return;\n }\n\n switch (typeof v) {\n case 'boolean':\n case 'number':\n case 'string':\n return;\n case 'object':\n if (v === null) {\n return;\n }\n\n if (isDeepFrozen(v, [])) {\n return;\n }\n }\n throwInvalidType(v, 'JSON value');\n}\n\nexport function assertDeepFrozen<V>(v: V): asserts v is Readonly<V> {\n if (skipFrozenAsserts) {\n return;\n }\n\n if (!isDeepFrozen(v, [])) {\n throw new Error('Expected frozen object');\n }\n}\n\n/**\n * Recursive deep frozen check.\n *\n * It adds frozen objects to the {@link deepFrozenObjects} WeakSet so that we do\n * not have to check the same object more than once.\n */\nexport function isDeepFrozen(v: unknown, seen: object[]): boolean {\n switch (typeof v) {\n case 'boolean':\n case 'number':\n case 'string':\n return true;\n case 'object':\n if (v === null) {\n return true;\n }\n\n if (deepFrozenObjects.has(v)) {\n return true;\n }\n\n if (!Object.isFrozen(v)) {\n return false;\n }\n\n if (seen.includes(v)) {\n throwInvalidType(v, 'Cyclic JSON object');\n }\n\n seen.push(v);\n\n if (Array.isArray(v)) {\n for (const item of v) {\n if (!isDeepFrozen(item, seen)) {\n seen.pop();\n return false;\n }\n }\n } else {\n for (const k in v) {\n if (hasOwn(v, k)) {\n const value = (v as Record<string, unknown>)[k];\n if (value !== undefined && !isDeepFrozen(value, seen)) {\n seen.pop();\n return false;\n }\n }\n }\n }\n\n deepFrozenObjects.add(v);\n seen.pop();\n return true;\n\n default:\n throwInvalidType(v, 'JSON value');\n }\n}\n\nexport type P = Parameters<typeof deepFreeze>[0];\nexport type R = ReturnType<typeof deepFreeze>;\nexport function deepFreezeAllowUndefined(v: P | undefined): R | undefined {\n if (v === undefined) {\n return undefined;\n }\n return deepFreeze(v) as R;\n}\n"],
5
+ "mappings": ";AAAO,SAAS,OACd,GACA,MAA+B,oBACpB;AACX,MAAI,CAAC,GAAG;AACN,UAAM,IAAI,MAAM,OAAO,QAAQ,WAAW,MAAM,IAAI,CAAC;AAAA,EACvD;AACF;AAEO,SAAS,aAAa,GAAiC;AAC5D,aAAW,GAAG,QAAQ;AACxB;AAEO,SAAS,aAAa,GAAiC;AAC5D,aAAW,GAAG,QAAQ;AACxB;AAEO,SAAS,cAAc,GAAkC;AAC9D,aAAW,GAAG,SAAS;AACzB;AAEA,SAAS,WAAW,GAAY,GAAW;AACzC,MAAI,OAAO,MAAM,GAAG;AAClB,qBAAiB,GAAG,CAAC;AAAA,EACvB;AACF;AAEO,SAAS,aAAa,GAAkD;AAC7E,MAAI,MAAM,MAAM;AACd,qBAAiB,GAAG,QAAQ;AAAA,EAC9B;AACA,aAAW,GAAG,QAAQ;AACxB;AAEO,SAAS,YAAY,GAAoC;AAC9D,MAAI,CAAC,MAAM,QAAQ,CAAC,GAAG;AACrB,qBAAiB,GAAG,OAAO;AAAA,EAC7B;AACF;AAEO,SAAS,YAAY,GAAY,GAAmB;AACzD,MAAI,IAAI;AACR,MAAI,MAAM,QAAQ,MAAM,QAAW;AACjC,SAAK;AAAA,EACP,OAAO;AACL,SAAK,GAAG,OAAO,CAAC,MAAM,CAAC;AAAA,EACzB;AACA,SAAO,IAAI,cAAc,CAAC;AAC5B;AAEO,SAAS,iBAAiB,GAAY,GAAkB;AAC7D,QAAM,IAAI,MAAM,YAAY,GAAG,CAAC,CAAC;AACnC;AAEO,SAAS,cAAiB,GAA6B;AAC5D,MAAI,MAAM,MAAM;AACd,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC3C;AACF;AAmCO,SAAS,YAAY,GAAkB;AAC5C,QAAM,IAAI,MAAM,aAAa;AAC/B;;;AC9FO,IAAM,EAAC,OAAM,IAAI;;;ACKjB,IAAM,SAAS,QAAQ,IAAI,aAAa;;;AC6B/C,IAAM,oBAAoB,oBAAI,QAAgB;AASvC,SAAS,WAAW,GAAuC;AAChE,MAAI,QAAY;AACd,WAAO;AAAA,EACT;AAEA,qBAAmB,GAAG,CAAC,CAAC;AACxB,SAAO;AACT;AAEA,SAAS,mBACP,GACA,MACM;AACN,UAAQ,OAAO,GAAG;AAAA,IAChB,KAAK;AACH,YAAM,IAAI,UAAU,4BAA4B;AAAA,IAClD,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH;AAAA,IACF,KAAK,UAAU;AACb,UAAI,MAAM,MAAM;AACd;AAAA,MACF;AAEA,UAAI,kBAAkB,IAAI,CAAC,GAAG;AAC5B;AAAA,MACF;AACA,wBAAkB,IAAI,CAAC;AAEvB,UAAI,KAAK,SAAS,CAAC,GAAG;AACpB,yBAAiB,GAAG,oBAAoB;AAAA,MAC1C;AAEA,WAAK,KAAK,CAAC;AAEX,aAAO,OAAO,CAAC;AACf,UAAI,MAAM,QAAQ,CAAC,GAAG;AACpB,wBAAgB,GAAG,IAAI;AAAA,MACzB,OAAO;AACL,yBAAiB,GAAyB,IAAI;AAAA,MAChD;AACA,WAAK,IAAI;AACT;AAAA,IACF;AAAA,IAEA;AACE,uBAAiB,GAAG,YAAY;AAAA,EACpC;AACF;AAEA,SAAS,gBACP,GACA,MACM;AACN,aAAW,QAAQ,GAAG;AACpB,uBAAmB,MAAM,IAAI;AAAA,EAC/B;AACF;AAEA,SAAS,iBAAiB,GAAuB,MAAsB;AACrE,aAAW,KAAK,GAAG;AACjB,QAAI,OAAO,GAAG,CAAC,GAAG;AAChB,YAAM,QAAQ,EAAE,CAAC;AACjB,UAAI,UAAU,QAAW;AACvB,2BAAmB,OAAO,IAAI;AAAA,MAChC;AAAA,IACF;AAAA,EACF;AACF;AA0BO,SAAS,iBAAoB,GAAgC;AAClE,MAAI,QAAmB;AACrB;AAAA,EACF;AAEA,MAAI,CAAC,aAAa,GAAG,CAAC,CAAC,GAAG;AACxB,UAAM,IAAI,MAAM,wBAAwB;AAAA,EAC1C;AACF;AAQO,SAAS,aAAa,GAAY,MAAyB;AAChE,UAAQ,OAAO,GAAG;AAAA,IAChB,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,UAAI,MAAM,MAAM;AACd,eAAO;AAAA,MACT;AAEA,UAAI,kBAAkB,IAAI,CAAC,GAAG;AAC5B,eAAO;AAAA,MACT;AAEA,UAAI,CAAC,OAAO,SAAS,CAAC,GAAG;AACvB,eAAO;AAAA,MACT;AAEA,UAAI,KAAK,SAAS,CAAC,GAAG;AACpB,yBAAiB,GAAG,oBAAoB;AAAA,MAC1C;AAEA,WAAK,KAAK,CAAC;AAEX,UAAI,MAAM,QAAQ,CAAC,GAAG;AACpB,mBAAW,QAAQ,GAAG;AACpB,cAAI,CAAC,aAAa,MAAM,IAAI,GAAG;AAC7B,iBAAK,IAAI;AACT,mBAAO;AAAA,UACT;AAAA,QACF;AAAA,MACF,OAAO;AACL,mBAAW,KAAK,GAAG;AACjB,cAAI,OAAO,GAAG,CAAC,GAAG;AAChB,kBAAM,QAAS,EAA8B,CAAC;AAC9C,gBAAI,UAAU,UAAa,CAAC,aAAa,OAAO,IAAI,GAAG;AACrD,mBAAK,IAAI;AACT,qBAAO;AAAA,YACT;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAEA,wBAAkB,IAAI,CAAC;AACvB,WAAK,IAAI;AACT,aAAO;AAAA,IAET;AACE,uBAAiB,GAAG,YAAY;AAAA,EACpC;AACF;AAIO,SAAS,yBAAyB,GAAiC;AACxE,MAAI,MAAM,QAAW;AACnB,WAAO;AAAA,EACT;AACA,SAAO,WAAW,CAAC;AACrB;",
6
+ "names": []
7
+ }
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  SQLiteStore,
3
3
  dropStore
4
- } from "./chunk-RYFBHAD4.js";
4
+ } from "./chunk-WPAQ4EPM.js";
5
5
 
6
6
  // ../replicache/src/kv/expo-sqlite/store.ts
7
7
  import {
@@ -61,4 +61,4 @@ var ExpoSQLiteDatabase = class {
61
61
  export {
62
62
  expoSQLiteStoreProvider
63
63
  };
64
- //# sourceMappingURL=chunk-5H7WNLPK.js.map
64
+ //# sourceMappingURL=chunk-HCZQVP5R.js.map
@@ -4,14 +4,14 @@ import {
4
4
  clientToServer,
5
5
  defaultFormat,
6
6
  queryWithContext
7
- } from "./chunk-IWL6EEA6.js";
7
+ } from "./chunk-WWNKZSEE.js";
8
8
  import {
9
9
  mapCondition,
10
10
  toStaticParam
11
- } from "./chunk-JKP7HDC6.js";
11
+ } from "./chunk-TAUDS4QP.js";
12
12
  import {
13
13
  assert
14
- } from "./chunk-U2KJIWVC.js";
14
+ } from "./chunk-EZM3XBAB.js";
15
15
 
16
16
  // ../zero-schema/src/builder/relationship-builder.ts
17
17
  function relationships(table2, cb) {
@@ -492,4 +492,4 @@ export {
492
492
  defineQueryWithContextType,
493
493
  escapeLike
494
494
  };
495
- //# sourceMappingURL=chunk-SRLXXPNB.js.map
495
+ //# sourceMappingURL=chunk-PFM5IJC4.js.map
@@ -9,12 +9,9 @@ import {
9
9
  deepFreeze,
10
10
  hasOwn,
11
11
  isProd,
12
- makeClientID,
13
- randomUint64,
14
12
  throwInvalidType,
15
- unreachable,
16
- withWrite
17
- } from "./chunk-U2KJIWVC.js";
13
+ unreachable
14
+ } from "./chunk-EZM3XBAB.js";
18
15
  import {
19
16
  __export,
20
17
  __reExport
@@ -433,6 +430,13 @@ function getSizeOfEntry(key, value) {
433
430
  return entryFixed + getSizeOfValue(key) + getSizeOfValue(value);
434
431
  }
435
432
 
433
+ // ../shared/src/random-uint64.ts
434
+ function randomUint64() {
435
+ const high = Math.floor(Math.random() * 4294967295);
436
+ const low = Math.floor(Math.random() * 4294967295);
437
+ return BigInt(high) << 32n | BigInt(low);
438
+ }
439
+
436
440
  // ../replicache/src/hash.ts
437
441
  var STRING_LENGTH = 22;
438
442
  var hashRe = /^[0-9a-v-]+$/;
@@ -1897,6 +1901,29 @@ function readIndexesForRead(commit, dagRead, formatVersion) {
1897
1901
  return m;
1898
1902
  }
1899
1903
 
1904
+ // ../replicache/src/with-transactions.ts
1905
+ function withRead(store, fn) {
1906
+ return using(store.read(), fn);
1907
+ }
1908
+ function withWriteNoImplicitCommit(store, fn) {
1909
+ return using(store.write(), fn);
1910
+ }
1911
+ function withWrite(store, fn) {
1912
+ return using(store.write(), async (write) => {
1913
+ const result = await fn(write);
1914
+ await write.commit();
1915
+ return result;
1916
+ });
1917
+ }
1918
+ async function using(x, fn) {
1919
+ const write = await x;
1920
+ try {
1921
+ return await fn(write);
1922
+ } finally {
1923
+ write.release();
1924
+ }
1925
+ }
1926
+
1900
1927
  // ../replicache/src/index-defs.ts
1901
1928
  var indexDefinitionSchema = readonlyObject({
1902
1929
  prefix: valita_exports.string().optional(),
@@ -2612,6 +2639,15 @@ async function createIndexBTree(lc, dagWrite, valueMap, prefix, jsonPointer, all
2612
2639
  var clientGroupIDSchema = valita_exports.string();
2613
2640
  var clientIDSchema = valita_exports.string();
2614
2641
 
2642
+ // ../replicache/src/persist/make-client-id.ts
2643
+ function makeClientID() {
2644
+ const length = 18;
2645
+ const high = randomUint64();
2646
+ const low = randomUint64();
2647
+ const combined = high << 64n | low;
2648
+ return combined.toString(32).slice(-length).padStart(length, "0");
2649
+ }
2650
+
2615
2651
  // ../replicache/src/persist/clients.ts
2616
2652
  var clientV5Schema = readonlyObject({
2617
2653
  heartbeatTimestampMs: valita_exports.number(),
@@ -3864,7 +3900,7 @@ var Inspector = class {
3864
3900
  queryDelegate,
3865
3901
  rep,
3866
3902
  getSocket,
3867
- lazy: import("./lazy-inspector-4CO3DXP5.js")
3903
+ lazy: import("./lazy-inspector-XLKVABX2.js")
3868
3904
  };
3869
3905
  this.client = new Client(this.#delegate, rep.clientID, rep.clientGroupID);
3870
3906
  this.clientGroup = this.client.clientGroup;
@@ -4023,12 +4059,17 @@ export {
4023
4059
  newWriteSnapshotDD31,
4024
4060
  clientGroupIDSchema,
4025
4061
  clientIDSchema,
4062
+ withRead,
4063
+ withWriteNoImplicitCommit,
4064
+ withWrite,
4065
+ using,
4026
4066
  getClientGroups,
4027
4067
  setClientGroups,
4028
4068
  setClientGroup,
4029
4069
  getClientGroup,
4030
4070
  clientGroupHasPendingMutations,
4031
4071
  disableClientGroup,
4072
+ makeClientID,
4032
4073
  assertClientV6,
4033
4074
  getClients,
4034
4075
  ClientStateNotFoundError,
@@ -4085,4 +4126,4 @@ export {
4085
4126
  TDigest,
4086
4127
  Inspector
4087
4128
  };
4088
- //# sourceMappingURL=chunk-JKP7HDC6.js.map
4129
+ //# sourceMappingURL=chunk-TAUDS4QP.js.map