@adobe/data 0.3.1 → 0.3.3

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 (128) hide show
  1. package/dist/cache/functions/hashing/array-buffer-to-hex.d.ts +1 -0
  2. package/dist/cache/functions/hashing/array-buffer-to-hex.js +27 -0
  3. package/dist/cache/functions/hashing/array-buffer-to-hex.js.map +1 -0
  4. package/dist/cache/functions/hashing/arrayBufferToHex.d.ts +1 -0
  5. package/dist/cache/functions/hashing/arrayBufferToHex.js +27 -0
  6. package/dist/cache/functions/hashing/arrayBufferToHex.js.map +1 -0
  7. package/dist/cache/functions/hashing/blob-to-hash.d.ts +5 -0
  8. package/dist/cache/functions/hashing/blob-to-hash.js +34 -8
  9. package/dist/cache/functions/hashing/blob-to-hash.js.map +1 -1
  10. package/dist/cache/functions/hashing/buffer-to-hash.js +1 -5
  11. package/dist/cache/functions/hashing/buffer-to-hash.js.map +1 -1
  12. package/dist/cache/functions/hashing/hashing.test.js +322 -65
  13. package/dist/cache/functions/hashing/hashing.test.js.map +1 -1
  14. package/dist/ecs/archetype/create-archetype.test.js +4 -4
  15. package/dist/ecs/archetype/create-archetype.test.js.map +1 -1
  16. package/dist/ecs/archetype/delete-row.test.js +3 -3
  17. package/dist/ecs/archetype/delete-row.test.js.map +1 -1
  18. package/dist/ecs/database/create-database.js.map +1 -1
  19. package/dist/ecs/database/transactional-store/create-transactional-store.js +2 -2
  20. package/dist/ecs/database/transactional-store/create-transactional-store.js.map +1 -1
  21. package/dist/ecs/database/transactional-store/create-transactional-store.test.js +5 -5
  22. package/dist/ecs/database/transactional-store/create-transactional-store.test.js.map +1 -1
  23. package/dist/ecs/entity-location-table/create-entity-location-table.d.ts +7 -0
  24. package/dist/ecs/entity-location-table/create-entity-location-table.js +14 -3
  25. package/dist/ecs/entity-location-table/create-entity-location-table.js.map +1 -1
  26. package/dist/ecs/store/core/select-entities.js +2 -2
  27. package/dist/ecs/store/core/select-entities.js.map +1 -1
  28. package/dist/equals.js +17 -11
  29. package/dist/equals.js.map +1 -1
  30. package/dist/equals.test.js +47 -0
  31. package/dist/equals.test.js.map +1 -1
  32. package/dist/functions/blit.d.ts +9 -0
  33. package/dist/functions/blit.js +42 -0
  34. package/dist/functions/blit.js.map +1 -0
  35. package/dist/functions/copy-view-bytes.d.ts +2 -0
  36. package/dist/functions/copy-view-bytes.js +29 -0
  37. package/dist/functions/copy-view-bytes.js.map +1 -0
  38. package/dist/functions/index.d.ts +3 -0
  39. package/dist/functions/index.js +3 -0
  40. package/dist/functions/index.js.map +1 -1
  41. package/dist/functions/serialization/codec.d.ts +24 -0
  42. package/dist/functions/serialization/codec.js +48 -0
  43. package/dist/functions/serialization/codec.js.map +1 -0
  44. package/dist/functions/serialization/deserialize.d.ts +4 -0
  45. package/dist/functions/serialization/deserialize.js +15 -0
  46. package/dist/functions/serialization/deserialize.js.map +1 -0
  47. package/dist/functions/serialization/index.d.ts +2 -0
  48. package/dist/functions/serialization/index.js +3 -0
  49. package/dist/functions/serialization/index.js.map +1 -0
  50. package/dist/functions/serialization/register-typed-array-codecs.d.ts +1 -0
  51. package/dist/functions/serialization/register-typed-array-codecs.js +13 -0
  52. package/dist/functions/serialization/register-typed-array-codecs.js.map +1 -0
  53. package/dist/functions/serialization/serialization.test.d.ts +1 -0
  54. package/dist/functions/serialization/serialization.test.js +79 -0
  55. package/dist/functions/serialization/serialization.test.js.map +1 -0
  56. package/dist/functions/serialization/serialize.d.ts +4 -0
  57. package/dist/functions/serialization/serialize.js +19 -0
  58. package/dist/functions/serialization/serialize.js.map +1 -0
  59. package/dist/observe/index.d.ts +2 -0
  60. package/dist/observe/index.js +2 -0
  61. package/dist/observe/index.js.map +1 -1
  62. package/dist/observe/observe.test.js +41 -1
  63. package/dist/observe/observe.test.js.map +1 -1
  64. package/dist/observe/with-filter.d.ts +6 -0
  65. package/dist/observe/with-filter.js +15 -0
  66. package/dist/observe/with-filter.js.map +1 -0
  67. package/dist/observe/with-filter.test.d.ts +1 -0
  68. package/dist/observe/with-filter.test.js +70 -0
  69. package/dist/observe/with-filter.test.js.map +1 -0
  70. package/dist/observe/with-map copy.d.ts +5 -0
  71. package/dist/observe/with-map copy.js +14 -0
  72. package/dist/observe/with-map copy.js.map +1 -0
  73. package/dist/schema/schema.d.ts +5 -1
  74. package/dist/table/add-row.js +4 -3
  75. package/dist/table/add-row.js.map +1 -1
  76. package/dist/table/copy-column-to-gpu-buffer.js +2 -2
  77. package/dist/table/copy-column-to-gpu-buffer.js.map +1 -1
  78. package/dist/table/create-table.js +4 -2
  79. package/dist/table/create-table.js.map +1 -1
  80. package/dist/table/create-table.test.js +1 -1
  81. package/dist/table/create-table.test.js.map +1 -1
  82. package/dist/table/delete-row.js +1 -1
  83. package/dist/table/delete-row.js.map +1 -1
  84. package/dist/table/ensure-capacity.d.ts +1 -1
  85. package/dist/table/ensure-capacity.js +10 -10
  86. package/dist/table/ensure-capacity.js.map +1 -1
  87. package/dist/table/select-rows.js +2 -2
  88. package/dist/table/select-rows.js.map +1 -1
  89. package/dist/table/table.d.ts +4 -2
  90. package/dist/tsconfig.tsbuildinfo +1 -1
  91. package/dist/typed-buffer/create-array-buffer.d.ts +3 -3
  92. package/dist/typed-buffer/create-array-buffer.js +36 -32
  93. package/dist/typed-buffer/create-array-buffer.js.map +1 -1
  94. package/dist/typed-buffer/create-const-buffer.d.ts +3 -1
  95. package/dist/typed-buffer/create-const-buffer.js +30 -28
  96. package/dist/typed-buffer/create-const-buffer.js.map +1 -1
  97. package/dist/typed-buffer/create-const-buffer.test.js +18 -46
  98. package/dist/typed-buffer/create-const-buffer.test.js.map +1 -1
  99. package/dist/typed-buffer/create-number-buffer.d.ts +2 -6
  100. package/dist/typed-buffer/create-number-buffer.js +40 -33
  101. package/dist/typed-buffer/create-number-buffer.js.map +1 -1
  102. package/dist/typed-buffer/create-struct-buffer.d.ts +3 -7
  103. package/dist/typed-buffer/create-struct-buffer.js +58 -41
  104. package/dist/typed-buffer/create-struct-buffer.js.map +1 -1
  105. package/dist/typed-buffer/create-typed-buffer.d.ts +2 -5
  106. package/dist/typed-buffer/create-typed-buffer.js +16 -8
  107. package/dist/typed-buffer/create-typed-buffer.js.map +1 -1
  108. package/dist/typed-buffer/is-typed-buffer.d.ts +2 -0
  109. package/dist/typed-buffer/is-typed-buffer.js +5 -0
  110. package/dist/typed-buffer/is-typed-buffer.js.map +1 -0
  111. package/dist/typed-buffer/is-typed-buffer.test.d.ts +1 -0
  112. package/dist/typed-buffer/is-typed-buffer.test.js +26 -0
  113. package/dist/typed-buffer/is-typed-buffer.test.js.map +1 -0
  114. package/dist/typed-buffer/register-typed-buffer-codecs.d.ts +1 -0
  115. package/dist/typed-buffer/register-typed-buffer-codecs.js +80 -0
  116. package/dist/typed-buffer/register-typed-buffer-codecs.js.map +1 -0
  117. package/dist/typed-buffer/typed-buffer-equals.d.ts +2 -0
  118. package/dist/typed-buffer/typed-buffer-equals.js +20 -0
  119. package/dist/typed-buffer/typed-buffer-equals.js.map +1 -0
  120. package/dist/typed-buffer/typed-buffer-equals.test.d.ts +1 -0
  121. package/dist/typed-buffer/typed-buffer-equals.test.js +234 -0
  122. package/dist/typed-buffer/typed-buffer-equals.test.js.map +1 -0
  123. package/dist/typed-buffer/typed-buffer.d.ts +18 -8
  124. package/dist/typed-buffer/typed-buffer.js +6 -1
  125. package/dist/typed-buffer/typed-buffer.js.map +1 -1
  126. package/dist/typed-buffer/typed-buffer.test.js +30 -66
  127. package/dist/typed-buffer/typed-buffer.test.js.map +1 -1
  128. package/package.json +1 -1
@@ -1,3 +1,4 @@
1
+ import { TypedBuffer } from "../typed-buffer/typed-buffer.js";
1
2
  import { DeepReadonly } from "../types/types.js";
2
3
  type JSONPath = string;
3
4
  type JSONMergePatch = unknown;
@@ -28,7 +29,7 @@ export interface UIProperties {
28
29
  };
29
30
  }
30
31
  export interface Schema {
31
- type?: 'number' | 'integer' | 'string' | 'boolean' | 'null' | 'array' | 'object';
32
+ type?: 'number' | 'integer' | 'string' | 'boolean' | 'null' | 'array' | 'object' | 'typed-buffer';
32
33
  conditionals?: readonly Conditional[];
33
34
  ui?: UIProperties;
34
35
  transient?: boolean;
@@ -76,6 +77,9 @@ export type FromSchema<T, Depth extends number = 5> = DeepReadonly<Depth extends
76
77
  } ? boolean : T extends {
77
78
  type: 'null';
78
79
  } ? null : T extends {
80
+ type: 'typed-buffer';
81
+ items: infer Items;
82
+ } ? TypedBuffer<FromSchema<Items>> : T extends {
79
83
  type: 'array';
80
84
  } | {
81
85
  items: any;
@@ -26,15 +26,16 @@ import { ensureCapacity } from "./ensure-capacity.js";
26
26
  * @param rowData
27
27
  */
28
28
  export const addRow = (table, rowData) => {
29
- ensureCapacity(table, table.rows + 1);
30
- const rowIndex = table.rows;
29
+ ensureCapacity(table, table.rowCount + 1);
30
+ const rowIndex = table.rowCount;
31
+ const newLength = rowIndex + 1;
31
32
  for (const name in rowData) {
32
33
  const column = table.columns[name];
33
34
  if (column) {
34
35
  column.set(rowIndex, rowData[name]);
35
36
  }
36
37
  }
37
- table.rows++;
38
+ table.rowCount++;
38
39
  return rowIndex;
39
40
  };
40
41
  //# sourceMappingURL=add-row.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"add-row.js","sourceRoot":"","sources":["../../src/table/add-row.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;WAoBW;AACX,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAItD;;;;GAIG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAI,KAAe,EAAE,OAAU,EAAY,EAAE;IAC/D,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC;IAC5B,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,MAAM,EAAE,CAAC;YACT,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QACxC,CAAC;IACL,CAAC;IACD,KAAK,CAAC,IAAI,EAAE,CAAC;IACb,OAAO,QAAQ,CAAC;AACpB,CAAC,CAAA"}
1
+ {"version":3,"file":"add-row.js","sourceRoot":"","sources":["../../src/table/add-row.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;WAoBW;AACX,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAItD;;;;GAIG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAI,KAAe,EAAE,OAAU,EAAY,EAAE;IAC/D,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;IAChC,MAAM,SAAS,GAAG,QAAQ,GAAG,CAAC,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,MAAM,EAAE,CAAC;YACT,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QACxC,CAAC;IACL,CAAC;IACD,KAAK,CAAC,QAAQ,EAAE,CAAC;IACjB,OAAO,QAAQ,CAAC;AACpB,CAAC,CAAA"}
@@ -26,7 +26,7 @@ export const copyColumnToGPUBuffer = (tables, columnName, device, gpuBuffer) =>
26
26
  // get total byte length
27
27
  let totalByteLength = 0;
28
28
  for (const table of tables) {
29
- totalByteLength += table.rows * table.columns[columnName].typedArrayElementSizeInBytes;
29
+ totalByteLength += table.rowCount * table.columns[columnName].typedArrayElementSizeInBytes;
30
30
  }
31
31
  // ensure the gpu buffer is large enough
32
32
  if (gpuBuffer.size < totalByteLength) {
@@ -37,7 +37,7 @@ export const copyColumnToGPUBuffer = (tables, columnName, device, gpuBuffer) =>
37
37
  let offset = 0;
38
38
  for (const table of tables) {
39
39
  const column = table.columns[columnName];
40
- const writeByteLength = table.rows * column.typedArrayElementSizeInBytes;
40
+ const writeByteLength = table.rowCount * column.typedArrayElementSizeInBytes;
41
41
  const array = column.getTypedArray();
42
42
  device.queue.writeBuffer(gpuBuffer, offset, array.buffer, 0, writeByteLength);
43
43
  offset += writeByteLength;
@@ -1 +1 @@
1
- {"version":3,"file":"copy-column-to-gpu-buffer.js","sourceRoot":"","sources":["../../src/table/copy-column-to-gpu-buffer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;WAoBW;AAIX;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACjC,MAAoB,EACpB,UAAa,EACb,MAAiB,EACjB,SAAoB,EACX,EAAE;IACX,wBAAwB;IACxB,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACzB,eAAe,IAAI,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,4BAA4B,CAAC;IAC3F,CAAC;IACD,wCAAwC;IACxC,IAAI,SAAS,CAAC,IAAI,GAAG,eAAe,EAAE,CAAC;QACnC,SAAS,CAAC,OAAO,EAAE,CAAC;QACpB,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC;IACvF,CAAC;IACD,mEAAmE;IACnE,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACzC,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,4BAA4B,CAAC;QACzE,MAAM,KAAK,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC;QACrC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,eAAe,CAAC,CAAC;QAC9E,MAAM,IAAI,eAAe,CAAC;IAC9B,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC,CAAA"}
1
+ {"version":3,"file":"copy-column-to-gpu-buffer.js","sourceRoot":"","sources":["../../src/table/copy-column-to-gpu-buffer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;WAoBW;AAIX;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACjC,MAAoB,EACpB,UAAa,EACb,MAAiB,EACjB,SAAoB,EACX,EAAE;IACX,wBAAwB;IACxB,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACzB,eAAe,IAAI,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,4BAA4B,CAAC;IAC/F,CAAC;IACD,wCAAwC;IACxC,IAAI,SAAS,CAAC,IAAI,GAAG,eAAe,EAAE,CAAC;QACnC,SAAS,CAAC,OAAO,EAAE,CAAC;QACpB,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC;IACvF,CAAC;IACD,mEAAmE;IACnE,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACzC,MAAM,eAAe,GAAG,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC,4BAA4B,CAAC;QAC7E,MAAM,KAAK,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC;QACrC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,eAAe,CAAC,CAAC;QAC9E,MAAM,IAAI,eAAe,CAAC;IAC9B,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC,CAAA"}
@@ -22,12 +22,14 @@ SOFTWARE.*/
22
22
  import { createTypedBuffer } from "../typed-buffer/index.js";
23
23
  export const createTable = (schemas) => {
24
24
  const columns = {};
25
+ const rowCapacity = 16;
25
26
  for (const name in schemas) {
26
- columns[name] = createTypedBuffer({ schema: schemas[name] });
27
+ columns[name] = createTypedBuffer(schemas[name], rowCapacity);
27
28
  }
28
29
  return {
29
30
  columns,
30
- rows: 0,
31
+ rowCount: 0,
32
+ rowCapacity,
31
33
  };
32
34
  };
33
35
  //# sourceMappingURL=create-table.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-table.js","sourceRoot":"","sources":["../../src/table/create-table.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;WAoBW;AACX,OAAO,EAAE,iBAAiB,EAAe,MAAM,0BAA0B,CAAC;AAI1E,MAAM,CAAC,MAAM,WAAW,GAAG,CAAmC,OAAU,EAAgD,EAAE;IACtH,MAAM,OAAO,GAAG,EAAuD,CAAC;IACxE,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,EAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,EAAC,CAAC,CAAC;IAC/D,CAAC;IAED,OAAO;QACH,OAAO;QACP,IAAI,EAAE,CAAC;KACV,CAAC;AACN,CAAC,CAAA"}
1
+ {"version":3,"file":"create-table.js","sourceRoot":"","sources":["../../src/table/create-table.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;WAoBW;AACX,OAAO,EAAE,iBAAiB,EAAe,MAAM,0BAA0B,CAAC;AAI1E,MAAM,CAAC,MAAM,WAAW,GAAG,CAAmC,OAAU,EAAgD,EAAE;IACtH,MAAM,OAAO,GAAG,EAAuD,CAAC;IACxE,MAAM,WAAW,GAAG,EAAE,CAAC;IACvB,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC;IAClE,CAAC;IAED,OAAO;QACH,OAAO;QACP,QAAQ,EAAE,CAAC;QACX,WAAW;KACd,CAAC;AACN,CAAC,CAAA"}
@@ -35,7 +35,7 @@ describe("createTable", () => {
35
35
  it("should initialize with 0 rows", () => {
36
36
  const schemas = { a: { type: "number" } };
37
37
  const table = createTable(schemas);
38
- expect(table.rows).toBe(0);
38
+ expect(table.rowCount).toBe(0);
39
39
  });
40
40
  });
41
41
  //# sourceMappingURL=create-table.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-table.test.js","sourceRoot":"","sources":["../../src/table/create-table.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;WAoBW;AACX,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IACzB,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC7C,MAAM,OAAO,GAAG;YACZ,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACrB,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SACf,CAAC;QAEX,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QAEnC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACtC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACtC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACrC,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAW,CAAC;QACnD,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AAEP,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"create-table.test.js","sourceRoot":"","sources":["../../src/table/create-table.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;WAoBW;AACX,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IACzB,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC7C,MAAM,OAAO,GAAG;YACZ,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACrB,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SACf,CAAC;QAEX,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QAEnC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACtC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACtC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACrC,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAW,CAAC;QACnD,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;AAEP,CAAC,CAAC,CAAC"}
@@ -5,7 +5,7 @@
5
5
  * @param rowIndex
6
6
  */
7
7
  export const deleteRow = (table, rowIndex) => {
8
- const lastRowIndex = --table.rows;
8
+ const lastRowIndex = --table.rowCount;
9
9
  if (rowIndex === lastRowIndex) {
10
10
  return false;
11
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"delete-row.js","sourceRoot":"","sources":["../../src/table/delete-row.ts"],"names":[],"mappings":"AAwBA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAI,KAAe,EAAE,QAAkB,EAAW,EAAE;IACzE,MAAM,YAAY,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC;IAClC,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,YAAY,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC,CAAA"}
1
+ {"version":3,"file":"delete-row.js","sourceRoot":"","sources":["../../src/table/delete-row.ts"],"names":[],"mappings":"AAwBA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAI,KAAe,EAAE,QAAkB,EAAW,EAAE;IACzE,MAAM,YAAY,GAAG,EAAE,KAAK,CAAC,QAAQ,CAAC;IACtC,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,YAAY,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC,CAAA"}
@@ -1,2 +1,2 @@
1
1
  import { Table } from "./table.js";
2
- export declare const ensureCapacity: <C>(table: Table<C>, minimumCapacity: number, growthFactor?: number) => void;
2
+ export declare const ensureCapacity: <C>(table: Table<C>, minimumCapacity: number) => void;
@@ -1,15 +1,15 @@
1
- export const ensureCapacity = (table, minimumCapacity, growthFactor = 2) => {
1
+ export const ensureCapacity = (table, minimumCapacity) => {
2
2
  // we don't actually loop, we just need to check the first columns length.
3
- for (const name in table.columns) {
4
- const currentCapacity = table.columns[name].size;
5
- if (currentCapacity < minimumCapacity) {
6
- const newCapacity = Math.max(minimumCapacity, currentCapacity * growthFactor);
7
- for (const name in table.columns) {
8
- const column = table.columns[name];
9
- column.size = newCapacity;
10
- }
3
+ const currentCapacity = table.rowCapacity;
4
+ if (currentCapacity < minimumCapacity) {
5
+ // may need smart growth factor, faster when smaller, smaller when larger.
6
+ const growthFactor = 2;
7
+ const newCapacity = Math.max(minimumCapacity, currentCapacity * growthFactor);
8
+ for (const name in table.columns) {
9
+ const column = table.columns[name];
10
+ column.capacity = newCapacity;
11
11
  }
12
- return;
12
+ table.rowCapacity = newCapacity;
13
13
  }
14
14
  };
15
15
  //# sourceMappingURL=ensure-capacity.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ensure-capacity.js","sourceRoot":"","sources":["../../src/table/ensure-capacity.ts"],"names":[],"mappings":"AAuBA,MAAM,CAAC,MAAM,cAAc,GAAG,CAAI,KAAe,EAAE,eAAuB,EAAE,YAAY,GAAG,CAAC,EAAE,EAAE;IAC5F,0EAA0E;IAC1E,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAC/B,MAAM,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;QACjD,IAAI,eAAe,GAAG,eAAe,EAAE,CAAC;YACpC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,eAAe,GAAG,YAAY,CAAC,CAAC;YAC9E,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBAC/B,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACnC,MAAM,CAAC,IAAI,GAAG,WAAW,CAAC;YAC9B,CAAC;QACL,CAAC;QACD,OAAO;IACX,CAAC;AACL,CAAC,CAAA"}
1
+ {"version":3,"file":"ensure-capacity.js","sourceRoot":"","sources":["../../src/table/ensure-capacity.ts"],"names":[],"mappings":"AAuBA,MAAM,CAAC,MAAM,cAAc,GAAG,CAAI,KAAe,EAAE,eAAuB,EAAE,EAAE;IAC1E,0EAA0E;IAC1E,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,CAAC;IAC1C,IAAI,eAAe,GAAG,eAAe,EAAE,CAAC;QACpC,0EAA0E;QAC1E,MAAM,YAAY,GAAG,CAAC,CAAC;QACvB,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,eAAe,GAAG,YAAY,CAAC,CAAC;QAC9E,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACnC,MAAM,CAAC,QAAQ,GAAG,WAAW,CAAC;QAClC,CAAC;QACD,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC;IACpC,CAAC;AACL,CAAC,CAAA"}
@@ -16,13 +16,13 @@ const whereConditionToComparisonOperations = (condition) => {
16
16
  };
17
17
  export const selectRows = function* (table, where) {
18
18
  if (!where) {
19
- for (let row = 0; row < table.rows; row++) {
19
+ for (let row = 0; row < table.rowCount; row++) {
20
20
  yield row;
21
21
  }
22
22
  }
23
23
  else {
24
24
  const predicate = getRowPredicateFromFilter(where);
25
- for (let row = 0; row < table.rows; row++) {
25
+ for (let row = 0; row < table.rowCount; row++) {
26
26
  if (predicate(table, row)) {
27
27
  yield row;
28
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"select-rows.js","sourceRoot":"","sources":["../../src/table/select-rows.ts"],"names":[],"mappings":"AA4BA,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,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC;YACxC,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,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC;YACxC,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":"AA4BA,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"}
@@ -3,11 +3,13 @@ export interface ReadonlyTable<C> {
3
3
  readonly columns: {
4
4
  readonly [K in keyof C]: ReadonlyTypedBuffer<C[K]>;
5
5
  };
6
- readonly rows: number;
6
+ readonly rowCount: number;
7
+ readonly rowCapacity: number;
7
8
  }
8
9
  export interface Table<C> extends ReadonlyTable<C> {
9
10
  readonly columns: {
10
11
  readonly [K in keyof C]: TypedBuffer<C[K]>;
11
12
  };
12
- rows: number;
13
+ rowCount: number;
14
+ rowCapacity: number;
13
15
  }