@spearwolf/shadow-objects 0.30.1 → 0.31.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 (124) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/README.md +34 -10
  3. package/bundle.js +13 -13
  4. package/package.json +3 -3
  5. package/src/bundle.js +4 -4
  6. package/src/bundle.js.map +7 -1
  7. package/src/constants.js +53 -40
  8. package/src/constants.js.map +7 -1
  9. package/src/create-worker.bundle.js +6 -8
  10. package/src/create-worker.bundle.js.map +7 -1
  11. package/src/create-worker.js +5 -2
  12. package/src/create-worker.js.map +7 -1
  13. package/src/elements/ShaeElement.js +57 -54
  14. package/src/elements/ShaeElement.js.map +7 -1
  15. package/src/elements/ShaeEntElement.d.ts.map +1 -1
  16. package/src/elements/ShaeEntElement.js +320 -341
  17. package/src/elements/ShaeEntElement.js.map +7 -1
  18. package/src/elements/ShaePropElement.js +312 -320
  19. package/src/elements/ShaePropElement.js.map +7 -1
  20. package/src/elements/ShaeWorkerElement.js +234 -229
  21. package/src/elements/ShaeWorkerElement.js.map +7 -1
  22. package/src/elements/constants.js +37 -22
  23. package/src/elements/constants.js.map +7 -1
  24. package/src/elements/events.d.ts +1 -1
  25. package/src/elements/events.d.ts.map +1 -1
  26. package/src/elements/events.js +1 -2
  27. package/src/elements/events.js.map +7 -1
  28. package/src/elements.js +4 -4
  29. package/src/elements.js.map +7 -1
  30. package/src/in-the-dark/Entity.d.ts +3 -1
  31. package/src/in-the-dark/Entity.d.ts.map +1 -1
  32. package/src/in-the-dark/Entity.js +299 -275
  33. package/src/in-the-dark/Entity.js.map +7 -1
  34. package/src/in-the-dark/Kernel.d.ts +1 -1
  35. package/src/in-the-dark/Kernel.d.ts.map +1 -1
  36. package/src/in-the-dark/Kernel.js +556 -532
  37. package/src/in-the-dark/Kernel.js.map +7 -1
  38. package/src/in-the-dark/Registry.d.ts.map +1 -1
  39. package/src/in-the-dark/Registry.js +101 -104
  40. package/src/in-the-dark/Registry.js.map +7 -1
  41. package/src/in-the-dark/ShadowObject.d.ts.map +1 -1
  42. package/src/in-the-dark/ShadowObject.js +21 -23
  43. package/src/in-the-dark/ShadowObject.js.map +7 -1
  44. package/src/in-the-dark/SignalsPath.d.ts.map +1 -1
  45. package/src/in-the-dark/SignalsPath.js +139 -123
  46. package/src/in-the-dark/SignalsPath.js.map +7 -1
  47. package/src/in-the-dark/events.js +11 -9
  48. package/src/in-the-dark/events.js.map +7 -1
  49. package/src/in-the-dark/importModule.js +31 -29
  50. package/src/in-the-dark/importModule.js.map +7 -1
  51. package/src/index.d.ts +2 -2
  52. package/src/index.d.ts.map +1 -1
  53. package/src/index.js +14 -14
  54. package/src/index.js.map +7 -1
  55. package/src/shadow-objects.js +6 -6
  56. package/src/shadow-objects.js.map +7 -1
  57. package/src/shadow-objects.worker.js +3 -3
  58. package/src/shadow-objects.worker.js.map +7 -1
  59. package/src/shae-ent.js +3 -3
  60. package/src/shae-ent.js.map +7 -1
  61. package/src/shae-prop.js +3 -3
  62. package/src/shae-prop.js.map +7 -1
  63. package/src/shae-worker.js +3 -3
  64. package/src/shae-worker.js.map +7 -1
  65. package/src/types.d.ts +5 -4
  66. package/src/types.d.ts.map +1 -1
  67. package/src/types.js +1 -2
  68. package/src/types.js.map +7 -1
  69. package/src/utils/ConsoleLogger.js +179 -185
  70. package/src/utils/ConsoleLogger.js.map +7 -1
  71. package/src/utils/FrameLoop.js +41 -40
  72. package/src/utils/FrameLoop.js.map +7 -1
  73. package/src/utils/array-utils.js +22 -24
  74. package/src/utils/array-utils.js.map +7 -1
  75. package/src/utils/attr-utils.js +15 -11
  76. package/src/utils/attr-utils.js.map +7 -1
  77. package/src/utils/constants.js +5 -2
  78. package/src/utils/constants.js.map +7 -1
  79. package/src/utils/generateUUID.d.ts.map +1 -1
  80. package/src/utils/generateUUID.js +269 -32
  81. package/src/utils/generateUUID.js.map +7 -1
  82. package/src/utils/props-utils.js +34 -43
  83. package/src/utils/props-utils.js.map +7 -1
  84. package/src/utils/toMaybe.js +5 -2
  85. package/src/utils/toMaybe.js.map +7 -1
  86. package/src/utils/toNamespace.js +6 -3
  87. package/src/utils/toNamespace.js.map +7 -1
  88. package/src/utils/toUrlString.js +9 -6
  89. package/src/utils/toUrlString.js.map +7 -1
  90. package/src/utils/waitForMessageOfType.js +30 -32
  91. package/src/utils/waitForMessageOfType.js.map +7 -1
  92. package/src/view/ComponentChanges.d.ts +1 -1
  93. package/src/view/ComponentChanges.d.ts.map +1 -1
  94. package/src/view/ComponentChanges.js +249 -251
  95. package/src/view/ComponentChanges.js.map +7 -1
  96. package/src/view/ComponentContext.d.ts.map +1 -1
  97. package/src/view/ComponentContext.js +303 -331
  98. package/src/view/ComponentContext.js.map +7 -1
  99. package/src/view/ComponentMemory.d.ts +1 -0
  100. package/src/view/ComponentMemory.d.ts.map +1 -1
  101. package/src/view/ComponentMemory.js +73 -76
  102. package/src/view/ComponentMemory.js.map +7 -1
  103. package/src/view/IShadowObjectEnvProxy.js +1 -2
  104. package/src/view/IShadowObjectEnvProxy.js.map +7 -1
  105. package/src/view/LocalShadowObjectEnv.d.ts.map +1 -1
  106. package/src/view/LocalShadowObjectEnv.js +57 -52
  107. package/src/view/LocalShadowObjectEnv.js.map +7 -1
  108. package/src/view/RemoteWorkerEnv.js +134 -123
  109. package/src/view/RemoteWorkerEnv.js.map +7 -1
  110. package/src/view/ShadowEnv.d.ts.map +1 -1
  111. package/src/view/ShadowEnv.js +232 -228
  112. package/src/view/ShadowEnv.js.map +7 -1
  113. package/src/view/ViewComponent.d.ts +9 -0
  114. package/src/view/ViewComponent.d.ts.map +1 -1
  115. package/src/view/ViewComponent.js +142 -130
  116. package/src/view/ViewComponent.js.map +7 -1
  117. package/src/view/cloneChangeTrail.js +13 -11
  118. package/src/view/cloneChangeTrail.js.map +7 -1
  119. package/src/worker/MessageRouter.d.ts.map +1 -1
  120. package/src/worker/MessageRouter.js +78 -67
  121. package/src/worker/MessageRouter.js.map +7 -1
  122. package/src/worker/WorkerRuntime.js +22 -21
  123. package/src/worker/WorkerRuntime.js.map +7 -1
  124. package/tsconfig.lib.tsbuildinfo +0 -1
@@ -1,128 +1,144 @@
1
- var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
2
- function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
3
- var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
4
- var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
5
- var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
6
- var _, done = false;
7
- for (var i = decorators.length - 1; i >= 0; i--) {
8
- var context = {};
9
- for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
10
- for (var p in contextIn.access) context.access[p] = contextIn.access[p];
11
- context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
12
- var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
13
- if (kind === "accessor") {
14
- if (result === void 0) continue;
15
- if (result === null || typeof result !== "object") throw new TypeError("Object expected");
16
- if (_ = accept(result.get)) descriptor.get = _;
17
- if (_ = accept(result.set)) descriptor.set = _;
18
- if (_ = accept(result.init)) initializers.unshift(_);
19
- }
20
- else if (_ = accept(result)) {
21
- if (kind === "field") initializers.unshift(_);
22
- else descriptor[key] = _;
23
- }
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : /* @__PURE__ */ Symbol.for("Symbol." + name);
5
+ var __typeError = (msg) => {
6
+ throw TypeError(msg);
7
+ };
8
+ var __defNormalProp = (obj, key, value2) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value: value2 }) : obj[key] = value2;
9
+ var __name = (target, value2) => __defProp(target, "name", { value: value2, configurable: true });
10
+ var __decoratorStart = (base) => [, , , __create(base?.[__knownSymbol("metadata")] ?? null)];
11
+ var __decoratorStrings = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"];
12
+ var __expectFn = (fn) => fn !== void 0 && typeof fn !== "function" ? __typeError("Function expected") : fn;
13
+ var __decoratorContext = (kind, name, done, metadata, fns) => ({ kind: __decoratorStrings[kind], name, metadata, addInitializer: (fn) => done._ ? __typeError("Already initialized") : fns.push(__expectFn(fn || null)) });
14
+ var __decoratorMetadata = (array, target) => __defNormalProp(target, __knownSymbol("metadata"), array[3]);
15
+ var __runInitializers = (array, flags, self, value2) => {
16
+ for (var i = 0, fns = array[flags >> 1], n = fns && fns.length; i < n; i++) flags & 1 ? fns[i].call(self) : value2 = fns[i].call(self, value2);
17
+ return value2;
18
+ };
19
+ var __decorateElement = (array, flags, name, decorators, target, extra) => {
20
+ var fn, it, done, ctx, access, k = flags & 7, s = !!(flags & 8), p = !!(flags & 16);
21
+ var j = k > 3 ? array.length + 1 : k ? s ? 1 : 2 : 0, key = __decoratorStrings[k + 5];
22
+ var initializers = k > 3 && (array[j - 1] = []), extraInitializers = array[j] || (array[j] = []);
23
+ var desc = k && (!p && !s && (target = target.prototype), k < 5 && (k > 3 || !p) && __getOwnPropDesc(k < 4 ? target : { get [name]() {
24
+ return __privateGet(this, extra);
25
+ }, set [name](x) {
26
+ return __privateSet(this, extra, x);
27
+ } }, name));
28
+ k ? p && k < 4 && __name(extra, (k > 2 ? "set " : k > 1 ? "get " : "") + name) : __name(target, name);
29
+ for (var i = decorators.length - 1; i >= 0; i--) {
30
+ ctx = __decoratorContext(k, name, done = {}, array[3], extraInitializers);
31
+ if (k) {
32
+ ctx.static = s, ctx.private = p, access = ctx.access = { has: p ? (x) => __privateIn(target, x) : (x) => name in x };
33
+ if (k ^ 3) access.get = p ? (x) => (k ^ 1 ? __privateGet : __privateMethod)(x, target, k ^ 4 ? extra : desc.get) : (x) => x[name];
34
+ if (k > 2) access.set = p ? (x, y) => __privateSet(x, target, y, k ^ 4 ? extra : desc.set) : (x, y) => x[name] = y;
24
35
  }
25
- if (target) Object.defineProperty(target, contextIn.name, descriptor);
26
- done = true;
36
+ it = (0, decorators[i])(k ? k < 4 ? p ? extra : desc[key] : k > 4 ? void 0 : { get: desc.get, set: desc.set } : target, ctx), done._ = 1;
37
+ if (k ^ 4 || it === void 0) __expectFn(it) && (k > 4 ? initializers.unshift(it) : k ? p ? extra = it : desc[key] = it : target = it);
38
+ else if (typeof it !== "object" || it === null) __typeError("Object expected");
39
+ else __expectFn(fn = it.get) && (desc.get = fn), __expectFn(fn = it.set) && (desc.set = fn), __expectFn(fn = it.init) && initializers.unshift(fn);
40
+ }
41
+ return k || __decoratorMetadata(array, target), desc && __defProp(target, name, desc), p ? k ^ 4 ? extra : desc : target;
27
42
  };
28
- var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
29
- var useValue = arguments.length > 2;
30
- for (var i = 0; i < initializers.length; i++) {
31
- value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
43
+ var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
44
+ var __privateIn = (member, obj) => Object(obj) !== obj ? __typeError('Cannot use the "in" operator on this value') : member.has(obj);
45
+ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
46
+ var __privateAdd = (obj, member, value2) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value2);
47
+ var __privateSet = (obj, member, value2, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value2) : member.set(obj, value2), value2);
48
+ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
49
+ var _value_dec, _signals, _effect, _init, _value, _SignalsPath_instances, makeRemoveFunc_fn, updateGetValueFromSignalsEffect_fn;
50
+ import { emit, off, retain, retainClear } from "@spearwolf/eventize";
51
+ import {
52
+ createEffect,
53
+ destroyObjectSignals,
54
+ Effect,
55
+ findObjectSignalByName,
56
+ value
57
+ } from "@spearwolf/signalize";
58
+ import { signal } from "@spearwolf/signalize/decorators";
59
+ const VALUE = "value";
60
+ _value_dec = [signal({ name: VALUE })];
61
+ class SignalsPath {
62
+ constructor(signals) {
63
+ __privateAdd(this, _SignalsPath_instances);
64
+ __privateAdd(this, _signals, []);
65
+ __privateAdd(this, _effect);
66
+ __privateAdd(this, _value, __runInitializers(_init, 8, this)), __runInitializers(_init, 11, this);
67
+ this.value$ = void 0;
68
+ retain(this, VALUE);
69
+ this.value$ = findObjectSignalByName(this, VALUE);
70
+ this.value$.onChange((val) => emit(this, VALUE, val));
71
+ if (signals) {
72
+ this.add(...signals);
32
73
  }
33
- return useValue ? value : void 0;
74
+ }
75
+ add(...signals) {
76
+ __privateGet(this, _signals).push(...signals);
77
+ __privateMethod(this, _SignalsPath_instances, updateGetValueFromSignalsEffect_fn).call(this);
78
+ return __privateMethod(this, _SignalsPath_instances, makeRemoveFunc_fn).call(this, signals);
79
+ }
80
+ unshift(...signals) {
81
+ __privateGet(this, _signals).unshift(...signals);
82
+ __privateMethod(this, _SignalsPath_instances, updateGetValueFromSignalsEffect_fn).call(this);
83
+ return __privateMethod(this, _SignalsPath_instances, makeRemoveFunc_fn).call(this, signals);
84
+ }
85
+ remove(...signals) {
86
+ __privateMethod(this, _SignalsPath_instances, makeRemoveFunc_fn).call(this, signals)();
87
+ }
88
+ clear() {
89
+ __privateGet(this, _signals).length = 0;
90
+ __privateMethod(this, _SignalsPath_instances, updateGetValueFromSignalsEffect_fn).call(this);
91
+ }
92
+ dispose() {
93
+ this.clear();
94
+ __privateGet(this, _effect)?.destroy();
95
+ __privateSet(this, _effect, void 0);
96
+ retainClear(this, VALUE);
97
+ off(this);
98
+ this.value$.destroy();
99
+ destroyObjectSignals(this);
100
+ }
101
+ }
102
+ _init = __decoratorStart(null);
103
+ _signals = new WeakMap();
104
+ _effect = new WeakMap();
105
+ _value = new WeakMap();
106
+ _SignalsPath_instances = new WeakSet();
107
+ makeRemoveFunc_fn = function(signals) {
108
+ return () => {
109
+ for (const sig of signals) {
110
+ const idx = __privateGet(this, _signals).indexOf(sig);
111
+ if (idx !== -1) {
112
+ __privateGet(this, _signals).splice(idx, 1);
113
+ }
114
+ }
115
+ __privateMethod(this, _SignalsPath_instances, updateGetValueFromSignalsEffect_fn).call(this);
116
+ };
34
117
  };
35
- import { emit, off, retain, retainClear } from '@spearwolf/eventize';
36
- import { createEffect, destroyObjectSignals, Effect, findObjectSignalByName, value, } from '@spearwolf/signalize';
37
- import { signal } from '@spearwolf/signalize/decorators';
38
- const VALUE = 'value';
39
- let SignalsPath = (() => {
40
- let _value_decorators;
41
- let _value_initializers = [];
42
- let _value_extraInitializers = [];
43
- return class SignalsPath {
44
- static {
45
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
46
- _value_decorators = [signal({ name: VALUE })];
47
- __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);
48
- if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
49
- }
50
- static { this.Value = VALUE; }
51
- #signals;
52
- #effect;
53
- #value_accessor_storage;
54
- get value() { return this.#value_accessor_storage; }
55
- set value(value) { this.#value_accessor_storage = value; }
56
- constructor(signals) {
57
- this.#signals = [];
58
- this.#value_accessor_storage = __runInitializers(this, _value_initializers, undefined);
59
- this.value$ = __runInitializers(this, _value_extraInitializers);
60
- retain(this, VALUE);
61
- this.value$ = findObjectSignalByName(this, VALUE);
62
- this.value$.onChange((val) => emit(this, VALUE, val));
63
- if (signals) {
64
- this.add(...signals);
65
- }
66
- }
67
- add(...signals) {
68
- this.#signals.push(...signals);
69
- this.#updateGetValueFromSignalsEffect();
70
- return this.#makeRemoveFunc(signals);
71
- }
72
- unshift(...signals) {
73
- this.#signals.unshift(...signals);
74
- this.#updateGetValueFromSignalsEffect();
75
- return this.#makeRemoveFunc(signals);
118
+ updateGetValueFromSignalsEffect_fn = function() {
119
+ __privateGet(this, _effect)?.destroy();
120
+ if (__privateGet(this, _signals).length === 0) {
121
+ __privateSet(this, _effect, void 0);
122
+ this.value = void 0;
123
+ } else {
124
+ __privateSet(this, _effect, createEffect(() => {
125
+ let valueFromSignals;
126
+ for (const sig of __privateGet(this, _signals)) {
127
+ const val = value(sig);
128
+ if (val != null) {
129
+ valueFromSignals = val;
130
+ break;
76
131
  }
77
- remove(...signals) {
78
- this.#makeRemoveFunc(signals)();
79
- }
80
- clear() {
81
- this.#signals.length = 0;
82
- this.#updateGetValueFromSignalsEffect();
83
- }
84
- dispose() {
85
- this.clear();
86
- this.#effect?.destroy();
87
- this.#effect = undefined;
88
- retainClear(this, VALUE);
89
- off(this);
90
- this.value$.destroy();
91
- destroyObjectSignals(this);
92
- }
93
- #makeRemoveFunc(signals) {
94
- return () => {
95
- for (const sig of signals) {
96
- const idx = this.#signals.indexOf(sig);
97
- if (idx !== -1) {
98
- this.#signals.splice(idx, 1);
99
- }
100
- }
101
- this.#updateGetValueFromSignalsEffect();
102
- };
103
- }
104
- #updateGetValueFromSignalsEffect() {
105
- this.#effect?.destroy();
106
- if (this.#signals.length === 0) {
107
- this.#effect = undefined;
108
- this.value = undefined;
109
- }
110
- else {
111
- this.#effect = createEffect(() => {
112
- let valueFromSignals = undefined;
113
- for (const sig of this.#signals) {
114
- const val = value(sig);
115
- if (val != null) {
116
- valueFromSignals = val;
117
- break;
118
- }
119
- }
120
- this.value = valueFromSignals;
121
- }, this.#signals);
122
- this.#effect.run();
123
- }
124
- }
125
- };
126
- })();
127
- export { SignalsPath };
128
- //# sourceMappingURL=SignalsPath.js.map
132
+ }
133
+ this.value = valueFromSignals;
134
+ }, __privateGet(this, _signals)));
135
+ __privateGet(this, _effect).run();
136
+ }
137
+ };
138
+ __decorateElement(_init, 4, "value", _value_dec, SignalsPath, _value);
139
+ __decoratorMetadata(_init, SignalsPath);
140
+ SignalsPath.Value = VALUE;
141
+ export {
142
+ SignalsPath
143
+ };
144
+ //# sourceMappingURL=SignalsPath.js.map
@@ -1 +1,7 @@
1
- {"version":3,"file":"SignalsPath.js","sourceRoot":"","sources":["../../../src/in-the-dark/SignalsPath.ts"],"names":[],"mappings":"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"}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/in-the-dark/SignalsPath.ts"],
4
+ "sourcesContent": ["import {emit, off, retain, retainClear} from '@spearwolf/eventize';\nimport {\n createEffect,\n destroyObjectSignals,\n Effect,\n findObjectSignalByName,\n type Signal,\n type SignalLike,\n value,\n} from '@spearwolf/signalize';\nimport {signal} from '@spearwolf/signalize/decorators';\n\nconst VALUE = 'value';\n\nexport class SignalsPath {\n static readonly Value = VALUE;\n\n #signals: SignalLike<any>[] = [];\n #effect?: Effect;\n\n @signal({name: VALUE}) accessor value: any = undefined;\n\n readonly value$: Signal<any>;\n\n constructor(signals?: SignalLike<any>[]) {\n retain(this as SignalsPath, VALUE);\n\n this.value$ = findObjectSignalByName(this, VALUE);\n this.value$.onChange((val) => emit(this as SignalsPath, VALUE, val));\n\n if (signals) {\n this.add(...signals);\n }\n }\n\n add(...signals: (Signal<any> | SignalLike<any>)[]) {\n this.#signals.push(...signals);\n this.#updateGetValueFromSignalsEffect();\n return this.#makeRemoveFunc(signals);\n }\n\n unshift(...signals: SignalLike<any>[]) {\n this.#signals.unshift(...signals);\n this.#updateGetValueFromSignalsEffect();\n return this.#makeRemoveFunc(signals);\n }\n\n remove(...signals: SignalLike<any>[]) {\n this.#makeRemoveFunc(signals)();\n }\n\n clear() {\n this.#signals.length = 0;\n this.#updateGetValueFromSignalsEffect();\n }\n\n dispose() {\n this.clear();\n\n this.#effect?.destroy();\n this.#effect = undefined;\n\n retainClear(this as SignalsPath, VALUE);\n off(this);\n\n this.value$.destroy();\n destroyObjectSignals(this);\n }\n\n #makeRemoveFunc(signals: SignalLike<any>[]) {\n return () => {\n for (const sig of signals) {\n const idx = this.#signals.indexOf(sig);\n if (idx !== -1) {\n this.#signals.splice(idx, 1);\n }\n }\n this.#updateGetValueFromSignalsEffect();\n };\n }\n\n #updateGetValueFromSignalsEffect() {\n this.#effect?.destroy();\n if (this.#signals.length === 0) {\n this.#effect = undefined;\n this.value = undefined;\n } else {\n this.#effect = createEffect(() => {\n let valueFromSignals: any;\n for (const sig of this.#signals) {\n const val = value(sig);\n if (val != null) {\n valueFromSignals = val;\n break;\n }\n }\n this.value = valueFromSignals;\n }, this.#signals);\n this.#effect.run();\n }\n }\n}"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA,SAAQ,MAAM,KAAK,QAAQ,mBAAkB;AAC7C;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAGA;AAAA,OACK;AACP,SAAQ,cAAa;AAErB,MAAM,QAAQ;AAQZ,cAAC,OAAO,EAAC,MAAM,MAAK,CAAC;AANhB,MAAM,YAAY;AAAA,EAUvB,YAAY,SAA6B;AAVpC;AAGL,iCAA8B,CAAC;AAC/B;AAEuB,uBAAS,QAAa,kBAAtB;AAEvB,SAAS,SAAT;AAGE,WAAO,MAAqB,KAAK;AAEjC,SAAK,SAAS,uBAAuB,MAAM,KAAK;AAChD,SAAK,OAAO,SAAS,CAAC,QAAQ,KAAK,MAAqB,OAAO,GAAG,CAAC;AAEnE,QAAI,SAAS;AACX,WAAK,IAAI,GAAG,OAAO;AAAA,IACrB;AAAA,EACF;AAAA,EAEA,OAAO,SAA4C;AACjD,uBAAK,UAAS,KAAK,GAAG,OAAO;AAC7B,0BAAK,4DAAL;AACA,WAAO,sBAAK,2CAAL,WAAqB;AAAA,EAC9B;AAAA,EAEA,WAAW,SAA4B;AACrC,uBAAK,UAAS,QAAQ,GAAG,OAAO;AAChC,0BAAK,4DAAL;AACA,WAAO,sBAAK,2CAAL,WAAqB;AAAA,EAC9B;AAAA,EAEA,UAAU,SAA4B;AACpC,0BAAK,2CAAL,WAAqB,SAAS;AAAA,EAChC;AAAA,EAEA,QAAQ;AACN,uBAAK,UAAS,SAAS;AACvB,0BAAK,4DAAL;AAAA,EACF;AAAA,EAEA,UAAU;AACR,SAAK,MAAM;AAEX,uBAAK,UAAS,QAAQ;AACtB,uBAAK,SAAU;AAEf,gBAAY,MAAqB,KAAK;AACtC,QAAI,IAAI;AAER,SAAK,OAAO,QAAQ;AACpB,yBAAqB,IAAI;AAAA,EAC3B;AAkCF;AAvFO;AAGL;AACA;AAEgC;AAN3B;AAuDL,oBAAe,SAAC,SAA4B;AAC1C,SAAO,MAAM;AACX,eAAW,OAAO,SAAS;AACzB,YAAM,MAAM,mBAAK,UAAS,QAAQ,GAAG;AACrC,UAAI,QAAQ,IAAI;AACd,2BAAK,UAAS,OAAO,KAAK,CAAC;AAAA,MAC7B;AAAA,IACF;AACA,0BAAK,4DAAL;AAAA,EACF;AACF;AAEA,qCAAgC,WAAG;AACjC,qBAAK,UAAS,QAAQ;AACtB,MAAI,mBAAK,UAAS,WAAW,GAAG;AAC9B,uBAAK,SAAU;AACf,SAAK,QAAQ;AAAA,EACf,OAAO;AACL,uBAAK,SAAU,aAAa,MAAM;AAChC,UAAI;AACJ,iBAAW,OAAO,mBAAK,WAAU;AAC/B,cAAM,MAAM,MAAM,GAAG;AACrB,YAAI,OAAO,MAAM;AACf,6BAAmB;AACnB;AAAA,QACF;AAAA,MACF;AACA,WAAK,QAAQ;AAAA,IACf,GAAG,mBAAK,SAAQ;AAChB,uBAAK,SAAQ,IAAI;AAAA,EACnB;AACF;AAhFuB,4BAAS,SAAhC,YANW,aAMqB;AAN3B,2BAAM;AAAA,YACK,QAAQ;",
6
+ "names": []
7
+ }
@@ -1,9 +1,11 @@
1
- // ----------------------------------------------------------------------------
2
- export const onCreate = Symbol('onCreate');
3
- // ----------------------------------------------------------------------------
4
- export const onDestroy = Symbol('onDestroy');
5
- // ----------------------------------------------------------------------------
6
- export const onParentChanged = Symbol('onParentChanged');
7
- // ----------------------------------------------------------------------------
8
- export const onViewEvent = Symbol('onViewEvent');
9
- //# sourceMappingURL=events.js.map
1
+ const onCreate = /* @__PURE__ */ Symbol("onCreate");
2
+ const onDestroy = /* @__PURE__ */ Symbol("onDestroy");
3
+ const onParentChanged = /* @__PURE__ */ Symbol("onParentChanged");
4
+ const onViewEvent = /* @__PURE__ */ Symbol("onViewEvent");
5
+ export {
6
+ onCreate,
7
+ onDestroy,
8
+ onParentChanged,
9
+ onViewEvent
10
+ };
11
+ //# sourceMappingURL=events.js.map
@@ -1 +1,7 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/in-the-dark/events.ts"],"names":[],"mappings":"AAEA,+EAA+E;AAE/E,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AAc3C,+EAA+E;AAE/E,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AAW7C,+EAA+E;AAE/E,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAMzD,+EAA+E;AAE/E,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC"}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/in-the-dark/events.ts"],
4
+ "sourcesContent": ["import type {Entity} from './Entity.js';\n\n// ----------------------------------------------------------------------------\n\nexport const onCreate = Symbol('onCreate');\n\nexport interface OnCreate {\n /**\n * Is called when the shadow-object instance has been created and attached to the entity.\n *\n * This can be the case when the entity is being initialized, or when the already initialized entity has received a token change.\n *\n * Only the shadow-object gets this event.\n * The entity does not get this event.\n */\n [onCreate](entity: Entity): void;\n}\n\n// ----------------------------------------------------------------------------\n\nexport const onDestroy = Symbol('onDestroy');\n\nexport interface OnDestroy {\n /**\n * Is called when the shadow-object is about to be destroyed.\n * Only the shadow-object gets this event.\n * The entity does not get this event.\n */\n [onDestroy](entity: Entity): void;\n}\n\n// ----------------------------------------------------------------------------\n\nexport const onParentChanged = Symbol('onParentChanged');\n\nexport interface OnParentChangedEvent {\n [onParentChanged](entity: Entity): void;\n}\n\n// ----------------------------------------------------------------------------\n\nexport const onViewEvent = Symbol('onViewEvent');\n\nexport interface OnViewEvent {\n [onViewEvent](type: string, data: unknown): void;\n}"],
5
+ "mappings": "AAIO,MAAM,WAAW,uBAAO,UAAU;AAgBlC,MAAM,YAAY,uBAAO,WAAW;AAapC,MAAM,kBAAkB,uBAAO,iBAAiB;AAQhD,MAAM,cAAc,uBAAO,aAAa;",
6
+ "names": []
7
+ }
@@ -1,32 +1,34 @@
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;
1
+ 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
+ } else {
6
+ importedModules.add(module);
7
+ }
8
+ if (module.extends) {
9
+ await Promise.all(module.extends.map((subModule) => importModule(kernel, subModule, importedModules, false)));
10
+ }
11
+ const { registry } = kernel;
12
+ if (module.define) {
13
+ for (const [token, constructor] of Object.entries(module.define)) {
14
+ registry.define(token, constructor);
5
15
  }
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();
16
+ }
17
+ if (module.routes) {
18
+ for (const [token, routes] of Object.entries(module.routes)) {
19
+ registry.appendRoute(token, routes);
30
20
  }
21
+ }
22
+ await (module.initialize?.({
23
+ define: (token, constructor) => registry.define(token, constructor),
24
+ kernel,
25
+ registry
26
+ }) ?? Promise.resolve());
27
+ if (upgradeEntities) {
28
+ kernel.upgradeEntities();
29
+ }
31
30
  }
32
- //# sourceMappingURL=importModule.js.map
31
+ export {
32
+ importModule
33
+ };
34
+ //# sourceMappingURL=importModule.js.map
@@ -1 +1,7 @@
1
- {"version":3,"file":"importModule.js","sourceRoot":"","sources":["../../../src/in-the-dark/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,WAAsC,CAAC,CAAC;QACjE,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,WAAsC,CAAC;QAC9F,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"}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/in-the-dark/importModule.ts"],
4
+ "sourcesContent": ["import type {ShadowObjectConstructor, ShadowObjectsModule} from '../types.js';\nimport type {Kernel} from './Kernel.js';\n\nexport async function importModule(\n kernel: Kernel,\n module: ShadowObjectsModule,\n importedModules: Set<ShadowObjectsModule>,\n upgradeEntities = true,\n): Promise<void> {\n if (importedModules.has(module)) {\n console.warn('importModule: skipping already imported module', module);\n return;\n } else {\n importedModules.add(module);\n }\n\n if (module.extends) {\n await Promise.all(module.extends.map((subModule) => importModule(kernel, subModule, importedModules, false)));\n }\n\n const {registry} = kernel;\n\n if (module.define) {\n for (const [token, constructor] of Object.entries(module.define)) {\n registry.define(token, constructor as ShadowObjectConstructor);\n }\n }\n\n if (module.routes) {\n for (const [token, routes] of Object.entries(module.routes)) {\n registry.appendRoute(token, routes);\n }\n }\n\n await (module.initialize?.({\n define: (token, constructor) => registry.define(token, constructor as ShadowObjectConstructor),\n kernel,\n registry,\n }) ?? Promise.resolve());\n\n if (upgradeEntities) {\n kernel.upgradeEntities();\n }\n}"],
5
+ "mappings": "AAGA,eAAsB,aACpB,QACA,QACA,iBACA,kBAAkB,MACH;AACf,MAAI,gBAAgB,IAAI,MAAM,GAAG;AAC/B,YAAQ,KAAK,kDAAkD,MAAM;AACrE;AAAA,EACF,OAAO;AACL,oBAAgB,IAAI,MAAM;AAAA,EAC5B;AAEA,MAAI,OAAO,SAAS;AAClB,UAAM,QAAQ,IAAI,OAAO,QAAQ,IAAI,CAAC,cAAc,aAAa,QAAQ,WAAW,iBAAiB,KAAK,CAAC,CAAC;AAAA,EAC9G;AAEA,QAAM,EAAC,SAAQ,IAAI;AAEnB,MAAI,OAAO,QAAQ;AACjB,eAAW,CAAC,OAAO,WAAW,KAAK,OAAO,QAAQ,OAAO,MAAM,GAAG;AAChE,eAAS,OAAO,OAAO,WAAsC;AAAA,IAC/D;AAAA,EACF;AAEA,MAAI,OAAO,QAAQ;AACjB,eAAW,CAAC,OAAO,MAAM,KAAK,OAAO,QAAQ,OAAO,MAAM,GAAG;AAC3D,eAAS,YAAY,OAAO,MAAM;AAAA,IACpC;AAAA,EACF;AAEA,SAAO,OAAO,aAAa;AAAA,IACzB,QAAQ,CAAC,OAAO,gBAAgB,SAAS,OAAO,OAAO,WAAsC;AAAA,IAC7F;AAAA,IACA;AAAA,EACF,CAAC,KAAK,QAAQ,QAAQ;AAEtB,MAAI,iBAAiB;AACnB,WAAO,gBAAgB;AAAA,EACzB;AACF;",
6
+ "names": []
7
+ }
package/src/index.d.ts CHANGED
@@ -4,13 +4,13 @@ export * from './elements/ShaeElement.js';
4
4
  export * from './elements/ShaeEntElement.js';
5
5
  export * from './elements/ShaePropElement.js';
6
6
  export * from './elements/ShaeWorkerElement.js';
7
+ export type * from './types.js';
7
8
  export * from './utils/toNamespace.js';
8
9
  export * from './view/ComponentContext.js';
9
10
  export * from './view/ComponentMemory.js';
11
+ export type * from './view/IShadowObjectEnvProxy.js';
10
12
  export * from './view/LocalShadowObjectEnv.js';
11
13
  export * from './view/RemoteWorkerEnv.js';
12
14
  export * from './view/ShadowEnv.js';
13
15
  export * from './view/ViewComponent.js';
14
- export type * from './types.js';
15
- export type * from './view/IShadowObjectEnvProxy.js';
16
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +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,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,mBAAmB,YAAY,CAAC;AAChC,mBAAmB,iCAAiC,CAAC"}
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,mBAAmB,YAAY,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,mBAAmB,iCAAiC,CAAC;AACrD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC"}
package/src/index.js CHANGED
@@ -1,14 +1,14 @@
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 './utils/toNamespace.js';
8
- export * from './view/ComponentContext.js';
9
- export * from './view/ComponentMemory.js';
10
- export * from './view/LocalShadowObjectEnv.js';
11
- export * from './view/RemoteWorkerEnv.js';
12
- export * from './view/ShadowEnv.js';
13
- export * from './view/ViewComponent.js';
14
- //# sourceMappingURL=index.js.map
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 "./utils/toNamespace.js";
8
+ export * from "./view/ComponentContext.js";
9
+ export * from "./view/ComponentMemory.js";
10
+ export * from "./view/LocalShadowObjectEnv.js";
11
+ export * from "./view/RemoteWorkerEnv.js";
12
+ export * from "./view/ShadowEnv.js";
13
+ export * from "./view/ViewComponent.js";
14
+ //# sourceMappingURL=index.js.map
package/src/index.js.map CHANGED
@@ -1 +1,7 @@
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,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"}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/index.ts"],
4
+ "sourcesContent": ["export * from './constants.js';\nexport * from './elements/constants.js';\nexport * from './elements/ShaeElement.js';\nexport * from './elements/ShaeEntElement.js';\nexport * from './elements/ShaePropElement.js';\nexport * from './elements/ShaeWorkerElement.js';\nexport type * from './types.js';\nexport * from './utils/toNamespace.js';\nexport * from './view/ComponentContext.js';\nexport * from './view/ComponentMemory.js';\nexport type * from './view/IShadowObjectEnvProxy.js';\nexport * from './view/LocalShadowObjectEnv.js';\nexport * from './view/RemoteWorkerEnv.js';\nexport * from './view/ShadowEnv.js';\nexport * from './view/ViewComponent.js';"],
5
+ "mappings": "AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AAEd,cAAc;AACd,cAAc;AACd,cAAc;AAEd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;",
6
+ "names": []
7
+ }
@@ -1,6 +1,6 @@
1
- export * from './constants.js';
2
- export * from './in-the-dark/events.js';
3
- export * from './in-the-dark/Kernel.js';
4
- export * from './in-the-dark/Registry.js';
5
- export * from './in-the-dark/ShadowObject.js';
6
- //# sourceMappingURL=shadow-objects.js.map
1
+ export * from "./constants.js";
2
+ export * from "./in-the-dark/events.js";
3
+ export * from "./in-the-dark/Kernel.js";
4
+ export * from "./in-the-dark/Registry.js";
5
+ export * from "./in-the-dark/ShadowObject.js";
6
+ //# sourceMappingURL=shadow-objects.js.map
@@ -1 +1,7 @@
1
- {"version":3,"file":"shadow-objects.js","sourceRoot":"","sources":["../../src/shadow-objects.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC"}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/shadow-objects.ts"],
4
+ "sourcesContent": ["export * from './constants.js';\nexport * from './in-the-dark/events.js';\nexport * from './in-the-dark/Kernel.js';\nexport * from './in-the-dark/Registry.js';\nexport * from './in-the-dark/ShadowObject.js';\nexport type * from './types.js';"],
5
+ "mappings": "AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;",
6
+ "names": []
7
+ }
@@ -1,5 +1,5 @@
1
- import { WorkerRuntime } from './worker/WorkerRuntime.js';
2
- console.debug('@spearwolf/shadow-objects/WorkerRuntime: hello!');
1
+ import { WorkerRuntime } from "./worker/WorkerRuntime.js";
2
+ console.debug("@spearwolf/shadow-objects/WorkerRuntime: hello!");
3
3
  const shadowRuntime = new WorkerRuntime();
4
4
  shadowRuntime.start();
5
- //# sourceMappingURL=shadow-objects.worker.js.map
5
+ //# sourceMappingURL=shadow-objects.worker.js.map
@@ -1 +1,7 @@
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"}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/shadow-objects.worker.js"],
4
+ "sourcesContent": ["import {WorkerRuntime} from './worker/WorkerRuntime.js';\n\nconsole.debug('@spearwolf/shadow-objects/WorkerRuntime: hello!');\n\nconst shadowRuntime = new WorkerRuntime();\nshadowRuntime.start();"],
5
+ "mappings": "AAAA,SAAQ,qBAAoB;AAE5B,QAAQ,MAAM,iDAAiD;AAE/D,MAAM,gBAAgB,IAAI,cAAc;AACxC,cAAc,MAAM;",
6
+ "names": []
7
+ }
package/src/shae-ent.js CHANGED
@@ -1,4 +1,4 @@
1
- import { ShaeEntElement } from './elements/ShaeEntElement.js';
2
- import { SHAE_ENT } from './elements/constants.js';
1
+ import { SHAE_ENT } from "./elements/constants.js";
2
+ import { ShaeEntElement } from "./elements/ShaeEntElement.js";
3
3
  customElements.define(SHAE_ENT, ShaeEntElement);
4
- //# sourceMappingURL=shae-ent.js.map
4
+ //# sourceMappingURL=shae-ent.js.map
@@ -1 +1,7 @@
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"}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/shae-ent.ts"],
4
+ "sourcesContent": ["import {SHAE_ENT} from './elements/constants.js';\nimport {ShaeEntElement} from './elements/ShaeEntElement.js';\n\ncustomElements.define(SHAE_ENT, ShaeEntElement);"],
5
+ "mappings": "AAAA,SAAQ,gBAAe;AACvB,SAAQ,sBAAqB;AAE7B,eAAe,OAAO,UAAU,cAAc;",
6
+ "names": []
7
+ }
package/src/shae-prop.js CHANGED
@@ -1,4 +1,4 @@
1
- import { ShaePropElement } from './elements/ShaePropElement.js';
2
- import { SHAE_ENT, SHAE_PROP } from './elements/constants.js';
1
+ import { SHAE_ENT, SHAE_PROP } from "./elements/constants.js";
2
+ import { ShaePropElement } from "./elements/ShaePropElement.js";
3
3
  customElements.whenDefined(SHAE_ENT).then(() => customElements.define(SHAE_PROP, ShaePropElement));
4
- //# sourceMappingURL=shae-prop.js.map
4
+ //# sourceMappingURL=shae-prop.js.map
@@ -1 +1,7 @@
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"}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/shae-prop.ts"],
4
+ "sourcesContent": ["import {SHAE_ENT, SHAE_PROP} from './elements/constants.js';\nimport {ShaePropElement} from './elements/ShaePropElement.js';\n\ncustomElements.whenDefined(SHAE_ENT).then(() => customElements.define(SHAE_PROP, ShaePropElement));"],
5
+ "mappings": "AAAA,SAAQ,UAAU,iBAAgB;AAClC,SAAQ,uBAAsB;AAE9B,eAAe,YAAY,QAAQ,EAAE,KAAK,MAAM,eAAe,OAAO,WAAW,eAAe,CAAC;",
6
+ "names": []
7
+ }
@@ -1,4 +1,4 @@
1
- import { ShaeWorkerElement } from './elements/ShaeWorkerElement.js';
2
- import { SHAE_WORKER } from './elements/constants.js';
1
+ import { SHAE_WORKER } from "./elements/constants.js";
2
+ import { ShaeWorkerElement } from "./elements/ShaeWorkerElement.js";
3
3
  customElements.define(SHAE_WORKER, ShaeWorkerElement);
4
- //# sourceMappingURL=shae-worker.js.map
4
+ //# sourceMappingURL=shae-worker.js.map
@@ -1 +1,7 @@
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"}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/shae-worker.ts"],
4
+ "sourcesContent": ["import {SHAE_WORKER} from './elements/constants.js';\nimport {ShaeWorkerElement} from './elements/ShaeWorkerElement.js';\n\ncustomElements.define(SHAE_WORKER, ShaeWorkerElement);"],
5
+ "mappings": "AAAA,SAAQ,mBAAkB;AAC1B,SAAQ,yBAAwB;AAEhC,eAAe,OAAO,aAAa,iBAAiB;",
6
+ "names": []
7
+ }
package/src/types.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { AnyEventNames, EventArgs, EventizedObject, SubscribeArgs, on, once } from '@spearwolf/eventize';
1
+ import type { AnyEventNames, EventArgs, EventizedObject, on, once, SubscribeArgs } from '@spearwolf/eventize';
2
2
  import type { CompareFunc, createEffect, createMemo, createSignal, Signal, SignalReader } from '@spearwolf/signalize';
3
3
  import type { AppliedChangeTrail, ComponentChangeType, ImportedModule } from './constants.js';
4
4
  import type { Entity } from './in-the-dark/Entity.js';
@@ -21,6 +21,7 @@ export interface ICreateEntitiesChange extends IComponentChange {
21
21
  parentUuid?: string;
22
22
  order?: number;
23
23
  properties?: ComponentPropertiesType;
24
+ autoDestructionOnParentRemoval?: boolean;
24
25
  }
25
26
  export interface IChangeToken extends IComponentChange {
26
27
  type: ComponentChangeType.ChangeToken;
@@ -61,7 +62,7 @@ export interface AppliedChangeTrailEvent {
61
62
  serial?: number;
62
63
  error?: string;
63
64
  }
64
- export type EntityApi = Readonly<Pick<Entity, 'uuid' | 'order' | 'hasParent' | 'propKeys' | 'propEntries'> & {
65
+ export type EntityApi = Readonly<Pick<Entity, 'uuid' | 'order' | 'hasParent' | 'propKeys' | 'propEntries' | 'kernel'> & {
65
66
  parent?: EntityApi;
66
67
  children: readonly EntityApi[];
67
68
  traverse(callback: (entity: EntityApi) => unknown): void;
@@ -91,9 +92,9 @@ export interface ShadowObjectCreationAPI {
91
92
  createSignal<T = unknown>(...args: Parameters<typeof createSignal<T>>): ReturnType<typeof createSignal<T>>;
92
93
  createMemo<T = unknown>(...args: Parameters<typeof createMemo<T>>): SignalReader<T>;
93
94
  on(...args: SubscribeArgs): ReturnType<typeof on>;
94
- on(...args: Parameters<typeof on>): ReturnType<typeof on>;
95
+ on(...args: [object, ...SubscribeArgs]): ReturnType<typeof on>;
95
96
  once(...args: SubscribeArgs): ReturnType<typeof once>;
96
- once(...args: Parameters<typeof once>): ReturnType<typeof once>;
97
+ once(...args: [object, ...SubscribeArgs]): ReturnType<typeof once>;
97
98
  onViewEvent(callback: (type: string, data: unknown) => any): void;
98
99
  /**
99
100
  * Emit an event on the *entity* associated with this shadow object.