@adobe/data 0.7.2 → 0.7.4

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 (190) hide show
  1. package/dist/ecs/archetype/archetype.d.ts +3 -3
  2. package/dist/ecs/archetype/create-archetype.d.ts +4 -4
  3. package/dist/ecs/archetype/create-archetype.js.map +1 -1
  4. package/dist/ecs/archetype/create-archetype.test.js +6 -6
  5. package/dist/ecs/archetype/create-archetype.test.js.map +1 -1
  6. package/dist/ecs/archetype/delete-row.d.ts +2 -2
  7. package/dist/ecs/archetype/delete-row.js.map +1 -1
  8. package/dist/ecs/archetype/delete-row.test.js +4 -4
  9. package/dist/ecs/archetype/delete-row.test.js.map +1 -1
  10. package/dist/ecs/core-components.d.ts +3 -3
  11. package/dist/ecs/database/create-database.test.js +130 -0
  12. package/dist/ecs/database/create-database.test.js.map +1 -1
  13. package/dist/ecs/database/database.d.ts +6 -5
  14. package/dist/ecs/database/index.d.ts +0 -1
  15. package/dist/ecs/database/index.js +0 -1
  16. package/dist/ecs/database/index.js.map +1 -1
  17. package/dist/ecs/database/observe-select-entities.d.ts +3 -3
  18. package/dist/ecs/database/observe-select-entities.js.map +1 -1
  19. package/dist/ecs/database/observed/create-observed-database.js +8 -0
  20. package/dist/ecs/database/observed/create-observed-database.js.map +1 -1
  21. package/dist/ecs/database/observed/observed-database.d.ts +3 -3
  22. package/dist/ecs/database/reconciling/create-reconciling-database.d.ts +8 -1
  23. package/dist/ecs/database/reconciling/create-reconciling-database.js +50 -19
  24. package/dist/ecs/database/reconciling/create-reconciling-database.js.map +1 -1
  25. package/dist/ecs/database/reconciling/create-reconciling-database.test.js +297 -0
  26. package/dist/ecs/database/reconciling/create-reconciling-database.test.js.map +1 -1
  27. package/dist/ecs/database/replicate.js.map +1 -1
  28. package/dist/ecs/database/transactional-store/coalesce-transactions.d.ts +5 -1
  29. package/dist/ecs/database/transactional-store/coalesce-transactions.js +17 -28
  30. package/dist/ecs/database/transactional-store/coalesce-transactions.js.map +1 -1
  31. package/dist/ecs/database/transactional-store/coalesce-transactions.test.js +84 -7
  32. package/dist/ecs/database/transactional-store/coalesce-transactions.test.js.map +1 -1
  33. package/dist/ecs/database/transactional-store/create-transactional-store.js +7 -2
  34. package/dist/ecs/database/transactional-store/create-transactional-store.js.map +1 -1
  35. package/dist/ecs/database/transactional-store/create-transactional-store.test.js +5 -3
  36. package/dist/ecs/database/transactional-store/create-transactional-store.test.js.map +1 -1
  37. package/dist/ecs/database/transactional-store/entity-id-preservation.test.js +106 -0
  38. package/dist/ecs/database/transactional-store/entity-id-preservation.test.js.map +1 -0
  39. package/dist/ecs/entity/entity.d.ts +8 -0
  40. package/dist/ecs/entity/entity.js +3 -0
  41. package/dist/ecs/entity/entity.js.map +1 -0
  42. package/dist/ecs/entity/u32.d.ts +8 -0
  43. package/dist/{lit/elements/service-context.js → ecs/entity/u32.js} +3 -3
  44. package/dist/ecs/entity/u32.js.map +1 -0
  45. package/dist/ecs/entity-location-table/create-entity-location-table.d.ts +1 -1
  46. package/dist/ecs/entity-location-table/create-entity-location-table.js +27 -2
  47. package/dist/ecs/entity-location-table/create-entity-location-table.js.map +1 -1
  48. package/dist/ecs/entity-location-table/create-entity-location-table.test.js +15 -2
  49. package/dist/ecs/entity-location-table/create-entity-location-table.test.js.map +1 -1
  50. package/dist/ecs/entity.d.ts +9 -7
  51. package/dist/ecs/entity.js +5 -2
  52. package/dist/ecs/entity.js.map +1 -1
  53. package/dist/ecs/index.d.ts +3 -3
  54. package/dist/ecs/index.js +4 -3
  55. package/dist/ecs/index.js.map +1 -1
  56. package/dist/ecs/optional-components.d.ts +3 -0
  57. package/dist/ecs/optional-components.js +2 -0
  58. package/dist/ecs/optional-components.js.map +1 -0
  59. package/dist/ecs/required-components.d.ts +4 -0
  60. package/dist/ecs/required-components.js +2 -0
  61. package/dist/ecs/required-components.js.map +1 -0
  62. package/dist/ecs/store/core/core.d.ts +19 -18
  63. package/dist/ecs/store/core/create-core.d.ts +2 -1
  64. package/dist/ecs/store/core/create-core.js +40 -17
  65. package/dist/ecs/store/core/create-core.js.map +1 -1
  66. package/dist/ecs/store/core/create-core.test.d.ts +1 -1
  67. package/dist/ecs/store/core/create-core.test.js +78 -2
  68. package/dist/ecs/store/core/create-core.test.js.map +1 -1
  69. package/dist/ecs/store/core/select-entities.d.ts +3 -2
  70. package/dist/ecs/store/core/select-entities.js.map +1 -1
  71. package/dist/ecs/store/create-store.d.ts +2 -1
  72. package/dist/ecs/store/create-store.js +3 -1
  73. package/dist/ecs/store/create-store.js.map +1 -1
  74. package/dist/ecs/store/create-store.test.js.map +1 -1
  75. package/dist/ecs/store/store-schema/create-store-schema-test.js +2 -2
  76. package/dist/ecs/store/store-schema/create-store-schema-test.js.map +1 -1
  77. package/dist/ecs/store/store-schema/create-store-schema.d.ts +1 -11
  78. package/dist/ecs/store/store-schema/create-store-schema.js +44 -30
  79. package/dist/ecs/store/store-schema/create-store-schema.js.map +1 -1
  80. package/dist/ecs/store/store-schema/index.d.ts +1 -2
  81. package/dist/ecs/store/store-schema/index.js +20 -23
  82. package/dist/ecs/store/store-schema/index.js.map +1 -1
  83. package/dist/ecs/store/store-schema/store-schema.d.ts +1 -12
  84. package/dist/ecs/store/store-schema/store-schema.js +55 -21
  85. package/dist/ecs/store/store-schema/store-schema.js.map +1 -1
  86. package/dist/ecs/store/store.d.ts +12 -11
  87. package/dist/ecs/store/store.js.map +1 -1
  88. package/dist/ecs/undo-redo-service/create-undo-redo-service.test.js +23 -23
  89. package/dist/ecs/undo-redo-service/create-undo-redo-service.test.js.map +1 -1
  90. package/dist/graphics/frame.d.ts +1 -22
  91. package/dist/graphics/frame.js +14 -11
  92. package/dist/graphics/frame.js.map +1 -1
  93. package/dist/graphics/get-web-gpu-device-and-context.d.ts +1 -2
  94. package/dist/graphics/get-web-gpu-device-and-context.js +23 -20
  95. package/dist/graphics/get-web-gpu-device-and-context.js.map +1 -1
  96. package/dist/graphics/graphics-context.d.ts +1 -5
  97. package/dist/graphics/graphics-context.js +5 -0
  98. package/dist/graphics/graphics-context.js.map +1 -1
  99. package/dist/lit/hooks/use-observable-values.d.ts +1 -2
  100. package/dist/lit/hooks/use-observable-values.js.map +1 -1
  101. package/dist/math/aabb-face/face.d.ts +51 -0
  102. package/dist/math/aabb-face/face.js +110 -0
  103. package/dist/math/aabb-face/face.js.map +1 -0
  104. package/dist/math/aabb-face/face.test.js +94 -0
  105. package/dist/math/aabb-face/face.test.js.map +1 -0
  106. package/dist/math/box/box.d.ts +50 -0
  107. package/dist/math/box/box.js +23 -0
  108. package/dist/math/box/box.js.map +1 -0
  109. package/dist/math/face/face.d.ts +51 -0
  110. package/dist/math/face/face.js +110 -0
  111. package/dist/math/face/face.js.map +1 -0
  112. package/dist/math/face/face.test.js +94 -0
  113. package/dist/math/face/face.test.js.map +1 -0
  114. package/dist/math/picking/face.d.ts +1 -0
  115. package/dist/math/picking/face.js +2 -0
  116. package/dist/math/picking/face.js.map +1 -0
  117. package/dist/math/picking/get-closest-entity-to-line.js +1 -1
  118. package/dist/math/picking/get-closest-entity-to-line.js.map +1 -1
  119. package/dist/math/picking/get-closest-entity-to-point.js +1 -1
  120. package/dist/math/picking/get-closest-entity-to-point.js.map +1 -1
  121. package/dist/math/picking/getClosestEntityToLine.d.ts +4 -0
  122. package/dist/math/picking/getClosestEntityToLine.js +29 -0
  123. package/dist/math/picking/getClosestEntityToLine.js.map +1 -0
  124. package/dist/math/picking/getClosestEntityToPoint.d.ts +4 -0
  125. package/dist/math/picking/getClosestEntityToPoint.js +27 -0
  126. package/dist/math/picking/getClosestEntityToPoint.js.map +1 -0
  127. package/dist/math/picking/getIntersectingEntities.d.ts +12 -0
  128. package/dist/math/picking/getIntersectingEntities.js +15 -0
  129. package/dist/math/picking/getIntersectingEntities.js.map +1 -0
  130. package/dist/math/picking/pick-from-tables.js +1 -1
  131. package/dist/math/picking/pick-from-tables.js.map +1 -1
  132. package/dist/math/picking/pick-result.d.ts +4 -2
  133. package/dist/math/transform/debug-inverse.d.ts +1 -0
  134. package/dist/math/transform/debug-inverse.js +28 -0
  135. package/dist/math/transform/debug-inverse.js.map +1 -0
  136. package/dist/math/transform/debug-quat.d.ts +1 -0
  137. package/dist/math/transform/debug-quat.js +23 -0
  138. package/dist/math/transform/debug-quat.js.map +1 -0
  139. package/dist/math/transform/debug-test.d.ts +1 -0
  140. package/dist/math/transform/debug-test.js +34 -0
  141. package/dist/math/transform/debug-test.js.map +1 -0
  142. package/dist/math/transform/transform.d.ts +58 -0
  143. package/dist/math/transform/transform.js +101 -0
  144. package/dist/math/transform/transform.js.map +1 -0
  145. package/dist/math/transform/transform.test.d.ts +1 -0
  146. package/dist/math/transform/transform.test.js +309 -0
  147. package/dist/math/transform/transform.test.js.map +1 -0
  148. package/dist/tsconfig.tsbuildinfo +1 -1
  149. package/package.json +4 -3
  150. package/dist/ecs/database/applied/applied-database.d.ts +0 -47
  151. package/dist/ecs/database/applied/applied-database.js +0 -22
  152. package/dist/ecs/database/applied/applied-database.js.map +0 -1
  153. package/dist/ecs/database/applied/applied-entry.d.ts +0 -30
  154. package/dist/ecs/database/applied/applied-entry.js +0 -84
  155. package/dist/ecs/database/applied/applied-entry.js.map +0 -1
  156. package/dist/ecs/database/applied/create-applied-database.d.ts +0 -8
  157. package/dist/ecs/database/applied/create-applied-database.js +0 -266
  158. package/dist/ecs/database/applied/create-applied-database.js.map +0 -1
  159. package/dist/ecs/database/applied/create-applied-database.test.js +0 -94
  160. package/dist/ecs/database/applied/create-applied-database.test.js.map +0 -1
  161. package/dist/ecs/database/create-applied-database.d.ts +0 -49
  162. package/dist/ecs/database/create-applied-database.js +0 -275
  163. package/dist/ecs/database/create-applied-database.js.map +0 -1
  164. package/dist/ecs/database/reconciling/applied-database.d.ts +0 -47
  165. package/dist/ecs/database/reconciling/applied-database.js +0 -22
  166. package/dist/ecs/database/reconciling/applied-database.js.map +0 -1
  167. package/dist/ecs/database/reconciling/applied-entry.d.ts +0 -30
  168. package/dist/ecs/database/reconciling/applied-entry.js +0 -84
  169. package/dist/ecs/database/reconciling/applied-entry.js.map +0 -1
  170. package/dist/ecs/database/reconciling/create-applied-database.d.ts +0 -8
  171. package/dist/ecs/database/reconciling/create-applied-database.js +0 -266
  172. package/dist/ecs/database/reconciling/create-applied-database.js.map +0 -1
  173. package/dist/ecs/database/reconciling/create-applied-database.test.js +0 -94
  174. package/dist/ecs/database/reconciling/create-applied-database.test.js.map +0 -1
  175. package/dist/lit/elements/service-application.d.ts +0 -9
  176. package/dist/lit/elements/service-application.js +0 -55
  177. package/dist/lit/elements/service-application.js.map +0 -1
  178. package/dist/lit/elements/service-context.d.ts +0 -1
  179. package/dist/lit/elements/service-context.js.map +0 -1
  180. package/dist/lit/elements/service-element.d.ts +0 -6
  181. package/dist/lit/elements/service-element.js +0 -43
  182. package/dist/lit/elements/service-element.js.map +0 -1
  183. package/dist/table/compact-table.d.ts +0 -7
  184. package/dist/table/compact-table.js +0 -15
  185. package/dist/table/compact-table.js.map +0 -1
  186. package/dist/table/compact-table.test.js +0 -121
  187. package/dist/table/compact-table.test.js.map +0 -1
  188. /package/dist/ecs/database/{applied/create-applied-database.test.d.ts → transactional-store/entity-id-preservation.test.d.ts} +0 -0
  189. /package/dist/{ecs/database/reconciling/create-applied-database.test.d.ts → math/aabb-face/face.test.d.ts} +0 -0
  190. /package/dist/{table/compact-table.test.d.ts → math/face/face.test.d.ts} +0 -0
@@ -0,0 +1,8 @@
1
+ import { FromSchema } from "../../schema/index.js";
2
+ export declare const schema: {
3
+ readonly type: "integer";
4
+ readonly minimum: 0;
5
+ readonly maximum: 4294967295;
6
+ readonly default: number;
7
+ };
8
+ export type Type = FromSchema<typeof schema>;
@@ -19,6 +19,6 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
19
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
20
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
21
  SOFTWARE.*/
22
- import { createContext } from "@lit/context";
23
- export const serviceContext = createContext(Symbol("service"));
24
- //# sourceMappingURL=service-context.js.map
22
+ import { U32Schema } from "../../schema/index.js";
23
+ export const schema = U32Schema;
24
+ //# sourceMappingURL=u32.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"u32.js","sourceRoot":"","sources":["../../../src/ecs/entity/u32.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;WAoBW;AAEX,OAAO,EAAE,SAAS,EAAc,MAAM,uBAAuB,CAAC;AAC9D,MAAM,CAAC,MAAM,MAAM,GAAG,SAAS,CAAA"}
@@ -1,2 +1,2 @@
1
1
  import { EntityLocationTable } from "./entity-location-table.js";
2
- export declare const createEntityLocationTable: (initialCapacity?: number) => EntityLocationTable;
2
+ export declare const createEntityLocationTable: (initialCapacity?: number, transient?: boolean) => EntityLocationTable;
@@ -21,12 +21,28 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
21
  SOFTWARE.*/
22
22
  import { resize } from "../../internal/array-buffer-like/resize.js";
23
23
  import { createSharedArrayBuffer } from "../../internal/shared-array-buffer/create-shared-array-buffer.js";
24
- export const createEntityLocationTable = (initialCapacity = 16) => {
24
+ export const createEntityLocationTable = (initialCapacity = 16, transient = false) => {
25
+ return transient ? createNegativeEntityLocationTable(initialCapacity) : createPositiveEntityLocationTable(initialCapacity);
26
+ };
27
+ const createNegativeEntityLocationTable = (initialCapacity = 16) => {
28
+ const table = createEntityLocationTable(initialCapacity);
29
+ return {
30
+ ...table,
31
+ create: (location) => -1 - table.create(location),
32
+ delete: (entity) => table.delete(-1 - entity),
33
+ locate: (entity) => table.locate(-1 - entity),
34
+ update: (entity, location) => table.update(-1 - entity, location)
35
+ };
36
+ };
37
+ const createPositiveEntityLocationTable = (initialCapacity = 16) => {
25
38
  let freeListHead = -1;
26
39
  let nextIndex = 0;
27
40
  let capacity = initialCapacity;
28
41
  let entities = new Int32Array(createSharedArrayBuffer(capacity * 2 * 4));
29
42
  const createEntity = ({ archetype, row }) => {
43
+ if (row < 0) {
44
+ throw new Error("create row must be >= 0");
45
+ }
30
46
  let entity;
31
47
  if (freeListHead >= 0) {
32
48
  entity = freeListHead;
@@ -46,13 +62,19 @@ export const createEntityLocationTable = (initialCapacity = 16) => {
46
62
  return entity;
47
63
  };
48
64
  const deleteEntity = (entity) => {
65
+ if (entity < 0) {
66
+ throw new Error("delete entity must be >= 0");
67
+ }
49
68
  const index = entity << 1;
50
69
  entities[index + 0] = -1;
51
70
  entities[index + 1] = freeListHead;
52
71
  freeListHead = entity;
53
72
  };
54
73
  const locateEntity = (entity) => {
55
- if (entity < 0 || entity >= nextIndex) {
74
+ if (entity < 0) {
75
+ throw new Error("locate entity must be >= 0");
76
+ }
77
+ if (entity >= nextIndex) {
56
78
  return null;
57
79
  }
58
80
  const index = entity << 1;
@@ -64,6 +86,9 @@ export const createEntityLocationTable = (initialCapacity = 16) => {
64
86
  return { archetype, row };
65
87
  };
66
88
  const updateEntity = (entity, location) => {
89
+ if (entity < 0 || location.row < 0) {
90
+ throw new Error("update entity and row must be >= 0");
91
+ }
67
92
  const index = entity << 1;
68
93
  entities[index + 0] = location.archetype;
69
94
  entities[index + 1] = location.row;
@@ -1 +1 @@
1
- {"version":3,"file":"create-entity-location-table.js","sourceRoot":"","sources":["../../../src/ecs/entity-location-table/create-entity-location-table.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-entity-location-table.js","sourceRoot":"","sources":["../../../src/ecs/entity-location-table/create-entity-location-table.ts"],"names":[],"mappings":"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"}
@@ -136,8 +136,21 @@ describe('createEntityLocationTable', () => {
136
136
  });
137
137
  it("should return null when locating entity with invalid id -1", () => {
138
138
  const table = createEntityLocationTable();
139
- const location = table.locate(-1);
140
- expect(location).toBeNull();
139
+ expect(() => table.locate(-1)).toThrow("locate entity must be >= 0");
140
+ });
141
+ });
142
+ describe('createTransientEntityLocationTable', () => {
143
+ it('should create entities with increasing ids starting from -1', () => {
144
+ const table = createEntityLocationTable(16, true);
145
+ const entity0 = table.create({ archetype: 1, row: 10 });
146
+ const entity1 = table.create({ archetype: 2, row: 20 });
147
+ const entity2 = table.create({ archetype: 3, row: 30 });
148
+ expect(entity0).toBe(-1);
149
+ expect(entity1).toBe(-2);
150
+ expect(entity2).toBe(-3);
151
+ expect(table.locate(entity0)).toEqual({ archetype: 1, row: 10 });
152
+ expect(table.locate(entity1)).toEqual({ archetype: 2, row: 20 });
153
+ expect(table.locate(entity2)).toEqual({ archetype: 3, row: 30 });
141
154
  });
142
155
  });
143
156
  //# sourceMappingURL=create-entity-location-table.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-entity-location-table.test.js","sourceRoot":"","sources":["../../../src/ecs/entity-location-table/create-entity-location-table.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-entity-location-table.test.js","sourceRoot":"","sources":["../../../src/ecs/entity-location-table/create-entity-location-table.test.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,10 @@
1
1
  import { FromSchema } from "../schema/schema.js";
2
- export declare const schema: {
3
- readonly type: "integer";
4
- readonly minimum: 0;
5
- readonly maximum: 4294967295;
6
- readonly default: number;
7
- };
8
- export type Entity = FromSchema<typeof schema>;
2
+ export type Entity = FromSchema<typeof Entity.schema>;
3
+ export declare namespace Entity {
4
+ const schema: {
5
+ readonly type: "integer";
6
+ readonly minimum: -2147483648;
7
+ readonly maximum: 2147483647;
8
+ readonly default: number;
9
+ };
10
+ }
@@ -1,3 +1,6 @@
1
- import { U32Schema } from "../schema/u32.js";
2
- export const schema = U32Schema;
1
+ import { I32Schema } from "../schema/i32.js";
2
+ export var Entity;
3
+ (function (Entity) {
4
+ Entity.schema = I32Schema;
5
+ })(Entity || (Entity = {}));
3
6
  //# sourceMappingURL=entity.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"entity.js","sourceRoot":"","sources":["../../src/ecs/entity.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,MAAM,CAAC,MAAM,MAAM,GAAG,SAAS,CAAC"}
1
+ {"version":3,"file":"entity.js","sourceRoot":"","sources":["../../src/ecs/entity.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAG7C,MAAM,KAAW,MAAM,CAEtB;AAFD,WAAiB,MAAM;IACN,aAAM,GAAG,SAAS,CAAC;AACpC,CAAC,EAFgB,MAAM,KAAN,MAAM,QAEtB"}
@@ -1,11 +1,11 @@
1
1
  export * from "./store/index.js";
2
2
  export * from "./database/index.js";
3
3
  export * from "./archetype/index.js";
4
- export * from "./core-components.js";
4
+ export * from "./required-components.js";
5
+ export * from "./optional-components.js";
5
6
  export * from "./component-schemas.js";
6
7
  export * from "./resource-schemas.js";
7
8
  export * from "./undo-redo-service/index.js";
8
9
  export * from "./persistence-service/index.js";
9
10
  export { applyOperations } from "./database/transactional-store/apply-operations.js";
10
- export type Entity = import("./entity.js").Entity;
11
- export * as Entity from "./entity.js";
11
+ export { Entity } from "./entity.js";
package/dist/ecs/index.js CHANGED
@@ -22,12 +22,13 @@ SOFTWARE.*/
22
22
  export * from "./store/index.js";
23
23
  export * from "./database/index.js";
24
24
  export * from "./archetype/index.js";
25
- export * from "./core-components.js";
25
+ export * from "./required-components.js";
26
+ export * from "./optional-components.js";
26
27
  export * from "./component-schemas.js";
27
28
  export * from "./resource-schemas.js";
28
29
  export * from "./undo-redo-service/index.js";
29
30
  export * from "./persistence-service/index.js";
30
31
  export { applyOperations } from "./database/transactional-store/apply-operations.js";
31
- // Export the namespace Entity
32
- export * as Entity from "./entity.js";
32
+ // Export Entity type and namespace
33
+ export { Entity } from "./entity.js";
33
34
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ecs/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;WAoBW;AACX,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,oDAAoD,CAAC;AAIrF,8BAA8B;AAC9B,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ecs/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;WAoBW;AACX,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,oDAAoD,CAAC;AAErF,mCAAmC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,3 @@
1
+ export type OptionalComponents = {
2
+ transient: true;
3
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=optional-components.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"optional-components.js","sourceRoot":"","sources":["../../src/ecs/optional-components.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import { Entity } from "./entity.js";
2
+ export type RequiredComponents = {
3
+ id: Entity;
4
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=required-components.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"required-components.js","sourceRoot":"","sources":["../../src/ecs/required-components.ts"],"names":[],"mappings":""}
@@ -1,36 +1,37 @@
1
1
  import { Entity } from "../../entity.js";
2
2
  import { Archetype, ReadonlyArchetype } from "../../archetype/archetype.js";
3
3
  import { Schema } from "../../../schema/schema.js";
4
- import { CoreComponents } from "../../core-components.js";
4
+ import { RequiredComponents } from "../../required-components.js";
5
5
  import { StringKeyof } from "../../../types/index.js";
6
6
  import { Components } from "../components.js";
7
+ import { OptionalComponents } from "../../optional-components.js";
7
8
  export type EntityValues<C> = {
8
- readonly [K in (CoreComponents & StringKeyof<C>)]: C[K];
9
+ readonly [K in (RequiredComponents & StringKeyof<C & OptionalComponents>)]: (C & OptionalComponents)[K];
9
10
  };
10
- export type EntityReadValues<C> = CoreComponents & {
11
- readonly [K in StringKeyof<C>]?: C[K];
11
+ export type EntityReadValues<C> = RequiredComponents & {
12
+ readonly [K in StringKeyof<C & OptionalComponents>]?: (C & OptionalComponents)[K];
12
13
  };
13
14
  export type EntityUpdateValues<C> = Partial<Omit<C, "id">>;
14
15
  export type ArchetypeQueryOptions<C extends object> = {
15
- exclude?: readonly StringKeyof<C>[];
16
+ exclude?: readonly StringKeyof<C & OptionalComponents>[];
16
17
  };
17
18
  export interface ReadonlyCore<C extends Components = never> {
18
19
  readonly componentSchemas: {
19
- readonly [K in StringKeyof<C & CoreComponents>]: Schema;
20
+ readonly [K in StringKeyof<C & RequiredComponents & OptionalComponents>]: Schema;
20
21
  };
21
- queryArchetypes<Include extends StringKeyof<C & CoreComponents>>(include: readonly Include[] | ReadonlySet<string>, options?: ArchetypeQueryOptions<C>): readonly ReadonlyArchetype<CoreComponents & Pick<C & CoreComponents, Include>>[];
22
- ensureArchetype: <const CC extends StringKeyof<C & CoreComponents>>(components: readonly CC[] | ReadonlySet<CC>) => ReadonlyArchetype<CoreComponents & {
23
- [K in CC]: (C & CoreComponents)[K];
22
+ queryArchetypes<Include extends StringKeyof<C & RequiredComponents & OptionalComponents>>(include: readonly Include[] | ReadonlySet<string>, options?: ArchetypeQueryOptions<C>): readonly ReadonlyArchetype<RequiredComponents & Pick<C & RequiredComponents & OptionalComponents, Include>>[];
23
+ ensureArchetype: <const CC extends StringKeyof<C & RequiredComponents & OptionalComponents>>(components: readonly CC[] | ReadonlySet<CC>) => ReadonlyArchetype<RequiredComponents & {
24
+ [K in CC]: (C & RequiredComponents & OptionalComponents)[K];
24
25
  }>;
25
26
  locate: (entity: Entity) => {
26
- archetype: ReadonlyArchetype<CoreComponents>;
27
+ archetype: ReadonlyArchetype<RequiredComponents>;
27
28
  row: number;
28
29
  } | null;
29
- read<T extends CoreComponents>(entity: Entity, minArchetype: ReadonlyArchetype<T> | Archetype<T>): {
30
- readonly [K in (StringKeyof<CoreComponents & T>)]: (CoreComponents & T)[K];
30
+ read<T extends RequiredComponents>(entity: Entity, minArchetype: ReadonlyArchetype<T> | Archetype<T>): {
31
+ readonly [K in (StringKeyof<RequiredComponents & T>)]: (RequiredComponents & T)[K];
31
32
  } & EntityReadValues<C> | null;
32
- read(entity: Entity): {
33
- readonly [K in (StringKeyof<CoreComponents & C>)]: (CoreComponents & C)[K];
33
+ read(entity: Entity): RequiredComponents & {
34
+ readonly [K in (StringKeyof<C & OptionalComponents>)]?: (OptionalComponents & C)[K];
34
35
  } | null;
35
36
  get<K extends StringKeyof<C>>(entity: Entity, component: K): C[K] | undefined;
36
37
  toData(): unknown;
@@ -39,12 +40,12 @@ export interface ReadonlyCore<C extends Components = never> {
39
40
  * This is the main interface for the low level ECS Core.
40
41
  */
41
42
  export interface Core<C extends Components = never> extends ReadonlyCore<C> {
42
- queryArchetypes<Include extends StringKeyof<C & CoreComponents>>(include: readonly Include[] | ReadonlySet<string>, options?: ArchetypeQueryOptions<C>): readonly Archetype<CoreComponents & Pick<C & CoreComponents, Include>>[];
43
- ensureArchetype: <const CC extends StringKeyof<C & CoreComponents>>(components: readonly CC[] | ReadonlySet<CC>) => Archetype<CoreComponents & {
44
- [K in CC]: (C & CoreComponents)[K];
43
+ queryArchetypes<Include extends StringKeyof<C & RequiredComponents & OptionalComponents>>(include: readonly Include[] | ReadonlySet<string>, options?: ArchetypeQueryOptions<C>): readonly Archetype<RequiredComponents & Pick<C & RequiredComponents & OptionalComponents, Include>>[];
44
+ ensureArchetype: <const CC extends StringKeyof<C & RequiredComponents & OptionalComponents>>(components: readonly CC[] | ReadonlySet<CC>) => Archetype<RequiredComponents & {
45
+ [K in CC]: (C & RequiredComponents & OptionalComponents)[K];
45
46
  }>;
46
47
  locate: (entity: Entity) => {
47
- archetype: Archetype<CoreComponents>;
48
+ archetype: Archetype<RequiredComponents>;
48
49
  row: number;
49
50
  } | null;
50
51
  delete: (entity: Entity) => void;
@@ -2,6 +2,7 @@ import { FromSchema } from "../../../schema/schema.js";
2
2
  import { Core } from "./core.js";
3
3
  import { Simplify, StringKeyof } from "../../../types/index.js";
4
4
  import { ComponentSchemas } from "../../component-schemas.js";
5
- export declare function createCore<NC extends ComponentSchemas>(newComponentSchemas: NC): Core<Simplify<{
5
+ import { OptionalComponents } from "../../optional-components.js";
6
+ export declare function createCore<NC extends ComponentSchemas>(newComponentSchemas: NC): Core<Simplify<OptionalComponents & {
6
7
  [K in StringKeyof<NC>]: FromSchema<NC[K]>;
7
8
  }>>;
@@ -22,10 +22,21 @@ SOFTWARE.*/
22
22
  import { createEntityLocationTable } from "../../entity-location-table/index.js";
23
23
  import * as ARCHETYPE from "../../archetype/index.js";
24
24
  import { Table, getRowData, addRow, updateRow } from "../../../table/index.js";
25
- import { schema } from "../../entity.js";
25
+ import { Entity } from "../../entity.js";
26
+ import { TrueSchema } from "../../../schema/true.js";
26
27
  export function createCore(newComponentSchemas) {
27
- const componentSchemas = { id: schema, ...newComponentSchemas };
28
- const entityLocationTable = createEntityLocationTable();
28
+ const componentSchemas = {
29
+ id: Entity.schema,
30
+ transient: TrueSchema,
31
+ ...newComponentSchemas
32
+ };
33
+ // entity location table for entities that are not transient
34
+ // values >= 0
35
+ const persistentLocationTable = createEntityLocationTable(16, false);
36
+ // entity location table for entities that are transient
37
+ // values < 0
38
+ const transientLocationTable = createEntityLocationTable(16, true);
39
+ const getLocationTable = (entity) => entity < 0 ? transientLocationTable : persistentLocationTable;
29
40
  const archetypes = [];
30
41
  const queryArchetypes = (include, options) => {
31
42
  const includeArray = Array.from(include);
@@ -51,22 +62,28 @@ export function createCore(newComponentSchemas) {
51
62
  const id = archetypes.length;
52
63
  const archetypeComponentSchemas = {};
53
64
  let hasId = false;
65
+ let transient = false;
54
66
  for (const comp of componentNames) {
55
67
  if (comp === "id") {
56
68
  hasId = true;
57
69
  }
70
+ if (comp === "transient") {
71
+ transient = true;
72
+ }
58
73
  archetypeComponentSchemas[comp] = componentSchemas[comp];
59
74
  }
60
75
  if (!hasId) {
61
76
  throw new Error("id is required");
62
77
  }
63
- const archetype = ARCHETYPE.createArchetype(archetypeComponentSchemas, id, entityLocationTable);
78
+ const archetype = ARCHETYPE.createArchetype(archetypeComponentSchemas, id, transient ? transientLocationTable : persistentLocationTable);
64
79
  archetypes.push(archetype);
65
80
  return archetype;
66
81
  };
67
- const { locate } = entityLocationTable;
82
+ const locateInternal = (entity) => {
83
+ return (entity < 0 ? transientLocationTable : persistentLocationTable).locate(entity);
84
+ };
68
85
  const readEntity = (entity, minArchetype) => {
69
- const location = locate(entity);
86
+ const location = locateInternal(entity);
70
87
  if (location === null) {
71
88
  return null;
72
89
  }
@@ -77,20 +94,25 @@ export function createCore(newComponentSchemas) {
77
94
  return getRowData(archetype, location.row);
78
95
  };
79
96
  const deleteEntity = (entity) => {
80
- const location = locate(entity);
97
+ const locationTable = getLocationTable(entity);
98
+ const location = locationTable.locate(entity);
81
99
  if (location !== null) {
82
100
  const archetype = archetypes[location.archetype];
83
101
  if (!archetype) {
84
102
  throw new Error("Archetype not found: " + JSON.stringify(location));
85
103
  }
86
- ARCHETYPE.deleteRow(archetype, location.row, entityLocationTable);
87
- entityLocationTable.delete(entity);
104
+ ARCHETYPE.deleteRow(archetype, location.row, locationTable);
105
+ locationTable.delete(entity);
88
106
  }
89
107
  };
90
108
  const updateEntity = (entity, components) => {
91
- const currentLocation = locate(entity);
109
+ const currentLocation = locateInternal(entity);
92
110
  if (currentLocation === null) {
93
- throw "Entity not found";
111
+ debugger;
112
+ throw `Entity not found ${entity}`;
113
+ }
114
+ if ("transient" in components) {
115
+ throw new Error("Cannot update transient component");
94
116
  }
95
117
  const currentArchetype = archetypes[currentLocation.archetype];
96
118
  let newArchetype = currentArchetype;
@@ -125,18 +147,19 @@ export function createCore(newComponentSchemas) {
125
147
  if (newArchetype !== currentArchetype) {
126
148
  // create a new row in the new archetype
127
149
  const currentData = getRowData(currentArchetype, currentLocation.row);
150
+ const currentLocationTable = getLocationTable(entity);
128
151
  // deletes the row from the current archetype (this will update the entity location table for any row which may have been moved into it's position)
129
- ARCHETYPE.deleteRow(currentArchetype, currentLocation.row, entityLocationTable);
152
+ ARCHETYPE.deleteRow(currentArchetype, currentLocation.row, currentLocationTable);
130
153
  const newRow = addRow(newArchetype, { ...currentData, ...components });
131
154
  // update the entity location table for the entity so it points to the new archetype and row
132
- entityLocationTable.update(entity, { archetype: newArchetype.id, row: newRow });
155
+ currentLocationTable.update(entity, { archetype: newArchetype.id, row: newRow });
133
156
  }
134
157
  else {
135
158
  updateRow(newArchetype, currentLocation.row, components);
136
159
  }
137
160
  };
138
161
  const getComponent = (entity, component) => {
139
- const location = locate(entity);
162
+ const location = locateInternal(entity);
140
163
  if (location === null) {
141
164
  return undefined;
142
165
  }
@@ -154,7 +177,7 @@ export function createCore(newComponentSchemas) {
154
177
  queryArchetypes,
155
178
  ensureArchetype,
156
179
  locate: (entity) => {
157
- const location = locate(entity);
180
+ const location = locateInternal(entity);
158
181
  if (location === null) {
159
182
  return null;
160
183
  }
@@ -167,12 +190,12 @@ export function createCore(newComponentSchemas) {
167
190
  compact,
168
191
  toData: () => ({
169
192
  componentSchemas,
170
- entityLocationTableData: entityLocationTable.toData(),
193
+ entityLocationTableData: persistentLocationTable.toData(),
171
194
  archetypesData: archetypes.map(archetype => archetype.toData())
172
195
  }),
173
196
  fromData: (data) => {
174
197
  Object.assign(componentSchemas, data.componentSchemas);
175
- entityLocationTable.fromData(data.entityLocationTableData);
198
+ persistentLocationTable.fromData(data.entityLocationTableData);
176
199
  for (let i = 0; i < data.archetypesData.length; i++) {
177
200
  const componentNames = Object.keys(data.archetypesData[i].columns);
178
201
  const archetype = ensureArchetype(componentNames);
@@ -1 +1 @@
1
- {"version":3,"file":"create-core.js","sourceRoot":"","sources":["../../../../src/ecs/store/core/create-core.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;WAoBW;AAGX,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AACjF,OAAO,KAAK,SAAS,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAG/E,OAAO,EAAU,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAKjD,MAAM,UAAU,UAAU,CAA8B,mBAAuB;IAG3E,MAAM,gBAAgB,GAA+C,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,mBAAmB,EAAE,CAAC;IAC5G,MAAM,mBAAmB,GAAG,yBAAyB,EAAE,CAAC;IACxD,MAAM,UAAU,GAAG,EAAyF,CAAC;IAE7G,MAAM,eAAe,GAAG,CAGpB,OAAiD,EACjD,OAAkC,EACqB,EAAE;QACzD,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,OAAO,GAAmD,EAAE,CAAC;QACnE,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACjC,MAAM,cAAc,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC;YACzF,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC;YAChH,IAAI,cAAc,IAAI,aAAa,EAAE,CAAC;gBAClC,OAAO,CAAC,IAAI,CAAC,SAAoE,CAAC,CAAC;YACvF,CAAC;QACL,CAAC;QACD,OAAO,OAAO,CAAC;IACnB,CAAC,CAAA;IAED,MAAM,eAAe,GAAG,CAA4B,cAA+C,EAAmD,EAAE;QACpJ,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC;YAChD,CAAC,CAAE,cAAgC,CAAC,MAAM;YAC1C,CAAC,CAAE,cAAkC,CAAC,IAAI,CAAC;QAC/C,KAAK,MAAM,SAAS,IAAI,eAAe,CAAC,cAAc,CAAC,EAAE,CAAC;YACtD,IAAI,SAAS,CAAC,UAAU,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;gBAC/C,OAAO,SAAuE,CAAC;YACnF,CAAC;QACL,CAAC;QACD,MAAM,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC;QAC7B,MAAM,yBAAyB,GAA0B,EAA2B,CAAC;QACrF,IAAI,KAAK,GAAG,KAAK,CAAC;QAClB,KAAK,MAAM,IAAI,IAAI,cAA8B,EAAE,CAAC;YAChD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAChB,KAAK,GAAG,IAAI,CAAC;YACjB,CAAC;YACD,yBAAyB,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACtC,CAAC;QACD,MAAM,SAAS,GAAG,SAAS,CAAC,eAAe,CAAC,yBAAgC,EAAE,EAAE,EAAE,mBAAmB,CAAC,CAAC;QACvG,UAAU,CAAC,IAAI,CAAC,SAAoC,CAAC,CAAC;QACtD,OAAO,SAAuE,CAAC;IACnF,CAAC,CAAA;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,mBAAmB,CAAC;IAEvC,MAAM,UAAU,GAAG,CAAC,MAAc,EAAE,YAAkD,EAAO,EAAE;QAC3F,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,YAAY,IAAI,QAAQ,CAAC,SAAS,KAAK,YAAY,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;YACxH,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,UAAU,CAAC,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC/C,CAAC,CAAA;IAED,MAAM,YAAY,GAAG,CAAC,MAAc,EAAE,EAAE;QACpC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACpB,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YACjD,IAAI,CAAC,SAAS,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;YACxE,CAAC;YACD,SAAS,CAAC,SAAS,CAAC,SAAS,EAAE,QAAQ,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;YAClE,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;IACL,CAAC,CAAA;IAED,MAAM,YAAY,GAAG,CAAC,MAAc,EAAE,UAAiC,EAAE,EAAE;QACvE,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;YAC3B,MAAM,kBAAkB,CAAC;QAC7B,CAAC;QACD,MAAM,gBAAgB,GAAG,UAAU,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAC/D,IAAI,YAAY,GAAG,gBAAgB,CAAC;QACpC,IAAI,aAAa,GAA4B,IAAI,CAAC;QAClD,IAAI,gBAAgB,GAA4B,IAAI,CAAC;QACrD,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC3B,IAAK,UAAkB,CAAC,GAAU,CAAC,KAAK,SAAS,EAAE,CAAC;gBAChD,CAAC,gBAAgB,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,GAAqB,CAAC,CAAC;gBACtD,iFAAiF;gBACjF,OAAQ,UAAkB,CAAC,GAAU,CAAC,CAAC;YAC3C,CAAC;iBACI,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,GAAG,CAAC,GAAqB,CAAC,EAAE,CAAC;gBAC/D,CAAC,aAAa,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,GAAqB,CAAC,CAAC;YACvD,CAAC;QACL,CAAC;QACD,IAAI,aAAa,IAAI,gBAAgB,EAAE,CAAC;YACpC,2GAA2G;YAC3G,kFAAkF;YAClF,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;YAC3D,IAAI,aAAa,EAAE,CAAC;gBAChB,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;oBAC/B,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC5B,CAAC;YACL,CAAC;YACD,IAAI,gBAAgB,EAAE,CAAC;gBACnB,KAAK,MAAM,IAAI,IAAI,gBAAgB,EAAE,CAAC;oBAClC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC/B,CAAC;YACL,CAAC;YACD,YAAY,GAAG,eAAe,CAAC,aAA4C,CAA4B,CAAC;QAC5G,CAAC;QACD,IAAI,YAAY,KAAK,gBAAgB,EAAE,CAAC;YACpC,wCAAwC;YACxC,MAAM,WAAW,GAAG,UAAU,CAAC,gBAAgB,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC;YACtE,mJAAmJ;YACnJ,SAAS,CAAC,SAAS,CAAC,gBAAgB,EAAE,eAAe,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;YAChF,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,EAAE,EAAE,GAAG,WAAW,EAAE,GAAG,UAAU,EAAE,CAAC,CAAC;YACvE,4FAA4F;YAC5F,mBAAmB,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,YAAY,CAAC,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;QACpF,CAAC;aAAM,CAAC;YACJ,SAAS,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,EAAE,UAAiB,CAAC,CAAC;QACpE,CAAC;IACL,CAAC,CAAA;IAED,MAAM,YAAY,GAAG,CAA2B,MAAc,EAAE,SAAY,EAAoB,EAAE;QAC9F,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC5C,OAAO,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;IACpC,CAAC,CAAA;IAED,MAAM,OAAO,GAAG,GAAG,EAAE;QACjB,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACjC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC7B,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,IAAI,GAAY;QAClB,gBAAgB,EAAE,gBAAgB;QAClC,eAAe;QACf,eAAe;QACf,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;YACf,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YAChC,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;gBACpB,OAAO,IAAI,CAAC;YAChB,CAAC;YACD,OAAO,EAAE,SAAS,EAAE,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAQ,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC;QACnF,CAAC;QACD,GAAG,EAAE,YAAY;QACjB,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,YAAY;QACpB,MAAM,EAAE,YAAY;QACpB,OAAO;QACP,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACX,gBAAgB;YAChB,uBAAuB,EAAE,mBAAmB,CAAC,MAAM,EAAE;YACrD,cAAc,EAAE,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;SAClE,CAAC;QACF,QAAQ,EAAE,CAAC,IAAS,EAAE,EAAE;YACpB,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACvD,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YAC3D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAClD,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBACnE,MAAM,SAAS,GAAG,eAAe,CAAC,cAAqB,CAAC,CAAC;gBACzD,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/C,CAAC;QACL,CAAC;KACJ,CAAC;IACF,OAAO,IAAW,CAAC;AACvB,CAAC"}
1
+ {"version":3,"file":"create-core.js","sourceRoot":"","sources":["../../../../src/ecs/store/core/create-core.ts"],"names":[],"mappings":"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"}
@@ -38,4 +38,4 @@ export declare const nameSchema: {
38
38
  readonly type: "string";
39
39
  readonly maxLength: 50;
40
40
  };
41
- export declare function createCoreTestSuite(name: string, factory?: typeof createCore): void;
41
+ export declare function createCoreTestSuite(name: string, factory: typeof createCore): void;