@foxford/den 1.0.1 → 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/index.cjs CHANGED
@@ -1,85 +1,26 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var __async = (__this, __arguments, generator) => {
20
- return new Promise((resolve, reject) => {
21
- var fulfilled = (value) => {
22
- try {
23
- step(generator.next(value));
24
- } catch (e) {
25
- reject(e);
26
- }
27
- };
28
- var rejected = (value) => {
29
- try {
30
- step(generator.throw(value));
31
- } catch (e) {
32
- reject(e);
33
- }
34
- };
35
- var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
36
- step((generator = generator.apply(__this, __arguments)).next());
37
- });
38
- };
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+
4
+
5
+
6
+
39
7
 
40
- // src/index.ts
41
- var src_exports = {};
42
- __export(src_exports, {
43
- ActivatableToken: () => ActivatableToken,
44
- ContainerManagerImpl: () => ContainerManagerImpl,
45
- ContainerManagerToken: () => ContainerManagerToken,
46
- GuardRunnerImpl: () => GuardRunnerImpl,
47
- GuardRunnerToken: () => GuardRunnerToken,
48
- NavigationManagerImpl: () => NavigationManagerImpl,
49
- NavigationManagerToken: () => NavigationManagerToken,
50
- RequestContextToken: () => RequestContextToken,
51
- SlotRegistry: () => SlotRegistry,
52
- SlotRegistryToken: () => SlotRegistryToken,
53
- StateCache: () => StateCache,
54
- StateRegistry: () => StateRegistry,
55
- StateRegistryToken: () => StateRegistryToken,
56
- StateSerializerImpl: () => StateSerializerImpl,
57
- StateSerializerToken: () => StateSerializerToken,
58
- createCore: () => createCore,
59
- defaultGlobalResolver: () => defaultGlobalResolver,
60
- defineActionGuard: () => defineActionGuard,
61
- defineApp: () => defineApp,
62
- defineExtension: () => defineExtension,
63
- defineGuard: () => defineGuard,
64
- defineLayer: () => defineLayer,
65
- defineLayout: () => defineLayout,
66
- defineRepository: () => defineRepository,
67
- defineService: () => defineService,
68
- defineSlot: () => defineSlot,
69
- defineViewModel: () => defineViewModel
70
- });
71
- module.exports = __toCommonJS(src_exports);
72
-
73
- // src/core/types.ts
74
- var import_ioc = require("@foxford/ioc");
75
- var ContainerManagerToken = (0, import_ioc.createToken)("core:ContainerManager");
76
- var GuardRunnerToken = (0, import_ioc.createToken)("core:GuardRunner");
77
- var NavigationManagerToken = (0, import_ioc.createToken)("core:NavigationManager");
78
- var StateSerializerToken = (0, import_ioc.createToken)("core:StateSerializer");
79
- var StateRegistryToken = (0, import_ioc.createToken)("core:StateRegistry");
80
- var SlotRegistryToken = (0, import_ioc.createToken)("core:SlotRegistry");
81
- var ActivatableToken = (0, import_ioc.createToken)("core:Activatable");
82
- var RequestContextToken = (0, import_ioc.createToken)("core:RequestContext");
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+ var _chunk5DJZZML5cjs = require('./chunk-5DJZZML5.cjs');
16
+ require('./chunk-C7BM4DGX.cjs');
17
+
18
+
19
+ var _chunkLJE7K7VDcjs = require('./chunk-LJE7K7VD.cjs');
20
+ require('./chunk-A6ZPAM6Z.cjs');
21
+
22
+
23
+ var _chunkXHYR3SGGcjs = require('./chunk-XHYR3SGG.cjs');
83
24
 
84
25
  // src/core/state-registry.ts
85
26
  var StateRegistry = class {
@@ -142,7 +83,7 @@ var ContainerManagerImpl = class {
142
83
  return existing;
143
84
  }
144
85
  const child = this.appContainer.createChild();
145
- child.bind(StateRegistryToken).toValue(new StateRegistry());
86
+ child.bind(_chunk5DJZZML5cjs.StateRegistryToken).toValue(new StateRegistry());
146
87
  this.pageContainers.set(routeId, child);
147
88
  return child;
148
89
  }
@@ -152,7 +93,7 @@ var ContainerManagerImpl = class {
152
93
  * @param routeId - Идентификатор маршрута
153
94
  */
154
95
  destroyPageContainer(routeId) {
155
- return __async(this, null, function* () {
96
+ return _chunkXHYR3SGGcjs.__async.call(void 0, this, null, function* () {
156
97
  const container = this.pageContainers.get(routeId);
157
98
  if (container === void 0) {
158
99
  return;
@@ -173,8 +114,8 @@ var ContainerManagerImpl = class {
173
114
  return existing;
174
115
  }
175
116
  const child = this.appContainer.createChild();
176
- child.bind(RequestContextToken).toValue(context);
177
- child.bind(StateRegistryToken).toValue(new StateRegistry());
117
+ child.bind(_chunk5DJZZML5cjs.RequestContextToken).toValue(context);
118
+ child.bind(_chunk5DJZZML5cjs.StateRegistryToken).toValue(new StateRegistry());
178
119
  this.requestContainers.set(requestId, child);
179
120
  return child;
180
121
  }
@@ -191,7 +132,7 @@ var ContainerManagerImpl = class {
191
132
  * @param requestId - Уникальный идентификатор запроса
192
133
  */
193
134
  destroyRequestContainer(requestId) {
194
- return __async(this, null, function* () {
135
+ return _chunkXHYR3SGGcjs.__async.call(void 0, this, null, function* () {
195
136
  const container = this.requestContainers.get(requestId);
196
137
  if (container === void 0) {
197
138
  return;
@@ -213,7 +154,7 @@ var ContainerManagerImpl = class {
213
154
  return existing;
214
155
  }
215
156
  const child = parent.createChild();
216
- child.bind(StateRegistryToken).toValue(new StateRegistry());
157
+ child.bind(_chunk5DJZZML5cjs.StateRegistryToken).toValue(new StateRegistry());
217
158
  this.ssrPageContainers.set(requestId, child);
218
159
  return child;
219
160
  }
@@ -224,7 +165,7 @@ var ContainerManagerImpl = class {
224
165
  * @param requestId - Уникальный идентификатор запроса
225
166
  */
226
167
  destroySsrPageContainer(requestId) {
227
- return __async(this, null, function* () {
168
+ return _chunkXHYR3SGGcjs.__async.call(void 0, this, null, function* () {
228
169
  const container = this.ssrPageContainers.get(requestId);
229
170
  if (container === void 0) {
230
171
  return;
@@ -252,10 +193,10 @@ var GuardRunnerImpl = class {
252
193
  * @param container - Опциональный контейнер для резолвинга guards
253
194
  */
254
195
  runGuards(tokens, params, container) {
255
- return __async(this, null, function* () {
196
+ return _chunkXHYR3SGGcjs.__async.call(void 0, this, null, function* () {
256
197
  const resolveFrom = container != null ? container : this.container;
257
198
  const results = yield Promise.all(
258
- tokens.map((token) => __async(this, null, function* () {
199
+ tokens.map((token) => _chunkXHYR3SGGcjs.__async.call(void 0, this, null, function* () {
259
200
  const guard = yield resolveFrom.resolve(token);
260
201
  return guard.check(params);
261
202
  }))
@@ -344,7 +285,7 @@ var NavigationManagerImpl = class {
344
285
  * Состояние считается актуальным если история и текущий элемент согласованы.
345
286
  */
346
287
  checkFreshness() {
347
- return __async(this, null, function* () {
288
+ return _chunkXHYR3SGGcjs.__async.call(void 0, this, null, function* () {
348
289
  var _a;
349
290
  const lastEntry = (_a = this._history.at(-1)) != null ? _a : null;
350
291
  return lastEntry === this.current;
@@ -374,7 +315,7 @@ var NavigationManagerImpl = class {
374
315
  * @returns Результат проверки
375
316
  */
376
317
  runLeaveGuards(from, to) {
377
- return __async(this, null, function* () {
318
+ return _chunkXHYR3SGGcjs.__async.call(void 0, this, null, function* () {
378
319
  for (const interceptor of this.interceptors) {
379
320
  const result = yield interceptor.beforeNavigate(from, to);
380
321
  if (!result.allow) {
@@ -473,10 +414,10 @@ var StateSerializerImpl = class {
473
414
  */
474
415
  // eslint-disable-next-line @typescript-eslint/class-methods-use-this
475
416
  getRegistry(container) {
476
- if (!container.has(StateRegistryToken)) {
417
+ if (!container.has(_chunk5DJZZML5cjs.StateRegistryToken)) {
477
418
  return void 0;
478
419
  }
479
- const resolved = container.resolve(StateRegistryToken);
420
+ const resolved = container.resolve(_chunk5DJZZML5cjs.StateRegistryToken);
480
421
  return resolved instanceof Promise ? void 0 : resolved;
481
422
  }
482
423
  /**
@@ -520,7 +461,7 @@ var StateSerializerImpl = class {
520
461
  * @param params - Параметры маршрута
521
462
  */
522
463
  activateAll(container, params) {
523
- return __async(this, null, function* () {
464
+ return _chunkXHYR3SGGcjs.__async.call(void 0, this, null, function* () {
524
465
  const registry = this.getRegistry(container);
525
466
  if (registry === void 0) {
526
467
  return;
@@ -533,34 +474,6 @@ var StateSerializerImpl = class {
533
474
  }
534
475
  };
535
476
 
536
- // src/core/slot-registry.ts
537
- var SlotRegistry = class {
538
- constructor() {
539
- /** Слоты по имени. Повторная регистрация с тем же именем перезаписывает. */
540
- this.slots = /* @__PURE__ */ new Map();
541
- }
542
- /**
543
- * Регистрирует слот.
544
- * @param entry - Запись слота (имя + непрозрачный view)
545
- */
546
- add(entry) {
547
- this.slots.set(entry.name, entry);
548
- }
549
- /**
550
- * Возвращает слот по имени.
551
- * @param name - Имя слота
552
- */
553
- get(name) {
554
- return this.slots.get(name);
555
- }
556
- /**
557
- * Возвращает все зарегистрированные слоты.
558
- */
559
- all() {
560
- return [...this.slots.values()];
561
- }
562
- };
563
-
564
477
  // src/core/state-cache.ts
565
478
  var StateCache = class {
566
479
  /**
@@ -609,19 +522,19 @@ var StateCache = class {
609
522
  };
610
523
 
611
524
  // src/core/create-core.ts
612
- var import_ioc2 = require("@foxford/ioc");
525
+ var _ioc = require('@foxford/ioc');
613
526
  function createCore(options = {}) {
614
527
  var _a;
615
- const container = (_a = options.container) != null ? _a : new import_ioc2.Container();
528
+ const container = (_a = options.container) != null ? _a : new (0, _ioc.Container)();
616
529
  const containerManager = new ContainerManagerImpl(container);
617
530
  const guardRunner = new GuardRunnerImpl(container);
618
531
  const navigationManager = new NavigationManagerImpl();
619
532
  const stateSerializer = new StateSerializerImpl();
620
533
  const stateCache = new StateCache();
621
- container.bind(ContainerManagerToken).toValue(containerManager);
622
- container.bind(GuardRunnerToken).toValue(guardRunner);
623
- container.bind(NavigationManagerToken).toValue(navigationManager);
624
- container.bind(StateSerializerToken).toValue(stateSerializer);
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);
625
538
  return {
626
539
  container,
627
540
  containerManager,
@@ -633,10 +546,10 @@ function createCore(options = {}) {
633
546
  }
634
547
 
635
548
  // src/core/default-resolver.ts
636
- var import_ioc3 = require("@foxford/ioc");
549
+
637
550
  var defaultGlobalResolver = (token) => {
638
551
  var _a;
639
- let container = (0, import_ioc3.getGlobalContainer)();
552
+ let container = _ioc.getGlobalContainer.call(void 0, );
640
553
  while (container) {
641
554
  if (container.has(token)) {
642
555
  return container.resolve(token);
@@ -649,156 +562,8 @@ var defaultGlobalResolver = (token) => {
649
562
  });
650
563
  };
651
564
 
652
- // src/define-service.ts
653
- var import_ioc5 = require("@foxford/ioc");
654
-
655
- // src/logger.ts
656
- var import_ioc4 = require("@foxford/ioc");
657
- var import_logger = require("@foxford/logger");
658
- var logger = import_logger.log.getLogger("@foxford/den");
659
- var LoggerToken = (0, import_ioc4.createToken)("den:Logger");
660
- function scopeLogger(container) {
661
- if (container.has(LoggerToken)) {
662
- const resolved = container.resolve(LoggerToken);
663
- if (!(resolved instanceof Promise)) {
664
- return resolved;
665
- }
666
- }
667
- return logger;
668
- }
669
- function unitLogger(container, name) {
670
- var _a;
671
- const base = scopeLogger(container);
672
- return (_a = base.getLogger(name)) != null ? _a : base;
673
- }
674
-
675
- // src/define-service.ts
676
- function defineService(token, options) {
677
- const { requires, create, activate, deactivate, serialize, deserialize, scope } = options;
678
- const requireTokens = requires != null ? requires : [];
679
- const participatesInState = serialize !== void 0 || deserialize !== void 0;
680
- return {
681
- __meta: { requires: requireTokens, scope: scope != null ? scope : "app" },
682
- __type: "service",
683
- /**
684
- * Регистрирует сервис в IoC-контейнере как Singleton.
685
- * Если передана create — биндит экземпляр класса напрямую.
686
- * Иначе — биндит Activatable-обёртку с хуками lifecycle.
687
- * Если объявлены serialize/deserialize — при создании экземпляра сервис
688
- * регистрируется участником в StateRegistry этого контейнера.
689
- * @param container - Контейнер для регистрации
690
- */
691
- register(container) {
692
- const unitLog = unitLogger(container, token.description);
693
- const factory = (0, import_ioc5.inject)(requireTokens, (...args) => {
694
- unitLog.debug(`\u0441\u043E\u0437\u0434\u0430\u043D\u0438\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u0430 (${create ? "\u0444\u0430\u0431\u0440\u0438\u043A\u0430" : "lifecycle-\u043E\u0431\u0451\u0440\u0442\u043A\u0430"})`);
695
- let instance;
696
- if (create) {
697
- instance = create(args);
698
- } else {
699
- const service = {
700
- activate(params) {
701
- return activate == null ? void 0 : activate(args, params);
702
- },
703
- deactivate() {
704
- return deactivate == null ? void 0 : deactivate(args);
705
- }
706
- };
707
- instance = service;
708
- }
709
- if (participatesInState) {
710
- unitLog.debug("\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044F \u0443\u0447\u0430\u0441\u0442\u043D\u0438\u043A\u043E\u043C StateRegistry (serialize/deserialize)");
711
- registerStateParticipant(container, token, instance, args, serialize, deserialize);
712
- }
713
- return instance;
714
- });
715
- container.bind(token).toFactory(factory, { lifecycle: import_ioc5.Lifecycle.Singleton });
716
- unitLog.debug(`\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044F \u0441\u0435\u0440\u0432\u0438\u0441\u0430 (scope=${scope != null ? scope : "app"}, requires=${requireTokens.length})`);
717
- },
718
- token
719
- };
720
- }
721
- function registerStateParticipant(container, token, instance, deps, serialize, deserialize) {
722
- if (!container.has(StateRegistryToken)) {
723
- return;
724
- }
725
- const resolved = container.resolve(StateRegistryToken);
726
- if (resolved instanceof Promise) {
727
- return;
728
- }
729
- ;
730
- resolved.add(token.description, {
731
- activate: (params) => {
732
- var _a;
733
- return (_a = instance.activate) == null ? void 0 : _a.call(instance, params);
734
- },
735
- fromJSON: deserialize ? (data) => deserialize(deps, data) : void 0,
736
- toJSON: serialize ? () => serialize(deps) : void 0
737
- });
738
- }
739
-
740
- // src/define-view-model.ts
741
- var import_ioc6 = require("@foxford/ioc");
742
-
743
- // src/adapter.ts
744
- var activeResolver = null;
745
- function resolveDefinition(token) {
746
- if (activeResolver === null) {
747
- throw new Error(
748
- `den/adapter: \u0440\u0435\u0437\u043E\u043B\u0432\u0435\u0440 \u043D\u0435 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D \u0434\u043B\u044F \xAB${token.description}\xBB \u2014 \u043D\u0438 \u043E\u0434\u0438\u043D host-\u0430\u0434\u0430\u043F\u0442\u0435\u0440 \u043D\u0435 \u0432\u044B\u0437\u0432\u0430\u043B installResolver()`
749
- );
750
- }
751
- return activeResolver(token);
752
- }
753
-
754
- // src/define-view-model.ts
755
- function defineViewModel(token, options) {
756
- const { requires, create } = options;
757
- const requireTokens = requires != null ? requires : [];
758
- return {
759
- __meta: { requires: requireTokens },
760
- __type: "view-model",
761
- /**
762
- * Регистрирует VM в IoC-контейнере как Singleton.
763
- * Зависимости из requires резолвятся автоматически через inject.
764
- * @param container - Контейнер для регистрации
765
- */
766
- register(container) {
767
- const unitLog = unitLogger(container, token.description);
768
- const factory = (0, import_ioc6.inject)(requireTokens, (...args) => {
769
- unitLog.debug("\u0441\u043E\u0437\u0434\u0430\u043D\u0438\u0435 view-model");
770
- return create(args);
771
- });
772
- container.bind(token).toFactory(factory, { lifecycle: import_ioc6.Lifecycle.Singleton });
773
- unitLog.debug(`\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044F view-model (requires=${requireTokens.length})`);
774
- },
775
- /**
776
- * Резолвит VM через стратегию активного host-адаптера.
777
- * Вызывайте когда контейнер уже инициализирован (в render-контексте).
778
- *
779
- * Дескриптор не знает, откуда берётся инстанс — стратегию ставит адаптер
780
- * через `installResolver()` (см. `@foxford/den/adapter`):
781
- * - Vike (дефолт) — async/global: подъём по parent-chain, pending Promise при промахе;
782
- * - Next — sync/island: контейнер острова из React-контекста.
783
- *
784
- * @returns Экземпляр VM или Promise с экземпляром
785
- */
786
- resolve() {
787
- return resolveDefinition(token);
788
- },
789
- token,
790
- /**
791
- * Псевдоним для resolve(). Резолвит VM через стратегию активного адаптера.
792
- * @returns Экземпляр VM или Promise с экземпляром
793
- */
794
- use() {
795
- return this.resolve();
796
- }
797
- };
798
- }
799
-
800
565
  // src/define-guard.ts
801
- var import_ioc7 = require("@foxford/ioc");
566
+
802
567
  function defineGuard(token, options) {
803
568
  const { requires, create, check } = options;
804
569
  const requireTokens = requires != null ? requires : [];
@@ -813,8 +578,8 @@ function defineGuard(token, options) {
813
578
  */
814
579
  register(container) {
815
580
  if (create) {
816
- const factory = (0, import_ioc7.inject)(requireTokens, (...args) => create(args));
817
- container.bind(token).toFactory(factory, { lifecycle: import_ioc7.Lifecycle.Singleton });
581
+ const factory = _ioc.inject.call(void 0, requireTokens, (...args) => create(args));
582
+ container.bind(token).toFactory(factory, { lifecycle: _ioc.Lifecycle.Singleton });
818
583
  } else if (check) {
819
584
  const guard = { check };
820
585
  container.bind(token).toValue(guard);
@@ -824,34 +589,8 @@ function defineGuard(token, options) {
824
589
  };
825
590
  }
826
591
 
827
- // src/define-repository.ts
828
- var import_ioc8 = require("@foxford/ioc");
829
- function defineRepository(token, options) {
830
- const { requires, create, scope } = options;
831
- const requireTokens = requires != null ? requires : [];
832
- return {
833
- __meta: { requires: requireTokens, scope: scope != null ? scope : "app" },
834
- __type: "repository",
835
- /**
836
- * Регистрирует репозиторий в IoC-контейнере как Singleton.
837
- * Зависимости из requires резолвятся автоматически через inject.
838
- * @param container - Контейнер для регистрации
839
- */
840
- register(container) {
841
- const unitLog = unitLogger(container, token.description);
842
- const factory = (0, import_ioc8.inject)(requireTokens, (...args) => {
843
- unitLog.debug("\u0441\u043E\u0437\u0434\u0430\u043D\u0438\u0435 \u0440\u0435\u043F\u043E\u0437\u0438\u0442\u043E\u0440\u0438\u044F");
844
- return create(args);
845
- });
846
- container.bind(token).toFactory(factory, { lifecycle: import_ioc8.Lifecycle.Singleton });
847
- unitLog.debug(`\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044F \u0440\u0435\u043F\u043E\u0437\u0438\u0442\u043E\u0440\u0438\u044F (scope=${scope != null ? scope : "app"}, requires=${requireTokens.length})`);
848
- },
849
- token
850
- };
851
- }
852
-
853
- // src/define-app.ts
854
- function defineApp(token, options = {}) {
592
+ // src/define-host.ts
593
+ function defineHost(token, options = {}) {
855
594
  var _a, _b, _c;
856
595
  const eager = (_a = options.eager) != null ? _a : [];
857
596
  const lazy = (_b = options.lazy) != null ? _b : [];
@@ -859,9 +598,9 @@ function defineApp(token, options = {}) {
859
598
  const config = { eager, guards, lazy };
860
599
  return {
861
600
  __meta: { eager, guards, lazy, requires: [] },
862
- __type: "app",
601
+ __type: "host",
863
602
  /**
864
- * Регистрирует AppConfig как value в IoC-контейнере.
603
+ * Регистрирует HostConfig как value в IoC-контейнере.
865
604
  * Позволяет runtime получать конфигурацию приложения через контейнер.
866
605
  * @param container - Контейнер для регистрации
867
606
  */
@@ -873,7 +612,7 @@ function defineApp(token, options = {}) {
873
612
  }
874
613
 
875
614
  // src/define-extension.ts
876
- var import_ioc9 = require("@foxford/ioc");
615
+
877
616
  function defineExtension(token, options = {}) {
878
617
  const { requires, activate, deactivate } = options;
879
618
  const requireTokens = requires != null ? requires : [];
@@ -886,7 +625,7 @@ function defineExtension(token, options = {}) {
886
625
  * @param container - Контейнер для регистрации
887
626
  */
888
627
  register(container) {
889
- const factory = (0, import_ioc9.inject)(requireTokens, (...args) => {
628
+ const factory = _ioc.inject.call(void 0, requireTokens, (...args) => {
890
629
  const config = {
891
630
  __extensionConfig: true,
892
631
  activate() {
@@ -898,14 +637,14 @@ function defineExtension(token, options = {}) {
898
637
  };
899
638
  return config;
900
639
  });
901
- container.bind(token).toFactory(factory, { lifecycle: import_ioc9.Lifecycle.Singleton });
640
+ container.bind(token).toFactory(factory, { lifecycle: _ioc.Lifecycle.Singleton });
902
641
  },
903
642
  token
904
643
  };
905
644
  }
906
645
 
907
646
  // src/define-action-guard.ts
908
- var import_ioc10 = require("@foxford/ioc");
647
+
909
648
  function defineActionGuard(token, options) {
910
649
  const { requires, intercept } = options;
911
650
  const requireTokens = requires != null ? requires : [];
@@ -918,7 +657,7 @@ function defineActionGuard(token, options) {
918
657
  * @param container - Контейнер для регистрации
919
658
  */
920
659
  register(container) {
921
- const factory = (0, import_ioc10.inject)(requireTokens, (...args) => {
660
+ const factory = _ioc.inject.call(void 0, requireTokens, (...args) => {
922
661
  const guard = {
923
662
  intercept(next) {
924
663
  return intercept(args, next);
@@ -926,7 +665,7 @@ function defineActionGuard(token, options) {
926
665
  };
927
666
  return guard;
928
667
  });
929
- container.bind(token).toFactory(factory, { lifecycle: import_ioc10.Lifecycle.Singleton });
668
+ container.bind(token).toFactory(factory, { lifecycle: _ioc.Lifecycle.Singleton });
930
669
  },
931
670
  token
932
671
  };
@@ -953,30 +692,6 @@ function defineLayout(token, options = {}) {
953
692
  };
954
693
  }
955
694
 
956
- // src/define-slot.ts
957
- function defineSlot({ name, view, units = [] }) {
958
- return {
959
- __type: "slot",
960
- name,
961
- register(container) {
962
- const slotLog = unitLogger(container, `slot:${name}`);
963
- for (const unit of units) {
964
- unit.register(container);
965
- }
966
- const registry = container.has(SlotRegistryToken) ? container.resolve(SlotRegistryToken) : (() => {
967
- const created = new SlotRegistry();
968
- container.bind(SlotRegistryToken).toValue(created);
969
- slotLog.debug("\u0441\u043E\u0437\u0434\u0430\u043D SlotRegistry \u043A\u043E\u043D\u0442\u0435\u0439\u043D\u0435\u0440\u0430");
970
- return created;
971
- })();
972
- registry.add({ name, view });
973
- slotLog.debug(`\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044F \u0441\u043B\u043E\u0442\u0430 (units=${units.length})`);
974
- },
975
- units,
976
- view
977
- };
978
- }
979
-
980
695
  // src/define-layer.ts
981
696
  function defineLayer(token, options) {
982
697
  const { name, adapter } = options;
@@ -984,6 +699,7 @@ function defineLayer(token, options) {
984
699
  return {
985
700
  __meta: { name, requires: [] },
986
701
  __type: "layer",
702
+ config,
987
703
  /**
988
704
  * Регистрирует LayerConfig как value в IoC-контейнере.
989
705
  * Runtime использует конфиг для инициализации view-адаптера.
@@ -995,33 +711,33 @@ function defineLayer(token, options) {
995
711
  token
996
712
  };
997
713
  }
998
- // Annotate the CommonJS export names for ESM import in node:
999
- 0 && (module.exports = {
1000
- ActivatableToken,
1001
- ContainerManagerImpl,
1002
- ContainerManagerToken,
1003
- GuardRunnerImpl,
1004
- GuardRunnerToken,
1005
- NavigationManagerImpl,
1006
- NavigationManagerToken,
1007
- RequestContextToken,
1008
- SlotRegistry,
1009
- SlotRegistryToken,
1010
- StateCache,
1011
- StateRegistry,
1012
- StateRegistryToken,
1013
- StateSerializerImpl,
1014
- StateSerializerToken,
1015
- createCore,
1016
- defaultGlobalResolver,
1017
- defineActionGuard,
1018
- defineApp,
1019
- defineExtension,
1020
- defineGuard,
1021
- defineLayer,
1022
- defineLayout,
1023
- defineRepository,
1024
- defineService,
1025
- defineSlot,
1026
- defineViewModel
1027
- });
714
+
715
+
716
+
717
+
718
+
719
+
720
+
721
+
722
+
723
+
724
+
725
+
726
+
727
+
728
+
729
+
730
+
731
+
732
+
733
+
734
+
735
+
736
+
737
+
738
+
739
+
740
+
741
+
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;