marionette 5.0.0-beta.3 → 5.0.0-beta.5

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 (61) hide show
  1. package/changelog.md +37 -1
  2. package/dist/agent-skill/SKILL.md +12 -3
  3. package/dist/docs/config/api-contracts/inventory.json +119 -65
  4. package/dist/docs/config/api-contracts/semantics.json +59 -16
  5. package/dist/docs/config/diagnostics/catalog.json +16 -0
  6. package/dist/docs/docs/agent-tools.md +2 -2
  7. package/dist/docs/docs/agents.md +1 -1
  8. package/dist/docs/docs/application-effects.md +65 -3
  9. package/dist/docs/docs/application-refresh.md +1 -1
  10. package/dist/docs/docs/beta.md +7 -5
  11. package/dist/docs/docs/compact-reference.md +4 -3
  12. package/dist/docs/docs/data.api.md +9 -6
  13. package/dist/docs/docs/events.class.md +26 -29
  14. package/dist/docs/docs/events.md +7 -0
  15. package/dist/docs/docs/installation.md +9 -9
  16. package/dist/docs/docs/marionette.application.md +226 -83
  17. package/dist/docs/docs/marionette.region.md +7 -0
  18. package/dist/docs/docs/marionette.state.md +5 -0
  19. package/dist/docs/docs/migration-from-v4.md +6 -6
  20. package/dist/docs/docs/optional-backbone.md +1 -1
  21. package/dist/docs/docs/readme.md +3 -3
  22. package/dist/docs/docs/routing.md +2 -2
  23. package/dist/docs/docs/task-recipes.md +137 -0
  24. package/dist/docs/docs/terminology.md +3 -3
  25. package/dist/docs/docs/testing.md +7 -5
  26. package/dist/docs/docs/typescript.md +10 -6
  27. package/dist/docs/docs/view.lifecycle.md +5 -0
  28. package/dist/docs/docs/view.rendering.md +27 -0
  29. package/dist/docs/manifest.json +59 -39
  30. package/dist/docs/packages/adapters/readme.md +5 -5
  31. package/dist/docs/packages/data/readme.md +9 -6
  32. package/dist/docs/packages/radio/readme.md +1 -1
  33. package/dist/docs/packages/utils/readme.md +1 -1
  34. package/dist/docs/readme.md +3 -3
  35. package/dist/docs/skills/marionette/SKILL.md +12 -3
  36. package/dist/docs/starter/package.json +3 -3
  37. package/dist/docs/test/fixtures/docs-application-guides/effects.mjs +222 -0
  38. package/dist/docs/test/fixtures/docs-application-guides/preparation.mjs +90 -0
  39. package/dist/docs/test/fixtures/docs-application-guides/validate.mjs +7 -3
  40. package/dist/docs/test/fixtures/docs-prerendered-content/literal-template.mjs +58 -0
  41. package/dist/docs/test/fixtures/docs-prerendered-content/validate.mjs +3 -0
  42. package/dist/docs/test/fixtures/docs-region-lifecycle/retry-delete.mjs +190 -0
  43. package/dist/docs/test/fixtures/docs-region-lifecycle/validate.mjs +3 -0
  44. package/dist/docs/test/fixtures/docs-routing/refresh.mjs +274 -0
  45. package/dist/docs/test/fixtures/docs-routing/validate.mjs +1 -1
  46. package/dist/docs/upgradeGuide.md +102 -1
  47. package/dist/marionette.cjs +103 -20
  48. package/dist/marionette.cjs.map +1 -1
  49. package/dist/marionette.js +103 -20
  50. package/dist/marionette.js.map +1 -1
  51. package/dist/marionette.min.js +1 -1
  52. package/dist/marionette.min.js.map +1 -1
  53. package/dist/marionette.umd.js +104 -21
  54. package/dist/marionette.umd.js.map +1 -1
  55. package/dist/types/cjs/index.d.ts +1 -1
  56. package/dist/types/cjs/modules/application.d.ts +23 -8
  57. package/dist/types/esm/index.d.ts +1 -1
  58. package/dist/types/esm/modules/application.d.ts +23 -8
  59. package/package.json +3 -3
  60. package/readme.md +1 -1
  61. package/upgradeGuide.md +102 -1
package/changelog.md CHANGED
@@ -1,4 +1,40 @@
1
- ### Unreleased
1
+ ### v5.0.0-beta.5
2
+
3
+ > An Application can keep its children without keeping yesterday’s living room.
4
+
5
+ * Separate Application root ownership from its host Region. Stopping an Application
6
+ releases its prepared and displayed roots without clearing another Application's
7
+ replacement in a borrowed Region. Prepare roots with `setView()` and hand them
8
+ to the Region with `showView()`; displaying a View directly through a Region
9
+ does not transfer Application ownership.
10
+ * Accept an existing Region in `start({ region })` and `restart({ region })`, so
11
+ retained child Applications can follow recreated parent layouts. Constructor
12
+ Region definitions remain owned; startup Regions are borrowed. Use `restart()`
13
+ when changing the host of an active Application.
14
+ * Add `childApps` constructor maps or functions for static, no-argument children.
15
+ Construct and register them once before parent initialization; activation stays
16
+ explicit. Subclass and option declarations replace inherited maps. Use
17
+ `addChildApp()` for dynamic children or constructor arguments.
18
+ * Expand executable lifecycle and migration guidance, and direct documentation
19
+ retrieval toward relevant contracts. These changes do not establish measured
20
+ agent-effectiveness or stable-v5 readiness.
21
+ * Shard Windows release certification while retaining the complete fixture gate.
22
+
23
+ ### v5.0.0-beta.4
24
+
25
+ > Events announce. Preparation waits. Apparently those needed separate job descriptions.
26
+
27
+ * Separate Application preparation from lifecycle notifications. Await
28
+ `prepareStart`, `prepareStop`, and `prepareDestroy`; `onBefore*` hooks and
29
+ `before:*` events are synchronous notifications. Pass `prepareStart`'s resolved
30
+ value unchanged to `onStart` and `start` as the third argument. Migrate async
31
+ `onBefore*` work to the corresponding preparation method.
32
+ * Preserve inferred startup result types for optional preparation methods, including
33
+ `undefined` when the method is absent.
34
+ * Include referenced consumer resources in documentation exports and keep maintainer
35
+ material out of the packaged consumer documentation.
36
+ * Clarify packaged and copied agent-skill helper paths, with executable lookup
37
+ examples checked against the installed documentation.
2
38
 
3
39
  ### v5.0.0-beta.3
4
40
 
@@ -11,11 +11,20 @@ choices. This skill does not authorize dependency upgrades.
11
11
  ## Locate matching docs
12
12
 
13
13
  Resolve the package from the application workspace, not the copied skill directory
14
- or a neighboring monorepo package. The read-only helper requires Node 24 or later:
14
+ or a neighboring monorepo package. The read-only helper requires Node 24 or later.
15
+ Its path is `scripts/docs.mjs` relative to the directory containing this `SKILL.md`:
16
+
17
+ - In the npm package, that directory is `<package-root>/dist/agent-skill/`.
18
+ - After copying the skill, it is the copied directory, such as
19
+ `/path/to/application/.agents/skills/marionette/`.
20
+
21
+ Replace `/path/to/skill-directory` with that directory's absolute path and
22
+ `/path/to/application` with the application's absolute path. These commands work
23
+ from any working directory:
15
24
 
16
25
  ```sh
17
- node /path/to/marionette/scripts/docs.mjs --project /path/to/application --list
18
- node /path/to/marionette/scripts/docs.mjs --project /path/to/application --page docs/agents.md
26
+ node "/path/to/skill-directory/scripts/docs.mjs" --project "/path/to/application" --list
27
+ node "/path/to/skill-directory/scripts/docs.mjs" --project "/path/to/application" --page docs/agents.md
19
28
  ```
20
29
 
21
30
  These are lookup options, not a required sequence. `--list` returns provenance and
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "authority": "authored TypeScript and explicit public behavioral evidence",
4
- "semanticsSha256": "c007c7b263af096f58e58b22347ff1b67c7a4f66abb63b4a2be5d2b73ecd9e30",
4
+ "semanticsSha256": "077157bce1349db05f4e0870f4c4bce89077b3b0d227da7ec485034388c79074",
5
5
  "entrypoints": [
6
6
  {
7
7
  "name": "marionette",
8
- "version": "5.0.0-beta.3",
8
+ "version": "5.0.0-beta.5",
9
9
  "kind": "runtime",
10
10
  "source": "src/index.ts",
11
11
  "conditions": {
@@ -39,7 +39,7 @@
39
39
  "members": {
40
40
  "apply": "(receiver: object, args: IArguments | [options?: ApplicationOptions | undefined]) => void",
41
41
  "call": "(receiver: object, options?: ApplicationOptions | undefined) => void",
42
- "extend": "<Added extends object = {}, AddedStatics extends object = {}>(this: Added extends { constructor: (...args: never[]) => unknown; } ? object : (this: object, ...args: never[]) => unknown, prototypeProperties?: (Added & ThisType<Merge<ApplicationInstance<Merge<DefaultOptions<Added>, OptionsFor<ArgumentsFor<Added, [options?: ApplicationOptions | undefined]>>>, SuppliedState<Added, Added extends { createState: (...args: never[]) => infer State; } ? State : object>>, \"options\" extends keyof Added ? Omit<Added, keyof Added & \"options\"> : Added>>) | undefined, staticProperties?: (AddedStatics & ThisType<ApplicationConstructor<Added, ArgumentsFor<Added, [options?: ApplicationOptions | undefined]>, SuppliedState<Added, Added extends { createState: (...args: never[]) => infer State; } ? State : object>, AddedStatics>>) | undefined) => ApplicationConstructor<Added, ArgumentsFor<Added, [options?: ApplicationOptions | undefined]>, SuppliedState<Added, Added extends { createState: (...args: never[]) => infer State; } ? State : object>, AddedStatics>",
42
+ "extend": "<Added extends object = {}, AddedStatics extends object = {}>(this: Added extends { constructor: (...args: never[]) => unknown; } ? object : (this: object, ...args: never[]) => unknown, prototypeProperties?: (Added & ThisType<Merge<ApplicationInstance<Merge<DefaultOptions<Added>, OptionsFor<ArgumentsFor<Added, [options?: ApplicationOptions | undefined]>>>, SuppliedState<Added, Added extends { createState: (...args: never[]) => infer State; } ? State : object>, StartResultFor<Added>>, \"options\" extends keyof Added ? Omit<Added, keyof Added & \"options\"> : Added>>) | undefined, staticProperties?: (AddedStatics & ThisType<ApplicationConstructor<Added, ArgumentsFor<Added, [options?: ApplicationOptions | undefined]>, SuppliedState<Added, Added extends { createState: (...args: never[]) => infer State; } ? State : object>, AddedStatics>>) | undefined) => ApplicationConstructor<Added, ArgumentsFor<Added, [options?: ApplicationOptions | undefined]>, SuppliedState<Added, Added extends { createState: (...args: never[]) => infer State; } ? State : object>, AddedStatics>",
43
43
  "setStateApi": "<Receiver extends StateApiClass, Mixin extends object>(this: Receiver, mixin?: string | number | bigint | boolean | symbol | (Mixin & Partial<StateApi<never>>) | null | undefined) => Receiver"
44
44
  },
45
45
  "callableMembers": [
@@ -49,20 +49,21 @@
49
49
  "setStateApi"
50
50
  ],
51
51
  "construct": [
52
- "<Provided extends [options?: ApplicationOptions | undefined] = [options?: ApplicationOptions | undefined]>(...args: Provided): ApplicationInstance<object & OptionsFor<Provided>, SuppliedState<Provided[0], object>>"
52
+ "<Provided extends [options?: ApplicationOptions | undefined] = [options?: ApplicationOptions | undefined]>(...args: Provided): ApplicationInstance<object & OptionsFor<Provided>, SuppliedState<Provided[0], object>, unknown>"
53
53
  ],
54
54
  "instance": {
55
55
  "addChildApp": "<Child extends ApplicationInstance<object, unknown>>(name: string, application: Child) => Child",
56
56
  "bindEvents": "<Receiver extends Listener>(this: Receiver, entity?: false | \"\" | 0 | 0n | EventSource | null | undefined, bindings?: false | object | \"\" | 0 | 0n | null | undefined) => Receiver",
57
57
  "bindRequests": "<Receiver>(this: Receiver, channel?: false | \"\" | 0 | 0n | ReplyChannel | null | undefined, bindings?: false | object | \"\" | 0 | 0n | null | undefined) => Receiver",
58
58
  "channelName": "?string | (() => string) | undefined",
59
+ "childApps": "?ChildApplications | (() => ChildApplications) | undefined",
59
60
  "cid": "string",
60
61
  "cidPrefix": "string",
61
62
  "createState": "(options?: (object & ApplicationOptions) | undefined) => unknown",
62
63
  "destroy": "(options?: unknown) => Promise<boolean>",
63
64
  "getChannel": "() => Channel | undefined",
64
- "getChildApp": "(name: string) => ApplicationInstance<object, unknown> | undefined",
65
- "getChildApps": "() => Record<string, ApplicationInstance<object, unknown>>",
65
+ "getChildApp": "(name: string) => ApplicationInstance<object, unknown, unknown> | undefined",
66
+ "getChildApps": "() => Record<string, ApplicationInstance<object, unknown, unknown>>",
66
67
  "getName": "() => string | undefined",
67
68
  "getOption": "{ (optionName?: null | undefined): undefined; <Receiver extends object, Name extends PropertyKey | null | undefined>(this: Receiver, optionName: Name): GetOptionResult<Receiver, Name>; (this: object, optionName: PropertyKey | null | undefined): unknown; }",
68
69
  "getRegion": "() => RegionInstance<RegionOptions> | undefined",
@@ -78,25 +79,28 @@
78
79
  "normalizeMethods": "{ (this: unknown, hash?: false | \"\" | 0 | 0n | null | undefined): undefined; (this: unknown, hash: object): EventMap; (this: unknown, hash?: OptionalBindings): EventMap | undefined; }",
79
80
  "off": "{ <Receiver>(this: Receiver, name?: string | null | undefined, callback?: EventCallback | null | undefined, context?: unknown): Receiver; <Receiver>(this: Receiver, events: EventMap, context?: unknown, explicitContext?: unknown): Receiver; }",
80
81
  "on": "{ <Receiver>(this: Receiver, name: string, callback?: EventCallback | undefined, context?: unknown): Receiver; <Receiver>(this: Receiver, events: EventMap, context?: unknown, explicitContext?: unknown): Receiver; }",
81
- "onBeforeDestroy": "?((application: ApplicationInstance<object & ApplicationOptions, object>, options: unknown, context: LifecycleContext) => unknown) | undefined",
82
- "onBeforeStart": "?((application: ApplicationInstance<object & ApplicationOptions, object>, options: unknown, context: LifecycleContext) => unknown) | undefined",
83
- "onBeforeStop": "?((application: ApplicationInstance<object & ApplicationOptions, object>, options: unknown, context: LifecycleContext) => unknown) | undefined",
82
+ "onBeforeDestroy": "?((application: ApplicationInstance<object & ApplicationOptions, object, unknown>, options: unknown) => unknown) | undefined",
83
+ "onBeforeStart": "?((application: ApplicationInstance<object & ApplicationOptions, object, unknown>, options: unknown) => unknown) | undefined",
84
+ "onBeforeStop": "?((application: ApplicationInstance<object & ApplicationOptions, object, unknown>, options: unknown) => unknown) | undefined",
84
85
  "once": "{ <Receiver>(this: Receiver, name: string, callback?: EventCallback | undefined, context?: unknown): Receiver; <Receiver>(this: Receiver, events: EventMap, context?: unknown, explicitContext?: unknown): Receiver; }",
85
- "onDestroy": "?((application: ApplicationInstance<object & ApplicationOptions, object>, options: unknown) => unknown) | undefined",
86
- "onStart": "?((application: ApplicationInstance<object & ApplicationOptions, object>, options: unknown) => unknown) | undefined",
87
- "onStop": "?((application: ApplicationInstance<object & ApplicationOptions, object>, options: unknown) => unknown) | undefined",
86
+ "onDestroy": "?((application: ApplicationInstance<object & ApplicationOptions, object, unknown>, options: unknown) => unknown) | undefined",
87
+ "onStart": "?((application: ApplicationInstance<object & ApplicationOptions, object, unknown>, options: unknown, result: unknown) => unknown) | undefined",
88
+ "onStop": "?((application: ApplicationInstance<object & ApplicationOptions, object, unknown>, options: unknown) => unknown) | undefined",
88
89
  "options": "object & ApplicationOptions",
89
90
  "preinitialize": "(options?: (object & ApplicationOptions) | undefined) => void",
91
+ "prepareDestroy": "?((options: unknown, context: LifecycleContext) => unknown) | undefined",
92
+ "prepareStart": "?((options: unknown, context: LifecycleContext) => unknown) | undefined",
93
+ "prepareStop": "?((options: unknown, context: LifecycleContext) => unknown) | undefined",
90
94
  "Radio": "RadioApi",
91
95
  "radioEvents": "?object | (() => object) | undefined",
92
96
  "radioRequests": "?object | (() => object) | undefined",
93
97
  "region": "?RegionDefinition | undefined",
94
98
  "regionClass": "RegionClass",
95
- "removeChildApp": "(name: string, options?: unknown) => Promise<ApplicationInstance<object, unknown> | undefined>",
96
- "restart": "(options?: unknown) => Promise<boolean>",
99
+ "removeChildApp": "(name: string, options?: unknown) => Promise<ApplicationInstance<object, unknown, unknown> | undefined>",
100
+ "restart": "(options?: ApplicationStartOptions | undefined) => Promise<boolean>",
97
101
  "setView": "<Child extends SupportedView>(view: Child) => Child",
98
102
  "showView": "{ (view?: undefined, options?: ShowOptions | undefined): SupportedView | undefined; <Child extends SupportedView>(view: Child, options?: ShowOptions | undefined): Child; }",
99
- "start": "(options?: unknown) => Promise<boolean>",
103
+ "start": "(options?: ApplicationStartOptions | undefined) => Promise<boolean>",
100
104
  "state": "?unknown",
101
105
  "State": "Partial<StateApi<never>>",
102
106
  "stateEvents": "?object | (() => object) | undefined",
@@ -139,6 +143,9 @@
139
143
  "onStart",
140
144
  "onStop",
141
145
  "preinitialize",
146
+ "prepareDestroy",
147
+ "prepareStart",
148
+ "prepareStop",
142
149
  "removeChildApp",
143
150
  "restart",
144
151
  "setView",
@@ -257,6 +264,15 @@
257
264
  "preinitialize": [
258
265
  "application-composition"
259
266
  ],
267
+ "prepareDestroy": [
268
+ "application-lifecycle"
269
+ ],
270
+ "prepareStart": [
271
+ "application-lifecycle"
272
+ ],
273
+ "prepareStop": [
274
+ "application-lifecycle"
275
+ ],
260
276
  "removeChildApp": [
261
277
  "application-composition"
262
278
  ],
@@ -309,7 +325,7 @@
309
325
  "call"
310
326
  ],
311
327
  "construct": [
312
- "<Provided extends Args = Args>(...args: Provided): Constructed<Props, Merge<ApplicationInstance<Merge<DefaultOptions<Props>, OptionsFor<Provided>>, SuppliedState<Provided[0], State>>, \"options\" extends keyof Props ? Omit<Props, keyof Props & \"options\"> : Props>>"
328
+ "<Provided extends Args = Args>(...args: Provided): Constructed<Props, Merge<ApplicationInstance<Merge<DefaultOptions<Props>, OptionsFor<Provided>>, SuppliedState<Provided[0], State>, StartResultFor<Props>>, \"options\" extends keyof Props ? Omit<Props, keyof Props & \"options\"> : Props>>"
313
329
  ],
314
330
  "instance": {},
315
331
  "callableInstanceMembers": [],
@@ -330,7 +346,7 @@
330
346
  {
331
347
  "name": "ApplicationInstance",
332
348
  "kind": "type",
333
- "signature": "ApplicationInstance<Options, State>",
349
+ "signature": "ApplicationInstance<Options, State, StartResult>",
334
350
  "contracts": [
335
351
  "type-shapes"
336
352
  ],
@@ -339,13 +355,14 @@
339
355
  "bindEvents": "<Receiver extends Listener>(this: Receiver, entity?: false | \"\" | 0 | 0n | EventSource | null | undefined, bindings?: false | object | \"\" | 0 | 0n | null | undefined) => Receiver",
340
356
  "bindRequests": "<Receiver>(this: Receiver, channel?: false | \"\" | 0 | 0n | ReplyChannel | null | undefined, bindings?: false | object | \"\" | 0 | 0n | null | undefined) => Receiver",
341
357
  "channelName": "?string | (() => string) | undefined",
358
+ "childApps": "?ChildApplications | (() => ChildApplications) | undefined",
342
359
  "cid": "string",
343
360
  "cidPrefix": "string",
344
361
  "createState": "(options?: Options | undefined) => unknown",
345
362
  "destroy": "(options?: unknown) => Promise<boolean>",
346
363
  "getChannel": "() => Channel | undefined",
347
- "getChildApp": "(name: string) => ApplicationInstance<object, unknown> | undefined",
348
- "getChildApps": "() => Record<string, ApplicationInstance<object, unknown>>",
364
+ "getChildApp": "(name: string) => ApplicationInstance<object, unknown, unknown> | undefined",
365
+ "getChildApps": "() => Record<string, ApplicationInstance<object, unknown, unknown>>",
349
366
  "getName": "() => string | undefined",
350
367
  "getOption": "{ (optionName?: null | undefined): undefined; <Receiver extends object, Name extends PropertyKey | null | undefined>(this: Receiver, optionName: Name): GetOptionResult<Receiver, Name>; (this: object, optionName: PropertyKey | null | undefined): unknown; }",
351
368
  "getRegion": "() => RegionInstance<RegionOptions> | undefined",
@@ -361,25 +378,28 @@
361
378
  "normalizeMethods": "{ (this: unknown, hash?: false | \"\" | 0 | 0n | null | undefined): undefined; (this: unknown, hash: object): EventMap; (this: unknown, hash?: OptionalBindings): EventMap | undefined; }",
362
379
  "off": "{ <Receiver>(this: Receiver, name?: string | null | undefined, callback?: EventCallback | null | undefined, context?: unknown): Receiver; <Receiver>(this: Receiver, events: EventMap, context?: unknown, explicitContext?: unknown): Receiver; }",
363
380
  "on": "{ <Receiver>(this: Receiver, name: string, callback?: EventCallback | undefined, context?: unknown): Receiver; <Receiver>(this: Receiver, events: EventMap, context?: unknown, explicitContext?: unknown): Receiver; }",
364
- "onBeforeDestroy": "?((application: ApplicationInstance<Options, State>, options: unknown, context: LifecycleContext) => unknown) | undefined",
365
- "onBeforeStart": "?((application: ApplicationInstance<Options, State>, options: unknown, context: LifecycleContext) => unknown) | undefined",
366
- "onBeforeStop": "?((application: ApplicationInstance<Options, State>, options: unknown, context: LifecycleContext) => unknown) | undefined",
381
+ "onBeforeDestroy": "?((application: ApplicationInstance<Options, State, StartResult>, options: unknown) => unknown) | undefined",
382
+ "onBeforeStart": "?((application: ApplicationInstance<Options, State, StartResult>, options: unknown) => unknown) | undefined",
383
+ "onBeforeStop": "?((application: ApplicationInstance<Options, State, StartResult>, options: unknown) => unknown) | undefined",
367
384
  "once": "{ <Receiver>(this: Receiver, name: string, callback?: EventCallback | undefined, context?: unknown): Receiver; <Receiver>(this: Receiver, events: EventMap, context?: unknown, explicitContext?: unknown): Receiver; }",
368
- "onDestroy": "?((application: ApplicationInstance<Options, State>, options: unknown) => unknown) | undefined",
369
- "onStart": "?((application: ApplicationInstance<Options, State>, options: unknown) => unknown) | undefined",
370
- "onStop": "?((application: ApplicationInstance<Options, State>, options: unknown) => unknown) | undefined",
385
+ "onDestroy": "?((application: ApplicationInstance<Options, State, StartResult>, options: unknown) => unknown) | undefined",
386
+ "onStart": "?((application: ApplicationInstance<Options, State, StartResult>, options: unknown, result: StartResult) => unknown) | undefined",
387
+ "onStop": "?((application: ApplicationInstance<Options, State, StartResult>, options: unknown) => unknown) | undefined",
371
388
  "options": "Options",
372
389
  "preinitialize": "(options?: Options | undefined) => void",
390
+ "prepareDestroy": "?((options: unknown, context: LifecycleContext) => unknown) | undefined",
391
+ "prepareStart": "?((options: unknown, context: LifecycleContext) => StartResult | PromiseLike<StartResult>) | undefined",
392
+ "prepareStop": "?((options: unknown, context: LifecycleContext) => unknown) | undefined",
373
393
  "Radio": "RadioApi",
374
394
  "radioEvents": "?object | (() => object) | undefined",
375
395
  "radioRequests": "?object | (() => object) | undefined",
376
396
  "region": "?RegionDefinition | undefined",
377
397
  "regionClass": "RegionClass",
378
- "removeChildApp": "(name: string, options?: unknown) => Promise<ApplicationInstance<object, unknown> | undefined>",
379
- "restart": "(options?: unknown) => Promise<boolean>",
398
+ "removeChildApp": "(name: string, options?: unknown) => Promise<ApplicationInstance<object, unknown, unknown> | undefined>",
399
+ "restart": "(options?: ApplicationStartOptions | undefined) => Promise<boolean>",
380
400
  "setView": "<Child extends SupportedView>(view: Child) => Child",
381
401
  "showView": "{ (view?: undefined, options?: ShowOptions | undefined): SupportedView | undefined; <Child extends SupportedView>(view: Child, options?: ShowOptions | undefined): Child; }",
382
- "start": "(options?: unknown) => Promise<boolean>",
402
+ "start": "(options?: ApplicationStartOptions | undefined) => Promise<boolean>",
383
403
  "state": "?unknown",
384
404
  "State": "Partial<StateApi<never>>",
385
405
  "stateEvents": "?object | (() => object) | undefined",
@@ -422,6 +442,9 @@
422
442
  "onStart",
423
443
  "onStop",
424
444
  "preinitialize",
445
+ "prepareDestroy",
446
+ "prepareStart",
447
+ "prepareStop",
425
448
  "removeChildApp",
426
449
  "restart",
427
450
  "setView",
@@ -529,6 +552,15 @@
529
552
  "preinitialize": [
530
553
  "type-shapes"
531
554
  ],
555
+ "prepareDestroy": [
556
+ "type-shapes"
557
+ ],
558
+ "prepareStart": [
559
+ "type-shapes"
560
+ ],
561
+ "prepareStop": [
562
+ "type-shapes"
563
+ ],
532
564
  "removeChildApp": [
533
565
  "type-shapes"
534
566
  ],
@@ -574,6 +606,7 @@
574
606
  ],
575
607
  "members": {
576
608
  "channelName": "?string | (() => string) | undefined",
609
+ "childApps": "?ChildApplications | (() => ChildApplications) | undefined",
577
610
  "radioEvents": "?object | (() => object) | undefined",
578
611
  "radioRequests": "?object | (() => object) | undefined",
579
612
  "region": "?RegionDefinition | undefined",
@@ -584,6 +617,19 @@
584
617
  "callableMembers": [],
585
618
  "operationContracts": {}
586
619
  },
620
+ {
621
+ "name": "ApplicationStartOptions",
622
+ "kind": "type",
623
+ "signature": "ApplicationStartOptions",
624
+ "contracts": [
625
+ "type-shapes"
626
+ ],
627
+ "members": {
628
+ "region": "?RegionInstance<RegionOptions> | undefined"
629
+ },
630
+ "callableMembers": [],
631
+ "operationContracts": {}
632
+ },
587
633
  {
588
634
  "name": "Behavior",
589
635
  "kind": "value",
@@ -5312,7 +5358,7 @@
5312
5358
  },
5313
5359
  {
5314
5360
  "name": "@mnjs/utils",
5315
- "version": "5.0.0-beta.3",
5361
+ "version": "5.0.0-beta.5",
5316
5362
  "kind": "runtime",
5317
5363
  "source": "packages/utils/src/index.ts",
5318
5364
  "conditions": {
@@ -5933,7 +5979,7 @@
5933
5979
  },
5934
5980
  {
5935
5981
  "name": "@mnjs/radio",
5936
- "version": "5.0.0-beta.3",
5982
+ "version": "5.0.0-beta.5",
5937
5983
  "kind": "runtime",
5938
5984
  "source": "packages/radio/src/index.ts",
5939
5985
  "conditions": {
@@ -6394,7 +6440,7 @@
6394
6440
  },
6395
6441
  {
6396
6442
  "name": "@mnjs/data",
6397
- "version": "5.0.0-beta.3",
6443
+ "version": "5.0.0-beta.5",
6398
6444
  "kind": "runtime",
6399
6445
  "source": "packages/data/src/index.ts",
6400
6446
  "conditions": {
@@ -6927,7 +6973,7 @@
6927
6973
  },
6928
6974
  {
6929
6975
  "name": "@mnjs/adapters/backbone",
6930
- "version": "5.0.0-beta.3",
6976
+ "version": "5.0.0-beta.5",
6931
6977
  "kind": "runtime",
6932
6978
  "source": "packages/adapters/src/data/backbone.ts",
6933
6979
  "conditions": {
@@ -7002,7 +7048,7 @@
7002
7048
  },
7003
7049
  {
7004
7050
  "name": "@mnjs/adapters/dom/jquery",
7005
- "version": "5.0.0-beta.3",
7051
+ "version": "5.0.0-beta.5",
7006
7052
  "kind": "runtime",
7007
7053
  "source": "packages/adapters/src/dom/jquery.ts",
7008
7054
  "conditions": {
@@ -7062,7 +7108,7 @@
7062
7108
  },
7063
7109
  {
7064
7110
  "name": "@mnjs/adapters/xstate",
7065
- "version": "5.0.0-beta.3",
7111
+ "version": "5.0.0-beta.5",
7066
7112
  "kind": "runtime",
7067
7113
  "source": "packages/adapters/src/data/xstate.ts",
7068
7114
  "conditions": {
@@ -7149,7 +7195,7 @@
7149
7195
  },
7150
7196
  {
7151
7197
  "name": "@mnjs/adapters/dom/morphdom",
7152
- "version": "5.0.0-beta.3",
7198
+ "version": "5.0.0-beta.5",
7153
7199
  "kind": "runtime",
7154
7200
  "source": "packages/adapters/src/dom/morphdom.ts",
7155
7201
  "conditions": {
@@ -7189,7 +7235,7 @@
7189
7235
  },
7190
7236
  {
7191
7237
  "name": "@mnjs/adapters/dom/lit-html",
7192
- "version": "5.0.0-beta.3",
7238
+ "version": "5.0.0-beta.5",
7193
7239
  "kind": "runtime",
7194
7240
  "source": "packages/adapters/src/dom/lit-html.ts",
7195
7241
  "conditions": {
@@ -7414,6 +7460,13 @@
7414
7460
  "Region",
7415
7461
  "View"
7416
7462
  ]
7463
+ },
7464
+ {
7465
+ "code": "MN0041",
7466
+ "slug": "application-region-conflict",
7467
+ "objects": [
7468
+ "Application"
7469
+ ]
7417
7470
  }
7418
7471
  ],
7419
7472
  "toolingEntrypoints": [
@@ -7806,8 +7859,7 @@
7806
7859
  "kind": "literal",
7807
7860
  "arguments": [
7808
7861
  "application",
7809
- "options",
7810
- "context"
7862
+ "options"
7811
7863
  ]
7812
7864
  },
7813
7865
  {
@@ -7816,7 +7868,8 @@
7816
7868
  "kind": "literal",
7817
7869
  "arguments": [
7818
7870
  "application",
7819
- "options"
7871
+ "options",
7872
+ "result"
7820
7873
  ]
7821
7874
  },
7822
7875
  {
@@ -7825,8 +7878,7 @@
7825
7878
  "kind": "literal",
7826
7879
  "arguments": [
7827
7880
  "application",
7828
- "options",
7829
- "context"
7881
+ "options"
7830
7882
  ]
7831
7883
  },
7832
7884
  {
@@ -7844,8 +7896,7 @@
7844
7896
  "kind": "literal",
7845
7897
  "arguments": [
7846
7898
  "this",
7847
- "options",
7848
- "context"
7899
+ "options"
7849
7900
  ]
7850
7901
  },
7851
7902
  {
@@ -8002,7 +8053,7 @@
8002
8053
  "packages/utils/src/trigger-method.ts": "3a6460a5fdc6e0a319a6eea1e323f34f19fa0811ee1ea71fccaa45ade531d38f",
8003
8054
  "packages/utils/src/unique-id.ts": "22f5f12062eeef10c1336ee01e4b28b7d0cfe562c0f53f79e2a3219eb389f72b",
8004
8055
  "src/create-marionette.ts": "12baf1aadeeae54aefbb7e5777db9392f74650a407dcd506e97ebf18b73cfcc1",
8005
- "src/index.ts": "0fdbaa2bbb16566dd1032f786273e7b1acc8683390033b2c63b196e2dc04b449",
8056
+ "src/index.ts": "41476602f9a5712f0742954fdc7d20a09bef62ba80711d25abe3d1bda8064656",
8006
8057
  "src/mixins/behaviors.ts": "720633138c31d36c3c9e9367c1cd9ef4a9b8514b2e5cfcb88e04bfdea7566991",
8007
8058
  "src/mixins/common.ts": "375340ed4f7c5db6c3bd9dc9d73c73b49e69347e3451c0db7dd646ae714f5156",
8008
8059
  "src/mixins/delegate-entity-events.ts": "778dc193ff0b32611e6a9112e133f961c2f522c6864ea847c70e7d676fb41c9c",
@@ -8013,7 +8064,7 @@
8013
8064
  "src/mixins/ui.ts": "5cb417e1456cd17b43357e480102be3fc1b436167c43b853af7d45ab79d35ffd",
8014
8065
  "src/mixins/view-events.ts": "108a31ba7d0f74916848c5b2f85b422afe15703a8e9fa2dbca0b17b6a5ff0fb2",
8015
8066
  "src/mixins/view.ts": "d0895d07d087d24d5cd8ce8d051a7acbbc9cee64fd2b5a6824b26973fc064e18",
8016
- "src/modules/application.ts": "11a9541a102d67f1d76ca83ec4bd65e8d68bfc7790e818aaeded14965dae42ec",
8067
+ "src/modules/application.ts": "a13c62d8e5985de4c05806c71265a051023ab845dc9b9c65fa120734494817e8",
8017
8068
  "src/modules/behavior.ts": "475fe0451e629559992bd0f5ec18ad16438309b018bf643b5917dfc47a1693b6",
8018
8069
  "src/modules/child-view-container.ts": "ab52685a0a4fd8861534b8e9784704791c3e72a15ee19547766293be4a030803",
8019
8070
  "src/modules/collection-view.ts": "40bbaefedea29de171597e905f8fdde7ee6f55877da9e441996c9b5bf56bfe58",
@@ -8034,38 +8085,41 @@
8034
8085
  "src/utils/subscribe-bindings.ts": "24633b6b39c2d0a8c833670e2ab1d584fb6bed2fae3ac5cfb5d42461cf233f4a"
8035
8086
  },
8036
8087
  "evidence": {
8037
- "config/diagnostics/catalog.json": "76cc4270e2ec939078cc3c8537d66e45bf0a58010fe25eeef81ab21f58886997",
8088
+ "config/diagnostics/catalog.json": "45360deea6dfe7d531b256dbbebb443e9fa578fb0d43fc9becce7ab5126c76bf",
8038
8089
  "docs/choosing-integrations.md": "385bfb2c7d85a8e0db71fd795ed1fef488aa637aa5094e93210810ff91f31f12",
8039
8090
  "docs/common.md": "1d14004d1c49e98ca40be9fd28d35faaf372f2a12f13fae6afa3cac8a8bf14cc",
8040
- "docs/data.api.md": "c4e946abf9806eadb86996f296de3b06e5265e0e724186ff33e172e5f43d8a23",
8091
+ "docs/data.api.md": "f96a24fa8f08ed1437944d558e91878a16f941b7efd3dcc40c91b2de52d1f5a2",
8041
8092
  "docs/diagnostic-catalog.md": "1df844c7e8edbea59a8c07776d656d45f77266108babb770d7690183fe85d180",
8042
8093
  "docs/dom.api.md": "a697a637ae4c6cc92aa5d72850b404763f08e0417800feacc0b431ec073d3916",
8043
8094
  "docs/dom.interactions.md": "81bd678c7d498e08c08c84cfc3bbe1d27451ef46ed521e67fff4f72450bdbadb",
8044
- "docs/events.class.md": "7370bdc890168105ab61fd6140aae9f43ec473a0872fd7cdf1812d2cf9fd9e00",
8045
- "docs/events.md": "227484aca95a4003903bd8df51f3c38c11144480ace919b63bacbf5bc2bb3d22",
8046
- "docs/marionette.application.md": "9bf34ebf6130126135129ac04b03d37ee24ba7868d5596a15ffafdcbdc9af5a3",
8095
+ "docs/events.class.md": "faed5ac4f6eca3ec447ae7cd44b6efd8f039e935b38a4c191076d485bd57a35f",
8096
+ "docs/events.md": "8225ceda0d100b6bf466ab779cacc1001b7eec16b8dfd09d8c43d97924228e50",
8097
+ "docs/marionette.application.md": "711283795f71f7bff273498e97a0e0c54a815f02f1ff9339a22fdf13d8bca048",
8047
8098
  "docs/marionette.behavior.md": "bf002b5ba380cf1bb1054b98f9813d89b4aef16ba6495d02b823ed178ab3f0c4",
8048
8099
  "docs/marionette.collectionview.md": "5af1ed04daaf0e976fdd0538b0931fd370fd09167079d0c21b01195f8628cefe",
8049
8100
  "docs/marionette.mnobject.md": "056bb3041902d66831a0031e2e9c97770f485f613450861ae55aba46ca592243",
8050
- "docs/marionette.region.md": "6716880b5ab5a6bf7b4b4a6dd7b66e7fdb7bd9c1c451578ad551d64f4be9e40d",
8051
- "docs/marionette.state.md": "fbee628142604499747a83f19055b05c0ba5831944760cf0910cc11cceef55f5",
8101
+ "docs/marionette.region.md": "4b205c3699d771e6d6b288fd0914b15af80a7a76cfaaae9e63a92ac9ed0a6dee",
8102
+ "docs/marionette.state.md": "2598f36fad1f5103f1f940312e311e1ed3c446d2e7725bdac690367511f73d97",
8052
8103
  "docs/marionette.view.md": "b7b5871b0b56474cc3bc2513c2e2c4fdabdafcd724bfbaa8076ea7eee40d5ab5",
8053
- "docs/optional-backbone.md": "f630fdcf2d6659cd4b0a7bf76c5e18ce9ae92312e35e98e312fb8afea4c1d664",
8104
+ "docs/optional-backbone.md": "f1d47cd797e109a9a57f56e1db187b50bafd16f1ff2775f03559f9f7e59bc86c",
8054
8105
  "docs/radio.md": "c0013e382554aa6cd4e46ab60908f5e6cce7117c134b3f4656c37a163f8a5f4e",
8055
8106
  "docs/runtime-isolation.md": "e18927a5aa30558805018c9c28dffceaf02d953394efce8eaa7d35f0711de7f4",
8056
- "docs/typescript.md": "47ec746e0dcc04cce56f6227f0645d4c777585a2ae797f00c4683b32585922f1",
8107
+ "docs/typescript.md": "08361d38a3b3c29dcc45097fc44d74962cee91d9d97bea9f84006c1a9639e59b",
8057
8108
  "docs/utils.md": "5c2d0854895bb19f613926788cf81c5849cf18af1e43ac540e860b226fa80d2a",
8058
- "docs/view.lifecycle.md": "2cc29e59e056174bb2fcbd2888ee508ff6fb044b86e9fcacd1025c1f4e036133",
8059
- "docs/view.rendering.md": "6b397b0925b00c06ff644cd549b2273ba6235e1d6148ad6fa0514394f9c92df5",
8060
- "packages/adapters/readme.md": "3199ad1d13ca2ea6253c6f95af1806d7b2b28680074b5488da861b2af1aaaba5",
8061
- "packages/data/readme.md": "ca98cee5fcb519278b47e9a12e3e8838f5e9c9c5913646c14398fc7111d6f8d6",
8062
- "packages/utils/readme.md": "8fe46e7f62e691e208ef87bba47ec0209302cfed15faa0d87a221f66cf666348",
8109
+ "docs/view.lifecycle.md": "1e5f0e77d9bba799296ed40860a1d466e58cc086c36f72314cbe3c9daeedf8e3",
8110
+ "docs/view.rendering.md": "106bd7c14f5897513a5072bed98d36e029b9be91650267f17ebcf90b03d8cb13",
8111
+ "packages/adapters/readme.md": "d1be90d2631fcd4346b9e4648e7288e63ff28063fd7ffb860f32de25164d5d29",
8112
+ "packages/data/readme.md": "041e330fad1a87c891844b774dd5309aae61cc7a36d76b3dcf9ec5dfcd7b8c95",
8113
+ "packages/utils/readme.md": "2ea64109e9b65c9fb66d48c30fec86b6475aa4d8c809cc68c68a28925ed93021",
8063
8114
  "test/contracts/dom-adapters.js": "a3f71df6a2e52f8d4a52ebb2d3cbbc8e77e055f459daf7c071f4e5fd55ad8c3f",
8064
- "test/unit/application-child-lifecycle.spec.js": "fae6cd469119901a1a39e1ee9f8aa5aae55db39d50df7a3cb145e640fba8d400",
8065
- "test/unit/application-lifecycle.spec.js": "52adc58534d8cb079dacb9b8b5f608bd62783c14ad5b98bb8cd85dcdd757c331",
8066
- "test/unit/application-ownership.spec.js": "6710968792d0c52877110abc63b4622b18efc3b030d5f5f1060e4de046326095",
8067
- "test/unit/application-prepared-view.spec.js": "440619dba9c73570974f1531bbe8b601fcb9a27ed64b499d6c10b9e8ca955dca",
8068
- "test/unit/application-root-view.spec.js": "2c1c642bb872836425b942580cc6600236cf3110186b427b1f7b2fd6263ff78d",
8115
+ "test/unit/application-child-declarations.spec.js": "3b98e033f99902a8bff5c533c03599375381da4b4a01b9014e825eb21cb80e2b",
8116
+ "test/unit/application-child-lifecycle.spec.js": "e69e6a140e341563b49333d09bd1c483151f9f4b2a494960a4dfc78bb81f8dcb",
8117
+ "test/unit/application-lifecycle.spec.js": "43da21063d3b03c1c16fd047735458a26a98abe003ef75e607bad0f01a473f37",
8118
+ "test/unit/application-ownership.spec.js": "f1e6a74f639bb6ceedd85957c696a45de28e1526ed41df0f34663a23b25bb68f",
8119
+ "test/unit/application-preparation.spec.js": "23e58351eec5983b4d412be099a7e9306f4b758a1f501874f46baca8be940b56",
8120
+ "test/unit/application-prepared-view.spec.js": "9d97d5e8f4783d3fb9ffff19afda25d46e6c6fd5f61a89929c42d559f2a2cee4",
8121
+ "test/unit/application-root-view.spec.js": "e497b73aa9f1c67c228008dc744ba6675cfb7a72b3279367f95cf304d76b02da",
8122
+ "test/unit/application-start-region.spec.js": "d29546de2a4f7a56153eaeee39386b9c3f07933fb11c6c4e4d3ad0fdf60bb703",
8069
8123
  "test/unit/backbone-adapter.spec.js": "016907f55d5e20d695f916dbd4189ac7e3e543a0f903df6a3922c207dade59df",
8070
8124
  "test/unit/behavior-lifecycle.spec.js": "8c70d05fa530d27eac901291a3487c9cacac1ef1d0c22a3adda917da5774d05a",
8071
8125
  "test/unit/behavior-ui-contract.spec.js": "65def27b40f17e3d931803faeff7c9dbb3c580e14f157fa5d2f8145fb95c1761",
@@ -8090,7 +8144,7 @@
8090
8144
  "test/unit/events-parity.spec.js": "a0ec7cd3dac3636803ec6ecc6fb7161df2a74fa7d5e6d532477e12539a9bd71c",
8091
8145
  "test/unit/events-single-dispatch.spec.js": "9405ceb5a59c4ebddf3aeb4a902588dcf81a6bc35aca40bde0e8aa41760fb6ce",
8092
8146
  "test/unit/jquery-dom-api.spec.js": "4b0187d3ca5dac647394dd906fe6c6ca11764688c12ef864bc4eae867a629ded",
8093
- "test/unit/model-based/application.spec.js": "606f73e131faa4991ac2dc5370abc80b0f61467623705b0d929587e654cc7e35",
8147
+ "test/unit/model-based/application.spec.js": "e40a27ede3317869f8e3a1e10563be78f1bfe768365d62bcd1fedd38322a84ed",
8094
8148
  "test/unit/modules-error.spec.js": "3ca32416b3329999cb3fcdd3fbc66751d722e7a2c0082195b702b64dce6284c3",
8095
8149
  "test/unit/object.spec.js": "ca82986738229a1af224aa3bd2b0ab88d70ca92dc556806796e5b056b19ebb3e",
8096
8150
  "test/unit/provider-acceptance.spec.js": "9eb8795a222745b41ba2d76ae770dfa702e2f0f1ec8e17be8402be42c6166db9",