@adobe/data 0.9.60 → 0.9.61

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 (166) hide show
  1. package/dist/ecs/database/combine-plugins.d.ts +5 -1
  2. package/dist/ecs/database/combine-plugins.js +3 -3
  3. package/dist/ecs/database/combine-plugins.js.map +1 -1
  4. package/dist/ecs/database/create-plugin.d.ts +17 -14
  5. package/dist/ecs/database/create-plugin.js +2 -1
  6. package/dist/ecs/database/create-plugin.js.map +1 -1
  7. package/dist/ecs/database/database.d.ts +32 -4
  8. package/dist/ecs/database/database.index.performance.test.d.ts +1 -0
  9. package/dist/ecs/database/database.index.performance.test.js +417 -0
  10. package/dist/ecs/database/database.index.performance.test.js.map +1 -0
  11. package/dist/ecs/database/database.index.test.d.ts +1 -0
  12. package/dist/ecs/database/database.index.test.js +762 -0
  13. package/dist/ecs/database/database.index.test.js.map +1 -0
  14. package/dist/ecs/database/database.index.type-test.d.ts +1 -0
  15. package/dist/ecs/database/database.index.type-test.js +275 -0
  16. package/dist/ecs/database/database.index.type-test.js.map +1 -0
  17. package/dist/ecs/database/database.js.map +1 -1
  18. package/dist/ecs/database/deep-extends-chain.type-test.d.ts +256 -256
  19. package/dist/ecs/database/index-api-proof.type-test.d.ts +1 -0
  20. package/dist/ecs/database/index-api-proof.type-test.js +88 -0
  21. package/dist/ecs/database/index-api-proof.type-test.js.map +1 -0
  22. package/dist/ecs/database/index-registry/create-index-registry.d.ts +53 -0
  23. package/dist/ecs/database/index-registry/create-index-registry.js +174 -0
  24. package/dist/ecs/database/index-registry/create-index-registry.js.map +1 -0
  25. package/dist/ecs/database/index-registry/create-index.d.ts +60 -0
  26. package/dist/ecs/database/index-registry/create-index.js +539 -0
  27. package/dist/ecs/database/index-registry/create-index.js.map +1 -0
  28. package/dist/ecs/database/index-registry/index.d.ts +4 -0
  29. package/dist/ecs/database/index-registry/index.js +4 -0
  30. package/dist/ecs/database/index-registry/index.js.map +1 -0
  31. package/dist/ecs/database/public/create-database.js +146 -0
  32. package/dist/ecs/database/public/create-database.js.map +1 -1
  33. package/dist/ecs/database/transactional-store/transactional-store.d.ts +3 -2
  34. package/dist/ecs/plugins/scheduler/scheduler.d.ts +1 -0
  35. package/dist/ecs/store/index-types.d.ts +132 -0
  36. package/dist/ecs/store/index-types.js +3 -0
  37. package/dist/ecs/store/index-types.js.map +1 -0
  38. package/dist/ecs/store/public/create-store.js +189 -3
  39. package/dist/ecs/store/public/create-store.js.map +1 -1
  40. package/dist/ecs/store/store.d.ts +30 -13
  41. package/dist/ecs/store/store.js +5 -4
  42. package/dist/ecs/store/store.js.map +1 -1
  43. package/dist/ecs/store/transaction-functions.d.ts +4 -3
  44. package/dist/schema/fractional-index/between-n.d.ts +2 -0
  45. package/dist/schema/fractional-index/between-n.js +34 -0
  46. package/dist/schema/fractional-index/between-n.js.map +1 -0
  47. package/dist/schema/fractional-index/between-n.test.d.ts +1 -0
  48. package/dist/schema/fractional-index/between-n.test.js +36 -0
  49. package/dist/schema/fractional-index/between-n.test.js.map +1 -0
  50. package/dist/schema/fractional-index/between.d.ts +2 -0
  51. package/dist/schema/fractional-index/between.js +3 -0
  52. package/dist/schema/fractional-index/between.js.map +1 -0
  53. package/dist/schema/fractional-index/between.test.d.ts +1 -0
  54. package/dist/schema/fractional-index/between.test.js +68 -0
  55. package/dist/schema/fractional-index/between.test.js.map +1 -0
  56. package/dist/schema/fractional-index/decrement-integer.d.ts +1 -0
  57. package/dist/schema/fractional-index/decrement-integer.js +32 -0
  58. package/dist/schema/fractional-index/decrement-integer.js.map +1 -0
  59. package/dist/schema/fractional-index/decrement-integer.test.d.ts +1 -0
  60. package/dist/schema/fractional-index/decrement-integer.test.js +31 -0
  61. package/dist/schema/fractional-index/decrement-integer.test.js.map +1 -0
  62. package/dist/schema/fractional-index/digits.d.ts +1 -0
  63. package/dist/schema/fractional-index/digits.js +3 -0
  64. package/dist/schema/fractional-index/digits.js.map +1 -0
  65. package/dist/schema/fractional-index/fractional-index.d.ts +4 -0
  66. package/dist/schema/fractional-index/fractional-index.js +2 -0
  67. package/dist/schema/fractional-index/fractional-index.js.map +1 -0
  68. package/dist/schema/fractional-index/increment-integer.d.ts +1 -0
  69. package/dist/schema/fractional-index/increment-integer.js +32 -0
  70. package/dist/schema/fractional-index/increment-integer.js.map +1 -0
  71. package/dist/schema/fractional-index/increment-integer.test.d.ts +1 -0
  72. package/dist/schema/fractional-index/increment-integer.test.js +34 -0
  73. package/dist/schema/fractional-index/increment-integer.test.js.map +1 -0
  74. package/dist/schema/fractional-index/initial.d.ts +2 -0
  75. package/dist/schema/fractional-index/initial.js +2 -0
  76. package/dist/schema/fractional-index/initial.js.map +1 -0
  77. package/dist/schema/fractional-index/integer-length.d.ts +1 -0
  78. package/dist/schema/fractional-index/integer-length.js +9 -0
  79. package/dist/schema/fractional-index/integer-length.js.map +1 -0
  80. package/dist/schema/fractional-index/integer-part.d.ts +1 -0
  81. package/dist/schema/fractional-index/integer-part.js +9 -0
  82. package/dist/schema/fractional-index/integer-part.js.map +1 -0
  83. package/dist/schema/fractional-index/key-between.d.ts +2 -0
  84. package/dist/schema/fractional-index/key-between.js +39 -0
  85. package/dist/schema/fractional-index/key-between.js.map +1 -0
  86. package/dist/schema/fractional-index/midpoint.d.ts +1 -0
  87. package/dist/schema/fractional-index/midpoint.js +23 -0
  88. package/dist/schema/fractional-index/midpoint.js.map +1 -0
  89. package/dist/schema/fractional-index/midpoint.test.d.ts +1 -0
  90. package/dist/schema/fractional-index/midpoint.test.js +83 -0
  91. package/dist/schema/fractional-index/midpoint.test.js.map +1 -0
  92. package/dist/schema/fractional-index/public.d.ts +4 -0
  93. package/dist/schema/fractional-index/public.js +6 -0
  94. package/dist/schema/fractional-index/public.js.map +1 -0
  95. package/dist/schema/fractional-index/schema.d.ts +4 -0
  96. package/dist/schema/fractional-index/schema.js +5 -0
  97. package/dist/schema/fractional-index/schema.js.map +1 -0
  98. package/dist/schema/fractional-index/smallest-integer.d.ts +1 -0
  99. package/dist/schema/fractional-index/smallest-integer.js +3 -0
  100. package/dist/schema/fractional-index/smallest-integer.js.map +1 -0
  101. package/dist/schema/fractional-index/validate-integer.d.ts +1 -0
  102. package/dist/schema/fractional-index/validate-integer.js +7 -0
  103. package/dist/schema/fractional-index/validate-integer.js.map +1 -0
  104. package/dist/schema/fractional-index/validate-order-key.d.ts +1 -0
  105. package/dist/schema/fractional-index/validate-order-key.js +11 -0
  106. package/dist/schema/fractional-index/validate-order-key.js.map +1 -0
  107. package/dist/schema/guid/create.d.ts +2 -0
  108. package/dist/schema/guid/create.js +10 -0
  109. package/dist/schema/guid/create.js.map +1 -0
  110. package/dist/schema/guid/create.test.d.ts +1 -0
  111. package/dist/schema/guid/create.test.js +39 -0
  112. package/dist/schema/guid/create.test.js.map +1 -0
  113. package/dist/schema/guid/equals.d.ts +2 -0
  114. package/dist/schema/guid/equals.js +3 -0
  115. package/dist/schema/guid/equals.js.map +1 -0
  116. package/dist/schema/guid/equals.test.d.ts +1 -0
  117. package/dist/schema/guid/equals.test.js +30 -0
  118. package/dist/schema/guid/equals.test.js.map +1 -0
  119. package/dist/schema/guid/from-uuid.d.ts +2 -0
  120. package/dist/schema/guid/from-uuid.js +15 -0
  121. package/dist/schema/guid/from-uuid.js.map +1 -0
  122. package/dist/schema/guid/from-uuid.test.d.ts +1 -0
  123. package/dist/schema/guid/from-uuid.test.js +39 -0
  124. package/dist/schema/guid/from-uuid.test.js.map +1 -0
  125. package/dist/schema/guid/guid.performance.test.d.ts +1 -0
  126. package/dist/schema/guid/guid.performance.test.js +297 -0
  127. package/dist/schema/guid/guid.performance.test.js.map +1 -0
  128. package/dist/schema/guid/index.d.ts +4 -0
  129. package/dist/schema/guid/index.js +3 -0
  130. package/dist/schema/guid/index.js.map +1 -0
  131. package/dist/schema/guid/layout.d.ts +1 -0
  132. package/dist/schema/guid/layout.js +5 -0
  133. package/dist/schema/guid/layout.js.map +1 -0
  134. package/dist/schema/guid/nil.d.ts +2 -0
  135. package/dist/schema/guid/nil.js +3 -0
  136. package/dist/schema/guid/nil.js.map +1 -0
  137. package/dist/schema/guid/public.d.ts +8 -0
  138. package/dist/schema/guid/public.js +10 -0
  139. package/dist/schema/guid/public.js.map +1 -0
  140. package/dist/schema/guid/schema.d.ts +12 -0
  141. package/dist/schema/guid/schema.js +10 -0
  142. package/dist/schema/guid/schema.js.map +1 -0
  143. package/dist/schema/guid/schema.test.d.ts +1 -0
  144. package/dist/schema/guid/schema.test.js +35 -0
  145. package/dist/schema/guid/schema.test.js.map +1 -0
  146. package/dist/schema/guid/to-unserializable-key.d.ts +2 -0
  147. package/dist/schema/guid/to-unserializable-key.js +10 -0
  148. package/dist/schema/guid/to-unserializable-key.js.map +1 -0
  149. package/dist/schema/guid/to-uuid.d.ts +2 -0
  150. package/dist/schema/guid/to-uuid.js +15 -0
  151. package/dist/schema/guid/to-uuid.js.map +1 -0
  152. package/dist/schema/guid/to-uuid.test.d.ts +1 -0
  153. package/dist/schema/guid/to-uuid.test.js +31 -0
  154. package/dist/schema/guid/to-uuid.test.js.map +1 -0
  155. package/dist/schema/index.d.ts +2 -0
  156. package/dist/schema/index.js +2 -0
  157. package/dist/schema/index.js.map +1 -1
  158. package/dist/table/select-rows.d.ts +7 -4
  159. package/dist/table/select-rows.js.map +1 -1
  160. package/dist/tsconfig.tsbuildinfo +1 -1
  161. package/package.json +1 -1
  162. package/references/data-lit/package.json +1 -1
  163. package/references/data-lit-tictactoe/package.json +1 -1
  164. package/references/data-react/package.json +1 -1
  165. package/references/data-react-hello/package.json +1 -1
  166. package/references/data-react-pixie/package.json +1 -1
@@ -0,0 +1,297 @@
1
+ // © 2026 Adobe. MIT License. See /LICENSE for details.
2
+ //
3
+ // Compares three Guid storage strategies (write, read, memory) and two Map key
4
+ // strategies (string vs bigint) at large N. Run with:
5
+ // npx vitest run src/schema/guid/guid.performance.test.ts
6
+ import { describe, it, expect } from "vitest";
7
+ import { createStructBuffer } from "../../typed-buffer/index.js";
8
+ import { Guid } from "./index.js";
9
+ // ─── constants ────────────────────────────────────────────────────────────────
10
+ const N_STORAGE = 1_000_000;
11
+ const N_MAP = 100_000;
12
+ // ─── helpers ──────────────────────────────────────────────────────────────────
13
+ const hrNow = () => {
14
+ if (typeof process !== "undefined" && process.hrtime?.bigint) {
15
+ return Number(process.hrtime.bigint()) / 1e6; // → ms
16
+ }
17
+ return performance.now();
18
+ };
19
+ // LCG: deterministic, varied, no crypto overhead, no duplicates up to 2^32
20
+ const makeGuid = (i) => [
21
+ (i * 1_664_525 + 1_013_904_223) >>> 0,
22
+ (i * 22_695_477 + 1) >>> 0,
23
+ (i * 6_364_136_223 + 1_442_695_037) >>> 0,
24
+ (i * 3_935_559_000 + 2_691_343_689) >>> 0,
25
+ ];
26
+ // Pack [a,b,c,d] u32s into two BigUint64 slots (same 16-byte footprint as struct)
27
+ const packHigh = (g) => (BigInt(g[0]) << 32n) | BigInt(g[1]);
28
+ const packLow = (g) => (BigInt(g[2]) << 32n) | BigInt(g[3]);
29
+ const unpackBigUint = (hi, lo) => [
30
+ Number(hi >> 32n),
31
+ Number(hi & 0xffffffffn),
32
+ Number(lo >> 32n),
33
+ Number(lo & 0xffffffffn),
34
+ ];
35
+ // Pack all 128 bits into a single BigInt (for heap-array and Map-key variants)
36
+ const guidToBigInt = (g) => (BigInt(g[0]) << 96n) | (BigInt(g[1]) << 64n) | (BigInt(g[2]) << 32n) | BigInt(g[3]);
37
+ // Alias for readability in this test file
38
+ const { toUnserializableKey } = Guid;
39
+ // V8 heap-size estimates (64-bit process, pointer compression off):
40
+ // SeqOneByteString (all chars ≤ 255, e.g. ASCII UUID):
41
+ // ~24-byte header + 1 byte/char, 8-byte aligned → 36-char UUID ≈ 64 bytes
42
+ // SeqTwoByteString (any char > 255, e.g. our min-string):
43
+ // ~24-byte header + 2 bytes/char, 8-byte aligned → 8-char min ≈ 40 bytes
44
+ // BigInt 128-bit (2 × 64-bit digits):
45
+ // ~24-byte header + 16 bytes data → ≈ 40 bytes
46
+ // Map entry overhead (V8 OrderedHashMap bucket + SmallOrderedHashTable):
47
+ // ≈ 48 bytes per entry regardless of key type
48
+ const KEY_MEM_UUID = 64; // bytes
49
+ const KEY_MEM_BIGINT = 40; // bytes
50
+ const KEY_MEM_MIN = 40; // bytes
51
+ const MAP_ENTRY_MEM = 48; // bytes per entry (key + value pointers + bucket chain)
52
+ const mb = (bytes) => `${(bytes / 1024 / 1024).toFixed(1)} MB`;
53
+ const nsPerOp = (ms, n) => `${(ms * 1e6 / n).toFixed(2)} ns/op`;
54
+ // ─── storage: write ───────────────────────────────────────────────────────────
55
+ describe(`Guid storage write (N = ${N_STORAGE.toLocaleString()})`, () => {
56
+ it("StructTypedBuffer (4×u32, SharedArrayBuffer)", () => {
57
+ const guids = Array.from({ length: N_STORAGE }, (_, i) => makeGuid(i));
58
+ const buf = createStructBuffer(Guid.schema, N_STORAGE);
59
+ // warmup
60
+ for (let j = 0; j < 10_000; j++)
61
+ buf.set(j, guids[j]);
62
+ const t0 = hrNow();
63
+ for (let i = 0; i < N_STORAGE; i++)
64
+ buf.set(i, guids[i]);
65
+ const ms = hrNow() - t0;
66
+ const bytes = buf.typedArrayElementSizeInBytes * N_STORAGE;
67
+ console.log(` StructTypedBuffer write: ${nsPerOp(ms, N_STORAGE)} memory: ${mb(bytes)}`);
68
+ expect(ms).toBeGreaterThan(0);
69
+ expect(bytes).toBe(16 * N_STORAGE);
70
+ });
71
+ it("BigUint64Array packed (2×u64, same 16-byte footprint)", () => {
72
+ const guids = Array.from({ length: N_STORAGE }, (_, i) => makeGuid(i));
73
+ const arr = new BigUint64Array(N_STORAGE * 2);
74
+ // warmup
75
+ for (let j = 0; j < 10_000; j++) {
76
+ arr[j * 2] = packHigh(guids[j]);
77
+ arr[j * 2 + 1] = packLow(guids[j]);
78
+ }
79
+ const t0 = hrNow();
80
+ for (let i = 0; i < N_STORAGE; i++) {
81
+ arr[i * 2] = packHigh(guids[i]);
82
+ arr[i * 2 + 1] = packLow(guids[i]);
83
+ }
84
+ const ms = hrNow() - t0;
85
+ console.log(` BigUint64Array write: ${nsPerOp(ms, N_STORAGE)} memory: ${mb(arr.byteLength)}`);
86
+ expect(ms).toBeGreaterThan(0);
87
+ expect(arr.byteLength).toBe(16 * N_STORAGE);
88
+ });
89
+ it("Array<bigint> heap (1×128-bit BigInt per entry)", () => {
90
+ const guids = Array.from({ length: N_STORAGE }, (_, i) => makeGuid(i));
91
+ const arr = new Array(N_STORAGE);
92
+ // warmup
93
+ for (let j = 0; j < 10_000; j++)
94
+ arr[j] = guidToBigInt(guids[j]);
95
+ const t0 = hrNow();
96
+ for (let i = 0; i < N_STORAGE; i++)
97
+ arr[i] = guidToBigInt(guids[i]);
98
+ const ms = hrNow() - t0;
99
+ // Array<bigint> has no .byteLength; each BigInt object is a V8 heap alloc
100
+ console.log(` Array<bigint> write: ${nsPerOp(ms, N_STORAGE)} memory: heap (each BigInt ~32+ bytes → ~${mb(32 * N_STORAGE)} est.)`);
101
+ expect(ms).toBeGreaterThan(0);
102
+ expect(typeof arr[0]).toBe("bigint");
103
+ });
104
+ });
105
+ // ─── storage: read ────────────────────────────────────────────────────────────
106
+ describe(`Guid storage read (N = ${N_STORAGE.toLocaleString()})`, () => {
107
+ it("StructTypedBuffer (4×u32 → Guid tuple)", () => {
108
+ const guids = Array.from({ length: N_STORAGE }, (_, i) => makeGuid(i));
109
+ const buf = createStructBuffer(Guid.schema, N_STORAGE);
110
+ for (let i = 0; i < N_STORAGE; i++)
111
+ buf.set(i, guids[i]);
112
+ // warmup
113
+ let sink = 0;
114
+ for (let j = 0; j < 10_000; j++)
115
+ sink += buf.get(j)[0];
116
+ const t0 = hrNow();
117
+ for (let i = 0; i < N_STORAGE; i++)
118
+ sink += buf.get(i)[0];
119
+ const ms = hrNow() - t0;
120
+ console.log(` StructTypedBuffer read: ${nsPerOp(ms, N_STORAGE)}`);
121
+ expect(sink).toBeGreaterThan(0); // prevent dead-code elimination
122
+ });
123
+ it("BigUint64Array packed (2×u64 → Guid tuple via unpack)", () => {
124
+ const guids = Array.from({ length: N_STORAGE }, (_, i) => makeGuid(i));
125
+ const arr = new BigUint64Array(N_STORAGE * 2);
126
+ for (let i = 0; i < N_STORAGE; i++) {
127
+ arr[i * 2] = packHigh(guids[i]);
128
+ arr[i * 2 + 1] = packLow(guids[i]);
129
+ }
130
+ // warmup
131
+ let sink = 0;
132
+ for (let j = 0; j < 10_000; j++)
133
+ sink += unpackBigUint(arr[j * 2], arr[j * 2 + 1])[0];
134
+ const t0 = hrNow();
135
+ for (let i = 0; i < N_STORAGE; i++) {
136
+ sink += unpackBigUint(arr[i * 2], arr[i * 2 + 1])[0];
137
+ }
138
+ const ms = hrNow() - t0;
139
+ console.log(` BigUint64Array read: ${nsPerOp(ms, N_STORAGE)}`);
140
+ expect(sink).toBeGreaterThan(0);
141
+ });
142
+ it("Array<bigint> heap (128-bit BigInt → Guid tuple via unpack)", () => {
143
+ const guids = Array.from({ length: N_STORAGE }, (_, i) => makeGuid(i));
144
+ const arr = new Array(N_STORAGE);
145
+ for (let i = 0; i < N_STORAGE; i++)
146
+ arr[i] = guidToBigInt(guids[i]);
147
+ // warmup
148
+ let sink = 0;
149
+ for (let j = 0; j < 10_000; j++) {
150
+ const v = arr[j];
151
+ sink += Number(v >> 96n);
152
+ }
153
+ const t0 = hrNow();
154
+ for (let i = 0; i < N_STORAGE; i++) {
155
+ const v = arr[i];
156
+ sink += Number(v >> 96n);
157
+ }
158
+ const ms = hrNow() - t0;
159
+ console.log(` Array<bigint> read: ${nsPerOp(ms, N_STORAGE)}`);
160
+ expect(sink).toBeGreaterThan(0);
161
+ });
162
+ });
163
+ // ─── map key: uuid-string vs bigint vs min-string ────────────────────────────
164
+ describe(`Guid Map key comparison (N = ${N_MAP.toLocaleString()})`, () => {
165
+ const totalMem = (keyMem) => {
166
+ const bytes = (keyMem + MAP_ENTRY_MEM) * N_MAP;
167
+ return `~${mb(bytes)} total (${keyMem}B/key + ${MAP_ENTRY_MEM}B/entry)`;
168
+ };
169
+ // ── set ──────────────────────────────────────────────────────────────────
170
+ it("Map<string> set — 36-char UUID string", () => {
171
+ const guids = Array.from({ length: N_MAP }, (_, i) => makeGuid(i));
172
+ const keys = guids.map(Guid.toUUID);
173
+ const map = new Map();
174
+ for (let j = 0; j < 1_000; j++)
175
+ map.set(keys[j], j);
176
+ map.clear();
177
+ const t0 = hrNow();
178
+ for (let i = 0; i < N_MAP; i++)
179
+ map.set(keys[i], i);
180
+ const ms = hrNow() - t0;
181
+ console.log(` Map<uuid-string> set: ${nsPerOp(ms, N_MAP)} mem: ${totalMem(KEY_MEM_UUID)}`);
182
+ expect(map.size).toBe(N_MAP);
183
+ });
184
+ it("Map<bigint> set — 128-bit BigInt", () => {
185
+ const guids = Array.from({ length: N_MAP }, (_, i) => makeGuid(i));
186
+ const keys = guids.map(guidToBigInt);
187
+ const map = new Map();
188
+ for (let j = 0; j < 1_000; j++)
189
+ map.set(keys[j], j);
190
+ map.clear();
191
+ const t0 = hrNow();
192
+ for (let i = 0; i < N_MAP; i++)
193
+ map.set(keys[i], i);
194
+ const ms = hrNow() - t0;
195
+ console.log(` Map<bigint> set: ${nsPerOp(ms, N_MAP)} mem: ${totalMem(KEY_MEM_BIGINT)}`);
196
+ expect(map.size).toBe(N_MAP);
197
+ });
198
+ it("Map<string> set — 8-char min UTF-16 string", () => {
199
+ const guids = Array.from({ length: N_MAP }, (_, i) => makeGuid(i));
200
+ const keys = guids.map(toUnserializableKey);
201
+ const map = new Map();
202
+ for (let j = 0; j < 1_000; j++)
203
+ map.set(keys[j], j);
204
+ map.clear();
205
+ const t0 = hrNow();
206
+ for (let i = 0; i < N_MAP; i++)
207
+ map.set(keys[i], i);
208
+ const ms = hrNow() - t0;
209
+ console.log(` Map<min-string> set: ${nsPerOp(ms, N_MAP)} mem: ${totalMem(KEY_MEM_MIN)}`);
210
+ expect(map.size).toBe(N_MAP);
211
+ });
212
+ // ── get ──────────────────────────────────────────────────────────────────
213
+ it("Map<string> get — 36-char UUID string", () => {
214
+ const guids = Array.from({ length: N_MAP }, (_, i) => makeGuid(i));
215
+ const keys = guids.map(Guid.toUUID);
216
+ const map = new Map(keys.map((k, i) => [k, i]));
217
+ let sink = 0;
218
+ for (let j = 0; j < 1_000; j++)
219
+ sink += map.get(keys[j]);
220
+ const t0 = hrNow();
221
+ for (let i = 0; i < N_MAP; i++)
222
+ sink += map.get(keys[i]);
223
+ const ms = hrNow() - t0;
224
+ console.log(` Map<uuid-string> get: ${nsPerOp(ms, N_MAP)}`);
225
+ expect(sink).toBeGreaterThan(0);
226
+ });
227
+ it("Map<bigint> get — 128-bit BigInt", () => {
228
+ const guids = Array.from({ length: N_MAP }, (_, i) => makeGuid(i));
229
+ const keys = guids.map(guidToBigInt);
230
+ const map = new Map(keys.map((k, i) => [k, i]));
231
+ let sink = 0;
232
+ for (let j = 0; j < 1_000; j++)
233
+ sink += map.get(keys[j]);
234
+ const t0 = hrNow();
235
+ for (let i = 0; i < N_MAP; i++)
236
+ sink += map.get(keys[i]);
237
+ const ms = hrNow() - t0;
238
+ console.log(` Map<bigint> get: ${nsPerOp(ms, N_MAP)}`);
239
+ expect(sink).toBeGreaterThan(0);
240
+ });
241
+ it("Map<string> get — 8-char min UTF-16 string", () => {
242
+ const guids = Array.from({ length: N_MAP }, (_, i) => makeGuid(i));
243
+ const keys = guids.map(toUnserializableKey);
244
+ const map = new Map(keys.map((k, i) => [k, i]));
245
+ let sink = 0;
246
+ for (let j = 0; j < 1_000; j++)
247
+ sink += map.get(keys[j]);
248
+ const t0 = hrNow();
249
+ for (let i = 0; i < N_MAP; i++)
250
+ sink += map.get(keys[i]);
251
+ const ms = hrNow() - t0;
252
+ console.log(` Map<min-string> get: ${nsPerOp(ms, N_MAP)}`);
253
+ expect(sink).toBeGreaterThan(0);
254
+ });
255
+ // ── key encoding cost ─────────────────────────────────────────────────────
256
+ // Measures the conversion from Guid → key, excluding the Map operation itself
257
+ it("key encoding cost — toString vs guidToBigInt vs toUnserializableKey", () => {
258
+ const guids = Array.from({ length: N_MAP }, (_, i) => makeGuid(i));
259
+ // uuid-string
260
+ {
261
+ let sink = "";
262
+ for (let j = 0; j < 1_000; j++)
263
+ sink += Guid.toUUID(guids[j]).length;
264
+ const t0 = hrNow();
265
+ for (let i = 0; i < N_MAP; i++)
266
+ sink += Guid.toUUID(guids[i]).length;
267
+ const ms = hrNow() - t0;
268
+ console.log(` toUUID encode: ${nsPerOp(ms, N_MAP)} key len: 36 chars`);
269
+ expect(sink.length).toBeGreaterThan(0);
270
+ }
271
+ // bigint
272
+ {
273
+ let sink = 0n;
274
+ for (let j = 0; j < 1_000; j++)
275
+ sink += guidToBigInt(guids[j]);
276
+ const t0 = hrNow();
277
+ for (let i = 0; i < N_MAP; i++)
278
+ sink += guidToBigInt(guids[i]);
279
+ const ms = hrNow() - t0;
280
+ console.log(` bigint encode: ${nsPerOp(ms, N_MAP)} key len: n/a`);
281
+ expect(sink).toBeGreaterThan(0n);
282
+ }
283
+ // min-string
284
+ {
285
+ let sink = "";
286
+ for (let j = 0; j < 1_000; j++)
287
+ sink += toUnserializableKey(guids[j]).length;
288
+ const t0 = hrNow();
289
+ for (let i = 0; i < N_MAP; i++)
290
+ sink += toUnserializableKey(guids[i]).length;
291
+ const ms = hrNow() - t0;
292
+ console.log(` min-string encode: ${nsPerOp(ms, N_MAP)} key len: 8 chars`);
293
+ expect(sink.length).toBeGreaterThan(0);
294
+ }
295
+ });
296
+ });
297
+ //# sourceMappingURL=guid.performance.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guid.performance.test.js","sourceRoot":"","sources":["../../../src/schema/guid/guid.performance.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { ToType } from "../to-type.js";
2
+ import { schema } from "./schema.js";
3
+ export type Guid = ToType<typeof schema>;
4
+ export * as Guid from "./public.js";
@@ -0,0 +1,3 @@
1
+ // © 2026 Adobe. MIT License. See /LICENSE for details.
2
+ export * as Guid from "./public.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/schema/guid/index.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAOvD,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const layout: import("../../typed-buffer/index.js").StructLayout;
@@ -0,0 +1,5 @@
1
+ // © 2026 Adobe. MIT License. See /LICENSE for details.
2
+ import { getStructLayout } from "../../typed-buffer/index.js";
3
+ import { schema } from "./schema.js";
4
+ export const layout = getStructLayout(schema);
5
+ //# sourceMappingURL=layout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.js","sourceRoot":"","sources":["../../../src/schema/guid/layout.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAEvD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,CAAC,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { Guid } from "./index.js";
2
+ export declare const nil: Guid;
@@ -0,0 +1,3 @@
1
+ // © 2026 Adobe. MIT License. See /LICENSE for details.
2
+ export const nil = [0, 0, 0, 0];
3
+ //# sourceMappingURL=nil.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nil.js","sourceRoot":"","sources":["../../../src/schema/guid/nil.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAIvD,MAAM,CAAC,MAAM,GAAG,GAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ export { schema } from "./schema.js";
2
+ export { layout } from "./layout.js";
3
+ export { nil } from "./nil.js";
4
+ export { create } from "./create.js";
5
+ export { equals } from "./equals.js";
6
+ export { toUUID } from "./to-uuid.js";
7
+ export { fromUUID } from "./from-uuid.js";
8
+ export { toUnserializableKey } from "./to-unserializable-key.js";
@@ -0,0 +1,10 @@
1
+ // © 2026 Adobe. MIT License. See /LICENSE for details.
2
+ export { schema } from "./schema.js";
3
+ export { layout } from "./layout.js";
4
+ export { nil } from "./nil.js";
5
+ export { create } from "./create.js";
6
+ export { equals } from "./equals.js";
7
+ export { toUUID } from "./to-uuid.js";
8
+ export { fromUUID } from "./from-uuid.js";
9
+ export { toUnserializableKey } from "./to-unserializable-key.js";
10
+ //# sourceMappingURL=public.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public.js","sourceRoot":"","sources":["../../../src/schema/guid/public.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAEvD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,12 @@
1
+ export declare const schema: {
2
+ readonly type: "array";
3
+ readonly items: {
4
+ readonly type: "integer";
5
+ readonly minimum: 0;
6
+ readonly maximum: 4294967295;
7
+ readonly default: number;
8
+ };
9
+ readonly minItems: 4;
10
+ readonly maxItems: 4;
11
+ readonly default: readonly [0, 0, 0, 0];
12
+ };
@@ -0,0 +1,10 @@
1
+ // © 2026 Adobe. MIT License. See /LICENSE for details.
2
+ import { U32 } from "../../math/u32/index.js";
3
+ export const schema = {
4
+ type: 'array',
5
+ items: U32.schema,
6
+ minItems: 4,
7
+ maxItems: 4,
8
+ default: [0, 0, 0, 0],
9
+ };
10
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/schema/guid/schema.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAEvD,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAG9C,MAAM,CAAC,MAAM,MAAM,GAAG;IAClB,IAAI,EAAE,OAAO;IACb,KAAK,EAAE,GAAG,CAAC,MAAM;IACjB,QAAQ,EAAE,CAAC;IACX,QAAQ,EAAE,CAAC;IACX,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;CACE,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,35 @@
1
+ // © 2026 Adobe. MIT License. See /LICENSE for details.
2
+ import { describe, it, expect } from "vitest";
3
+ import { getStructLayout, createStructBuffer } from "../../typed-buffer/index.js";
4
+ import { Guid } from "./index.js";
5
+ describe("Guid schema — struct layout", () => {
6
+ it("produces a valid struct layout of 16 bytes with 4 u32 fields", () => {
7
+ const layout = getStructLayout(Guid.schema);
8
+ expect(layout.size).toBe(16);
9
+ expect(layout.type).toBe("array");
10
+ expect(layout.fields["0"]).toEqual({ offset: 0, type: "u32" });
11
+ expect(layout.fields["1"]).toEqual({ offset: 4, type: "u32" });
12
+ expect(layout.fields["2"]).toEqual({ offset: 8, type: "u32" });
13
+ expect(layout.fields["3"]).toEqual({ offset: 12, type: "u32" });
14
+ });
15
+ it("getStructLayout does not throw for the schema", () => {
16
+ expect(() => getStructLayout(Guid.schema)).not.toThrow();
17
+ });
18
+ it("round-trips through a StructTypedBuffer", () => {
19
+ const buf = createStructBuffer(Guid.schema, 4);
20
+ const g = [0x12345678, 0x9abcdef0, 0x11223344, 0x55667788];
21
+ buf.set(0, g);
22
+ const result = buf.get(0);
23
+ expect(Guid.equals(result, g)).toBe(true);
24
+ });
25
+ it("stores two distinct Guids independently", () => {
26
+ const buf = createStructBuffer(Guid.schema, 4);
27
+ const g1 = [1, 2, 3, 4];
28
+ const g2 = [5, 6, 7, 8];
29
+ buf.set(0, g1);
30
+ buf.set(1, g2);
31
+ expect(Guid.equals(buf.get(0), g1)).toBe(true);
32
+ expect(Guid.equals(buf.get(1), g2)).toBe(true);
33
+ });
34
+ });
35
+ //# sourceMappingURL=schema.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.test.js","sourceRoot":"","sources":["../../../src/schema/guid/schema.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { Guid } from "./index.js";
2
+ export declare const toUnserializableKey: ([a, b, c, d]: Guid) => string;
@@ -0,0 +1,10 @@
1
+ // © 2026 Adobe. MIT License. See /LICENSE for details.
2
+ // Encodes a Guid as an 8-char WTF-16 string by splitting each u32 into two
3
+ // u16 code units via String.fromCharCode. This is the shortest possible JS
4
+ // string that losslessly represents 128 bits.
5
+ //
6
+ // Use ONLY as a transient Map/Set key within a single JS process. Do NOT
7
+ // serialize, transmit, JSON.stringify, or store the result: some code units
8
+ // may be lone surrogates (0xD800–0xDFFF), which corrupt on serialization.
9
+ export const toUnserializableKey = ([a, b, c, d]) => String.fromCharCode(a >>> 16, a & 0xFFFF, b >>> 16, b & 0xFFFF, c >>> 16, c & 0xFFFF, d >>> 16, d & 0xFFFF);
10
+ //# sourceMappingURL=to-unserializable-key.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"to-unserializable-key.js","sourceRoot":"","sources":["../../../src/schema/guid/to-unserializable-key.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAIvD,2EAA2E;AAC3E,2EAA2E;AAC3E,8CAA8C;AAC9C,EAAE;AACF,yEAAyE;AACzE,4EAA4E;AAC5E,0EAA0E;AAC1E,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAO,EAAU,EAAE,CAC9D,MAAM,CAAC,YAAY,CACf,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,MAAM,EACpB,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,MAAM,EACpB,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,MAAM,EACpB,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,MAAM,CACvB,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { Guid } from "./index.js";
2
+ export declare const toUUID: ([a, b, c, d]: Guid) => string;
@@ -0,0 +1,15 @@
1
+ // © 2026 Adobe. MIT License. See /LICENSE for details.
2
+ const hex = (n, len) => (n >>> 0).toString(16).padStart(len, "0");
3
+ // Maps [a, b, c, d] → "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" (~950 ns/call)
4
+ // a=bits 0-31, b=bits 32-63 (upper→seg2, lower→seg3),
5
+ // c=bits 64-95 (upper→seg4, lower→seg5 prefix), d=bits 96-127
6
+ // For a fast in-process Map key use toUnserializableKey (~87 ns/call) instead.
7
+ export const toUUID = ([a, b, c, d]) => {
8
+ const s1 = hex(a, 8);
9
+ const s2 = hex(b >>> 16, 4);
10
+ const s3 = hex(b & 0xFFFF, 4);
11
+ const s4 = hex(c >>> 16, 4);
12
+ const s5 = hex(c & 0xFFFF, 4) + hex(d, 8);
13
+ return `${s1}-${s2}-${s3}-${s4}-${s5}`;
14
+ };
15
+ //# sourceMappingURL=to-uuid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"to-uuid.js","sourceRoot":"","sources":["../../../src/schema/guid/to-uuid.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAIvD,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,GAAW,EAAU,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAE1F,6EAA6E;AAC7E,sDAAsD;AACtD,8DAA8D;AAC9D,+EAA+E;AAC/E,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAO,EAAU,EAAE;IACjD,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACrB,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;IAC5B,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;IAC9B,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;IAC5B,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1C,OAAO,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC;AAC3C,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,31 @@
1
+ // © 2026 Adobe. MIT License. See /LICENSE for details.
2
+ import { describe, it, expect } from "vitest";
3
+ import { Guid } from "./index.js";
4
+ const CANONICAL_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;
5
+ describe("Guid.toUUID", () => {
6
+ it("produces the canonical 36-character form", () => {
7
+ const g = [0x12345678, 0x9abcdef0, 0x11223344, 0x55667788];
8
+ const s = Guid.toUUID(g);
9
+ expect(s).toHaveLength(36);
10
+ expect(CANONICAL_RE.test(s)).toBe(true);
11
+ });
12
+ it("encodes a known Guid to the expected string", () => {
13
+ // [0x12345678, 0x9abcdef0, 0x11223344, 0x55667788]
14
+ // a=12345678, b_hi=9abc, b_lo=def0, c_hi=1122, c_lo=3344, d=55667788
15
+ const g = [0x12345678, 0x9abcdef0, 0x11223344, 0x55667788];
16
+ expect(Guid.toUUID(g)).toBe("12345678-9abc-def0-1122-334455667788");
17
+ });
18
+ it("handles nil (all zeros)", () => {
19
+ expect(Guid.toUUID(Guid.nil)).toBe("00000000-0000-0000-0000-000000000000");
20
+ });
21
+ it("handles max u32 values", () => {
22
+ const g = [0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF];
23
+ expect(Guid.toUUID(g)).toBe("ffffffff-ffff-ffff-ffff-ffffffffffff");
24
+ });
25
+ it("round-trips with a created Guid", () => {
26
+ const g = Guid.create();
27
+ const s = Guid.toUUID(g);
28
+ expect(CANONICAL_RE.test(s)).toBe(true);
29
+ });
30
+ });
31
+ //# sourceMappingURL=to-uuid.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"to-uuid.test.js","sourceRoot":"","sources":["../../../src/schema/guid/to-uuid.test.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAEvD,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,MAAM,YAAY,GAAG,gEAAgE,CAAC;AAEtF,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IACzB,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAChD,MAAM,CAAC,GAAS,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;QACjE,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QAC3B,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACnD,mDAAmD;QACnD,qEAAqE;QACrE,MAAM,CAAC,GAAS,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;QACjE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QAC/B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;QAC9B,MAAM,CAAC,GAAS,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;QACjE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACvC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACxB,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -9,3 +9,5 @@ export * from "./true/index.js";
9
9
  export * from "./boolean/index.js";
10
10
  export { F32, I32, U32, F64 } from "../math/index.js";
11
11
  export * from "./time/index.js";
12
+ export * from "./fractional-index/fractional-index.js";
13
+ export * from "./guid/index.js";
@@ -6,4 +6,6 @@ export * from "./boolean/index.js";
6
6
  // these are both math types and basic schema types.
7
7
  export { F32, I32, U32, F64 } from "../math/index.js";
8
8
  export * from "./time/index.js";
9
+ export * from "./fractional-index/fractional-index.js";
10
+ export * from "./guid/index.js";
9
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAKvD,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAOtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,oDAAoD;AACpD,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACtD,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAKvD,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAOtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,oDAAoD;AACpD,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACtD,cAAc,iBAAiB,CAAC;AAChC,cAAc,wCAAwC,CAAC;AACvD,cAAc,iBAAiB,CAAC"}
@@ -2,17 +2,20 @@ import { ReadonlyTable, Table } from "./table.js";
2
2
  /**
3
3
  * Comparison operators for declarative where clauses
4
4
  */
5
- type ComparisonOperator = "==" | "!=" | "<" | ">" | ">=" | "<=";
5
+ export type ComparisonOperator = "==" | "!=" | "<" | ">" | ">=" | "<=";
6
6
  /**
7
7
  * Represents a comparison operation in a declarative where clause
8
8
  */
9
- type ComparisonOperation<T> = {
9
+ export type ComparisonOperation<T> = {
10
10
  [P in ComparisonOperator]?: T;
11
11
  };
12
12
  /**
13
- * Represents a condition that can be either a direct value, comparison operation, or nested conditions
13
+ * Represents a condition that can be either a direct value, a comparison
14
+ * operation, or nested conditions. Exported because computed-index
15
+ * handles use it for their `findRange` argument — a single scalar key
16
+ * accepts the same operator vocabulary as a single column in `Filter`.
14
17
  */
15
- type WhereCondition<T> = ComparisonOperation<T> | T;
18
+ export type WhereCondition<T> = ComparisonOperation<T> | T;
16
19
  /**
17
20
  * Declarative where clause structure that allows for JSON-based filtering
18
21
  * Each key in the object represents a component field to filter on
@@ -1 +1 @@
1
- {"version":3,"file":"select-rows.js","sourceRoot":"","sources":["../../src/table/select-rows.ts"],"names":[],"mappings":"AAQA,MAAM,gBAAgB,GAAG;IACrB,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,IAAI;IACT,IAAI,EAAE,GAAG;IACT,IAAI,EAAE,GAAG;CACH,CAAC;AAcX,MAAM,oCAAoC,GAAG,CAAI,SAA4B,EAA0B,EAAE;IACrG,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,SAAmC,CAAC;IAC/C,CAAC;IACD,OAAO;QACH,IAAI,EAAE,SAAS;KACQ,CAAC;AAChC,CAAC,CAAA;AAWD,MAAM,CAAC,MAAM,UAAU,GAAG,QAAQ,CAAC,EAAoB,KAAe,EAAE,KAAiB;IACrF,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,CAAC;YAC5C,MAAM,GAAG,CAAC;QACd,CAAC;IACL,CAAC;SACI,CAAC;QACF,MAAM,SAAS,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;QACnD,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,CAAC;YAC5C,IAAI,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAM,GAAG,CAAC;YACd,CAAC;QACL,CAAC;IACL,CAAC;AACL,CAAC,CAAC;AAIF,MAAM,aAAa,GAAG,IAAI,OAAO,EAAkC,CAAC;AACpE,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAmB,KAAiB,EAAmB,EAAE;IAC9F,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC;IACtB,CAAC;IACD,IAAI,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACzC,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,SAAS,GAAG,oCAAoC,CAAC,KAAK,CAAC,CAAC;QACxD,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC,CAAA;AAED,MAAM,oCAAoC,GAAG,CAAmB,KAAgB,EAAmB,EAAE;IACjG,IAAI,IAAI,GACJ,kCAAkC,CAAC;IACvC,KAAK,MAAM,CAAC,GAAG,EAAE,cAAc,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxD,IAAI,IAAI,aAAa,GAAG,cAAc,GAAG,cAAc,CAAC;QACxD,MAAM,oBAAoB,GAAG,oCAAoC,CAAC,cAAc,CAAC,CAAC;QAClF,IAAI,IAAI,WAAW,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,gBAAgB,CAAC,QAA8B,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC;IAClN,CAAC;IACD,IAAI,IAAI,kBAAkB,CAAC;IAC3B,OAAO,IAAI,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAoB,CAAC;AACjE,CAAC,CAAA"}
1
+ {"version":3,"file":"select-rows.js","sourceRoot":"","sources":["../../src/table/select-rows.ts"],"names":[],"mappings":"AAQA,MAAM,gBAAgB,GAAG;IACrB,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,IAAI;IACT,IAAI,EAAE,GAAG;IACT,IAAI,EAAE,GAAG;CACH,CAAC;AAiBX,MAAM,oCAAoC,GAAG,CAAI,SAA4B,EAA0B,EAAE;IACrG,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,SAAmC,CAAC;IAC/C,CAAC;IACD,OAAO;QACH,IAAI,EAAE,SAAS;KACQ,CAAC;AAChC,CAAC,CAAA;AAWD,MAAM,CAAC,MAAM,UAAU,GAAG,QAAQ,CAAC,EAAoB,KAAe,EAAE,KAAiB;IACrF,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,CAAC;YAC5C,MAAM,GAAG,CAAC;QACd,CAAC;IACL,CAAC;SACI,CAAC;QACF,MAAM,SAAS,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;QACnD,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,CAAC;YAC5C,IAAI,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAM,GAAG,CAAC;YACd,CAAC;QACL,CAAC;IACL,CAAC;AACL,CAAC,CAAC;AAIF,MAAM,aAAa,GAAG,IAAI,OAAO,EAAkC,CAAC;AACpE,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAmB,KAAiB,EAAmB,EAAE;IAC9F,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC;IACtB,CAAC;IACD,IAAI,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACzC,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,SAAS,GAAG,oCAAoC,CAAC,KAAK,CAAC,CAAC;QACxD,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC,CAAA;AAED,MAAM,oCAAoC,GAAG,CAAmB,KAAgB,EAAmB,EAAE;IACjG,IAAI,IAAI,GACJ,kCAAkC,CAAC;IACvC,KAAK,MAAM,CAAC,GAAG,EAAE,cAAc,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxD,IAAI,IAAI,aAAa,GAAG,cAAc,GAAG,cAAc,CAAC;QACxD,MAAM,oBAAoB,GAAG,oCAAoC,CAAC,cAAc,CAAC,CAAC;QAClF,IAAI,IAAI,WAAW,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,gBAAgB,CAAC,QAA8B,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC;IAClN,CAAC;IACD,IAAI,IAAI,kBAAkB,CAAC;IAC3B,OAAO,IAAI,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAoB,CAAC;AACjE,CAAC,CAAA"}