@spearwolf/shadow-objects 0.33.0 → 0.35.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 (312) hide show
  1. package/CHANGELOG.md +350 -61
  2. package/README.md +66 -13
  3. package/bundle.js +6 -53
  4. package/package.json +15 -3
  5. package/src/ChangeTrailRefusedError.d.ts +27 -0
  6. package/src/ChangeTrailRefusedError.d.ts.map +1 -0
  7. package/src/ChangeTrailRefusedError.js +12 -0
  8. package/src/ChangeTrailRefusedError.js.map +7 -0
  9. package/src/EntityUuidInUseError.d.ts +19 -0
  10. package/src/EntityUuidInUseError.d.ts.map +1 -0
  11. package/src/EntityUuidInUseError.js +11 -0
  12. package/src/EntityUuidInUseError.js.map +7 -0
  13. package/src/WorkerTimeoutError.d.ts +26 -0
  14. package/src/WorkerTimeoutError.d.ts.map +1 -0
  15. package/src/WorkerTimeoutError.js +12 -0
  16. package/src/WorkerTimeoutError.js.map +7 -0
  17. package/src/bundle.d.ts +1 -1
  18. package/src/bundle.d.ts.map +1 -1
  19. package/src/bundle.js +1 -1
  20. package/src/bundle.js.map +2 -2
  21. package/src/constants.d.ts +13 -2
  22. package/src/constants.d.ts.map +1 -1
  23. package/src/constants.js +7 -1
  24. package/src/constants.js.map +2 -2
  25. package/src/create-worker.bundle.d.ts +1 -1
  26. package/src/create-worker.bundle.d.ts.map +1 -1
  27. package/src/create-worker.bundle.js.map +1 -1
  28. package/src/create-worker.d.ts +1 -1
  29. package/src/create-worker.d.ts.map +1 -1
  30. package/src/create-worker.js.map +1 -1
  31. package/src/elements/ShaeElement.d.ts +70 -2
  32. package/src/elements/ShaeElement.d.ts.map +1 -1
  33. package/src/elements/ShaeElement.js +129 -25
  34. package/src/elements/ShaeElement.js.map +3 -3
  35. package/src/elements/ShaeEntElement.d.ts +39 -1
  36. package/src/elements/ShaeEntElement.d.ts.map +1 -1
  37. package/src/elements/ShaeEntElement.js +397 -167
  38. package/src/elements/ShaeEntElement.js.map +2 -2
  39. package/src/elements/ShaeLifecycleElement.d.ts +71 -0
  40. package/src/elements/ShaeLifecycleElement.d.ts.map +1 -0
  41. package/src/elements/ShaeLifecycleElement.js +83 -0
  42. package/src/elements/ShaeLifecycleElement.js.map +7 -0
  43. package/src/elements/ShaePropElement.d.ts +61 -2
  44. package/src/elements/ShaePropElement.d.ts.map +1 -1
  45. package/src/elements/ShaePropElement.js +264 -219
  46. package/src/elements/ShaePropElement.js.map +2 -2
  47. package/src/elements/ShaeWorkerElement.d.ts +59 -5
  48. package/src/elements/ShaeWorkerElement.d.ts.map +1 -1
  49. package/src/elements/ShaeWorkerElement.js +271 -73
  50. package/src/elements/ShaeWorkerElement.js.map +2 -2
  51. package/src/elements/constants.d.ts +9 -0
  52. package/src/elements/constants.d.ts.map +1 -1
  53. package/src/elements/constants.js +18 -0
  54. package/src/elements/constants.js.map +2 -2
  55. package/src/elements/deferredTeardown.d.ts +24 -0
  56. package/src/elements/deferredTeardown.d.ts.map +1 -0
  57. package/src/elements/deferredTeardown.js +30 -0
  58. package/src/elements/deferredTeardown.js.map +7 -0
  59. package/src/elements/displayContentsRule.d.ts +25 -0
  60. package/src/elements/displayContentsRule.d.ts.map +1 -0
  61. package/src/elements/displayContentsRule.js +37 -0
  62. package/src/elements/displayContentsRule.js.map +7 -0
  63. package/src/elements/events.d.ts +10 -7
  64. package/src/elements/events.d.ts.map +1 -1
  65. package/src/elements/forwardCustomEvents.d.ts +19 -0
  66. package/src/elements/forwardCustomEvents.d.ts.map +1 -0
  67. package/src/elements/forwardCustomEvents.js +47 -0
  68. package/src/elements/forwardCustomEvents.js.map +7 -0
  69. package/src/elements/hostedSlots.d.ts +36 -0
  70. package/src/elements/hostedSlots.d.ts.map +1 -0
  71. package/src/elements/hostedSlots.js +118 -0
  72. package/src/elements/hostedSlots.js.map +7 -0
  73. package/src/elements/parentRemoval.d.ts +18 -0
  74. package/src/elements/parentRemoval.d.ts.map +1 -0
  75. package/src/elements/parentRemoval.js +60 -0
  76. package/src/elements/parentRemoval.js.map +7 -0
  77. package/src/elements/propValueConverters.d.ts +3 -0
  78. package/src/elements/propValueConverters.d.ts.map +1 -0
  79. package/src/elements/propValueConverters.js +54 -0
  80. package/src/elements/propValueConverters.js.map +7 -0
  81. package/src/elements/requestEntAncestor.d.ts +32 -0
  82. package/src/elements/requestEntAncestor.d.ts.map +1 -0
  83. package/src/elements/requestEntAncestor.js +16 -0
  84. package/src/elements/requestEntAncestor.js.map +7 -0
  85. package/src/elements.js.map +1 -1
  86. package/src/in-the-dark/Entity.d.ts +143 -3
  87. package/src/in-the-dark/Entity.d.ts.map +1 -1
  88. package/src/in-the-dark/Entity.js +330 -63
  89. package/src/in-the-dark/Entity.js.map +3 -3
  90. package/src/in-the-dark/Kernel.d.ts +98 -16
  91. package/src/in-the-dark/Kernel.d.ts.map +1 -1
  92. package/src/in-the-dark/Kernel.js +466 -379
  93. package/src/in-the-dark/Kernel.js.map +3 -3
  94. package/src/in-the-dark/Registry.d.ts +7 -1
  95. package/src/in-the-dark/Registry.d.ts.map +1 -1
  96. package/src/in-the-dark/Registry.js +112 -14
  97. package/src/in-the-dark/Registry.js.map +2 -2
  98. package/src/in-the-dark/ShadowObject.d.ts.map +1 -1
  99. package/src/in-the-dark/ShadowObject.js +1 -0
  100. package/src/in-the-dark/ShadowObject.js.map +2 -2
  101. package/src/in-the-dark/ShadowObjectCreationScope.d.ts +133 -0
  102. package/src/in-the-dark/ShadowObjectCreationScope.d.ts.map +1 -0
  103. package/src/in-the-dark/ShadowObjectCreationScope.js +603 -0
  104. package/src/in-the-dark/ShadowObjectCreationScope.js.map +7 -0
  105. package/src/in-the-dark/SignalsPath.d.ts +2 -0
  106. package/src/in-the-dark/SignalsPath.d.ts.map +1 -1
  107. package/src/in-the-dark/SignalsPath.js +6 -2
  108. package/src/in-the-dark/SignalsPath.js.map +2 -2
  109. package/src/in-the-dark/displayName.d.ts +4 -0
  110. package/src/in-the-dark/displayName.d.ts.map +1 -0
  111. package/src/in-the-dark/displayName.js +5 -0
  112. package/src/in-the-dark/displayName.js.map +7 -0
  113. package/src/in-the-dark/events.js.map +1 -1
  114. package/src/in-the-dark/importModule.d.ts +7 -0
  115. package/src/in-the-dark/importModule.d.ts.map +1 -1
  116. package/src/in-the-dark/importModule.js +5 -2
  117. package/src/in-the-dark/importModule.js.map +2 -2
  118. package/src/index.d.ts +9 -1
  119. package/src/index.d.ts.map +1 -1
  120. package/src/index.js +9 -1
  121. package/src/index.js.map +2 -2
  122. package/src/inspect/createKernelSnapshot.d.ts +17 -0
  123. package/src/inspect/createKernelSnapshot.d.ts.map +1 -0
  124. package/src/inspect/createKernelSnapshot.js +247 -0
  125. package/src/inspect/createKernelSnapshot.js.map +7 -0
  126. package/src/inspect/createViewSnapshot.d.ts +10 -0
  127. package/src/inspect/createViewSnapshot.d.ts.map +1 -0
  128. package/src/inspect/createViewSnapshot.js +143 -0
  129. package/src/inspect/createViewSnapshot.js.map +7 -0
  130. package/src/inspect/normalizeInspectRequest.d.ts +32 -0
  131. package/src/inspect/normalizeInspectRequest.d.ts.map +1 -0
  132. package/src/inspect/normalizeInspectRequest.js +55 -0
  133. package/src/inspect/normalizeInspectRequest.js.map +7 -0
  134. package/src/inspect/serializeValue.d.ts +13 -0
  135. package/src/inspect/serializeValue.d.ts.map +1 -0
  136. package/src/inspect/serializeValue.js +149 -0
  137. package/src/inspect/serializeValue.js.map +7 -0
  138. package/src/inspect/types.d.ts +260 -0
  139. package/src/inspect/types.d.ts.map +1 -0
  140. package/src/inspect/types.js +1 -0
  141. package/src/inspect/types.js.map +7 -0
  142. package/src/model-context/ModelContextLike.d.ts +59 -0
  143. package/src/model-context/ModelContextLike.d.ts.map +1 -0
  144. package/src/model-context/ModelContextLike.js +15 -0
  145. package/src/model-context/ModelContextLike.js.map +7 -0
  146. package/src/model-context/exposeShadowEnvsToModelContext.d.ts +48 -0
  147. package/src/model-context/exposeShadowEnvsToModelContext.d.ts.map +1 -0
  148. package/src/model-context/exposeShadowEnvsToModelContext.js +39 -0
  149. package/src/model-context/exposeShadowEnvsToModelContext.js.map +7 -0
  150. package/src/model-context/redactProps.d.ts +14 -0
  151. package/src/model-context/redactProps.d.ts.map +1 -0
  152. package/src/model-context/redactProps.js +22 -0
  153. package/src/model-context/redactProps.js.map +7 -0
  154. package/src/model-context/sharedExposure.d.ts +32 -0
  155. package/src/model-context/sharedExposure.d.ts.map +1 -0
  156. package/src/model-context/sharedExposure.js +108 -0
  157. package/src/model-context/sharedExposure.js.map +7 -0
  158. package/src/model-context/toolSupport.d.ts +72 -0
  159. package/src/model-context/toolSupport.d.ts.map +1 -0
  160. package/src/model-context/toolSupport.js +145 -0
  161. package/src/model-context/toolSupport.js.map +7 -0
  162. package/src/model-context/tools/findEntities.d.ts +15 -0
  163. package/src/model-context/tools/findEntities.d.ts.map +1 -0
  164. package/src/model-context/tools/findEntities.js +71 -0
  165. package/src/model-context/tools/findEntities.js.map +7 -0
  166. package/src/model-context/tools/getEntity.d.ts +16 -0
  167. package/src/model-context/tools/getEntity.d.ts.map +1 -0
  168. package/src/model-context/tools/getEntity.js +65 -0
  169. package/src/model-context/tools/getEntity.js.map +7 -0
  170. package/src/model-context/tools/getEntityTree.d.ts +4 -0
  171. package/src/model-context/tools/getEntityTree.d.ts.map +1 -0
  172. package/src/model-context/tools/getEntityTree.js +58 -0
  173. package/src/model-context/tools/getEntityTree.js.map +7 -0
  174. package/src/model-context/tools/getRegistry.d.ts +14 -0
  175. package/src/model-context/tools/getRegistry.d.ts.map +1 -0
  176. package/src/model-context/tools/getRegistry.js +39 -0
  177. package/src/model-context/tools/getRegistry.js.map +7 -0
  178. package/src/model-context/tools/index.d.ts +9 -0
  179. package/src/model-context/tools/index.d.ts.map +1 -0
  180. package/src/model-context/tools/index.js +16 -0
  181. package/src/model-context/tools/index.js.map +7 -0
  182. package/src/model-context/tools/listEnvs.d.ts +33 -0
  183. package/src/model-context/tools/listEnvs.d.ts.map +1 -0
  184. package/src/model-context/tools/listEnvs.js +37 -0
  185. package/src/model-context/tools/listEnvs.js.map +7 -0
  186. package/src/model-context.d.ts +13 -0
  187. package/src/model-context.d.ts.map +1 -0
  188. package/src/model-context.js +15 -0
  189. package/src/model-context.js.map +7 -0
  190. package/src/shadow-objects.d.ts +4 -0
  191. package/src/shadow-objects.d.ts.map +1 -1
  192. package/src/shadow-objects.js +6 -0
  193. package/src/shadow-objects.js.map +2 -2
  194. package/src/shadow-objects.worker.js +0 -1
  195. package/src/shadow-objects.worker.js.map +2 -2
  196. package/src/shae-ent.js.map +1 -1
  197. package/src/shae-prop.js +2 -2
  198. package/src/shae-prop.js.map +2 -2
  199. package/src/shae-worker.js.map +1 -1
  200. package/src/testing/TestEntity.d.ts +79 -0
  201. package/src/testing/TestEntity.d.ts.map +1 -0
  202. package/src/testing/TestEntity.js +135 -0
  203. package/src/testing/TestEntity.js.map +7 -0
  204. package/src/testing/createTestKernel.d.ts +11 -0
  205. package/src/testing/createTestKernel.d.ts.map +1 -0
  206. package/src/testing/createTestKernel.js +132 -0
  207. package/src/testing/createTestKernel.js.map +7 -0
  208. package/src/testing/mountShadowObject.d.ts +21 -0
  209. package/src/testing/mountShadowObject.d.ts.map +1 -0
  210. package/src/testing/mountShadowObject.js +72 -0
  211. package/src/testing/mountShadowObject.js.map +7 -0
  212. package/src/testing/recordKernelErrors.d.ts +21 -0
  213. package/src/testing/recordKernelErrors.d.ts.map +1 -0
  214. package/src/testing/recordKernelErrors.js +39 -0
  215. package/src/testing/recordKernelErrors.js.map +7 -0
  216. package/src/testing/settle.d.ts +15 -0
  217. package/src/testing/settle.d.ts.map +1 -0
  218. package/src/testing/settle.js +19 -0
  219. package/src/testing/settle.js.map +7 -0
  220. package/src/testing/types.d.ts +119 -0
  221. package/src/testing/types.d.ts.map +1 -0
  222. package/src/testing/types.js +1 -0
  223. package/src/testing/types.js.map +7 -0
  224. package/src/testing.d.ts +14 -0
  225. package/src/testing.d.ts.map +1 -0
  226. package/src/testing.js +11 -0
  227. package/src/testing.js.map +7 -0
  228. package/src/types.d.ts +185 -14
  229. package/src/types.d.ts.map +1 -1
  230. package/src/utils/ConsoleLogger.d.ts +45 -10
  231. package/src/utils/ConsoleLogger.d.ts.map +1 -1
  232. package/src/utils/ConsoleLogger.js +51 -26
  233. package/src/utils/ConsoleLogger.js.map +2 -2
  234. package/src/utils/FrameLoop.d.ts +42 -3
  235. package/src/utils/FrameLoop.d.ts.map +1 -1
  236. package/src/utils/FrameLoop.js +71 -10
  237. package/src/utils/FrameLoop.js.map +2 -2
  238. package/src/utils/MicrotaskCollector.d.ts +45 -0
  239. package/src/utils/MicrotaskCollector.d.ts.map +1 -0
  240. package/src/utils/MicrotaskCollector.js +33 -0
  241. package/src/utils/MicrotaskCollector.js.map +7 -0
  242. package/src/utils/MicrotaskGate.d.ts +17 -0
  243. package/src/utils/MicrotaskGate.d.ts.map +1 -0
  244. package/src/utils/MicrotaskGate.js +20 -0
  245. package/src/utils/MicrotaskGate.js.map +7 -0
  246. package/src/utils/array-utils.js.map +1 -1
  247. package/src/utils/attr-utils.d.ts +11 -0
  248. package/src/utils/attr-utils.d.ts.map +1 -1
  249. package/src/utils/attr-utils.js +5 -1
  250. package/src/utils/attr-utils.js.map +2 -2
  251. package/src/utils/constants.js.map +1 -1
  252. package/src/utils/generateUUID.d.ts +11 -0
  253. package/src/utils/generateUUID.d.ts.map +1 -1
  254. package/src/utils/generateUUID.js +31 -266
  255. package/src/utils/generateUUID.js.map +2 -2
  256. package/src/utils/props-utils.d.ts +3 -2
  257. package/src/utils/props-utils.d.ts.map +1 -1
  258. package/src/utils/props-utils.js +13 -24
  259. package/src/utils/props-utils.js.map +2 -2
  260. package/src/utils/runGuarded.d.ts +27 -0
  261. package/src/utils/runGuarded.d.ts.map +1 -0
  262. package/src/utils/runGuarded.js +11 -0
  263. package/src/utils/runGuarded.js.map +7 -0
  264. package/src/utils/toMaybe.d.ts.map +1 -1
  265. package/src/utils/toMaybe.js.map +1 -1
  266. package/src/utils/toNamespace.d.ts.map +1 -1
  267. package/src/utils/toNamespace.js.map +1 -1
  268. package/src/utils/toUrlString.d.ts +12 -0
  269. package/src/utils/toUrlString.d.ts.map +1 -1
  270. package/src/utils/toUrlString.js.map +2 -2
  271. package/src/utils/waitForMessageOfType.d.ts +12 -1
  272. package/src/utils/waitForMessageOfType.d.ts.map +1 -1
  273. package/src/utils/waitForMessageOfType.js +16 -1
  274. package/src/utils/waitForMessageOfType.js.map +2 -2
  275. package/src/view/ComponentChanges.d.ts +88 -1
  276. package/src/view/ComponentChanges.d.ts.map +1 -1
  277. package/src/view/ComponentChanges.js +243 -73
  278. package/src/view/ComponentChanges.js.map +2 -2
  279. package/src/view/ComponentContext.d.ts +206 -16
  280. package/src/view/ComponentContext.d.ts.map +1 -1
  281. package/src/view/ComponentContext.js +548 -91
  282. package/src/view/ComponentContext.js.map +2 -2
  283. package/src/view/ComponentMemory.d.ts +3 -3
  284. package/src/view/ComponentMemory.d.ts.map +1 -1
  285. package/src/view/ComponentMemory.js.map +1 -1
  286. package/src/view/IShadowObjectEnvProxy.d.ts +38 -3
  287. package/src/view/IShadowObjectEnvProxy.d.ts.map +1 -1
  288. package/src/view/LocalShadowObjectEnv.d.ts +8 -1
  289. package/src/view/LocalShadowObjectEnv.d.ts.map +1 -1
  290. package/src/view/LocalShadowObjectEnv.js +23 -7
  291. package/src/view/LocalShadowObjectEnv.js.map +2 -2
  292. package/src/view/RemoteWorkerEnv.d.ts +108 -5
  293. package/src/view/RemoteWorkerEnv.d.ts.map +1 -1
  294. package/src/view/RemoteWorkerEnv.js +244 -77
  295. package/src/view/RemoteWorkerEnv.js.map +2 -2
  296. package/src/view/ShadowEnv.d.ts +79 -2
  297. package/src/view/ShadowEnv.d.ts.map +1 -1
  298. package/src/view/ShadowEnv.js +323 -59
  299. package/src/view/ShadowEnv.js.map +3 -3
  300. package/src/view/ViewComponent.d.ts +78 -14
  301. package/src/view/ViewComponent.d.ts.map +1 -1
  302. package/src/view/ViewComponent.js +90 -14
  303. package/src/view/ViewComponent.js.map +2 -2
  304. package/src/view/cloneChangeTrail.js.map +2 -2
  305. package/src/worker/MessageRouter.d.ts +14 -0
  306. package/src/worker/MessageRouter.d.ts.map +1 -1
  307. package/src/worker/MessageRouter.js +98 -15
  308. package/src/worker/MessageRouter.js.map +2 -2
  309. package/src/worker/WorkerRuntime.d.ts +22 -1
  310. package/src/worker/WorkerRuntime.d.ts.map +1 -1
  311. package/src/worker/WorkerRuntime.js +60 -8
  312. package/src/worker/WorkerRuntime.js.map +2 -2
@@ -0,0 +1,119 @@
1
+ import type { Entity } from '../in-the-dark/Entity.js';
2
+ import type { Kernel } from '../in-the-dark/Kernel.js';
3
+ import type { Registry } from '../in-the-dark/Registry.js';
4
+ import type { ShadowObjectConstructor, ShadowObjectConstructorFunc, ShadowObjectDescription, ShadowObjectsModule, ShadowObjectType } from '../types.js';
5
+ /** Either shape a Shadow Object can be defined in. */
6
+ export type AnyShadowObjectConstructor = ShadowObjectConstructor | ShadowObjectConstructorFunc;
7
+ /**
8
+ * The instance a constructor produces. A function constructor that returns nothing yields
9
+ * `object`, which is honest: there is an eventized instance, and it carries nothing a test can name.
10
+ */
11
+ export type ShadowObjectInstance<C> = C extends new (...args: any[]) => infer R ? R : C extends (...args: any[]) => infer R ? R extends object ? R : object : object;
12
+ /** One report the Kernel made through its logger while a test kernel was recording. */
13
+ export interface KernelErrorRecord {
14
+ level: 'error' | 'warn';
15
+ /** The arguments as they were logged. `runGuarded()` puts its message first and the error last. */
16
+ args: readonly unknown[];
17
+ /** The last argument, where that argument is an `Error`. */
18
+ error?: Error;
19
+ }
20
+ /** One message an Entity sent towards the View. */
21
+ export interface ViewMessageRecord {
22
+ type: string;
23
+ data: unknown;
24
+ traverseChildren?: boolean;
25
+ }
26
+ export interface CreateEntityOptions {
27
+ uuid?: string;
28
+ order?: number;
29
+ parent?: TestEntity;
30
+ autoDestructionOnParentRemoval?: boolean;
31
+ }
32
+ /** One handle per Entity. The same uuid always answers with the same handle. */
33
+ export interface TestEntity {
34
+ readonly uuid: string;
35
+ /** The token the Kernel currently holds for this Entity. */
36
+ readonly token: string;
37
+ /** The Entity itself -- the way out for everything this handle does not cover. */
38
+ readonly entity: Entity;
39
+ /**
40
+ * What this Entity sent towards the View since the last `clearViewMessages()`.
41
+ *
42
+ * The list belongs to the test kernel and this is a view onto it, so it holds every message that
43
+ * was dispatched for this uuid -- the ones from before anything asked for a handle included.
44
+ *
45
+ * A message is recorded one settle after it was dispatched, so a test settles before it reads.
46
+ * One message never arrives, and it is the end of the road anyway: `TestKernel.dispose()`
47
+ * unsubscribes and releases the log in the same synchronous call, while a message its teardown
48
+ * dispatched is still queued. A test that wants a Shadow Object's farewell message destroys the
49
+ * Entity and settles first.
50
+ */
51
+ readonly viewMessages: readonly ViewMessageRecord[];
52
+ createChild(token: string, props?: Record<string, unknown>, options?: Omit<CreateEntityOptions, 'parent'>): TestEntity;
53
+ setProps(props: Record<string, unknown>): void;
54
+ removeProps(...names: string[]): void;
55
+ readProp<T = unknown>(name: string): T | undefined;
56
+ readContext<T = unknown>(name: string | symbol): T | undefined;
57
+ setToken(token: string): void;
58
+ setParent(parent: TestEntity | undefined, order?: number): void;
59
+ /** Deliver a View event. Synchronous, as the Kernel's own delivery is. */
60
+ sendViewEvent(type: string, data?: unknown): void;
61
+ /** Emit on the Entity's event bus -- the channel Shadow Objects on one Entity talk to each other on. */
62
+ emit(eventName: string | symbol, ...args: unknown[]): void;
63
+ shadowObjects(): ShadowObjectType[];
64
+ /** The one Shadow Object on this Entity built from `constructa`. Throws for none and for more than one. */
65
+ shadowObjectOf<C extends AnyShadowObjectConstructor>(constructa: C): ShadowObjectInstance<C>;
66
+ describe(): ShadowObjectDescription[];
67
+ clearViewMessages(): void;
68
+ destroy(): void;
69
+ }
70
+ export interface TestKernelOptions {
71
+ /**
72
+ * The Registry to build on. Default: a fresh `new Registry()`, isolated from the default Registry
73
+ * and from every other test kernel. Pass `Registry.get()` for Shadow Objects that registered
74
+ * themselves through `@ShadowObject` without a registry of their own.
75
+ */
76
+ registry?: Registry;
77
+ /** Fail `dispose()` when unacknowledged reports of level `error` were recorded. Default: `true`. */
78
+ failOnKernelErrors?: boolean;
79
+ /** Keep the Kernel's logger output on the console as well as recording it. Default: `false`. */
80
+ echoKernelErrors?: boolean;
81
+ }
82
+ export interface TestKernel {
83
+ /** The Kernel itself -- the way out for everything this facade does not cover. */
84
+ readonly kernel: Kernel;
85
+ readonly registry: Registry;
86
+ /** What the Kernel reported through its logger since the last `clearErrors()`. */
87
+ readonly errors: readonly KernelErrorRecord[];
88
+ define(token: string, constructa: AnyShadowObjectConstructor): void;
89
+ route(token: string, targets: string[]): void;
90
+ importModule(module: ShadowObjectsModule): Promise<void>;
91
+ createEntity(token: string, props?: Record<string, unknown>, options?: CreateEntityOptions): TestEntity;
92
+ /**
93
+ * The handle for a uuid. `undefined` for a uuid this test kernel has never handed out a handle
94
+ * for and the Kernel does not hold; a handle it has already handed out keeps answering after its
95
+ * Entity is destroyed. A uuid a Shadow Object created through `testKernel.kernel.createEntity()`
96
+ * gets a handle here on first ask, and the same uuid always answers with the same handle.
97
+ */
98
+ entity(uuid: string): TestEntity | undefined;
99
+ settle(): Promise<void>;
100
+ clearErrors(): void;
101
+ dispose(): void;
102
+ }
103
+ export interface MountOptions {
104
+ props?: Record<string, unknown>;
105
+ /** Entity Contexts a synthetic parent Entity provides to the object under test. */
106
+ contexts?: Record<string | symbol, unknown>;
107
+ /** The token to register the constructor under. Default: a generated one. */
108
+ token?: string;
109
+ registry?: Registry;
110
+ failOnKernelErrors?: boolean;
111
+ echoKernelErrors?: boolean;
112
+ }
113
+ export interface MountedShadowObject<C> extends Omit<TestEntity, 'createChild' | 'destroy'> {
114
+ readonly instance: ShadowObjectInstance<C>;
115
+ readonly testKernel: TestKernel;
116
+ settle(): Promise<void>;
117
+ dispose(): void;
118
+ }
119
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/testing/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * The testing utility: a real Kernel for a unit test, with the ceremony taken off.
3
+ *
4
+ * A subpath rather than an `index.ts` export, for the same reason `model-context.js` is one -- it
5
+ * has no place in an application bundle, and none at all in the worker bundle. Nothing here imports
6
+ * a test runner: what a test asserts on are plain arrays, so vitest, jest, `node:test` and the
7
+ * browser mode are served alike. Importing this module registers nothing and touches no global.
8
+ */
9
+ export { createTestKernel } from './testing/createTestKernel.js';
10
+ export { mountShadowObject } from './testing/mountShadowObject.js';
11
+ export { type KernelErrorRecorder, recordKernelErrors } from './testing/recordKernelErrors.js';
12
+ export { settle } from './testing/settle.js';
13
+ export type { AnyShadowObjectConstructor, CreateEntityOptions, KernelErrorRecord, MountedShadowObject, MountOptions, ShadowObjectInstance, TestEntity, TestKernel, TestKernelOptions, ViewMessageRecord, } from './testing/types.js';
14
+ //# sourceMappingURL=testing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../src/testing.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAC,gBAAgB,EAAC,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAC,iBAAiB,EAAC,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAC,KAAK,mBAAmB,EAAE,kBAAkB,EAAC,MAAM,iCAAiC,CAAC;AAC7F,OAAO,EAAC,MAAM,EAAC,MAAM,qBAAqB,CAAC;AAC3C,YAAY,EACV,0BAA0B,EAC1B,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACZ,oBAAoB,EACpB,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC"}
package/src/testing.js ADDED
@@ -0,0 +1,11 @@
1
+ import { createTestKernel } from "./testing/createTestKernel.js";
2
+ import { mountShadowObject } from "./testing/mountShadowObject.js";
3
+ import { recordKernelErrors } from "./testing/recordKernelErrors.js";
4
+ import { settle } from "./testing/settle.js";
5
+ export {
6
+ createTestKernel,
7
+ mountShadowObject,
8
+ recordKernelErrors,
9
+ settle
10
+ };
11
+ //# sourceMappingURL=testing.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/testing.ts"],
4
+ "sourcesContent": ["/**\n * The testing utility: a real Kernel for a unit test, with the ceremony taken off.\n *\n * A subpath rather than an `index.ts` export, for the same reason `model-context.js` is one -- it\n * has no place in an application bundle, and none at all in the worker bundle. Nothing here imports\n * a test runner: what a test asserts on are plain arrays, so vitest, jest, `node:test` and the\n * browser mode are served alike. Importing this module registers nothing and touches no global.\n */\nexport {createTestKernel} from './testing/createTestKernel.js';\nexport {mountShadowObject} from './testing/mountShadowObject.js';\nexport {type KernelErrorRecorder, recordKernelErrors} from './testing/recordKernelErrors.js';\nexport {settle} from './testing/settle.js';\nexport type {\n AnyShadowObjectConstructor,\n CreateEntityOptions,\n KernelErrorRecord,\n MountedShadowObject,\n MountOptions,\n ShadowObjectInstance,\n TestEntity,\n TestKernel,\n TestKernelOptions,\n ViewMessageRecord,\n} from './testing/types.js';\n"],
5
+ "mappings": "AAQA,SAAQ,wBAAuB;AAC/B,SAAQ,yBAAwB;AAChC,SAAkC,0BAAyB;AAC3D,SAAQ,cAAa;",
6
+ "names": []
7
+ }
package/src/types.d.ts CHANGED
@@ -1,7 +1,8 @@
1
- import type { AnyEventNames, EventArgs, EventizedObject, on, once, SubscribeArgs } from '@spearwolf/eventize';
1
+ import type { AnyEventNames, ArgsFor, DefaultEventMap, EventArgs, EventizedObject, EventKeysOf, EventListenerMethods, EventMap, EventName, ListenerFor, ListenerFuncType, MultiArgsFor, NonTypedEmitter, SubscribeArgs, UnsubscribeFunc } from '@spearwolf/eventize';
2
2
  import type { CompareFunc, createEffect, createMemo, createSignal, Signal, SignalReader } from '@spearwolf/signalize';
3
- import type { AppliedChangeTrail, ComponentChangeType, ImportedModule } from './constants.js';
3
+ import type { AppliedChangeTrail, ComponentChangeType, ImportedModule, Inspect, Inspected } from './constants.js';
4
4
  import type { Entity } from './in-the-dark/Entity.js';
5
+ import type { InspectRequest, KernelSnapshot } from './inspect/types.js';
5
6
  import type { Kernel, Registry } from './shadow-objects.js';
6
7
  export type ChangeTrailType = IComponentChangeType[];
7
8
  export type TransferablesType = Transferable[];
@@ -14,7 +15,18 @@ export interface IComponentEvent {
14
15
  type: string;
15
16
  data: unknown;
16
17
  }
17
- export type ComponentPropertiesType = [string, unknown][];
18
+ /**
19
+ * A list of property entries in a Change Trail. An entry carries a key together with its
20
+ * value; an entry that names only the key counts as set, without carrying a value — the
21
+ * Entity behind it reads the property as `undefined`.
22
+ *
23
+ * The one-element form is written by `ViewComponent.setPropertyWithoutValue()`, which goes through
24
+ * `ComponentContext` into the bookkeeping of `ComponentChanges`; `setProperty(name, undefined)`
25
+ * stands beside it and is a removal. It also arrives from outside, in a Change Trail a caller
26
+ * assembles itself — `Kernel.createEntity()` and `Kernel.changeProperties()` are the two entrances
27
+ * that read it.
28
+ */
29
+ export type ComponentPropertiesType = ([string] | [string, unknown])[];
18
30
  export interface ICreateEntitiesChange extends IComponentChange {
19
31
  type: ComponentChangeType.CreateEntities;
20
32
  token: string;
@@ -56,14 +68,51 @@ export interface ImportedModuleEvent {
56
68
  type: typeof ImportedModule;
57
69
  url?: string;
58
70
  error?: string;
71
+ /**
72
+ * The name the error called itself in the worker. Structured cloning does not carry an
73
+ * error class, so this and `error` are what the view side rebuilds one from. Absent means
74
+ * the sender named no class, and the view reads it as `Error`.
75
+ */
76
+ errorName?: string;
59
77
  }
60
78
  export interface AppliedChangeTrailEvent {
61
79
  type: typeof AppliedChangeTrail;
62
80
  serial?: number;
63
81
  error?: string;
82
+ /** The name the error called itself in the worker; see {@link ImportedModuleEvent.errorName}. */
83
+ errorName?: string;
84
+ /**
85
+ * How many entries of the change trail the Kernel applied before it stopped. Stands only
86
+ * next to an `error`, and only where the Kernel itself could say so; an absent field means
87
+ * nothing is known about how far the trail got.
88
+ */
89
+ appliedCount?: number;
90
+ }
91
+ /**
92
+ * What goes on the wire for an `inspect()` over a worker: the request as the caller gave it, and
93
+ * the serial the answer is matched by. The request is plain data and survives structured cloning.
94
+ */
95
+ export interface InspectEvent {
96
+ type: typeof Inspect;
97
+ serial: number;
98
+ request: InspectRequest;
99
+ }
100
+ /**
101
+ * The worker's answer to an {@link InspectEvent}: the snapshot, or the two fields of a throw that
102
+ * survive structured cloning -- see {@link ImportedModuleEvent.errorName}. Exactly one of
103
+ * `snapshot` and `error` is set by the router; a reply carrying neither is rejected by the view
104
+ * side rather than read through. `serial` is what the request carried; `RemoteWorkerEnv` always
105
+ * sends one, and matches the answer by it.
106
+ */
107
+ export interface InspectedEvent {
108
+ type: typeof Inspected;
109
+ serial: number;
110
+ snapshot?: KernelSnapshot;
111
+ error?: string;
112
+ errorName?: string;
64
113
  }
65
114
  export type EntityApi = Readonly<Pick<Entity, 'uuid' | 'order' | 'hasParent' | 'propKeys' | 'propEntries' | 'kernel'> & {
66
- parent?: EntityApi;
115
+ parent?: EntityApi | undefined;
67
116
  children: readonly EntityApi[];
68
117
  traverse(callback: (entity: EntityApi) => unknown): void;
69
118
  }>;
@@ -74,7 +123,41 @@ export interface ProvideContextOptions<T> extends SignalValueOptions<T> {
74
123
  clearOnDestroy?: boolean;
75
124
  }
76
125
  export type Maybe<T = unknown> = NonNullable<T> | undefined;
77
- export interface ShadowObjectCreationAPI {
126
+ /**
127
+ * The event map of a Shadow Object read off its own shape: every method is an event of that name,
128
+ * carrying the method's parameters as its argument tuple. The map an `emit()` on the entity is
129
+ * checked against when it names a Shadow Object that listens there -- see `ShadowObjectCreationAPI`.
130
+ *
131
+ * It is the runtime read back into a type. The Kernel attaches every Shadow Object to its Entity as
132
+ * an eventize listener object, so an `emit('onPowerUp', 100)` on the entity calls `onPowerUp(100)`
133
+ * on each Shadow Object that has such a method. Every method takes part, the ones nobody meant as
134
+ * an event included -- and that is what the dispatch does, too. A `symbol`-keyed method, the
135
+ * lifecycle hooks among them, stays out: the eventize maps treat a symbol as the escape hatch. Two
136
+ * Shadow Objects on one entity make `EventsOf<A> & EventsOf<B>`.
137
+ */
138
+ export type EventsOf<L> = {
139
+ [K in keyof L as L[K] extends (...args: any[]) => any ? (K extends EventName ? K : never) : never]: L[K] extends (...args: infer A) => any ? A : never;
140
+ };
141
+ /** `true` for a map that declares dynamic names -- eventize's `DefaultEventMap`, or one with an index signature. */
142
+ type IsLooseMap<T> = string extends EventKeysOf<T> ? true : false;
143
+ /**
144
+ * Where a subscription on the entity is checked against the map, this closes the loose forms for a
145
+ * typed map: a rest parameter of `never` is an overload no call matches. The same way eventize closes
146
+ * its loose overloads for a typed emitter.
147
+ */
148
+ type LooseSubscribeArgs<TEvents> = IsLooseMap<TEvents> extends true ? SubscribeArgs : never;
149
+ type LooseEmitNames<TEvents> = IsLooseMap<TEvents> extends true ? AnyEventNames : never;
150
+ /**
151
+ * What a Shadow Object constructor is handed.
152
+ *
153
+ * `TEvents` is the event map of the entity bus as this Shadow Object sees it, in the shape eventize
154
+ * takes -- `{[eventName]: argumentTuple}` -- and it types the entity-implicit forms of `on()`,
155
+ * `once()` and `emit()`. `EventsOf<OtherShadowObject>` derives it from the Shadow Object that is meant
156
+ * to receive the event. Without it every form is as loose as eventize's default map, and the target
157
+ * forms are typed by the target's own map either way. The map is a compile-time contract: nothing
158
+ * at runtime holds two Shadow Objects on one entity to the same one.
159
+ */
160
+ export interface ShadowObjectCreationAPI<TEvents extends EventMap = DefaultEventMap> {
78
161
  entity: EntityApi;
79
162
  dispatchMessageToView(type: string, data?: unknown, transferables?: TransferablesType, traverseChildren?: boolean): void;
80
163
  provideContext<T = unknown>(name: string | symbol, sourceOrInitialValue?: T | SignalReader<T> | SignalReader<T | undefined>, options?: ProvideContextOptions<T> | CompareFunc<T | undefined>): Signal<Maybe<T>>;
@@ -89,38 +172,125 @@ export interface ShadowObjectCreationAPI {
89
172
  };
90
173
  createResource<T = unknown>(factory: () => T | undefined, cleanup?: (resource: NonNullable<T>) => unknown): Signal<Maybe<T>>;
91
174
  createEffect: typeof createEffect;
92
- createSignal<T = unknown>(...args: Parameters<typeof createSignal<T>>): ReturnType<typeof createSignal<T>>;
175
+ createSignal: typeof createSignal;
93
176
  createMemo<T = unknown>(...args: Parameters<typeof createMemo<T>>): SignalReader<T>;
94
- on(...args: SubscribeArgs): ReturnType<typeof on>;
95
- on(...args: [object, ...SubscribeArgs]): ReturnType<typeof on>;
96
- once(...args: SubscribeArgs): ReturnType<typeof once>;
97
- once(...args: [object, ...SubscribeArgs]): ReturnType<typeof once>;
177
+ /**
178
+ * Subscribe on the *entity* of this shadow object, or on a *target* given in front. Every form
179
+ * eventize's standalone `on()` takes; the subscription ends with the shadow object, or earlier
180
+ * through the handle. On the entity the event names and the listener are checked against `TEvents`;
181
+ * on a target, against the target's own map. An object followed by anything is the target, an
182
+ * object standing alone is a listener object on the entity.
183
+ */
184
+ on<K extends EventKeysOf<TEvents> | symbol>(eventName: K, listener: ListenerFor<TEvents, K>): UnsubscribeFunc;
185
+ on<K extends EventKeysOf<TEvents> | symbol>(eventName: K, priority: number, listener: ListenerFor<TEvents, K>): UnsubscribeFunc;
186
+ on<K extends EventKeysOf<TEvents>>(eventNames: Array<K | [K, number]>, listener: (...args: MultiArgsFor<TEvents, K>) => void): UnsubscribeFunc;
187
+ on<K extends EventKeysOf<TEvents>>(eventNames: Array<K | [K, number]>, priority: number, listener: (...args: MultiArgsFor<TEvents, K>) => void): UnsubscribeFunc;
188
+ on<K extends EventKeysOf<TEvents>>(eventNames: K | K[], methodName: EventName, listenerObject: object): UnsubscribeFunc;
189
+ on<K extends EventKeysOf<TEvents>>(eventNames: K | K[], priority: number, methodName: EventName, listenerObject: object): UnsubscribeFunc;
190
+ on(listenerObject: EventListenerMethods<TEvents>): UnsubscribeFunc;
191
+ on(priority: number, listenerObject: EventListenerMethods<TEvents>): UnsubscribeFunc;
192
+ on(listener: ListenerFuncType): UnsubscribeFunc;
193
+ on(priority: number, listener: ListenerFuncType): UnsubscribeFunc;
194
+ on(priority: number, methodName: EventName, listenerObject: object): UnsubscribeFunc;
195
+ on(...args: LooseSubscribeArgs<TEvents>): UnsubscribeFunc;
196
+ on<M extends EventMap, K extends EventKeysOf<M> | symbol>(target: EventizedObject<M>, eventName: K, listener: ListenerFor<M, K>): UnsubscribeFunc;
197
+ on<M extends EventMap, K extends EventKeysOf<M> | symbol>(target: EventizedObject<M>, eventName: K, priority: number, listener: ListenerFor<M, K>): UnsubscribeFunc;
198
+ on<M extends EventMap, K extends EventKeysOf<M>>(target: EventizedObject<M>, eventNames: Array<K | [K, number]>, listener: (...args: MultiArgsFor<M, K>) => void): UnsubscribeFunc;
199
+ on<M extends EventMap>(target: EventizedObject<M>, listenerObject: EventListenerMethods<M>): UnsubscribeFunc;
200
+ on<T extends object>(target: NonTypedEmitter<T>, ...args: SubscribeArgs): UnsubscribeFunc;
201
+ /**
202
+ * Subscribe on the *entity* of this shadow object, or on a *target* given in front. Every form
203
+ * eventize's standalone `once()` takes; the subscription ends with the shadow object, or earlier
204
+ * through the handle. On the entity the event names and the listener are checked against `TEvents`;
205
+ * on a target, against the target's own map. An object followed by anything is the target, an
206
+ * object standing alone is a listener object on the entity.
207
+ */
208
+ once<K extends EventKeysOf<TEvents> | symbol>(eventName: K, listener: ListenerFor<TEvents, K>): UnsubscribeFunc;
209
+ once<K extends EventKeysOf<TEvents> | symbol>(eventName: K, priority: number, listener: ListenerFor<TEvents, K>): UnsubscribeFunc;
210
+ once<K extends EventKeysOf<TEvents>>(eventNames: Array<K | [K, number]>, listener: (...args: MultiArgsFor<TEvents, K>) => void): UnsubscribeFunc;
211
+ once<K extends EventKeysOf<TEvents>>(eventNames: Array<K | [K, number]>, priority: number, listener: (...args: MultiArgsFor<TEvents, K>) => void): UnsubscribeFunc;
212
+ once<K extends EventKeysOf<TEvents>>(eventNames: K | K[], methodName: EventName, listenerObject: object): UnsubscribeFunc;
213
+ once<K extends EventKeysOf<TEvents>>(eventNames: K | K[], priority: number, methodName: EventName, listenerObject: object): UnsubscribeFunc;
214
+ once(listenerObject: EventListenerMethods<TEvents>): UnsubscribeFunc;
215
+ once(priority: number, listenerObject: EventListenerMethods<TEvents>): UnsubscribeFunc;
216
+ once(listener: ListenerFuncType): UnsubscribeFunc;
217
+ once(priority: number, listener: ListenerFuncType): UnsubscribeFunc;
218
+ once(priority: number, methodName: EventName, listenerObject: object): UnsubscribeFunc;
219
+ once(...args: LooseSubscribeArgs<TEvents>): UnsubscribeFunc;
220
+ once<M extends EventMap, K extends EventKeysOf<M> | symbol>(target: EventizedObject<M>, eventName: K, listener: ListenerFor<M, K>): UnsubscribeFunc;
221
+ once<M extends EventMap, K extends EventKeysOf<M> | symbol>(target: EventizedObject<M>, eventName: K, priority: number, listener: ListenerFor<M, K>): UnsubscribeFunc;
222
+ once<M extends EventMap, K extends EventKeysOf<M>>(target: EventizedObject<M>, eventNames: Array<K | [K, number]>, listener: (...args: MultiArgsFor<M, K>) => void): UnsubscribeFunc;
223
+ once<M extends EventMap>(target: EventizedObject<M>, listenerObject: EventListenerMethods<M>): UnsubscribeFunc;
224
+ once<T extends object>(target: NonTypedEmitter<T>, ...args: SubscribeArgs): UnsubscribeFunc;
98
225
  onViewEvent(callback: (type: string, data: unknown) => any): void;
99
226
  /**
100
227
  * Emit an event on the *entity* associated with this shadow object.
101
228
  *
229
+ * A listener that throws ends the delivery where it stands and the error reaches this call. That
230
+ * is deliberate, and it is the one dispatch in the library that works this way: the listeners
231
+ * belong to whoever emits here, so a failure is its own bug and belongs where it happened.
232
+ *
102
233
  * @param eventNames - The name(s) of the event(s) to emit.
103
234
  * @param eventArgs - Arguments to pass to the event listeners.
104
235
  */
105
- emit(eventNames: AnyEventNames, ...eventArgs: EventArgs): void;
236
+ emit<K extends EventKeysOf<TEvents> | symbol>(eventName: K, ...eventArgs: ArgsFor<TEvents, K>): void;
237
+ emit<K extends EventKeysOf<TEvents> | symbol>(eventNames: K[], ...eventArgs: ArgsFor<TEvents, K>): void;
238
+ emit(eventNames: LooseEmitNames<TEvents>, ...eventArgs: EventArgs): void;
106
239
  /**
107
- * Emit an event on a specific *target* object.
240
+ * Emit an event on a specific *target* object -- another Entity, a Shadow Object, any eventized
241
+ * object, or a plain one: eventize duck-types a target, so an object without listeners is a no-op.
242
+ * The event names and arguments are checked against the target's own map where it has one.
108
243
  *
109
244
  * @param target - The object to emit the event on.
110
245
  * @param eventNames - The name(s) of the event(s) to emit.
111
246
  * @param eventArgs - Arguments to pass to the event listeners.
112
247
  */
113
- emit(target: EventizedObject, eventNames: AnyEventNames, ...eventArgs: EventArgs): void;
248
+ emit<M extends EventMap, K extends EventKeysOf<M> | symbol>(target: EventizedObject<M>, eventName: K, ...eventArgs: ArgsFor<M, K>): void;
249
+ emit<M extends EventMap, K extends EventKeysOf<M> | symbol>(target: EventizedObject<M>, eventNames: K[], ...eventArgs: ArgsFor<M, K>): void;
250
+ emit<T extends object>(target: NonTypedEmitter<T>, eventNames: AnyEventNames, ...eventArgs: EventArgs): void;
114
251
  onDestroy(callback: () => any): void;
115
252
  }
116
253
  export interface ShadowObjectConstructor {
117
- new (params: ShadowObjectCreationAPI): {};
254
+ new (params: ShadowObjectCreationAPI): object;
255
+ /** The name the Kernel reports a Shadow Object built from this constructor under; without it, the constructor's `name`. */
118
256
  displayName?: string;
119
257
  }
120
258
  export interface ShadowObjectConstructorFunc {
121
259
  (params: ShadowObjectCreationAPI): object | undefined | void;
260
+ /** The name the Kernel reports a Shadow Object built from this constructor under; without it, the constructor's `name`. */
122
261
  displayName?: string;
123
262
  }
263
+ /** The four lifecycle hooks a Shadow Object can implement, by the name of their symbol. */
264
+ export type LifecycleHookName = 'onCreate' | 'onDestroy' | 'onParentChanged' | 'onViewEvent';
265
+ /**
266
+ * What a creation scope knows about its Shadow Object: the display name and the five name lists
267
+ * the creation API filled while the constructor ran. Read-only; a torn-down scope answers empty
268
+ * lists.
269
+ */
270
+ export interface ShadowObjectScopeDescription {
271
+ displayName: string;
272
+ usesProperties: string[];
273
+ usesContexts: (string | symbol)[];
274
+ usesParentContexts: (string | symbol)[];
275
+ providesContexts: (string | symbol)[];
276
+ providesGlobalContexts: (string | symbol)[];
277
+ }
278
+ /** {@link ShadowObjectScopeDescription} plus what only the Kernel can add: the tokens and the hooks. */
279
+ export interface ShadowObjectDescription extends ShadowObjectScopeDescription {
280
+ /** The tokens the constructor is defined under in the Kernel's Registry, in definition order. */
281
+ definedUnder: string[];
282
+ /** Which of the four lifecycle hooks the instance implements. */
283
+ hooks: LifecycleHookName[];
284
+ }
285
+ /** The three maps of a Registry, with constructors reduced to display names. */
286
+ export interface RegistryDescription {
287
+ /** token -> display names of the constructors defined under it, in definition order. */
288
+ tokens: Record<string, string[]>;
289
+ /** token -> tokens it routes to. */
290
+ routes: Record<string, string[]>;
291
+ /** `@prop` and `token@prop` keys -> tokens (property routes). */
292
+ propRoutes: Record<string, string[]>;
293
+ }
124
294
  export type ShadowObjectType = EventizedObject;
125
295
  export type NamespaceType = string | symbol;
126
296
  export type ShadowObjectsModuleInitializer = (shadowObjects: {
@@ -134,4 +304,5 @@ export interface ShadowObjectsModule {
134
304
  routes?: Record<string, string[]>;
135
305
  initialize?: ShadowObjectsModuleInitializer;
136
306
  }
307
+ export {};
137
308
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,53 @@
1
1
  export declare const CONSOLE_LOGGER = "ConsoleLogger";
2
2
  export declare const CONSOLE_LOGGER_STORAGE = "ConsoleLoggerStorage";
3
+ declare const ConsoleLogger$: unique symbol;
4
+ export interface ConsoleLoggerConfig {
5
+ [ConsoleLogger$]?: boolean;
6
+ enable: boolean;
7
+ debug: boolean;
8
+ info: boolean;
9
+ warn: boolean;
10
+ 'styles.debug': string;
11
+ 'styles.info': string;
12
+ 'styles.warn': string;
13
+ 'styles.error': string;
14
+ [key: string]: string | boolean | undefined;
15
+ }
16
+ export interface ConsoleLoggerControl {
17
+ [ConsoleLogger$]?: boolean;
18
+ enable: boolean;
19
+ debug: boolean;
20
+ info: boolean;
21
+ warn: boolean;
22
+ }
23
+ /**
24
+ * The key a config value is stored under. Prefixed with {@link CONSOLE_LOGGER} when it goes
25
+ * into a real Storage, where it shares the namespace with everything else on this origin.
26
+ */
27
+ export declare const consoleLoggerConfigKey: (key: string | string[]) => string;
28
+ /**
29
+ * Reads a raw config value through whatever storage the capability probe accepted, or from the
30
+ * fallback object store when none did. The way to reach the config from outside this module:
31
+ * `globalThis.localStorage` may be missing, inert or hostile, and asking it directly throws.
32
+ */
33
+ export declare const loadConsoleLoggerConfig: (key: string | string[], defaultValue: string) => string;
34
+ /**
35
+ * Installs a config object as the fallback store, bypassing the storage probe. `WorkerRuntime`
36
+ * calls this with the config a `RemoteWorkerEnv` forwards from the main thread, where there is no
37
+ * `localStorage` to probe in the first place.
38
+ *
39
+ * Once a logger exists in such a thread, `ConsoleLogger.sharedConfig` *is* that store, and the
40
+ * values are written into it rather than a fresh object taking its place in the slot: the shared
41
+ * switches reach every logger of the thread, the ones already built included. One flag stays
42
+ * behind -- a logger reads its own `<namespace>.enable` key when it is built, and a config that
43
+ * arrives afterwards no longer moves it.
44
+ */
45
+ export declare function setConsoleLoggerStorage(config: ConsoleLoggerConfig): void;
3
46
  export declare class ConsoleLogger {
4
47
  #private;
5
48
  namespace?: string;
6
49
  enable: boolean;
7
- static sharedConfig: {
8
- enable: boolean;
9
- debug: boolean;
10
- info: boolean;
11
- warn: boolean;
12
- 'styles.debug': string;
13
- 'styles.info': string;
14
- 'styles.warn': string;
15
- 'styles.error': string;
16
- };
50
+ static sharedConfig: ConsoleLoggerConfig;
17
51
  static get isEnabled(): boolean;
18
52
  static get isDebug(): boolean;
19
53
  static sharedStyles: {
@@ -33,4 +67,5 @@ export declare class ConsoleLogger {
33
67
  warn(...args: any[]): void;
34
68
  error(...args: any[]): void;
35
69
  }
70
+ export {};
36
71
  //# sourceMappingURL=ConsoleLogger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConsoleLogger.d.ts","sourceRoot":"","sources":["../../../src/utils/ConsoleLogger.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,kBAAkB,CAAC;AAC9C,eAAO,MAAM,sBAAsB,yBAA6B,CAAC;AAkDjE,qBAAa,aAAa;;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,MAAM,UAAQ;IAEd,MAAM,CAAC,YAAY;;;;;;;;;MAWjB;IAEF,MAAM,KAAK,SAAS,YAEnB;IAED,MAAM,KAAK,OAAO,YAEjB;IAED,MAAM,CAAC,YAAY;eAIF,MAAM;cAMP,MAAM;cAMN,MAAM;eAML,MAAM;MAGrB;IAEF,MAAM,CAAC,UAAU;gBA4EL,SAAS,EAAE,MAAM;IAa7B,IAAI,SAAS,YAEZ;IAED,IAAI,OAAO,YAEV;IAED,IAAI,MAAM,YAET;IAED,IAAI,MAAM,YAET;IAED,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE;IAIpB,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE;IAInB,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE;IAInB,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE;CAOrB"}
1
+ {"version":3,"file":"ConsoleLogger.d.ts","sourceRoot":"","sources":["../../../src/utils/ConsoleLogger.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,kBAAkB,CAAC;AAC9C,eAAO,MAAM,sBAAsB,yBAA6B,CAAC;AAmDjE,QAAA,MAAM,cAAc,EAAE,OAAO,MAAmC,CAAC;AAEjE,MAAM,WAAW,mBAAmB;IAClC,CAAC,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC;IAC3B,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;CAC7C;AAED,MAAM,WAAW,oBAAoB;IACnC,CAAC,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC;IAC3B,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;CACf;AAgDD;;;GAGG;AACH,eAAO,MAAM,sBAAsB,QAAS,MAAM,GAAG,MAAM,EAAE,KAAG,MAAyB,CAAC;AAE1F;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,QAAS,MAAM,GAAG,MAAM,EAAE,gBAAgB,MAAM,KAAG,MACxC,CAAC;AAEhD;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI,CASzE;AAED,qBAAa,aAAa;;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,MAAM,UAAQ;IAEd,MAAM,CAAC,YAAY,EAAE,mBAAmB,CAWtC;IAEF,MAAM,KAAK,SAAS,YAEnB;IAED,MAAM,KAAK,OAAO,YAEjB;IAED,MAAM,CAAC,YAAY;eAIF,MAAM;cAMP,MAAM;cAMN,MAAM;eAML,MAAM;MAGrB;IAEF,MAAM,CAAC,UAAU,SA8DhB;IAED,YAAY,SAAS,EAAE,MAAM,EAY5B;IAED,IAAI,SAAS,YAEZ;IAED,IAAI,OAAO,YAEV;IAED,IAAI,MAAM,YAET;IAED,IAAI,MAAM,YAET;IAED,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,QAGnB;IAED,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,QAGlB;IAED,IAAI,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,QAGlB;IAID,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,QAEnB;CAKF"}