@foxford/den 1.0.2 → 2.0.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.
- package/adapter.cjs +3 -2
- package/adapter.d.cts +1 -1
- package/adapter.d.ts +1 -1
- package/adapter.js +2 -1
- package/{chunk-4FPCRHSM.cjs → chunk-5DJZZML5.cjs} +15 -35
- package/chunk-A6ZPAM6Z.cjs +26 -0
- package/chunk-C7BM4DGX.cjs +18 -0
- package/chunk-HJO26HIQ.js +41 -0
- package/chunk-LJE7K7VD.cjs +35 -0
- package/chunk-TCYGDT2A.js +35 -0
- package/chunk-TPBI6TOU.js +26 -0
- package/{chunk-E7HG2NXO.js → chunk-WBHHHICS.js} +0 -22
- package/{chunk-S5KTWI6P.js → chunk-WRQC6BVJ.js} +9 -29
- package/chunk-XHYR3SGG.cjs +41 -0
- package/define-repository-DZg34Tb3.d.ts +83 -0
- package/define-repository-OpMj-Q9O.d.cts +83 -0
- package/define-slot-ESU7FR9O.d.ts +74 -0
- package/define-slot-RfgqKa6n.d.cts +74 -0
- package/define.cjs +6 -3
- package/define.d.cts +3 -2
- package/define.d.ts +3 -2
- package/define.js +7 -4
- package/index.cjs +32 -25
- package/index.d.cts +11 -10
- package/index.d.ts +11 -10
- package/index.js +14 -7
- package/island/index.cjs +137 -0
- package/island/index.d.cts +158 -0
- package/island/index.d.ts +158 -0
- package/island/index.js +137 -0
- package/package.json +26 -10
- package/types-Deyolj1-.d.cts +802 -0
- package/types-Deyolj1-.d.ts +802 -0
- package/view-adapter-CL0vZ-rv.d.ts +110 -0
- package/view-adapter-vwO-7b1t.d.cts +110 -0
- package/chunk-NRE6DV6O.cjs +0 -40
- package/define-slot--HM6B232.d.ts +0 -500
- package/define-slot-es1K6_-L.d.cts +0 -500
- package/types-B4Arep3V.d.cts +0 -415
- package/types-B4Arep3V.d.ts +0 -415
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { z as Definition, s as LayerDefinition } from './types-Deyolj1-.js';
|
|
2
|
+
import { Container } from '@foxford/ioc';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Дескриптор слота — host-агностичен: непрозрачный `view` + опциональные `units`.
|
|
6
|
+
*
|
|
7
|
+
* `view` типизирован как `unknown` — ядро не знает про React/Vue: рендерит его view-адаптер.
|
|
8
|
+
*
|
|
9
|
+
* Имени у слота НЕТ: его выдаёт тот, кто слот к себе взял, ключом в карте `slots` своего
|
|
10
|
+
* дескриптора. Так адрес места принадлежит хозяину места, а не пакету, который написал для
|
|
11
|
+
* него view, и занять чужое пространство имён нечем — префикс не в руках объявляющего.
|
|
12
|
+
*/
|
|
13
|
+
interface SlotDefinition {
|
|
14
|
+
/** Дискриминатор типа. */
|
|
15
|
+
readonly __type: 'slot';
|
|
16
|
+
/** Непрозрачная ссылка на view слота (компонент view-фреймворка). */
|
|
17
|
+
readonly view?: unknown;
|
|
18
|
+
/** Data/Business единицы слота (изолированная секция). */
|
|
19
|
+
readonly units: readonly Definition<unknown>[];
|
|
20
|
+
/** View-слой слота, если он переопределён (см. {@link DefineSlotOptions.viewLayer}). */
|
|
21
|
+
readonly viewLayer?: LayerDefinition;
|
|
22
|
+
/**
|
|
23
|
+
* Регистрирует единицы слота и кладёт сам слот в `SlotRegistry` контейнера.
|
|
24
|
+
* @param container - Контейнер (острова/страницы/запроса)
|
|
25
|
+
* @param name - Имя слота в этом контейнере — ключ из карты `slots` дескриптора
|
|
26
|
+
*/
|
|
27
|
+
register(container: Container, name: string): void;
|
|
28
|
+
}
|
|
29
|
+
/** Опции `defineSlot`. */
|
|
30
|
+
interface DefineSlotOptions {
|
|
31
|
+
/**
|
|
32
|
+
* Непрозрачная ссылка на view слота. Необязательна: чистое место под чужой контент
|
|
33
|
+
* своего содержимого не имеет.
|
|
34
|
+
*/
|
|
35
|
+
view?: unknown;
|
|
36
|
+
/** Data/Business единицы слота (по умолчанию пусто). */
|
|
37
|
+
units?: readonly Definition<unknown>[];
|
|
38
|
+
/**
|
|
39
|
+
* Переопределение view-слоя ДЛЯ ЭТОГО слота: `defineLayer(ViewLayerToken, { adapter })`.
|
|
40
|
+
*
|
|
41
|
+
* По умолчанию слот рисуется адаптером острова, в который попал, — так слот из чужого
|
|
42
|
+
* пакета встаёт в любое приложение. Указывать стоит там, где слот написан на другом
|
|
43
|
+
* фреймворке, чем принимающий остров.
|
|
44
|
+
*/
|
|
45
|
+
viewLayer?: LayerDefinition;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Объявляет слот — самостоятельную `define*`-единицу расширения.
|
|
49
|
+
*
|
|
50
|
+
* `register(container, name)` регистрирует `units` и добавляет `{ name, view }` в
|
|
51
|
+
* `SlotRegistry` контейнера (get-or-create). Реестр живёт в контейнере ОСТРОВА, поэтому
|
|
52
|
+
* имена в нём локальные и с соседними приложениями не пересекаются; глобальный адрес для
|
|
53
|
+
* `mountsInto` собирается из имени приложения (см. `slotAddress` в `@foxford/den/island`).
|
|
54
|
+
*
|
|
55
|
+
* Рендерит слот view-адаптер — по умолчанию тот же, что у принимающего острова; свой
|
|
56
|
+
* адаптер слот получает через `viewLayer`.
|
|
57
|
+
*
|
|
58
|
+
* @param options - Непрозрачный `view`, опциональные `units` и `viewLayer`
|
|
59
|
+
* @returns Дескриптор `SlotDefinition`
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* // приложение объявляет место у себя — имя даёт ключ в карте `slots`
|
|
63
|
+
* export default defineApp({
|
|
64
|
+
* name: 'market-app',
|
|
65
|
+
* slots: { aside: defineSlot({ view: AsideView }) },
|
|
66
|
+
* })
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* // любой пакет — экспортит слот-юнит, не зная, куда он смонтируется и как будет назван
|
|
70
|
+
* export const chatSlot = defineSlot({ view: ChatView, units: [chatRepository] })
|
|
71
|
+
*/
|
|
72
|
+
declare function defineSlot({ view, units, viewLayer }?: DefineSlotOptions): SlotDefinition;
|
|
73
|
+
|
|
74
|
+
export { type DefineSlotOptions as D, type SlotDefinition as S, defineSlot as d };
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { z as Definition, s as LayerDefinition } from './types-Deyolj1-.cjs';
|
|
2
|
+
import { Container } from '@foxford/ioc';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Дескриптор слота — host-агностичен: непрозрачный `view` + опциональные `units`.
|
|
6
|
+
*
|
|
7
|
+
* `view` типизирован как `unknown` — ядро не знает про React/Vue: рендерит его view-адаптер.
|
|
8
|
+
*
|
|
9
|
+
* Имени у слота НЕТ: его выдаёт тот, кто слот к себе взял, ключом в карте `slots` своего
|
|
10
|
+
* дескриптора. Так адрес места принадлежит хозяину места, а не пакету, который написал для
|
|
11
|
+
* него view, и занять чужое пространство имён нечем — префикс не в руках объявляющего.
|
|
12
|
+
*/
|
|
13
|
+
interface SlotDefinition {
|
|
14
|
+
/** Дискриминатор типа. */
|
|
15
|
+
readonly __type: 'slot';
|
|
16
|
+
/** Непрозрачная ссылка на view слота (компонент view-фреймворка). */
|
|
17
|
+
readonly view?: unknown;
|
|
18
|
+
/** Data/Business единицы слота (изолированная секция). */
|
|
19
|
+
readonly units: readonly Definition<unknown>[];
|
|
20
|
+
/** View-слой слота, если он переопределён (см. {@link DefineSlotOptions.viewLayer}). */
|
|
21
|
+
readonly viewLayer?: LayerDefinition;
|
|
22
|
+
/**
|
|
23
|
+
* Регистрирует единицы слота и кладёт сам слот в `SlotRegistry` контейнера.
|
|
24
|
+
* @param container - Контейнер (острова/страницы/запроса)
|
|
25
|
+
* @param name - Имя слота в этом контейнере — ключ из карты `slots` дескриптора
|
|
26
|
+
*/
|
|
27
|
+
register(container: Container, name: string): void;
|
|
28
|
+
}
|
|
29
|
+
/** Опции `defineSlot`. */
|
|
30
|
+
interface DefineSlotOptions {
|
|
31
|
+
/**
|
|
32
|
+
* Непрозрачная ссылка на view слота. Необязательна: чистое место под чужой контент
|
|
33
|
+
* своего содержимого не имеет.
|
|
34
|
+
*/
|
|
35
|
+
view?: unknown;
|
|
36
|
+
/** Data/Business единицы слота (по умолчанию пусто). */
|
|
37
|
+
units?: readonly Definition<unknown>[];
|
|
38
|
+
/**
|
|
39
|
+
* Переопределение view-слоя ДЛЯ ЭТОГО слота: `defineLayer(ViewLayerToken, { adapter })`.
|
|
40
|
+
*
|
|
41
|
+
* По умолчанию слот рисуется адаптером острова, в который попал, — так слот из чужого
|
|
42
|
+
* пакета встаёт в любое приложение. Указывать стоит там, где слот написан на другом
|
|
43
|
+
* фреймворке, чем принимающий остров.
|
|
44
|
+
*/
|
|
45
|
+
viewLayer?: LayerDefinition;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Объявляет слот — самостоятельную `define*`-единицу расширения.
|
|
49
|
+
*
|
|
50
|
+
* `register(container, name)` регистрирует `units` и добавляет `{ name, view }` в
|
|
51
|
+
* `SlotRegistry` контейнера (get-or-create). Реестр живёт в контейнере ОСТРОВА, поэтому
|
|
52
|
+
* имена в нём локальные и с соседними приложениями не пересекаются; глобальный адрес для
|
|
53
|
+
* `mountsInto` собирается из имени приложения (см. `slotAddress` в `@foxford/den/island`).
|
|
54
|
+
*
|
|
55
|
+
* Рендерит слот view-адаптер — по умолчанию тот же, что у принимающего острова; свой
|
|
56
|
+
* адаптер слот получает через `viewLayer`.
|
|
57
|
+
*
|
|
58
|
+
* @param options - Непрозрачный `view`, опциональные `units` и `viewLayer`
|
|
59
|
+
* @returns Дескриптор `SlotDefinition`
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* // приложение объявляет место у себя — имя даёт ключ в карте `slots`
|
|
63
|
+
* export default defineApp({
|
|
64
|
+
* name: 'market-app',
|
|
65
|
+
* slots: { aside: defineSlot({ view: AsideView }) },
|
|
66
|
+
* })
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* // любой пакет — экспортит слот-юнит, не зная, куда он смонтируется и как будет назван
|
|
70
|
+
* export const chatSlot = defineSlot({ view: ChatView, units: [chatRepository] })
|
|
71
|
+
*/
|
|
72
|
+
declare function defineSlot({ view, units, viewLayer }?: DefineSlotOptions): SlotDefinition;
|
|
73
|
+
|
|
74
|
+
export { type DefineSlotOptions as D, type SlotDefinition as S, defineSlot as d };
|
package/define.cjs
CHANGED
|
@@ -5,12 +5,14 @@
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
|
+
var _chunk5DJZZML5cjs = require('./chunk-5DJZZML5.cjs');
|
|
9
|
+
require('./chunk-C7BM4DGX.cjs');
|
|
8
10
|
|
|
9
11
|
|
|
10
12
|
|
|
11
|
-
var _chunk4FPCRHSMcjs = require('./chunk-4FPCRHSM.cjs');
|
|
12
|
-
require('./chunk-NRE6DV6O.cjs');
|
|
13
13
|
|
|
14
|
+
var _chunkA6ZPAM6Zcjs = require('./chunk-A6ZPAM6Z.cjs');
|
|
15
|
+
require('./chunk-XHYR3SGG.cjs');
|
|
14
16
|
|
|
15
17
|
|
|
16
18
|
|
|
@@ -20,4 +22,5 @@ require('./chunk-NRE6DV6O.cjs');
|
|
|
20
22
|
|
|
21
23
|
|
|
22
24
|
|
|
23
|
-
|
|
25
|
+
|
|
26
|
+
exports.LoggerToken = _chunkA6ZPAM6Zcjs.LoggerToken; exports.SlotRegistry = _chunk5DJZZML5cjs.SlotRegistry; exports.SlotRegistryToken = _chunk5DJZZML5cjs.SlotRegistryToken; exports.defineRepository = _chunk5DJZZML5cjs.defineRepository; exports.defineService = _chunk5DJZZML5cjs.defineService; exports.defineSlot = _chunk5DJZZML5cjs.defineSlot; exports.defineViewModel = _chunk5DJZZML5cjs.defineViewModel; exports.logger = _chunkA6ZPAM6Zcjs.logger; exports.scopeLogger = _chunkA6ZPAM6Zcjs.scopeLogger;
|
package/define.d.cts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
1
|
+
export { d as defineRepository, a as defineService, b as defineViewModel } from './define-repository-OpMj-Q9O.cjs';
|
|
2
|
+
export { D as DefineSlotOptions, S as SlotDefinition, d as defineSlot } from './define-slot-RfgqKa6n.cjs';
|
|
3
|
+
export { w as DefineRepositoryOptions, x as DefineServiceOptions, y as DefineViewModelOptions, z as Definition, I as RepositoryDefinition, K as ServiceDefinition, M as SlotEntry, O as SlotRegistry, P as SlotRegistryToken, X as ViewModelDefinition } from './types-Deyolj1-.cjs';
|
|
3
4
|
import { Token, Container } from '@foxford/ioc';
|
|
4
5
|
import { HierarchicalLogger } from '@foxford/logger';
|
|
5
6
|
|
package/define.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
1
|
+
export { d as defineRepository, a as defineService, b as defineViewModel } from './define-repository-DZg34Tb3.js';
|
|
2
|
+
export { D as DefineSlotOptions, S as SlotDefinition, d as defineSlot } from './define-slot-ESU7FR9O.js';
|
|
3
|
+
export { w as DefineRepositoryOptions, x as DefineServiceOptions, y as DefineViewModelOptions, z as Definition, I as RepositoryDefinition, K as ServiceDefinition, M as SlotEntry, O as SlotRegistry, P as SlotRegistryToken, X as ViewModelDefinition } from './types-Deyolj1-.js';
|
|
3
4
|
import { Token, Container } from '@foxford/ioc';
|
|
4
5
|
import { HierarchicalLogger } from '@foxford/logger';
|
|
5
6
|
|
package/define.js
CHANGED
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
import {
|
|
2
|
-
LoggerToken,
|
|
3
2
|
SlotRegistry,
|
|
4
3
|
SlotRegistryToken,
|
|
5
4
|
defineRepository,
|
|
6
5
|
defineService,
|
|
7
6
|
defineSlot,
|
|
8
|
-
defineViewModel
|
|
7
|
+
defineViewModel
|
|
8
|
+
} from "./chunk-WRQC6BVJ.js";
|
|
9
|
+
import "./chunk-WBHHHICS.js";
|
|
10
|
+
import {
|
|
11
|
+
LoggerToken,
|
|
9
12
|
logger,
|
|
10
13
|
scopeLogger
|
|
11
|
-
} from "./chunk-
|
|
12
|
-
import "./chunk-
|
|
14
|
+
} from "./chunk-TPBI6TOU.js";
|
|
15
|
+
import "./chunk-HJO26HIQ.js";
|
|
13
16
|
export {
|
|
14
17
|
LoggerToken,
|
|
15
18
|
SlotRegistry,
|
package/index.cjs
CHANGED
|
@@ -12,10 +12,15 @@
|
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
|
|
15
|
-
var
|
|
15
|
+
var _chunk5DJZZML5cjs = require('./chunk-5DJZZML5.cjs');
|
|
16
|
+
require('./chunk-C7BM4DGX.cjs');
|
|
16
17
|
|
|
17
18
|
|
|
18
|
-
var
|
|
19
|
+
var _chunkLJE7K7VDcjs = require('./chunk-LJE7K7VD.cjs');
|
|
20
|
+
require('./chunk-A6ZPAM6Z.cjs');
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
var _chunkXHYR3SGGcjs = require('./chunk-XHYR3SGG.cjs');
|
|
19
24
|
|
|
20
25
|
// src/core/state-registry.ts
|
|
21
26
|
var StateRegistry = class {
|
|
@@ -78,7 +83,7 @@ var ContainerManagerImpl = class {
|
|
|
78
83
|
return existing;
|
|
79
84
|
}
|
|
80
85
|
const child = this.appContainer.createChild();
|
|
81
|
-
child.bind(
|
|
86
|
+
child.bind(_chunk5DJZZML5cjs.StateRegistryToken).toValue(new StateRegistry());
|
|
82
87
|
this.pageContainers.set(routeId, child);
|
|
83
88
|
return child;
|
|
84
89
|
}
|
|
@@ -88,7 +93,7 @@ var ContainerManagerImpl = class {
|
|
|
88
93
|
* @param routeId - Идентификатор маршрута
|
|
89
94
|
*/
|
|
90
95
|
destroyPageContainer(routeId) {
|
|
91
|
-
return
|
|
96
|
+
return _chunkXHYR3SGGcjs.__async.call(void 0, this, null, function* () {
|
|
92
97
|
const container = this.pageContainers.get(routeId);
|
|
93
98
|
if (container === void 0) {
|
|
94
99
|
return;
|
|
@@ -109,8 +114,8 @@ var ContainerManagerImpl = class {
|
|
|
109
114
|
return existing;
|
|
110
115
|
}
|
|
111
116
|
const child = this.appContainer.createChild();
|
|
112
|
-
child.bind(
|
|
113
|
-
child.bind(
|
|
117
|
+
child.bind(_chunk5DJZZML5cjs.RequestContextToken).toValue(context);
|
|
118
|
+
child.bind(_chunk5DJZZML5cjs.StateRegistryToken).toValue(new StateRegistry());
|
|
114
119
|
this.requestContainers.set(requestId, child);
|
|
115
120
|
return child;
|
|
116
121
|
}
|
|
@@ -127,7 +132,7 @@ var ContainerManagerImpl = class {
|
|
|
127
132
|
* @param requestId - Уникальный идентификатор запроса
|
|
128
133
|
*/
|
|
129
134
|
destroyRequestContainer(requestId) {
|
|
130
|
-
return
|
|
135
|
+
return _chunkXHYR3SGGcjs.__async.call(void 0, this, null, function* () {
|
|
131
136
|
const container = this.requestContainers.get(requestId);
|
|
132
137
|
if (container === void 0) {
|
|
133
138
|
return;
|
|
@@ -149,7 +154,7 @@ var ContainerManagerImpl = class {
|
|
|
149
154
|
return existing;
|
|
150
155
|
}
|
|
151
156
|
const child = parent.createChild();
|
|
152
|
-
child.bind(
|
|
157
|
+
child.bind(_chunk5DJZZML5cjs.StateRegistryToken).toValue(new StateRegistry());
|
|
153
158
|
this.ssrPageContainers.set(requestId, child);
|
|
154
159
|
return child;
|
|
155
160
|
}
|
|
@@ -160,7 +165,7 @@ var ContainerManagerImpl = class {
|
|
|
160
165
|
* @param requestId - Уникальный идентификатор запроса
|
|
161
166
|
*/
|
|
162
167
|
destroySsrPageContainer(requestId) {
|
|
163
|
-
return
|
|
168
|
+
return _chunkXHYR3SGGcjs.__async.call(void 0, this, null, function* () {
|
|
164
169
|
const container = this.ssrPageContainers.get(requestId);
|
|
165
170
|
if (container === void 0) {
|
|
166
171
|
return;
|
|
@@ -188,10 +193,10 @@ var GuardRunnerImpl = class {
|
|
|
188
193
|
* @param container - Опциональный контейнер для резолвинга guards
|
|
189
194
|
*/
|
|
190
195
|
runGuards(tokens, params, container) {
|
|
191
|
-
return
|
|
196
|
+
return _chunkXHYR3SGGcjs.__async.call(void 0, this, null, function* () {
|
|
192
197
|
const resolveFrom = container != null ? container : this.container;
|
|
193
198
|
const results = yield Promise.all(
|
|
194
|
-
tokens.map((token) =>
|
|
199
|
+
tokens.map((token) => _chunkXHYR3SGGcjs.__async.call(void 0, this, null, function* () {
|
|
195
200
|
const guard = yield resolveFrom.resolve(token);
|
|
196
201
|
return guard.check(params);
|
|
197
202
|
}))
|
|
@@ -280,7 +285,7 @@ var NavigationManagerImpl = class {
|
|
|
280
285
|
* Состояние считается актуальным если история и текущий элемент согласованы.
|
|
281
286
|
*/
|
|
282
287
|
checkFreshness() {
|
|
283
|
-
return
|
|
288
|
+
return _chunkXHYR3SGGcjs.__async.call(void 0, this, null, function* () {
|
|
284
289
|
var _a;
|
|
285
290
|
const lastEntry = (_a = this._history.at(-1)) != null ? _a : null;
|
|
286
291
|
return lastEntry === this.current;
|
|
@@ -310,7 +315,7 @@ var NavigationManagerImpl = class {
|
|
|
310
315
|
* @returns Результат проверки
|
|
311
316
|
*/
|
|
312
317
|
runLeaveGuards(from, to) {
|
|
313
|
-
return
|
|
318
|
+
return _chunkXHYR3SGGcjs.__async.call(void 0, this, null, function* () {
|
|
314
319
|
for (const interceptor of this.interceptors) {
|
|
315
320
|
const result = yield interceptor.beforeNavigate(from, to);
|
|
316
321
|
if (!result.allow) {
|
|
@@ -409,10 +414,10 @@ var StateSerializerImpl = class {
|
|
|
409
414
|
*/
|
|
410
415
|
// eslint-disable-next-line @typescript-eslint/class-methods-use-this
|
|
411
416
|
getRegistry(container) {
|
|
412
|
-
if (!container.has(
|
|
417
|
+
if (!container.has(_chunk5DJZZML5cjs.StateRegistryToken)) {
|
|
413
418
|
return void 0;
|
|
414
419
|
}
|
|
415
|
-
const resolved = container.resolve(
|
|
420
|
+
const resolved = container.resolve(_chunk5DJZZML5cjs.StateRegistryToken);
|
|
416
421
|
return resolved instanceof Promise ? void 0 : resolved;
|
|
417
422
|
}
|
|
418
423
|
/**
|
|
@@ -456,7 +461,7 @@ var StateSerializerImpl = class {
|
|
|
456
461
|
* @param params - Параметры маршрута
|
|
457
462
|
*/
|
|
458
463
|
activateAll(container, params) {
|
|
459
|
-
return
|
|
464
|
+
return _chunkXHYR3SGGcjs.__async.call(void 0, this, null, function* () {
|
|
460
465
|
const registry = this.getRegistry(container);
|
|
461
466
|
if (registry === void 0) {
|
|
462
467
|
return;
|
|
@@ -526,10 +531,10 @@ function createCore(options = {}) {
|
|
|
526
531
|
const navigationManager = new NavigationManagerImpl();
|
|
527
532
|
const stateSerializer = new StateSerializerImpl();
|
|
528
533
|
const stateCache = new StateCache();
|
|
529
|
-
container.bind(
|
|
530
|
-
container.bind(
|
|
531
|
-
container.bind(
|
|
532
|
-
container.bind(
|
|
534
|
+
container.bind(_chunk5DJZZML5cjs.ContainerManagerToken).toValue(containerManager);
|
|
535
|
+
container.bind(_chunk5DJZZML5cjs.GuardRunnerToken).toValue(guardRunner);
|
|
536
|
+
container.bind(_chunk5DJZZML5cjs.NavigationManagerToken).toValue(navigationManager);
|
|
537
|
+
container.bind(_chunk5DJZZML5cjs.StateSerializerToken).toValue(stateSerializer);
|
|
533
538
|
return {
|
|
534
539
|
container,
|
|
535
540
|
containerManager,
|
|
@@ -584,8 +589,8 @@ function defineGuard(token, options) {
|
|
|
584
589
|
};
|
|
585
590
|
}
|
|
586
591
|
|
|
587
|
-
// src/define-
|
|
588
|
-
function
|
|
592
|
+
// src/define-host.ts
|
|
593
|
+
function defineHost(token, options = {}) {
|
|
589
594
|
var _a, _b, _c;
|
|
590
595
|
const eager = (_a = options.eager) != null ? _a : [];
|
|
591
596
|
const lazy = (_b = options.lazy) != null ? _b : [];
|
|
@@ -593,9 +598,9 @@ function defineApp(token, options = {}) {
|
|
|
593
598
|
const config = { eager, guards, lazy };
|
|
594
599
|
return {
|
|
595
600
|
__meta: { eager, guards, lazy, requires: [] },
|
|
596
|
-
__type: "
|
|
601
|
+
__type: "host",
|
|
597
602
|
/**
|
|
598
|
-
* Регистрирует
|
|
603
|
+
* Регистрирует HostConfig как value в IoC-контейнере.
|
|
599
604
|
* Позволяет runtime получать конфигурацию приложения через контейнер.
|
|
600
605
|
* @param container - Контейнер для регистрации
|
|
601
606
|
*/
|
|
@@ -694,6 +699,7 @@ function defineLayer(token, options) {
|
|
|
694
699
|
return {
|
|
695
700
|
__meta: { name, requires: [] },
|
|
696
701
|
__type: "layer",
|
|
702
|
+
config,
|
|
697
703
|
/**
|
|
698
704
|
* Регистрирует LayerConfig как value в IoC-контейнере.
|
|
699
705
|
* Runtime использует конфиг для инициализации view-адаптера.
|
|
@@ -733,4 +739,5 @@ function defineLayer(token, options) {
|
|
|
733
739
|
|
|
734
740
|
|
|
735
741
|
|
|
736
|
-
|
|
742
|
+
|
|
743
|
+
exports.ActivatableToken = _chunk5DJZZML5cjs.ActivatableToken; exports.ContainerManagerImpl = ContainerManagerImpl; exports.ContainerManagerToken = _chunk5DJZZML5cjs.ContainerManagerToken; exports.GuardRunnerImpl = GuardRunnerImpl; exports.GuardRunnerToken = _chunk5DJZZML5cjs.GuardRunnerToken; exports.NavigationManagerImpl = NavigationManagerImpl; exports.NavigationManagerToken = _chunk5DJZZML5cjs.NavigationManagerToken; exports.RequestContextToken = _chunk5DJZZML5cjs.RequestContextToken; exports.SlotRegistry = _chunk5DJZZML5cjs.SlotRegistry; exports.SlotRegistryToken = _chunk5DJZZML5cjs.SlotRegistryToken; exports.StateCache = StateCache; exports.StateRegistry = StateRegistry; exports.StateRegistryToken = _chunk5DJZZML5cjs.StateRegistryToken; exports.StateSerializerImpl = StateSerializerImpl; exports.StateSerializerToken = _chunk5DJZZML5cjs.StateSerializerToken; exports.ViewLayerToken = _chunkLJE7K7VDcjs.ViewLayerToken; exports.createCore = createCore; exports.defaultGlobalResolver = defaultGlobalResolver; exports.defineActionGuard = defineActionGuard; exports.defineExtension = defineExtension; exports.defineGuard = defineGuard; exports.defineHost = defineHost; exports.defineLayer = defineLayer; exports.defineLayout = defineLayout; exports.defineRepository = _chunk5DJZZML5cjs.defineRepository; exports.defineService = _chunk5DJZZML5cjs.defineService; exports.defineSlot = _chunk5DJZZML5cjs.defineSlot; exports.defineViewModel = _chunk5DJZZML5cjs.defineViewModel;
|
package/index.d.cts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { C as Core, a as ContainerManager, R as RequestContext, G as GuardRunner, b as Guard, c as GuardResult, N as NavigationManager, d as NavigationEntry, e as NavigationInterceptor, D as Disposable, L as LeaveGuardResult, S as StateSerializer } from './types-
|
|
2
|
-
export {
|
|
1
|
+
import { C as Core, a as ContainerManager, R as RequestContext, G as GuardRunner, b as Guard, c as GuardResult, N as NavigationManager, d as NavigationEntry, e as NavigationInterceptor, D as Disposable, L as LeaveGuardResult, S as StateSerializer, f as DefineGuardOptions, g as GuardDefinition, H as HostConfig, h as DefineHostOptions, i as HostDefinition, E as ExtensionConfig, j as DefineExtensionOptions, k as ExtensionDefinition, A as ActionGuard, l as DefineActionGuardOptions, m as ActionGuardDefinition, n as LayoutConfig, o as DefineLayoutOptions, p as LayoutDefinition, q as LayerConfig, r as DefineLayerOptions, s as LayerDefinition } from './types-Deyolj1-.cjs';
|
|
2
|
+
export { t as Activatable, u as ActivatableToken, v as ContainerManagerToken, w as DefineRepositoryOptions, x as DefineServiceOptions, y as DefineViewModelOptions, z as Definition, B as GuardRunnerToken, F as NavigationManagerToken, I as RepositoryDefinition, J as RequestContextToken, K as ServiceDefinition, M as SlotEntry, O as SlotRegistry, P as SlotRegistryToken, Q as StateCache, T as StateParticipant, U as StateRegistry, V as StateRegistryToken, W as StateSerializerToken, X as ViewModelDefinition } from './types-Deyolj1-.cjs';
|
|
3
3
|
import { Container, Token } from '@foxford/ioc';
|
|
4
4
|
import { DefinitionResolver } from './adapter.cjs';
|
|
5
|
-
|
|
6
|
-
export {
|
|
5
|
+
export { d as defineRepository, a as defineService, b as defineViewModel } from './define-repository-OpMj-Q9O.cjs';
|
|
6
|
+
export { D as DefineSlotOptions, S as SlotDefinition, d as defineSlot } from './define-slot-RfgqKa6n.cjs';
|
|
7
|
+
export { V as ViewAdapter, a as ViewLayerDefinition, b as ViewLayerToken } from './view-adapter-vwO-7b1t.cjs';
|
|
7
8
|
|
|
8
9
|
/**
|
|
9
10
|
* Опции для создания Core Runtime.
|
|
@@ -273,22 +274,22 @@ declare function defineGuard<Deps extends readonly Token<unknown>[] = readonly [
|
|
|
273
274
|
* Определяет конфигурацию приложения с декларативным списком сервисов и guards.
|
|
274
275
|
* Заменяет ручной вызов setupContainer() — декларирует, какие сервисы запускаются
|
|
275
276
|
* при старте (eager), какие — лениво (lazy), и какие guards применяются глобально.
|
|
276
|
-
* Регистрирует
|
|
277
|
+
* Регистрирует HostConfig-значение в IoC-контейнере.
|
|
277
278
|
*
|
|
278
|
-
* @param token - Токен для регистрации
|
|
279
|
+
* @param token - Токен для регистрации HostConfig в IoC
|
|
279
280
|
* @param options - Опции: eager, lazy, guards
|
|
280
|
-
* @returns
|
|
281
|
+
* @returns HostDefinition с методом register(container)
|
|
281
282
|
*
|
|
282
283
|
* @example
|
|
283
284
|
* // app/app.ts
|
|
284
|
-
* export const app =
|
|
285
|
+
* export const app = defineHost(AppToken, {
|
|
285
286
|
* eager: [AuthServiceToken, NotificationServiceToken],
|
|
286
287
|
* lazy: [CartServiceToken],
|
|
287
288
|
* guards: [GlobalAuthGuardToken],
|
|
288
289
|
* })
|
|
289
290
|
* app.register(appContainer)
|
|
290
291
|
*/
|
|
291
|
-
declare function
|
|
292
|
+
declare function defineHost(token: Token<HostConfig>, options?: DefineHostOptions): HostDefinition;
|
|
292
293
|
|
|
293
294
|
/**
|
|
294
295
|
* Определяет app-scope расширение с lifecycle-хуками activate/deactivate.
|
|
@@ -383,4 +384,4 @@ declare function defineLayout(token: Token<LayoutConfig>, options?: DefineLayout
|
|
|
383
384
|
*/
|
|
384
385
|
declare function defineLayer(token: Token<LayerConfig>, options: DefineLayerOptions): LayerDefinition;
|
|
385
386
|
|
|
386
|
-
export { ActionGuard, ActionGuardDefinition,
|
|
387
|
+
export { ActionGuard, ActionGuardDefinition, ContainerManager, ContainerManagerImpl, Core, type CreateCoreOptions, DefineActionGuardOptions, DefineExtensionOptions, DefineGuardOptions, DefineHostOptions, DefineLayerOptions, DefineLayoutOptions, Disposable, ExtensionConfig, ExtensionDefinition, Guard, GuardDefinition, GuardResult, GuardRunner, GuardRunnerImpl, HostConfig, HostDefinition, LayerConfig, LayerDefinition, LayoutConfig, LayoutDefinition, LeaveGuardResult, NavigationEntry, NavigationInterceptor, NavigationManager, NavigationManagerImpl, RequestContext, StateSerializer, StateSerializerImpl, createCore, defaultGlobalResolver, defineActionGuard, defineExtension, defineGuard, defineHost, defineLayer, defineLayout };
|
package/index.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { C as Core, a as ContainerManager, R as RequestContext, G as GuardRunner, b as Guard, c as GuardResult, N as NavigationManager, d as NavigationEntry, e as NavigationInterceptor, D as Disposable, L as LeaveGuardResult, S as StateSerializer } from './types-
|
|
2
|
-
export {
|
|
1
|
+
import { C as Core, a as ContainerManager, R as RequestContext, G as GuardRunner, b as Guard, c as GuardResult, N as NavigationManager, d as NavigationEntry, e as NavigationInterceptor, D as Disposable, L as LeaveGuardResult, S as StateSerializer, f as DefineGuardOptions, g as GuardDefinition, H as HostConfig, h as DefineHostOptions, i as HostDefinition, E as ExtensionConfig, j as DefineExtensionOptions, k as ExtensionDefinition, A as ActionGuard, l as DefineActionGuardOptions, m as ActionGuardDefinition, n as LayoutConfig, o as DefineLayoutOptions, p as LayoutDefinition, q as LayerConfig, r as DefineLayerOptions, s as LayerDefinition } from './types-Deyolj1-.js';
|
|
2
|
+
export { t as Activatable, u as ActivatableToken, v as ContainerManagerToken, w as DefineRepositoryOptions, x as DefineServiceOptions, y as DefineViewModelOptions, z as Definition, B as GuardRunnerToken, F as NavigationManagerToken, I as RepositoryDefinition, J as RequestContextToken, K as ServiceDefinition, M as SlotEntry, O as SlotRegistry, P as SlotRegistryToken, Q as StateCache, T as StateParticipant, U as StateRegistry, V as StateRegistryToken, W as StateSerializerToken, X as ViewModelDefinition } from './types-Deyolj1-.js';
|
|
3
3
|
import { Container, Token } from '@foxford/ioc';
|
|
4
4
|
import { DefinitionResolver } from './adapter.js';
|
|
5
|
-
|
|
6
|
-
export {
|
|
5
|
+
export { d as defineRepository, a as defineService, b as defineViewModel } from './define-repository-DZg34Tb3.js';
|
|
6
|
+
export { D as DefineSlotOptions, S as SlotDefinition, d as defineSlot } from './define-slot-ESU7FR9O.js';
|
|
7
|
+
export { V as ViewAdapter, a as ViewLayerDefinition, b as ViewLayerToken } from './view-adapter-CL0vZ-rv.js';
|
|
7
8
|
|
|
8
9
|
/**
|
|
9
10
|
* Опции для создания Core Runtime.
|
|
@@ -273,22 +274,22 @@ declare function defineGuard<Deps extends readonly Token<unknown>[] = readonly [
|
|
|
273
274
|
* Определяет конфигурацию приложения с декларативным списком сервисов и guards.
|
|
274
275
|
* Заменяет ручной вызов setupContainer() — декларирует, какие сервисы запускаются
|
|
275
276
|
* при старте (eager), какие — лениво (lazy), и какие guards применяются глобально.
|
|
276
|
-
* Регистрирует
|
|
277
|
+
* Регистрирует HostConfig-значение в IoC-контейнере.
|
|
277
278
|
*
|
|
278
|
-
* @param token - Токен для регистрации
|
|
279
|
+
* @param token - Токен для регистрации HostConfig в IoC
|
|
279
280
|
* @param options - Опции: eager, lazy, guards
|
|
280
|
-
* @returns
|
|
281
|
+
* @returns HostDefinition с методом register(container)
|
|
281
282
|
*
|
|
282
283
|
* @example
|
|
283
284
|
* // app/app.ts
|
|
284
|
-
* export const app =
|
|
285
|
+
* export const app = defineHost(AppToken, {
|
|
285
286
|
* eager: [AuthServiceToken, NotificationServiceToken],
|
|
286
287
|
* lazy: [CartServiceToken],
|
|
287
288
|
* guards: [GlobalAuthGuardToken],
|
|
288
289
|
* })
|
|
289
290
|
* app.register(appContainer)
|
|
290
291
|
*/
|
|
291
|
-
declare function
|
|
292
|
+
declare function defineHost(token: Token<HostConfig>, options?: DefineHostOptions): HostDefinition;
|
|
292
293
|
|
|
293
294
|
/**
|
|
294
295
|
* Определяет app-scope расширение с lifecycle-хуками activate/deactivate.
|
|
@@ -383,4 +384,4 @@ declare function defineLayout(token: Token<LayoutConfig>, options?: DefineLayout
|
|
|
383
384
|
*/
|
|
384
385
|
declare function defineLayer(token: Token<LayerConfig>, options: DefineLayerOptions): LayerDefinition;
|
|
385
386
|
|
|
386
|
-
export { ActionGuard, ActionGuardDefinition,
|
|
387
|
+
export { ActionGuard, ActionGuardDefinition, ContainerManager, ContainerManagerImpl, Core, type CreateCoreOptions, DefineActionGuardOptions, DefineExtensionOptions, DefineGuardOptions, DefineHostOptions, DefineLayerOptions, DefineLayoutOptions, Disposable, ExtensionConfig, ExtensionDefinition, Guard, GuardDefinition, GuardResult, GuardRunner, GuardRunnerImpl, HostConfig, HostDefinition, LayerConfig, LayerDefinition, LayoutConfig, LayoutDefinition, LeaveGuardResult, NavigationEntry, NavigationInterceptor, NavigationManager, NavigationManagerImpl, RequestContext, StateSerializer, StateSerializerImpl, createCore, defaultGlobalResolver, defineActionGuard, defineExtension, defineGuard, defineHost, defineLayer, defineLayout };
|
package/index.js
CHANGED
|
@@ -12,10 +12,15 @@ import {
|
|
|
12
12
|
defineService,
|
|
13
13
|
defineSlot,
|
|
14
14
|
defineViewModel
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-WRQC6BVJ.js";
|
|
16
|
+
import "./chunk-WBHHHICS.js";
|
|
17
|
+
import {
|
|
18
|
+
ViewLayerToken
|
|
19
|
+
} from "./chunk-TCYGDT2A.js";
|
|
20
|
+
import "./chunk-TPBI6TOU.js";
|
|
16
21
|
import {
|
|
17
22
|
__async
|
|
18
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-HJO26HIQ.js";
|
|
19
24
|
|
|
20
25
|
// src/core/state-registry.ts
|
|
21
26
|
var StateRegistry = class {
|
|
@@ -584,8 +589,8 @@ function defineGuard(token, options) {
|
|
|
584
589
|
};
|
|
585
590
|
}
|
|
586
591
|
|
|
587
|
-
// src/define-
|
|
588
|
-
function
|
|
592
|
+
// src/define-host.ts
|
|
593
|
+
function defineHost(token, options = {}) {
|
|
589
594
|
var _a, _b, _c;
|
|
590
595
|
const eager = (_a = options.eager) != null ? _a : [];
|
|
591
596
|
const lazy = (_b = options.lazy) != null ? _b : [];
|
|
@@ -593,9 +598,9 @@ function defineApp(token, options = {}) {
|
|
|
593
598
|
const config = { eager, guards, lazy };
|
|
594
599
|
return {
|
|
595
600
|
__meta: { eager, guards, lazy, requires: [] },
|
|
596
|
-
__type: "
|
|
601
|
+
__type: "host",
|
|
597
602
|
/**
|
|
598
|
-
* Регистрирует
|
|
603
|
+
* Регистрирует HostConfig как value в IoC-контейнере.
|
|
599
604
|
* Позволяет runtime получать конфигурацию приложения через контейнер.
|
|
600
605
|
* @param container - Контейнер для регистрации
|
|
601
606
|
*/
|
|
@@ -694,6 +699,7 @@ function defineLayer(token, options) {
|
|
|
694
699
|
return {
|
|
695
700
|
__meta: { name, requires: [] },
|
|
696
701
|
__type: "layer",
|
|
702
|
+
config,
|
|
697
703
|
/**
|
|
698
704
|
* Регистрирует LayerConfig как value в IoC-контейнере.
|
|
699
705
|
* Runtime использует конфиг для инициализации view-адаптера.
|
|
@@ -721,12 +727,13 @@ export {
|
|
|
721
727
|
StateRegistryToken,
|
|
722
728
|
StateSerializerImpl,
|
|
723
729
|
StateSerializerToken,
|
|
730
|
+
ViewLayerToken,
|
|
724
731
|
createCore,
|
|
725
732
|
defaultGlobalResolver,
|
|
726
733
|
defineActionGuard,
|
|
727
|
-
defineApp,
|
|
728
734
|
defineExtension,
|
|
729
735
|
defineGuard,
|
|
736
|
+
defineHost,
|
|
730
737
|
defineLayer,
|
|
731
738
|
defineLayout,
|
|
732
739
|
defineRepository,
|