@shell-shock/core 0.17.4 → 0.17.6

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.
Files changed (82) hide show
  1. package/dist/components/command-validation-logic.cjs +214 -152
  2. package/dist/components/command-validation-logic.mjs +213 -152
  3. package/dist/components/command-validation-logic.mjs.map +1 -1
  4. package/dist/components/docs.cjs +113 -9
  5. package/dist/components/docs.mjs +109 -9
  6. package/dist/components/docs.mjs.map +1 -1
  7. package/dist/components/exec-builtin.cjs +36 -1
  8. package/dist/components/exec-builtin.d.cts.map +1 -1
  9. package/dist/components/exec-builtin.d.mts.map +1 -1
  10. package/dist/components/exec-builtin.mjs +35 -1
  11. package/dist/components/exec-builtin.mjs.map +1 -1
  12. package/dist/components/helpers.cjs +51 -2
  13. package/dist/components/helpers.mjs +50 -2
  14. package/dist/components/helpers.mjs.map +1 -1
  15. package/dist/components/index.cjs +17 -1
  16. package/dist/components/index.mjs +9 -9
  17. package/dist/components/options-parser-logic.cjs +411 -174
  18. package/dist/components/options-parser-logic.d.cts.map +1 -1
  19. package/dist/components/options-parser-logic.d.mts.map +1 -1
  20. package/dist/components/options-parser-logic.mjs +405 -174
  21. package/dist/components/options-parser-logic.mjs.map +1 -1
  22. package/dist/components/state-builtin.cjs +61 -5
  23. package/dist/components/state-builtin.mjs +60 -5
  24. package/dist/components/state-builtin.mjs.map +1 -1
  25. package/dist/components/usage.cjs +46 -3
  26. package/dist/components/usage.mjs +45 -3
  27. package/dist/components/usage.mjs.map +1 -1
  28. package/dist/components/utils-builtin.cjs +68 -3
  29. package/dist/components/utils-builtin.mjs +67 -3
  30. package/dist/components/utils-builtin.mjs.map +1 -1
  31. package/dist/helpers/automd.cjs +28 -13
  32. package/dist/helpers/automd.mjs +28 -13
  33. package/dist/helpers/automd.mjs.map +1 -1
  34. package/dist/index.cjs +11 -0
  35. package/dist/index.d.cts +2 -2
  36. package/dist/index.d.mts +2 -2
  37. package/dist/index.mjs +2 -2
  38. package/dist/plugin-utils/compute-bin.cjs +50 -0
  39. package/dist/plugin-utils/compute-bin.d.cts +13 -0
  40. package/dist/plugin-utils/compute-bin.d.cts.map +1 -0
  41. package/dist/plugin-utils/compute-bin.d.mts +13 -0
  42. package/dist/plugin-utils/compute-bin.d.mts.map +1 -0
  43. package/dist/plugin-utils/compute-bin.mjs +50 -0
  44. package/dist/plugin-utils/compute-bin.mjs.map +1 -0
  45. package/dist/plugin-utils/get-command-tree.cjs +50 -0
  46. package/dist/plugin-utils/get-command-tree.d.cts +15 -1
  47. package/dist/plugin-utils/get-command-tree.d.cts.map +1 -1
  48. package/dist/plugin-utils/get-command-tree.d.mts +15 -1
  49. package/dist/plugin-utils/get-command-tree.d.mts.map +1 -1
  50. package/dist/plugin-utils/get-command-tree.mjs +49 -1
  51. package/dist/plugin-utils/get-command-tree.mjs.map +1 -1
  52. package/dist/plugin-utils/index.cjs +4 -0
  53. package/dist/plugin-utils/index.d.cts +3 -2
  54. package/dist/plugin-utils/index.d.mts +3 -2
  55. package/dist/plugin-utils/index.mjs +3 -2
  56. package/dist/plugin.cjs +170 -55
  57. package/dist/plugin.d.cts.map +1 -1
  58. package/dist/plugin.d.mts.map +1 -1
  59. package/dist/plugin.mjs +170 -54
  60. package/dist/plugin.mjs.map +1 -1
  61. package/dist/resolver/deepkit.cjs +1 -1
  62. package/dist/resolver/deepkit.mjs +1 -1
  63. package/dist/resolver/deepkit.mjs.map +1 -1
  64. package/dist/types/command.cjs +120 -10
  65. package/dist/types/command.d.cts +95 -8
  66. package/dist/types/command.d.cts.map +1 -1
  67. package/dist/types/command.d.mts +95 -8
  68. package/dist/types/command.d.mts.map +1 -1
  69. package/dist/types/command.mjs +109 -10
  70. package/dist/types/command.mjs.map +1 -1
  71. package/dist/types/config.cjs +2 -3
  72. package/dist/types/config.d.cts +2 -3
  73. package/dist/types/config.d.cts.map +1 -1
  74. package/dist/types/config.d.mts +2 -3
  75. package/dist/types/config.d.mts.map +1 -1
  76. package/dist/types/config.mjs +2 -3
  77. package/dist/types/config.mjs.map +1 -1
  78. package/dist/types/index.cjs +12 -1
  79. package/dist/types/index.d.cts +2 -2
  80. package/dist/types/index.d.mts +2 -2
  81. package/dist/types/index.mjs +2 -2
  82. package/package.json +10 -10
@@ -7,6 +7,16 @@ import { ElseIfClause, IfStatement, VarDeclaration } from "@alloy-js/typescript"
7
7
  import { list } from "@stryke/string-format/list";
8
8
 
9
9
  //#region src/components/command-validation-logic.tsx
10
+ function __assignType(fn, args) {
11
+ fn.__type = args;
12
+ return fn;
13
+ }
14
+ const __ΩCommandValidationLogicProps = [
15
+ "CommandTree",
16
+ "command",
17
+ "CommandValidationLogicProps",
18
+ "P\"w!4\"Mw#y"
19
+ ];
10
20
  /**
11
21
  * A component that generates command validation logic for required options and arguments.
12
22
  */
@@ -24,206 +34,257 @@ function CommandValidationLogic(props) {
24
34
  return Object.values(command.options ?? {});
25
35
  },
26
36
  doubleHardline: true,
27
- children: (option) => [
28
- createComponent(Show, {
37
+ get children() {
38
+ return __assignType((option) => [
39
+ createComponent(Show, {
40
+ get when() {
41
+ return !option.optional;
42
+ },
43
+ get children() {
44
+ return [createComponent(IfStatement, {
45
+ get condition() {
46
+ return code`!options${option.name.includes("?") ? `["${option.name}"]` : `.${camelCase(option.name)}`}`;
47
+ },
48
+ get children() {
49
+ return code`failures.push("Missing required \\"${option.name}\\" option");`;
50
+ }
51
+ }), createComponent(Show, {
52
+ get when() {
53
+ return option.variadic;
54
+ },
55
+ get children() {
56
+ return createComponent(ElseIfClause, {
57
+ get condition() {
58
+ return code`options${option.name.includes("?") ? `["${option.name}"]` : `.${camelCase(option.name)}`}.length === 0`;
59
+ },
60
+ get children() {
61
+ return code`failures.push("No values were provided to the required \\"${option.name}\\" array option");`;
62
+ }
63
+ });
64
+ }
65
+ })];
66
+ }
67
+ }),
68
+ createComponent(Show, {
69
+ get when() {
70
+ return option.kind === CommandParameterKinds.number;
71
+ },
72
+ get children() {
73
+ return createComponent(Show, {
74
+ get when() {
75
+ return option.variadic;
76
+ },
77
+ get fallback() {
78
+ return createComponent(IfStatement, {
79
+ get condition() {
80
+ return code`options${option.name.includes("?") ? `["${option.name}"]` : `.${camelCase(option.name)}`} && Number.isNaN(options${option.name.includes("?") ? `["${option.name}"]` : `.${camelCase(option.name)}`})`;
81
+ },
82
+ get children() {
83
+ return code`failures.push("Invalid numeric value provided for the \\"${option.name}\\" option");`;
84
+ }
85
+ });
86
+ },
87
+ get children() {
88
+ return createComponent(IfStatement, {
89
+ get condition() {
90
+ return code`options${option.name.includes("?") ? `["${option.name}"]` : `.${camelCase(option.name)}`}.some(value => Number.isNaN(value))`;
91
+ },
92
+ get children() {
93
+ return code`failures.push("Invalid numeric value provided in the \\"${option.name}\\" array option");`;
94
+ }
95
+ });
96
+ }
97
+ });
98
+ }
99
+ }),
100
+ createComponent(Show, {
101
+ get when() {
102
+ return (option.kind === CommandParameterKinds.string || option.kind === CommandParameterKinds.number) && option.choices && option.choices.length > 0;
103
+ },
104
+ get children() {
105
+ return createComponent(Show, {
106
+ get when() {
107
+ return !option.variadic;
108
+ },
109
+ get fallback() {
110
+ return createComponent(Show, {
111
+ get when() {
112
+ return !option.optional;
113
+ },
114
+ get fallback() {
115
+ return createComponent(IfStatement, {
116
+ get condition() {
117
+ return code`!options${option.name.includes("?") ? `["${option.name}"]` : `.${camelCase(option.name)}`}.every(value => [${option.choices?.map(__assignType((choice) => option.kind === CommandParameterKinds.string ? `"${choice}"` : choice, [
118
+ "choice",
119
+ "",
120
+ "P\"2!\"/\""
121
+ ])).join(", ")}].includes(value))`;
122
+ },
123
+ get children() {
124
+ return code`failures.push(\`Invalid value provided for the \\"${option.name}\\" option - valid values include: ${list(option?.choices?.map(__assignType((choice) => String(choice), [
125
+ "choice",
126
+ "",
127
+ "P\"2!\"/\""
128
+ ])) ?? [])}; provided: \${options${option.name.includes("?") ? `["${option.name}"]` : `.${camelCase(option.name)}`}}\`);`;
129
+ }
130
+ });
131
+ },
132
+ get children() {
133
+ return createComponent(ElseIfClause, {
134
+ get condition() {
135
+ return code`!options${option.name.includes("?") ? `["${option.name}"]` : `.${camelCase(option.name)}`}.every(value => [${option.choices?.map(__assignType((choice) => option.kind === CommandParameterKinds.string ? `"${choice}"` : choice, [
136
+ "choice",
137
+ "",
138
+ "P\"2!\"/\""
139
+ ])).join(", ")}].includes(value))`;
140
+ },
141
+ get children() {
142
+ return code`failures.push(\`Invalid value provided for the \\"${option.name}\\" option - valid values include: ${list(option?.choices?.map(__assignType((choice) => String(choice), [
143
+ "choice",
144
+ "",
145
+ "P\"2!\"/\""
146
+ ])) ?? [])}; provided: \${options${option.name.includes("?") ? `["${option.name}"]` : `.${camelCase(option.name)}`}}\`);`;
147
+ }
148
+ });
149
+ }
150
+ });
151
+ },
152
+ get children() {
153
+ return createComponent(Show, {
154
+ get when() {
155
+ return !option.optional;
156
+ },
157
+ get fallback() {
158
+ return createComponent(IfStatement, {
159
+ get condition() {
160
+ return code`![${option.choices?.map(__assignType((choice) => option.kind === CommandParameterKinds.string ? `"${choice}"` : choice, [
161
+ "choice",
162
+ "",
163
+ "P\"2!\"/\""
164
+ ])).join(", ")}].includes(options${option.name.includes("?") ? `["${option.name}"]` : `.${camelCase(option.name)}`})`;
165
+ },
166
+ get children() {
167
+ return code`failures.push(\`Invalid value provided for the \\"${option.name}\\" option - valid values include: ${list(option?.choices?.map(__assignType((choice) => String(choice), [
168
+ "choice",
169
+ "",
170
+ "P\"2!\"/\""
171
+ ])) ?? [])}; provided: \${options${option.name.includes("?") ? `["${option.name}"]` : `.${camelCase(option.name)}`}}\`);`;
172
+ }
173
+ });
174
+ },
175
+ get children() {
176
+ return createComponent(ElseIfClause, {
177
+ get condition() {
178
+ return code`![${option.choices?.map(__assignType((choice) => option.kind === CommandParameterKinds.string ? `"${choice}"` : choice, [
179
+ "choice",
180
+ "",
181
+ "P\"2!\"/\""
182
+ ])).join(", ")}].includes(options${option.name.includes("?") ? `["${option.name}"]` : `.${camelCase(option.name)}`})`;
183
+ },
184
+ get children() {
185
+ return code`failures.push(\`Invalid value provided for the \\"${option.name}\\" option - valid values include: ${list(option?.choices?.map(__assignType((choice) => String(choice), [
186
+ "choice",
187
+ "",
188
+ "P\"2!\"/\""
189
+ ])) ?? [])}; provided: \${options${option.name.includes("?") ? `["${option.name}"]` : `.${camelCase(option.name)}`}}\`);`;
190
+ }
191
+ });
192
+ }
193
+ });
194
+ }
195
+ });
196
+ }
197
+ })
198
+ ], [
199
+ "option",
200
+ "",
201
+ "P\"2!\"/\""
202
+ ]);
203
+ }
204
+ }),
205
+ createComponent(Spacing, {}),
206
+ createComponent(For, {
207
+ get each() {
208
+ return command.args;
209
+ },
210
+ doubleHardline: true,
211
+ get children() {
212
+ return __assignType((argument) => [createComponent(Show, {
29
213
  get when() {
30
- return !option.optional;
214
+ return !argument.optional;
31
215
  },
32
216
  get children() {
33
217
  return [createComponent(IfStatement, {
34
218
  get condition() {
35
- return code`!options${option.name.includes("?") ? `["${option.name}"]` : `.${camelCase(option.name)}`}`;
219
+ return code`!${camelCase(argument.name)}`;
36
220
  },
37
221
  get children() {
38
- return code`failures.push("Missing required ${option.name} option");`;
222
+ return code`failures.push("Missing required \\"${argument.name}\\" positional argument");`;
39
223
  }
40
224
  }), createComponent(Show, {
41
225
  get when() {
42
- return option.variadic;
226
+ return argument.variadic;
43
227
  },
44
228
  get children() {
45
229
  return createComponent(ElseIfClause, {
46
230
  get condition() {
47
- return code`options${option.name.includes("?") ? `["${option.name}"]` : `.${camelCase(option.name)}`}.length === 0`;
231
+ return code`${camelCase(argument.name)}.length === 0`;
48
232
  },
49
233
  get children() {
50
- return code`failures.push("No values were provided to the required ${option.name} array option");`;
234
+ return code`failures.push("No values were provided to the required \\"${argument.name}\\" array positional argument");`;
51
235
  }
52
236
  });
53
237
  }
54
238
  })];
55
239
  }
56
- }),
57
- createComponent(Show, {
240
+ }), createComponent(Show, {
58
241
  get when() {
59
- return option.kind === CommandParameterKinds.number;
242
+ return argument.kind === CommandParameterKinds.number;
60
243
  },
61
244
  get children() {
62
245
  return createComponent(Show, {
63
246
  get when() {
64
- return option.variadic;
247
+ return argument.variadic;
65
248
  },
66
249
  get fallback() {
67
250
  return createComponent(IfStatement, {
68
251
  get condition() {
69
- return code`options${option.name.includes("?") ? `["${option.name}"]` : `.${camelCase(option.name)}`} && Number.isNaN(options${option.name.includes("?") ? `["${option.name}"]` : `.${camelCase(option.name)}`})`;
252
+ return code`${camelCase(argument.name)} && Number.isNaN(${camelCase(argument.name)})`;
70
253
  },
71
254
  get children() {
72
- return code`failures.push("Invalid numeric value provided for the ${option.name} option");`;
255
+ return code`failures.push("Invalid numeric value provided for the \\"${argument.name}\\" positional argument");`;
73
256
  }
74
257
  });
75
258
  },
76
259
  get children() {
77
260
  return createComponent(IfStatement, {
78
261
  get condition() {
79
- return code`options${option.name.includes("?") ? `["${option.name}"]` : `.${camelCase(option.name)}`}.some(value => Number.isNaN(value))`;
262
+ return code`${camelCase(argument.name)}.some(value => Number.isNaN(value))`;
80
263
  },
81
264
  get children() {
82
- return code`failures.push("Invalid numeric value provided in the ${option.name} array option");`;
265
+ return code`failures.push("Invalid numeric value provided in the \\"${argument.name}\\" array positional argument");`;
83
266
  }
84
267
  });
85
268
  }
86
269
  });
87
270
  }
88
- }),
89
- createComponent(Show, {
90
- get when() {
91
- return (option.kind === CommandParameterKinds.string || option.kind === CommandParameterKinds.number) && option.choices && option.choices.length > 0;
92
- },
93
- get children() {
94
- return createComponent(Show, {
95
- get when() {
96
- return !option.variadic;
97
- },
98
- get fallback() {
99
- return createComponent(Show, {
100
- get when() {
101
- return !option.optional;
102
- },
103
- get fallback() {
104
- return createComponent(IfStatement, {
105
- get condition() {
106
- return code`!options${option.name.includes("?") ? `["${option.name}"]` : `.${camelCase(option.name)}`}.every(value => [${option.choices?.map((choice) => option.kind === CommandParameterKinds.string ? `"${choice}"` : choice).join(", ")}].includes(value))`;
107
- },
108
- get children() {
109
- return code`failures.push(\`Invalid value provided for the ${option.name} option - valid values include: ${list(option?.choices?.map((choice) => String(choice)) ?? [])}; provided: \${options${option.name.includes("?") ? `["${option.name}"]` : `.${camelCase(option.name)}`}}\`);`;
110
- }
111
- });
112
- },
113
- get children() {
114
- return createComponent(ElseIfClause, {
115
- get condition() {
116
- return code`!options${option.name.includes("?") ? `["${option.name}"]` : `.${camelCase(option.name)}`}.every(value => [${option.choices?.map((choice) => option.kind === CommandParameterKinds.string ? `"${choice}"` : choice).join(", ")}].includes(value))`;
117
- },
118
- get children() {
119
- return code`failures.push(\`Invalid value provided for the ${option.name} option - valid values include: ${list(option?.choices?.map((choice) => String(choice)) ?? [])}; provided: \${options${option.name.includes("?") ? `["${option.name}"]` : `.${camelCase(option.name)}`}}\`);`;
120
- }
121
- });
122
- }
123
- });
124
- },
125
- get children() {
126
- return createComponent(Show, {
127
- get when() {
128
- return !option.optional;
129
- },
130
- get fallback() {
131
- return createComponent(IfStatement, {
132
- get condition() {
133
- return code`![${option.choices?.map((choice) => option.kind === CommandParameterKinds.string ? `"${choice}"` : choice).join(", ")}].includes(options${option.name.includes("?") ? `["${option.name}"]` : `.${camelCase(option.name)}`})`;
134
- },
135
- get children() {
136
- return code`failures.push(\`Invalid value provided for the ${option.name} option - valid values include: ${list(option?.choices?.map((choice) => String(choice)) ?? [])}; provided: \${options${option.name.includes("?") ? `["${option.name}"]` : `.${camelCase(option.name)}`}}\`);`;
137
- }
138
- });
139
- },
140
- get children() {
141
- return createComponent(ElseIfClause, {
142
- get condition() {
143
- return code`![${option.choices?.map((choice) => option.kind === CommandParameterKinds.string ? `"${choice}"` : choice).join(", ")}].includes(options${option.name.includes("?") ? `["${option.name}"]` : `.${camelCase(option.name)}`})`;
144
- },
145
- get children() {
146
- return code`failures.push(\`Invalid value provided for the ${option.name} option - valid values include: ${list(option?.choices?.map((choice) => String(choice)) ?? [])}; provided: \${options${option.name.includes("?") ? `["${option.name}"]` : `.${camelCase(option.name)}`}}\`);`;
147
- }
148
- });
149
- }
150
- });
151
- }
152
- });
153
- }
154
- })
155
- ]
156
- }),
157
- createComponent(Spacing, {}),
158
- createComponent(For, {
159
- get each() {
160
- return command.args;
161
- },
162
- doubleHardline: true,
163
- children: (argument) => [createComponent(Show, {
164
- get when() {
165
- return !argument.optional;
166
- },
167
- get children() {
168
- return [createComponent(IfStatement, {
169
- get condition() {
170
- return code`!${camelCase(argument.name)}`;
171
- },
172
- get children() {
173
- return code`failures.push("Missing required \\"${argument.name}\\" positional argument");`;
174
- }
175
- }), createComponent(Show, {
176
- get when() {
177
- return (argument.kind === CommandParameterKinds.string || argument.kind === CommandParameterKinds.number) && argument.variadic;
178
- },
179
- get children() {
180
- return createComponent(ElseIfClause, {
181
- get condition() {
182
- return code`${camelCase(argument.name)}.length === 0`;
183
- },
184
- get children() {
185
- return code`failures.push("No values were provided to the required ${argument.name} array positional argument");`;
186
- }
187
- });
188
- }
189
- })];
190
- }
191
- }), createComponent(Show, {
192
- get when() {
193
- return argument.kind === CommandParameterKinds.number;
194
- },
195
- get children() {
196
- return createComponent(Show, {
197
- get when() {
198
- return argument.variadic;
199
- },
200
- get fallback() {
201
- return createComponent(IfStatement, {
202
- get condition() {
203
- return code`${camelCase(argument.name)} && Number.isNaN(${camelCase(argument.name)})`;
204
- },
205
- get children() {
206
- return code`failures.push("Invalid numeric value provided for the ${argument.name} positional argument");`;
207
- }
208
- });
209
- },
210
- get children() {
211
- return createComponent(IfStatement, {
212
- get condition() {
213
- return code`${camelCase(argument.name)}.some(value => Number.isNaN(value))`;
214
- },
215
- get children() {
216
- return code`failures.push("Invalid numeric value provided in the ${argument.name} array positional argument");`;
217
- }
218
- });
219
- }
220
- });
221
- }
222
- })]
271
+ })], [
272
+ "argument",
273
+ "",
274
+ "P\"2!\"/\""
275
+ ]);
276
+ }
223
277
  })
224
278
  ];
225
279
  }
280
+ CommandValidationLogic.__type = [
281
+ () => __ΩCommandValidationLogicProps,
282
+ "props",
283
+ "CommandValidationLogic",
284
+ "A component that generates command validation logic for required options and arguments.",
285
+ "Pn!2\"\"/#?$"
286
+ ];
226
287
 
227
288
  //#endregion
228
- export { CommandValidationLogic };
289
+ export { CommandValidationLogic, __ΩCommandValidationLogicProps };
229
290
  //# sourceMappingURL=command-validation-logic.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"command-validation-logic.mjs","names":[],"sources":["../../src/components/command-validation-logic.tsx"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Shell Shock\n\n This code was released as part of the Shell Shock project. Shell Shock\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/shell-shock.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/shell-shock\n Documentation: https://docs.stormsoftware.com/projects/shell-shock\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport { code, For, Show } from \"@alloy-js/core\";\nimport {\n ElseIfClause,\n IfStatement,\n VarDeclaration\n} from \"@alloy-js/typescript\";\nimport { Spacing } from \"@powerlines/plugin-alloy/core/components/spacing\";\nimport { camelCase } from \"@stryke/string-format/camel-case\";\nimport { list } from \"@stryke/string-format/list\";\nimport type {\n CommandTree,\n NumberCommandParameter,\n StringCommandParameter\n} from \"../types\";\nimport { CommandParameterKinds } from \"../types\";\n\nexport interface CommandValidationLogicProps {\n command: CommandTree;\n}\n\n/**\n * A component that generates command validation logic for required options and arguments.\n */\nexport function CommandValidationLogic(props: CommandValidationLogicProps) {\n const { command } = props;\n\n return (\n <>\n <VarDeclaration name=\"failures\" type=\"string[]\" initializer={code`[];`} />\n <hbr />\n <For each={Object.values(command.options ?? {})} doubleHardline>\n {option => (\n <>\n <Show when={!option.optional}>\n <IfStatement\n condition={code`!options${\n option.name.includes(\"?\")\n ? `[\"${option.name}\"]`\n : `.${camelCase(option.name)}`\n }`}>\n {code`failures.push(\"Missing required ${option.name} option\");`}\n </IfStatement>\n <Show when={option.variadic}>\n <ElseIfClause\n condition={code`options${\n option.name.includes(\"?\")\n ? `[\"${option.name}\"]`\n : `.${camelCase(option.name)}`\n }.length === 0`}>\n {code`failures.push(\"No values were provided to the required ${\n option.name\n } array option\");`}\n </ElseIfClause>\n </Show>\n </Show>\n <Show when={option.kind === CommandParameterKinds.number}>\n <Show\n when={option.variadic}\n fallback={\n <IfStatement\n condition={code`options${\n option.name.includes(\"?\")\n ? `[\"${option.name}\"]`\n : `.${camelCase(option.name)}`\n } && Number.isNaN(options${\n option.name.includes(\"?\")\n ? `[\"${option.name}\"]`\n : `.${camelCase(option.name)}`\n })`}>\n {code`failures.push(\"Invalid numeric value provided for the ${\n option.name\n } option\");`}\n </IfStatement>\n }>\n <IfStatement\n condition={code`options${\n option.name.includes(\"?\")\n ? `[\"${option.name}\"]`\n : `.${camelCase(option.name)}`\n }.some(value => Number.isNaN(value))`}>\n {code`failures.push(\"Invalid numeric value provided in the ${\n option.name\n } array option\");`}\n </IfStatement>\n </Show>\n </Show>\n <Show\n when={\n (option.kind === CommandParameterKinds.string ||\n option.kind === CommandParameterKinds.number) &&\n option.choices &&\n option.choices.length > 0\n }>\n <Show\n when={!option.variadic}\n fallback={\n <Show\n when={!option.optional}\n fallback={\n <IfStatement\n condition={code`!options${\n option.name.includes(\"?\")\n ? `[\"${option.name}\"]`\n : `.${camelCase(option.name)}`\n }.every(value => [${(\n option as\n | StringCommandParameter\n | NumberCommandParameter\n ).choices\n ?.map(choice =>\n option.kind === CommandParameterKinds.string\n ? `\"${choice}\"`\n : choice\n )\n .join(\", \")}].includes(value))`}>\n {code`failures.push(\\`Invalid value provided for the ${\n option.name\n } option - valid values include: ${list(\n (\n option as\n | StringCommandParameter\n | NumberCommandParameter\n )?.choices?.map(choice => String(choice)) ?? []\n )}; provided: \\${options${\n option.name.includes(\"?\")\n ? `[\"${option.name}\"]`\n : `.${camelCase(option.name)}`\n }}\\`);`}\n </IfStatement>\n }>\n <ElseIfClause\n condition={code`!options${\n option.name.includes(\"?\")\n ? `[\"${option.name}\"]`\n : `.${camelCase(option.name)}`\n }.every(value => [${(\n option as\n | StringCommandParameter\n | NumberCommandParameter\n ).choices\n ?.map(choice =>\n option.kind === CommandParameterKinds.string\n ? `\"${choice}\"`\n : choice\n )\n .join(\", \")}].includes(value))`}>\n {code`failures.push(\\`Invalid value provided for the ${\n option.name\n } option - valid values include: ${list(\n (\n option as\n | StringCommandParameter\n | NumberCommandParameter\n )?.choices?.map(choice => String(choice)) ?? []\n )}; provided: \\${options${\n option.name.includes(\"?\")\n ? `[\"${option.name}\"]`\n : `.${camelCase(option.name)}`\n }}\\`);`}\n </ElseIfClause>\n </Show>\n }>\n <Show\n when={!option.optional}\n fallback={\n <IfStatement\n condition={code`![${(\n option as\n | StringCommandParameter\n | NumberCommandParameter\n ).choices\n ?.map(choice =>\n option.kind === CommandParameterKinds.string\n ? `\"${choice}\"`\n : choice\n )\n .join(\", \")}].includes(options${\n option.name.includes(\"?\")\n ? `[\"${option.name}\"]`\n : `.${camelCase(option.name)}`\n })`}>\n {code`failures.push(\\`Invalid value provided for the ${\n option.name\n } option - valid values include: ${list(\n (\n option as\n | StringCommandParameter\n | NumberCommandParameter\n )?.choices?.map(choice => String(choice)) ?? []\n )}; provided: \\${options${\n option.name.includes(\"?\")\n ? `[\"${option.name}\"]`\n : `.${camelCase(option.name)}`\n }}\\`);`}\n </IfStatement>\n }>\n <ElseIfClause\n condition={code`![${(\n option as StringCommandParameter | NumberCommandParameter\n ).choices\n ?.map(choice =>\n option.kind === CommandParameterKinds.string\n ? `\"${choice}\"`\n : choice\n )\n .join(\", \")}].includes(options${\n option.name.includes(\"?\")\n ? `[\"${option.name}\"]`\n : `.${camelCase(option.name)}`\n })`}>\n {code`failures.push(\\`Invalid value provided for the ${\n option.name\n } option - valid values include: ${list(\n (\n option as\n | StringCommandParameter\n | NumberCommandParameter\n )?.choices?.map(choice => String(choice)) ?? []\n )}; provided: \\${options${\n option.name.includes(\"?\")\n ? `[\"${option.name}\"]`\n : `.${camelCase(option.name)}`\n }}\\`);`}\n </ElseIfClause>\n </Show>\n </Show>\n </Show>\n </>\n )}\n </For>\n <Spacing />\n <For each={command.args} doubleHardline>\n {argument => (\n <>\n <Show when={!argument.optional}>\n <IfStatement condition={code`!${camelCase(argument.name)}`}>\n {code`failures.push(\"Missing required \\\\\"${\n argument.name\n }\\\\\" positional argument\");`}\n </IfStatement>\n <Show\n when={\n (argument.kind === CommandParameterKinds.string ||\n argument.kind === CommandParameterKinds.number) &&\n argument.variadic\n }>\n <ElseIfClause\n condition={code`${camelCase(argument.name)}.length === 0`}>\n {code`failures.push(\"No values were provided to the required ${\n argument.name\n } array positional argument\");`}\n </ElseIfClause>\n </Show>\n </Show>\n <Show when={argument.kind === CommandParameterKinds.number}>\n <Show\n when={(argument as NumberCommandParameter).variadic}\n fallback={\n <IfStatement\n condition={code`${camelCase(\n argument.name\n )} && Number.isNaN(${camelCase(argument.name)})`}>\n {code`failures.push(\"Invalid numeric value provided for the ${\n argument.name\n } positional argument\");`}\n </IfStatement>\n }>\n <IfStatement\n condition={code`${camelCase(argument.name)}.some(value => Number.isNaN(value))`}>\n {code`failures.push(\"Invalid numeric value provided in the ${\n argument.name\n } array positional argument\");`}\n </IfStatement>\n </Show>\n </Show>\n </>\n )}\n </For>\n </>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"command-validation-logic.mjs","names":[],"sources":["../../src/components/command-validation-logic.tsx"],"sourcesContent":["/* -------------------------------------------------------------------\n\n ⚡ Storm Software - Shell Shock\n\n This code was released as part of the Shell Shock project. Shell Shock\n is maintained by Storm Software under the Apache-2.0 license, and is\n free for commercial and private use. For more information, please visit\n our licensing page at https://stormsoftware.com/licenses/projects/shell-shock.\n\n Website: https://stormsoftware.com\n Repository: https://github.com/storm-software/shell-shock\n Documentation: https://docs.stormsoftware.com/projects/shell-shock\n Contact: https://stormsoftware.com/contact\n\n SPDX-License-Identifier: Apache-2.0\n\n ------------------------------------------------------------------- */\n\nimport { code, For, Show } from \"@alloy-js/core\";\nimport {\n ElseIfClause,\n IfStatement,\n VarDeclaration\n} from \"@alloy-js/typescript\";\nimport { Spacing } from \"@powerlines/plugin-alloy/core/components/spacing\";\nimport { camelCase } from \"@stryke/string-format/camel-case\";\nimport { list } from \"@stryke/string-format/list\";\nimport type {\n CommandTree,\n NumberCommandParameter,\n StringCommandParameter\n} from \"../types\";\nimport { CommandParameterKinds } from \"../types\";\n\nexport interface CommandValidationLogicProps {\n command: CommandTree;\n}\n\n/**\n * A component that generates command validation logic for required options and arguments.\n */\nexport function CommandValidationLogic(props: CommandValidationLogicProps) {\n const { command } = props;\n\n return (\n <>\n <VarDeclaration name=\"failures\" type=\"string[]\" initializer={code`[];`} />\n <hbr />\n <For each={Object.values(command.options ?? {})} doubleHardline>\n {option => (\n <>\n <Show when={!option.optional}>\n <IfStatement\n condition={code`!options${\n option.name.includes(\"?\")\n ? `[\"${option.name}\"]`\n : `.${camelCase(option.name)}`\n }`}>\n {code`failures.push(\"Missing required \\\\\"${option.name}\\\\\" option\");`}\n </IfStatement>\n <Show when={option.variadic}>\n <ElseIfClause\n condition={code`options${\n option.name.includes(\"?\")\n ? `[\"${option.name}\"]`\n : `.${camelCase(option.name)}`\n }.length === 0`}>\n {code`failures.push(\"No values were provided to the required \\\\\"${\n option.name\n }\\\\\" array option\");`}\n </ElseIfClause>\n </Show>\n </Show>\n <Show when={option.kind === CommandParameterKinds.number}>\n <Show\n when={option.variadic}\n fallback={\n <IfStatement\n condition={code`options${\n option.name.includes(\"?\")\n ? `[\"${option.name}\"]`\n : `.${camelCase(option.name)}`\n } && Number.isNaN(options${\n option.name.includes(\"?\")\n ? `[\"${option.name}\"]`\n : `.${camelCase(option.name)}`\n })`}>\n {code`failures.push(\"Invalid numeric value provided for the \\\\\"${\n option.name\n }\\\\\" option\");`}\n </IfStatement>\n }>\n <IfStatement\n condition={code`options${\n option.name.includes(\"?\")\n ? `[\"${option.name}\"]`\n : `.${camelCase(option.name)}`\n }.some(value => Number.isNaN(value))`}>\n {code`failures.push(\"Invalid numeric value provided in the \\\\\"${\n option.name\n }\\\\\" array option\");`}\n </IfStatement>\n </Show>\n </Show>\n <Show\n when={\n (option.kind === CommandParameterKinds.string ||\n option.kind === CommandParameterKinds.number) &&\n option.choices &&\n option.choices.length > 0\n }>\n <Show\n when={!option.variadic}\n fallback={\n <Show\n when={!option.optional}\n fallback={\n <IfStatement\n condition={code`!options${\n option.name.includes(\"?\")\n ? `[\"${option.name}\"]`\n : `.${camelCase(option.name)}`\n }.every(value => [${(\n option as\n | StringCommandParameter\n | NumberCommandParameter\n ).choices\n ?.map(choice =>\n option.kind === CommandParameterKinds.string\n ? `\"${choice}\"`\n : choice\n )\n .join(\", \")}].includes(value))`}>\n {code`failures.push(\\`Invalid value provided for the \\\\\"${\n option.name\n }\\\\\" option - valid values include: ${list(\n (\n option as\n | StringCommandParameter\n | NumberCommandParameter\n )?.choices?.map(choice => String(choice)) ?? []\n )}; provided: \\${options${\n option.name.includes(\"?\")\n ? `[\"${option.name}\"]`\n : `.${camelCase(option.name)}`\n }}\\`);`}\n </IfStatement>\n }>\n <ElseIfClause\n condition={code`!options${\n option.name.includes(\"?\")\n ? `[\"${option.name}\"]`\n : `.${camelCase(option.name)}`\n }.every(value => [${(\n option as\n | StringCommandParameter\n | NumberCommandParameter\n ).choices\n ?.map(choice =>\n option.kind === CommandParameterKinds.string\n ? `\"${choice}\"`\n : choice\n )\n .join(\", \")}].includes(value))`}>\n {code`failures.push(\\`Invalid value provided for the \\\\\"${\n option.name\n }\\\\\" option - valid values include: ${list(\n (\n option as\n | StringCommandParameter\n | NumberCommandParameter\n )?.choices?.map(choice => String(choice)) ?? []\n )}; provided: \\${options${\n option.name.includes(\"?\")\n ? `[\"${option.name}\"]`\n : `.${camelCase(option.name)}`\n }}\\`);`}\n </ElseIfClause>\n </Show>\n }>\n <Show\n when={!option.optional}\n fallback={\n <IfStatement\n condition={code`![${(\n option as\n | StringCommandParameter\n | NumberCommandParameter\n ).choices\n ?.map(choice =>\n option.kind === CommandParameterKinds.string\n ? `\"${choice}\"`\n : choice\n )\n .join(\", \")}].includes(options${\n option.name.includes(\"?\")\n ? `[\"${option.name}\"]`\n : `.${camelCase(option.name)}`\n })`}>\n {code`failures.push(\\`Invalid value provided for the \\\\\"${\n option.name\n }\\\\\" option - valid values include: ${list(\n (\n option as\n | StringCommandParameter\n | NumberCommandParameter\n )?.choices?.map(choice => String(choice)) ?? []\n )}; provided: \\${options${\n option.name.includes(\"?\")\n ? `[\"${option.name}\"]`\n : `.${camelCase(option.name)}`\n }}\\`);`}\n </IfStatement>\n }>\n <ElseIfClause\n condition={code`![${(\n option as StringCommandParameter | NumberCommandParameter\n ).choices\n ?.map(choice =>\n option.kind === CommandParameterKinds.string\n ? `\"${choice}\"`\n : choice\n )\n .join(\", \")}].includes(options${\n option.name.includes(\"?\")\n ? `[\"${option.name}\"]`\n : `.${camelCase(option.name)}`\n })`}>\n {code`failures.push(\\`Invalid value provided for the \\\\\"${\n option.name\n }\\\\\" option - valid values include: ${list(\n (\n option as\n | StringCommandParameter\n | NumberCommandParameter\n )?.choices?.map(choice => String(choice)) ?? []\n )}; provided: \\${options${\n option.name.includes(\"?\")\n ? `[\"${option.name}\"]`\n : `.${camelCase(option.name)}`\n }}\\`);`}\n </ElseIfClause>\n </Show>\n </Show>\n </Show>\n </>\n )}\n </For>\n <Spacing />\n <For each={command.args} doubleHardline>\n {argument => (\n <>\n <Show when={!argument.optional}>\n <IfStatement condition={code`!${camelCase(argument.name)}`}>\n {code`failures.push(\"Missing required \\\\\"${\n argument.name\n }\\\\\" positional argument\");`}\n </IfStatement>\n <Show when={argument.variadic}>\n <ElseIfClause\n condition={code`${camelCase(argument.name)}.length === 0`}>\n {code`failures.push(\"No values were provided to the required \\\\\"${\n argument.name\n }\\\\\" array positional argument\");`}\n </ElseIfClause>\n </Show>\n </Show>\n <Show when={argument.kind === CommandParameterKinds.number}>\n <Show\n when={(argument as NumberCommandParameter).variadic}\n fallback={\n <IfStatement\n condition={code`${camelCase(\n argument.name\n )} && Number.isNaN(${camelCase(argument.name)})`}>\n {code`failures.push(\"Invalid numeric value provided for the \\\\\"${\n argument.name\n }\\\\\" positional argument\");`}\n </IfStatement>\n }>\n <IfStatement\n condition={code`${camelCase(argument.name)}.some(value => Number.isNaN(value))`}>\n {code`failures.push(\"Invalid numeric value provided in the \\\\\"${\n argument.name\n }\\\\\" array positional argument\");`}\n </IfStatement>\n </Show>\n </Show>\n </>\n )}\n </For>\n </>\n );\n}\n"],"mappings":"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"}