@spearwolf/shadow-objects 0.1.0

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 (184) hide show
  1. package/LICENSE +13 -0
  2. package/README.md +69 -0
  3. package/bundle.js +70 -0
  4. package/package.json +58 -0
  5. package/src/bundle.d.ts +7 -0
  6. package/src/bundle.d.ts.map +1 -0
  7. package/src/bundle.js +5 -0
  8. package/src/bundle.js.map +1 -0
  9. package/src/constants.d.ts +39 -0
  10. package/src/constants.d.ts.map +1 -0
  11. package/src/constants.js +40 -0
  12. package/src/constants.js.map +1 -0
  13. package/src/create-worker.bundle.d.ts +3 -0
  14. package/src/create-worker.bundle.d.ts.map +1 -0
  15. package/src/create-worker.bundle.js +6 -0
  16. package/src/create-worker.bundle.js.map +1 -0
  17. package/src/create-worker.d.ts +3 -0
  18. package/src/create-worker.d.ts.map +1 -0
  19. package/src/create-worker.js +2 -0
  20. package/src/create-worker.js.map +1 -0
  21. package/src/elements/ShaeElement.d.ts +13 -0
  22. package/src/elements/ShaeElement.d.ts.map +1 -0
  23. package/src/elements/ShaeElement.js +58 -0
  24. package/src/elements/ShaeElement.js.map +1 -0
  25. package/src/elements/ShaeEntElement.d.ts +23 -0
  26. package/src/elements/ShaeEntElement.d.ts.map +1 -0
  27. package/src/elements/ShaeEntElement.js +258 -0
  28. package/src/elements/ShaeEntElement.js.map +1 -0
  29. package/src/elements/ShaePropElement.d.ts +26 -0
  30. package/src/elements/ShaePropElement.d.ts.map +1 -0
  31. package/src/elements/ShaePropElement.js +321 -0
  32. package/src/elements/ShaePropElement.js.map +1 -0
  33. package/src/elements/ShaeWorkerElement.d.ts +25 -0
  34. package/src/elements/ShaeWorkerElement.d.ts.map +1 -0
  35. package/src/elements/ShaeWorkerElement.js +208 -0
  36. package/src/elements/ShaeWorkerElement.js.map +1 -0
  37. package/src/elements/constants.d.ts +17 -0
  38. package/src/elements/constants.d.ts.map +1 -0
  39. package/src/elements/constants.js +21 -0
  40. package/src/elements/constants.js.map +1 -0
  41. package/src/elements/events.d.ts +24 -0
  42. package/src/elements/events.d.ts.map +1 -0
  43. package/src/elements/events.js +2 -0
  44. package/src/elements/events.js.map +1 -0
  45. package/src/entities/Entity.d.ts +46 -0
  46. package/src/entities/Entity.d.ts.map +1 -0
  47. package/src/entities/Entity.js +217 -0
  48. package/src/entities/Entity.js.map +1 -0
  49. package/src/entities/Kernel.d.ts +60 -0
  50. package/src/entities/Kernel.d.ts.map +1 -0
  51. package/src/entities/Kernel.js +361 -0
  52. package/src/entities/Kernel.js.map +1 -0
  53. package/src/entities/Registry.d.ts +16 -0
  54. package/src/entities/Registry.d.ts.map +1 -0
  55. package/src/entities/Registry.js +72 -0
  56. package/src/entities/Registry.js.map +1 -0
  57. package/src/entities/ShadowObject.d.ts +18 -0
  58. package/src/entities/ShadowObject.d.ts.map +1 -0
  59. package/src/entities/ShadowObject.js +24 -0
  60. package/src/entities/ShadowObject.js.map +1 -0
  61. package/src/entities/SignalsMap.d.ts +12 -0
  62. package/src/entities/SignalsMap.d.ts.map +1 -0
  63. package/src/entities/SignalsMap.js +34 -0
  64. package/src/entities/SignalsMap.js.map +1 -0
  65. package/src/entities/SignalsPath.d.ts +12 -0
  66. package/src/entities/SignalsPath.d.ts.map +1 -0
  67. package/src/entities/SignalsPath.js +73 -0
  68. package/src/entities/SignalsPath.js.map +1 -0
  69. package/src/entities/events.d.ts +27 -0
  70. package/src/entities/events.d.ts.map +1 -0
  71. package/src/entities/events.js +7 -0
  72. package/src/entities/events.js.map +1 -0
  73. package/src/entities/importModule.d.ts +4 -0
  74. package/src/entities/importModule.d.ts.map +1 -0
  75. package/src/entities/importModule.js +32 -0
  76. package/src/entities/importModule.js.map +1 -0
  77. package/src/index.d.ts +22 -0
  78. package/src/index.d.ts.map +1 -0
  79. package/src/index.js +20 -0
  80. package/src/index.js.map +1 -0
  81. package/src/shadow-objects.d.ts +7 -0
  82. package/src/shadow-objects.d.ts.map +1 -0
  83. package/src/shadow-objects.js +6 -0
  84. package/src/shadow-objects.js.map +1 -0
  85. package/src/shadow-objects.worker.d.ts +2 -0
  86. package/src/shadow-objects.worker.d.ts.map +1 -0
  87. package/src/shadow-objects.worker.js +5 -0
  88. package/src/shadow-objects.worker.js.map +1 -0
  89. package/src/shae-ent.d.ts +2 -0
  90. package/src/shae-ent.d.ts.map +1 -0
  91. package/src/shae-ent.js +4 -0
  92. package/src/shae-ent.js.map +1 -0
  93. package/src/shae-prop.d.ts +2 -0
  94. package/src/shae-prop.d.ts.map +1 -0
  95. package/src/shae-prop.js +4 -0
  96. package/src/shae-prop.js.map +1 -0
  97. package/src/shae-worker.d.ts +2 -0
  98. package/src/shae-worker.d.ts.map +1 -0
  99. package/src/shae-worker.js +4 -0
  100. package/src/shae-worker.js.map +1 -0
  101. package/src/types.d.ts +89 -0
  102. package/src/types.d.ts.map +1 -0
  103. package/src/types.js +2 -0
  104. package/src/types.js.map +1 -0
  105. package/src/utils/FrameLoop.d.ts +8 -0
  106. package/src/utils/FrameLoop.d.ts.map +1 -0
  107. package/src/utils/FrameLoop.js +45 -0
  108. package/src/utils/FrameLoop.js.map +1 -0
  109. package/src/utils/array-utils.d.ts +11 -0
  110. package/src/utils/array-utils.d.ts.map +1 -0
  111. package/src/utils/array-utils.js +27 -0
  112. package/src/utils/array-utils.js.map +1 -0
  113. package/src/utils/attr-utils.d.ts +3 -0
  114. package/src/utils/attr-utils.d.ts.map +1 -0
  115. package/src/utils/attr-utils.js +12 -0
  116. package/src/utils/attr-utils.js.map +1 -0
  117. package/src/utils/constants.d.ts +2 -0
  118. package/src/utils/constants.d.ts.map +1 -0
  119. package/src/utils/constants.js +2 -0
  120. package/src/utils/constants.js.map +1 -0
  121. package/src/utils/generateUUID.d.ts +2 -0
  122. package/src/utils/generateUUID.d.ts.map +1 -0
  123. package/src/utils/generateUUID.js +34 -0
  124. package/src/utils/generateUUID.js.map +1 -0
  125. package/src/utils/props-utils.d.ts +8 -0
  126. package/src/utils/props-utils.d.ts.map +1 -0
  127. package/src/utils/props-utils.js +47 -0
  128. package/src/utils/props-utils.js.map +1 -0
  129. package/src/utils/toNamespace.d.ts +3 -0
  130. package/src/utils/toNamespace.d.ts.map +1 -0
  131. package/src/utils/toNamespace.js +3 -0
  132. package/src/utils/toNamespace.js.map +1 -0
  133. package/src/utils/toUrlString.d.ts +2 -0
  134. package/src/utils/toUrlString.d.ts.map +1 -0
  135. package/src/utils/toUrlString.js +7 -0
  136. package/src/utils/toUrlString.js.map +1 -0
  137. package/src/utils/waitForMessageOfType.d.ts +5 -0
  138. package/src/utils/waitForMessageOfType.d.ts.map +1 -0
  139. package/src/utils/waitForMessageOfType.js +34 -0
  140. package/src/utils/waitForMessageOfType.js.map +1 -0
  141. package/src/view/ComponentChanges.d.ts +30 -0
  142. package/src/view/ComponentChanges.d.ts.map +1 -0
  143. package/src/view/ComponentChanges.js +249 -0
  144. package/src/view/ComponentChanges.js.map +1 -0
  145. package/src/view/ComponentContext.d.ts +76 -0
  146. package/src/view/ComponentContext.d.ts.map +1 -0
  147. package/src/view/ComponentContext.js +344 -0
  148. package/src/view/ComponentContext.js.map +1 -0
  149. package/src/view/ComponentMemory.d.ts +8 -0
  150. package/src/view/ComponentMemory.d.ts.map +1 -0
  151. package/src/view/ComponentMemory.js +79 -0
  152. package/src/view/ComponentMemory.js.map +1 -0
  153. package/src/view/IShadowObjectEnvProxy.d.ts +10 -0
  154. package/src/view/IShadowObjectEnvProxy.d.ts.map +1 -0
  155. package/src/view/IShadowObjectEnvProxy.js +2 -0
  156. package/src/view/IShadowObjectEnvProxy.js.map +1 -0
  157. package/src/view/LocalShadowObjectEnv.d.ts +18 -0
  158. package/src/view/LocalShadowObjectEnv.d.ts.map +1 -0
  159. package/src/view/LocalShadowObjectEnv.js +55 -0
  160. package/src/view/LocalShadowObjectEnv.js.map +1 -0
  161. package/src/view/RemoteWorkerEnv.d.ts +15 -0
  162. package/src/view/RemoteWorkerEnv.d.ts.map +1 -0
  163. package/src/view/RemoteWorkerEnv.js +112 -0
  164. package/src/view/RemoteWorkerEnv.js.map +1 -0
  165. package/src/view/ShadowEnv.d.ts +30 -0
  166. package/src/view/ShadowEnv.d.ts.map +1 -0
  167. package/src/view/ShadowEnv.js +202 -0
  168. package/src/view/ShadowEnv.js.map +1 -0
  169. package/src/view/ViewComponent.d.ts +33 -0
  170. package/src/view/ViewComponent.d.ts.map +1 -0
  171. package/src/view/ViewComponent.js +130 -0
  172. package/src/view/ViewComponent.js.map +1 -0
  173. package/src/view/cloneChangeTrail.d.ts +3 -0
  174. package/src/view/cloneChangeTrail.d.ts.map +1 -0
  175. package/src/view/cloneChangeTrail.js +12 -0
  176. package/src/view/cloneChangeTrail.js.map +1 -0
  177. package/src/worker/MessageRouter.d.ts +14 -0
  178. package/src/worker/MessageRouter.d.ts.map +1 -0
  179. package/src/worker/MessageRouter.js +72 -0
  180. package/src/worker/MessageRouter.js.map +1 -0
  181. package/src/worker/WorkerRuntime.d.ts +7 -0
  182. package/src/worker/WorkerRuntime.d.ts.map +1 -0
  183. package/src/worker/WorkerRuntime.js +15 -0
  184. package/src/worker/WorkerRuntime.js.map +1 -0
@@ -0,0 +1,344 @@
1
+ import { ChangeTrailPhase, ContextLost, GlobalNS } from '../constants.js';
2
+ import { removeFrom } from '../utils/array-utils.js';
3
+ import { toNamespace } from '../utils/toNamespace.js';
4
+ import { ComponentChanges } from './ComponentChanges.js';
5
+ import { ComponentMemory } from './ComponentMemory.js';
6
+ /**
7
+ * The {@link ComponentContext} represents the current real-time state of the _view components_.
8
+ *
9
+ * Changes to the components and their hierarchy are also logged to the {@link ComponentChanges}.
10
+ *
11
+ * Each time a change trail is created (a call to {@link ComponentContext#buildChangeTrails}),
12
+ * the past changes are summarized and returned as the result. This means that the change trail
13
+ * is always the path of changes from the time of the previous change trail (or from the beginning)
14
+ * to the current call to the {@link ComponentContext#buildChangeTrails} method.
15
+ *
16
+ * In addition, there is the {@link ComponentMemory}. The memory represents the component state at
17
+ * the time of the last change trail, as opposed to the {@link ComponentContext}, which represents
18
+ * the current real-time state of the _view components_.
19
+ *
20
+ * A context is always associated with a namespace.
21
+ * If no namespace is specified when creating a {@link ComponentContext}, the global namespace is used.
22
+ * There is only one {@link ComponentContext} (a singleton) for each namespace.
23
+ */
24
+ export class ComponentContext {
25
+ static getContextsMap() {
26
+ if (globalThis.__shadowEntsContexts == null) {
27
+ globalThis.__shadowEntsContexts = new Map();
28
+ }
29
+ return globalThis.__shadowEntsContexts;
30
+ }
31
+ static get(namespace) {
32
+ const ns = toNamespace(namespace);
33
+ const ctxMap = ComponentContext.getContextsMap();
34
+ if (ctxMap.has(ns)) {
35
+ return ctxMap.get(ns);
36
+ }
37
+ return new ComponentContext(ns);
38
+ }
39
+ #components = new Map();
40
+ #rootComponents = []; // we use an Array here and not a Set, because we want to keep the insertion order
41
+ #componentMemory = new ComponentMemory();
42
+ constructor(namespace = GlobalNS) {
43
+ const ns = toNamespace(namespace);
44
+ const ctxMap = ComponentContext.getContextsMap();
45
+ if (ctxMap.has(ns)) {
46
+ return ctxMap.get(ns);
47
+ }
48
+ this.ns = ns;
49
+ ctxMap.set(ns, this);
50
+ }
51
+ addComponent(component) {
52
+ let viewInstance;
53
+ if (this.#components.has(component.uuid)) {
54
+ viewInstance = this.#components.get(component.uuid);
55
+ viewInstance.component = component;
56
+ viewInstance.children = [];
57
+ }
58
+ else {
59
+ viewInstance = {
60
+ component,
61
+ children: [],
62
+ changes: new ComponentChanges(component.uuid),
63
+ propIsEqual: undefined,
64
+ };
65
+ this.#components.set(component.uuid, viewInstance);
66
+ }
67
+ viewInstance.changes.create(component.token, component.parent?.uuid, component.order);
68
+ if (component.parent) {
69
+ this.addToChildren(component.parent, component);
70
+ viewInstance.changes.setParent(component.parent.uuid);
71
+ }
72
+ else {
73
+ this.#appendToOrdered(component, this.#rootComponents);
74
+ }
75
+ this.#viewInstances = undefined;
76
+ }
77
+ hasComponent(component) {
78
+ return this.#components.has(component.uuid);
79
+ }
80
+ hasComponents() {
81
+ return this.#components.size > 0;
82
+ }
83
+ isRootComponent(component) {
84
+ return this.#rootComponents.includes(component.uuid);
85
+ }
86
+ destroyComponent(component) {
87
+ if (this.hasComponent(component)) {
88
+ const entry = this.#components.get(component.uuid);
89
+ entry.children.slice(0).forEach((childUuid) => this.#components.get(childUuid)?.component.removeFromParent());
90
+ entry.changes.destroy();
91
+ this.#viewInstances = undefined;
92
+ }
93
+ }
94
+ getChildren(component) {
95
+ return this.#components.get(component.uuid)?.children.map((uuid) => this.#components.get(uuid).component) ?? [];
96
+ }
97
+ removeFromParent(childUuid, parent) {
98
+ if (this.hasComponent(parent)) {
99
+ const childEntry = this.#components.get(childUuid);
100
+ const entry = this.#components.get(parent.uuid);
101
+ const childIdx = entry.children.indexOf(childUuid);
102
+ if (childIdx !== -1) {
103
+ entry.children.splice(childIdx, 1);
104
+ childEntry.changes.setParent(undefined);
105
+ }
106
+ this.#appendToOrdered(childEntry.component, this.#rootComponents);
107
+ this.#viewInstances = undefined;
108
+ }
109
+ }
110
+ changeToken(component, token) {
111
+ this.#components.get(component.uuid)?.changes.changeToken(token);
112
+ }
113
+ isChildOf(child, parent) {
114
+ if (this.hasComponent(parent)) {
115
+ const entry = this.#components.get(parent.uuid);
116
+ return entry.children.includes(child.uuid);
117
+ }
118
+ return false;
119
+ }
120
+ addToChildren(parent, child) {
121
+ const entry = this.#components.get(parent.uuid);
122
+ if (entry) {
123
+ this.#appendToOrdered(child, entry.children);
124
+ this.#components.get(child.uuid)?.changes.setParent(parent.uuid);
125
+ removeFrom(this.#rootComponents, child.uuid);
126
+ this.#viewInstances = undefined;
127
+ }
128
+ else {
129
+ throw new Error(`the view component ${parent.uuid} cannot have a child added to it because the component do not exist!`);
130
+ }
131
+ }
132
+ removeSubTree(uuid) {
133
+ const entry = this.#components.get(uuid);
134
+ if (entry) {
135
+ entry.children.slice(0).forEach((childUuid) => this.removeSubTree(childUuid));
136
+ this.destroyComponent(entry.component);
137
+ this.#deleteComponent(uuid);
138
+ }
139
+ }
140
+ setProperty(component, propKey, value, isEqual) {
141
+ const vi = this.#components.get(component.uuid);
142
+ if (vi != null) {
143
+ if (isEqual != null) {
144
+ vi.propIsEqual ??= new Map();
145
+ vi.propIsEqual.set(propKey, isEqual);
146
+ }
147
+ else if (vi.propIsEqual?.has(propKey)) {
148
+ vi.propIsEqual.delete(propKey);
149
+ }
150
+ return vi.changes.changeProperty(propKey, value, isEqual);
151
+ }
152
+ return false;
153
+ }
154
+ removeProperty(component, propKey) {
155
+ this.#components.get(component.uuid)?.changes.removeProperty(propKey);
156
+ }
157
+ changeOrder(component) {
158
+ if (component.parent) {
159
+ const parentEntry = this.#components.get(component.parent.uuid);
160
+ removeFrom(parentEntry.children, component.uuid);
161
+ this.#appendToOrdered(component, parentEntry.children);
162
+ }
163
+ else {
164
+ removeFrom(this.#rootComponents, component.uuid);
165
+ this.#appendToOrdered(component, this.#rootComponents);
166
+ }
167
+ this.#components.get(component.uuid)?.changes.changeOrder(component.order);
168
+ this.#viewInstances = undefined;
169
+ }
170
+ /**
171
+ * @returns all view-components in breadth-first order
172
+ */
173
+ traverseLevelOrderBFS() {
174
+ return this.#traverseLevelOrderBFS().map((vi) => vi.component);
175
+ }
176
+ /**
177
+ * Dispatch an event to the shadow objects linked to the view component
178
+ */
179
+ dispatchShadowObjectsEvent(component, type, data, transferables) {
180
+ this.#components.get(component.uuid)?.changes.createEvent(type, data, transferables);
181
+ }
182
+ /**
183
+ * Dispatch an event to all view components
184
+ */
185
+ broadcastEvent(type, data = undefined) {
186
+ for (const c of this.traverseLevelOrderBFS()) {
187
+ c.dispatchEvent(type, data, false);
188
+ }
189
+ }
190
+ /**
191
+ * Dispatch an event (usually from the shadow-objects from the worker env) to a specific view component
192
+ */
193
+ dispatchMessage(uuid, type, data = undefined, traverseChildren = false) {
194
+ this.#components.get(uuid)?.component.dispatchEvent(type, data, traverseChildren);
195
+ }
196
+ /**
197
+ * Create the component change trails at this point in time.
198
+ * The next call will only return the differences from the previous call.
199
+ *
200
+ * @see {@link ComponentContext.reCreateChanges}
201
+ */
202
+ buildChangeTrails(clearChanges = true) {
203
+ const trails = [];
204
+ if (!this.hasComponents())
205
+ return trails;
206
+ const pathOfChanges = this.#buildPathOfChanges();
207
+ // console.log(
208
+ // 'path of changes:',
209
+ // pathOfChanges.map((c) => c.uuid),
210
+ // );
211
+ for (const changes of pathOfChanges) {
212
+ changes.buildChangeTrail(trails, ChangeTrailPhase.StructuralChanges);
213
+ }
214
+ for (const changes of pathOfChanges) {
215
+ changes.buildChangeTrail(trails, ChangeTrailPhase.ContentUpdates);
216
+ }
217
+ for (const changes of pathOfChanges) {
218
+ changes.buildChangeTrail(trails, ChangeTrailPhase.Removal);
219
+ if (changes.isDestroyed || (changes.isNew && !changes.isCreated)) {
220
+ this.#deleteComponent(changes.uuid);
221
+ }
222
+ if (clearChanges)
223
+ changes.clear();
224
+ }
225
+ this.#componentMemory.write(trails);
226
+ return trails;
227
+ }
228
+ /**
229
+ * Resets the internal component change states so that all view components are regenerated with the next change trail.
230
+ * The outstanding events are taken over.
231
+ *
232
+ * @see {@link ComponentContext.buildChangeTrails}
233
+ */
234
+ reCreateChanges() {
235
+ if (this.#componentMemory.isEmpty())
236
+ return;
237
+ this.buildChangeTrails(false);
238
+ for (const [uuid, cMem] of this.#componentMemory) {
239
+ const c = this.#components.get(uuid);
240
+ if (c) {
241
+ const changes = new ComponentChanges(uuid);
242
+ changes.create(cMem.token, cMem.parentUuid, cMem.order);
243
+ if (cMem.properties) {
244
+ for (const [key, value] of cMem.properties) {
245
+ changes.changeProperty(key, value, c.propIsEqual?.get(key));
246
+ }
247
+ }
248
+ c.changes.transferEventsTo(changes);
249
+ c.changes.clear();
250
+ c.changes = changes;
251
+ }
252
+ }
253
+ this.#componentMemory.clear();
254
+ this.broadcastEvent(ContextLost);
255
+ }
256
+ clear() {
257
+ this.#viewInstances = undefined;
258
+ this.#componentMemory.clear();
259
+ this.#rootComponents.slice(0).forEach((uuid) => this.removeSubTree(uuid));
260
+ if (this.#rootComponents.length !== 0) {
261
+ throw new Error('component-context panic: #rootComponents is not empty!');
262
+ }
263
+ if (this.#components.size !== 0) {
264
+ throw new Error('component-context panic: #components is not empty!');
265
+ }
266
+ }
267
+ #deleteComponent(uuid) {
268
+ // console.log('deleteComponent:', uuid, this.#components.has(uuid) ? 'x' : '');
269
+ if (this.#components.has(uuid)) {
270
+ this.#components.delete(uuid);
271
+ removeFrom(this.#rootComponents, uuid);
272
+ this.#viewInstances = undefined;
273
+ }
274
+ }
275
+ #buildPathOfChanges() {
276
+ return this.#traverseLevelOrderBFS()
277
+ .filter((vi) => vi.changes.hasChanges())
278
+ .map((vi) => vi.changes);
279
+ }
280
+ #appendToOrdered(component, childUuids) {
281
+ if (childUuids.length === 0) {
282
+ childUuids.push(component.uuid);
283
+ return;
284
+ }
285
+ if (childUuids.includes(component.uuid)) {
286
+ return;
287
+ }
288
+ const len = childUuids.length;
289
+ const childComponents = new Array(len);
290
+ childComponents[0] = this.#components.get(childUuids[0]).component;
291
+ if (component.order < childComponents[0].order) {
292
+ childUuids.unshift(component.uuid);
293
+ return;
294
+ }
295
+ if (len === 1) {
296
+ childUuids.push(component.uuid);
297
+ return;
298
+ }
299
+ const lastIdx = len - 1;
300
+ childComponents[lastIdx] = this.#components.get(childUuids[lastIdx]).component;
301
+ if (component.order >= childComponents[lastIdx].order) {
302
+ childUuids.push(component.uuid);
303
+ return;
304
+ }
305
+ if (len === 2) {
306
+ childUuids.splice(1, 0, component.uuid);
307
+ return;
308
+ }
309
+ for (let i = lastIdx - 1; i >= 1; i--) {
310
+ childComponents[i] = this.#components.get(childUuids[i]).component;
311
+ if (component.order >= childComponents[i].order) {
312
+ childUuids.splice(i + 1, 0, component.uuid);
313
+ return;
314
+ }
315
+ }
316
+ }
317
+ #viewInstances;
318
+ #traverseLevelOrderBFS() {
319
+ if (this.#viewInstances)
320
+ return this.#viewInstances;
321
+ const lvl = new Map();
322
+ const traverse = (uuid, depth) => {
323
+ const viewInstance = this.#components.get(uuid);
324
+ if (viewInstance == null)
325
+ return;
326
+ if (lvl.has(depth)) {
327
+ lvl.get(depth).push(viewInstance);
328
+ }
329
+ else {
330
+ lvl.set(depth, [viewInstance]);
331
+ }
332
+ for (const childUuid of viewInstance.children) {
333
+ traverse(childUuid, depth + 1);
334
+ }
335
+ };
336
+ this.#rootComponents.forEach((uuid) => traverse(uuid, 0));
337
+ this.#viewInstances = Array.from(lvl.entries())
338
+ .sort((a, b) => a[0] - b[0])
339
+ .map(([, vi]) => vi)
340
+ .flat();
341
+ return this.#viewInstances;
342
+ }
343
+ }
344
+ //# sourceMappingURL=ComponentContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComponentContext.js","sourceRoot":"","sources":["../../../src/view/ComponentContext.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { ComponentPropertiesType } from '../types.js';
2
+ export interface ComponentState {
3
+ token: string;
4
+ parentUuid?: string;
5
+ order?: number;
6
+ properties?: ComponentPropertiesType;
7
+ }
8
+ //# sourceMappingURL=ComponentMemory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComponentMemory.d.ts","sourceRoot":"","sources":["../../../src/view/ComponentMemory.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,uBAAuB,EAQxB,MAAM,aAAa,CAAC;AAGrB,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,uBAAuB,CAAC;CACtC"}
@@ -0,0 +1,79 @@
1
+ import { ComponentChangeType, VoidToken } from '../constants.js';
2
+ import { applyPropsChanges } from '../utils/props-utils.js';
3
+ /**
4
+ * Stores the state of components and their hierarchy. The state is updated using a _change trail_.
5
+ *
6
+ * @internal
7
+ * @see ComponentContext.buildChangeTrails
8
+ */
9
+ export class ComponentMemory {
10
+ #components = new Map();
11
+ get [Symbol.iterator]() {
12
+ return this.#components.entries.bind(this.#components);
13
+ }
14
+ clear() {
15
+ this.#components.clear();
16
+ }
17
+ isEmpty() {
18
+ return this.#components.size === 0;
19
+ }
20
+ hasComponentState(uuid) {
21
+ return this.#components.has(uuid);
22
+ }
23
+ getComponentState(uuid) {
24
+ return this.#components.get(uuid);
25
+ }
26
+ write(changes) {
27
+ for (const change of changes) {
28
+ if (change.type === ComponentChangeType.CreateEntities) {
29
+ this.createEntity(change);
30
+ }
31
+ else if (this.#components.has(change.uuid)) {
32
+ switch (change.type) {
33
+ case ComponentChangeType.DestroyEntities:
34
+ this.destroyEntity(change);
35
+ break;
36
+ case ComponentChangeType.SetParent:
37
+ this.setParent(change);
38
+ break;
39
+ case ComponentChangeType.UpdateOrder:
40
+ this.updateOrder(change);
41
+ break;
42
+ case ComponentChangeType.ChangeToken:
43
+ this.changeToken(change);
44
+ break;
45
+ case ComponentChangeType.ChangeProperties:
46
+ this.changeProperties(change);
47
+ break;
48
+ }
49
+ }
50
+ }
51
+ }
52
+ changeProperties({ uuid, properties }) {
53
+ const c = this.getComponentState(uuid);
54
+ c.properties = applyPropsChanges(c.properties, properties);
55
+ }
56
+ changeToken({ uuid, token }) {
57
+ this.getComponentState(uuid).token = token || VoidToken;
58
+ }
59
+ updateOrder({ uuid, order }) {
60
+ this.getComponentState(uuid).order = order ?? 0;
61
+ }
62
+ setParent({ uuid, parentUuid, order }) {
63
+ const c = this.getComponentState(uuid);
64
+ c.parentUuid = parentUuid;
65
+ c.order = order ?? 0;
66
+ }
67
+ destroyEntity({ uuid }) {
68
+ this.#components.delete(uuid);
69
+ }
70
+ createEntity({ uuid, token, parentUuid, order, properties }) {
71
+ this.#components.set(uuid, {
72
+ token: token || VoidToken,
73
+ parentUuid,
74
+ order: order ?? 0,
75
+ properties: applyPropsChanges(undefined, properties),
76
+ });
77
+ }
78
+ }
79
+ //# sourceMappingURL=ComponentMemory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComponentMemory.js","sourceRoot":"","sources":["../../../src/view/ComponentMemory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { MessageToViewEvent } from '../shadow-objects.js';
2
+ import type { ChangeTrailType } from '../types.js';
3
+ export interface IShadowObjectEnvProxy {
4
+ start(): Promise<void>;
5
+ importScript(url: URL | string): Promise<void>;
6
+ applyChangeTrail(data: ChangeTrailType, waitForConfirmation: boolean): Promise<void>;
7
+ destroy(): void;
8
+ onMessageToView?: (event: Omit<MessageToViewEvent, 'transferables'>) => any;
9
+ }
10
+ //# sourceMappingURL=IShadowObjectEnvProxy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IShadowObjectEnvProxy.d.ts","sourceRoot":"","sources":["../../../src/view/IShadowObjectEnvProxy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,aAAa,CAAC;AAEjD,MAAM,WAAW,qBAAqB;IACpC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE/C,gBAAgB,CAAC,IAAI,EAAE,eAAe,EAAE,mBAAmB,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErF,OAAO,IAAI,IAAI,CAAC;IAEhB,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAAE,eAAe,CAAC,KAAK,GAAG,CAAC;CAC7E"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=IShadowObjectEnvProxy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IShadowObjectEnvProxy.js","sourceRoot":"","sources":["../../../src/view/IShadowObjectEnvProxy.ts"],"names":[],"mappings":""}
@@ -0,0 +1,18 @@
1
+ import { Kernel } from '../entities/Kernel.js';
2
+ import type { Registry } from '../entities/Registry.js';
3
+ import type { ChangeTrailType, ShadowObjectsModule } from '../types.js';
4
+ import type { IShadowObjectEnvProxy } from './IShadowObjectEnvProxy.js';
5
+ export declare class LocalShadowObjectEnv implements IShadowObjectEnvProxy {
6
+ #private;
7
+ readonly kernel: Kernel;
8
+ get registry(): Registry;
9
+ readonly isLocalEnv = true;
10
+ disableStructuredClone: boolean;
11
+ constructor(registry?: Registry);
12
+ start(): Promise<void>;
13
+ applyChangeTrail(data: ChangeTrailType, _waitForConfirmation: boolean): Promise<void>;
14
+ importScript(url: URL | string): Promise<void>;
15
+ importModule(module: ShadowObjectsModule): Promise<void>;
16
+ destroy(): void;
17
+ }
18
+ //# sourceMappingURL=LocalShadowObjectEnv.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LocalShadowObjectEnv.d.ts","sourceRoot":"","sources":["../../../src/view/LocalShadowObjectEnv.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,MAAM,EAA0B,MAAM,uBAAuB,CAAC;AACtE,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,yBAAyB,CAAC;AAEtD,OAAO,KAAK,EAAC,eAAe,EAAE,mBAAmB,EAAY,MAAM,aAAa,CAAC;AAEjF,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,4BAA4B,CAAC;AAGtE,qBAAa,oBAAqB,YAAW,qBAAqB;;IAGhE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,IAAI,QAAQ,IAAI,QAAQ,CAEvB;IAED,QAAQ,CAAC,UAAU,QAAQ;IAE3B,sBAAsB,UAAS;gBAEnB,QAAQ,CAAC,EAAE,QAAQ;IAY/B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,gBAAgB,CAAC,IAAI,EAAE,eAAe,EAAE,oBAAoB,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAY/E,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO9C,YAAY,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9D,OAAO,IAAI,IAAI;CAKhB"}
@@ -0,0 +1,55 @@
1
+ import { on } from '@spearwolf/eventize';
2
+ import { MessageToView, ShadowObjectsExport } from '../constants.js';
3
+ import { Kernel } from '../entities/Kernel.js';
4
+ import { importModule } from '../entities/importModule.js';
5
+ import { toUrlString } from '../utils/toUrlString.js';
6
+ import { cloneChangeTrail } from './cloneChangeTrail.js';
7
+ export class LocalShadowObjectEnv {
8
+ #importedModules;
9
+ get registry() {
10
+ return this.kernel.registry;
11
+ }
12
+ constructor(registry) {
13
+ this.#importedModules = new Set();
14
+ this.isLocalEnv = true;
15
+ this.disableStructuredClone = false;
16
+ this.kernel = new Kernel(registry);
17
+ on(this.kernel, MessageToView, (message) => {
18
+ if (this.onMessageToView != null) {
19
+ const { type, uuid, traverseChildren } = message;
20
+ const data = structuredClone(message.data, { transfer: message.transferables });
21
+ this.onMessageToView({ type, uuid, data, traverseChildren });
22
+ }
23
+ });
24
+ }
25
+ start() {
26
+ return Promise.resolve();
27
+ }
28
+ applyChangeTrail(data, _waitForConfirmation) {
29
+ const syncData = { changeTrail: this.disableStructuredClone ? data : cloneChangeTrail(data) };
30
+ let result;
31
+ try {
32
+ this.kernel.run(syncData);
33
+ result = Promise.resolve();
34
+ }
35
+ catch (error) {
36
+ result = Promise.reject(error);
37
+ }
38
+ return result;
39
+ }
40
+ async importScript(url) {
41
+ const module = await import(/* @vite-ignore */ toUrlString(url));
42
+ if (module[ShadowObjectsExport]) {
43
+ await this.importModule(module[ShadowObjectsExport]);
44
+ }
45
+ }
46
+ async importModule(module) {
47
+ return importModule(this.kernel, module, this.#importedModules);
48
+ }
49
+ destroy() {
50
+ this.kernel.destroy();
51
+ this.registry.clear();
52
+ this.#importedModules.clear();
53
+ }
54
+ }
55
+ //# sourceMappingURL=LocalShadowObjectEnv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LocalShadowObjectEnv.js","sourceRoot":"","sources":["../../../src/view/LocalShadowObjectEnv.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,EAAE,EAAC,MAAM,qBAAqB,CAAC;AACvC,OAAO,EAAC,aAAa,EAAE,mBAAmB,EAAC,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAC,MAAM,EAA0B,MAAM,uBAAuB,CAAC;AAEtE,OAAO,EAAC,YAAY,EAAC,MAAM,6BAA6B,CAAC;AAEzD,OAAO,EAAC,WAAW,EAAC,MAAM,yBAAyB,CAAC;AAEpD,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AAEvD,MAAM,OAAO,oBAAoB;IAC/B,gBAAgB,CAAuC;IAIvD,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;IAC9B,CAAC;IAMD,YAAY,QAAmB;QAZ/B,qBAAgB,GAA6B,IAAI,GAAG,EAAE,CAAC;QAQ9C,eAAU,GAAG,IAAI,CAAC;QAE3B,2BAAsB,GAAG,KAAK,CAAC;QAG7B,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC;QAEnC,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,OAA2B,EAAE,EAAE;YAC7D,IAAK,IAA8B,CAAC,eAAe,IAAI,IAAI,EAAE,CAAC;gBAC5D,MAAM,EAAC,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAC,GAAG,OAAO,CAAC;gBAC/C,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE,EAAC,QAAQ,EAAE,OAAO,CAAC,aAAa,EAAC,CAAC,CAAC;gBAC7E,IAA8B,CAAC,eAAe,CAAC,EAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAC,CAAC,CAAC;YACxF,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK;QACH,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,gBAAgB,CAAC,IAAqB,EAAE,oBAA6B;QACnE,MAAM,QAAQ,GAAc,EAAC,WAAW,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAC,CAAC;QACvG,IAAI,MAAqB,CAAC;QAC1B,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC1B,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QAC7B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,GAAiB;QAClC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QACjE,IAAI,MAAM,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAA2B;QAC5C,OAAO,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAClE,CAAC;IAED,OAAO;QACL,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACtB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;IAChC,CAAC;CACF"}
@@ -0,0 +1,15 @@
1
+ import type { ChangeTrailType } from '../types.js';
2
+ import type { IShadowObjectEnvProxy } from './IShadowObjectEnvProxy.js';
3
+ export declare class RemoteWorkerEnv implements IShadowObjectEnvProxy {
4
+ #private;
5
+ static WorkerLoaded: string;
6
+ get isDestroyed(): boolean;
7
+ get workerLoaded(): Promise<RemoteWorkerEnv>;
8
+ constructor();
9
+ start(): Promise<void>;
10
+ onMessageFromWorker(event: MessageEvent): void;
11
+ applyChangeTrail(changeTrail: ChangeTrailType, waitForConfirmation: boolean): Promise<void>;
12
+ importScript(url: URL | string): Promise<void>;
13
+ destroy(): void;
14
+ }
15
+ //# sourceMappingURL=RemoteWorkerEnv.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RemoteWorkerEnv.d.ts","sourceRoot":"","sources":["../../../src/view/RemoteWorkerEnv.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAA0B,eAAe,EAAyC,MAAM,aAAa,CAAC;AAGlH,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,4BAA4B,CAAC;AAqBtE,qBAAa,eAAgB,YAAW,qBAAqB;;IAC3D,MAAM,CAAC,YAAY,SAAkB;IAMrC,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,IAAI,YAAY,IAAI,OAAO,CAAC,eAAe,CAAC,CAE3C;;IAMK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAiC5B,mBAAmB,CAAC,KAAK,EAAE,YAAY;IAQvC,gBAAgB,CAAC,WAAW,EAAE,eAAe,EAAE,mBAAmB,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB3F,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS9C,OAAO,IAAI,IAAI;CAchB"}