@storm-software/workspace-tools 1.252.3 → 1.252.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/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ ## 1.252.4 (2025-02-07)
2
+
3
+ ### Bug Fixes
4
+
5
+ - **workspace-tools:** Added `workspace` argument to `lint-knip` execution ([7af85ff50](https://github.com/storm-software/storm-ops/commit/7af85ff50))
6
+
1
7
  ## 1.252.3 (2025-02-07)
2
8
 
3
9
  ### Bug Fixes
@@ -36,10 +36,13 @@ var createNodes = [
36
36
  if (opts?.includeApps === false && project.projectType === "application") {
37
37
  return {};
38
38
  }
39
+ const enableKnip = opts?.enableKnip !== false;
40
+ const enableMarkdownlint = opts?.enableMarkdownlint !== false;
41
+ const enableEslint = opts?.enableEslint !== false;
39
42
  const nxJson = readNxJson(ctx.workspaceRoot);
40
43
  const targets = readTargetsFromPackageJson(packageJson, nxJson);
41
44
  const relativePath = relative(dirname(file), ctx.workspaceRoot);
42
- if (!targets["lint-knip"]) {
45
+ if (!targets["lint-knip"] && enableKnip) {
43
46
  targets["lint-knip"] = {
44
47
  cache: true,
45
48
  outputs: [
@@ -56,11 +59,11 @@ var createNodes = [
56
59
  ],
57
60
  executor: "nx:run-commands",
58
61
  options: {
59
- command: `pnpm exec knip --config "${join(relativePath, "node_modules/@storm-software/linting-tools/knip/config.json")}" --tsConfig "{projectRoot}/tsconfig.json" --directory "{projectRoot}" --fix --cache --cache-location "${join(relativePath, "node_modules/.cache/knip/{projectRoot}")}"`
62
+ command: `pnpm exec knip --config "${join(relativePath, "node_modules/@storm-software/linting-tools/knip/config.json").replaceAll("\\", "/")}" --tsConfig "{projectRoot}/tsconfig.json" --directory "{projectRoot}" --fix --cache --cache-location "${join(relativePath, "node_modules/.cache/knip/{projectRoot}").replaceAll("\\", "/")}" --workspace "${relativePath.replaceAll("\\", "/")}"`
60
63
  }
61
64
  };
62
65
  }
63
- if (!targets["lint-markdown"]) {
66
+ if (!targets["lint-markdown"] && enableMarkdownlint) {
64
67
  targets["lint-markdown"] = {
65
68
  cache: true,
66
69
  outputs: [
@@ -81,7 +84,7 @@ var createNodes = [
81
84
  }
82
85
  };
83
86
  }
84
- if (!targets.lint) {
87
+ if (!targets.lint && enableEslint) {
85
88
  let eslintConfig = checkEslintConfigAtPath(project.root);
86
89
  if (!eslintConfig) {
87
90
  eslintConfig = checkEslintConfigAtPath(ctx.workspaceRoot);
@@ -36,10 +36,13 @@ var createNodes = [
36
36
  if (_optionalChain([opts, 'optionalAccess', _ => _.includeApps]) === false && project.projectType === "application") {
37
37
  return {};
38
38
  }
39
+ const enableKnip = _optionalChain([opts, 'optionalAccess', _2 => _2.enableKnip]) !== false;
40
+ const enableMarkdownlint = _optionalChain([opts, 'optionalAccess', _3 => _3.enableMarkdownlint]) !== false;
41
+ const enableEslint = _optionalChain([opts, 'optionalAccess', _4 => _4.enableEslint]) !== false;
39
42
  const nxJson = _nxjsonjs.readNxJson.call(void 0, ctx.workspaceRoot);
40
43
  const targets = _packagejson.readTargetsFromPackageJson.call(void 0, packageJson, nxJson);
41
44
  const relativePath = _path.relative.call(void 0, _path.dirname.call(void 0, file), ctx.workspaceRoot);
42
- if (!targets["lint-knip"]) {
45
+ if (!targets["lint-knip"] && enableKnip) {
43
46
  targets["lint-knip"] = {
44
47
  cache: true,
45
48
  outputs: [
@@ -56,11 +59,11 @@ var createNodes = [
56
59
  ],
57
60
  executor: "nx:run-commands",
58
61
  options: {
59
- command: `pnpm exec knip --config "${_path.join.call(void 0, relativePath, "node_modules/@storm-software/linting-tools/knip/config.json")}" --tsConfig "{projectRoot}/tsconfig.json" --directory "{projectRoot}" --fix --cache --cache-location "${_path.join.call(void 0, relativePath, "node_modules/.cache/knip/{projectRoot}")}"`
62
+ command: `pnpm exec knip --config "${_path.join.call(void 0, relativePath, "node_modules/@storm-software/linting-tools/knip/config.json").replaceAll("\\", "/")}" --tsConfig "{projectRoot}/tsconfig.json" --directory "{projectRoot}" --fix --cache --cache-location "${_path.join.call(void 0, relativePath, "node_modules/.cache/knip/{projectRoot}").replaceAll("\\", "/")}" --workspace "${relativePath.replaceAll("\\", "/")}"`
60
63
  }
61
64
  };
62
65
  }
63
- if (!targets["lint-markdown"]) {
66
+ if (!targets["lint-markdown"] && enableMarkdownlint) {
64
67
  targets["lint-markdown"] = {
65
68
  cache: true,
66
69
  outputs: [
@@ -81,7 +84,7 @@ var createNodes = [
81
84
  }
82
85
  };
83
86
  }
84
- if (!targets.lint) {
87
+ if (!targets.lint && enableEslint) {
85
88
  let eslintConfig = checkEslintConfigAtPath(project.root);
86
89
  if (!eslintConfig) {
87
90
  eslintConfig = checkEslintConfigAtPath(ctx.workspaceRoot);
@@ -239,8 +242,8 @@ var createNodes = [
239
242
  cleanComments: true
240
243
  }
241
244
  };
242
- _optionalChain([targets, 'access', _2 => _2["nx-release-publish"], 'access', _3 => _3.dependsOn, 'optionalAccess', _4 => _4.push, 'call', _5 => _5("clean-package")]);
243
- _optionalChain([targets, 'access', _6 => _6["size-limit"], 'access', _7 => _7.dependsOn, 'optionalAccess', _8 => _8.push, 'call', _9 => _9("clean-package")]);
245
+ _optionalChain([targets, 'access', _5 => _5["nx-release-publish"], 'access', _6 => _6.dependsOn, 'optionalAccess', _7 => _7.push, 'call', _8 => _8("clean-package")]);
246
+ _optionalChain([targets, 'access', _9 => _9["size-limit"], 'access', _10 => _10.dependsOn, 'optionalAccess', _11 => _11.push, 'call', _12 => _12("clean-package")]);
244
247
  }
245
248
  }
246
249
  _chunk7YRW5HNXjs.addProjectTag.call(void 0, project, _chunk7YRW5HNXjs.ProjectTagConstants.Language.TAG_ID, _chunk7YRW5HNXjs.ProjectTagConstants.Language.TYPESCRIPT, {
@@ -270,15 +273,15 @@ var createNodes = [
270
273
  break;
271
274
  }
272
275
  _chunk7YRW5HNXjs.setDefaultProjectTags.call(void 0, project, name);
273
- return _optionalChain([project, 'optionalAccess', _10 => _10.name]) ? {
276
+ return _optionalChain([project, 'optionalAccess', _13 => _13.name]) ? {
274
277
  projects: {
275
278
  [project.name]: {
276
279
  ...project,
277
280
  targets,
278
281
  release: {
279
- ..._optionalChain([project, 'optionalAccess', _11 => _11.release]),
282
+ ..._optionalChain([project, 'optionalAccess', _14 => _14.release]),
280
283
  version: {
281
- ..._optionalChain([project, 'optionalAccess', _12 => _12.release, 'optionalAccess', _13 => _13.version]),
284
+ ..._optionalChain([project, 'optionalAccess', _15 => _15.release, 'optionalAccess', _16 => _16.version]),
282
285
  generator: "@storm-software/workspace-tools:release-version"
283
286
  }
284
287
  }
package/dist/executors.js CHANGED
@@ -1,6 +1,12 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('./chunk-3J53KHVV.js');
2
2
 
3
3
 
4
+ var _chunkWGTIKGAEjs = require('./chunk-WGTIKGAE.js');
5
+
6
+
7
+ var _chunkCQAGLRNYjs = require('./chunk-CQAGLRNY.js');
8
+
9
+
4
10
  var _chunkNXGJNB3Cjs = require('./chunk-NXGJNB3C.js');
5
11
 
6
12
 
@@ -10,7 +16,7 @@ var _chunkJXSTSZSGjs = require('./chunk-JXSTSZSG.js');
10
16
  var _chunkFMOIAVZVjs = require('./chunk-FMOIAVZV.js');
11
17
 
12
18
 
13
- var _chunkWGTIKGAEjs = require('./chunk-WGTIKGAE.js');
19
+ var _chunk5O6RWCBQjs = require('./chunk-5O6RWCBQ.js');
14
20
 
15
21
 
16
22
  var _chunkGGGO542Mjs = require('./chunk-GGGO542M.js');
@@ -20,10 +26,7 @@ var _chunkWL7UV3YXjs = require('./chunk-WL7UV3YX.js');
20
26
  require('./chunk-R2NBU264.js');
21
27
 
22
28
 
23
- var _chunkCQAGLRNYjs = require('./chunk-CQAGLRNY.js');
24
-
25
-
26
- var _chunk4AMZUCHLjs = require('./chunk-4AMZUCHL.js');
29
+ var _chunkK434EGC4js = require('./chunk-K434EGC4.js');
27
30
 
28
31
 
29
32
  var _chunkG7HTMCQKjs = require('./chunk-G7HTMCQK.js');
@@ -32,10 +35,7 @@ var _chunkG7HTMCQKjs = require('./chunk-G7HTMCQK.js');
32
35
  var _chunk4SJW3KRVjs = require('./chunk-4SJW3KRV.js');
33
36
 
34
37
 
35
- var _chunk5O6RWCBQjs = require('./chunk-5O6RWCBQ.js');
36
-
37
-
38
- var _chunkK434EGC4js = require('./chunk-K434EGC4.js');
38
+ var _chunk4AMZUCHLjs = require('./chunk-4AMZUCHL.js');
39
39
  require('./chunk-CUPARBOS.js');
40
40
  require('./chunk-ULBTYC2B.js');
41
41
  require('./chunk-ZMFVKBRM.js');
@@ -1,4 +1,10 @@
1
1
  import "./chunk-V7YZ3666.mjs";
2
+ import {
3
+ unbuildExecutorFn
4
+ } from "./chunk-7H4PXXWW.mjs";
5
+ import {
6
+ LARGE_BUFFER
7
+ } from "./chunk-VBPOZVKY.mjs";
2
8
  import {
3
9
  sizeLimitExecutorFn
4
10
  } from "./chunk-KM47X5XW.mjs";
@@ -9,8 +15,8 @@ import {
9
15
  tsdownExecutorFn
10
16
  } from "./chunk-UF3YMASN.mjs";
11
17
  import {
12
- unbuildExecutorFn
13
- } from "./chunk-7H4PXXWW.mjs";
18
+ cargoFormatExecutor
19
+ } from "./chunk-YILBFUCI.mjs";
14
20
  import {
15
21
  getRegistryVersion
16
22
  } from "./chunk-XUYTELRS.mjs";
@@ -19,11 +25,8 @@ import {
19
25
  } from "./chunk-OA6GD45B.mjs";
20
26
  import "./chunk-N2P34ZQV.mjs";
21
27
  import {
22
- LARGE_BUFFER
23
- } from "./chunk-VBPOZVKY.mjs";
24
- import {
25
- cargoCheckExecutor
26
- } from "./chunk-P4ZEGEQX.mjs";
28
+ cargoBuildExecutor
29
+ } from "./chunk-RSFH5OLL.mjs";
27
30
  import {
28
31
  cargoClippyExecutor
29
32
  } from "./chunk-57LRWY5U.mjs";
@@ -31,11 +34,8 @@ import {
31
34
  cargoDocExecutor
32
35
  } from "./chunk-7AXJ27FU.mjs";
33
36
  import {
34
- cargoFormatExecutor
35
- } from "./chunk-YILBFUCI.mjs";
36
- import {
37
- cargoBuildExecutor
38
- } from "./chunk-RSFH5OLL.mjs";
37
+ cargoCheckExecutor
38
+ } from "./chunk-P4ZEGEQX.mjs";
39
39
  import "./chunk-JB4KCMSB.mjs";
40
40
  import "./chunk-XK3FSWMA.mjs";
41
41
  import "./chunk-EIM3O6HY.mjs";
@@ -1,6 +1,9 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('./chunk-INERRJ6Q.js');
2
2
 
3
3
 
4
+ var _chunkSJNJ6TCDjs = require('./chunk-SJNJ6TCD.js');
5
+
6
+
4
7
  var _chunkWDK2FJUHjs = require('./chunk-WDK2FJUH.js');
5
8
 
6
9
 
@@ -17,9 +20,6 @@ var _chunkKJPUYQEZjs = require('./chunk-KJPUYQEZ.js');
17
20
 
18
21
 
19
22
  var _chunk3IZ3O4OKjs = require('./chunk-3IZ3O4OK.js');
20
-
21
-
22
- var _chunkSJNJ6TCDjs = require('./chunk-SJNJ6TCD.js');
23
23
  require('./chunk-RBU35LQW.js');
24
24
  require('./chunk-HI4G4OOG.js');
25
25
  require('./chunk-7YRW5HNX.js');
@@ -1,4 +1,7 @@
1
1
  import "./chunk-RLIZVCIN.mjs";
2
+ import {
3
+ neutralLibraryGeneratorFn
4
+ } from "./chunk-APSDUSBR.mjs";
2
5
  import {
3
6
  nodeLibraryGeneratorFn
4
7
  } from "./chunk-Q6OBRMZG.mjs";
@@ -17,9 +20,6 @@ import {
17
20
  import {
18
21
  initGenerator
19
22
  } from "./chunk-X3GPVZMH.mjs";
20
- import {
21
- neutralLibraryGeneratorFn
22
- } from "./chunk-APSDUSBR.mjs";
23
23
  import "./chunk-F2GYXQ5H.mjs";
24
24
  import "./chunk-EK75QNMS.mjs";
25
25
  import "./chunk-W3SWWT4A.mjs";
package/dist/index.js CHANGED
@@ -48,6 +48,12 @@ var _chunkGKL4BY2Yjs = require('./chunk-GKL4BY2Y.js');
48
48
  require('./chunk-3J53KHVV.js');
49
49
 
50
50
 
51
+ var _chunkWGTIKGAEjs = require('./chunk-WGTIKGAE.js');
52
+
53
+
54
+ var _chunkCQAGLRNYjs = require('./chunk-CQAGLRNY.js');
55
+
56
+
51
57
  var _chunkNXGJNB3Cjs = require('./chunk-NXGJNB3C.js');
52
58
 
53
59
 
@@ -57,7 +63,7 @@ var _chunkJXSTSZSGjs = require('./chunk-JXSTSZSG.js');
57
63
  var _chunkFMOIAVZVjs = require('./chunk-FMOIAVZV.js');
58
64
 
59
65
 
60
- var _chunkWGTIKGAEjs = require('./chunk-WGTIKGAE.js');
66
+ var _chunk5O6RWCBQjs = require('./chunk-5O6RWCBQ.js');
61
67
 
62
68
 
63
69
  var _chunkGGGO542Mjs = require('./chunk-GGGO542M.js');
@@ -67,10 +73,7 @@ var _chunkWL7UV3YXjs = require('./chunk-WL7UV3YX.js');
67
73
  require('./chunk-R2NBU264.js');
68
74
 
69
75
 
70
- var _chunkCQAGLRNYjs = require('./chunk-CQAGLRNY.js');
71
-
72
-
73
- var _chunk4AMZUCHLjs = require('./chunk-4AMZUCHL.js');
76
+ var _chunkK434EGC4js = require('./chunk-K434EGC4.js');
74
77
 
75
78
 
76
79
  var _chunkG7HTMCQKjs = require('./chunk-G7HTMCQK.js');
@@ -79,10 +82,7 @@ var _chunkG7HTMCQKjs = require('./chunk-G7HTMCQK.js');
79
82
  var _chunk4SJW3KRVjs = require('./chunk-4SJW3KRV.js');
80
83
 
81
84
 
82
- var _chunk5O6RWCBQjs = require('./chunk-5O6RWCBQ.js');
83
-
84
-
85
- var _chunkK434EGC4js = require('./chunk-K434EGC4.js');
85
+ var _chunk4AMZUCHLjs = require('./chunk-4AMZUCHL.js');
86
86
 
87
87
 
88
88
  var _chunkCUPARBOSjs = require('./chunk-CUPARBOS.js');
@@ -100,6 +100,9 @@ var _chunkULBTYC2Bjs = require('./chunk-ULBTYC2B.js');
100
100
  require('./chunk-INERRJ6Q.js');
101
101
 
102
102
 
103
+ var _chunkSJNJ6TCDjs = require('./chunk-SJNJ6TCD.js');
104
+
105
+
103
106
  var _chunkWDK2FJUHjs = require('./chunk-WDK2FJUH.js');
104
107
 
105
108
 
@@ -118,9 +121,6 @@ var _chunkKJPUYQEZjs = require('./chunk-KJPUYQEZ.js');
118
121
  var _chunk3IZ3O4OKjs = require('./chunk-3IZ3O4OK.js');
119
122
 
120
123
 
121
- var _chunkSJNJ6TCDjs = require('./chunk-SJNJ6TCD.js');
122
-
123
-
124
124
 
125
125
 
126
126
 
package/dist/index.mjs CHANGED
@@ -46,6 +46,12 @@ import {
46
46
  getProjectConfigurations
47
47
  } from "./chunk-V7IOKRJA.mjs";
48
48
  import "./chunk-V7YZ3666.mjs";
49
+ import {
50
+ unbuildExecutorFn
51
+ } from "./chunk-7H4PXXWW.mjs";
52
+ import {
53
+ LARGE_BUFFER
54
+ } from "./chunk-VBPOZVKY.mjs";
49
55
  import {
50
56
  sizeLimitExecutorFn
51
57
  } from "./chunk-KM47X5XW.mjs";
@@ -56,8 +62,8 @@ import {
56
62
  tsdownExecutorFn
57
63
  } from "./chunk-UF3YMASN.mjs";
58
64
  import {
59
- unbuildExecutorFn
60
- } from "./chunk-7H4PXXWW.mjs";
65
+ cargoFormatExecutor
66
+ } from "./chunk-YILBFUCI.mjs";
61
67
  import {
62
68
  getRegistryVersion
63
69
  } from "./chunk-XUYTELRS.mjs";
@@ -66,11 +72,8 @@ import {
66
72
  } from "./chunk-OA6GD45B.mjs";
67
73
  import "./chunk-N2P34ZQV.mjs";
68
74
  import {
69
- LARGE_BUFFER
70
- } from "./chunk-VBPOZVKY.mjs";
71
- import {
72
- cargoCheckExecutor
73
- } from "./chunk-P4ZEGEQX.mjs";
75
+ cargoBuildExecutor
76
+ } from "./chunk-RSFH5OLL.mjs";
74
77
  import {
75
78
  cargoClippyExecutor
76
79
  } from "./chunk-57LRWY5U.mjs";
@@ -78,11 +81,8 @@ import {
78
81
  cargoDocExecutor
79
82
  } from "./chunk-7AXJ27FU.mjs";
80
83
  import {
81
- cargoFormatExecutor
82
- } from "./chunk-YILBFUCI.mjs";
83
- import {
84
- cargoBuildExecutor
85
- } from "./chunk-RSFH5OLL.mjs";
84
+ cargoCheckExecutor
85
+ } from "./chunk-P4ZEGEQX.mjs";
86
86
  import {
87
87
  pnpmCatalogUpdate
88
88
  } from "./chunk-JB4KCMSB.mjs";
@@ -98,6 +98,9 @@ import {
98
98
  runProcess
99
99
  } from "./chunk-XK3FSWMA.mjs";
100
100
  import "./chunk-RLIZVCIN.mjs";
101
+ import {
102
+ neutralLibraryGeneratorFn
103
+ } from "./chunk-APSDUSBR.mjs";
101
104
  import {
102
105
  nodeLibraryGeneratorFn
103
106
  } from "./chunk-Q6OBRMZG.mjs";
@@ -116,9 +119,6 @@ import {
116
119
  import {
117
120
  initGenerator
118
121
  } from "./chunk-X3GPVZMH.mjs";
119
- import {
120
- neutralLibraryGeneratorFn
121
- } from "./chunk-APSDUSBR.mjs";
122
122
  import {
123
123
  createProjectTsConfigJson,
124
124
  getOutputPath,
@@ -1,11 +1,11 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
3
 
4
- var _chunkFUXJ4XG3js = require('../../../chunk-FUXJ4XG3.js');
4
+ var _chunkRTFMVX72js = require('../../../chunk-RTFMVX72.js');
5
5
  require('../../../chunk-UF6KFXG5.js');
6
6
  require('../../../chunk-7YRW5HNX.js');
7
7
  require('../../../chunk-3GQAWCBQ.js');
8
8
 
9
9
 
10
10
 
11
- exports.createNodes = _chunkFUXJ4XG3js.createNodes; exports.name = _chunkFUXJ4XG3js.name;
11
+ exports.createNodes = _chunkRTFMVX72js.createNodes; exports.name = _chunkRTFMVX72js.name;
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  createNodes,
3
3
  name
4
- } from "../../../chunk-OE2NLRDG.mjs";
4
+ } from "../../../chunk-HGE4C5SO.mjs";
5
5
  import "../../../chunk-HUCDWLQ3.mjs";
6
6
  import "../../../chunk-W3SWWT4A.mjs";
7
7
  import "../../../chunk-R7DU2APC.mjs";
@@ -3,6 +3,9 @@ import { CreateNodes } from '@nx/devkit';
3
3
  declare const name = "storm-software/typescript";
4
4
  interface TypeScriptPluginOptions {
5
5
  includeApps?: boolean;
6
+ enableKnip?: boolean;
7
+ enableMarkdownlint?: boolean;
8
+ enableEslint?: boolean;
6
9
  }
7
10
  declare const createNodes: CreateNodes<TypeScriptPluginOptions>;
8
11
 
@@ -3,6 +3,9 @@ import { CreateNodes } from '@nx/devkit';
3
3
  declare const name = "storm-software/typescript";
4
4
  interface TypeScriptPluginOptions {
5
5
  includeApps?: boolean;
6
+ enableKnip?: boolean;
7
+ enableMarkdownlint?: boolean;
8
+ enableEslint?: boolean;
6
9
  }
7
10
  declare const createNodes: CreateNodes<TypeScriptPluginOptions>;
8
11
 
@@ -1,11 +1,11 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
3
 
4
- var _chunkFUXJ4XG3js = require('../../../chunk-FUXJ4XG3.js');
4
+ var _chunkRTFMVX72js = require('../../../chunk-RTFMVX72.js');
5
5
  require('../../../chunk-UF6KFXG5.js');
6
6
  require('../../../chunk-7YRW5HNX.js');
7
7
  require('../../../chunk-3GQAWCBQ.js');
8
8
 
9
9
 
10
10
 
11
- exports.createNodes = _chunkFUXJ4XG3js.createNodes; exports.name = _chunkFUXJ4XG3js.name;
11
+ exports.createNodes = _chunkRTFMVX72js.createNodes; exports.name = _chunkRTFMVX72js.name;
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  createNodes,
3
3
  name
4
- } from "../../../chunk-OE2NLRDG.mjs";
4
+ } from "../../../chunk-HGE4C5SO.mjs";
5
5
  import "../../../chunk-HUCDWLQ3.mjs";
6
6
  import "../../../chunk-W3SWWT4A.mjs";
7
7
  import "../../../chunk-R7DU2APC.mjs";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@storm-software/workspace-tools",
3
- "version": "1.252.3",
3
+ "version": "1.252.4",
4
4
  "description": "Tools for managing a Storm workspace, including various Nx generators and executors for common development tasks.",
5
5
  "repository": {
6
6
  "type": "github",