@foxford/den 3.2.2 → 3.2.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/README.mdx CHANGED
@@ -177,11 +177,11 @@ describeDocument(): DocumentContribution {
177
177
 
178
178
  Рантайм вокруг дескриптора отдаёт три ручки:
179
179
 
180
- | Ручка | Ответ |
181
- | --- | --- |
182
- | `GET /_render?url=<path+search>` | `200` + ответ `renderApp` телом |
183
- | `GET /_routes` | `200` + массив regex-строк заявки на адреса |
184
- | `GET /_health` | `200 ok` |
180
+ | Ручка | Ответ |
181
+ | -------------------------------- | ------------------------------------------- |
182
+ | `GET /_render?url=<path+search>` | `200` + ответ `renderApp` телом |
183
+ | `GET /_routes` | `200` + массив regex-строк заявки на адреса |
184
+ | `GET /_health` | `200 ok` |
185
185
 
186
186
  **Статус HTTP описывает транспорт, а исход страницы едет полем `status` в теле.** `200` значит
187
187
  «приложение ответило» — хоть `404`, хоть редиректом. Всё остальное значит «до приложения не
@@ -262,6 +262,7 @@ export default defineAppConfig({
262
262
  render: (tree, render) => ({ head: sheet.getStyleTags(), html: render(sheet.collectStyles(tree)) }),
263
263
  container: (c) => c.bind(HttpConfigToken).toValue({ baseUrl: process.env.API_ORIGIN }),
264
264
  configure: (instance) => Sentry.setupFastifyErrorHandler(instance),
265
+ external: ['@foxford/den-sentry'],
265
266
  noExternal: ['@foxford/ui', 'styled-components'],
266
267
  },
267
268
  })
@@ -270,11 +271,11 @@ export default defineAppConfig({
270
271
  `den build [--root <каталог>] [--base <префикс>]` выпускает три выхода, `den dev` — то же плюс
271
272
  подъём процесса и пересборка на изменение исходников:
272
273
 
273
- | Выход | Что внутри | Кто потребляет |
274
- | --- | --- | --- |
275
- | `build/client` | браузерный бандл и манифест | браузер, по ссылкам из ответа рендера |
276
- | `build/server` | дескриптор с вплавленными серверными кусками конфига | хост, импортом в своём процессе |
277
- | `build/server.mjs` | тот же дескриптор под сетевым рантаймом | `node build/server.mjs` |
274
+ | Выход | Что внутри | Кто потребляет |
275
+ | ------------------ | ---------------------------------------------------- | ------------------------------------- |
276
+ | `build/client` | браузерный бандл и манифест | браузер, по ссылкам из ответа рендера |
277
+ | `build/server` | дескриптор с вплавленными серверными кусками конфига | хост, импортом в своём процессе |
278
+ | `build/server.mjs` | тот же дескриптор под сетевым рантаймом | `node build/server.mjs` |
278
279
 
279
280
  **Про фреймворк команда не знает.** Чем собирать и чем оживлять, приносит пресет из пакета
280
281
  адаптера, поэтому приложение на другом фреймворке подключается своим пресетом и в командах не
@@ -297,12 +298,12 @@ export default defineAppConfig({
297
298
 
298
299
  ## Подпути
299
300
 
300
- | Подпуть | Что там |
301
- | --- | --- |
302
- | `@foxford/den` | рантайм, `define*`, менеджеры контейнеров и состояния |
303
- | `@foxford/den/define` | те же `define*` без сайд-эффекта установки резолвера |
304
- | `@foxford/den/adapter` | шов резолва для адаптеров хостов |
305
- | `@foxford/den/island` | остров: жизненный цикл, шов `renderApp`, порт `ViewAdapter` |
306
- | `@foxford/den/serve` | сетевой транспорт: `serveApp`, `appPlugin` |
307
- | `@foxford/den/build` | конфиг приложения и сборка: `defineAppConfig`, `buildApp` |
308
- | `@foxford/den/bin` | точка входа команды `den` |
301
+ | Подпуть | Что там |
302
+ | ---------------------- | ----------------------------------------------------------- |
303
+ | `@foxford/den` | рантайм, `define*`, менеджеры контейнеров и состояния |
304
+ | `@foxford/den/define` | те же `define*` без сайд-эффекта установки резолвера |
305
+ | `@foxford/den/adapter` | шов резолва для адаптеров хостов |
306
+ | `@foxford/den/island` | остров: жизненный цикл, шов `renderApp`, порт `ViewAdapter` |
307
+ | `@foxford/den/serve` | сетевой транспорт: `serveApp`, `appPlugin` |
308
+ | `@foxford/den/build` | конфиг приложения и сборка: `defineAppConfig`, `buildApp` |
309
+ | `@foxford/den/bin` | точка входа команды `den` |
package/bin/den.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
 
4
- var _chunk3X4WVHUUcjs = require('../chunk-3X4WVHUU.cjs');
4
+ var _chunkG6RT4EBOcjs = require('../chunk-G6RT4EBO.cjs');
5
5
  require('../chunk-KQAB6C6Q.cjs');
6
6
  require('../chunk-A6ZPAM6Z.cjs');
7
7
 
@@ -70,11 +70,11 @@ function run(argv) {
70
70
  }
71
71
  const target = { base: options["base"], root: (_a = options["root"]) != null ? _a : process.cwd() };
72
72
  if (command === "build") {
73
- yield _chunk3X4WVHUUcjs.buildApp.call(void 0, target);
73
+ yield _chunkG6RT4EBOcjs.buildApp.call(void 0, target);
74
74
  return;
75
75
  }
76
76
  if (command === "dev") {
77
- yield _chunk3X4WVHUUcjs.devApp.call(void 0, target);
77
+ yield _chunkG6RT4EBOcjs.devApp.call(void 0, target);
78
78
  return;
79
79
  }
80
80
  fail(`\u043D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043D\u0430\u044F \u043A\u043E\u043C\u0430\u043D\u0434\u0430 \xAB${command}\xBB`);
package/bin/den.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  buildApp,
3
3
  devApp
4
- } from "../chunk-XU5HUIPK.js";
4
+ } from "../chunk-4XR6EUOW.js";
5
5
  import "../chunk-RG7ZV5BD.js";
6
6
  import "../chunk-TPBI6TOU.js";
7
7
  import {
package/builder/index.cjs CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- var _chunk3X4WVHUUcjs = require('../chunk-3X4WVHUU.cjs');
5
+ var _chunkG6RT4EBOcjs = require('../chunk-G6RT4EBO.cjs');
6
6
  require('../chunk-KQAB6C6Q.cjs');
7
7
  require('../chunk-A6ZPAM6Z.cjs');
8
8
  require('../chunk-T5QVCXVB.cjs');
@@ -10,4 +10,4 @@ require('../chunk-T5QVCXVB.cjs');
10
10
 
11
11
 
12
12
 
13
- exports.buildApp = _chunk3X4WVHUUcjs.buildApp; exports.defineAppConfig = _chunk3X4WVHUUcjs.defineAppConfig; exports.devApp = _chunk3X4WVHUUcjs.devApp;
13
+ exports.buildApp = _chunkG6RT4EBOcjs.buildApp; exports.defineAppConfig = _chunkG6RT4EBOcjs.defineAppConfig; exports.devApp = _chunkG6RT4EBOcjs.devApp;
@@ -75,6 +75,16 @@ interface AppServerConfig {
75
75
  * default-экспорта разъезжается, и вместо фабрики приходит пространство имён модуля.
76
76
  */
77
77
  noExternal?: Array<string | RegExp>;
78
+ /**
79
+ * Зависимости, которые серверный выход обязан оставить ВНЕШНИМИ, а не вплавить в бандл.
80
+ *
81
+ * Типичный случай — `@foxford/den-sentry`: вместе с ним в бандл уезжают `@sentry/node` и
82
+ * хуки `require`, а внутри `server.mjs` с top-level await их голый `require` даёт
83
+ * `ERR_AMBIGUOUS_MODULE_SYNTAX`. Пакет из npm остаётся снаружи целиком — транзитив
84
+ * грузится уже из его `node_modules`. Должен резолвиться из корня приложения (прямая
85
+ * зависимость в `package.json`).
86
+ */
87
+ external?: Array<string | RegExp>;
78
88
  }
79
89
  /** Конфиг приложения. */
80
90
  interface AppConfig {
@@ -75,6 +75,16 @@ interface AppServerConfig {
75
75
  * default-экспорта разъезжается, и вместо фабрики приходит пространство имён модуля.
76
76
  */
77
77
  noExternal?: Array<string | RegExp>;
78
+ /**
79
+ * Зависимости, которые серверный выход обязан оставить ВНЕШНИМИ, а не вплавить в бандл.
80
+ *
81
+ * Типичный случай — `@foxford/den-sentry`: вместе с ним в бандл уезжают `@sentry/node` и
82
+ * хуки `require`, а внутри `server.mjs` с top-level await их голый `require` даёт
83
+ * `ERR_AMBIGUOUS_MODULE_SYNTAX`. Пакет из npm остаётся снаружи целиком — транзитив
84
+ * грузится уже из его `node_modules`. Должен резолвиться из корня приложения (прямая
85
+ * зависимость в `package.json`).
86
+ */
87
+ external?: Array<string | RegExp>;
78
88
  }
79
89
  /** Конфиг приложения. */
80
90
  interface AppConfig {
package/builder/index.js CHANGED
@@ -2,7 +2,7 @@ import {
2
2
  buildApp,
3
3
  defineAppConfig,
4
4
  devApp
5
- } from "../chunk-XU5HUIPK.js";
5
+ } from "../chunk-4XR6EUOW.js";
6
6
  import "../chunk-RG7ZV5BD.js";
7
7
  import "../chunk-TPBI6TOU.js";
8
8
  import "../chunk-6FNC3XMI.js";
@@ -203,9 +203,10 @@ function dependenciesOf(root) {
203
203
  return [...Object.keys((_a = manifest.dependencies) != null ? _a : {}), ...Object.keys((_b = manifest.devDependencies) != null ? _b : {})];
204
204
  }
205
205
  function viteConfigFor(options) {
206
- var _a, _b, _c, _d, _e;
206
+ var _a, _b, _c, _d, _e, _f, _g;
207
207
  const { assets, base, config, configPath, entryFileNames, input, mode, outDir, root, target } = options;
208
208
  const entry = (_a = config.entry) != null ? _a : "src/index.ts";
209
+ const external = (_c = (_b = config.server) == null ? void 0 : _b.external) != null ? _c : [];
209
210
  const composed = {
210
211
  // Сборщику относительный префикс, если своего нет: ленивые чанки тогда грузятся от адреса
211
212
  // уже загруженного чанка, и подмена CDN уводит за собой и их
@@ -220,7 +221,7 @@ function viteConfigFor(options) {
220
221
  // к файлу, а входы у нас виртуальные — их резолвит плагин
221
222
  rollupOptions: __spreadValues(__spreadValues({
222
223
  input
223
- }, target === "server" ? { external: [ENGINE] } : {}), entryFileNames === void 0 ? {} : { output: { entryFileNames } }),
224
+ }, target === "server" ? { external: [ENGINE, ...external] } : {}), entryFileNames === void 0 ? {} : { output: { entryFileNames } }),
224
225
  ssr: target === "server"
225
226
  },
226
227
  configFile: false,
@@ -228,11 +229,14 @@ function viteConfigFor(options) {
228
229
  // программный вызов он иначе не доедет.
229
230
  mode,
230
231
  plugins: [
231
- ...(_c = (_b = config.preset) == null ? void 0 : _b.plugins) != null ? _c : [],
232
+ ...(_e = (_d = config.preset) == null ? void 0 : _d.plugins) != null ? _e : [],
232
233
  denAppModules({ assets, base, config, configPath, entry: path2.join(root, entry), mode })
233
234
  ],
234
235
  root,
235
- ssr: { noExternal: (_e = (_d = config.server) == null ? void 0 : _d.noExternal) != null ? _e : [] }
236
+ ssr: {
237
+ external,
238
+ noExternal: (_g = (_f = config.server) == null ? void 0 : _f.noExternal) != null ? _g : []
239
+ }
236
240
  };
237
241
  return config.vite ? config.vite(composed, target) : composed;
238
242
  }
@@ -177,9 +177,10 @@ function defineRepository(token, options) {
177
177
  }
178
178
 
179
179
  // src/define-slot.ts
180
- function defineSlot({ view, units = [], viewLayer } = {}) {
180
+ function defineSlot({ note, view, units = [], viewLayer } = {}) {
181
181
  return {
182
182
  __type: "slot",
183
+ note,
183
184
  register(container, name) {
184
185
  const slotLog = unitLogger(container, `slot:${name}`);
185
186
  for (const unit of units) {
@@ -203,9 +203,10 @@ function dependenciesOf(root) {
203
203
  return [...Object.keys((_a = manifest.dependencies) != null ? _a : {}), ...Object.keys((_b = manifest.devDependencies) != null ? _b : {})];
204
204
  }
205
205
  function viteConfigFor(options) {
206
- var _a, _b, _c, _d, _e;
206
+ var _a, _b, _c, _d, _e, _f, _g;
207
207
  const { assets, base, config, configPath, entryFileNames, input, mode, outDir, root, target } = options;
208
208
  const entry = (_a = config.entry) != null ? _a : "src/index.ts";
209
+ const external = (_c = (_b = config.server) == null ? void 0 : _b.external) != null ? _c : [];
209
210
  const composed = {
210
211
  // Сборщику относительный префикс, если своего нет: ленивые чанки тогда грузятся от адреса
211
212
  // уже загруженного чанка, и подмена CDN уводит за собой и их
@@ -220,7 +221,7 @@ function viteConfigFor(options) {
220
221
  // к файлу, а входы у нас виртуальные — их резолвит плагин
221
222
  rollupOptions: _chunkT5QVCXVBcjs.__spreadValues.call(void 0, _chunkT5QVCXVBcjs.__spreadValues.call(void 0, {
222
223
  input
223
- }, target === "server" ? { external: [ENGINE] } : {}), entryFileNames === void 0 ? {} : { output: { entryFileNames } }),
224
+ }, target === "server" ? { external: [ENGINE, ...external] } : {}), entryFileNames === void 0 ? {} : { output: { entryFileNames } }),
224
225
  ssr: target === "server"
225
226
  },
226
227
  configFile: false,
@@ -228,11 +229,14 @@ function viteConfigFor(options) {
228
229
  // программный вызов он иначе не доедет.
229
230
  mode,
230
231
  plugins: [
231
- ...(_c = (_b = config.preset) == null ? void 0 : _b.plugins) != null ? _c : [],
232
+ ...(_e = (_d = config.preset) == null ? void 0 : _d.plugins) != null ? _e : [],
232
233
  denAppModules({ assets, base, config, configPath, entry: _path2.default.join(root, entry), mode })
233
234
  ],
234
235
  root,
235
- ssr: { noExternal: (_e = (_d = config.server) == null ? void 0 : _d.noExternal) != null ? _e : [] }
236
+ ssr: {
237
+ external,
238
+ noExternal: (_g = (_f = config.server) == null ? void 0 : _f.noExternal) != null ? _g : []
239
+ }
236
240
  };
237
241
  return config.vite ? config.vite(composed, target) : composed;
238
242
  }
@@ -177,9 +177,10 @@ function defineRepository(token, options) {
177
177
  }
178
178
 
179
179
  // src/define-slot.ts
180
- function defineSlot({ view, units = [], viewLayer } = {}) {
180
+ function defineSlot({ note, view, units = [], viewLayer } = {}) {
181
181
  return {
182
182
  __type: "slot",
183
+ note,
183
184
  register(container, name) {
184
185
  const slotLog = _chunkA6ZPAM6Zcjs.unitLogger.call(void 0, container, `slot:${name}`);
185
186
  for (const unit of units) {
@@ -19,6 +19,8 @@ interface SlotDefinition {
19
19
  readonly units: readonly Definition<unknown>[];
20
20
  /** View-слой слота, если он переопределён (см. {@link DefineSlotOptions.viewLayer}). */
21
21
  readonly viewLayer?: LayerDefinition;
22
+ /** Где место находится — как объявил хозяин (см. {@link DefineSlotOptions.note}). */
23
+ readonly note?: string;
22
24
  /**
23
25
  * Регистрирует единицы слота и кладёт сам слот в `SlotRegistry` контейнера.
24
26
  * @param container - Контейнер (острова/страницы/запроса)
@@ -43,6 +45,17 @@ interface DefineSlotOptions {
43
45
  * фреймворке, чем принимающий остров.
44
46
  */
45
47
  viewLayer?: LayerDefinition;
48
+ /**
49
+ * Где это место находится — словами, для инструментов.
50
+ *
51
+ * Из ключа карты `slots` видно ИМЯ места, но не то, куда оно вставлено: `belowMenu` может
52
+ * оказаться и под меню, и внутри него, и за границей экрана. Занимающему место соседу это
53
+ * знание нужно раньше, чем он туда встанет, а взять его неоткуда — view слота непрозрачен
54
+ * для ядра, а разметка принадлежит хозяину.
55
+ *
56
+ * Заполняется вручную и на поведение не влияет: ядро эту строку только передаёт.
57
+ */
58
+ note?: string;
46
59
  }
47
60
  /**
48
61
  * Объявляет слот — самостоятельную `define*`-единицу расширения.
@@ -69,6 +82,6 @@ interface DefineSlotOptions {
69
82
  * // любой пакет — экспортит слот-юнит, не зная, куда он смонтируется и как будет назван
70
83
  * export const chatSlot = defineSlot({ view: ChatView, units: [chatRepository] })
71
84
  */
72
- declare function defineSlot({ view, units, viewLayer }?: DefineSlotOptions): SlotDefinition;
85
+ declare function defineSlot({ note, view, units, viewLayer }?: DefineSlotOptions): SlotDefinition;
73
86
 
74
87
  export { type DefineSlotOptions as D, type SlotDefinition as S, defineSlot as d };
@@ -19,6 +19,8 @@ interface SlotDefinition {
19
19
  readonly units: readonly Definition<unknown>[];
20
20
  /** View-слой слота, если он переопределён (см. {@link DefineSlotOptions.viewLayer}). */
21
21
  readonly viewLayer?: LayerDefinition;
22
+ /** Где место находится — как объявил хозяин (см. {@link DefineSlotOptions.note}). */
23
+ readonly note?: string;
22
24
  /**
23
25
  * Регистрирует единицы слота и кладёт сам слот в `SlotRegistry` контейнера.
24
26
  * @param container - Контейнер (острова/страницы/запроса)
@@ -43,6 +45,17 @@ interface DefineSlotOptions {
43
45
  * фреймворке, чем принимающий остров.
44
46
  */
45
47
  viewLayer?: LayerDefinition;
48
+ /**
49
+ * Где это место находится — словами, для инструментов.
50
+ *
51
+ * Из ключа карты `slots` видно ИМЯ места, но не то, куда оно вставлено: `belowMenu` может
52
+ * оказаться и под меню, и внутри него, и за границей экрана. Занимающему место соседу это
53
+ * знание нужно раньше, чем он туда встанет, а взять его неоткуда — view слота непрозрачен
54
+ * для ядра, а разметка принадлежит хозяину.
55
+ *
56
+ * Заполняется вручную и на поведение не влияет: ядро эту строку только передаёт.
57
+ */
58
+ note?: string;
46
59
  }
47
60
  /**
48
61
  * Объявляет слот — самостоятельную `define*`-единицу расширения.
@@ -69,6 +82,6 @@ interface DefineSlotOptions {
69
82
  * // любой пакет — экспортит слот-юнит, не зная, куда он смонтируется и как будет назван
70
83
  * export const chatSlot = defineSlot({ view: ChatView, units: [chatRepository] })
71
84
  */
72
- declare function defineSlot({ view, units, viewLayer }?: DefineSlotOptions): SlotDefinition;
85
+ declare function defineSlot({ note, view, units, viewLayer }?: DefineSlotOptions): SlotDefinition;
73
86
 
74
87
  export { type DefineSlotOptions as D, type SlotDefinition as S, defineSlot as d };
package/define.cjs CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
 
6
6
 
7
- var _chunkZ5BL4DJAcjs = require('./chunk-Z5BL4DJA.cjs');
7
+ var _chunkH5DKRHHQcjs = require('./chunk-H5DKRHHQ.cjs');
8
8
  require('./chunk-C7BM4DGX.cjs');
9
9
 
10
10
 
@@ -25,4 +25,4 @@ require('./chunk-T5QVCXVB.cjs');
25
25
 
26
26
 
27
27
 
28
- exports.LoggerToken = _chunkA6ZPAM6Zcjs.LoggerToken; exports.SlotRegistry = _chunkZ5BL4DJAcjs.SlotRegistry; exports.SlotRegistryToken = _chunk6QV4L6R2cjs.SlotRegistryToken; exports.defineRepository = _chunkZ5BL4DJAcjs.defineRepository; exports.defineService = _chunkZ5BL4DJAcjs.defineService; exports.defineSlot = _chunkZ5BL4DJAcjs.defineSlot; exports.defineViewModel = _chunkZ5BL4DJAcjs.defineViewModel; exports.logger = _chunkA6ZPAM6Zcjs.logger; exports.scopeLogger = _chunkA6ZPAM6Zcjs.scopeLogger;
28
+ exports.LoggerToken = _chunkA6ZPAM6Zcjs.LoggerToken; exports.SlotRegistry = _chunkH5DKRHHQcjs.SlotRegistry; exports.SlotRegistryToken = _chunk6QV4L6R2cjs.SlotRegistryToken; exports.defineRepository = _chunkH5DKRHHQcjs.defineRepository; exports.defineService = _chunkH5DKRHHQcjs.defineService; exports.defineSlot = _chunkH5DKRHHQcjs.defineSlot; exports.defineViewModel = _chunkH5DKRHHQcjs.defineViewModel; exports.logger = _chunkA6ZPAM6Zcjs.logger; exports.scopeLogger = _chunkA6ZPAM6Zcjs.scopeLogger;
package/define.d.cts CHANGED
@@ -1,5 +1,5 @@
1
1
  export { d as defineRepository, a as defineService, b as defineViewModel } from './define-repository-CwAXed2X.cjs';
2
- export { D as DefineSlotOptions, S as SlotDefinition, d as defineSlot } from './define-slot-DYNCLDJY.cjs';
2
+ export { D as DefineSlotOptions, S as SlotDefinition, d as defineSlot } from './define-slot-DouHW8RK.cjs';
3
3
  export { D as DefineRepositoryOptions, a as DefineServiceOptions, b as DefineViewModelOptions, c as Definition, d as RepositoryDefinition, S as ServiceDefinition, e as SlotEntry, f as SlotRegistry, g as SlotRegistryToken, V as ViewModelDefinition } from './types-Dx5qGiwk.cjs';
4
4
  import { Token, Container } from '@foxford/ioc';
5
5
  import { HierarchicalLogger } from '@foxford/logger';
package/define.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export { d as defineRepository, a as defineService, b as defineViewModel } from './define-repository-q_T4hqeP.js';
2
- export { D as DefineSlotOptions, S as SlotDefinition, d as defineSlot } from './define-slot-Cngzae6i.js';
2
+ export { D as DefineSlotOptions, S as SlotDefinition, d as defineSlot } from './define-slot-TkqbLySB.js';
3
3
  export { D as DefineRepositoryOptions, a as DefineServiceOptions, b as DefineViewModelOptions, c as Definition, d as RepositoryDefinition, S as ServiceDefinition, e as SlotEntry, f as SlotRegistry, g as SlotRegistryToken, V as ViewModelDefinition } from './types-Dx5qGiwk.js';
4
4
  import { Token, Container } from '@foxford/ioc';
5
5
  import { HierarchicalLogger } from '@foxford/logger';
package/define.js CHANGED
@@ -4,7 +4,7 @@ import {
4
4
  defineService,
5
5
  defineSlot,
6
6
  defineViewModel
7
- } from "./chunk-MCN4GFEQ.js";
7
+ } from "./chunk-E56BKBQZ.js";
8
8
  import "./chunk-WBHHHICS.js";
9
9
  import {
10
10
  SlotRegistryToken
@@ -1,4 +1,4 @@
1
- import { S as SlotDefinition } from './define-slot-Cngzae6i.js';
1
+ import { S as SlotDefinition } from './define-slot-TkqbLySB.js';
2
2
  import { L as LayerDefinition, c as Definition } from './types-Dx5qGiwk.js';
3
3
  import { Token } from '@foxford/ioc';
4
4
 
@@ -1,4 +1,4 @@
1
- import { S as SlotDefinition } from './define-slot-DYNCLDJY.cjs';
1
+ import { S as SlotDefinition } from './define-slot-DouHW8RK.cjs';
2
2
  import { L as LayerDefinition, c as Definition } from './types-Dx5qGiwk.cjs';
3
3
  import { Token } from '@foxford/ioc';
4
4
 
package/index.cjs CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
 
6
6
 
7
- var _chunkZ5BL4DJAcjs = require('./chunk-Z5BL4DJA.cjs');
7
+ var _chunkH5DKRHHQcjs = require('./chunk-H5DKRHHQ.cjs');
8
8
  require('./chunk-C7BM4DGX.cjs');
9
9
 
10
10
 
@@ -719,4 +719,4 @@ function defineLayer(token, options) {
719
719
 
720
720
 
721
721
 
722
- exports.ActivatableToken = _chunk6QV4L6R2cjs.ActivatableToken; exports.ContainerManagerImpl = ContainerManagerImpl; exports.ContainerManagerToken = _chunk6QV4L6R2cjs.ContainerManagerToken; exports.GuardRunnerImpl = GuardRunnerImpl; exports.GuardRunnerToken = _chunk6QV4L6R2cjs.GuardRunnerToken; exports.NavigationManagerImpl = NavigationManagerImpl; exports.NavigationManagerToken = _chunk6QV4L6R2cjs.NavigationManagerToken; exports.RequestContextToken = _chunk6QV4L6R2cjs.RequestContextToken; exports.SlotRegistry = _chunkZ5BL4DJAcjs.SlotRegistry; exports.SlotRegistryToken = _chunk6QV4L6R2cjs.SlotRegistryToken; exports.StateCache = StateCache; exports.StateRegistry = StateRegistry; exports.StateRegistryToken = _chunk6QV4L6R2cjs.StateRegistryToken; exports.StateSerializerImpl = StateSerializerImpl; exports.StateSerializerToken = _chunk6QV4L6R2cjs.StateSerializerToken; exports.ViewLayerToken = _chunkXOJ2VWX4cjs.ViewLayerToken; exports.createCore = createCore; exports.defaultGlobalResolver = defaultGlobalResolver; exports.defineActionGuard = defineActionGuard; exports.defineExtension = defineExtension; exports.defineGuard = defineGuard; exports.defineLayer = defineLayer; exports.defineLayout = defineLayout; exports.defineRepository = _chunkZ5BL4DJAcjs.defineRepository; exports.defineService = _chunkZ5BL4DJAcjs.defineService; exports.defineSlot = _chunkZ5BL4DJAcjs.defineSlot; exports.defineViewModel = _chunkZ5BL4DJAcjs.defineViewModel;
722
+ exports.ActivatableToken = _chunk6QV4L6R2cjs.ActivatableToken; exports.ContainerManagerImpl = ContainerManagerImpl; exports.ContainerManagerToken = _chunk6QV4L6R2cjs.ContainerManagerToken; exports.GuardRunnerImpl = GuardRunnerImpl; exports.GuardRunnerToken = _chunk6QV4L6R2cjs.GuardRunnerToken; exports.NavigationManagerImpl = NavigationManagerImpl; exports.NavigationManagerToken = _chunk6QV4L6R2cjs.NavigationManagerToken; exports.RequestContextToken = _chunk6QV4L6R2cjs.RequestContextToken; exports.SlotRegistry = _chunkH5DKRHHQcjs.SlotRegistry; exports.SlotRegistryToken = _chunk6QV4L6R2cjs.SlotRegistryToken; exports.StateCache = StateCache; exports.StateRegistry = StateRegistry; exports.StateRegistryToken = _chunk6QV4L6R2cjs.StateRegistryToken; exports.StateSerializerImpl = StateSerializerImpl; exports.StateSerializerToken = _chunk6QV4L6R2cjs.StateSerializerToken; exports.ViewLayerToken = _chunkXOJ2VWX4cjs.ViewLayerToken; exports.createCore = createCore; exports.defaultGlobalResolver = defaultGlobalResolver; exports.defineActionGuard = defineActionGuard; exports.defineExtension = defineExtension; exports.defineGuard = defineGuard; exports.defineLayer = defineLayer; exports.defineLayout = defineLayout; exports.defineRepository = _chunkH5DKRHHQcjs.defineRepository; exports.defineService = _chunkH5DKRHHQcjs.defineService; exports.defineSlot = _chunkH5DKRHHQcjs.defineSlot; exports.defineViewModel = _chunkH5DKRHHQcjs.defineViewModel;
package/index.d.cts CHANGED
@@ -3,9 +3,9 @@ export { B as Activatable, F as ActivatableToken, H as ContainerManagerToken, D
3
3
  import { Container, Token } from '@foxford/ioc';
4
4
  import { DefinitionResolver } from './adapter.cjs';
5
5
  export { d as defineRepository, a as defineService, b as defineViewModel } from './define-repository-CwAXed2X.cjs';
6
- export { D as DefineSlotOptions, S as SlotDefinition, d as defineSlot } from './define-slot-DYNCLDJY.cjs';
7
- export { V as ViewAdapter, a as ViewLayerDefinition, b as ViewLayerToken } from './view-adapter-Cia9blgH.cjs';
8
- import './descriptor-BfsBDME1.cjs';
6
+ export { D as DefineSlotOptions, S as SlotDefinition, d as defineSlot } from './define-slot-DouHW8RK.cjs';
7
+ export { V as ViewAdapter, a as ViewLayerDefinition, b as ViewLayerToken } from './view-adapter-DF1me25J.cjs';
8
+ import './descriptor-w8oxeIAe.cjs';
9
9
  import './server-render-CocWXQKC.cjs';
10
10
 
11
11
  /**
package/index.d.ts CHANGED
@@ -3,9 +3,9 @@ export { B as Activatable, F as ActivatableToken, H as ContainerManagerToken, D
3
3
  import { Container, Token } from '@foxford/ioc';
4
4
  import { DefinitionResolver } from './adapter.js';
5
5
  export { d as defineRepository, a as defineService, b as defineViewModel } from './define-repository-q_T4hqeP.js';
6
- export { D as DefineSlotOptions, S as SlotDefinition, d as defineSlot } from './define-slot-Cngzae6i.js';
7
- export { V as ViewAdapter, a as ViewLayerDefinition, b as ViewLayerToken } from './view-adapter-Bzcjotsn.js';
8
- import './descriptor-D8ocBnTb.js';
6
+ export { D as DefineSlotOptions, S as SlotDefinition, d as defineSlot } from './define-slot-TkqbLySB.js';
7
+ export { V as ViewAdapter, a as ViewLayerDefinition, b as ViewLayerToken } from './view-adapter-BV62bdhM.js';
8
+ import './descriptor-tWPa9j-x.js';
9
9
  import './server-render-CocWXQKC.js';
10
10
 
11
11
  /**
package/index.js CHANGED
@@ -4,7 +4,7 @@ import {
4
4
  defineService,
5
5
  defineSlot,
6
6
  defineViewModel
7
- } from "./chunk-MCN4GFEQ.js";
7
+ } from "./chunk-E56BKBQZ.js";
8
8
  import "./chunk-WBHHHICS.js";
9
9
  import {
10
10
  ViewLayerToken
@@ -1,10 +1,10 @@
1
- import { A as AppAssets, I as IslandDescriptor } from '../descriptor-BfsBDME1.cjs';
1
+ import { A as AppAssets, I as IslandDescriptor } from '../descriptor-w8oxeIAe.cjs';
2
2
  import { Container } from '@foxford/ioc';
3
3
  import { R as RequestContext } from '../types-Dx5qGiwk.cjs';
4
4
  export { A as AppRoute, R as RouteDeclaration, a as RouteMatch, m as matchRoute, n as normalizeRoutes, p as pathPattern } from '../routes-B0hDrkiF.cjs';
5
5
  export { R as RenderTree, a as ServerRender, S as ServerRenderResult } from '../server-render-CocWXQKC.cjs';
6
- export { R as RenderIslandOptions, V as ViewAdapter, a as ViewLayerDefinition, b as ViewLayerToken, r as resolveViewAdapter, v as viewAdapterOf } from '../view-adapter-Cia9blgH.cjs';
7
- import '../define-slot-DYNCLDJY.cjs';
6
+ export { R as RenderIslandOptions, V as ViewAdapter, a as ViewLayerDefinition, b as ViewLayerToken, r as resolveViewAdapter, v as viewAdapterOf } from '../view-adapter-DF1me25J.cjs';
7
+ import '../define-slot-DouHW8RK.cjs';
8
8
 
9
9
  /** Вклад приложения в `<head>` документа. */
10
10
  interface DocumentHead {
package/island/index.d.ts CHANGED
@@ -1,10 +1,10 @@
1
- import { A as AppAssets, I as IslandDescriptor } from '../descriptor-D8ocBnTb.js';
1
+ import { A as AppAssets, I as IslandDescriptor } from '../descriptor-tWPa9j-x.js';
2
2
  import { Container } from '@foxford/ioc';
3
3
  import { R as RequestContext } from '../types-Dx5qGiwk.js';
4
4
  export { A as AppRoute, R as RouteDeclaration, a as RouteMatch, m as matchRoute, n as normalizeRoutes, p as pathPattern } from '../routes-0uXJ0fux.js';
5
5
  export { R as RenderTree, a as ServerRender, S as ServerRenderResult } from '../server-render-CocWXQKC.js';
6
- export { R as RenderIslandOptions, V as ViewAdapter, a as ViewLayerDefinition, b as ViewLayerToken, r as resolveViewAdapter, v as viewAdapterOf } from '../view-adapter-Bzcjotsn.js';
7
- import '../define-slot-Cngzae6i.js';
6
+ export { R as RenderIslandOptions, V as ViewAdapter, a as ViewLayerDefinition, b as ViewLayerToken, r as resolveViewAdapter, v as viewAdapterOf } from '../view-adapter-BV62bdhM.js';
7
+ import '../define-slot-TkqbLySB.js';
8
8
 
9
9
  /** Вклад приложения в `<head>` документа. */
10
10
  interface DocumentHead {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@foxford/den",
3
- "version": "3.2.2",
3
+ "version": "3.2.4",
4
4
  "description": "Den — декларативный метафреймворк Foxford (core runtime)",
5
5
  "keywords": [
6
6
  "foxford",
@@ -9,6 +9,13 @@
9
9
  "ioc",
10
10
  "lifecycle"
11
11
  ],
12
+ "homepage": "https://github.com/foxford/frontend-platform",
13
+ "bugs": "https://github.com/foxford/frontend-platform/issues",
14
+ "repository": {
15
+ "type": "git",
16
+ "url": "git+https://github.com/foxford/frontend-platform.git",
17
+ "directory": "packages/den"
18
+ },
12
19
  "license": "MIT",
13
20
  "author": "Foxford Co",
14
21
  "maintainers": [
@@ -83,14 +90,16 @@
83
90
  "bin",
84
91
  "builder",
85
92
  "chunk-3RX2OSUL.js",
86
- "chunk-3X4WVHUU.cjs",
93
+ "chunk-4XR6EUOW.js",
87
94
  "chunk-6FNC3XMI.js",
88
95
  "chunk-6QV4L6R2.cjs",
89
96
  "chunk-A6ZPAM6Z.cjs",
90
97
  "chunk-C7BM4DGX.cjs",
91
98
  "chunk-E23E2VUC.js",
99
+ "chunk-E56BKBQZ.js",
100
+ "chunk-G6RT4EBO.cjs",
101
+ "chunk-H5DKRHHQ.cjs",
92
102
  "chunk-KQAB6C6Q.cjs",
93
- "chunk-MCN4GFEQ.js",
94
103
  "chunk-RG7ZV5BD.js",
95
104
  "chunk-SOH2TL2N.js",
96
105
  "chunk-T5QVCXVB.cjs",
@@ -98,19 +107,17 @@
98
107
  "chunk-WBHHHICS.js",
99
108
  "chunk-XDM6J4LJ.cjs",
100
109
  "chunk-XOJ2VWX4.cjs",
101
- "chunk-XU5HUIPK.js",
102
- "chunk-Z5BL4DJA.cjs",
103
110
  "define-repository-CwAXed2X.d.cts",
104
111
  "define-repository-q_T4hqeP.d.ts",
105
- "define-slot-Cngzae6i.d.ts",
106
- "define-slot-DYNCLDJY.d.cts",
112
+ "define-slot-DouHW8RK.d.cts",
113
+ "define-slot-TkqbLySB.d.ts",
107
114
  "define.cjs",
108
115
  "define.d.cts",
109
116
  "define.d.ts",
110
117
  "define.js",
111
118
  "den.js",
112
- "descriptor-BfsBDME1.d.cts",
113
- "descriptor-D8ocBnTb.d.ts",
119
+ "descriptor-tWPa9j-x.d.ts",
120
+ "descriptor-w8oxeIAe.d.cts",
114
121
  "index.cjs",
115
122
  "index.d.cts",
116
123
  "index.d.ts",
@@ -124,9 +131,9 @@
124
131
  "server-render-CocWXQKC.d.ts",
125
132
  "types-Dx5qGiwk.d.cts",
126
133
  "types-Dx5qGiwk.d.ts",
127
- "view-adapter-Bzcjotsn.d.ts",
128
- "view-adapter-Cia9blgH.d.cts"
134
+ "view-adapter-BV62bdhM.d.ts",
135
+ "view-adapter-DF1me25J.d.cts"
129
136
  ],
130
- "sha": "7fa6f3e",
137
+ "sha": "41b3ba5",
131
138
  "scripts": {}
132
139
  }
package/serve/index.d.cts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { FastifyInstance, FastifyPluginAsync } from 'fastify';
2
- import { I as IslandDescriptor } from '../descriptor-BfsBDME1.cjs';
2
+ import { I as IslandDescriptor } from '../descriptor-w8oxeIAe.cjs';
3
3
  import { A as AppRoute } from '../routes-B0hDrkiF.cjs';
4
- import '../define-slot-DYNCLDJY.cjs';
4
+ import '../define-slot-DouHW8RK.cjs';
5
5
  import '../types-Dx5qGiwk.cjs';
6
6
  import '@foxford/ioc';
7
7
 
package/serve/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { FastifyInstance, FastifyPluginAsync } from 'fastify';
2
- import { I as IslandDescriptor } from '../descriptor-D8ocBnTb.js';
2
+ import { I as IslandDescriptor } from '../descriptor-tWPa9j-x.js';
3
3
  import { A as AppRoute } from '../routes-0uXJ0fux.js';
4
- import '../define-slot-Cngzae6i.js';
4
+ import '../define-slot-TkqbLySB.js';
5
5
  import '../types-Dx5qGiwk.js';
6
6
  import '@foxford/ioc';
7
7
 
@@ -1,4 +1,4 @@
1
- import { I as IslandDescriptor } from './descriptor-D8ocBnTb.js';
1
+ import { I as IslandDescriptor } from './descriptor-tWPa9j-x.js';
2
2
  import { S as ServerRenderResult } from './server-render-CocWXQKC.js';
3
3
  import { L as LayerDefinition, h as LayerConfig } from './types-Dx5qGiwk.js';
4
4
  import { Container, Token } from '@foxford/ioc';
@@ -1,4 +1,4 @@
1
- import { I as IslandDescriptor } from './descriptor-BfsBDME1.cjs';
1
+ import { I as IslandDescriptor } from './descriptor-w8oxeIAe.cjs';
2
2
  import { S as ServerRenderResult } from './server-render-CocWXQKC.cjs';
3
3
  import { L as LayerDefinition, h as LayerConfig } from './types-Dx5qGiwk.cjs';
4
4
  import { Container, Token } from '@foxford/ioc';