@foxford/den 3.2.0 → 3.2.1

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/bin/den.cjs CHANGED
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
 
3
3
 
4
- var _chunkRRR2DJMNcjs = require('../chunk-RRR2DJMN.cjs');
4
+ var _chunkUB3GCX73cjs = require('../chunk-UB3GCX73.cjs');
5
+ require('../chunk-KQAB6C6Q.cjs');
5
6
  require('../chunk-A6ZPAM6Z.cjs');
6
7
 
7
8
 
@@ -69,11 +70,11 @@ function run(argv) {
69
70
  }
70
71
  const target = { base: options["base"], root: (_a = options["root"]) != null ? _a : process.cwd() };
71
72
  if (command === "build") {
72
- yield _chunkRRR2DJMNcjs.buildApp.call(void 0, target);
73
+ yield _chunkUB3GCX73cjs.buildApp.call(void 0, target);
73
74
  return;
74
75
  }
75
76
  if (command === "dev") {
76
- yield _chunkRRR2DJMNcjs.devApp.call(void 0, target);
77
+ yield _chunkUB3GCX73cjs.devApp.call(void 0, target);
77
78
  return;
78
79
  }
79
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,8 @@
1
1
  import {
2
2
  buildApp,
3
3
  devApp
4
- } from "../chunk-BMI5HNGE.js";
4
+ } from "../chunk-URSWYSZF.js";
5
+ import "../chunk-RG7ZV5BD.js";
5
6
  import "../chunk-TPBI6TOU.js";
6
7
  import {
7
8
  __async
package/builder/index.cjs CHANGED
@@ -2,11 +2,12 @@
2
2
 
3
3
 
4
4
 
5
- var _chunkRRR2DJMNcjs = require('../chunk-RRR2DJMN.cjs');
5
+ var _chunkUB3GCX73cjs = require('../chunk-UB3GCX73.cjs');
6
+ require('../chunk-KQAB6C6Q.cjs');
6
7
  require('../chunk-A6ZPAM6Z.cjs');
7
8
  require('../chunk-T5QVCXVB.cjs');
8
9
 
9
10
 
10
11
 
11
12
 
12
- exports.buildApp = _chunkRRR2DJMNcjs.buildApp; exports.defineAppConfig = _chunkRRR2DJMNcjs.defineAppConfig; exports.devApp = _chunkRRR2DJMNcjs.devApp;
13
+ exports.buildApp = _chunkUB3GCX73cjs.buildApp; exports.defineAppConfig = _chunkUB3GCX73cjs.defineAppConfig; exports.devApp = _chunkUB3GCX73cjs.devApp;
package/builder/index.js CHANGED
@@ -2,7 +2,8 @@ import {
2
2
  buildApp,
3
3
  defineAppConfig,
4
4
  devApp
5
- } from "../chunk-BMI5HNGE.js";
5
+ } from "../chunk-URSWYSZF.js";
6
+ import "../chunk-RG7ZV5BD.js";
6
7
  import "../chunk-TPBI6TOU.js";
7
8
  import "../chunk-6FNC3XMI.js";
8
9
  export {
@@ -0,0 +1,15 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }// src/serve/env.ts
2
+ var _fs = require('fs'); var _fs2 = _interopRequireDefault(_fs);
3
+ var _path = require('path'); var _path2 = _interopRequireDefault(_path);
4
+ var ENV_FILE = ".env";
5
+ function loadAppEnv(root) {
6
+ const file = _path2.default.join(root, ENV_FILE);
7
+ if (!_fs2.default.existsSync(file)) {
8
+ return;
9
+ }
10
+ process.loadEnvFile(file);
11
+ }
12
+
13
+
14
+
15
+ exports.loadAppEnv = loadAppEnv;
@@ -0,0 +1,15 @@
1
+ // src/serve/env.ts
2
+ import fs from "fs";
3
+ import path from "path";
4
+ var ENV_FILE = ".env";
5
+ function loadAppEnv(root) {
6
+ const file = path.join(root, ENV_FILE);
7
+ if (!fs.existsSync(file)) {
8
+ return;
9
+ }
10
+ process.loadEnvFile(file);
11
+ }
12
+
13
+ export {
14
+ loadAppEnv
15
+ };
@@ -1,5 +1,8 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2
2
 
3
+ var _chunkKQAB6C6Qcjs = require('./chunk-KQAB6C6Q.cjs');
4
+
5
+
3
6
  var _chunkA6ZPAM6Zcjs = require('./chunk-A6ZPAM6Z.cjs');
4
7
 
5
8
 
@@ -109,11 +112,16 @@ export default descriptor
109
112
  function generateServerProcess(configPath, base, mode) {
110
113
  const assets = mode === "development" ? ` assets: { base: ${JSON.stringify(base)}, dir: fileURLToPath(new URL('./client', import.meta.url)) },
111
114
  ` : "";
112
- return `${mode === "development" ? "import { fileURLToPath } from 'node:url'\n\n" : ""}import { serveApp } from '@foxford/den/serve'
115
+ return `import { fileURLToPath } from 'node:url'
116
+
117
+ import { loadAppEnv, serveApp } from '@foxford/den/serve'
113
118
 
114
119
  import app from ${JSON.stringify(VIRTUAL_SERVER_APP)}
115
120
  import config from ${JSON.stringify(configPath)}
116
121
 
122
+ // \u0423\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044F \u043E\u043A\u0440\u0443\u0436\u0435\u043D\u0438\u044F \u2014 \u0434\u043E \u043F\u0435\u0440\u0432\u043E\u0433\u043E \u0447\u0442\u0435\u043D\u0438\u044F: \u043F\u043E\u0440\u0442 \u0438 \u0430\u0434\u0440\u0435\u0441\u0430 \u0447\u0438\u0442\u0430\u044E\u0442\u0441\u044F \u043D\u0438\u0436\u0435
123
+ loadAppEnv(fileURLToPath(new URL('..', import.meta.url)))
124
+
117
125
  await serveApp(app, {
118
126
  ${assets} configure: config.server?.configure,
119
127
  host: process.env.HOST,
@@ -225,6 +233,7 @@ function buildApp(options) {
225
233
  const { mode = "production" } = options;
226
234
  process.env["NODE_ENV"] = mode;
227
235
  const root = _path2.default.resolve(options.root);
236
+ _chunkKQAB6C6Qcjs.loadAppEnv.call(void 0, root);
228
237
  const { config, configPath } = yield loadAppConfig(root);
229
238
  const port = resolvePort((_a = config.server) == null ? void 0 : _a.port);
230
239
  const base = (_b = options.base) != null ? _b : "";
@@ -309,7 +318,9 @@ function bannerLines(facts2) {
309
318
  `${label("\u043B\u043E\u043A\u0430\u043B\u044C\u043D\u043E")}http://localhost:${port}`,
310
319
  ...network === void 0 ? [] : [`${label("\u0432 \u0441\u0435\u0442\u0438")}http://${network}:${port}`],
311
320
  `${label("\u0440\u0443\u0447\u043A\u0438")}${ENDPOINTS.join(" ")}`,
312
- ...facts2.base === void 0 ? [] : [`${label("\u0430\u0440\u0442\u0435\u0444\u0430\u043A\u0442\u044B")}${facts2.base}`],
321
+ // Префикс печатается, только когда он есть: при относительной сборке артефакты идут с
322
+ // адреса самого приложения, а он уже назван строкой выше
323
+ ...facts2.base === void 0 || facts2.base === "" ? [] : [`${label("\u043F\u0440\u0435\u0444\u0438\u043A\u0441")}${facts2.base}`],
313
324
  `${label("\u0447\u0430\u043D\u043A\u0438")}${assetsSummary(facts2.assets)}`,
314
325
  `${label("\u0432\u044B\u0445\u043E\u0434\u044B")}${OUTPUTS.join(", ")}`,
315
326
  `${label("\u043F\u0440\u0430\u0432\u043A\u0438")}${facts2.watched.join(", ")}`,
@@ -1,3 +1,6 @@
1
+ import {
2
+ loadAppEnv
3
+ } from "./chunk-RG7ZV5BD.js";
1
4
  import {
2
5
  logger
3
6
  } from "./chunk-TPBI6TOU.js";
@@ -109,11 +112,16 @@ export default descriptor
109
112
  function generateServerProcess(configPath, base, mode) {
110
113
  const assets = mode === "development" ? ` assets: { base: ${JSON.stringify(base)}, dir: fileURLToPath(new URL('./client', import.meta.url)) },
111
114
  ` : "";
112
- return `${mode === "development" ? "import { fileURLToPath } from 'node:url'\n\n" : ""}import { serveApp } from '@foxford/den/serve'
115
+ return `import { fileURLToPath } from 'node:url'
116
+
117
+ import { loadAppEnv, serveApp } from '@foxford/den/serve'
113
118
 
114
119
  import app from ${JSON.stringify(VIRTUAL_SERVER_APP)}
115
120
  import config from ${JSON.stringify(configPath)}
116
121
 
122
+ // \u0423\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044F \u043E\u043A\u0440\u0443\u0436\u0435\u043D\u0438\u044F \u2014 \u0434\u043E \u043F\u0435\u0440\u0432\u043E\u0433\u043E \u0447\u0442\u0435\u043D\u0438\u044F: \u043F\u043E\u0440\u0442 \u0438 \u0430\u0434\u0440\u0435\u0441\u0430 \u0447\u0438\u0442\u0430\u044E\u0442\u0441\u044F \u043D\u0438\u0436\u0435
123
+ loadAppEnv(fileURLToPath(new URL('..', import.meta.url)))
124
+
117
125
  await serveApp(app, {
118
126
  ${assets} configure: config.server?.configure,
119
127
  host: process.env.HOST,
@@ -225,6 +233,7 @@ function buildApp(options) {
225
233
  const { mode = "production" } = options;
226
234
  process.env["NODE_ENV"] = mode;
227
235
  const root = path2.resolve(options.root);
236
+ loadAppEnv(root);
228
237
  const { config, configPath } = yield loadAppConfig(root);
229
238
  const port = resolvePort((_a = config.server) == null ? void 0 : _a.port);
230
239
  const base = (_b = options.base) != null ? _b : "";
@@ -309,7 +318,9 @@ function bannerLines(facts2) {
309
318
  `${label("\u043B\u043E\u043A\u0430\u043B\u044C\u043D\u043E")}http://localhost:${port}`,
310
319
  ...network === void 0 ? [] : [`${label("\u0432 \u0441\u0435\u0442\u0438")}http://${network}:${port}`],
311
320
  `${label("\u0440\u0443\u0447\u043A\u0438")}${ENDPOINTS.join(" ")}`,
312
- ...facts2.base === void 0 ? [] : [`${label("\u0430\u0440\u0442\u0435\u0444\u0430\u043A\u0442\u044B")}${facts2.base}`],
321
+ // Префикс печатается, только когда он есть: при относительной сборке артефакты идут с
322
+ // адреса самого приложения, а он уже назван строкой выше
323
+ ...facts2.base === void 0 || facts2.base === "" ? [] : [`${label("\u043F\u0440\u0435\u0444\u0438\u043A\u0441")}${facts2.base}`],
313
324
  `${label("\u0447\u0430\u043D\u043A\u0438")}${assetsSummary(facts2.assets)}`,
314
325
  `${label("\u0432\u044B\u0445\u043E\u0434\u044B")}${OUTPUTS.join(", ")}`,
315
326
  `${label("\u043F\u0440\u0430\u0432\u043A\u0438")}${facts2.watched.join(", ")}`,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@foxford/den",
3
- "version": "3.2.0",
3
+ "version": "3.2.1",
4
4
  "description": "Den — декларативный метафреймворк Foxford (core runtime)",
5
5
  "keywords": [
6
6
  "foxford",
@@ -24,8 +24,8 @@
24
24
  },
25
25
  "dependencies": {
26
26
  "fastify": "^5.11.2",
27
- "@foxford/logger": "^1.2.2",
28
- "@foxford/ioc": "^1.1.2"
27
+ "@foxford/ioc": "^1.1.2",
28
+ "@foxford/logger": "^1.2.2"
29
29
  },
30
30
  "peerDependencies": {
31
31
  "vite": ">=5.0.0"
@@ -86,14 +86,16 @@
86
86
  "chunk-6FNC3XMI.js",
87
87
  "chunk-6QV4L6R2.cjs",
88
88
  "chunk-A6ZPAM6Z.cjs",
89
- "chunk-BMI5HNGE.js",
90
89
  "chunk-C7BM4DGX.cjs",
91
90
  "chunk-E23E2VUC.js",
91
+ "chunk-KQAB6C6Q.cjs",
92
92
  "chunk-MCN4GFEQ.js",
93
- "chunk-RRR2DJMN.cjs",
93
+ "chunk-RG7ZV5BD.js",
94
94
  "chunk-T5QVCXVB.cjs",
95
95
  "chunk-TPBI6TOU.js",
96
96
  "chunk-TPHJUDHG.js",
97
+ "chunk-UB3GCX73.cjs",
98
+ "chunk-URSWYSZF.js",
97
99
  "chunk-WBHHHICS.js",
98
100
  "chunk-XOJ2VWX4.cjs",
99
101
  "chunk-Z5BL4DJA.cjs",
@@ -125,6 +127,6 @@
125
127
  "view-adapter-B4gEb-ms.d.ts",
126
128
  "view-adapter-DJ7yB6Ml.d.cts"
127
129
  ],
128
- "sha": "c382a3d",
130
+ "sha": "57a2d9b",
129
131
  "scripts": {}
130
132
  }
package/serve/index.cjs CHANGED
@@ -1,5 +1,8 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2
2
 
3
+ var _chunkKQAB6C6Qcjs = require('../chunk-KQAB6C6Q.cjs');
4
+
5
+
3
6
 
4
7
 
5
8
  var _chunkZOU6W6ZQcjs = require('../chunk-ZOU6W6ZQ.cjs');
@@ -184,4 +187,5 @@ function serveApp(_0) {
184
187
 
185
188
 
186
189
 
187
- exports.appPlugin = appPlugin; exports.registerAssets = registerAssets; exports.serveApp = serveApp;
190
+
191
+ exports.appPlugin = appPlugin; exports.loadAppEnv = _chunkKQAB6C6Qcjs.loadAppEnv; exports.registerAssets = registerAssets; exports.serveApp = serveApp;
package/serve/index.d.cts CHANGED
@@ -41,6 +41,15 @@ interface AppPluginOptions {
41
41
  */
42
42
  declare const appPlugin: FastifyPluginAsync<AppPluginOptions>;
43
43
 
44
+ /**
45
+ * Кладёт умолчания из `<root>/.env` в окружение процесса.
46
+ *
47
+ * Отсутствие файла — норма, а не отказ: он локальный и в репозиторий не попадает.
48
+ *
49
+ * @param root - Корень приложения
50
+ */
51
+ declare function loadAppEnv(root: string): void;
52
+
44
53
  /** Настройки инстанса. */
45
54
  interface ServeAppOptions {
46
55
  /** Порт; `0` — свободный, фактический смотри в `server.addresses()`. */
@@ -79,4 +88,4 @@ interface ServeAppOptions {
79
88
  */
80
89
  declare function serveApp(app: ServableApp, options?: ServeAppOptions): Promise<FastifyInstance>;
81
90
 
82
- export { type AppAssetsSource, type AppPluginOptions, type ServableApp, type ServeAppOptions, appPlugin, registerAssets, serveApp };
91
+ export { type AppAssetsSource, type AppPluginOptions, type ServableApp, type ServeAppOptions, appPlugin, loadAppEnv, registerAssets, serveApp };
package/serve/index.d.ts CHANGED
@@ -41,6 +41,15 @@ interface AppPluginOptions {
41
41
  */
42
42
  declare const appPlugin: FastifyPluginAsync<AppPluginOptions>;
43
43
 
44
+ /**
45
+ * Кладёт умолчания из `<root>/.env` в окружение процесса.
46
+ *
47
+ * Отсутствие файла — норма, а не отказ: он локальный и в репозиторий не попадает.
48
+ *
49
+ * @param root - Корень приложения
50
+ */
51
+ declare function loadAppEnv(root: string): void;
52
+
44
53
  /** Настройки инстанса. */
45
54
  interface ServeAppOptions {
46
55
  /** Порт; `0` — свободный, фактический смотри в `server.addresses()`. */
@@ -79,4 +88,4 @@ interface ServeAppOptions {
79
88
  */
80
89
  declare function serveApp(app: ServableApp, options?: ServeAppOptions): Promise<FastifyInstance>;
81
90
 
82
- export { type AppAssetsSource, type AppPluginOptions, type ServableApp, type ServeAppOptions, appPlugin, registerAssets, serveApp };
91
+ export { type AppAssetsSource, type AppPluginOptions, type ServableApp, type ServeAppOptions, appPlugin, loadAppEnv, registerAssets, serveApp };
package/serve/index.js CHANGED
@@ -1,3 +1,6 @@
1
+ import {
2
+ loadAppEnv
3
+ } from "../chunk-RG7ZV5BD.js";
1
4
  import {
2
5
  matchRoute,
3
6
  normalizeRoutes,
@@ -182,6 +185,7 @@ function serveApp(_0) {
182
185
  }
183
186
  export {
184
187
  appPlugin,
188
+ loadAppEnv,
185
189
  registerAssets,
186
190
  serveApp
187
191
  };