@rocicorp/zero 0.8.2024121203 → 0.9.2024121900

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 (145) hide show
  1. package/out/advanced.js +1 -1
  2. package/out/{chunk-5CHRDZZ4.js → chunk-3L5FRWGX.js} +100 -72
  3. package/out/{chunk-5CHRDZZ4.js.map → chunk-3L5FRWGX.js.map} +4 -4
  4. package/out/{chunk-6HXO6VMP.js → chunk-Y6OVFUGE.js} +12 -10
  5. package/out/chunk-Y6OVFUGE.js.map +7 -0
  6. package/out/replicache/src/set-interval-with-signal.d.ts.map +1 -1
  7. package/out/shared/src/set-utils.d.ts +20 -5
  8. package/out/shared/src/set-utils.d.ts.map +1 -1
  9. package/out/shared/src/set-utils.js +17 -7
  10. package/out/shared/src/set-utils.js.map +1 -1
  11. package/out/shared/src/sleep.d.ts.map +1 -1
  12. package/out/shared/src/sleep.js +5 -1
  13. package/out/shared/src/sleep.js.map +1 -1
  14. package/out/solid.js +2 -2
  15. package/out/zero/src/zero-cache-dev.js +5 -8
  16. package/out/zero/src/zero-cache-dev.js.map +1 -1
  17. package/out/zero-cache/src/auth/jwt.d.ts +5 -0
  18. package/out/zero-cache/src/auth/jwt.d.ts.map +1 -0
  19. package/out/zero-cache/src/auth/jwt.js +37 -0
  20. package/out/zero-cache/src/auth/jwt.js.map +1 -0
  21. package/out/zero-cache/src/auth/write-authorizer.d.ts +3 -3
  22. package/out/zero-cache/src/auth/write-authorizer.d.ts.map +1 -1
  23. package/out/zero-cache/src/auth/write-authorizer.js +9 -8
  24. package/out/zero-cache/src/auth/write-authorizer.js.map +1 -1
  25. package/out/zero-cache/src/config/zero-config.d.ts +188 -4
  26. package/out/zero-cache/src/config/zero-config.d.ts.map +1 -1
  27. package/out/zero-cache/src/config/zero-config.js +48 -4
  28. package/out/zero-cache/src/config/zero-config.js.map +1 -1
  29. package/out/zero-cache/src/db/queries.d.ts +24 -0
  30. package/out/zero-cache/src/db/queries.d.ts.map +1 -0
  31. package/out/zero-cache/src/db/queries.js +60 -0
  32. package/out/zero-cache/src/db/queries.js.map +1 -0
  33. package/out/zero-cache/src/server/life-cycle.d.ts.map +1 -1
  34. package/out/zero-cache/src/server/life-cycle.js +1 -3
  35. package/out/zero-cache/src/server/life-cycle.js.map +1 -1
  36. package/out/zero-cache/src/server/main.d.ts.map +1 -1
  37. package/out/zero-cache/src/server/main.js +4 -5
  38. package/out/zero-cache/src/server/main.js.map +1 -1
  39. package/out/zero-cache/src/server/multi/config.d.ts +18 -4
  40. package/out/zero-cache/src/server/multi/config.d.ts.map +1 -1
  41. package/out/zero-cache/src/server/multi/main.js +2 -2
  42. package/out/zero-cache/src/server/multi/main.js.map +1 -1
  43. package/out/zero-cache/src/server/syncer.d.ts.map +1 -1
  44. package/out/zero-cache/src/server/syncer.js +1 -1
  45. package/out/zero-cache/src/server/syncer.js.map +1 -1
  46. package/out/zero-cache/src/services/change-streamer/pg/change-source.d.ts.map +1 -1
  47. package/out/zero-cache/src/services/change-streamer/pg/change-source.js +9 -7
  48. package/out/zero-cache/src/services/change-streamer/pg/change-source.js.map +1 -1
  49. package/out/zero-cache/src/services/dispatcher/{dispatcher.d.ts → sync-dispatcher.d.ts} +3 -6
  50. package/out/zero-cache/src/services/dispatcher/sync-dispatcher.d.ts.map +1 -0
  51. package/out/zero-cache/src/services/dispatcher/{dispatcher.js → sync-dispatcher.js} +7 -12
  52. package/out/zero-cache/src/services/dispatcher/sync-dispatcher.js.map +1 -0
  53. package/out/zero-cache/src/services/view-syncer/client-handler.d.ts.map +1 -1
  54. package/out/zero-cache/src/services/view-syncer/client-handler.js +2 -0
  55. package/out/zero-cache/src/services/view-syncer/client-handler.js.map +1 -1
  56. package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts +6 -4
  57. package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts.map +1 -1
  58. package/out/zero-cache/src/services/view-syncer/cvr-store.js +140 -63
  59. package/out/zero-cache/src/services/view-syncer/cvr-store.js.map +1 -1
  60. package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts +1 -1
  61. package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts.map +1 -1
  62. package/out/zero-cache/src/services/view-syncer/pipeline-driver.js +29 -6
  63. package/out/zero-cache/src/services/view-syncer/pipeline-driver.js.map +1 -1
  64. package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts.map +1 -1
  65. package/out/zero-cache/src/services/view-syncer/snapshotter.js +5 -5
  66. package/out/zero-cache/src/services/view-syncer/snapshotter.js.map +1 -1
  67. package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts.map +1 -1
  68. package/out/zero-cache/src/services/view-syncer/view-syncer.js +50 -24
  69. package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -1
  70. package/out/zero-cache/src/types/error-for-client.d.ts +9 -2
  71. package/out/zero-cache/src/types/error-for-client.d.ts.map +1 -1
  72. package/out/zero-cache/src/types/error-for-client.js +14 -3
  73. package/out/zero-cache/src/types/error-for-client.js.map +1 -1
  74. package/out/zero-cache/src/types/lite.d.ts.map +1 -1
  75. package/out/zero-cache/src/types/lite.js +1 -0
  76. package/out/zero-cache/src/types/lite.js.map +1 -1
  77. package/out/zero-cache/src/types/pg.d.ts.map +1 -1
  78. package/out/zero-cache/src/types/pg.js +5 -0
  79. package/out/zero-cache/src/types/pg.js.map +1 -1
  80. package/out/zero-cache/src/workers/connection.js +2 -2
  81. package/out/zero-cache/src/workers/connection.js.map +1 -1
  82. package/out/zero-cache/src/workers/replicator.d.ts.map +1 -1
  83. package/out/zero-cache/src/workers/replicator.js +2 -0
  84. package/out/zero-cache/src/workers/replicator.js.map +1 -1
  85. package/out/zero-cache/src/workers/syncer.d.ts +0 -2
  86. package/out/zero-cache/src/workers/syncer.d.ts.map +1 -1
  87. package/out/zero-cache/src/workers/syncer.js +7 -15
  88. package/out/zero-cache/src/workers/syncer.js.map +1 -1
  89. package/out/zero-client/src/client/options.d.ts +7 -0
  90. package/out/zero-client/src/client/options.d.ts.map +1 -1
  91. package/out/zero-client/src/client/query-manager.d.ts +1 -1
  92. package/out/zero-client/src/client/query-manager.d.ts.map +1 -1
  93. package/out/zero-client/src/client/zero.d.ts.map +1 -1
  94. package/out/zero-client/src/mod.d.ts +6 -5
  95. package/out/zero-client/src/mod.d.ts.map +1 -1
  96. package/out/zero-protocol/src/data.d.ts +1 -1
  97. package/out/zero-protocol/src/data.d.ts.map +1 -1
  98. package/out/zero-protocol/src/data.js +1 -1
  99. package/out/zero-protocol/src/data.js.map +1 -1
  100. package/out/zero-protocol/src/down.d.ts +1 -1
  101. package/out/zero-protocol/src/poke.d.ts +2 -2
  102. package/out/zero-protocol/src/push.d.ts +21 -21
  103. package/out/zero-protocol/src/row-patch.d.ts +2 -2
  104. package/out/zero-protocol/src/up.d.ts +3 -3
  105. package/out/zero-schema/src/column.d.ts +27 -0
  106. package/out/zero-schema/src/column.d.ts.map +1 -0
  107. package/out/zero-schema/src/table-schema.d.ts +0 -28
  108. package/out/zero-schema/src/table-schema.d.ts.map +1 -1
  109. package/out/zero-schema/src/table-schema.js +0 -39
  110. package/out/zero-schema/src/table-schema.js.map +1 -1
  111. package/out/zero.js +4 -4
  112. package/out/zql/src/ivm/constraint.js +2 -2
  113. package/out/zql/src/ivm/constraint.js.map +1 -1
  114. package/out/zql/src/ivm/data.d.ts.map +1 -1
  115. package/out/zql/src/ivm/data.js +2 -3
  116. package/out/zql/src/ivm/data.js.map +1 -1
  117. package/out/zql/src/ivm/exists.d.ts.map +1 -1
  118. package/out/zql/src/ivm/exists.js +5 -1
  119. package/out/zql/src/ivm/exists.js.map +1 -1
  120. package/out/zql/src/ivm/memory-source.d.ts +2 -2
  121. package/out/zql/src/ivm/view-apply-change.d.ts.map +1 -1
  122. package/out/zql/src/ivm/view-apply-change.js +13 -9
  123. package/out/zql/src/ivm/view-apply-change.js.map +1 -1
  124. package/out/zql/src/ivm/view.d.ts +3 -3
  125. package/out/zql/src/ivm/view.d.ts.map +1 -1
  126. package/out/zql/src/query/query-impl.d.ts.map +1 -1
  127. package/out/zql/src/query/query-impl.js.map +1 -1
  128. package/out/zql/src/query/query.d.ts +5 -5
  129. package/out/zql/src/query/query.d.ts.map +1 -1
  130. package/out/zqlite/src/db.d.ts +3 -2
  131. package/out/zqlite/src/db.d.ts.map +1 -1
  132. package/out/zqlite/src/db.js +25 -13
  133. package/out/zqlite/src/db.js.map +1 -1
  134. package/out/zqlite/src/runtime-debug.d.ts +17 -0
  135. package/out/zqlite/src/runtime-debug.d.ts.map +1 -0
  136. package/out/zqlite/src/runtime-debug.js +29 -0
  137. package/out/zqlite/src/runtime-debug.js.map +1 -0
  138. package/out/zqlite/src/table-source.d.ts +5 -5
  139. package/out/zqlite/src/table-source.d.ts.map +1 -1
  140. package/out/zqlite/src/table-source.js +21 -11
  141. package/out/zqlite/src/table-source.js.map +1 -1
  142. package/package.json +2 -1
  143. package/out/chunk-6HXO6VMP.js.map +0 -7
  144. package/out/zero-cache/src/services/dispatcher/dispatcher.d.ts.map +0 -1
  145. package/out/zero-cache/src/services/dispatcher/dispatcher.js.map +0 -1
@@ -122,8 +122,7 @@ function applyChange(parentEntry, change, schema, relationship, format) {
122
122
  );
123
123
  parentEntry[relationship] = newEntry;
124
124
  } else {
125
- const view = parentEntry[relationship];
126
- assertArray(view);
125
+ const view = getChildEntryList(parentEntry, relationship);
127
126
  const { pos, found } = binarySearch(view, newEntry, schema.compareRows);
128
127
  assert(!found, "node already exists");
129
128
  view.splice(pos, 0, newEntry);
@@ -155,8 +154,7 @@ function applyChange(parentEntry, change, schema, relationship, format) {
155
154
  assertObject(parentEntry[relationship]);
156
155
  parentEntry[relationship] = void 0;
157
156
  } else {
158
- assertArray(parentEntry[relationship]);
159
- const view = parentEntry[relationship];
157
+ const view = getChildEntryList(parentEntry, relationship);
160
158
  const { pos, found } = binarySearch(
161
159
  view,
162
160
  change.node.row,
@@ -174,11 +172,10 @@ function applyChange(parentEntry, change, schema, relationship, format) {
174
172
  assertObject(parentEntry[relationship]);
175
173
  existing = parentEntry[relationship];
176
174
  } else {
177
- assertArray(parentEntry[relationship]);
178
- const list = parentEntry[relationship];
179
- const { pos, found } = binarySearch(list, change.row, schema.compareRows);
175
+ const view = getChildEntryList(parentEntry, relationship);
176
+ const { pos, found } = binarySearch(view, change.row, schema.compareRows);
180
177
  assert(found, "node does not exist");
181
- existing = list[pos];
178
+ existing = view[pos];
182
179
  }
183
180
  const childSchema = must(
184
181
  schema.relationships[change.child.relationshipName]
@@ -203,8 +200,8 @@ function applyChange(parentEntry, change, schema, relationship, format) {
203
200
  ...change.node.row
204
201
  };
205
202
  } else {
206
- assertArray(parentEntry[relationship]);
207
203
  const view = parentEntry[relationship];
204
+ assertArray(view);
208
205
  if (schema.compareRows(change.oldNode.row, change.node.row) === 0) {
209
206
  const { pos, found } = binarySearch(
210
207
  view,
@@ -282,6 +279,11 @@ function drainStreams(node) {
282
279
  }
283
280
  }
284
281
  }
282
+ function getChildEntryList(parentEntry, relationship) {
283
+ const view = parentEntry[relationship];
284
+ assertArray(view);
285
+ return view;
286
+ }
285
287
 
286
288
  export {
287
289
  assert,
@@ -297,4 +299,4 @@ export {
297
299
  must,
298
300
  applyChange
299
301
  };
300
- //# sourceMappingURL=chunk-6HXO6VMP.js.map
302
+ //# sourceMappingURL=chunk-Y6OVFUGE.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../shared/src/asserts.ts", "../../shared/src/must.ts", "../../zql/src/ivm/view-apply-change.ts"],
4
+ "sourcesContent": ["export function assert(\n b: unknown,\n msg: string | (() => string) = 'Assertion failed',\n): asserts b {\n if (!b) {\n const msgStr = typeof msg === 'string' ? msg : msg();\n throw new Error(msgStr);\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", "export function must<T>(v: T | undefined | null, msg?: string): T {\n // eslint-disable-next-line eqeqeq\n if (v == null) {\n throw new Error(msg ?? `Unexpected ${v} value`);\n }\n return v;\n}\n", "import {\n assert,\n assertArray,\n assertObject,\n assertUndefined,\n unreachable,\n} from '../../../shared/src/asserts.js';\nimport {must} from '../../../shared/src/must.js';\nimport type {Row} from '../../../zero-protocol/src/data.js';\nimport type {Change} from './change.js';\nimport type {Comparator, Node} from './data.js';\nimport type {SourceSchema} from './schema.js';\nimport type {Entry, EntryList, Format} from './view.js';\n\nexport function applyChange(\n parentEntry: Entry,\n change: Change,\n schema: SourceSchema,\n relationship: string,\n format: Format,\n) {\n if (schema.isHidden) {\n switch (change.type) {\n case 'add':\n case 'remove':\n for (const [relationship, children] of Object.entries(\n change.node.relationships,\n )) {\n const childSchema = must(schema.relationships[relationship]);\n for (const node of children) {\n applyChange(\n parentEntry,\n {type: change.type, node},\n childSchema,\n relationship,\n format,\n );\n }\n }\n return;\n case 'edit':\n // If hidden at this level it means that the hidden row was changed. If\n // the row was changed in such a way that it would change the\n // relationships then the edit would have been split into remove and\n // add.\n return;\n case 'child': {\n const childSchema = must(\n schema.relationships[change.child.relationshipName],\n );\n applyChange(\n parentEntry,\n change.child.change,\n childSchema,\n relationship,\n format,\n );\n return;\n }\n default:\n unreachable(change);\n }\n }\n\n const {singular, relationships: childFormats} = format;\n switch (change.type) {\n case 'add': {\n // TODO: Only create a new entry if we need to mutate the existing one.\n const newEntry: Entry = {\n ...change.node.row,\n };\n if (singular) {\n assertUndefined(\n parentEntry[relationship],\n 'single output already exists',\n );\n parentEntry[relationship] = newEntry;\n } else {\n const view = getChildEntryList(parentEntry, relationship);\n const {pos, found} = binarySearch(view, newEntry, schema.compareRows);\n assert(!found, 'node already exists');\n // @ts-expect-error view is readonly\n view.splice(pos, 0, newEntry);\n }\n for (const [relationship, children] of Object.entries(\n change.node.relationships,\n )) {\n // TODO: Is there a flag to make TypeScript complain that dictionary access might be undefined?\n const childSchema = must(schema.relationships[relationship]);\n const childFormat = childFormats[relationship];\n if (childFormat === undefined) {\n continue;\n }\n\n const newView = childFormat.singular ? undefined : ([] as EntryList);\n newEntry[relationship] = newView;\n for (const node of children) {\n applyChange(\n newEntry,\n {type: 'add', node},\n childSchema,\n relationship,\n childFormat,\n );\n }\n }\n break;\n }\n case 'remove': {\n if (singular) {\n assertObject(parentEntry[relationship]);\n parentEntry[relationship] = undefined;\n } else {\n const view = getChildEntryList(parentEntry, relationship);\n const {pos, found} = binarySearch(\n view,\n change.node.row,\n schema.compareRows,\n );\n assert(found, 'node does not exist');\n // @ts-expect-error view is readonly\n view.splice(pos, 1);\n }\n // Needed to ensure cleanup of operator state is fully done.\n drainStreams(change.node);\n break;\n }\n case 'child': {\n let existing: Entry;\n if (singular) {\n assertObject(parentEntry[relationship]);\n existing = parentEntry[relationship];\n } else {\n const view = getChildEntryList(parentEntry, relationship);\n const {pos, found} = binarySearch(view, change.row, schema.compareRows);\n assert(found, 'node does not exist');\n existing = view[pos];\n }\n\n const childSchema = must(\n schema.relationships[change.child.relationshipName],\n );\n const childFormat = format.relationships[change.child.relationshipName];\n if (childFormat !== undefined) {\n applyChange(\n existing,\n change.child.change,\n childSchema,\n change.child.relationshipName,\n childFormat,\n );\n }\n break;\n }\n case 'edit': {\n if (singular) {\n assertObject(parentEntry[relationship]);\n parentEntry[relationship] = {\n ...parentEntry[relationship],\n ...change.node.row,\n };\n } else {\n const view = parentEntry[relationship] as EntryList | undefined;\n assertArray(view);\n // If the order changed due to the edit, we need to remove and reinsert.\n if (schema.compareRows(change.oldNode.row, change.node.row) === 0) {\n const {pos, found} = binarySearch(\n view,\n change.oldNode.row,\n schema.compareRows,\n );\n assert(found, 'node does not exists');\n view[pos] = makeEntryPreserveRelationships(\n change.node.row,\n view[pos],\n schema.relationships,\n );\n } else {\n // Remove\n const {pos, found} = binarySearch(\n view,\n change.oldNode.row,\n schema.compareRows,\n );\n assert(found, 'node does not exists');\n const oldEntry = view[pos];\n view.splice(pos, 1);\n\n // Insert\n {\n const {pos, found} = binarySearch(\n view,\n change.node.row,\n schema.compareRows,\n );\n assert(!found, 'node already exists');\n view.splice(\n pos,\n 0,\n makeEntryPreserveRelationships(\n change.node.row,\n oldEntry,\n schema.relationships,\n ),\n );\n }\n }\n }\n break;\n }\n default:\n unreachable(change);\n }\n}\n\n// TODO: Do not return an object. It puts unnecessary pressure on the GC.\nfunction binarySearch(view: EntryList, target: Entry, comparator: Comparator) {\n let low = 0;\n let high = view.length - 1;\n while (low <= high) {\n const mid = (low + high) >>> 1;\n const comparison = comparator(view[mid] as Row, target as Row);\n if (comparison < 0) {\n low = mid + 1;\n } else if (comparison > 0) {\n high = mid - 1;\n } else {\n return {pos: mid, found: true};\n }\n }\n return {pos: low, found: false};\n}\n\nfunction makeEntryPreserveRelationships(\n row: Row,\n entry: Entry,\n relationships: {[key: string]: SourceSchema},\n): Entry {\n const result: Entry = {...row};\n for (const relationship in relationships) {\n assert(!(relationship in row), 'Relationship already exists');\n result[relationship] = entry[relationship];\n }\n return result;\n}\n\nfunction drainStreams(node: Node) {\n for (const stream of Object.values(node.relationships)) {\n for (const node of stream) {\n drainStreams(node);\n }\n }\n}\n\nfunction getChildEntryList(\n parentEntry: Entry,\n relationship: string,\n): EntryList {\n const view = parentEntry[relationship] as unknown;\n assertArray(view);\n return view as EntryList;\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["relationship", "pos", "found", "node"]
7
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"set-interval-with-signal.d.ts","sourceRoot":"","sources":["../../../../replicache/src/set-interval-with-signal.ts"],"names":[],"mappings":"AAAA,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,MAAM,IAAI,EACd,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,WAAW,GAClB,IAAI,CAKN"}
1
+ {"version":3,"file":"set-interval-with-signal.d.ts","sourceRoot":"","sources":["../../../../replicache/src/set-interval-with-signal.ts"],"names":[],"mappings":"AAAA,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,MAAM,IAAI,EACd,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,WAAW,GAClB,IAAI,CAON"}
@@ -1,9 +1,24 @@
1
- export declare function equals<T>(a: Set<T>, b: Set<T>): boolean;
2
- export declare function union<T>(...sets: Set<T>[]): Set<T>;
3
- export declare function intersection<T>(a: ReadonlySet<T>, b: ReadonlySet<T>): Set<T>;
1
+ interface ReadonlySetLike<T> {
2
+ /**
3
+ * Despite its name, returns an iterator of the values in the set-like.
4
+ */
5
+ keys(): Iterator<T>;
6
+ /**
7
+ * @returns a boolean indicating whether an element with the specified value exists in the set-like or not.
8
+ */
9
+ has(value: T): boolean;
10
+ /**
11
+ * @returns the number of (unique) elements in the set-like.
12
+ */
13
+ readonly size: number;
14
+ }
15
+ export declare function equals<T>(a: ReadonlySetLike<T>, b: ReadonlySetLike<T>): boolean;
16
+ export declare function union<T>(...sets: ReadonlySetLike<T>[]): Set<T>;
17
+ export declare function intersection<T>(a: ReadonlySetLike<T>, b: ReadonlySetLike<T>): Set<T>;
4
18
  /**
5
19
  * Returns the elements in {@link a} that are not in {@link b}.
6
20
  */
7
- export declare function difference<T>(a: ReadonlySet<T>, b: ReadonlySet<T>): Set<T>;
8
- export declare function symmetricDifference<T>(a: Set<T>, b: Set<T>): [onlyA: Set<T>, onlyB: Set<T>];
21
+ export declare function difference<T>(a: ReadonlySetLike<T>, b: ReadonlySetLike<T>): Set<T>;
22
+ export declare function symmetricDifferences<T>(a: ReadonlySetLike<T>, b: ReadonlySetLike<T>): [onlyA: Set<T>, onlyB: Set<T>];
23
+ export {};
9
24
  //# sourceMappingURL=set-utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"set-utils.d.ts","sourceRoot":"","sources":["../../../../shared/src/set-utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,WAU7C;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAQlD;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAc5E;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAQ1E;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EACnC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EACT,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,GACR,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAYhC"}
1
+ {"version":3,"file":"set-utils.d.ts","sourceRoot":"","sources":["../../../../shared/src/set-utils.ts"],"names":[],"mappings":"AAEA,UAAU,eAAe,CAAC,CAAC;IACzB;;OAEG;IACH,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC;IACpB;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC;IACvB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,MAAM,CAAC,CAAC,EACtB,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,EACrB,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,GACpB,OAAO,CAeT;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAa9D;AAED,wBAAgB,YAAY,CAAC,CAAC,EAC5B,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,EACrB,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,GACpB,GAAG,CAAC,CAAC,CAAC,CAmBR;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAC1B,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,EACrB,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,GACpB,GAAG,CAAC,CAAC,CAAC,CAaR;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EACpC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,EACrB,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,GACpB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CA0BhC"}
@@ -1,8 +1,10 @@
1
+ // TODO: Change lib to pick up this type definition
1
2
  export function equals(a, b) {
2
3
  if (a.size !== b.size) {
3
4
  return false;
4
5
  }
5
- for (const value of a) {
6
+ const iterator = a.keys();
7
+ for (let { done, value } = iterator.next(); !done; { done, value } = iterator.next()) {
6
8
  if (!b.has(value)) {
7
9
  return false;
8
10
  }
@@ -12,7 +14,8 @@ export function equals(a, b) {
12
14
  export function union(...sets) {
13
15
  const result = new Set();
14
16
  for (const set of sets) {
15
- for (const value of set) {
17
+ const iterator = set.keys();
18
+ for (let { done, value } = iterator.next(); !done; { done, value } = iterator.next()) {
16
19
  result.add(value);
17
20
  }
18
21
  }
@@ -26,7 +29,8 @@ export function intersection(a, b) {
26
29
  a = b;
27
30
  b = swap;
28
31
  }
29
- for (const value of a) {
32
+ const iterator = a.keys();
33
+ for (let { done, value } = iterator.next(); !done; { done, value } = iterator.next()) {
30
34
  if (b.has(value)) {
31
35
  result.add(value);
32
36
  }
@@ -38,17 +42,23 @@ export function intersection(a, b) {
38
42
  */
39
43
  export function difference(a, b) {
40
44
  const result = new Set();
41
- for (const value of a) {
45
+ const iterator = a.keys();
46
+ for (let { done, value } = iterator.next(); !done; { done, value } = iterator.next()) {
42
47
  if (!b.has(value)) {
43
48
  result.add(value);
44
49
  }
45
50
  }
46
51
  return result;
47
52
  }
48
- export function symmetricDifference(a, b) {
49
- const onlyA = new Set(a);
53
+ export function symmetricDifferences(a, b) {
54
+ const onlyA = new Set();
55
+ const iteratorA = a.keys();
56
+ for (let { done, value } = iteratorA.next(); !done; { done, value } = iteratorA.next()) {
57
+ onlyA.add(value);
58
+ }
50
59
  const onlyB = new Set();
51
- for (const value of b) {
60
+ const iteratorB = b.keys();
61
+ for (let { done, value } = iteratorB.next(); !done; { done, value } = iteratorB.next()) {
52
62
  if (a.has(value)) {
53
63
  onlyA.delete(value);
54
64
  onlyB.delete(value);
@@ -1 +1 @@
1
- {"version":3,"file":"set-utils.js","sourceRoot":"","sources":["../../../../shared/src/set-utils.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,MAAM,CAAI,CAAS,EAAE,CAAS;IAC5C,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;QACtB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,CAAC,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAClB,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,KAAK,CAAI,GAAG,IAAc;IACxC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAK,CAAC;IAC5B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,KAAK,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;YACxB,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,YAAY,CAAI,CAAiB,EAAE,CAAiB;IAClE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAK,CAAC;IAC5B,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACpB,8CAA8C;QAC9C,MAAM,IAAI,GAAG,CAAC,CAAC;QACf,CAAC,GAAG,CAAC,CAAC;QACN,CAAC,GAAG,IAAI,CAAC;IACX,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,CAAC,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACjB,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAI,CAAiB,EAAE,CAAiB;IAChE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAK,CAAC;IAC5B,KAAK,MAAM,KAAK,IAAI,CAAC,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAClB,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,CAAS,EACT,CAAS;IAET,MAAM,KAAK,GAAG,IAAI,GAAG,CAAI,CAAC,CAAC,CAAC;IAC5B,MAAM,KAAK,GAAG,IAAI,GAAG,EAAK,CAAC;IAC3B,KAAK,MAAM,KAAK,IAAI,CAAC,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACjB,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACpB,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IACD,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACxB,CAAC"}
1
+ {"version":3,"file":"set-utils.js","sourceRoot":"","sources":["../../../../shared/src/set-utils.ts"],"names":[],"mappings":"AAAA,mDAAmD;AAiBnD,MAAM,UAAU,MAAM,CACpB,CAAqB,EACrB,CAAqB;IAErB,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;QACtB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1B,KACE,IAAI,EAAC,IAAI,EAAE,KAAK,EAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,EACnC,CAAC,IAAI,EACL,EAAC,IAAI,EAAE,KAAK,EAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,EAC/B,CAAC;QACD,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAClB,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,KAAK,CAAI,GAAG,IAA0B;IACpD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAK,CAAC;IAC5B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QAC5B,KACE,IAAI,EAAC,IAAI,EAAE,KAAK,EAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,EACnC,CAAC,IAAI,EACL,EAAC,IAAI,EAAE,KAAK,EAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,EAC/B,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,CAAqB,EACrB,CAAqB;IAErB,MAAM,MAAM,GAAG,IAAI,GAAG,EAAK,CAAC;IAC5B,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACpB,8CAA8C;QAC9C,MAAM,IAAI,GAAG,CAAC,CAAC;QACf,CAAC,GAAG,CAAC,CAAC;QACN,CAAC,GAAG,IAAI,CAAC;IACX,CAAC;IACD,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1B,KACE,IAAI,EAAC,IAAI,EAAE,KAAK,EAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,EACnC,CAAC,IAAI,EACL,EAAC,IAAI,EAAE,KAAK,EAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,EAC/B,CAAC;QACD,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACjB,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CACxB,CAAqB,EACrB,CAAqB;IAErB,MAAM,MAAM,GAAG,IAAI,GAAG,EAAK,CAAC;IAC5B,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1B,KACE,IAAI,EAAC,IAAI,EAAE,KAAK,EAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,EACnC,CAAC,IAAI,EACL,EAAC,IAAI,EAAE,KAAK,EAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,EAC/B,CAAC;QACD,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAClB,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,CAAqB,EACrB,CAAqB;IAErB,MAAM,KAAK,GAAG,IAAI,GAAG,EAAK,CAAC;IAC3B,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3B,KACE,IAAI,EAAC,IAAI,EAAE,KAAK,EAAC,GAAG,SAAS,CAAC,IAAI,EAAE,EACpC,CAAC,IAAI,EACL,EAAC,IAAI,EAAE,KAAK,EAAC,GAAG,SAAS,CAAC,IAAI,EAAE,EAChC,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,GAAG,EAAK,CAAC;IAC3B,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3B,KACE,IAAI,EAAC,IAAI,EAAE,KAAK,EAAC,GAAG,SAAS,CAAC,IAAI,EAAE,EACpC,CAAC,IAAI,EACL,EAAC,IAAI,EAAE,KAAK,EAAC,GAAG,SAAS,CAAC,IAAI,EAAE,EAChC,CAAC;QACD,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACjB,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACpB,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IACD,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACxB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"sleep.d.ts","sourceRoot":"","sources":["../../../../shared/src/sleep.ts"],"names":[],"mappings":"AAMA;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBrE;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,WAAW,GAClB,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAsB7C"}
1
+ {"version":3,"file":"sleep.d.ts","sourceRoot":"","sources":["../../../../shared/src/sleep.ts"],"names":[],"mappings":"AAMA;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BrE;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,WAAW,GAClB,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAsB7C"}
@@ -10,6 +10,10 @@ const promiseNever = new Promise(() => undefined);
10
10
  * Pass in an AbortSignal to clear the timeout.
11
11
  */
12
12
  export function sleep(ms, signal) {
13
+ const newAbortError = () => new AbortError('Aborted');
14
+ if (signal?.aborted) {
15
+ return Promise.reject(newAbortError());
16
+ }
13
17
  if (ms === 0) {
14
18
  return promiseVoid;
15
19
  }
@@ -18,7 +22,7 @@ export function sleep(ms, signal) {
18
22
  if (signal) {
19
23
  handleAbort = () => {
20
24
  clearTimeout(id);
21
- reject(new AbortError('Aborted'));
25
+ reject(newAbortError());
22
26
  };
23
27
  signal.addEventListener('abort', handleAbort, { once: true });
24
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sleep.js","sourceRoot":"","sources":["../../../../shared/src/sleep.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAE5C,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;AACtC,MAAM,YAAY,GAAG,IAAI,OAAO,CAAO,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;AAExD;;;;;;GAMG;AACH,MAAM,UAAU,KAAK,CAAC,EAAU,EAAE,MAAoB;IACpD,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;QACb,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IAAI,WAAuB,CAAC;QAC5B,IAAI,MAAM,EAAE,CAAC;YACX,WAAW,GAAG,GAAG,EAAE;gBACjB,YAAY,CAAC,EAAE,CAAC,CAAC;gBACjB,MAAM,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;YACpC,CAAC,CAAC;YACF,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,WAAW,EAAE,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC;QAC9D,CAAC;QAED,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE;YACzB,OAAO,EAAE,CAAC;YACV,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACpD,CAAC,EAAE,EAAE,CAAC,CAAC;IACT,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAC5B,EAAU,EACV,MAAmB;IAEnB,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;QACb,OAAO,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IACrC,CAAC;IAED,MAAM,EAAC,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,EAAC,GAAG,QAAQ,EAAQ,CAAC;IAE5E,MAAM,YAAY,GAAG,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;QAC/C,MAAM,WAAW,GAAG,GAAG,EAAE;YACvB,YAAY,CAAC,EAAE,CAAC,CAAC;YACjB,cAAc,EAAE,CAAC;QACnB,CAAC,CAAC;QAEF,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE;YACzB,OAAO,EAAE,CAAC;YACV,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACnD,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,WAAW,EAAE,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;AACxC,CAAC"}
1
+ {"version":3,"file":"sleep.js","sourceRoot":"","sources":["../../../../shared/src/sleep.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAE5C,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;AACtC,MAAM,YAAY,GAAG,IAAI,OAAO,CAAO,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;AAExD;;;;;;GAMG;AACH,MAAM,UAAU,KAAK,CAAC,EAAU,EAAE,MAAoB;IACpD,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC;IAEtD,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;QACpB,OAAO,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;QACb,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IAAI,WAAuB,CAAC;QAC5B,IAAI,MAAM,EAAE,CAAC;YACX,WAAW,GAAG,GAAG,EAAE;gBACjB,YAAY,CAAC,EAAE,CAAC,CAAC;gBACjB,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;YAC1B,CAAC,CAAC;YACF,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,WAAW,EAAE,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC;QAC9D,CAAC;QAED,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE;YACzB,OAAO,EAAE,CAAC;YACV,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACpD,CAAC,EAAE,EAAE,CAAC,CAAC;IACT,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAC5B,EAAU,EACV,MAAmB;IAEnB,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;QACb,OAAO,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IACrC,CAAC;IAED,MAAM,EAAC,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,EAAC,GAAG,QAAQ,EAAQ,CAAC;IAE5E,MAAM,YAAY,GAAG,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;QAC/C,MAAM,WAAW,GAAG,GAAG,EAAE;YACvB,YAAY,CAAC,EAAE,CAAC,CAAC;YACjB,cAAc,EAAE,CAAC;QACnB,CAAC,CAAC;QAEF,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE;YACzB,OAAO,EAAE,CAAC;YACV,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACnD,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,WAAW,EAAE,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;AACxC,CAAC"}
package/out/solid.js CHANGED
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  Zero
3
- } from "./chunk-5CHRDZZ4.js";
3
+ } from "./chunk-3L5FRWGX.js";
4
4
  import "./chunk-HARIWJ2J.js";
5
5
  import "./chunk-ULOTOBTC.js";
6
6
  import {
7
7
  applyChange
8
- } from "./chunk-6HXO6VMP.js";
8
+ } from "./chunk-Y6OVFUGE.js";
9
9
  import "./chunk-F5QR3K72.js";
10
10
 
11
11
  // ../zero-solid/src/create-zero.ts
@@ -6,6 +6,7 @@ import { resolver } from '@rocicorp/resolver';
6
6
  import { buildSchemaOptions } from '../../zero-schema/src/build-schema-options.js';
7
7
  import { ZERO_ENV_VAR_PREFIX, zeroOptions, } from '../../zero-cache/src/config/zero-config.js';
8
8
  import 'dotenv/config';
9
+ import chalk from 'chalk';
9
10
  const buildSchemaScript = 'zero-build-schema';
10
11
  const zeroCacheScript = 'zero-cache';
11
12
  function killProcess(childProcess) {
@@ -19,15 +20,11 @@ function killProcess(childProcess) {
19
20
  childProcess.kill('SIGQUIT');
20
21
  return promise;
21
22
  }
22
- const LOG_COLOR = {
23
- red: 31,
24
- green: 32,
25
- };
26
- function log(msg, color = 'green', method = 'log') {
27
- console[method](`\x1b[${LOG_COLOR[color]}m> ${msg}\x1b[0m`);
23
+ function log(msg) {
24
+ console.log(chalk.green('> ' + msg));
28
25
  }
29
26
  function logError(msg) {
30
- log(msg, 'red', 'error');
27
+ console.error(chalk.red('> ' + msg));
31
28
  }
32
29
  async function main() {
33
30
  const { config } = parseOptionsAdvanced({
@@ -82,7 +79,7 @@ async function main() {
82
79
  awaitWriteFinish: { stabilityThreshold: 500, pollInterval: 100 },
83
80
  });
84
81
  const onFileChange = async () => {
85
- log(`Detected ${path} change.`, 'green');
82
+ log(`Detected ${path} change.`);
86
83
  await buildSchemaAndStartZeroCache();
87
84
  };
88
85
  watcher.on('add', onFileChange);
@@ -1 +1 @@
1
- {"version":3,"file":"zero-cache-dev.js","sourceRoot":"","sources":["../../../src/zero-cache-dev.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"zero-cache-dev.js","sourceRoot":"","sources":["../../../src/zero-cache-dev.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { type JWTClaimVerificationOptions, type JWTPayload } from 'jose';
2
+ import type { AuthConfig } from '../config/zero-config.js';
3
+ export declare function authIsConfigured(config: AuthConfig): boolean;
4
+ export declare function verifyToken(config: AuthConfig, token: string, verifyOptions: JWTClaimVerificationOptions): Promise<JWTPayload>;
5
+ //# sourceMappingURL=jwt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jwt.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/auth/jwt.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,2BAA2B,EAChC,KAAK,UAAU,EAEhB,MAAM,MAAM,CAAC;AACd,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,0BAA0B,CAAC;AAEzD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,WAMlD;AAWD,wBAAsB,WAAW,CAC/B,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,2BAA2B,GACzC,OAAO,CAAC,UAAU,CAAC,CAiBrB"}
@@ -0,0 +1,37 @@
1
+ import { createRemoteJWKSet, jwtVerify, } from 'jose';
2
+ export function authIsConfigured(config) {
3
+ return (config.jwk !== undefined ||
4
+ config.jwksUrl !== undefined ||
5
+ config.secret !== undefined);
6
+ }
7
+ let remoteKeyset;
8
+ function getRemoteKeyset(jwksUrl) {
9
+ if (remoteKeyset === undefined) {
10
+ remoteKeyset = createRemoteJWKSet(new URL(jwksUrl));
11
+ }
12
+ return remoteKeyset;
13
+ }
14
+ export async function verifyToken(config, token, verifyOptions) {
15
+ if (config.jwk !== undefined) {
16
+ return verifyTokenImpl(token, loadJwk(config.jwk), verifyOptions);
17
+ }
18
+ if (config.secret !== undefined) {
19
+ return verifyTokenImpl(token, loadSecret(config.secret), verifyOptions);
20
+ }
21
+ if (config.jwksUrl !== undefined) {
22
+ const remoteKeyset = getRemoteKeyset(config.jwksUrl);
23
+ return (await jwtVerify(token, remoteKeyset, verifyOptions)).payload;
24
+ }
25
+ throw new Error('verifyToken was called but no auth options (one of: jwk, secret, jwksUrl) were configured.');
26
+ }
27
+ function loadJwk(jwkString) {
28
+ return JSON.parse(jwkString);
29
+ }
30
+ function loadSecret(secret) {
31
+ return new TextEncoder().encode(secret);
32
+ }
33
+ async function verifyTokenImpl(token, verifyKey, verifyOptions) {
34
+ const { payload } = await jwtVerify(token, verifyKey, verifyOptions);
35
+ return payload;
36
+ }
37
+ //# sourceMappingURL=jwt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jwt.js","sourceRoot":"","sources":["../../../../../zero-cache/src/auth/jwt.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,SAAS,GAKV,MAAM,MAAM,CAAC;AAGd,MAAM,UAAU,gBAAgB,CAAC,MAAkB;IACjD,OAAO,CACL,MAAM,CAAC,GAAG,KAAK,SAAS;QACxB,MAAM,CAAC,OAAO,KAAK,SAAS;QAC5B,MAAM,CAAC,MAAM,KAAK,SAAS,CAC5B,CAAC;AACJ,CAAC;AAED,IAAI,YAA+D,CAAC;AACpE,SAAS,eAAe,CAAC,OAAe;IACtC,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,YAAY,GAAG,kBAAkB,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAkB,EAClB,KAAa,EACb,aAA0C;IAE1C,IAAI,MAAM,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,aAAa,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,eAAe,CAAC,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACrD,OAAO,CAAC,MAAM,SAAS,CAAC,KAAK,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC;IACvE,CAAC;IAED,MAAM,IAAI,KAAK,CACb,4FAA4F,CAC7F,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,SAAiB;IAChC,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAQ,CAAC;AACtC,CAAC;AAED,SAAS,UAAU,CAAC,MAAc;IAChC,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC1C,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,KAAa,EACb,SAAqC,EACrC,aAA0C;IAE1C,MAAM,EAAC,OAAO,EAAC,GAAG,MAAM,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;IAEnE,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -1,10 +1,10 @@
1
1
  import { LogContext } from '@rocicorp/logger';
2
2
  import type { JWTPayload } from 'jose';
3
- import type { UpsertOp, CRUDOp } from '../../../zero-protocol/src/mod.js';
4
- import { Database } from '../../../zqlite/src/db.js';
5
- import type { ZeroConfig } from '../config/zero-config.js';
3
+ import type { CRUDOp, UpsertOp } from '../../../zero-protocol/src/mod.js';
6
4
  import type { PermissionsConfig } from '../../../zero-schema/src/compiled-permissions.js';
7
5
  import type { Schema } from '../../../zero-schema/src/schema.js';
6
+ import { Database } from '../../../zqlite/src/db.js';
7
+ import type { ZeroConfig } from '../config/zero-config.js';
8
8
  export interface WriteAuthorizer {
9
9
  canPreMutation(authData: JWTPayload | undefined, ops: Exclude<CRUDOp, UpsertOp>[]): boolean;
10
10
  canPostMutation(authData: JWTPayload | undefined, ops: Exclude<CRUDOp, UpsertOp>[]): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"write-authorizer.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/auth/write-authorizer.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,MAAM,CAAC;AAQrC,OAAO,KAAK,EAGV,QAAQ,EAER,MAAM,EACP,MAAM,mCAAmC,CAAC;AAU3C,OAAO,EAAC,QAAQ,EAAC,MAAM,2BAA2B,CAAC;AAMnD,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,0BAA0B,CAAC;AAKzD,OAAO,KAAK,EACV,iBAAiB,EAElB,MAAM,kDAAkD,CAAC;AAE1D,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,oCAAoC,CAAC;AAW/D,MAAM,WAAW,eAAe;IAC9B,cAAc,CACZ,QAAQ,EAAE,UAAU,GAAG,SAAS,EAChC,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,GAC/B,OAAO,CAAC;IACX,eAAe,CACb,QAAQ,EAAE,UAAU,GAAG,SAAS,EAChC,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,GAC/B,OAAO,CAAC;IACX,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC;CAC1D;AAED,qBAAa,mBAAoB,YAAW,eAAe;;gBAWvD,EAAE,EAAE,UAAU,EACd,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,iBAAiB,CAAC,EAC3C,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,iBAAiB,GAAG,SAAS,EAC1C,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,MAAM;IAqBd,cAAc,CACZ,QAAQ,EAAE,UAAU,GAAG,SAAS,EAChC,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE;IAsBlC,eAAe,CACb,QAAQ,EAAE,UAAU,GAAG,SAAS,EAChC,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE;IAyDlC,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE;CAmSzD"}
1
+ {"version":3,"file":"write-authorizer.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/auth/write-authorizer.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,MAAM,CAAC;AAUrC,OAAO,KAAK,EACV,MAAM,EAIN,QAAQ,EACT,MAAM,mCAAmC,CAAC;AAK3C,OAAO,KAAK,EACV,iBAAiB,EAElB,MAAM,kDAAkD,CAAC;AAC1D,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,oCAAoC,CAAC;AAU/D,OAAO,EAAC,QAAQ,EAAC,MAAM,2BAA2B,CAAC;AAMnD,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,0BAA0B,CAAC;AAUzD,MAAM,WAAW,eAAe;IAC9B,cAAc,CACZ,QAAQ,EAAE,UAAU,GAAG,SAAS,EAChC,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,GAC/B,OAAO,CAAC;IACX,eAAe,CACb,QAAQ,EAAE,UAAU,GAAG,SAAS,EAChC,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,GAC/B,OAAO,CAAC;IACX,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC;CAC1D;AAED,qBAAa,mBAAoB,YAAW,eAAe;;gBAYvD,EAAE,EAAE,UAAU,EACd,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,iBAAiB,CAAC,EAC3C,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,iBAAiB,GAAG,SAAS,EAC1C,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,MAAM;IAsBd,cAAc,CACZ,QAAQ,EAAE,UAAU,GAAG,SAAS,EAChC,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE;IAsBlC,eAAe,CACb,QAAQ,EAAE,UAAU,GAAG,SAAS,EAChC,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE;IAyDlC,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE;CAmSzD"}
@@ -3,21 +3,21 @@ import { tmpdir } from 'node:os';
3
3
  import path from 'node:path';
4
4
  import { pid } from 'node:process';
5
5
  import { assert } from '../../../shared/src/asserts.js';
6
+ import { must } from '../../../shared/src/must.js';
6
7
  import { randInt } from '../../../shared/src/rand.js';
7
8
  import * as v from '../../../shared/src/valita.js';
8
9
  import { primaryKeyValueSchema, } from '../../../zero-protocol/src/primary-key.js';
9
10
  import { bindStaticParameters, buildPipeline, } from '../../../zql/src/builder/builder.js';
11
+ import { AuthQuery, authQuery } from '../../../zql/src/query/auth-query.js';
12
+ import { dnf } from '../../../zql/src/query/dnf.js';
10
13
  import { Database } from '../../../zqlite/src/db.js';
11
14
  import { compile, sql } from '../../../zqlite/src/internal/sql.js';
12
15
  import { fromSQLiteTypes, TableSource, } from '../../../zqlite/src/table-source.js';
13
16
  import { listTables } from '../db/lite-tables.js';
14
- import { mapLiteDataTypeToZqlSchemaValue } from '../types/lite.js';
17
+ import { StatementRunner } from '../db/statements.js';
15
18
  import { DatabaseStorage } from '../services/view-syncer/database-storage.js';
16
19
  import { setSpecs } from '../services/view-syncer/pipeline-driver.js';
17
- import { StatementRunner } from '../db/statements.js';
18
- import { AuthQuery, authQuery } from '../../../zql/src/query/auth-query.js';
19
- import { must } from '../../../shared/src/must.js';
20
- import { dnf } from '../../../zql/src/query/dnf.js';
20
+ import { mapLiteDataTypeToZqlSchemaValue } from '../types/lite.js';
21
21
  export class WriteAuthorizerImpl {
22
22
  #schema;
23
23
  #permissionsConfig;
@@ -27,7 +27,9 @@ export class WriteAuthorizerImpl {
27
27
  #tables = new Map();
28
28
  #statementRunner;
29
29
  #lc;
30
+ #clientGroupID;
30
31
  constructor(lc, config, schema, permissions, replica, cgID) {
32
+ this.#clientGroupID = cgID;
31
33
  this.#lc = lc.withContext('class', 'WriteAuthorizerImpl');
32
34
  this.#schema = schema;
33
35
  this.#permissionsConfig = permissions ?? {};
@@ -159,7 +161,7 @@ export class WriteAuthorizerImpl {
159
161
  }
160
162
  const { columns, primaryKey } = tableSpec.tableSpec;
161
163
  assert(primaryKey.length);
162
- source = new TableSource(this.#replica, tableName, Object.fromEntries(Object.entries(columns).map(([name, { dataType }]) => [
164
+ source = new TableSource(this.#clientGroupID, this.#replica, tableName, Object.fromEntries(Object.entries(columns).map(([name, { dataType }]) => [
163
165
  name,
164
166
  mapLiteDataTypeToZqlSchemaValue(dataType),
165
167
  ])), [primaryKey[0], ...primaryKey.slice(1)]);
@@ -272,8 +274,7 @@ export class WriteAuthorizerImpl {
272
274
  if (ret === undefined) {
273
275
  return ret;
274
276
  }
275
- fromSQLiteTypes(spec.zqlSpec, ret);
276
- return ret;
277
+ return fromSQLiteTypes(spec.zqlSpec, ret);
277
278
  }
278
279
  #requirePreMutationRow(op) {
279
280
  const ret = this.#getPreMutationRow(op);
@@ -1 +1 @@
1
- {"version":3,"file":"write-authorizer.js","sourceRoot":"","sources":["../../../../../zero-cache/src/auth/write-authorizer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"write-authorizer.js","sourceRoot":"","sources":["../../../../../zero-cache/src/auth/write-authorizer.ts"],"names":[],"mappings":"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"}