@storm-software/linting-tools 1.108.18 → 1.109.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/README.md +1 -1
- package/bin/lint.cjs +41 -24
- package/bin/lint.js +41 -24
- package/dist/index.cjs +41 -24
- package/dist/index.d.cts +3 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +41 -24
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -21,7 +21,7 @@ This package is part of the <b>⚡Storm-Ops</b> monorepo. The Storm-Ops packages
|
|
|
21
21
|
|
|
22
22
|
<h3 align="center">💻 Visit <a href="https://stormsoftware.com" target="_blank">stormsoftware.com</a> to stay up to date with this developer</h3><br />
|
|
23
23
|
|
|
24
|
-
[](https://prettier.io/) [](http://nx.dev/) [](https://nextjs.org/) [](http://commitizen.github.io/cz-cli/)  [](https://fumadocs.vercel.app/) 
|
|
25
25
|
|
|
26
26
|
<!-- prettier-ignore-start -->
|
|
27
27
|
<!-- markdownlint-disable -->
|
package/bin/lint.cjs
CHANGED
|
@@ -155,7 +155,7 @@ var WorkspaceDirectoryConfigSchema = import_zod.default.object({
|
|
|
155
155
|
build: import_zod.default.string().trim().default("dist").describe("The directory used to store the workspace's distributable files after a build (relative to the workspace root)")
|
|
156
156
|
}).describe("Various directories used by the workspace to store data, cache, and configuration files");
|
|
157
157
|
var StormConfigSchema = import_zod.default.object({
|
|
158
|
-
$schema: import_zod.default.string().trim().default("https://cdn.jsdelivr.net/npm/@storm-software/config/schemas/storm.schema.json").optional().nullish().describe("The URL to the JSON schema file that describes the Storm configuration file"),
|
|
158
|
+
$schema: import_zod.default.string().trim().default("https://cdn.jsdelivr.net/npm/@storm-software/config/schemas/storm-workspace.schema.json").optional().nullish().describe("The URL to the JSON schema file that describes the Storm configuration file"),
|
|
159
159
|
extends: ExtendsSchema.optional(),
|
|
160
160
|
name: import_zod.default.string().trim().toLowerCase().optional().describe("The name of the service/package/scope using this configuration"),
|
|
161
161
|
namespace: import_zod.default.string().trim().toLowerCase().optional().describe("The namespace of the package"),
|
|
@@ -197,6 +197,7 @@ var StormConfigSchema = import_zod.default.object({
|
|
|
197
197
|
"trace",
|
|
198
198
|
"all"
|
|
199
199
|
]).default("info").describe("The log level used to filter out lower priority log messages. If not provided, this is defaulted using the `environment` config value (if `environment` is set to `production` then `level` is `error`, else `level` is `debug`)."),
|
|
200
|
+
skipConfigLogging: import_zod.default.boolean().optional().describe("Should the logging of the current Storm Workspace configuration be skipped?"),
|
|
200
201
|
registry: RegistryConfigSchema,
|
|
201
202
|
configFile: import_zod.default.string().trim().nullable().default(null).describe("The filepath of the Storm config. When this field is null, no config file was found in the current workspace."),
|
|
202
203
|
colors: ColorConfigSchema.or(ColorConfigMapSchema).describe("Storm theme config values used for styling various package elements"),
|
|
@@ -359,14 +360,17 @@ var import_node_fs = require("fs");
|
|
|
359
360
|
var import_node_path = require("path");
|
|
360
361
|
var MAX_PATH_SEARCH_DEPTH = 30;
|
|
361
362
|
var depth = 0;
|
|
362
|
-
function findFolderUp(startPath, endFileNames) {
|
|
363
|
+
function findFolderUp(startPath, endFileNames = [], endDirectoryNames = []) {
|
|
363
364
|
const _startPath = startPath ?? process.cwd();
|
|
365
|
+
if (endDirectoryNames.some((endDirName) => (0, import_node_fs.existsSync)((0, import_node_path.join)(_startPath, endDirName)))) {
|
|
366
|
+
return _startPath;
|
|
367
|
+
}
|
|
364
368
|
if (endFileNames.some((endFileName) => (0, import_node_fs.existsSync)((0, import_node_path.join)(_startPath, endFileName)))) {
|
|
365
369
|
return _startPath;
|
|
366
370
|
}
|
|
367
371
|
if (_startPath !== "/" && depth++ < MAX_PATH_SEARCH_DEPTH) {
|
|
368
372
|
const parent = (0, import_node_path.join)(_startPath, "..");
|
|
369
|
-
return findFolderUp(parent, endFileNames);
|
|
373
|
+
return findFolderUp(parent, endFileNames, endDirectoryNames);
|
|
370
374
|
}
|
|
371
375
|
return void 0;
|
|
372
376
|
}
|
|
@@ -374,17 +378,17 @@ __name(findFolderUp, "findFolderUp");
|
|
|
374
378
|
|
|
375
379
|
// ../config-tools/src/utilities/find-workspace-root.ts
|
|
376
380
|
var rootFiles = [
|
|
377
|
-
"storm.json",
|
|
378
|
-
"storm.json",
|
|
379
|
-
"storm.yaml",
|
|
380
|
-
"storm.yml",
|
|
381
|
-
"storm.js",
|
|
382
|
-
"storm.ts",
|
|
383
|
-
".storm.json",
|
|
384
|
-
".storm.yaml",
|
|
385
|
-
".storm.yml",
|
|
386
|
-
".storm.js",
|
|
387
|
-
".storm.ts",
|
|
381
|
+
"storm-workspace.json",
|
|
382
|
+
"storm-workspace.json",
|
|
383
|
+
"storm-workspace.yaml",
|
|
384
|
+
"storm-workspace.yml",
|
|
385
|
+
"storm-workspace.js",
|
|
386
|
+
"storm-workspace.ts",
|
|
387
|
+
".storm-workspace.json",
|
|
388
|
+
".storm-workspace.yaml",
|
|
389
|
+
".storm-workspace.yml",
|
|
390
|
+
".storm-workspace.js",
|
|
391
|
+
".storm-workspace.ts",
|
|
388
392
|
"lerna.json",
|
|
389
393
|
"nx.json",
|
|
390
394
|
"turbo.json",
|
|
@@ -408,11 +412,18 @@ var rootFiles = [
|
|
|
408
412
|
"pnpm-lock.yml",
|
|
409
413
|
"bun.lockb"
|
|
410
414
|
];
|
|
415
|
+
var rootDirectories = [
|
|
416
|
+
".storm-workspace",
|
|
417
|
+
".nx",
|
|
418
|
+
".github",
|
|
419
|
+
".vscode",
|
|
420
|
+
".verdaccio"
|
|
421
|
+
];
|
|
411
422
|
function findWorkspaceRootSafe(pathInsideMonorepo) {
|
|
412
423
|
if (process.env.STORM_WORKSPACE_ROOT || process.env.NX_WORKSPACE_ROOT_PATH) {
|
|
413
424
|
return correctPaths(process.env.STORM_WORKSPACE_ROOT ?? process.env.NX_WORKSPACE_ROOT_PATH);
|
|
414
425
|
}
|
|
415
|
-
return correctPaths(findFolderUp(pathInsideMonorepo ?? process.cwd(), rootFiles));
|
|
426
|
+
return correctPaths(findFolderUp(pathInsideMonorepo ?? process.cwd(), rootFiles, rootDirectories));
|
|
416
427
|
}
|
|
417
428
|
__name(findWorkspaceRootSafe, "findWorkspaceRootSafe");
|
|
418
429
|
function findWorkspaceRoot(pathInsideMonorepo) {
|
|
@@ -773,10 +784,10 @@ var getConfigFileByName = /* @__PURE__ */ __name(async (fileName, filePath, opti
|
|
|
773
784
|
}, "getConfigFileByName");
|
|
774
785
|
var getConfigFile = /* @__PURE__ */ __name(async (filePath, additionalFileNames = []) => {
|
|
775
786
|
const workspacePath = filePath ? filePath : findWorkspaceRoot(filePath);
|
|
776
|
-
const result = await getConfigFileByName("storm", workspacePath);
|
|
787
|
+
const result = await getConfigFileByName("storm-workspace", workspacePath);
|
|
777
788
|
let config = result.config;
|
|
778
789
|
const configFile = result.configFile;
|
|
779
|
-
if (config && configFile && Object.keys(config).length > 0) {
|
|
790
|
+
if (config && configFile && Object.keys(config).length > 0 && !config.skipConfigLogging) {
|
|
780
791
|
writeTrace(`Found Storm configuration file "${configFile.includes(`${workspacePath}/`) ? configFile.replace(`${workspacePath}/`, "") : configFile}" at "${workspacePath}"`, {
|
|
781
792
|
logLevel: "all"
|
|
782
793
|
});
|
|
@@ -785,9 +796,11 @@ var getConfigFile = /* @__PURE__ */ __name(async (filePath, additionalFileNames
|
|
|
785
796
|
const results = await Promise.all(additionalFileNames.map((fileName) => getConfigFileByName(fileName, workspacePath)));
|
|
786
797
|
for (const result2 of results) {
|
|
787
798
|
if (result2?.config && result2?.configFile && Object.keys(result2.config).length > 0) {
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
799
|
+
if (!config.skipConfigLogging && !result2.config.skipConfigLogging) {
|
|
800
|
+
writeTrace(`Found alternative configuration file "${result2.configFile.includes(`${workspacePath}/`) ? result2.configFile.replace(`${workspacePath}/`, "") : result2.configFile}" at "${workspacePath}"`, {
|
|
801
|
+
logLevel: "all"
|
|
802
|
+
});
|
|
803
|
+
}
|
|
791
804
|
config = (0, import_defu.default)(result2.config ?? {}, config ?? {});
|
|
792
805
|
}
|
|
793
806
|
}
|
|
@@ -863,7 +876,8 @@ var getConfigEnv = /* @__PURE__ */ __name(() => {
|
|
|
863
876
|
cyclone: process.env[`${prefix}REGISTRY_CYCLONE`] || void 0,
|
|
864
877
|
container: process.env[`${prefix}REGISTRY_CONTAINER`] || void 0
|
|
865
878
|
},
|
|
866
|
-
logLevel: process.env[`${prefix}LOG_LEVEL`] !== null && process.env[`${prefix}LOG_LEVEL`] !== void 0 ? process.env[`${prefix}LOG_LEVEL`] && Number.isSafeInteger(Number.parseInt(process.env[`${prefix}LOG_LEVEL`])) ? getLogLevelLabel(Number.parseInt(process.env[`${prefix}LOG_LEVEL`])) : process.env[`${prefix}LOG_LEVEL`] : void 0
|
|
879
|
+
logLevel: process.env[`${prefix}LOG_LEVEL`] !== null && process.env[`${prefix}LOG_LEVEL`] !== void 0 ? process.env[`${prefix}LOG_LEVEL`] && Number.isSafeInteger(Number.parseInt(process.env[`${prefix}LOG_LEVEL`])) ? getLogLevelLabel(Number.parseInt(process.env[`${prefix}LOG_LEVEL`])) : process.env[`${prefix}LOG_LEVEL`] : void 0,
|
|
880
|
+
skipConfigLogging: process.env[`${prefix}SKIP_CONFIG_LOGGING`] !== void 0 ? Boolean(process.env[`${prefix}SKIP_CONFIG_LOGGING`]) : void 0
|
|
867
881
|
};
|
|
868
882
|
const themeNames = Object.keys(process.env).filter((envKey) => envKey.startsWith(`${prefix}COLOR_`) && COLOR_KEYS.every((colorKey) => !envKey.startsWith(`${prefix}COLOR_LIGHT_${colorKey}`) && !envKey.startsWith(`${prefix}COLOR_DARK_${colorKey}`)));
|
|
869
883
|
config.colors = themeNames.length > 0 ? themeNames.reduce((ret, themeName) => {
|
|
@@ -1098,6 +1112,9 @@ var setConfigEnv = /* @__PURE__ */ __name((config) => {
|
|
|
1098
1112
|
process.env.NX_VERBOSE_LOGGING = String(getLogLevel(config.logLevel) >= LogLevel.DEBUG ? true : false);
|
|
1099
1113
|
process.env.RUST_BACKTRACE = getLogLevel(config.logLevel) >= LogLevel.DEBUG ? "full" : "none";
|
|
1100
1114
|
}
|
|
1115
|
+
if (config.skipConfigLogging !== void 0) {
|
|
1116
|
+
process.env[`${prefix}SKIP_CONFIG_LOGGING`] = String(config.skipConfigLogging);
|
|
1117
|
+
}
|
|
1101
1118
|
process.env[`${prefix}CONFIG`] = JSON.stringify(config);
|
|
1102
1119
|
for (const key of Object.keys(config.extensions ?? {})) {
|
|
1103
1120
|
config.extensions[key] && Object.keys(config.extensions[key]) && setExtensionEnv(key, config.extensions[key]);
|
|
@@ -1215,7 +1232,7 @@ var createStormConfig = /* @__PURE__ */ __name(async (extensionName, schema, wor
|
|
|
1215
1232
|
const defaultConfig = await getDefaultConfig(_workspaceRoot);
|
|
1216
1233
|
const configFile = await getConfigFile(_workspaceRoot);
|
|
1217
1234
|
if (!configFile && !skipLogs) {
|
|
1218
|
-
writeWarning("No Storm
|
|
1235
|
+
writeWarning("No Storm Workspace configuration file found in the current repository. Please ensure this is the expected behavior - you can add a `storm-workspace.json` file to the root of your workspace if it is not.\n", {
|
|
1219
1236
|
logLevel: "all"
|
|
1220
1237
|
});
|
|
1221
1238
|
}
|
|
@@ -1253,8 +1270,8 @@ var createConfigExtension = /* @__PURE__ */ __name((extensionName, schema) => {
|
|
|
1253
1270
|
var loadStormConfig = /* @__PURE__ */ __name(async (workspaceRoot, skipLogs = false) => {
|
|
1254
1271
|
const config = await createStormConfig(void 0, void 0, workspaceRoot, skipLogs);
|
|
1255
1272
|
setConfigEnv(config);
|
|
1256
|
-
if (!skipLogs) {
|
|
1257
|
-
writeTrace(`\u2699\uFE0F Using Storm configuration:
|
|
1273
|
+
if (!skipLogs && !config.skipConfigLogging) {
|
|
1274
|
+
writeTrace(`\u2699\uFE0F Using Storm Workspace configuration:
|
|
1258
1275
|
${formatLogMessage(config)}`, config);
|
|
1259
1276
|
}
|
|
1260
1277
|
return config;
|
package/bin/lint.js
CHANGED
|
@@ -134,7 +134,7 @@ var WorkspaceDirectoryConfigSchema = z.object({
|
|
|
134
134
|
build: z.string().trim().default("dist").describe("The directory used to store the workspace's distributable files after a build (relative to the workspace root)")
|
|
135
135
|
}).describe("Various directories used by the workspace to store data, cache, and configuration files");
|
|
136
136
|
var StormConfigSchema = z.object({
|
|
137
|
-
$schema: z.string().trim().default("https://cdn.jsdelivr.net/npm/@storm-software/config/schemas/storm.schema.json").optional().nullish().describe("The URL to the JSON schema file that describes the Storm configuration file"),
|
|
137
|
+
$schema: z.string().trim().default("https://cdn.jsdelivr.net/npm/@storm-software/config/schemas/storm-workspace.schema.json").optional().nullish().describe("The URL to the JSON schema file that describes the Storm configuration file"),
|
|
138
138
|
extends: ExtendsSchema.optional(),
|
|
139
139
|
name: z.string().trim().toLowerCase().optional().describe("The name of the service/package/scope using this configuration"),
|
|
140
140
|
namespace: z.string().trim().toLowerCase().optional().describe("The namespace of the package"),
|
|
@@ -176,6 +176,7 @@ var StormConfigSchema = z.object({
|
|
|
176
176
|
"trace",
|
|
177
177
|
"all"
|
|
178
178
|
]).default("info").describe("The log level used to filter out lower priority log messages. If not provided, this is defaulted using the `environment` config value (if `environment` is set to `production` then `level` is `error`, else `level` is `debug`)."),
|
|
179
|
+
skipConfigLogging: z.boolean().optional().describe("Should the logging of the current Storm Workspace configuration be skipped?"),
|
|
179
180
|
registry: RegistryConfigSchema,
|
|
180
181
|
configFile: z.string().trim().nullable().default(null).describe("The filepath of the Storm config. When this field is null, no config file was found in the current workspace."),
|
|
181
182
|
colors: ColorConfigSchema.or(ColorConfigMapSchema).describe("Storm theme config values used for styling various package elements"),
|
|
@@ -338,14 +339,17 @@ import { existsSync } from "node:fs";
|
|
|
338
339
|
import { join } from "node:path";
|
|
339
340
|
var MAX_PATH_SEARCH_DEPTH = 30;
|
|
340
341
|
var depth = 0;
|
|
341
|
-
function findFolderUp(startPath, endFileNames) {
|
|
342
|
+
function findFolderUp(startPath, endFileNames = [], endDirectoryNames = []) {
|
|
342
343
|
const _startPath = startPath ?? process.cwd();
|
|
344
|
+
if (endDirectoryNames.some((endDirName) => existsSync(join(_startPath, endDirName)))) {
|
|
345
|
+
return _startPath;
|
|
346
|
+
}
|
|
343
347
|
if (endFileNames.some((endFileName) => existsSync(join(_startPath, endFileName)))) {
|
|
344
348
|
return _startPath;
|
|
345
349
|
}
|
|
346
350
|
if (_startPath !== "/" && depth++ < MAX_PATH_SEARCH_DEPTH) {
|
|
347
351
|
const parent = join(_startPath, "..");
|
|
348
|
-
return findFolderUp(parent, endFileNames);
|
|
352
|
+
return findFolderUp(parent, endFileNames, endDirectoryNames);
|
|
349
353
|
}
|
|
350
354
|
return void 0;
|
|
351
355
|
}
|
|
@@ -353,17 +357,17 @@ __name(findFolderUp, "findFolderUp");
|
|
|
353
357
|
|
|
354
358
|
// ../config-tools/src/utilities/find-workspace-root.ts
|
|
355
359
|
var rootFiles = [
|
|
356
|
-
"storm.json",
|
|
357
|
-
"storm.json",
|
|
358
|
-
"storm.yaml",
|
|
359
|
-
"storm.yml",
|
|
360
|
-
"storm.js",
|
|
361
|
-
"storm.ts",
|
|
362
|
-
".storm.json",
|
|
363
|
-
".storm.yaml",
|
|
364
|
-
".storm.yml",
|
|
365
|
-
".storm.js",
|
|
366
|
-
".storm.ts",
|
|
360
|
+
"storm-workspace.json",
|
|
361
|
+
"storm-workspace.json",
|
|
362
|
+
"storm-workspace.yaml",
|
|
363
|
+
"storm-workspace.yml",
|
|
364
|
+
"storm-workspace.js",
|
|
365
|
+
"storm-workspace.ts",
|
|
366
|
+
".storm-workspace.json",
|
|
367
|
+
".storm-workspace.yaml",
|
|
368
|
+
".storm-workspace.yml",
|
|
369
|
+
".storm-workspace.js",
|
|
370
|
+
".storm-workspace.ts",
|
|
367
371
|
"lerna.json",
|
|
368
372
|
"nx.json",
|
|
369
373
|
"turbo.json",
|
|
@@ -387,11 +391,18 @@ var rootFiles = [
|
|
|
387
391
|
"pnpm-lock.yml",
|
|
388
392
|
"bun.lockb"
|
|
389
393
|
];
|
|
394
|
+
var rootDirectories = [
|
|
395
|
+
".storm-workspace",
|
|
396
|
+
".nx",
|
|
397
|
+
".github",
|
|
398
|
+
".vscode",
|
|
399
|
+
".verdaccio"
|
|
400
|
+
];
|
|
390
401
|
function findWorkspaceRootSafe(pathInsideMonorepo) {
|
|
391
402
|
if (process.env.STORM_WORKSPACE_ROOT || process.env.NX_WORKSPACE_ROOT_PATH) {
|
|
392
403
|
return correctPaths(process.env.STORM_WORKSPACE_ROOT ?? process.env.NX_WORKSPACE_ROOT_PATH);
|
|
393
404
|
}
|
|
394
|
-
return correctPaths(findFolderUp(pathInsideMonorepo ?? process.cwd(), rootFiles));
|
|
405
|
+
return correctPaths(findFolderUp(pathInsideMonorepo ?? process.cwd(), rootFiles, rootDirectories));
|
|
395
406
|
}
|
|
396
407
|
__name(findWorkspaceRootSafe, "findWorkspaceRootSafe");
|
|
397
408
|
function findWorkspaceRoot(pathInsideMonorepo) {
|
|
@@ -752,10 +763,10 @@ var getConfigFileByName = /* @__PURE__ */ __name(async (fileName, filePath, opti
|
|
|
752
763
|
}, "getConfigFileByName");
|
|
753
764
|
var getConfigFile = /* @__PURE__ */ __name(async (filePath, additionalFileNames = []) => {
|
|
754
765
|
const workspacePath = filePath ? filePath : findWorkspaceRoot(filePath);
|
|
755
|
-
const result = await getConfigFileByName("storm", workspacePath);
|
|
766
|
+
const result = await getConfigFileByName("storm-workspace", workspacePath);
|
|
756
767
|
let config = result.config;
|
|
757
768
|
const configFile = result.configFile;
|
|
758
|
-
if (config && configFile && Object.keys(config).length > 0) {
|
|
769
|
+
if (config && configFile && Object.keys(config).length > 0 && !config.skipConfigLogging) {
|
|
759
770
|
writeTrace(`Found Storm configuration file "${configFile.includes(`${workspacePath}/`) ? configFile.replace(`${workspacePath}/`, "") : configFile}" at "${workspacePath}"`, {
|
|
760
771
|
logLevel: "all"
|
|
761
772
|
});
|
|
@@ -764,9 +775,11 @@ var getConfigFile = /* @__PURE__ */ __name(async (filePath, additionalFileNames
|
|
|
764
775
|
const results = await Promise.all(additionalFileNames.map((fileName) => getConfigFileByName(fileName, workspacePath)));
|
|
765
776
|
for (const result2 of results) {
|
|
766
777
|
if (result2?.config && result2?.configFile && Object.keys(result2.config).length > 0) {
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
778
|
+
if (!config.skipConfigLogging && !result2.config.skipConfigLogging) {
|
|
779
|
+
writeTrace(`Found alternative configuration file "${result2.configFile.includes(`${workspacePath}/`) ? result2.configFile.replace(`${workspacePath}/`, "") : result2.configFile}" at "${workspacePath}"`, {
|
|
780
|
+
logLevel: "all"
|
|
781
|
+
});
|
|
782
|
+
}
|
|
770
783
|
config = defu(result2.config ?? {}, config ?? {});
|
|
771
784
|
}
|
|
772
785
|
}
|
|
@@ -842,7 +855,8 @@ var getConfigEnv = /* @__PURE__ */ __name(() => {
|
|
|
842
855
|
cyclone: process.env[`${prefix}REGISTRY_CYCLONE`] || void 0,
|
|
843
856
|
container: process.env[`${prefix}REGISTRY_CONTAINER`] || void 0
|
|
844
857
|
},
|
|
845
|
-
logLevel: process.env[`${prefix}LOG_LEVEL`] !== null && process.env[`${prefix}LOG_LEVEL`] !== void 0 ? process.env[`${prefix}LOG_LEVEL`] && Number.isSafeInteger(Number.parseInt(process.env[`${prefix}LOG_LEVEL`])) ? getLogLevelLabel(Number.parseInt(process.env[`${prefix}LOG_LEVEL`])) : process.env[`${prefix}LOG_LEVEL`] : void 0
|
|
858
|
+
logLevel: process.env[`${prefix}LOG_LEVEL`] !== null && process.env[`${prefix}LOG_LEVEL`] !== void 0 ? process.env[`${prefix}LOG_LEVEL`] && Number.isSafeInteger(Number.parseInt(process.env[`${prefix}LOG_LEVEL`])) ? getLogLevelLabel(Number.parseInt(process.env[`${prefix}LOG_LEVEL`])) : process.env[`${prefix}LOG_LEVEL`] : void 0,
|
|
859
|
+
skipConfigLogging: process.env[`${prefix}SKIP_CONFIG_LOGGING`] !== void 0 ? Boolean(process.env[`${prefix}SKIP_CONFIG_LOGGING`]) : void 0
|
|
846
860
|
};
|
|
847
861
|
const themeNames = Object.keys(process.env).filter((envKey) => envKey.startsWith(`${prefix}COLOR_`) && COLOR_KEYS.every((colorKey) => !envKey.startsWith(`${prefix}COLOR_LIGHT_${colorKey}`) && !envKey.startsWith(`${prefix}COLOR_DARK_${colorKey}`)));
|
|
848
862
|
config.colors = themeNames.length > 0 ? themeNames.reduce((ret, themeName) => {
|
|
@@ -1077,6 +1091,9 @@ var setConfigEnv = /* @__PURE__ */ __name((config) => {
|
|
|
1077
1091
|
process.env.NX_VERBOSE_LOGGING = String(getLogLevel(config.logLevel) >= LogLevel.DEBUG ? true : false);
|
|
1078
1092
|
process.env.RUST_BACKTRACE = getLogLevel(config.logLevel) >= LogLevel.DEBUG ? "full" : "none";
|
|
1079
1093
|
}
|
|
1094
|
+
if (config.skipConfigLogging !== void 0) {
|
|
1095
|
+
process.env[`${prefix}SKIP_CONFIG_LOGGING`] = String(config.skipConfigLogging);
|
|
1096
|
+
}
|
|
1080
1097
|
process.env[`${prefix}CONFIG`] = JSON.stringify(config);
|
|
1081
1098
|
for (const key of Object.keys(config.extensions ?? {})) {
|
|
1082
1099
|
config.extensions[key] && Object.keys(config.extensions[key]) && setExtensionEnv(key, config.extensions[key]);
|
|
@@ -1194,7 +1211,7 @@ var createStormConfig = /* @__PURE__ */ __name(async (extensionName, schema, wor
|
|
|
1194
1211
|
const defaultConfig = await getDefaultConfig(_workspaceRoot);
|
|
1195
1212
|
const configFile = await getConfigFile(_workspaceRoot);
|
|
1196
1213
|
if (!configFile && !skipLogs) {
|
|
1197
|
-
writeWarning("No Storm
|
|
1214
|
+
writeWarning("No Storm Workspace configuration file found in the current repository. Please ensure this is the expected behavior - you can add a `storm-workspace.json` file to the root of your workspace if it is not.\n", {
|
|
1198
1215
|
logLevel: "all"
|
|
1199
1216
|
});
|
|
1200
1217
|
}
|
|
@@ -1232,8 +1249,8 @@ var createConfigExtension = /* @__PURE__ */ __name((extensionName, schema) => {
|
|
|
1232
1249
|
var loadStormConfig = /* @__PURE__ */ __name(async (workspaceRoot, skipLogs = false) => {
|
|
1233
1250
|
const config = await createStormConfig(void 0, void 0, workspaceRoot, skipLogs);
|
|
1234
1251
|
setConfigEnv(config);
|
|
1235
|
-
if (!skipLogs) {
|
|
1236
|
-
writeTrace(`\u2699\uFE0F Using Storm configuration:
|
|
1252
|
+
if (!skipLogs && !config.skipConfigLogging) {
|
|
1253
|
+
writeTrace(`\u2699\uFE0F Using Storm Workspace configuration:
|
|
1237
1254
|
${formatLogMessage(config)}`, config);
|
|
1238
1255
|
}
|
|
1239
1256
|
return config;
|
package/dist/index.cjs
CHANGED
|
@@ -133,7 +133,7 @@ var WorkspaceDirectoryConfigSchema = _zod2.default.object({
|
|
|
133
133
|
build: _zod2.default.string().trim().default("dist").describe("The directory used to store the workspace's distributable files after a build (relative to the workspace root)")
|
|
134
134
|
}).describe("Various directories used by the workspace to store data, cache, and configuration files");
|
|
135
135
|
var StormConfigSchema = _zod2.default.object({
|
|
136
|
-
$schema: _zod2.default.string().trim().default("https://cdn.jsdelivr.net/npm/@storm-software/config/schemas/storm.schema.json").optional().nullish().describe("The URL to the JSON schema file that describes the Storm configuration file"),
|
|
136
|
+
$schema: _zod2.default.string().trim().default("https://cdn.jsdelivr.net/npm/@storm-software/config/schemas/storm-workspace.schema.json").optional().nullish().describe("The URL to the JSON schema file that describes the Storm configuration file"),
|
|
137
137
|
extends: ExtendsSchema.optional(),
|
|
138
138
|
name: _zod2.default.string().trim().toLowerCase().optional().describe("The name of the service/package/scope using this configuration"),
|
|
139
139
|
namespace: _zod2.default.string().trim().toLowerCase().optional().describe("The namespace of the package"),
|
|
@@ -175,6 +175,7 @@ var StormConfigSchema = _zod2.default.object({
|
|
|
175
175
|
"trace",
|
|
176
176
|
"all"
|
|
177
177
|
]).default("info").describe("The log level used to filter out lower priority log messages. If not provided, this is defaulted using the `environment` config value (if `environment` is set to `production` then `level` is `error`, else `level` is `debug`)."),
|
|
178
|
+
skipConfigLogging: _zod2.default.boolean().optional().describe("Should the logging of the current Storm Workspace configuration be skipped?"),
|
|
178
179
|
registry: RegistryConfigSchema,
|
|
179
180
|
configFile: _zod2.default.string().trim().nullable().default(null).describe("The filepath of the Storm config. When this field is null, no config file was found in the current workspace."),
|
|
180
181
|
colors: ColorConfigSchema.or(ColorConfigMapSchema).describe("Storm theme config values used for styling various package elements"),
|
|
@@ -337,14 +338,17 @@ var isAbsolute = /* @__PURE__ */ __name(function(p) {
|
|
|
337
338
|
|
|
338
339
|
var MAX_PATH_SEARCH_DEPTH = 30;
|
|
339
340
|
var depth = 0;
|
|
340
|
-
function findFolderUp(startPath, endFileNames) {
|
|
341
|
+
function findFolderUp(startPath, endFileNames = [], endDirectoryNames = []) {
|
|
341
342
|
const _startPath = _nullishCoalesce(startPath, () => ( process.cwd()));
|
|
343
|
+
if (endDirectoryNames.some((endDirName) => _fs.existsSync.call(void 0, _path.join.call(void 0, _startPath, endDirName)))) {
|
|
344
|
+
return _startPath;
|
|
345
|
+
}
|
|
342
346
|
if (endFileNames.some((endFileName) => _fs.existsSync.call(void 0, _path.join.call(void 0, _startPath, endFileName)))) {
|
|
343
347
|
return _startPath;
|
|
344
348
|
}
|
|
345
349
|
if (_startPath !== "/" && depth++ < MAX_PATH_SEARCH_DEPTH) {
|
|
346
350
|
const parent = _path.join.call(void 0, _startPath, "..");
|
|
347
|
-
return findFolderUp(parent, endFileNames);
|
|
351
|
+
return findFolderUp(parent, endFileNames, endDirectoryNames);
|
|
348
352
|
}
|
|
349
353
|
return void 0;
|
|
350
354
|
}
|
|
@@ -352,17 +356,17 @@ __name(findFolderUp, "findFolderUp");
|
|
|
352
356
|
|
|
353
357
|
// ../config-tools/src/utilities/find-workspace-root.ts
|
|
354
358
|
var rootFiles = [
|
|
355
|
-
"storm.json",
|
|
356
|
-
"storm.json",
|
|
357
|
-
"storm.yaml",
|
|
358
|
-
"storm.yml",
|
|
359
|
-
"storm.js",
|
|
360
|
-
"storm.ts",
|
|
361
|
-
".storm.json",
|
|
362
|
-
".storm.yaml",
|
|
363
|
-
".storm.yml",
|
|
364
|
-
".storm.js",
|
|
365
|
-
".storm.ts",
|
|
359
|
+
"storm-workspace.json",
|
|
360
|
+
"storm-workspace.json",
|
|
361
|
+
"storm-workspace.yaml",
|
|
362
|
+
"storm-workspace.yml",
|
|
363
|
+
"storm-workspace.js",
|
|
364
|
+
"storm-workspace.ts",
|
|
365
|
+
".storm-workspace.json",
|
|
366
|
+
".storm-workspace.yaml",
|
|
367
|
+
".storm-workspace.yml",
|
|
368
|
+
".storm-workspace.js",
|
|
369
|
+
".storm-workspace.ts",
|
|
366
370
|
"lerna.json",
|
|
367
371
|
"nx.json",
|
|
368
372
|
"turbo.json",
|
|
@@ -386,11 +390,18 @@ var rootFiles = [
|
|
|
386
390
|
"pnpm-lock.yml",
|
|
387
391
|
"bun.lockb"
|
|
388
392
|
];
|
|
393
|
+
var rootDirectories = [
|
|
394
|
+
".storm-workspace",
|
|
395
|
+
".nx",
|
|
396
|
+
".github",
|
|
397
|
+
".vscode",
|
|
398
|
+
".verdaccio"
|
|
399
|
+
];
|
|
389
400
|
function findWorkspaceRootSafe(pathInsideMonorepo) {
|
|
390
401
|
if (process.env.STORM_WORKSPACE_ROOT || process.env.NX_WORKSPACE_ROOT_PATH) {
|
|
391
402
|
return correctPaths(_nullishCoalesce(process.env.STORM_WORKSPACE_ROOT, () => ( process.env.NX_WORKSPACE_ROOT_PATH)));
|
|
392
403
|
}
|
|
393
|
-
return correctPaths(findFolderUp(_nullishCoalesce(pathInsideMonorepo, () => ( process.cwd())), rootFiles));
|
|
404
|
+
return correctPaths(findFolderUp(_nullishCoalesce(pathInsideMonorepo, () => ( process.cwd())), rootFiles, rootDirectories));
|
|
394
405
|
}
|
|
395
406
|
__name(findWorkspaceRootSafe, "findWorkspaceRootSafe");
|
|
396
407
|
function findWorkspaceRoot(pathInsideMonorepo) {
|
|
@@ -717,10 +728,10 @@ var getConfigFileByName = /* @__PURE__ */ __name(async (fileName, filePath, opti
|
|
|
717
728
|
}, "getConfigFileByName");
|
|
718
729
|
var getConfigFile = /* @__PURE__ */ __name(async (filePath, additionalFileNames = []) => {
|
|
719
730
|
const workspacePath = filePath ? filePath : findWorkspaceRoot(filePath);
|
|
720
|
-
const result = await getConfigFileByName("storm", workspacePath);
|
|
731
|
+
const result = await getConfigFileByName("storm-workspace", workspacePath);
|
|
721
732
|
let config = result.config;
|
|
722
733
|
const configFile = result.configFile;
|
|
723
|
-
if (config && configFile && Object.keys(config).length > 0) {
|
|
734
|
+
if (config && configFile && Object.keys(config).length > 0 && !config.skipConfigLogging) {
|
|
724
735
|
writeTrace(`Found Storm configuration file "${configFile.includes(`${workspacePath}/`) ? configFile.replace(`${workspacePath}/`, "") : configFile}" at "${workspacePath}"`, {
|
|
725
736
|
logLevel: "all"
|
|
726
737
|
});
|
|
@@ -729,9 +740,11 @@ var getConfigFile = /* @__PURE__ */ __name(async (filePath, additionalFileNames
|
|
|
729
740
|
const results = await Promise.all(additionalFileNames.map((fileName) => getConfigFileByName(fileName, workspacePath)));
|
|
730
741
|
for (const result2 of results) {
|
|
731
742
|
if (_optionalChain([result2, 'optionalAccess', _30 => _30.config]) && _optionalChain([result2, 'optionalAccess', _31 => _31.configFile]) && Object.keys(result2.config).length > 0) {
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
743
|
+
if (!config.skipConfigLogging && !result2.config.skipConfigLogging) {
|
|
744
|
+
writeTrace(`Found alternative configuration file "${result2.configFile.includes(`${workspacePath}/`) ? result2.configFile.replace(`${workspacePath}/`, "") : result2.configFile}" at "${workspacePath}"`, {
|
|
745
|
+
logLevel: "all"
|
|
746
|
+
});
|
|
747
|
+
}
|
|
735
748
|
config = _defu2.default.call(void 0, _nullishCoalesce(result2.config, () => ( {})), _nullishCoalesce(config, () => ( {})));
|
|
736
749
|
}
|
|
737
750
|
}
|
|
@@ -807,7 +820,8 @@ var getConfigEnv = /* @__PURE__ */ __name(() => {
|
|
|
807
820
|
cyclone: process.env[`${prefix}REGISTRY_CYCLONE`] || void 0,
|
|
808
821
|
container: process.env[`${prefix}REGISTRY_CONTAINER`] || void 0
|
|
809
822
|
},
|
|
810
|
-
logLevel: process.env[`${prefix}LOG_LEVEL`] !== null && process.env[`${prefix}LOG_LEVEL`] !== void 0 ? process.env[`${prefix}LOG_LEVEL`] && Number.isSafeInteger(Number.parseInt(process.env[`${prefix}LOG_LEVEL`])) ? getLogLevelLabel(Number.parseInt(process.env[`${prefix}LOG_LEVEL`])) : process.env[`${prefix}LOG_LEVEL`] : void 0
|
|
823
|
+
logLevel: process.env[`${prefix}LOG_LEVEL`] !== null && process.env[`${prefix}LOG_LEVEL`] !== void 0 ? process.env[`${prefix}LOG_LEVEL`] && Number.isSafeInteger(Number.parseInt(process.env[`${prefix}LOG_LEVEL`])) ? getLogLevelLabel(Number.parseInt(process.env[`${prefix}LOG_LEVEL`])) : process.env[`${prefix}LOG_LEVEL`] : void 0,
|
|
824
|
+
skipConfigLogging: process.env[`${prefix}SKIP_CONFIG_LOGGING`] !== void 0 ? Boolean(process.env[`${prefix}SKIP_CONFIG_LOGGING`]) : void 0
|
|
811
825
|
};
|
|
812
826
|
const themeNames = Object.keys(process.env).filter((envKey) => envKey.startsWith(`${prefix}COLOR_`) && COLOR_KEYS.every((colorKey) => !envKey.startsWith(`${prefix}COLOR_LIGHT_${colorKey}`) && !envKey.startsWith(`${prefix}COLOR_DARK_${colorKey}`)));
|
|
813
827
|
config.colors = themeNames.length > 0 ? themeNames.reduce((ret, themeName) => {
|
|
@@ -1042,6 +1056,9 @@ var setConfigEnv = /* @__PURE__ */ __name((config) => {
|
|
|
1042
1056
|
process.env.NX_VERBOSE_LOGGING = String(getLogLevel(config.logLevel) >= LogLevel.DEBUG ? true : false);
|
|
1043
1057
|
process.env.RUST_BACKTRACE = getLogLevel(config.logLevel) >= LogLevel.DEBUG ? "full" : "none";
|
|
1044
1058
|
}
|
|
1059
|
+
if (config.skipConfigLogging !== void 0) {
|
|
1060
|
+
process.env[`${prefix}SKIP_CONFIG_LOGGING`] = String(config.skipConfigLogging);
|
|
1061
|
+
}
|
|
1045
1062
|
process.env[`${prefix}CONFIG`] = JSON.stringify(config);
|
|
1046
1063
|
for (const key of Object.keys(_nullishCoalesce(config.extensions, () => ( {})))) {
|
|
1047
1064
|
config.extensions[key] && Object.keys(config.extensions[key]) && setExtensionEnv(key, config.extensions[key]);
|
|
@@ -1159,7 +1176,7 @@ var createStormConfig = /* @__PURE__ */ __name(async (extensionName, schema, wor
|
|
|
1159
1176
|
const defaultConfig = await getDefaultConfig(_workspaceRoot);
|
|
1160
1177
|
const configFile = await getConfigFile(_workspaceRoot);
|
|
1161
1178
|
if (!configFile && !skipLogs) {
|
|
1162
|
-
writeWarning("No Storm
|
|
1179
|
+
writeWarning("No Storm Workspace configuration file found in the current repository. Please ensure this is the expected behavior - you can add a `storm-workspace.json` file to the root of your workspace if it is not.\n", {
|
|
1163
1180
|
logLevel: "all"
|
|
1164
1181
|
});
|
|
1165
1182
|
}
|
|
@@ -1197,8 +1214,8 @@ var createConfigExtension = /* @__PURE__ */ __name((extensionName, schema) => {
|
|
|
1197
1214
|
var loadStormConfig = /* @__PURE__ */ __name(async (workspaceRoot, skipLogs = false) => {
|
|
1198
1215
|
const config = await createStormConfig(void 0, void 0, workspaceRoot, skipLogs);
|
|
1199
1216
|
setConfigEnv(config);
|
|
1200
|
-
if (!skipLogs) {
|
|
1201
|
-
writeTrace(`\u2699\uFE0F Using Storm configuration:
|
|
1217
|
+
if (!skipLogs && !config.skipConfigLogging) {
|
|
1218
|
+
writeTrace(`\u2699\uFE0F Using Storm Workspace configuration:
|
|
1202
1219
|
${formatLogMessage(config)}`, config);
|
|
1203
1220
|
}
|
|
1204
1221
|
return config;
|
package/dist/index.d.cts
CHANGED
|
@@ -58,6 +58,7 @@ declare const StormConfigSchema: z.ZodObject<{
|
|
|
58
58
|
timezone: z.ZodDefault<z.ZodString>;
|
|
59
59
|
locale: z.ZodDefault<z.ZodString>;
|
|
60
60
|
logLevel: z.ZodDefault<z.ZodEnum<["silent", "fatal", "error", "warn", "success", "info", "debug", "trace", "all"]>>;
|
|
61
|
+
skipConfigLogging: z.ZodOptional<z.ZodBoolean>;
|
|
61
62
|
registry: z.ZodDefault<z.ZodObject<{
|
|
62
63
|
github: z.ZodOptional<z.ZodString>;
|
|
63
64
|
npm: z.ZodOptional<z.ZodString>;
|
|
@@ -984,6 +985,7 @@ declare const StormConfigSchema: z.ZodObject<{
|
|
|
984
985
|
namespace?: string | undefined;
|
|
985
986
|
repository?: string | undefined;
|
|
986
987
|
preid?: string | undefined;
|
|
988
|
+
skipConfigLogging?: boolean | undefined;
|
|
987
989
|
}, {
|
|
988
990
|
bot: {
|
|
989
991
|
name?: string | undefined;
|
|
@@ -1165,6 +1167,7 @@ declare const StormConfigSchema: z.ZodObject<{
|
|
|
1165
1167
|
timezone?: string | undefined;
|
|
1166
1168
|
locale?: string | undefined;
|
|
1167
1169
|
logLevel?: "success" | "info" | "fatal" | "silent" | "error" | "warn" | "debug" | "trace" | "all" | undefined;
|
|
1170
|
+
skipConfigLogging?: boolean | undefined;
|
|
1168
1171
|
registry?: {
|
|
1169
1172
|
github?: string | undefined;
|
|
1170
1173
|
npm?: string | undefined;
|
package/dist/index.d.ts
CHANGED
|
@@ -58,6 +58,7 @@ declare const StormConfigSchema: z.ZodObject<{
|
|
|
58
58
|
timezone: z.ZodDefault<z.ZodString>;
|
|
59
59
|
locale: z.ZodDefault<z.ZodString>;
|
|
60
60
|
logLevel: z.ZodDefault<z.ZodEnum<["silent", "fatal", "error", "warn", "success", "info", "debug", "trace", "all"]>>;
|
|
61
|
+
skipConfigLogging: z.ZodOptional<z.ZodBoolean>;
|
|
61
62
|
registry: z.ZodDefault<z.ZodObject<{
|
|
62
63
|
github: z.ZodOptional<z.ZodString>;
|
|
63
64
|
npm: z.ZodOptional<z.ZodString>;
|
|
@@ -984,6 +985,7 @@ declare const StormConfigSchema: z.ZodObject<{
|
|
|
984
985
|
namespace?: string | undefined;
|
|
985
986
|
repository?: string | undefined;
|
|
986
987
|
preid?: string | undefined;
|
|
988
|
+
skipConfigLogging?: boolean | undefined;
|
|
987
989
|
}, {
|
|
988
990
|
bot: {
|
|
989
991
|
name?: string | undefined;
|
|
@@ -1165,6 +1167,7 @@ declare const StormConfigSchema: z.ZodObject<{
|
|
|
1165
1167
|
timezone?: string | undefined;
|
|
1166
1168
|
locale?: string | undefined;
|
|
1167
1169
|
logLevel?: "success" | "info" | "fatal" | "silent" | "error" | "warn" | "debug" | "trace" | "all" | undefined;
|
|
1170
|
+
skipConfigLogging?: boolean | undefined;
|
|
1168
1171
|
registry?: {
|
|
1169
1172
|
github?: string | undefined;
|
|
1170
1173
|
npm?: string | undefined;
|
package/dist/index.js
CHANGED
|
@@ -133,7 +133,7 @@ var WorkspaceDirectoryConfigSchema = z.object({
|
|
|
133
133
|
build: z.string().trim().default("dist").describe("The directory used to store the workspace's distributable files after a build (relative to the workspace root)")
|
|
134
134
|
}).describe("Various directories used by the workspace to store data, cache, and configuration files");
|
|
135
135
|
var StormConfigSchema = z.object({
|
|
136
|
-
$schema: z.string().trim().default("https://cdn.jsdelivr.net/npm/@storm-software/config/schemas/storm.schema.json").optional().nullish().describe("The URL to the JSON schema file that describes the Storm configuration file"),
|
|
136
|
+
$schema: z.string().trim().default("https://cdn.jsdelivr.net/npm/@storm-software/config/schemas/storm-workspace.schema.json").optional().nullish().describe("The URL to the JSON schema file that describes the Storm configuration file"),
|
|
137
137
|
extends: ExtendsSchema.optional(),
|
|
138
138
|
name: z.string().trim().toLowerCase().optional().describe("The name of the service/package/scope using this configuration"),
|
|
139
139
|
namespace: z.string().trim().toLowerCase().optional().describe("The namespace of the package"),
|
|
@@ -175,6 +175,7 @@ var StormConfigSchema = z.object({
|
|
|
175
175
|
"trace",
|
|
176
176
|
"all"
|
|
177
177
|
]).default("info").describe("The log level used to filter out lower priority log messages. If not provided, this is defaulted using the `environment` config value (if `environment` is set to `production` then `level` is `error`, else `level` is `debug`)."),
|
|
178
|
+
skipConfigLogging: z.boolean().optional().describe("Should the logging of the current Storm Workspace configuration be skipped?"),
|
|
178
179
|
registry: RegistryConfigSchema,
|
|
179
180
|
configFile: z.string().trim().nullable().default(null).describe("The filepath of the Storm config. When this field is null, no config file was found in the current workspace."),
|
|
180
181
|
colors: ColorConfigSchema.or(ColorConfigMapSchema).describe("Storm theme config values used for styling various package elements"),
|
|
@@ -337,14 +338,17 @@ import { existsSync } from "node:fs";
|
|
|
337
338
|
import { join } from "node:path";
|
|
338
339
|
var MAX_PATH_SEARCH_DEPTH = 30;
|
|
339
340
|
var depth = 0;
|
|
340
|
-
function findFolderUp(startPath, endFileNames) {
|
|
341
|
+
function findFolderUp(startPath, endFileNames = [], endDirectoryNames = []) {
|
|
341
342
|
const _startPath = startPath ?? process.cwd();
|
|
343
|
+
if (endDirectoryNames.some((endDirName) => existsSync(join(_startPath, endDirName)))) {
|
|
344
|
+
return _startPath;
|
|
345
|
+
}
|
|
342
346
|
if (endFileNames.some((endFileName) => existsSync(join(_startPath, endFileName)))) {
|
|
343
347
|
return _startPath;
|
|
344
348
|
}
|
|
345
349
|
if (_startPath !== "/" && depth++ < MAX_PATH_SEARCH_DEPTH) {
|
|
346
350
|
const parent = join(_startPath, "..");
|
|
347
|
-
return findFolderUp(parent, endFileNames);
|
|
351
|
+
return findFolderUp(parent, endFileNames, endDirectoryNames);
|
|
348
352
|
}
|
|
349
353
|
return void 0;
|
|
350
354
|
}
|
|
@@ -352,17 +356,17 @@ __name(findFolderUp, "findFolderUp");
|
|
|
352
356
|
|
|
353
357
|
// ../config-tools/src/utilities/find-workspace-root.ts
|
|
354
358
|
var rootFiles = [
|
|
355
|
-
"storm.json",
|
|
356
|
-
"storm.json",
|
|
357
|
-
"storm.yaml",
|
|
358
|
-
"storm.yml",
|
|
359
|
-
"storm.js",
|
|
360
|
-
"storm.ts",
|
|
361
|
-
".storm.json",
|
|
362
|
-
".storm.yaml",
|
|
363
|
-
".storm.yml",
|
|
364
|
-
".storm.js",
|
|
365
|
-
".storm.ts",
|
|
359
|
+
"storm-workspace.json",
|
|
360
|
+
"storm-workspace.json",
|
|
361
|
+
"storm-workspace.yaml",
|
|
362
|
+
"storm-workspace.yml",
|
|
363
|
+
"storm-workspace.js",
|
|
364
|
+
"storm-workspace.ts",
|
|
365
|
+
".storm-workspace.json",
|
|
366
|
+
".storm-workspace.yaml",
|
|
367
|
+
".storm-workspace.yml",
|
|
368
|
+
".storm-workspace.js",
|
|
369
|
+
".storm-workspace.ts",
|
|
366
370
|
"lerna.json",
|
|
367
371
|
"nx.json",
|
|
368
372
|
"turbo.json",
|
|
@@ -386,11 +390,18 @@ var rootFiles = [
|
|
|
386
390
|
"pnpm-lock.yml",
|
|
387
391
|
"bun.lockb"
|
|
388
392
|
];
|
|
393
|
+
var rootDirectories = [
|
|
394
|
+
".storm-workspace",
|
|
395
|
+
".nx",
|
|
396
|
+
".github",
|
|
397
|
+
".vscode",
|
|
398
|
+
".verdaccio"
|
|
399
|
+
];
|
|
389
400
|
function findWorkspaceRootSafe(pathInsideMonorepo) {
|
|
390
401
|
if (process.env.STORM_WORKSPACE_ROOT || process.env.NX_WORKSPACE_ROOT_PATH) {
|
|
391
402
|
return correctPaths(process.env.STORM_WORKSPACE_ROOT ?? process.env.NX_WORKSPACE_ROOT_PATH);
|
|
392
403
|
}
|
|
393
|
-
return correctPaths(findFolderUp(pathInsideMonorepo ?? process.cwd(), rootFiles));
|
|
404
|
+
return correctPaths(findFolderUp(pathInsideMonorepo ?? process.cwd(), rootFiles, rootDirectories));
|
|
394
405
|
}
|
|
395
406
|
__name(findWorkspaceRootSafe, "findWorkspaceRootSafe");
|
|
396
407
|
function findWorkspaceRoot(pathInsideMonorepo) {
|
|
@@ -717,10 +728,10 @@ var getConfigFileByName = /* @__PURE__ */ __name(async (fileName, filePath, opti
|
|
|
717
728
|
}, "getConfigFileByName");
|
|
718
729
|
var getConfigFile = /* @__PURE__ */ __name(async (filePath, additionalFileNames = []) => {
|
|
719
730
|
const workspacePath = filePath ? filePath : findWorkspaceRoot(filePath);
|
|
720
|
-
const result = await getConfigFileByName("storm", workspacePath);
|
|
731
|
+
const result = await getConfigFileByName("storm-workspace", workspacePath);
|
|
721
732
|
let config = result.config;
|
|
722
733
|
const configFile = result.configFile;
|
|
723
|
-
if (config && configFile && Object.keys(config).length > 0) {
|
|
734
|
+
if (config && configFile && Object.keys(config).length > 0 && !config.skipConfigLogging) {
|
|
724
735
|
writeTrace(`Found Storm configuration file "${configFile.includes(`${workspacePath}/`) ? configFile.replace(`${workspacePath}/`, "") : configFile}" at "${workspacePath}"`, {
|
|
725
736
|
logLevel: "all"
|
|
726
737
|
});
|
|
@@ -729,9 +740,11 @@ var getConfigFile = /* @__PURE__ */ __name(async (filePath, additionalFileNames
|
|
|
729
740
|
const results = await Promise.all(additionalFileNames.map((fileName) => getConfigFileByName(fileName, workspacePath)));
|
|
730
741
|
for (const result2 of results) {
|
|
731
742
|
if (result2?.config && result2?.configFile && Object.keys(result2.config).length > 0) {
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
743
|
+
if (!config.skipConfigLogging && !result2.config.skipConfigLogging) {
|
|
744
|
+
writeTrace(`Found alternative configuration file "${result2.configFile.includes(`${workspacePath}/`) ? result2.configFile.replace(`${workspacePath}/`, "") : result2.configFile}" at "${workspacePath}"`, {
|
|
745
|
+
logLevel: "all"
|
|
746
|
+
});
|
|
747
|
+
}
|
|
735
748
|
config = defu(result2.config ?? {}, config ?? {});
|
|
736
749
|
}
|
|
737
750
|
}
|
|
@@ -807,7 +820,8 @@ var getConfigEnv = /* @__PURE__ */ __name(() => {
|
|
|
807
820
|
cyclone: process.env[`${prefix}REGISTRY_CYCLONE`] || void 0,
|
|
808
821
|
container: process.env[`${prefix}REGISTRY_CONTAINER`] || void 0
|
|
809
822
|
},
|
|
810
|
-
logLevel: process.env[`${prefix}LOG_LEVEL`] !== null && process.env[`${prefix}LOG_LEVEL`] !== void 0 ? process.env[`${prefix}LOG_LEVEL`] && Number.isSafeInteger(Number.parseInt(process.env[`${prefix}LOG_LEVEL`])) ? getLogLevelLabel(Number.parseInt(process.env[`${prefix}LOG_LEVEL`])) : process.env[`${prefix}LOG_LEVEL`] : void 0
|
|
823
|
+
logLevel: process.env[`${prefix}LOG_LEVEL`] !== null && process.env[`${prefix}LOG_LEVEL`] !== void 0 ? process.env[`${prefix}LOG_LEVEL`] && Number.isSafeInteger(Number.parseInt(process.env[`${prefix}LOG_LEVEL`])) ? getLogLevelLabel(Number.parseInt(process.env[`${prefix}LOG_LEVEL`])) : process.env[`${prefix}LOG_LEVEL`] : void 0,
|
|
824
|
+
skipConfigLogging: process.env[`${prefix}SKIP_CONFIG_LOGGING`] !== void 0 ? Boolean(process.env[`${prefix}SKIP_CONFIG_LOGGING`]) : void 0
|
|
811
825
|
};
|
|
812
826
|
const themeNames = Object.keys(process.env).filter((envKey) => envKey.startsWith(`${prefix}COLOR_`) && COLOR_KEYS.every((colorKey) => !envKey.startsWith(`${prefix}COLOR_LIGHT_${colorKey}`) && !envKey.startsWith(`${prefix}COLOR_DARK_${colorKey}`)));
|
|
813
827
|
config.colors = themeNames.length > 0 ? themeNames.reduce((ret, themeName) => {
|
|
@@ -1042,6 +1056,9 @@ var setConfigEnv = /* @__PURE__ */ __name((config) => {
|
|
|
1042
1056
|
process.env.NX_VERBOSE_LOGGING = String(getLogLevel(config.logLevel) >= LogLevel.DEBUG ? true : false);
|
|
1043
1057
|
process.env.RUST_BACKTRACE = getLogLevel(config.logLevel) >= LogLevel.DEBUG ? "full" : "none";
|
|
1044
1058
|
}
|
|
1059
|
+
if (config.skipConfigLogging !== void 0) {
|
|
1060
|
+
process.env[`${prefix}SKIP_CONFIG_LOGGING`] = String(config.skipConfigLogging);
|
|
1061
|
+
}
|
|
1045
1062
|
process.env[`${prefix}CONFIG`] = JSON.stringify(config);
|
|
1046
1063
|
for (const key of Object.keys(config.extensions ?? {})) {
|
|
1047
1064
|
config.extensions[key] && Object.keys(config.extensions[key]) && setExtensionEnv(key, config.extensions[key]);
|
|
@@ -1159,7 +1176,7 @@ var createStormConfig = /* @__PURE__ */ __name(async (extensionName, schema, wor
|
|
|
1159
1176
|
const defaultConfig = await getDefaultConfig(_workspaceRoot);
|
|
1160
1177
|
const configFile = await getConfigFile(_workspaceRoot);
|
|
1161
1178
|
if (!configFile && !skipLogs) {
|
|
1162
|
-
writeWarning("No Storm
|
|
1179
|
+
writeWarning("No Storm Workspace configuration file found in the current repository. Please ensure this is the expected behavior - you can add a `storm-workspace.json` file to the root of your workspace if it is not.\n", {
|
|
1163
1180
|
logLevel: "all"
|
|
1164
1181
|
});
|
|
1165
1182
|
}
|
|
@@ -1197,8 +1214,8 @@ var createConfigExtension = /* @__PURE__ */ __name((extensionName, schema) => {
|
|
|
1197
1214
|
var loadStormConfig = /* @__PURE__ */ __name(async (workspaceRoot, skipLogs = false) => {
|
|
1198
1215
|
const config = await createStormConfig(void 0, void 0, workspaceRoot, skipLogs);
|
|
1199
1216
|
setConfigEnv(config);
|
|
1200
|
-
if (!skipLogs) {
|
|
1201
|
-
writeTrace(`\u2699\uFE0F Using Storm configuration:
|
|
1217
|
+
if (!skipLogs && !config.skipConfigLogging) {
|
|
1218
|
+
writeTrace(`\u2699\uFE0F Using Storm Workspace configuration:
|
|
1202
1219
|
${formatLogMessage(config)}`, config);
|
|
1203
1220
|
}
|
|
1204
1221
|
return config;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@storm-software/linting-tools",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.109.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "⚡ A package containing various linting tools used to validate syntax, enforce design standards, and format code in a Storm workspace.",
|
|
6
6
|
"repository": {
|