marionette 5.0.0-beta.3 → 5.0.0-beta.4
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.
- package/changelog.md +15 -1
- package/dist/agent-skill/SKILL.md +12 -3
- package/dist/docs/config/api-contracts/inventory.json +80 -51
- package/dist/docs/config/api-contracts/semantics.json +22 -6
- package/dist/docs/docs/agent-tools.md +2 -2
- package/dist/docs/docs/agents.md +1 -1
- package/dist/docs/docs/application-effects.md +2 -2
- package/dist/docs/docs/application-refresh.md +1 -1
- package/dist/docs/docs/beta.md +6 -5
- package/dist/docs/docs/compact-reference.md +1 -1
- package/dist/docs/docs/data.api.md +1 -1
- package/dist/docs/docs/events.class.md +26 -29
- package/dist/docs/docs/installation.md +9 -9
- package/dist/docs/docs/marionette.application.md +65 -36
- package/dist/docs/docs/migration-from-v4.md +5 -5
- package/dist/docs/docs/optional-backbone.md +1 -1
- package/dist/docs/docs/routing.md +2 -2
- package/dist/docs/docs/terminology.md +3 -3
- package/dist/docs/manifest.json +34 -26
- package/dist/docs/packages/adapters/readme.md +5 -5
- package/dist/docs/packages/data/readme.md +1 -1
- package/dist/docs/packages/radio/readme.md +1 -1
- package/dist/docs/packages/utils/readme.md +1 -1
- package/dist/docs/readme.md +3 -3
- package/dist/docs/skills/marionette/SKILL.md +12 -3
- package/dist/docs/starter/package.json +3 -3
- package/dist/docs/test/fixtures/docs-application-guides/effects.mjs +222 -0
- package/dist/docs/test/fixtures/docs-routing/refresh.mjs +274 -0
- package/dist/docs/test/fixtures/docs-routing/validate.mjs +1 -1
- package/dist/docs/upgradeGuide.md +27 -1
- package/dist/marionette.cjs +15 -6
- package/dist/marionette.cjs.map +1 -1
- package/dist/marionette.js +15 -6
- package/dist/marionette.js.map +1 -1
- package/dist/marionette.min.js +1 -1
- package/dist/marionette.min.js.map +1 -1
- package/dist/marionette.umd.js +16 -7
- package/dist/marionette.umd.js.map +1 -1
- package/dist/types/cjs/modules/application.d.ts +14 -6
- package/dist/types/esm/modules/application.d.ts +14 -6
- package/package.json +3 -3
- package/readme.md +1 -1
- package/upgradeGuide.md +27 -1
package/changelog.md
CHANGED
|
@@ -1,4 +1,18 @@
|
|
|
1
|
-
###
|
|
1
|
+
### v5.0.0-beta.4
|
|
2
|
+
|
|
3
|
+
> Events announce. Preparation waits. Apparently those needed separate job descriptions.
|
|
4
|
+
|
|
5
|
+
* Separate Application preparation from lifecycle notifications. Await
|
|
6
|
+
`prepareStart`, `prepareStop`, and `prepareDestroy`; `onBefore*` hooks and
|
|
7
|
+
`before:*` events are synchronous notifications. Pass `prepareStart`'s resolved
|
|
8
|
+
value unchanged to `onStart` and `start` as the third argument. Migrate async
|
|
9
|
+
`onBefore*` work to the corresponding preparation method.
|
|
10
|
+
* Preserve inferred startup result types for optional preparation methods, including
|
|
11
|
+
`undefined` when the method is absent.
|
|
12
|
+
* Include referenced consumer resources in documentation exports and keep maintainer
|
|
13
|
+
material out of the packaged consumer documentation.
|
|
14
|
+
* Clarify packaged and copied agent-skill helper paths, with executable lookup
|
|
15
|
+
examples checked against the installed documentation.
|
|
2
16
|
|
|
3
17
|
### v5.0.0-beta.3
|
|
4
18
|
|
|
@@ -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/
|
|
18
|
-
node /path/to/
|
|
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": "
|
|
4
|
+
"semanticsSha256": "0929a305cce177355389fafdc1c5b46d8332046647ce7c970b27b49be866c616",
|
|
5
5
|
"entrypoints": [
|
|
6
6
|
{
|
|
7
7
|
"name": "marionette",
|
|
8
|
-
"version": "5.0.0-beta.
|
|
8
|
+
"version": "5.0.0-beta.4",
|
|
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,7 +49,7 @@
|
|
|
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",
|
|
@@ -61,8 +61,8 @@
|
|
|
61
61
|
"createState": "(options?: (object & ApplicationOptions) | undefined) => unknown",
|
|
62
62
|
"destroy": "(options?: unknown) => Promise<boolean>",
|
|
63
63
|
"getChannel": "() => Channel | undefined",
|
|
64
|
-
"getChildApp": "(name: string) => ApplicationInstance<object, unknown> | undefined",
|
|
65
|
-
"getChildApps": "() => Record<string, ApplicationInstance<object, unknown>>",
|
|
64
|
+
"getChildApp": "(name: string) => ApplicationInstance<object, unknown, unknown> | undefined",
|
|
65
|
+
"getChildApps": "() => Record<string, ApplicationInstance<object, unknown, unknown>>",
|
|
66
66
|
"getName": "() => string | undefined",
|
|
67
67
|
"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
68
|
"getRegion": "() => RegionInstance<RegionOptions> | undefined",
|
|
@@ -78,21 +78,24 @@
|
|
|
78
78
|
"normalizeMethods": "{ (this: unknown, hash?: false | \"\" | 0 | 0n | null | undefined): undefined; (this: unknown, hash: object): EventMap; (this: unknown, hash?: OptionalBindings): EventMap | undefined; }",
|
|
79
79
|
"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
80
|
"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
|
|
82
|
-
"onBeforeStart": "?((application: ApplicationInstance<object & ApplicationOptions, object>, options: unknown
|
|
83
|
-
"onBeforeStop": "?((application: ApplicationInstance<object & ApplicationOptions, object>, options: unknown
|
|
81
|
+
"onBeforeDestroy": "?((application: ApplicationInstance<object & ApplicationOptions, object, unknown>, options: unknown) => unknown) | undefined",
|
|
82
|
+
"onBeforeStart": "?((application: ApplicationInstance<object & ApplicationOptions, object, unknown>, options: unknown) => unknown) | undefined",
|
|
83
|
+
"onBeforeStop": "?((application: ApplicationInstance<object & ApplicationOptions, object, unknown>, options: unknown) => unknown) | undefined",
|
|
84
84
|
"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",
|
|
85
|
+
"onDestroy": "?((application: ApplicationInstance<object & ApplicationOptions, object, unknown>, options: unknown) => unknown) | undefined",
|
|
86
|
+
"onStart": "?((application: ApplicationInstance<object & ApplicationOptions, object, unknown>, options: unknown, result: unknown) => unknown) | undefined",
|
|
87
|
+
"onStop": "?((application: ApplicationInstance<object & ApplicationOptions, object, unknown>, options: unknown) => unknown) | undefined",
|
|
88
88
|
"options": "object & ApplicationOptions",
|
|
89
89
|
"preinitialize": "(options?: (object & ApplicationOptions) | undefined) => void",
|
|
90
|
+
"prepareDestroy": "?((options: unknown, context: LifecycleContext) => unknown) | undefined",
|
|
91
|
+
"prepareStart": "?((options: unknown, context: LifecycleContext) => unknown) | undefined",
|
|
92
|
+
"prepareStop": "?((options: unknown, context: LifecycleContext) => unknown) | undefined",
|
|
90
93
|
"Radio": "RadioApi",
|
|
91
94
|
"radioEvents": "?object | (() => object) | undefined",
|
|
92
95
|
"radioRequests": "?object | (() => object) | undefined",
|
|
93
96
|
"region": "?RegionDefinition | undefined",
|
|
94
97
|
"regionClass": "RegionClass",
|
|
95
|
-
"removeChildApp": "(name: string, options?: unknown) => Promise<ApplicationInstance<object, unknown> | undefined>",
|
|
98
|
+
"removeChildApp": "(name: string, options?: unknown) => Promise<ApplicationInstance<object, unknown, unknown> | undefined>",
|
|
96
99
|
"restart": "(options?: unknown) => Promise<boolean>",
|
|
97
100
|
"setView": "<Child extends SupportedView>(view: Child) => Child",
|
|
98
101
|
"showView": "{ (view?: undefined, options?: ShowOptions | undefined): SupportedView | undefined; <Child extends SupportedView>(view: Child, options?: ShowOptions | undefined): Child; }",
|
|
@@ -139,6 +142,9 @@
|
|
|
139
142
|
"onStart",
|
|
140
143
|
"onStop",
|
|
141
144
|
"preinitialize",
|
|
145
|
+
"prepareDestroy",
|
|
146
|
+
"prepareStart",
|
|
147
|
+
"prepareStop",
|
|
142
148
|
"removeChildApp",
|
|
143
149
|
"restart",
|
|
144
150
|
"setView",
|
|
@@ -257,6 +263,15 @@
|
|
|
257
263
|
"preinitialize": [
|
|
258
264
|
"application-composition"
|
|
259
265
|
],
|
|
266
|
+
"prepareDestroy": [
|
|
267
|
+
"application-lifecycle"
|
|
268
|
+
],
|
|
269
|
+
"prepareStart": [
|
|
270
|
+
"application-lifecycle"
|
|
271
|
+
],
|
|
272
|
+
"prepareStop": [
|
|
273
|
+
"application-lifecycle"
|
|
274
|
+
],
|
|
260
275
|
"removeChildApp": [
|
|
261
276
|
"application-composition"
|
|
262
277
|
],
|
|
@@ -309,7 +324,7 @@
|
|
|
309
324
|
"call"
|
|
310
325
|
],
|
|
311
326
|
"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>>"
|
|
327
|
+
"<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
328
|
],
|
|
314
329
|
"instance": {},
|
|
315
330
|
"callableInstanceMembers": [],
|
|
@@ -330,7 +345,7 @@
|
|
|
330
345
|
{
|
|
331
346
|
"name": "ApplicationInstance",
|
|
332
347
|
"kind": "type",
|
|
333
|
-
"signature": "ApplicationInstance<Options, State>",
|
|
348
|
+
"signature": "ApplicationInstance<Options, State, StartResult>",
|
|
334
349
|
"contracts": [
|
|
335
350
|
"type-shapes"
|
|
336
351
|
],
|
|
@@ -344,8 +359,8 @@
|
|
|
344
359
|
"createState": "(options?: Options | undefined) => unknown",
|
|
345
360
|
"destroy": "(options?: unknown) => Promise<boolean>",
|
|
346
361
|
"getChannel": "() => Channel | undefined",
|
|
347
|
-
"getChildApp": "(name: string) => ApplicationInstance<object, unknown> | undefined",
|
|
348
|
-
"getChildApps": "() => Record<string, ApplicationInstance<object, unknown>>",
|
|
362
|
+
"getChildApp": "(name: string) => ApplicationInstance<object, unknown, unknown> | undefined",
|
|
363
|
+
"getChildApps": "() => Record<string, ApplicationInstance<object, unknown, unknown>>",
|
|
349
364
|
"getName": "() => string | undefined",
|
|
350
365
|
"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
366
|
"getRegion": "() => RegionInstance<RegionOptions> | undefined",
|
|
@@ -361,21 +376,24 @@
|
|
|
361
376
|
"normalizeMethods": "{ (this: unknown, hash?: false | \"\" | 0 | 0n | null | undefined): undefined; (this: unknown, hash: object): EventMap; (this: unknown, hash?: OptionalBindings): EventMap | undefined; }",
|
|
362
377
|
"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
378
|
"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
|
|
365
|
-
"onBeforeStart": "?((application: ApplicationInstance<Options, State>, options: unknown
|
|
366
|
-
"onBeforeStop": "?((application: ApplicationInstance<Options, State>, options: unknown
|
|
379
|
+
"onBeforeDestroy": "?((application: ApplicationInstance<Options, State, StartResult>, options: unknown) => unknown) | undefined",
|
|
380
|
+
"onBeforeStart": "?((application: ApplicationInstance<Options, State, StartResult>, options: unknown) => unknown) | undefined",
|
|
381
|
+
"onBeforeStop": "?((application: ApplicationInstance<Options, State, StartResult>, options: unknown) => unknown) | undefined",
|
|
367
382
|
"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",
|
|
383
|
+
"onDestroy": "?((application: ApplicationInstance<Options, State, StartResult>, options: unknown) => unknown) | undefined",
|
|
384
|
+
"onStart": "?((application: ApplicationInstance<Options, State, StartResult>, options: unknown, result: StartResult) => unknown) | undefined",
|
|
385
|
+
"onStop": "?((application: ApplicationInstance<Options, State, StartResult>, options: unknown) => unknown) | undefined",
|
|
371
386
|
"options": "Options",
|
|
372
387
|
"preinitialize": "(options?: Options | undefined) => void",
|
|
388
|
+
"prepareDestroy": "?((options: unknown, context: LifecycleContext) => unknown) | undefined",
|
|
389
|
+
"prepareStart": "?((options: unknown, context: LifecycleContext) => StartResult | PromiseLike<StartResult>) | undefined",
|
|
390
|
+
"prepareStop": "?((options: unknown, context: LifecycleContext) => unknown) | undefined",
|
|
373
391
|
"Radio": "RadioApi",
|
|
374
392
|
"radioEvents": "?object | (() => object) | undefined",
|
|
375
393
|
"radioRequests": "?object | (() => object) | undefined",
|
|
376
394
|
"region": "?RegionDefinition | undefined",
|
|
377
395
|
"regionClass": "RegionClass",
|
|
378
|
-
"removeChildApp": "(name: string, options?: unknown) => Promise<ApplicationInstance<object, unknown> | undefined>",
|
|
396
|
+
"removeChildApp": "(name: string, options?: unknown) => Promise<ApplicationInstance<object, unknown, unknown> | undefined>",
|
|
379
397
|
"restart": "(options?: unknown) => Promise<boolean>",
|
|
380
398
|
"setView": "<Child extends SupportedView>(view: Child) => Child",
|
|
381
399
|
"showView": "{ (view?: undefined, options?: ShowOptions | undefined): SupportedView | undefined; <Child extends SupportedView>(view: Child, options?: ShowOptions | undefined): Child; }",
|
|
@@ -422,6 +440,9 @@
|
|
|
422
440
|
"onStart",
|
|
423
441
|
"onStop",
|
|
424
442
|
"preinitialize",
|
|
443
|
+
"prepareDestroy",
|
|
444
|
+
"prepareStart",
|
|
445
|
+
"prepareStop",
|
|
425
446
|
"removeChildApp",
|
|
426
447
|
"restart",
|
|
427
448
|
"setView",
|
|
@@ -529,6 +550,15 @@
|
|
|
529
550
|
"preinitialize": [
|
|
530
551
|
"type-shapes"
|
|
531
552
|
],
|
|
553
|
+
"prepareDestroy": [
|
|
554
|
+
"type-shapes"
|
|
555
|
+
],
|
|
556
|
+
"prepareStart": [
|
|
557
|
+
"type-shapes"
|
|
558
|
+
],
|
|
559
|
+
"prepareStop": [
|
|
560
|
+
"type-shapes"
|
|
561
|
+
],
|
|
532
562
|
"removeChildApp": [
|
|
533
563
|
"type-shapes"
|
|
534
564
|
],
|
|
@@ -5312,7 +5342,7 @@
|
|
|
5312
5342
|
},
|
|
5313
5343
|
{
|
|
5314
5344
|
"name": "@mnjs/utils",
|
|
5315
|
-
"version": "5.0.0-beta.
|
|
5345
|
+
"version": "5.0.0-beta.4",
|
|
5316
5346
|
"kind": "runtime",
|
|
5317
5347
|
"source": "packages/utils/src/index.ts",
|
|
5318
5348
|
"conditions": {
|
|
@@ -5933,7 +5963,7 @@
|
|
|
5933
5963
|
},
|
|
5934
5964
|
{
|
|
5935
5965
|
"name": "@mnjs/radio",
|
|
5936
|
-
"version": "5.0.0-beta.
|
|
5966
|
+
"version": "5.0.0-beta.4",
|
|
5937
5967
|
"kind": "runtime",
|
|
5938
5968
|
"source": "packages/radio/src/index.ts",
|
|
5939
5969
|
"conditions": {
|
|
@@ -6394,7 +6424,7 @@
|
|
|
6394
6424
|
},
|
|
6395
6425
|
{
|
|
6396
6426
|
"name": "@mnjs/data",
|
|
6397
|
-
"version": "5.0.0-beta.
|
|
6427
|
+
"version": "5.0.0-beta.4",
|
|
6398
6428
|
"kind": "runtime",
|
|
6399
6429
|
"source": "packages/data/src/index.ts",
|
|
6400
6430
|
"conditions": {
|
|
@@ -6927,7 +6957,7 @@
|
|
|
6927
6957
|
},
|
|
6928
6958
|
{
|
|
6929
6959
|
"name": "@mnjs/adapters/backbone",
|
|
6930
|
-
"version": "5.0.0-beta.
|
|
6960
|
+
"version": "5.0.0-beta.4",
|
|
6931
6961
|
"kind": "runtime",
|
|
6932
6962
|
"source": "packages/adapters/src/data/backbone.ts",
|
|
6933
6963
|
"conditions": {
|
|
@@ -7002,7 +7032,7 @@
|
|
|
7002
7032
|
},
|
|
7003
7033
|
{
|
|
7004
7034
|
"name": "@mnjs/adapters/dom/jquery",
|
|
7005
|
-
"version": "5.0.0-beta.
|
|
7035
|
+
"version": "5.0.0-beta.4",
|
|
7006
7036
|
"kind": "runtime",
|
|
7007
7037
|
"source": "packages/adapters/src/dom/jquery.ts",
|
|
7008
7038
|
"conditions": {
|
|
@@ -7062,7 +7092,7 @@
|
|
|
7062
7092
|
},
|
|
7063
7093
|
{
|
|
7064
7094
|
"name": "@mnjs/adapters/xstate",
|
|
7065
|
-
"version": "5.0.0-beta.
|
|
7095
|
+
"version": "5.0.0-beta.4",
|
|
7066
7096
|
"kind": "runtime",
|
|
7067
7097
|
"source": "packages/adapters/src/data/xstate.ts",
|
|
7068
7098
|
"conditions": {
|
|
@@ -7149,7 +7179,7 @@
|
|
|
7149
7179
|
},
|
|
7150
7180
|
{
|
|
7151
7181
|
"name": "@mnjs/adapters/dom/morphdom",
|
|
7152
|
-
"version": "5.0.0-beta.
|
|
7182
|
+
"version": "5.0.0-beta.4",
|
|
7153
7183
|
"kind": "runtime",
|
|
7154
7184
|
"source": "packages/adapters/src/dom/morphdom.ts",
|
|
7155
7185
|
"conditions": {
|
|
@@ -7189,7 +7219,7 @@
|
|
|
7189
7219
|
},
|
|
7190
7220
|
{
|
|
7191
7221
|
"name": "@mnjs/adapters/dom/lit-html",
|
|
7192
|
-
"version": "5.0.0-beta.
|
|
7222
|
+
"version": "5.0.0-beta.4",
|
|
7193
7223
|
"kind": "runtime",
|
|
7194
7224
|
"source": "packages/adapters/src/dom/lit-html.ts",
|
|
7195
7225
|
"conditions": {
|
|
@@ -7806,8 +7836,7 @@
|
|
|
7806
7836
|
"kind": "literal",
|
|
7807
7837
|
"arguments": [
|
|
7808
7838
|
"application",
|
|
7809
|
-
"options"
|
|
7810
|
-
"context"
|
|
7839
|
+
"options"
|
|
7811
7840
|
]
|
|
7812
7841
|
},
|
|
7813
7842
|
{
|
|
@@ -7816,7 +7845,8 @@
|
|
|
7816
7845
|
"kind": "literal",
|
|
7817
7846
|
"arguments": [
|
|
7818
7847
|
"application",
|
|
7819
|
-
"options"
|
|
7848
|
+
"options",
|
|
7849
|
+
"result"
|
|
7820
7850
|
]
|
|
7821
7851
|
},
|
|
7822
7852
|
{
|
|
@@ -7825,8 +7855,7 @@
|
|
|
7825
7855
|
"kind": "literal",
|
|
7826
7856
|
"arguments": [
|
|
7827
7857
|
"application",
|
|
7828
|
-
"options"
|
|
7829
|
-
"context"
|
|
7858
|
+
"options"
|
|
7830
7859
|
]
|
|
7831
7860
|
},
|
|
7832
7861
|
{
|
|
@@ -7844,8 +7873,7 @@
|
|
|
7844
7873
|
"kind": "literal",
|
|
7845
7874
|
"arguments": [
|
|
7846
7875
|
"this",
|
|
7847
|
-
"options"
|
|
7848
|
-
"context"
|
|
7876
|
+
"options"
|
|
7849
7877
|
]
|
|
7850
7878
|
},
|
|
7851
7879
|
{
|
|
@@ -8013,7 +8041,7 @@
|
|
|
8013
8041
|
"src/mixins/ui.ts": "5cb417e1456cd17b43357e480102be3fc1b436167c43b853af7d45ab79d35ffd",
|
|
8014
8042
|
"src/mixins/view-events.ts": "108a31ba7d0f74916848c5b2f85b422afe15703a8e9fa2dbca0b17b6a5ff0fb2",
|
|
8015
8043
|
"src/mixins/view.ts": "d0895d07d087d24d5cd8ce8d051a7acbbc9cee64fd2b5a6824b26973fc064e18",
|
|
8016
|
-
"src/modules/application.ts": "
|
|
8044
|
+
"src/modules/application.ts": "3c6be0f0d93e171a5d258d19556c3955f34ff00726f70ec10a4262f84e9e82af",
|
|
8017
8045
|
"src/modules/behavior.ts": "475fe0451e629559992bd0f5ec18ad16438309b018bf643b5917dfc47a1693b6",
|
|
8018
8046
|
"src/modules/child-view-container.ts": "ab52685a0a4fd8861534b8e9784704791c3e72a15ee19547766293be4a030803",
|
|
8019
8047
|
"src/modules/collection-view.ts": "40bbaefedea29de171597e905f8fdde7ee6f55877da9e441996c9b5bf56bfe58",
|
|
@@ -8037,33 +8065,34 @@
|
|
|
8037
8065
|
"config/diagnostics/catalog.json": "76cc4270e2ec939078cc3c8537d66e45bf0a58010fe25eeef81ab21f58886997",
|
|
8038
8066
|
"docs/choosing-integrations.md": "385bfb2c7d85a8e0db71fd795ed1fef488aa637aa5094e93210810ff91f31f12",
|
|
8039
8067
|
"docs/common.md": "1d14004d1c49e98ca40be9fd28d35faaf372f2a12f13fae6afa3cac8a8bf14cc",
|
|
8040
|
-
"docs/data.api.md": "
|
|
8068
|
+
"docs/data.api.md": "5b714e990415d75982e78aaa62c0e86ad4b2fb0e75ea089fd994a080fdcee01a",
|
|
8041
8069
|
"docs/diagnostic-catalog.md": "1df844c7e8edbea59a8c07776d656d45f77266108babb770d7690183fe85d180",
|
|
8042
8070
|
"docs/dom.api.md": "a697a637ae4c6cc92aa5d72850b404763f08e0417800feacc0b431ec073d3916",
|
|
8043
8071
|
"docs/dom.interactions.md": "81bd678c7d498e08c08c84cfc3bbe1d27451ef46ed521e67fff4f72450bdbadb",
|
|
8044
|
-
"docs/events.class.md": "
|
|
8072
|
+
"docs/events.class.md": "faed5ac4f6eca3ec447ae7cd44b6efd8f039e935b38a4c191076d485bd57a35f",
|
|
8045
8073
|
"docs/events.md": "227484aca95a4003903bd8df51f3c38c11144480ace919b63bacbf5bc2bb3d22",
|
|
8046
|
-
"docs/marionette.application.md": "
|
|
8074
|
+
"docs/marionette.application.md": "bbb8db3bc58f2b021d9dd77d748a3a005ee9b6a3410d3a897c171dc8b3fb1a85",
|
|
8047
8075
|
"docs/marionette.behavior.md": "bf002b5ba380cf1bb1054b98f9813d89b4aef16ba6495d02b823ed178ab3f0c4",
|
|
8048
8076
|
"docs/marionette.collectionview.md": "5af1ed04daaf0e976fdd0538b0931fd370fd09167079d0c21b01195f8628cefe",
|
|
8049
8077
|
"docs/marionette.mnobject.md": "056bb3041902d66831a0031e2e9c97770f485f613450861ae55aba46ca592243",
|
|
8050
8078
|
"docs/marionette.region.md": "6716880b5ab5a6bf7b4b4a6dd7b66e7fdb7bd9c1c451578ad551d64f4be9e40d",
|
|
8051
8079
|
"docs/marionette.state.md": "fbee628142604499747a83f19055b05c0ba5831944760cf0910cc11cceef55f5",
|
|
8052
8080
|
"docs/marionette.view.md": "b7b5871b0b56474cc3bc2513c2e2c4fdabdafcd724bfbaa8076ea7eee40d5ab5",
|
|
8053
|
-
"docs/optional-backbone.md": "
|
|
8081
|
+
"docs/optional-backbone.md": "8f8323ba79c77de961b81c1e6f9d3ed10efa5566629772054de201ea247ddaba",
|
|
8054
8082
|
"docs/radio.md": "c0013e382554aa6cd4e46ab60908f5e6cce7117c134b3f4656c37a163f8a5f4e",
|
|
8055
8083
|
"docs/runtime-isolation.md": "e18927a5aa30558805018c9c28dffceaf02d953394efce8eaa7d35f0711de7f4",
|
|
8056
8084
|
"docs/typescript.md": "47ec746e0dcc04cce56f6227f0645d4c777585a2ae797f00c4683b32585922f1",
|
|
8057
8085
|
"docs/utils.md": "5c2d0854895bb19f613926788cf81c5849cf18af1e43ac540e860b226fa80d2a",
|
|
8058
8086
|
"docs/view.lifecycle.md": "2cc29e59e056174bb2fcbd2888ee508ff6fb044b86e9fcacd1025c1f4e036133",
|
|
8059
8087
|
"docs/view.rendering.md": "6b397b0925b00c06ff644cd549b2273ba6235e1d6148ad6fa0514394f9c92df5",
|
|
8060
|
-
"packages/adapters/readme.md": "
|
|
8061
|
-
"packages/data/readme.md": "
|
|
8062
|
-
"packages/utils/readme.md": "
|
|
8088
|
+
"packages/adapters/readme.md": "67bca53b26a2facef67f4bc04931af31cbe9923167a9e62c98aa9789c40fd291",
|
|
8089
|
+
"packages/data/readme.md": "45fe77f1744e39746be2c0f6ee872298f18fe9c12f7f7d94827c041b0e7f4b02",
|
|
8090
|
+
"packages/utils/readme.md": "8ba1130cd1b6fd0aac3dd945d100bb2cebc8c87212890f1229a0863e2d9e4755",
|
|
8063
8091
|
"test/contracts/dom-adapters.js": "a3f71df6a2e52f8d4a52ebb2d3cbbc8e77e055f459daf7c071f4e5fd55ad8c3f",
|
|
8064
|
-
"test/unit/application-child-lifecycle.spec.js": "
|
|
8065
|
-
"test/unit/application-lifecycle.spec.js": "
|
|
8066
|
-
"test/unit/application-ownership.spec.js": "
|
|
8092
|
+
"test/unit/application-child-lifecycle.spec.js": "e69e6a140e341563b49333d09bd1c483151f9f4b2a494960a4dfc78bb81f8dcb",
|
|
8093
|
+
"test/unit/application-lifecycle.spec.js": "43da21063d3b03c1c16fd047735458a26a98abe003ef75e607bad0f01a473f37",
|
|
8094
|
+
"test/unit/application-ownership.spec.js": "f1e6a74f639bb6ceedd85957c696a45de28e1526ed41df0f34663a23b25bb68f",
|
|
8095
|
+
"test/unit/application-preparation.spec.js": "23e58351eec5983b4d412be099a7e9306f4b758a1f501874f46baca8be940b56",
|
|
8067
8096
|
"test/unit/application-prepared-view.spec.js": "440619dba9c73570974f1531bbe8b601fcb9a27ed64b499d6c10b9e8ca955dca",
|
|
8068
8097
|
"test/unit/application-root-view.spec.js": "2c1c642bb872836425b942580cc6600236cf3110186b427b1f7b2fd6263ff78d",
|
|
8069
8098
|
"test/unit/backbone-adapter.spec.js": "016907f55d5e20d695f916dbd4189ac7e3e543a0f903df6a3922c207dade59df",
|
|
@@ -8090,7 +8119,7 @@
|
|
|
8090
8119
|
"test/unit/events-parity.spec.js": "a0ec7cd3dac3636803ec6ecc6fb7161df2a74fa7d5e6d532477e12539a9bd71c",
|
|
8091
8120
|
"test/unit/events-single-dispatch.spec.js": "9405ceb5a59c4ebddf3aeb4a902588dcf81a6bc35aca40bde0e8aa41760fb6ce",
|
|
8092
8121
|
"test/unit/jquery-dom-api.spec.js": "4b0187d3ca5dac647394dd906fe6c6ca11764688c12ef864bc4eae867a629ded",
|
|
8093
|
-
"test/unit/model-based/application.spec.js": "
|
|
8122
|
+
"test/unit/model-based/application.spec.js": "e40a27ede3317869f8e3a1e10563be78f1bfe768365d62bcd1fedd38322a84ed",
|
|
8094
8123
|
"test/unit/modules-error.spec.js": "3ca32416b3329999cb3fcdd3fbc66751d722e7a2c0082195b702b64dce6284c3",
|
|
8095
8124
|
"test/unit/object.spec.js": "ca82986738229a1af224aa3bd2b0ab88d70ca92dc556806796e5b056b19ebb3e",
|
|
8096
8125
|
"test/unit/provider-acceptance.spec.js": "9eb8795a222745b41ba2d76ae770dfa702e2f0f1ec8e17be8402be42c6166db9",
|
|
@@ -1509,10 +1509,10 @@
|
|
|
1509
1509
|
"Application"
|
|
1510
1510
|
],
|
|
1511
1511
|
"result": "Operations resolve true at the requested target, false when superseded, and compatible calls share in-flight promises. Current readiness failure rejects the operation promise.",
|
|
1512
|
-
"timing": "
|
|
1512
|
+
"timing": "Before and completion notifications are synchronous and ignore returns. Only prepareStart/prepareStop/prepareDestroy are awaited with options and an abort context; start completion receives one resolved preparation result. Supersession aborts before replacement preparation; adopted stop retains its original context/options without abort.",
|
|
1513
1513
|
"ownership": "Registration never starts children. Callers explicitly await prerequisites. Stop/destroy traverse all owned descendants, including stopped intermediate owners; descendants cannot start/restart during an ancestor stop or terminal phase.",
|
|
1514
1514
|
"mutation": "Canceled readiness cannot append stale framework completion events or alter stable state.",
|
|
1515
|
-
"repetition": "Compatible calls share promises. A stopped owner still drains owned descendants without repeating its own stop notifications. Restart deactivates children; reactivation is explicit.",
|
|
1515
|
+
"repetition": "Compatible calls share promises. A stopped owner still drains owned descendants without repeating its own stop preparation or notifications. Restart deactivates children; reactivation is explicit.",
|
|
1516
1516
|
"destruction": "Destruction blocks owner and descendant start/restart; successful destruction destroys owned children. Readiness rejection preserves the documented retry and partial-child boundaries.",
|
|
1517
1517
|
"diagnostics": [],
|
|
1518
1518
|
"docs": [
|
|
@@ -1569,6 +1569,10 @@
|
|
|
1569
1569
|
{
|
|
1570
1570
|
"file": "test/unit/application-child-lifecycle.spec.js",
|
|
1571
1571
|
"title": "clears prepared roots beneath already-stopped children without inventing stop hooks"
|
|
1572
|
+
},
|
|
1573
|
+
{
|
|
1574
|
+
"file": "test/unit/application-preparation.spec.js",
|
|
1575
|
+
"title": "notifies before startup, awaits preparation, and forwards one result to completion"
|
|
1572
1576
|
}
|
|
1573
1577
|
],
|
|
1574
1578
|
"events": [
|
|
@@ -1578,16 +1582,25 @@
|
|
|
1578
1582
|
"before:stop",
|
|
1579
1583
|
"before:destroy"
|
|
1580
1584
|
],
|
|
1585
|
+
"arguments": [
|
|
1586
|
+
"application",
|
|
1587
|
+
"options"
|
|
1588
|
+
],
|
|
1589
|
+
"timing": "Synchronous notifications; method and listener return values are not consumed, and returned Promises are neither awaited nor rejection-handled. Preparation follows; start/stop preparation is skipped if the notification supersedes its pending operation. Destruction is terminal and cannot be superseded."
|
|
1590
|
+
},
|
|
1591
|
+
{
|
|
1592
|
+
"names": [
|
|
1593
|
+
"start"
|
|
1594
|
+
],
|
|
1581
1595
|
"arguments": [
|
|
1582
1596
|
"application",
|
|
1583
1597
|
"options",
|
|
1584
|
-
"
|
|
1598
|
+
"result"
|
|
1585
1599
|
],
|
|
1586
|
-
"timing": "
|
|
1600
|
+
"timing": "Synchronous completion after prepareStart resolves. The prepared result is one unchanged value; return values are ignored."
|
|
1587
1601
|
},
|
|
1588
1602
|
{
|
|
1589
1603
|
"names": [
|
|
1590
|
-
"start",
|
|
1591
1604
|
"stop",
|
|
1592
1605
|
"destroy"
|
|
1593
1606
|
],
|
|
@@ -1595,7 +1608,7 @@
|
|
|
1595
1608
|
"application",
|
|
1596
1609
|
"options"
|
|
1597
1610
|
],
|
|
1598
|
-
"timing": "
|
|
1611
|
+
"timing": "Synchronous completion after preparation and teardown; return values are ignored."
|
|
1599
1612
|
}
|
|
1600
1613
|
],
|
|
1601
1614
|
"members": [
|
|
@@ -1603,6 +1616,9 @@
|
|
|
1603
1616
|
"stop",
|
|
1604
1617
|
"restart",
|
|
1605
1618
|
"destroy",
|
|
1619
|
+
"prepareStart",
|
|
1620
|
+
"prepareStop",
|
|
1621
|
+
"prepareDestroy",
|
|
1606
1622
|
"onBeforeStart",
|
|
1607
1623
|
"onBeforeStop",
|
|
1608
1624
|
"onBeforeDestroy",
|
|
@@ -92,13 +92,13 @@ and lockfile, including any npm alias. A v4 application may use
|
|
|
92
92
|
marionette found” does not mean the application has no Marionette dependency.
|
|
93
93
|
|
|
94
94
|
Download the exact target into a temporary directory without installing it in the
|
|
95
|
-
application. This example inspects `5.0.0-beta.
|
|
95
|
+
application. This example inspects `5.0.0-beta.4`; set `migration_target_version` to
|
|
96
96
|
the exact release selected for your migration, not `latest` or `next`. Downloading
|
|
97
97
|
requires npm registry access; reading the extracted docs requires Node 24 or later.
|
|
98
98
|
Run these commands in the same shell:
|
|
99
99
|
|
|
100
100
|
```sh
|
|
101
|
-
migration_target_version="5.0.0-beta.
|
|
101
|
+
migration_target_version="5.0.0-beta.4"
|
|
102
102
|
migration_target_dir="$(mktemp -d)"
|
|
103
103
|
npm pack "marionette@$migration_target_version" --ignore-scripts --pack-destination "$migration_target_dir"
|
|
104
104
|
tar -xzf "$migration_target_dir/marionette-$migration_target_version.tgz" -C "$migration_target_dir"
|
package/dist/docs/docs/agents.md
CHANGED
|
@@ -122,7 +122,7 @@ means the request was superseded. A current readiness failure rejects. Keep thos
|
|
|
122
122
|
outcomes distinct. Constructor hooks run synchronously, and completion hooks are synchronous
|
|
123
123
|
notifications; returning a Promise from them does not add readiness.
|
|
124
124
|
|
|
125
|
-
Pass the
|
|
125
|
+
Pass the preparation method's signal to cancellable work. After an asynchronous step,
|
|
126
126
|
check that it still belongs to the active operation before committing application
|
|
127
127
|
side effects. Marionette suppresses stale lifecycle completion; it cannot undo an
|
|
128
128
|
arbitrary write made by application code. Follow the complete
|
|
@@ -77,7 +77,7 @@ export function createStatusFeature({ el, state, channel, load, beforeStop = asy
|
|
|
77
77
|
updateDisplay() {
|
|
78
78
|
this.getView()?.update(this.label, this.getState().get('filter'));
|
|
79
79
|
},
|
|
80
|
-
async
|
|
80
|
+
async prepareStart(options, { signal }) {
|
|
81
81
|
this.effects?.dispose();
|
|
82
82
|
// Seed before subscribing. The source is borrowed and survives each run.
|
|
83
83
|
if (state.get('filter') === undefined) { state.set('filter', 'open'); }
|
|
@@ -115,7 +115,7 @@ export function createStatusFeature({ el, state, channel, load, beforeStop = asy
|
|
|
115
115
|
this.showView(new StatusView());
|
|
116
116
|
this.updateDisplay();
|
|
117
117
|
},
|
|
118
|
-
|
|
118
|
+
prepareStop(options, context) {
|
|
119
119
|
// A rejected permission leaves the running feature and its effects intact.
|
|
120
120
|
return beforeStop(options, context);
|
|
121
121
|
},
|
|
@@ -121,7 +121,7 @@ export async function createResultsFeature({ el, items, loadItems, beforeStop =
|
|
|
121
121
|
}
|
|
122
122
|
});
|
|
123
123
|
},
|
|
124
|
-
|
|
124
|
+
prepareStop(options, context) { return beforeStop(options, context); },
|
|
125
125
|
onStop() { requests?.dispose(); },
|
|
126
126
|
onBeforeDestroy() { requests?.dispose(); }
|
|
127
127
|
});
|
package/dist/docs/docs/beta.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Try Marionette v5 beta
|
|
2
2
|
|
|
3
|
-
`5.0.0-beta.
|
|
3
|
+
`5.0.0-beta.4` is prepared for application trials. Registry installation requires
|
|
4
4
|
a published release; use certified tarballs before publication. Release promotion
|
|
5
5
|
sets npm `latest` to the current prerelease until stable v5. A matching version
|
|
6
6
|
string alone does not prove that a locally built artifact matches a release.
|
|
@@ -37,8 +37,9 @@ pins matching runtime dependencies; a candidate kit instead supplies exact local
|
|
|
37
37
|
tarballs and a complete lockfile. Both include application agent instructions,
|
|
38
38
|
typecheck, consumer lint, unit tests, build, and a browser-test command.
|
|
39
39
|
|
|
40
|
-
The registry path requires beta.
|
|
41
|
-
published candidate and
|
|
40
|
+
The registry path requires beta.4 to be published first. Beta.3 remains the previous
|
|
41
|
+
published candidate and awaits Application `onBefore*` hooks rather than this beta's
|
|
42
|
+
`prepare*` methods. Move asynchronous preparation to the new methods before upgrading.
|
|
42
43
|
|
|
43
44
|
The starter has editable rows, asynchronous local selection, deliberate cancellation,
|
|
44
45
|
and teardown. It has no backend, persistence, or URL router. Connect its `navigate`
|
|
@@ -82,7 +83,7 @@ permission, propagation, or trusted-publisher configuration.
|
|
|
82
83
|
|
|
83
84
|
## If the beta fails in your application
|
|
84
85
|
|
|
85
|
-
Pin `5.0.0-beta.
|
|
86
|
+
Pin `5.0.0-beta.3` across all five packages and restore the matching application
|
|
86
87
|
code and lockfile. The old `marionette@5.0.0-alpha.2` is not an API-compatible
|
|
87
88
|
rollback for this candidate. Existing v4 applications should retain their
|
|
88
89
|
pre-migration revision and `backbone.marionette` lockfile until their beta trial
|
|
@@ -91,5 +92,5 @@ succeeds.
|
|
|
91
92
|
Maintainers must not overwrite a published beta version. Withdraw its recommendation,
|
|
92
93
|
deprecate a broken version with a specific reason, and publish a corrected beta.
|
|
93
94
|
Move the selected npm tag (`latest` before the first stable v5) only to the verified
|
|
94
|
-
beta.
|
|
95
|
+
beta.3 release. Preserve exact artifacts and failure evidence.
|
|
95
96
|
See [release recovery](https://github.com/marionettejs/marionette/blob/master/docs/release-promotion.md#recovery-and-rollback).
|
|
@@ -19,7 +19,7 @@ Use plain functions or classes when you do not need Marionette lifecycle, events
|
|
|
19
19
|
|
|
20
20
|
A synchronous callback/adapter exception escapes; no successful result or rollback is promised. Synchronous; callback or adapter exceptions abort the operation without rollback or attempt-all cleanup. Accepted idempotence guards remain; Application asynchronous cancellation is a distinct contract. [Synchronous failures](./view.lifecycle.md).
|
|
21
21
|
|
|
22
|
-
Operations resolve true at the requested target, false when superseded, and compatible calls share in-flight promises. Current readiness failure rejects the operation promise.
|
|
22
|
+
Operations resolve true at the requested target, false when superseded, and compatible calls share in-flight promises. Current readiness failure rejects the operation promise. Before and completion notifications are synchronous and ignore returns. Only prepareStart/prepareStop/prepareDestroy are awaited with options and an abort context; start completion receives one resolved preparation result. Supersession aborts before replacement preparation; adopted stop retains its original context/options without abort. Destruction blocks owner and descendant start/restart; successful destruction destroys owned children. Readiness rejection preserves the documented retry and partial-child boundaries. [Application Lifecycle](./marionette.application.md).
|
|
23
23
|
|
|
24
24
|
Construction, addChildApp, setView and showView(view) return their public instance; showView() returns the prepared or current View, or undefined; removeChildApp returns a Promise of the removed child or undefined; queries return the declared state or optional owner member. Construction, registration, root preparation/display and queries are synchronous; removeChildApp awaits child destruction before releasing ownership. Stop destroys a prepared View and empties the host. Destroy also tears down owned children and a constructed root Region; it preserves a borrowed Region. Direct destruction releases preparation; displayed Views follow Region cleanup and detachment. [Application Lifecycle](./marionette.application.md).
|
|
25
25
|
|
|
@@ -216,7 +216,7 @@ Install `@mnjs/data` with `marionette` when an application wants a small
|
|
|
216
216
|
first-party observable Model and ordered Collection without Backbone:
|
|
217
217
|
|
|
218
218
|
```sh
|
|
219
|
-
npm install marionette@5.0.0-beta.
|
|
219
|
+
npm install marionette@5.0.0-beta.4 @mnjs/data@5.0.0-beta.4
|
|
220
220
|
```
|
|
221
221
|
|
|
222
222
|
```javascript
|