@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,73 @@
1
+ import { __esDecorate, __runInitializers } from "tslib";
2
+ import { emit, off, retain, retainClear } from '@spearwolf/eventize';
3
+ import { createEffect, destroySignalsAndEffects, value } from '@spearwolf/signalize';
4
+ import { signal, signalReader } from '@spearwolf/signalize/decorators';
5
+ let SignalsPath = (() => {
6
+ let _value_decorators;
7
+ let _value_initializers = [];
8
+ let _value_extraInitializers = [];
9
+ let _value$_decorators;
10
+ let _value$_initializers = [];
11
+ let _value$_extraInitializers = [];
12
+ return class SignalsPath {
13
+ static {
14
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
15
+ _value_decorators = [signal()];
16
+ _value$_decorators = [signalReader()];
17
+ __esDecorate(this, null, _value_decorators, { kind: "accessor", name: "value", static: false, private: false, access: { has: obj => "value" in obj, get: obj => obj.value, set: (obj, value) => { obj.value = value; } }, metadata: _metadata }, _value_initializers, _value_extraInitializers);
18
+ __esDecorate(this, null, _value$_decorators, { kind: "accessor", name: "value$", static: false, private: false, access: { has: obj => "value$" in obj, get: obj => obj.value$, set: (obj, value) => { obj.value$ = value; } }, metadata: _metadata }, _value$_initializers, _value$_extraInitializers);
19
+ if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
20
+ }
21
+ static { this.Value = 'value'; }
22
+ #signals = [];
23
+ #unsubscribeEffect;
24
+ #value_accessor_storage = __runInitializers(this, _value_initializers, void 0);
25
+ get value() { return this.#value_accessor_storage; }
26
+ set value(value) { this.#value_accessor_storage = value; }
27
+ #value$_accessor_storage = (__runInitializers(this, _value_extraInitializers), __runInitializers(this, _value$_initializers, void 0));
28
+ get value$() { return this.#value$_accessor_storage; }
29
+ set value$(value) { this.#value$_accessor_storage = value; }
30
+ constructor() {
31
+ __runInitializers(this, _value$_extraInitializers);
32
+ retain(this, SignalsPath.Value);
33
+ this.value$((val) => emit(this, SignalsPath.Value, val));
34
+ }
35
+ add(...signals) {
36
+ for (const sig of signals) {
37
+ this.#signals.push(sig);
38
+ }
39
+ this.#updateEffect();
40
+ }
41
+ clear() {
42
+ this.#signals.length = 0;
43
+ this.#clearEffect();
44
+ }
45
+ dispose() {
46
+ this.clear();
47
+ off(this);
48
+ destroySignalsAndEffects(this);
49
+ retainClear(this, SignalsPath.Value);
50
+ }
51
+ #clearEffect() {
52
+ this.#unsubscribeEffect?.();
53
+ this.#unsubscribeEffect = undefined;
54
+ }
55
+ #updateEffect() {
56
+ this.#clearEffect();
57
+ const [run, unsubscribe] = createEffect(() => {
58
+ for (const sig of this.#signals) {
59
+ const val = value(sig);
60
+ if (val != null) {
61
+ this.value = val;
62
+ return;
63
+ }
64
+ }
65
+ this.value = undefined;
66
+ }, this.#signals);
67
+ this.#unsubscribeEffect = unsubscribe;
68
+ run();
69
+ }
70
+ };
71
+ })();
72
+ export { SignalsPath };
73
+ //# sourceMappingURL=SignalsPath.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SignalsPath.js","sourceRoot":"","sources":["../../../src/entities/SignalsPath.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAC,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAC,YAAY,EAAE,wBAAwB,EAAE,KAAK,EAAoB,MAAM,sBAAsB,CAAC;AACtG,OAAO,EAAC,MAAM,EAAE,YAAY,EAAC,MAAM,iCAAiC,CAAC;IAExD,WAAW;;;;;;;iBAAX,WAAW;;;iCAMrB,MAAM,EAAE;kCACR,YAAY,EAAE;YADL,oKAAS,KAAK,6BAAL,KAAK,qFAAU;YAClB,uKAAS,MAAM,6BAAN,MAAM,uFAAwB;;;iBANhD,UAAK,GAAG,OAAO,CAAC;QAEvB,QAAQ,GAA4B,EAAE,CAAC;QACvC,kBAAkB,CAAc;QAEtB,+EAAwB;QAAxB,IAAS,KAAK,2CAAU;QAAxB,IAAS,KAAK,iDAAU;QAClB,sIAAuC;QAAvC,IAAS,MAAM,4CAAwB;QAAvC,IAAS,MAAM,kDAAwB;QAEvD;;YACE,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;YAChC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;SAC1D;QAED,GAAG,CAAC,GAAG,OAAgC;YACrC,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;gBAC1B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1B,CAAC;YACD,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,CAAC;QAED,KAAK;YACH,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;YACzB,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC;QAED,OAAO;YACL,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,GAAG,CAAC,IAAI,CAAC,CAAC;YACV,wBAAwB,CAAC,IAAI,CAAC,CAAC;YAC/B,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC;QAED,YAAY;YACV,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;YAC5B,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;QACtC,CAAC;QAED,aAAa;YACX,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,GAAG,YAAY,CAAC,GAAG,EAAE;gBAC3C,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAChC,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;oBACvB,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;wBAChB,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;wBACjB,OAAO;oBACT,CAAC;gBACH,CAAC;gBACD,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;YACzB,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAClB,IAAI,CAAC,kBAAkB,GAAG,WAAW,CAAC;YACtC,GAAG,EAAE,CAAC;QACR,CAAC;;;SApDU,WAAW"}
@@ -0,0 +1,27 @@
1
+ import type { Entity } from './Entity.js';
2
+ export declare const onCreate = "onCreate";
3
+ export interface OnCreate {
4
+ /**
5
+ * Is called when the shadow-object instance has been created and attached to the entity.
6
+ *
7
+ * This can be the case when the entity is being initialized, or when the already initialized entity has received a token change.
8
+ *
9
+ * Only the shadow-object gets this event.
10
+ * The entity does not get this event.
11
+ */
12
+ [onCreate](entity: Entity): void;
13
+ }
14
+ export declare const onDestroy = "onDestroy";
15
+ export interface OnDestroy {
16
+ /**
17
+ * Is called when the shadow-object is about to be destroyed.
18
+ * Only the shadow-object gets this event.
19
+ * The entity does not get this event.
20
+ */
21
+ [onDestroy](entity: Entity): void;
22
+ }
23
+ export declare const onViewEvent = "onViewEvent";
24
+ export interface OnViewEvent {
25
+ [onViewEvent](type: string, data: unknown): void;
26
+ }
27
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/entities/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AAIxC,eAAO,MAAM,QAAQ,aAAa,CAAC;AAInC,MAAM,WAAW,QAAQ;IACvB;;;;;;;OAOG;IACH,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC;AAID,eAAO,MAAM,SAAS,cAAc,CAAC;AAKrC,MAAM,WAAW,SAAS;IACxB;;;;OAIG;IACH,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AAID,eAAO,MAAM,WAAW,gBAAgB,CAAC;AAEzC,MAAM,WAAW,WAAW;IAC1B,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;CAClD"}
@@ -0,0 +1,7 @@
1
+ // ----------------------------------------------------------------------------
2
+ export const onCreate = 'onCreate';
3
+ // ----------------------------------------------------------------------------
4
+ export const onDestroy = 'onDestroy';
5
+ // ----------------------------------------------------------------------------
6
+ export const onViewEvent = 'onViewEvent';
7
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/entities/events.ts"],"names":[],"mappings":"AAEA,+EAA+E;AAE/E,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAC;AAgBnC,+EAA+E;AAE/E,MAAM,CAAC,MAAM,SAAS,GAAG,WAAW,CAAC;AAcrC,+EAA+E;AAE/E,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { ShadowObjectsModule } from '../types.js';
2
+ import type { Kernel } from './Kernel.js';
3
+ export declare function importModule(kernel: Kernel, module: ShadowObjectsModule, importedModules: Set<ShadowObjectsModule>, upgradeEntities?: boolean): Promise<void>;
4
+ //# sourceMappingURL=importModule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"importModule.d.ts","sourceRoot":"","sources":["../../../src/entities/importModule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AAExC,wBAAsB,YAAY,CAChC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,mBAAmB,EAC3B,eAAe,EAAE,GAAG,CAAC,mBAAmB,CAAC,EACzC,eAAe,UAAO,GACrB,OAAO,CAAC,IAAI,CAAC,CAmCf"}
@@ -0,0 +1,32 @@
1
+ export async function importModule(kernel, module, importedModules, upgradeEntities = true) {
2
+ if (importedModules.has(module)) {
3
+ console.warn('importModule: skipping already imported module', module);
4
+ return;
5
+ }
6
+ else {
7
+ importedModules.add(module);
8
+ }
9
+ if (module.extends) {
10
+ await Promise.all(module.extends.map((subModule) => importModule(kernel, subModule, importedModules, false)));
11
+ }
12
+ const { registry } = kernel;
13
+ if (module.define) {
14
+ for (const [token, constructor] of Object.entries(module.define)) {
15
+ registry.define(token, constructor);
16
+ }
17
+ }
18
+ if (module.routes) {
19
+ for (const [token, routes] of Object.entries(module.routes)) {
20
+ registry.appendRoute(token, routes);
21
+ }
22
+ }
23
+ await (module.initialize?.({
24
+ define: (token, constructor) => registry.define(token, constructor),
25
+ kernel,
26
+ registry,
27
+ }) ?? Promise.resolve());
28
+ if (upgradeEntities) {
29
+ kernel.upgradeEntities();
30
+ }
31
+ }
32
+ //# sourceMappingURL=importModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"importModule.js","sourceRoot":"","sources":["../../../src/entities/importModule.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAc,EACd,MAA2B,EAC3B,eAAyC,EACzC,eAAe,GAAG,IAAI;IAEtB,IAAI,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,IAAI,CAAC,gDAAgD,EAAE,MAAM,CAAC,CAAC;QACvE,OAAO;IACT,CAAC;SAAM,CAAC;QACN,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAChH,CAAC;IAED,MAAM,EAAC,QAAQ,EAAC,GAAG,MAAM,CAAC;IAE1B,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,KAAK,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACjE,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5D,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QACzB,MAAM,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC;QACnE,MAAM;QACN,QAAQ;KACT,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAEzB,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,CAAC,eAAe,EAAE,CAAC;IAC3B,CAAC;AACH,CAAC"}
package/src/index.d.ts ADDED
@@ -0,0 +1,22 @@
1
+ export * from './constants.js';
2
+ export * from './elements/constants.js';
3
+ export * from './elements/ShaeElement.js';
4
+ export * from './elements/ShaeEntElement.js';
5
+ export * from './elements/ShaePropElement.js';
6
+ export * from './elements/ShaeWorkerElement.js';
7
+ export * from './entities/events.js';
8
+ export * from './entities/Kernel.js';
9
+ export * from './entities/Registry.js';
10
+ export * from './entities/ShadowObject.js';
11
+ export * from './utils/toNamespace.js';
12
+ export * from './view/ComponentContext.js';
13
+ export * from './view/ComponentMemory.js';
14
+ export * from './view/LocalShadowObjectEnv.js';
15
+ export * from './view/RemoteWorkerEnv.js';
16
+ export * from './view/ShadowEnv.js';
17
+ export * from './view/ViewComponent.js';
18
+ export * from './worker/MessageRouter.js';
19
+ export * from './worker/WorkerRuntime.js';
20
+ export type * from './types.js';
21
+ export type * from './view/IShadowObjectEnvProxy.js';
22
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAE1C,mBAAmB,YAAY,CAAC;AAChC,mBAAmB,iCAAiC,CAAC"}
package/src/index.js ADDED
@@ -0,0 +1,20 @@
1
+ export * from './constants.js';
2
+ export * from './elements/constants.js';
3
+ export * from './elements/ShaeElement.js';
4
+ export * from './elements/ShaeEntElement.js';
5
+ export * from './elements/ShaePropElement.js';
6
+ export * from './elements/ShaeWorkerElement.js';
7
+ export * from './entities/events.js';
8
+ export * from './entities/Kernel.js';
9
+ export * from './entities/Registry.js';
10
+ export * from './entities/ShadowObject.js';
11
+ export * from './utils/toNamespace.js';
12
+ export * from './view/ComponentContext.js';
13
+ export * from './view/ComponentMemory.js';
14
+ export * from './view/LocalShadowObjectEnv.js';
15
+ export * from './view/RemoteWorkerEnv.js';
16
+ export * from './view/ShadowEnv.js';
17
+ export * from './view/ViewComponent.js';
18
+ export * from './worker/MessageRouter.js';
19
+ export * from './worker/WorkerRuntime.js';
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iCAAiC,CAAC;AAChD,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC"}
@@ -0,0 +1,7 @@
1
+ export * from './constants.js';
2
+ export * from './entities/Kernel.js';
3
+ export * from './entities/Registry.js';
4
+ export * from './entities/ShadowObject.js';
5
+ export * from './entities/events.js';
6
+ export type * from './types.js';
7
+ //# sourceMappingURL=shadow-objects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shadow-objects.d.ts","sourceRoot":"","sources":["../../src/shadow-objects.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,mBAAmB,YAAY,CAAC"}
@@ -0,0 +1,6 @@
1
+ export * from './constants.js';
2
+ export * from './entities/Kernel.js';
3
+ export * from './entities/Registry.js';
4
+ export * from './entities/ShadowObject.js';
5
+ export * from './entities/events.js';
6
+ //# sourceMappingURL=shadow-objects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shadow-objects.js","sourceRoot":"","sources":["../../src/shadow-objects.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=shadow-objects.worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shadow-objects.worker.d.ts","sourceRoot":"","sources":["../../src/shadow-objects.worker.js"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import { WorkerRuntime } from './worker/WorkerRuntime.js';
2
+ console.debug('@spearwolf/shadow-objects/WorkerRuntime: hello!');
3
+ const shadowRuntime = new WorkerRuntime();
4
+ shadowRuntime.start();
5
+ //# sourceMappingURL=shadow-objects.worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shadow-objects.worker.js","sourceRoot":"","sources":["../../src/shadow-objects.worker.js"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,2BAA2B,CAAC;AAExD,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;AAEjE,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;AAC1C,aAAa,CAAC,KAAK,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=shae-ent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shae-ent.d.ts","sourceRoot":"","sources":["../../src/shae-ent.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import { ShaeEntElement } from './elements/ShaeEntElement.js';
2
+ import { SHAE_ENT } from './elements/constants.js';
3
+ customElements.define(SHAE_ENT, ShaeEntElement);
4
+ //# sourceMappingURL=shae-ent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shae-ent.js","sourceRoot":"","sources":["../../src/shae-ent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAC,QAAQ,EAAC,MAAM,yBAAyB,CAAC;AAEjD,cAAc,CAAC,MAAM,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=shae-prop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shae-prop.d.ts","sourceRoot":"","sources":["../../src/shae-prop.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import { ShaePropElement } from './elements/ShaePropElement.js';
2
+ import { SHAE_ENT, SHAE_PROP } from './elements/constants.js';
3
+ customElements.whenDefined(SHAE_ENT).then(() => customElements.define(SHAE_PROP, ShaePropElement));
4
+ //# sourceMappingURL=shae-prop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shae-prop.js","sourceRoot":"","sources":["../../src/shae-prop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAC,QAAQ,EAAE,SAAS,EAAC,MAAM,yBAAyB,CAAC;AAE5D,cAAc,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=shae-worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shae-worker.d.ts","sourceRoot":"","sources":["../../src/shae-worker.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import { ShaeWorkerElement } from './elements/ShaeWorkerElement.js';
2
+ import { SHAE_WORKER } from './elements/constants.js';
3
+ customElements.define(SHAE_WORKER, ShaeWorkerElement);
4
+ //# sourceMappingURL=shae-worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shae-worker.js","sourceRoot":"","sources":["../../src/shae-worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAC,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAC,WAAW,EAAC,MAAM,yBAAyB,CAAC;AAEpD,cAAc,CAAC,MAAM,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC"}
package/src/types.d.ts ADDED
@@ -0,0 +1,89 @@
1
+ import type { EventizedObject } from '@spearwolf/eventize';
2
+ import type { CompareFunc, SignalObject, SignalReader } from '@spearwolf/signalize';
3
+ import { AppliedChangeTrail, ImportedModule, type ComponentChangeType } from './constants.js';
4
+ import type { Entity } from './entities/Entity.js';
5
+ import type { Kernel } from './entities/Kernel.js';
6
+ import type { Registry } from './entities/Registry.js';
7
+ export type ChangeTrailType = IComponentChangeType[];
8
+ export type TransferablesType = Transferable[];
9
+ export interface IComponentChange {
10
+ type: ComponentChangeType;
11
+ uuid: string;
12
+ transferables?: TransferablesType;
13
+ }
14
+ export interface IComponentEvent {
15
+ type: string;
16
+ data: unknown;
17
+ }
18
+ export type ComponentPropertiesType = [string, unknown][];
19
+ export interface ICreateEntitiesChange extends IComponentChange {
20
+ type: ComponentChangeType.CreateEntities;
21
+ token: string;
22
+ parentUuid?: string;
23
+ order?: number;
24
+ properties?: ComponentPropertiesType;
25
+ }
26
+ export interface IChangeToken extends IComponentChange {
27
+ type: ComponentChangeType.ChangeToken;
28
+ token: string;
29
+ }
30
+ export interface IDestroyEntitiesChange extends IComponentChange {
31
+ type: ComponentChangeType.DestroyEntities;
32
+ }
33
+ export interface ISetParentChange extends IComponentChange {
34
+ type: ComponentChangeType.SetParent;
35
+ parentUuid: string | undefined;
36
+ order?: number;
37
+ }
38
+ export interface IUpdateOrderChange extends IComponentChange {
39
+ type: ComponentChangeType.UpdateOrder;
40
+ order: number;
41
+ }
42
+ export interface IPropertiesChange extends IComponentChange {
43
+ type: ComponentChangeType.ChangeProperties;
44
+ properties: ComponentPropertiesType;
45
+ }
46
+ export interface ISendEvents extends IComponentChange {
47
+ type: ComponentChangeType.SendEvents;
48
+ events: IComponentEvent[];
49
+ }
50
+ export type IComponentChangeType = ICreateEntitiesChange | IDestroyEntitiesChange | ISetParentChange | IUpdateOrderChange | IPropertiesChange | IChangeToken | ISendEvents;
51
+ export interface SyncEvent {
52
+ changeTrail: IComponentChangeType[];
53
+ serial?: number;
54
+ }
55
+ export interface ImportedModuleEvent {
56
+ type: typeof ImportedModule;
57
+ url?: string;
58
+ error?: string;
59
+ }
60
+ export interface AppliedChangeTrailEvent {
61
+ type: typeof AppliedChangeTrail;
62
+ serial?: number;
63
+ error?: string;
64
+ }
65
+ export interface ShadowObjectParams {
66
+ entity: Entity;
67
+ provideContext<T = unknown>(name: string | symbol, initialValue?: T, isEqual?: CompareFunc<T>): SignalObject<T>;
68
+ useContext<T = any>(name: string | symbol, isEqual?: CompareFunc<T>): SignalReader<T>;
69
+ useProperty<T = any>(name: string, isEqual?: CompareFunc<T>): SignalReader<T>;
70
+ onDestroy(callback: () => any): void;
71
+ }
72
+ export interface ShadowObjectConstructor {
73
+ new (...args: any[]): {};
74
+ displayName?: string;
75
+ }
76
+ export type ShadowObjectType = EventizedObject;
77
+ export type NamespaceType = string | symbol;
78
+ export type ShadowObjectsModuleInitializer = (shadowObjects: {
79
+ define: (token: string, constructor: ShadowObjectConstructor) => void;
80
+ kernel: Kernel;
81
+ registry: Registry;
82
+ }) => Promise<void>;
83
+ export interface ShadowObjectsModule {
84
+ extends?: ShadowObjectsModule[];
85
+ define?: Record<string, ShadowObjectConstructor>;
86
+ routes?: Record<string, string[]>;
87
+ initialize?: ShadowObjectsModuleInitializer;
88
+ }
89
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
package/src/types.js ADDED
@@ -0,0 +1,2 @@
1
+ import { AppliedChangeTrail, ImportedModule } from './constants.js';
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,kBAAkB,EAAE,cAAc,EAA2B,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,8 @@
1
+ export declare class FrameLoop {
2
+ #private;
3
+ static OnFrame: symbol;
4
+ constructor();
5
+ start(target: object | Function): () => void;
6
+ stop(target: object | Function): void;
7
+ }
8
+ //# sourceMappingURL=FrameLoop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FrameLoop.d.ts","sourceRoot":"","sources":["../../../src/utils/FrameLoop.ts"],"names":[],"mappings":"AAIA,qBAAa,SAAS;;IACpB,MAAM,CAAC,OAAO,SAAqB;;IAWnC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ;IAgB/B,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ;CAqB/B"}
@@ -0,0 +1,45 @@
1
+ var _a;
2
+ import { emit, eventize, getSubscriptionCount, off, on } from '@spearwolf/eventize';
3
+ let gUniqInstance = null;
4
+ export class FrameLoop {
5
+ static { this.OnFrame = Symbol('onFrame'); }
6
+ #rafID = 0;
7
+ #subscriptionCount = 0;
8
+ constructor() {
9
+ if (gUniqInstance)
10
+ return gUniqInstance;
11
+ eventize(this);
12
+ gUniqInstance = this;
13
+ }
14
+ start(target) {
15
+ if (target == null)
16
+ return;
17
+ if (getSubscriptionCount(this) === 0) {
18
+ this.#requestAnimationFrame();
19
+ }
20
+ on(this, _a.OnFrame, target);
21
+ this.#subscriptionCount++;
22
+ return () => {
23
+ this.stop(target);
24
+ };
25
+ }
26
+ stop(target) {
27
+ off(this, _a.OnFrame, target);
28
+ if (getSubscriptionCount(this) === 0) {
29
+ this.#cancelAnimationFrame();
30
+ }
31
+ }
32
+ #onFrame = (now) => {
33
+ emit(this, _a.OnFrame, now);
34
+ this.#requestAnimationFrame();
35
+ };
36
+ #requestAnimationFrame() {
37
+ this.#rafID = requestAnimationFrame(this.#onFrame);
38
+ }
39
+ #cancelAnimationFrame() {
40
+ cancelAnimationFrame(this.#rafID);
41
+ this.#rafID = 0;
42
+ }
43
+ }
44
+ _a = FrameLoop;
45
+ //# sourceMappingURL=FrameLoop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FrameLoop.js","sourceRoot":"","sources":["../../../src/utils/FrameLoop.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAE,GAAG,EAAE,EAAE,EAAC,MAAM,qBAAqB,CAAC;AAElF,IAAI,aAAa,GAAc,IAAI,CAAC;AAEpC,MAAM,OAAO,SAAS;aACb,YAAO,GAAG,MAAM,CAAC,SAAS,CAAC,AAApB,CAAqB;IAEnC,MAAM,GAAG,CAAC,CAAC;IACX,kBAAkB,GAAG,CAAC,CAAC;IAEvB;QACE,IAAI,aAAa;YAAE,OAAO,aAAa,CAAC;QACxC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,aAAa,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,MAAyB;QAC7B,IAAI,MAAM,IAAI,IAAI;YAAE,OAAO;QAE3B,IAAI,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAChC,CAAC;QAED,EAAE,CAAC,IAAI,EAAE,EAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAEpC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE1B,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpB,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,MAAyB;QAC5B,GAAG,CAAC,IAAI,EAAE,EAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAErC,IAAI,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,QAAQ,GAAG,CAAC,GAAW,EAAE,EAAE;QACzB,IAAI,CAAC,IAAI,EAAE,EAAS,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,sBAAsB,EAAE,CAAC;IAChC,CAAC,CAAC;IAEF,sBAAsB;QACpB,IAAI,CAAC,MAAM,GAAG,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrD,CAAC;IAED,qBAAqB;QACnB,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAClB,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Add a new item to the array, but only if it does not already exist
3
+ */
4
+ export declare function appendTo<T = unknown>(array: T[], item: T): void;
5
+ /**
6
+ * Append a new item to the end of the array.
7
+ * If the item exists, remove the previous item first.
8
+ */
9
+ export declare function appendToEnd<T = unknown>(array: T[], item: T): void;
10
+ export declare function removeFrom<T = unknown>(array: T[], item: T): void;
11
+ //# sourceMappingURL=array-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array-utils.d.ts","sourceRoot":"","sources":["../../../src/utils/array-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,QAKxD;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,QAM3D;AAED,wBAAgB,UAAU,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,QAK1D"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Add a new item to the array, but only if it does not already exist
3
+ */
4
+ export function appendTo(array, item) {
5
+ const index = array.indexOf(item);
6
+ if (index === -1) {
7
+ array.push(item);
8
+ }
9
+ }
10
+ /**
11
+ * Append a new item to the end of the array.
12
+ * If the item exists, remove the previous item first.
13
+ */
14
+ export function appendToEnd(array, item) {
15
+ const index = array.indexOf(item);
16
+ if (index !== -1) {
17
+ array.splice(index, 1);
18
+ }
19
+ array.push(item);
20
+ }
21
+ export function removeFrom(array, item) {
22
+ const index = array.indexOf(item);
23
+ if (index !== -1) {
24
+ array.splice(index, 1);
25
+ }
26
+ }
27
+ //# sourceMappingURL=array-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array-utils.js","sourceRoot":"","sources":["../../../src/utils/array-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAc,KAAU,EAAE,IAAO;IACvD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;QACjB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAc,KAAU,EAAE,IAAO;IAC1D,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;QACjB,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACzB,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,UAAU,CAAc,KAAU,EAAE,IAAO;IACzD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;QACjB,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACzB,CAAC;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare const readNamespaceAttribute: (el: HTMLElement) => import("../types.js").NamespaceType;
2
+ export declare const readBooleanAttribute: (el: HTMLElement, name: string) => boolean;
3
+ //# sourceMappingURL=attr-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attr-utils.d.ts","sourceRoot":"","sources":["../../../src/utils/attr-utils.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,sBAAsB,OAAQ,WAAW,wCAA0C,CAAC;AAEjG,eAAO,MAAM,oBAAoB,OAAQ,WAAW,QAAQ,MAAM,YAMjE,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { ATTR_NS } from '../elements/constants.js';
2
+ import { TRUTHY_VALUES } from './constants.js';
3
+ import { toNamespace } from './toNamespace.js';
4
+ export const readNamespaceAttribute = (el) => toNamespace(el.getAttribute(ATTR_NS));
5
+ export const readBooleanAttribute = (el, name) => {
6
+ if (el.hasAttribute(name)) {
7
+ const val = el.getAttribute(name)?.trim()?.toLowerCase() || '1';
8
+ return TRUTHY_VALUES.has(val);
9
+ }
10
+ return false;
11
+ };
12
+ //# sourceMappingURL=attr-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attr-utils.js","sourceRoot":"","sources":["../../../src/utils/attr-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAAC,aAAa,EAAC,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAC,WAAW,EAAC,MAAM,kBAAkB,CAAC;AAE7C,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,EAAe,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;AAEjG,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,EAAe,EAAE,IAAY,EAAE,EAAE;IACpE,IAAI,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,GAAG,CAAC;QAChE,OAAO,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const TRUTHY_VALUES: Set<string>;
2
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,aAA+C,CAAC"}
@@ -0,0 +1,2 @@
1
+ export const TRUTHY_VALUES = new Set(['on', 'true', 'yes', 'local', '1']);
2
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const generateUUID: () => string;
2
+ //# sourceMappingURL=generateUUID.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateUUID.d.ts","sourceRoot":"","sources":["../../../src/utils/generateUUID.ts"],"names":[],"mappings":"AAqCA,eAAO,MAAM,YAAY,cAA8D,CAAC"}