@shell-shock/core 0.12.0 → 0.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/dist/components/docs.d.cts +5 -5
  2. package/dist/components/docs.d.mts +5 -5
  3. package/dist/components/docs.d.mts.map +1 -1
  4. package/dist/components/helpers.d.cts +7 -7
  5. package/dist/components/helpers.d.cts.map +1 -1
  6. package/dist/components/helpers.d.mts +7 -7
  7. package/dist/components/options-parser-logic.cjs.map +1 -1
  8. package/dist/components/options-parser-logic.d.cts +11 -11
  9. package/dist/components/options-parser-logic.d.cts.map +1 -1
  10. package/dist/components/options-parser-logic.d.mts +2 -2
  11. package/dist/components/options-parser-logic.mjs.map +1 -1
  12. package/dist/components/usage.d.mts +2 -2
  13. package/dist/components/usage.d.mts.map +1 -1
  14. package/dist/components/utils-builtin.cjs +5 -9
  15. package/dist/components/utils-builtin.cjs.map +1 -1
  16. package/dist/components/utils-builtin.d.cts +9 -9
  17. package/dist/components/utils-builtin.d.cts.map +1 -1
  18. package/dist/components/utils-builtin.d.mts +9 -9
  19. package/dist/components/utils-builtin.d.mts.map +1 -1
  20. package/dist/components/utils-builtin.mjs +5 -9
  21. package/dist/components/utils-builtin.mjs.map +1 -1
  22. package/dist/helpers/automd.cjs +1 -1
  23. package/dist/helpers/automd.cjs.map +1 -1
  24. package/dist/helpers/automd.mjs +1 -1
  25. package/dist/helpers/automd.mjs.map +1 -1
  26. package/dist/plugin-utils/get-command-tree.cjs +26 -0
  27. package/dist/plugin-utils/get-command-tree.cjs.map +1 -1
  28. package/dist/plugin-utils/get-command-tree.d.cts +8 -1
  29. package/dist/plugin-utils/get-command-tree.d.cts.map +1 -1
  30. package/dist/plugin-utils/get-command-tree.d.mts +8 -1
  31. package/dist/plugin-utils/get-command-tree.d.mts.map +1 -1
  32. package/dist/plugin-utils/get-command-tree.mjs +26 -1
  33. package/dist/plugin-utils/get-command-tree.mjs.map +1 -1
  34. package/dist/plugin-utils/index.cjs +2 -1
  35. package/dist/plugin-utils/index.d.cts +2 -2
  36. package/dist/plugin-utils/index.d.mts +2 -2
  37. package/dist/plugin-utils/index.mjs +2 -2
  38. package/dist/plugin-utils/type-checks.d.cts.map +1 -1
  39. package/dist/plugin-utils/type-checks.d.mts.map +1 -1
  40. package/dist/plugin.cjs +1 -1
  41. package/dist/plugin.mjs +1 -1
  42. package/dist/resolver/helpers.cjs +1 -1
  43. package/dist/resolver/helpers.cjs.map +1 -1
  44. package/dist/resolver/helpers.mjs +1 -1
  45. package/dist/resolver/helpers.mjs.map +1 -1
  46. package/dist/resolver/module.cjs +2 -2
  47. package/dist/resolver/module.cjs.map +1 -1
  48. package/dist/resolver/module.mjs +2 -2
  49. package/dist/resolver/module.mjs.map +1 -1
  50. package/package.json +11 -11
@@ -1,5 +1,5 @@
1
1
  import { CommandTree } from "../types/command.cjs";
2
- import * as _alloy_js_core5 from "@alloy-js/core";
2
+ import * as _alloy_js_core7 from "@alloy-js/core";
3
3
  import { MarkdownFileProps } from "@powerlines/plugin-alloy/markdown/components/markdown-file";
4
4
 
5
5
  //#region src/components/docs.d.ts
@@ -12,7 +12,7 @@ interface CommandOptionsDocsProps {
12
12
  /**
13
13
  * Generates the options markdown documentation for a command.
14
14
  */
15
- declare function CommandOptionsDocs(props: CommandOptionsDocsProps): _alloy_js_core5.Children;
15
+ declare function CommandOptionsDocs(props: CommandOptionsDocsProps): _alloy_js_core7.Children;
16
16
  interface CommandDocsUsageExampleProps {
17
17
  /**
18
18
  * The package manager to generate the usage example for.
@@ -31,7 +31,7 @@ interface CommandDocsUsageExampleProps {
31
31
  /**
32
32
  * Generates the markdown documentation for a command.
33
33
  */
34
- declare function CommandDocsUsageExample(props: CommandDocsUsageExampleProps): _alloy_js_core5.Children;
34
+ declare function CommandDocsUsageExample(props: CommandDocsUsageExampleProps): _alloy_js_core7.Children;
35
35
  interface CommandDocsProps {
36
36
  /**
37
37
  * The heading level offset to apply to the generated documentation.
@@ -56,7 +56,7 @@ interface CommandDocsProps {
56
56
  /**
57
57
  * Generates the markdown documentation for a command.
58
58
  */
59
- declare function CommandDocs(props: CommandDocsProps): _alloy_js_core5.Children;
59
+ declare function CommandDocs(props: CommandDocsProps): _alloy_js_core7.Children;
60
60
  interface CommandDocsFileProps extends Partial<MarkdownFileProps> {
61
61
  /**
62
62
  * The heading level offset to apply to the generated documentation.
@@ -75,7 +75,7 @@ interface CommandDocsFileProps extends Partial<MarkdownFileProps> {
75
75
  /**
76
76
  * Generates the markdown documentation file for a command.
77
77
  */
78
- declare function CommandDocsFile(props: CommandDocsFileProps): _alloy_js_core5.Children;
78
+ declare function CommandDocsFile(props: CommandDocsFileProps): _alloy_js_core7.Children;
79
79
  //#endregion
80
80
  export { CommandDocs, CommandDocsFile, CommandDocsFileProps, CommandDocsProps, CommandDocsUsageExample, CommandDocsUsageExampleProps, CommandOptionsDocs, CommandOptionsDocsProps };
81
81
  //# sourceMappingURL=docs.d.cts.map
@@ -1,5 +1,5 @@
1
1
  import { CommandTree } from "../types/command.mjs";
2
- import * as _alloy_js_core0 from "@alloy-js/core";
2
+ import * as _alloy_js_core14 from "@alloy-js/core";
3
3
  import { MarkdownFileProps } from "@powerlines/plugin-alloy/markdown/components/markdown-file";
4
4
 
5
5
  //#region src/components/docs.d.ts
@@ -12,7 +12,7 @@ interface CommandOptionsDocsProps {
12
12
  /**
13
13
  * Generates the options markdown documentation for a command.
14
14
  */
15
- declare function CommandOptionsDocs(props: CommandOptionsDocsProps): _alloy_js_core0.Children;
15
+ declare function CommandOptionsDocs(props: CommandOptionsDocsProps): _alloy_js_core14.Children;
16
16
  interface CommandDocsUsageExampleProps {
17
17
  /**
18
18
  * The package manager to generate the usage example for.
@@ -31,7 +31,7 @@ interface CommandDocsUsageExampleProps {
31
31
  /**
32
32
  * Generates the markdown documentation for a command.
33
33
  */
34
- declare function CommandDocsUsageExample(props: CommandDocsUsageExampleProps): _alloy_js_core0.Children;
34
+ declare function CommandDocsUsageExample(props: CommandDocsUsageExampleProps): _alloy_js_core14.Children;
35
35
  interface CommandDocsProps {
36
36
  /**
37
37
  * The heading level offset to apply to the generated documentation.
@@ -56,7 +56,7 @@ interface CommandDocsProps {
56
56
  /**
57
57
  * Generates the markdown documentation for a command.
58
58
  */
59
- declare function CommandDocs(props: CommandDocsProps): _alloy_js_core0.Children;
59
+ declare function CommandDocs(props: CommandDocsProps): _alloy_js_core14.Children;
60
60
  interface CommandDocsFileProps extends Partial<MarkdownFileProps> {
61
61
  /**
62
62
  * The heading level offset to apply to the generated documentation.
@@ -75,7 +75,7 @@ interface CommandDocsFileProps extends Partial<MarkdownFileProps> {
75
75
  /**
76
76
  * Generates the markdown documentation file for a command.
77
77
  */
78
- declare function CommandDocsFile(props: CommandDocsFileProps): _alloy_js_core0.Children;
78
+ declare function CommandDocsFile(props: CommandDocsFileProps): _alloy_js_core14.Children;
79
79
  //#endregion
80
80
  export { CommandDocs, CommandDocsFile, CommandDocsFileProps, CommandDocsProps, CommandDocsUsageExample, CommandDocsUsageExampleProps, CommandOptionsDocs, CommandOptionsDocsProps };
81
81
  //# sourceMappingURL=docs.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"docs.d.mts","names":[],"sources":["../../src/components/docs.tsx"],"sourcesContent":[],"mappings":";;;;;UAkCiB,uBAAA;;;AAAjB;EAUgB,OAAA,EANL,WAMK;AAwBhB;AAoBA;AAsBA;;AAqB2B,iBAvFX,kBAAA,CAuFW,KAAA,EAvFe,uBAuFf,CAAA,EAvFsC,eAAA,CAAA,QAuFtC;AAAT,UA/DD,4BAAA,CA+DC;EAAQ;AAM1B;AAwCA;;;;;AAoBA;;;;;WAnHW;;;;;iBAMK,uBAAA,QAA+B,+BAA4B,eAAA,CAAA;UAsB1D,gBAAA;;;;;;;;;;;;;WAcN;;;;;;kBAOO,SAAS;;;;;iBAMX,WAAA,QAAmB,mBAAgB,eAAA,CAAA;UAwClC,oBAAA,SAA6B,QAAQ;;;;;;;;;;;;;WAc3C;;;;;iBAMK,eAAA,QAAuB,uBAAoB,eAAA,CAAA"}
1
+ {"version":3,"file":"docs.d.mts","names":[],"sources":["../../src/components/docs.tsx"],"sourcesContent":[],"mappings":";;;;;UAkCiB,uBAAA;;;AAAjB;EAUgB,OAAA,EANL,WAMK;AAwBhB;AAoBA;AAsBA;;AAqB2B,iBAvFX,kBAAA,CAuFW,KAAA,EAvFe,uBAuFf,CAAA,EAvFsC,gBAAA,CAAA,QAuFtC;AAAT,UA/DD,4BAAA,CA+DC;EAAQ;AAM1B;AAwCA;;;;;AAoBA;;;;;WAnHW;;;;;iBAMK,uBAAA,QAA+B,+BAA4B,gBAAA,CAAA;UAsB1D,gBAAA;;;;;;;;;;;;;WAcN;;;;;;kBAOO,SAAS;;;;;iBAMX,WAAA,QAAmB,mBAAgB,gBAAA,CAAA;UAwClC,oBAAA,SAA6B,QAAQ;;;;;;;;;;;;;WAc3C;;;;;iBAMK,eAAA,QAAuB,uBAAoB,gBAAA,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import { CommandParameter } from "../types/command.cjs";
2
2
  import "../types/index.cjs";
3
- import * as _alloy_js_core0 from "@alloy-js/core";
3
+ import * as _alloy_js_core11 from "@alloy-js/core";
4
4
 
5
5
  //#region src/components/helpers.d.ts
6
6
  interface BooleanInputParserLogicProps {
@@ -9,35 +9,35 @@ interface BooleanInputParserLogicProps {
9
9
  /**
10
10
  * Parses a string input into a boolean value, interpreting common truthy and falsy string representations.
11
11
  */
12
- declare function BooleanInputParserLogic(props: BooleanInputParserLogicProps): _alloy_js_core0.Children;
12
+ declare function BooleanInputParserLogic(props: BooleanInputParserLogicProps): _alloy_js_core11.Children;
13
13
  /**
14
14
  * Write the logic to determine if the application is running in debug mode.
15
15
  *
16
16
  * @remarks
17
17
  * This is used to conditionally include debug-only logic in the generated application, such as additional logging or development tools. The logic should check for common indicators of debug mode, such as environment variables or the presence of a debugger.
18
18
  */
19
- declare function IsDebug(): _alloy_js_core0.Children;
19
+ declare function IsDebug(): _alloy_js_core11.Children;
20
20
  /**
21
21
  * Write the logic to determine if the application is **not** running in debug mode.
22
22
  */
23
- declare function IsNotDebug(): _alloy_js_core0.Children;
23
+ declare function IsNotDebug(): _alloy_js_core11.Children;
24
24
  /**
25
25
  * Write the logic to determine if the application is running in verbose mode.
26
26
  *
27
27
  * @remarks
28
28
  * This is used to conditionally include verbose-only logic in the generated application, such as additional logging or detailed output. The logic should check for common indicators of verbose mode, such as environment variables or command-line flags.
29
29
  */
30
- declare function IsVerbose(): _alloy_js_core0.Children;
30
+ declare function IsVerbose(): _alloy_js_core11.Children;
31
31
  /**
32
32
  * Write the logic to determine if the application is **not** running in verbose mode.
33
33
  */
34
- declare function IsNotVerbose(): _alloy_js_core0.Children;
34
+ declare function IsNotVerbose(): _alloy_js_core11.Children;
35
35
  /**
36
36
  * Write the type declaration for a command parameter based on its configuration.
37
37
  */
38
38
  declare function CommandParameterType(props: {
39
39
  parameter: CommandParameter;
40
- }): _alloy_js_core0.Children;
40
+ }): _alloy_js_core11.Children;
41
41
  //#endregion
42
42
  export { BooleanInputParserLogic, BooleanInputParserLogicProps, CommandParameterType, IsDebug, IsNotDebug, IsNotVerbose, IsVerbose };
43
43
  //# sourceMappingURL=helpers.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.cts","names":[],"sources":["../../src/components/helpers.tsx"],"sourcesContent":[],"mappings":";;;;;UAsBiB,4BAAA;;;;AAAjB;AAOA;AA0BgB,iBA1BA,uBAAA,CA0BO,KAAA,EA1BwB,4BA0BxB,CAAA,EA1BoD,eAAA,CAAA,QA0BpD;AAOvB;AAgBA;AAaA;AAaA;;;iBAjDgB,OAAA,CAAA,GAAO,eAAA,CAAA;;;;iBAOP,UAAA,CAAA,GAAU,eAAA,CAAA;;;;;;;iBAgBV,SAAA,CAAA,GAAS,eAAA,CAAA;;;;iBAaT,YAAA,CAAA,GAAY,eAAA,CAAA;;;;iBAaZ,oBAAA;aAAyC;IAAgB,eAAA,CAAE"}
1
+ {"version":3,"file":"helpers.d.cts","names":[],"sources":["../../src/components/helpers.tsx"],"sourcesContent":[],"mappings":";;;;;UAsBiB,4BAAA;;;;AAAjB;AAOA;AA0BgB,iBA1BA,uBAAA,CA0BO,KAAA,EA1BwB,4BA0BxB,CAAA,EA1BoD,gBAAA,CAAA,QA0BpD;AAOvB;AAgBA;AAaA;AAaA;;;iBAjDgB,OAAA,CAAA,GAAO,gBAAA,CAAA;;;;iBAOP,UAAA,CAAA,GAAU,gBAAA,CAAA;;;;;;;iBAgBV,SAAA,CAAA,GAAS,gBAAA,CAAA;;;;iBAaT,YAAA,CAAA,GAAY,gBAAA,CAAA;;;;iBAaZ,oBAAA;aAAyC;IAAgB,gBAAA,CAAE"}
@@ -1,6 +1,6 @@
1
1
  import { CommandParameter } from "../types/command.mjs";
2
2
  import "../types/index.mjs";
3
- import * as _alloy_js_core3 from "@alloy-js/core";
3
+ import * as _alloy_js_core7 from "@alloy-js/core";
4
4
 
5
5
  //#region src/components/helpers.d.ts
6
6
  interface BooleanInputParserLogicProps {
@@ -9,35 +9,35 @@ interface BooleanInputParserLogicProps {
9
9
  /**
10
10
  * Parses a string input into a boolean value, interpreting common truthy and falsy string representations.
11
11
  */
12
- declare function BooleanInputParserLogic(props: BooleanInputParserLogicProps): _alloy_js_core3.Children;
12
+ declare function BooleanInputParserLogic(props: BooleanInputParserLogicProps): _alloy_js_core7.Children;
13
13
  /**
14
14
  * Write the logic to determine if the application is running in debug mode.
15
15
  *
16
16
  * @remarks
17
17
  * This is used to conditionally include debug-only logic in the generated application, such as additional logging or development tools. The logic should check for common indicators of debug mode, such as environment variables or the presence of a debugger.
18
18
  */
19
- declare function IsDebug(): _alloy_js_core3.Children;
19
+ declare function IsDebug(): _alloy_js_core7.Children;
20
20
  /**
21
21
  * Write the logic to determine if the application is **not** running in debug mode.
22
22
  */
23
- declare function IsNotDebug(): _alloy_js_core3.Children;
23
+ declare function IsNotDebug(): _alloy_js_core7.Children;
24
24
  /**
25
25
  * Write the logic to determine if the application is running in verbose mode.
26
26
  *
27
27
  * @remarks
28
28
  * This is used to conditionally include verbose-only logic in the generated application, such as additional logging or detailed output. The logic should check for common indicators of verbose mode, such as environment variables or command-line flags.
29
29
  */
30
- declare function IsVerbose(): _alloy_js_core3.Children;
30
+ declare function IsVerbose(): _alloy_js_core7.Children;
31
31
  /**
32
32
  * Write the logic to determine if the application is **not** running in verbose mode.
33
33
  */
34
- declare function IsNotVerbose(): _alloy_js_core3.Children;
34
+ declare function IsNotVerbose(): _alloy_js_core7.Children;
35
35
  /**
36
36
  * Write the type declaration for a command parameter based on its configuration.
37
37
  */
38
38
  declare function CommandParameterType(props: {
39
39
  parameter: CommandParameter;
40
- }): _alloy_js_core3.Children;
40
+ }): _alloy_js_core7.Children;
41
41
  //#endregion
42
42
  export { BooleanInputParserLogic, BooleanInputParserLogicProps, CommandParameterType, IsDebug, IsNotDebug, IsNotVerbose, IsVerbose };
43
43
  //# sourceMappingURL=helpers.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"options-parser-logic.cjs","names":["code","computed","For","Show","ElseClause","ElseIfClause","IfStatement","InterfaceDeclaration","InterfaceMember","VarDeclaration","Spacing","camelCase","constantCase","pascalCase","isSetString","computedOptions","getDynamicPathSegmentName","isDynamicPathSegment","CommandParameterKinds","BooleanInputParserLogic","CommandParameterType","DynamicSegmentsParserLogic","props","command","_$createComponent","each","segments","children","segment","index","when","name","type","_$createIntrinsic","condition","ArgumentsParserLogic","appSpecificEnvPrefix","isCaseSensitive","args","length","initializer","Object","values","options","map","option","toLowerCase","replaceAll","alias","a","join","hardline","arg","env","default","undefined","kind","string","number","variadic","fallback","_$memo","parameter","String","OptionsMember","doc","description","title","Boolean","optional","boolean","OptionsMemberParserLogic","equalsRegex","includes","choices","choice","isNegativeOf","OptionsMemberParserCondition","aliasProp","OptionsInterfaceDeclaration","value","OptionsParserLogic","entries","filter","JSON","stringify","Array","isArray","i","CommandParserLogic"],"sources":["../../src/components/options-parser-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, computed, For, Show } from \"@alloy-js/core\";\nimport {\n ElseClause,\n ElseIfClause,\n IfStatement,\n InterfaceDeclaration,\n InterfaceMember,\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 { constantCase } from \"@stryke/string-format/constant-case\";\nimport { pascalCase } from \"@stryke/string-format/pascal-case\";\nimport { isSetString } from \"@stryke/type-checks/is-set-string\";\nimport { computedOptions } from \"../contexts/options\";\nimport {\n getDynamicPathSegmentName,\n isDynamicPathSegment\n} from \"../plugin-utils/context-helpers\";\nimport type {\n BooleanCommandOption,\n CommandOption,\n CommandTree,\n NumberCommandParameter,\n StringCommandParameter\n} from \"../types/command\";\nimport { CommandParameterKinds } from \"../types/command\";\nimport { BooleanInputParserLogic, CommandParameterType } from \"./helpers\";\n\nexport interface DynamicSegmentsParserLogicProps {\n /**\n * The command to generate the dynamic path segments parser logic for. This is used to access the command options and parameters when generating the parser logic for dynamic path segments.\n */\n command: CommandTree;\n\n /**\n * Whether the command options should be parsed in a case-sensitive manner. This will affect how the generated code compares command-line arguments to option names and aliases.\n */\n isCaseSensitive: boolean;\n}\n\nexport function DynamicSegmentsParserLogic(\n props: DynamicSegmentsParserLogicProps\n) {\n const { command } = props;\n\n return (\n <For each={command.segments ?? []}>\n {(segment, index) => (\n <Show when={isDynamicPathSegment(segment)}>\n <VarDeclaration\n let\n name={camelCase(getDynamicPathSegmentName(segment))}\n type=\"string | undefined\"\n />\n <hbr />\n <IfStatement\n condition={code`args.length > ${2 + index} && args[${2 + index}]`}>\n {code`${camelCase(\n getDynamicPathSegmentName(segment)\n )} = args[${2 + index}];`}\n </IfStatement>\n <hbr />\n <hbr />\n </Show>\n )}\n </For>\n );\n}\n\nexport interface ArgumentsParserLogicProps {\n /**\n * The command to generate the positional parameters parser logic for.\n */\n command: CommandTree;\n\n /**\n * The environment variable prefix to use for options that have an associated environment variable. This prefix will be used in the generated code to access the environment variables (e.g., `env.${appSpecificEnvPrefix}_OPTION_NAME`).\n */\n appSpecificEnvPrefix: string;\n\n /**\n * Whether the command options should be parsed in a case-sensitive manner. This will affect how the generated code compares command-line arguments to option names and aliases.\n */\n isCaseSensitive: boolean;\n}\n\nexport function ArgumentsParserLogic(props: ArgumentsParserLogicProps) {\n const { command, appSpecificEnvPrefix, isCaseSensitive } = props;\n\n return (\n <Show when={command.args && command.args.length > 0}>\n <VarDeclaration\n let\n name=\"optionsIndex\"\n type=\"number\"\n initializer={code`Math.max(0, args.slice(${\n command.segments.length + 1\n }).findIndex(arg => arg.startsWith(\"-\") && /^(${Object.values(\n command.options ?? {}\n )\n .map(\n option =>\n `${\n isCaseSensitive || option.name.length === 1\n ? option.name\n : option.name\n .toLowerCase()\n .replaceAll(\"-\", \"\")\n .replaceAll(\"_\", \"\")\n }${option.alias && option.alias.length > 0 ? \"|\" : \"\"}${option.alias\n ?.map(a =>\n (isCaseSensitive || option.name.length === 1\n ? a\n : a\n .toLowerCase()\n .replaceAll(\"-\", \"\")\n .replaceAll(\"_\", \"\")) === \"?\"\n ? \"\\\\?\"\n : isCaseSensitive || option.name.length === 1\n ? a\n : a.toLowerCase().replaceAll(\"-\", \"\").replaceAll(\"_\", \"\")\n )\n .join(\"|\")}`\n )\n .join(\"|\")})=?.*$/.test(arg${\n isCaseSensitive\n ? \"\"\n : '.toLowerCase().replaceAll(\"-\", \"\").replaceAll(\"_\", \"\")'\n }))) + ${command.segments.length + 1};`}\n />\n <Spacing />\n <VarDeclaration\n let\n name=\"argsIndex\"\n type=\"number\"\n initializer={code`optionsIndex > ${\n command.segments.length + 1\n } ? ${command.segments.length + 1} : (Math.max(0, args.slice(optionsIndex).findLastIndex(arg => arg.startsWith(\"-\") && /^(${Object.values(\n command.options ?? {}\n )\n .map(\n option =>\n `${\n isCaseSensitive || option.name.length === 1\n ? option.name\n : option.name\n .toLowerCase()\n .replaceAll(\"-\", \"\")\n .replaceAll(\"_\", \"\")\n }${option.alias && option.alias.length > 0 ? \"|\" : \"\"}${option.alias\n ?.map(a =>\n (isCaseSensitive || option.name.length === 1\n ? a\n : a\n .toLowerCase()\n .replaceAll(\"-\", \"\")\n .replaceAll(\"_\", \"\")) === \"?\"\n ? \"\\\\?\"\n : isCaseSensitive || option.name.length === 1\n ? a\n : a.toLowerCase().replaceAll(\"-\", \"\").replaceAll(\"_\", \"\")\n )\n .join(\"|\")}`\n )\n .join(\"|\")})=?.*$/.test(arg${\n isCaseSensitive\n ? \"\"\n : '.toLowerCase().replaceAll(\"-\", \"\").replaceAll(\"_\", \"\")'\n }))) + ${command.segments.length + 1});`}\n />\n <Spacing />\n <For each={command.args ?? []} hardline>\n {(arg, index) => (\n <>\n <Show\n when={\n isSetString(arg.env) ||\n arg.default !== undefined ||\n ((arg.kind === CommandParameterKinds.string ||\n arg.kind === CommandParameterKinds.number) &&\n arg.variadic)\n }\n fallback={\n <>\n {code`let ${camelCase(arg.name)}!: `}\n <CommandParameterType parameter={arg} />\n {code`; `}\n </>\n }>\n <VarDeclaration\n let\n name={camelCase(arg.name)}\n type={<CommandParameterType parameter={arg} />}\n initializer={\n <>\n <Show when={isSetString(arg.env)}>\n {code`env.${appSpecificEnvPrefix}_${constantCase(String(arg.env))} ?? `}\n </Show>\n <Show\n when={arg.default !== undefined}\n fallback={\n (arg.kind === CommandParameterKinds.string ||\n arg.kind === CommandParameterKinds.number) &&\n arg.variadic\n ? code`[]`\n : code`undefined;`\n }>\n {arg.kind === CommandParameterKinds.string\n ? code`\"${arg.default}\"`\n : code`${arg.default}`}\n </Show>\n </>\n }\n />\n </Show>\n <Spacing />\n <IfStatement\n condition={code`argsIndex + ${index} < args.length && argsIndex + ${index} !== optionsIndex`}>\n {code`${camelCase(arg.name)} = `}\n <Show\n when={\n arg.kind === CommandParameterKinds.string ||\n arg.kind === CommandParameterKinds.number\n }\n fallback={\n <BooleanInputParserLogic\n name={`args[argsIndex + ${index}] `}\n />\n }>\n <Show\n when={\n (arg.kind === CommandParameterKinds.string ||\n arg.kind === CommandParameterKinds.number) &&\n arg.variadic\n }\n fallback={\n <Show\n when={arg.kind === CommandParameterKinds.number}\n fallback={code`args[argsIndex + ${index}]; `}>\n {code`Number(args[argsIndex + ${index}]); `}\n </Show>\n }>\n {code`args.slice(argsIndex + ${\n index\n }, (optionsIndex > argsIndex ? optionsIndex : args.length) - ${\n command.args.length - index\n }).join(\" \").split(\",\").map(item => item.trim().replace(/^(\"|')/, \"\").replace(/(\"|')$/, \"\")).filter(Boolean)`}\n </Show>\n </Show>\n </IfStatement>\n <Spacing />\n </>\n )}\n </For>\n </Show>\n );\n}\n\n/**\n * The command option interface property.\n */\nexport function OptionsMember({ option }: { option: CommandOption }) {\n const doc = option.description || `The ${option.title} command option.`;\n\n return (\n <>\n <Show when={Boolean(option.name)}>\n <Show when={option.kind === CommandParameterKinds.string}>\n <InterfaceMember\n name={option.name}\n doc={doc}\n type={<CommandParameterType parameter={option} />}\n optional={option.optional}\n />\n </Show>\n <Show when={option.kind === CommandParameterKinds.number}>\n <InterfaceMember\n name={option.name}\n doc={doc}\n type={<CommandParameterType parameter={option} />}\n optional={option.optional}\n />\n </Show>\n <Show when={option.kind === CommandParameterKinds.boolean}>\n <InterfaceMember\n name={option.name}\n doc={doc}\n type={<CommandParameterType parameter={option} />}\n optional={option.optional}\n />\n </Show>\n </Show>\n </>\n );\n}\n\nexport interface OptionsMemberParserLogicProps {\n /**\n * The option name to generate the parser logic for.\n */\n name: string;\n\n /**\n * The command option to generate the parser logic for.\n */\n option: CommandOption;\n\n /**\n * Whether the command options should be parsed in a case-sensitive manner. This will affect how the generated code compares command-line arguments to option names and aliases.\n *\n * @defaultValue false\n */\n isCaseSensitive: boolean;\n}\n\n/**\n * The command option property parser logic.\n */\nexport function OptionsMemberParserLogic(props: OptionsMemberParserLogicProps) {\n const { name, option, isCaseSensitive } = props;\n\n const equalsRegex = `/^--?(${\n isCaseSensitive || name.length === 1\n ? name\n : name.toLowerCase().replaceAll(\"-\", \"\").replaceAll(\"_\", \"\")\n }${option.alias && option.alias.length > 0 ? \"|\" : \"\"}${option.alias\n ?.map(a =>\n (isCaseSensitive || name.length === 1\n ? a\n : a.toLowerCase().replaceAll(\"-\", \"\").replaceAll(\"_\", \"\")) === \"?\"\n ? \"\\\\?\"\n : isCaseSensitive || name.length === 1\n ? a\n : a.toLowerCase().replaceAll(\"-\", \"\").replaceAll(\"_\", \"\")\n )\n .join(\"|\")})=/`;\n\n return (\n <>\n <Show\n when={\n option.kind === CommandParameterKinds.string ||\n option.kind === CommandParameterKinds.number\n }>\n <Show\n when={\n (option as StringCommandParameter | NumberCommandParameter).variadic\n }>\n <Show\n when={name.includes(\"?\") || name.includes(\"-\")}\n fallback={code`options.${name} ??= []; `}>\n {code`options[\"${name}\"] ??= []; `}\n </Show>\n <hbr />\n <IfStatement\n condition={`${equalsRegex}.test(${\n isCaseSensitive\n ? \"arg\"\n : '\"-\" + arg.toLowerCase().replaceAll(\"-\", \"\").replaceAll(\"_\", \"\")'\n })`}>\n <Show\n when={name.includes(\"?\") || name.includes(\"-\")}\n fallback={code`options.${name}.push(`}>\n {code`options[\"${name}\"].push(`}\n </Show>\n <Show when={option.kind === CommandParameterKinds.string}>\n {code`...arg.replace(${equalsRegex}, \"\").split(\",\").map(item => item.trim().replace(/^(\"|')/, \"\").replace(/(\"|')$/, \"\")).filter(Boolean) `}\n </Show>\n <Show when={option.kind === CommandParameterKinds.number}>\n {code`...arg.replace(${equalsRegex}, \"\").split(\",\").map(item => item.trim().replace(/^(\"|')/, \"\").replace(/(\"|')$/, \"\")).filter(Boolean).map(Number).filter(value => !Number.isNaN(value)) `}\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 {code` as ${(\n option as StringCommandParameter | NumberCommandParameter\n ).choices\n ?.map(choice => (isSetString(choice) ? `\"${choice}\"` : choice))\n .join(\" | \")} `}\n </Show>\n {code`); `}\n </IfStatement>\n <ElseIfClause condition={`args.length > i + 1`}>\n <Show\n when={name.includes(\"?\") || name.includes(\"-\")}\n fallback={code`options.${name}.push(`}>\n {code`options[\"${name}\"].push(`}\n </Show>\n <Show when={option.kind === CommandParameterKinds.string}>\n {code`...args[++i].split(\",\").map(item => item.trim().replace(/^(\"|')/, \"\").replace(/(\"|')$/, \"\")).filter(Boolean) `}\n </Show>\n <Show when={option.kind === CommandParameterKinds.number}>\n {code`...args[++i].split(\",\").map(item => item.trim().replace(/^(\"|')/, \"\").replace(/(\"|')$/, \"\")).filter(Boolean).map(Number).filter(value => !Number.isNaN(value)) `}\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 {code` as ${(\n option as StringCommandParameter | NumberCommandParameter\n ).choices\n ?.map(choice => (isSetString(choice) ? `\"${choice}\"` : choice))\n .join(\" | \")} `}\n </Show>\n {code`); `}\n </ElseIfClause>\n </Show>\n <Show\n when={\n !(option as StringCommandParameter | NumberCommandParameter)\n .variadic\n }>\n <IfStatement\n condition={`${equalsRegex}.test(${isCaseSensitive ? \"arg\" : '\"-\" + arg.toLowerCase().replaceAll(\"-\", \"\").replaceAll(\"_\", \"\")'})`}>\n <Show when={option.kind === CommandParameterKinds.string}>\n <Show\n when={name.includes(\"?\") || name.includes(\"-\")}\n fallback={code`options.${name}`}>\n {code`options[\"${name}\"]`}\n </Show>\n {code` = arg.replace(${equalsRegex}, \"\").trim().replace(/^(\"|')/, \"\").replace(/(\"|')$/, \"\")`}\n <Show\n when={\n (option as StringCommandParameter).choices &&\n (option as StringCommandParameter).choices!.length > 0\n }>\n {code` as ${(option as StringCommandParameter).choices\n ?.map(choice => `\"${choice}\"`)\n .join(\" | \")}`}\n </Show>\n {code`; `}\n </Show>\n <Show when={option.kind === CommandParameterKinds.number}>\n <VarDeclaration\n const\n name=\"value\"\n initializer={code` Number(arg.replace(${equalsRegex}, \"\").trim().replace(/^(\"|')/, \"\").replace(/(\"|')$/, \"\")); `}\n />\n <hbr />\n <IfStatement condition={`!Number.isNaN(value)`}>\n <Show\n when={name.includes(\"?\") || name.includes(\"-\")}\n fallback={code`options.${name}`}>\n {code`options[\"${name}\"]`}\n </Show>\n {code` = value`}\n <Show\n when={\n (option as NumberCommandParameter).choices &&\n (option as NumberCommandParameter).choices!.length > 0\n }>\n {code` as ${(option as NumberCommandParameter).choices?.join(\" | \")}`}\n </Show>\n {code`; `}\n </IfStatement>\n </Show>\n </IfStatement>\n <ElseIfClause condition={`args.length > i + 1`}>\n <Show when={option.kind === CommandParameterKinds.string}>\n <Show\n when={name.includes(\"?\") || name.includes(\"-\")}\n fallback={code`options.${name}`}>\n {code`options[\"${name}\"]`}\n </Show>\n {code` = args[++i].trim().replace(/^(\"|')/, \"\").replace(/(\"|')$/, \"\")`}\n <Show\n when={\n (option as StringCommandParameter).choices &&\n (option as StringCommandParameter).choices!.length > 0\n }>\n {code` as ${(option as StringCommandParameter).choices?.map(choice => `\"${choice}\"`).join(\" | \")}`}\n </Show>\n {code`; `}\n </Show>\n <Show when={option.kind === CommandParameterKinds.number}>\n <VarDeclaration\n const\n name=\"value\"\n initializer={code` Number(args[++i].trim().replace(/^(\"|')/, \"\").replace(/(\"|')$/, \"\")); `}\n />\n <hbr />\n <IfStatement condition={`!Number.isNaN(value)`}>\n <Show\n when={name.includes(\"?\") || name.includes(\"-\")}\n fallback={code`options.${name}`}>\n {code`options[\"${name}\"]`}\n </Show>\n {code` = value`}\n <Show\n when={\n (option as NumberCommandParameter).choices &&\n (option as NumberCommandParameter).choices!.length > 0\n }>\n {code` as ${(option as NumberCommandParameter).choices?.join(\" | \")}`}\n </Show>\n {code`; `}\n </IfStatement>\n </Show>\n </ElseIfClause>\n <hbr />\n </Show>\n </Show>\n <Show when={option.kind === CommandParameterKinds.boolean}>\n <IfStatement\n condition={`${equalsRegex}.test(${isCaseSensitive ? \"arg\" : '\"-\" + arg.toLowerCase().replaceAll(\"-\", \"\").replaceAll(\"_\", \"\")'})`}>\n <VarDeclaration\n const\n name=\"value\"\n initializer={code` arg.replace(${equalsRegex}, \"\").trim().replace(/^(\"|')/, \"\").replace(/(\"|')$/, \"\").toLowerCase(); `}\n />\n <hbr />\n <Show\n when={name.includes(\"?\") || name.includes(\"-\")}\n fallback={code`options.${name} = `}>\n {code`options[\"${name}\"] = `}\n </Show>\n <BooleanInputParserLogic name=\"value\" />\n </IfStatement>\n <ElseClause>\n <Show\n when={name.includes(\"?\") || name.includes(\"-\")}\n fallback={code`options.${name} = true; `}>\n {code`options[\"${name}\"] = true; `}\n </Show>\n </ElseClause>\n <Show when={Boolean((option as BooleanCommandOption).isNegativeOf)}>\n <hbr />\n <Show\n when={\n (option as BooleanCommandOption).isNegativeOf!.includes(\"?\") ||\n (option as BooleanCommandOption).isNegativeOf!.includes(\"-\")\n }\n fallback={code`options.${(option as BooleanCommandOption).isNegativeOf} = false; `}>\n {code`options[\"${(option as BooleanCommandOption).isNegativeOf}\"] = false; `}\n </Show>\n </Show>\n </Show>\n </>\n );\n}\n\nexport interface OptionsMemberParserConditionProps {\n /**\n * The option name to generate the parser logic for.\n */\n name: string;\n\n /**\n * Aliases for the option, which will also be parsed in the generated code. This will affect how the generated code compares command line arguments to option names and aliases.\n */\n alias?: string[];\n\n /**\n * Whether the command options should be parsed in a case-sensitive manner. This will affect how the generated code compares command line arguments to option names and aliases.\n *\n * @defaultValue false\n */\n isCaseSensitive: boolean;\n}\n\nexport function OptionsMemberParserCondition(\n props: OptionsMemberParserConditionProps\n) {\n const { name, alias: aliasProp, isCaseSensitive } = props;\n\n return (\n <>\n {code`${\n isCaseSensitive\n ? 'arg.startsWith(\"--'\n : 'arg.toLowerCase().replaceAll(\"-\", \"\").replaceAll(\"_\", \"\").startsWith(\"'\n }${isCaseSensitive ? name : name.toLowerCase().replaceAll(\"-\", \"\").replaceAll(\"_\", \"\")}=\") || ${\n isCaseSensitive\n ? \"arg\"\n : 'arg.toLowerCase().replaceAll(\"-\", \"\").replaceAll(\"_\", \"\")'\n } === \"${\n isCaseSensitive\n ? name\n : name.toLowerCase().replaceAll(\"-\", \"\").replaceAll(\"_\", \"\")\n }\" || ${\n isCaseSensitive\n ? 'arg.startsWith(\"-'\n : 'arg.toLowerCase().replaceAll(\"-\", \"\").replaceAll(\"_\", \"\").startsWith(\"'\n }${isCaseSensitive ? name : name.toLowerCase().replaceAll(\"-\", \"\").replaceAll(\"_\", \"\")}=\") || ${\n isCaseSensitive\n ? \"arg\"\n : 'arg.toLowerCase().replaceAll(\"-\", \"\").replaceAll(\"_\", \"\")'\n } === \"${\n isCaseSensitive\n ? name\n : name.toLowerCase().replaceAll(\"-\", \"\").replaceAll(\"_\", \"\")\n }\"`}\n <Show when={aliasProp && aliasProp.length > 0}>\n <For each={aliasProp ?? []}>\n {alias =>\n code` || ${\n isCaseSensitive || alias.length === 1\n ? 'arg.startsWith(\"--'\n : 'arg.toLowerCase().replaceAll(\"-\", \"\").replaceAll(\"_\", \"\").startsWith(\"'\n }${isCaseSensitive || alias.length === 1 ? alias : alias.toLowerCase().replaceAll(\"-\", \"\").replaceAll(\"_\", \"\")}=\") || ${\n isCaseSensitive || alias.length === 1\n ? \"arg\"\n : 'arg.toLowerCase().replaceAll(\"-\", \"\").replaceAll(\"_\", \"\")'\n } === \"${\n isCaseSensitive || alias.length === 1\n ? alias\n : alias.toLowerCase().replaceAll(\"-\", \"\").replaceAll(\"_\", \"\")\n }\" || ${\n isCaseSensitive || alias.length === 1\n ? 'arg.startsWith(\"-'\n : 'arg.toLowerCase().replaceAll(\"-\", \"\").replaceAll(\"_\", \"\").startsWith(\"'\n }${isCaseSensitive || alias.length === 1 ? alias : alias.toLowerCase().replaceAll(\"-\", \"\").replaceAll(\"_\", \"\")}=\") || ${\n isCaseSensitive || alias.length === 1\n ? \"arg\"\n : 'arg.toLowerCase().replaceAll(\"-\", \"\").replaceAll(\"_\", \"\")'\n } === \"${\n isCaseSensitive || alias.length === 1\n ? alias\n : alias.toLowerCase().replaceAll(\"-\", \"\").replaceAll(\"_\", \"\")\n }\"`\n }\n </For>\n </Show>\n </>\n );\n}\n\nexport function OptionsInterfaceDeclaration(props: { command: CommandTree }) {\n const { command } = props;\n\n const options = computed(() => computedOptions(command));\n\n return (\n <InterfaceDeclaration export name={`${pascalCase(command.name)}Options`}>\n <For each={Object.values(options.value)} hardline>\n {option => <OptionsMember option={option} />}\n </For>\n </InterfaceDeclaration>\n );\n}\n\nexport interface OptionsParserLogicProps {\n /**\n * The command to generate the options parser logic for.\n */\n command: CommandTree;\n\n /**\n * The environment variable prefix to use for options that have an associated environment variable. This prefix will be used in the generated code to access the environment variables (e.g., `env.${appSpecificEnvPrefix}_OPTION_NAME`).\n */\n appSpecificEnvPrefix: string;\n\n /**\n * Whether the command options should be parsed in a case-sensitive manner. This will affect how the generated code compares command-line arguments to option names and aliases.\n *\n * @defaultValue false\n */\n isCaseSensitive?: boolean;\n}\n\n/**\n * The command options parser logic.\n */\nexport function OptionsParserLogic(props: OptionsParserLogicProps) {\n const { command, appSpecificEnvPrefix, isCaseSensitive = false } = props;\n\n const options = computed(() => computedOptions(command));\n\n return (\n <>\n <VarDeclaration\n const\n name=\"options\"\n initializer={code` {\n ${Object.entries(options.value)\n .filter(\n ([, option]) =>\n option.env ||\n option.default !== undefined ||\n ((option.kind === CommandParameterKinds.string ||\n option.kind === CommandParameterKinds.number) &&\n option.variadic)\n )\n .map(([name, option]) => {\n if (option.kind === CommandParameterKinds.string) {\n return ` ${\n name.includes(\"?\") || name.includes(\"-\")\n ? `\"${name}\"`\n : `${name}`\n }: ${\n option.env ? `env.${appSpecificEnvPrefix}_${option.env}` : \"\"\n }${\n option.variadic\n ? option.default !== undefined\n ? `${\n option.env ? \" ?? \" : \"\"\n }${JSON.stringify(option.default)}`\n : option.env\n ? \" ?? []\"\n : \"[]\"\n : option.default !== undefined\n ? `${option.env ? \" ?? \" : \"\"}\"${option.default}\"`\n : \"\"\n }, `;\n } else if (option.kind === CommandParameterKinds.number) {\n return ` ${name.includes(\"?\") || name.includes(\"-\") ? `\"${name}\"` : `${name}`}: ${\n option.env ? `env.${appSpecificEnvPrefix}_${option.env}` : \"\"\n }${\n option.variadic\n ? option.default && Array.isArray(option.default)\n ? `${\n option.env ? \" ?? \" : \"\"\n }${JSON.stringify(option.default)}`\n : option.env\n ? \" ?? []\"\n : \"[]\"\n : option.default !== undefined\n ? `${option.env ? \" ?? \" : \"\"}${option.default}`\n : \"\"\n }, `;\n } else if (option.kind === CommandParameterKinds.boolean) {\n return ` ${name.includes(\"?\") || name.includes(\"-\") ? `\"${name}\"` : `${name}`}: ${\n option.env\n ? `env.${appSpecificEnvPrefix}_${option.env} ?? `\n : \"\"\n }${option.default ? \"true\" : \"false\"},`;\n }\n\n return \"\";\n })\n .join(\"\")}\n } as ${pascalCase(command.name)}Options;`}\n />\n <Spacing />\n {code`for (let i = 0; i < args.slice(${\n command.segments.filter(segment => isDynamicPathSegment(segment)).length\n }).length; i++) { `}\n <hbr />\n <VarDeclaration\n const\n name=\"arg\"\n type=\"string\"\n initializer={code` args[i].length > 3 && args[i].startsWith(\"--\")\n ? \\`--\\${args[i].slice(2).replaceAll(\"-\", \"\")${\n isCaseSensitive\n ? \"\"\n : '.toLowerCase().replaceAll(\"-\", \"\").replaceAll(\"_\", \"\")'\n }}\\`\n : args[i].length > 2 && args[i].startsWith(\"-\")\n ? \\`-\\${args[i].slice(1).replaceAll(\"-\", \"\")}\\`\n : args[i]; `}\n />\n <hbr />\n\n <For each={Object.entries(options.value)} hardline>\n {([name, option], i) => (\n <Show\n when={i === 0}\n fallback={\n <ElseIfClause\n condition={\n <>\n <OptionsMemberParserCondition\n name={name}\n alias={option.alias}\n isCaseSensitive={isCaseSensitive}\n />\n </>\n }>\n <OptionsMemberParserLogic\n name={name}\n option={option}\n isCaseSensitive={isCaseSensitive}\n />\n </ElseIfClause>\n }>\n <IfStatement\n condition={\n <OptionsMemberParserCondition\n name={name}\n alias={option.alias}\n isCaseSensitive={isCaseSensitive}\n />\n }>\n <OptionsMemberParserLogic\n name={name}\n option={option}\n isCaseSensitive={isCaseSensitive}\n />\n </IfStatement>\n </Show>\n )}\n </For>\n\n <hbr />\n {code` } `}\n <hbr />\n </>\n );\n}\n\nexport interface CommandParserLogicProps {\n /**\n * The command to generate the parser logic for.\n */\n command: CommandTree;\n\n /**\n * The environment variable prefix to use for options that have an associated environment variable. This prefix will be used in the generated code to access the environment variables (e.g., `env.${appSpecificEnvPrefix}_OPTION_NAME`).\n */\n appSpecificEnvPrefix: string;\n\n /**\n * Whether the command options should be parsed in a case-sensitive manner. This will affect how the generated code compares command-line arguments to option names and aliases.\n *\n * @defaultValue false\n */\n isCaseSensitive?: boolean;\n}\n\n/**\n * The command parser logic, which includes parsing dynamic path segments, positional parameters, and options.\n */\nexport function CommandParserLogic(props: CommandParserLogicProps) {\n const { command, appSpecificEnvPrefix, isCaseSensitive = false } = props;\n\n return (\n <>\n <DynamicSegmentsParserLogic\n command={command}\n isCaseSensitive={isCaseSensitive}\n />\n <Spacing />\n <OptionsParserLogic\n command={command}\n appSpecificEnvPrefix={appSpecificEnvPrefix}\n isCaseSensitive={isCaseSensitive}\n />\n <Spacing />\n <ArgumentsParserLogic\n command={command}\n appSpecificEnvPrefix={appSpecificEnvPrefix}\n isCaseSensitive={isCaseSensitive}\n />\n <Spacing />\n </>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"options-parser-logic.cjs","names":["code","computed","For","Show","ElseClause","ElseIfClause","IfStatement","InterfaceDeclaration","InterfaceMember","VarDeclaration","Spacing","camelCase","constantCase","pascalCase","isSetString","computedOptions","getDynamicPathSegmentName","isDynamicPathSegment","CommandParameterKinds","BooleanInputParserLogic","CommandParameterType","DynamicSegmentsParserLogic","props","command","_$createComponent","each","segments","children","segment","index","when","name","type","_$createIntrinsic","condition","ArgumentsParserLogic","appSpecificEnvPrefix","isCaseSensitive","args","length","initializer","Object","values","options","map","option","toLowerCase","replaceAll","alias","a","join","hardline","arg","env","default","undefined","kind","string","number","variadic","fallback","_$memo","parameter","String","OptionsMember","doc","description","title","Boolean","optional","boolean","OptionsMemberParserLogic","equalsRegex","includes","choices","choice","isNegativeOf","OptionsMemberParserCondition","aliasProp","OptionsInterfaceDeclaration","value","OptionsParserLogic","entries","filter","JSON","stringify","Array","isArray","i","CommandParserLogic"],"sources":["../../src/components/options-parser-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, computed, For, Show } from \"@alloy-js/core\";\nimport {\n ElseClause,\n ElseIfClause,\n IfStatement,\n InterfaceDeclaration,\n InterfaceMember,\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 { constantCase } from \"@stryke/string-format/constant-case\";\nimport { pascalCase } from \"@stryke/string-format/pascal-case\";\nimport { isSetString } from \"@stryke/type-checks/is-set-string\";\nimport { computedOptions } from \"../contexts/options\";\nimport {\n getDynamicPathSegmentName,\n isDynamicPathSegment\n} from \"../plugin-utils/context-helpers\";\nimport type {\n BooleanCommandOption,\n CommandOption,\n CommandTree,\n NumberCommandParameter,\n StringCommandParameter\n} from \"../types/command\";\nimport { CommandParameterKinds } from \"../types/command\";\nimport { BooleanInputParserLogic, CommandParameterType } from \"./helpers\";\n\nexport interface DynamicSegmentsParserLogicProps {\n /**\n * The command to generate the dynamic path segments parser logic for. This is used to access the command options and parameters when generating the parser logic for dynamic path segments.\n */\n command: CommandTree;\n\n /**\n * Whether the command options should be parsed in a case-sensitive manner. This will affect how the generated code compares command-line arguments to option names and aliases.\n */\n isCaseSensitive: boolean;\n}\n\nexport function DynamicSegmentsParserLogic(\n props: DynamicSegmentsParserLogicProps\n) {\n const { command } = props;\n\n return (\n <For each={command.segments ?? []}>\n {(segment, index) => (\n <Show when={isDynamicPathSegment(segment)}>\n <VarDeclaration\n let\n name={camelCase(getDynamicPathSegmentName(segment))}\n type=\"string | undefined\"\n />\n <hbr />\n <IfStatement\n condition={code`args.length > ${2 + index} && args[${2 + index}]`}>\n {code`${camelCase(\n getDynamicPathSegmentName(segment)\n )} = args[${2 + index}];`}\n </IfStatement>\n <hbr />\n <hbr />\n </Show>\n )}\n </For>\n );\n}\n\nexport interface ArgumentsParserLogicProps {\n /**\n * The command to generate the positional parameters parser logic for.\n */\n command: CommandTree;\n\n /**\n * The environment variable prefix to use for options that have an associated environment variable. This prefix will be used in the generated code to access the environment variables (e.g., `env.${appSpecificEnvPrefix}_OPTION_NAME`).\n */\n appSpecificEnvPrefix: string;\n\n /**\n * Whether the command options should be parsed in a case-sensitive manner. This will affect how the generated code compares command-line arguments to option names and aliases.\n */\n isCaseSensitive: boolean;\n}\n\nexport function ArgumentsParserLogic(props: ArgumentsParserLogicProps) {\n const { command, appSpecificEnvPrefix, isCaseSensitive } = props;\n\n return (\n <Show when={command.args && command.args.length > 0}>\n <VarDeclaration\n let\n name=\"optionsIndex\"\n type=\"number\"\n initializer={code`Math.max(0, args.slice(${\n command.segments.length + 1\n }).findIndex(arg => arg.startsWith(\"-\") && /^(${Object.values(\n command.options ?? {}\n )\n .map(\n option =>\n `${\n isCaseSensitive || option.name.length === 1\n ? option.name\n : option.name\n .toLowerCase()\n .replaceAll(\"-\", \"\")\n .replaceAll(\"_\", \"\")\n }${option.alias && option.alias.length > 0 ? \"|\" : \"\"}${option.alias\n ?.map(a =>\n (isCaseSensitive || option.name.length === 1\n ? a\n : a\n .toLowerCase()\n .replaceAll(\"-\", \"\")\n .replaceAll(\"_\", \"\")) === \"?\"\n ? \"\\\\?\"\n : isCaseSensitive || option.name.length === 1\n ? a\n : a.toLowerCase().replaceAll(\"-\", \"\").replaceAll(\"_\", \"\")\n )\n .join(\"|\")}`\n )\n .join(\"|\")})=?.*$/.test(arg${\n isCaseSensitive\n ? \"\"\n : '.toLowerCase().replaceAll(\"-\", \"\").replaceAll(\"_\", \"\")'\n }))) + ${command.segments.length + 1};`}\n />\n <Spacing />\n <VarDeclaration\n let\n name=\"argsIndex\"\n type=\"number\"\n initializer={code`optionsIndex > ${\n command.segments.length + 1\n } ? ${command.segments.length + 1} : (Math.max(0, args.slice(optionsIndex).findLastIndex(arg => arg.startsWith(\"-\") && /^(${Object.values(\n command.options ?? {}\n )\n .map(\n option =>\n `${\n isCaseSensitive || option.name.length === 1\n ? option.name\n : option.name\n .toLowerCase()\n .replaceAll(\"-\", \"\")\n .replaceAll(\"_\", \"\")\n }${option.alias && option.alias.length > 0 ? \"|\" : \"\"}${option.alias\n ?.map(a =>\n (isCaseSensitive || option.name.length === 1\n ? a\n : a\n .toLowerCase()\n .replaceAll(\"-\", \"\")\n .replaceAll(\"_\", \"\")) === \"?\"\n ? \"\\\\?\"\n : isCaseSensitive || option.name.length === 1\n ? a\n : a.toLowerCase().replaceAll(\"-\", \"\").replaceAll(\"_\", \"\")\n )\n .join(\"|\")}`\n )\n .join(\"|\")})=?.*$/.test(arg${\n isCaseSensitive\n ? \"\"\n : '.toLowerCase().replaceAll(\"-\", \"\").replaceAll(\"_\", \"\")'\n }))) + ${command.segments.length + 1});`}\n />\n <Spacing />\n <For each={command.args ?? []} hardline>\n {(arg, index) => (\n <>\n <Show\n when={\n isSetString(arg.env) ||\n arg.default !== undefined ||\n ((arg.kind === CommandParameterKinds.string ||\n arg.kind === CommandParameterKinds.number) &&\n arg.variadic)\n }\n fallback={\n <>\n {code`let ${camelCase(arg.name)}!: `}\n <CommandParameterType parameter={arg} />\n {code`; `}\n </>\n }>\n <VarDeclaration\n let\n name={camelCase(arg.name)}\n type={<CommandParameterType parameter={arg} />}\n initializer={\n <>\n <Show when={isSetString(arg.env)}>\n {code`env.${appSpecificEnvPrefix}_${constantCase(String(arg.env))} ?? `}\n </Show>\n <Show\n when={arg.default !== undefined}\n fallback={\n (arg.kind === CommandParameterKinds.string ||\n arg.kind === CommandParameterKinds.number) &&\n arg.variadic\n ? code`[]`\n : code`undefined;`\n }>\n {arg.kind === CommandParameterKinds.string\n ? code`\"${arg.default}\"`\n : code`${arg.default}`}\n </Show>\n </>\n }\n />\n </Show>\n <Spacing />\n <IfStatement\n condition={code`argsIndex + ${index} < args.length && argsIndex + ${index} !== optionsIndex`}>\n {code`${camelCase(arg.name)} = `}\n <Show\n when={\n arg.kind === CommandParameterKinds.string ||\n arg.kind === CommandParameterKinds.number\n }\n fallback={\n <BooleanInputParserLogic\n name={`args[argsIndex + ${index}] `}\n />\n }>\n <Show\n when={\n (arg.kind === CommandParameterKinds.string ||\n arg.kind === CommandParameterKinds.number) &&\n arg.variadic\n }\n fallback={\n <Show\n when={arg.kind === CommandParameterKinds.number}\n fallback={code`args[argsIndex + ${index}]; `}>\n {code`Number(args[argsIndex + ${index}]); `}\n </Show>\n }>\n {code`args.slice(argsIndex + ${\n index\n }, (optionsIndex > argsIndex ? optionsIndex : args.length) - ${\n command.args.length - index\n }).join(\" \").split(\",\").map(item => item.trim().replace(/^(\"|')/, \"\").replace(/(\"|')$/, \"\")).filter(Boolean)`}\n </Show>\n </Show>\n </IfStatement>\n <Spacing />\n </>\n )}\n </For>\n </Show>\n );\n}\n\n/**\n * The command option interface property.\n */\nexport function OptionsMember({ option }: { option: CommandOption }) {\n const doc = option.description || `The ${option.title} command option.`;\n\n return (\n <>\n <Show when={Boolean(option.name)}>\n <Show when={option.kind === CommandParameterKinds.string}>\n <InterfaceMember\n name={option.name}\n doc={doc}\n type={<CommandParameterType parameter={option} />}\n optional={option.optional}\n />\n </Show>\n <Show when={option.kind === CommandParameterKinds.number}>\n <InterfaceMember\n name={option.name}\n doc={doc}\n type={<CommandParameterType parameter={option} />}\n optional={option.optional}\n />\n </Show>\n <Show when={option.kind === CommandParameterKinds.boolean}>\n <InterfaceMember\n name={option.name}\n doc={doc}\n type={<CommandParameterType parameter={option} />}\n optional={option.optional}\n />\n </Show>\n </Show>\n </>\n );\n}\n\nexport interface OptionsMemberParserLogicProps {\n /**\n * The option name to generate the parser logic for.\n */\n name: string;\n\n /**\n * The command option to generate the parser logic for.\n */\n option: CommandOption;\n\n /**\n * Whether the command options should be parsed in a case-sensitive manner. This will affect how the generated code compares command-line arguments to option names and aliases.\n *\n * @defaultValue false\n */\n isCaseSensitive: boolean;\n}\n\n/**\n * The command option property parser logic.\n */\nexport function OptionsMemberParserLogic(props: OptionsMemberParserLogicProps) {\n const { name, option, isCaseSensitive } = props;\n\n const equalsRegex = `/^--?(${\n isCaseSensitive || name.length === 1\n ? name\n : name.toLowerCase().replaceAll(\"-\", \"\").replaceAll(\"_\", \"\")\n }${option.alias && option.alias.length > 0 ? \"|\" : \"\"}${option.alias\n ?.map(a =>\n (isCaseSensitive || name.length === 1\n ? a\n : a.toLowerCase().replaceAll(\"-\", \"\").replaceAll(\"_\", \"\")) === \"?\"\n ? \"\\\\?\"\n : isCaseSensitive || name.length === 1\n ? a\n : a.toLowerCase().replaceAll(\"-\", \"\").replaceAll(\"_\", \"\")\n )\n .join(\"|\")})=/`;\n\n return (\n <>\n <Show\n when={\n option.kind === CommandParameterKinds.string ||\n option.kind === CommandParameterKinds.number\n }>\n <Show\n when={\n (option as StringCommandParameter | NumberCommandParameter).variadic\n }>\n <Show\n when={name.includes(\"?\") || name.includes(\"-\")}\n fallback={code`options.${name} ??= []; `}>\n {code`options[\"${name}\"] ??= []; `}\n </Show>\n <hbr />\n <IfStatement\n condition={`${equalsRegex}.test(${\n isCaseSensitive\n ? \"arg\"\n : '\"-\" + arg.toLowerCase().replaceAll(\"-\", \"\").replaceAll(\"_\", \"\")'\n })`}>\n <Show\n when={name.includes(\"?\") || name.includes(\"-\")}\n fallback={code`options.${name}.push(`}>\n {code`options[\"${name}\"].push(`}\n </Show>\n <Show when={option.kind === CommandParameterKinds.string}>\n {code`...arg.replace(${equalsRegex}, \"\").split(\",\").map(item => item.trim().replace(/^(\"|')/, \"\").replace(/(\"|')$/, \"\")).filter(Boolean) `}\n </Show>\n <Show when={option.kind === CommandParameterKinds.number}>\n {code`...arg.replace(${equalsRegex}, \"\").split(\",\").map(item => item.trim().replace(/^(\"|')/, \"\").replace(/(\"|')$/, \"\")).filter(Boolean).map(Number).filter(value => !Number.isNaN(value)) `}\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 {code` as ${(\n option as StringCommandParameter | NumberCommandParameter\n ).choices\n ?.map(choice => (isSetString(choice) ? `\"${choice}\"` : choice))\n .join(\" | \")} `}\n </Show>\n {code`); `}\n </IfStatement>\n <ElseIfClause condition={`args.length > i + 1`}>\n <Show\n when={name.includes(\"?\") || name.includes(\"-\")}\n fallback={code`options.${name}.push(`}>\n {code`options[\"${name}\"].push(`}\n </Show>\n <Show when={option.kind === CommandParameterKinds.string}>\n {code`...args[++i].split(\",\").map(item => item.trim().replace(/^(\"|')/, \"\").replace(/(\"|')$/, \"\")).filter(Boolean) `}\n </Show>\n <Show when={option.kind === CommandParameterKinds.number}>\n {code`...args[++i].split(\",\").map(item => item.trim().replace(/^(\"|')/, \"\").replace(/(\"|')$/, \"\")).filter(Boolean).map(Number).filter(value => !Number.isNaN(value)) `}\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 {code` as ${(\n option as StringCommandParameter | NumberCommandParameter\n ).choices\n ?.map(choice => (isSetString(choice) ? `\"${choice}\"` : choice))\n .join(\" | \")} `}\n </Show>\n {code`); `}\n </ElseIfClause>\n </Show>\n <Show\n when={\n !(option as StringCommandParameter | NumberCommandParameter)\n .variadic\n }>\n <IfStatement\n condition={`${equalsRegex}.test(${isCaseSensitive ? \"arg\" : '\"-\" + arg.toLowerCase().replaceAll(\"-\", \"\").replaceAll(\"_\", \"\")'})`}>\n <Show when={option.kind === CommandParameterKinds.string}>\n <Show\n when={name.includes(\"?\") || name.includes(\"-\")}\n fallback={code`options.${name}`}>\n {code`options[\"${name}\"]`}\n </Show>\n {code` = arg.replace(${equalsRegex}, \"\").trim().replace(/^(\"|')/, \"\").replace(/(\"|')$/, \"\")`}\n <Show\n when={\n (option as StringCommandParameter).choices &&\n (option as StringCommandParameter).choices!.length > 0\n }>\n {code` as ${(option as StringCommandParameter).choices\n ?.map(choice => `\"${choice}\"`)\n .join(\" | \")}`}\n </Show>\n {code`; `}\n </Show>\n <Show when={option.kind === CommandParameterKinds.number}>\n <VarDeclaration\n const\n name=\"value\"\n initializer={code` Number(arg.replace(${equalsRegex}, \"\").trim().replace(/^(\"|')/, \"\").replace(/(\"|')$/, \"\")); `}\n />\n <hbr />\n <IfStatement condition={`!Number.isNaN(value)`}>\n <Show\n when={name.includes(\"?\") || name.includes(\"-\")}\n fallback={code`options.${name}`}>\n {code`options[\"${name}\"]`}\n </Show>\n {code` = value`}\n <Show\n when={\n (option as NumberCommandParameter).choices &&\n (option as NumberCommandParameter).choices!.length > 0\n }>\n {code` as ${(option as NumberCommandParameter).choices?.join(\" | \")}`}\n </Show>\n {code`; `}\n </IfStatement>\n </Show>\n </IfStatement>\n <ElseIfClause condition={`args.length > i + 1`}>\n <Show when={option.kind === CommandParameterKinds.string}>\n <Show\n when={name.includes(\"?\") || name.includes(\"-\")}\n fallback={code`options.${name}`}>\n {code`options[\"${name}\"]`}\n </Show>\n {code` = args[++i].trim().replace(/^(\"|')/, \"\").replace(/(\"|')$/, \"\")`}\n <Show\n when={\n (option as StringCommandParameter).choices &&\n (option as StringCommandParameter).choices!.length > 0\n }>\n {code` as ${(option as StringCommandParameter).choices?.map(choice => `\"${choice}\"`).join(\" | \")}`}\n </Show>\n {code`; `}\n </Show>\n <Show when={option.kind === CommandParameterKinds.number}>\n <VarDeclaration\n const\n name=\"value\"\n initializer={code` Number(args[++i].trim().replace(/^(\"|')/, \"\").replace(/(\"|')$/, \"\")); `}\n />\n <hbr />\n <IfStatement condition={`!Number.isNaN(value)`}>\n <Show\n when={name.includes(\"?\") || name.includes(\"-\")}\n fallback={code`options.${name}`}>\n {code`options[\"${name}\"]`}\n </Show>\n {code` = value`}\n <Show\n when={\n (option as NumberCommandParameter).choices &&\n (option as NumberCommandParameter).choices!.length > 0\n }>\n {code` as ${(option as NumberCommandParameter).choices?.join(\" | \")}`}\n </Show>\n {code`; `}\n </IfStatement>\n </Show>\n </ElseIfClause>\n <hbr />\n </Show>\n </Show>\n <Show when={option.kind === CommandParameterKinds.boolean}>\n <IfStatement\n condition={`${equalsRegex}.test(${isCaseSensitive ? \"arg\" : '\"-\" + arg.toLowerCase().replaceAll(\"-\", \"\").replaceAll(\"_\", \"\")'})`}>\n <VarDeclaration\n const\n name=\"value\"\n initializer={code` arg.replace(${equalsRegex}, \"\").trim().replace(/^(\"|')/, \"\").replace(/(\"|')$/, \"\").toLowerCase(); `}\n />\n <hbr />\n <Show\n when={name.includes(\"?\") || name.includes(\"-\")}\n fallback={code`options.${name} = `}>\n {code`options[\"${name}\"] = `}\n </Show>\n <BooleanInputParserLogic name=\"value\" />\n </IfStatement>\n <ElseClause>\n <Show\n when={name.includes(\"?\") || name.includes(\"-\")}\n fallback={code`options.${name} = true; `}>\n {code`options[\"${name}\"] = true; `}\n </Show>\n </ElseClause>\n <Show when={Boolean((option as BooleanCommandOption).isNegativeOf)}>\n <hbr />\n <Show\n when={\n (option as BooleanCommandOption).isNegativeOf!.includes(\"?\") ||\n (option as BooleanCommandOption).isNegativeOf!.includes(\"-\")\n }\n fallback={code`options.${(option as BooleanCommandOption).isNegativeOf} = false; `}>\n {code`options[\"${(option as BooleanCommandOption).isNegativeOf}\"] = false; `}\n </Show>\n </Show>\n </Show>\n </>\n );\n}\n\nexport interface OptionsMemberParserConditionProps {\n /**\n * The option name to generate the parser logic for.\n */\n name: string;\n\n /**\n * Aliases for the option, which will also be parsed in the generated code. This will affect how the generated code compares command-line arguments to option names and aliases.\n */\n alias?: string[];\n\n /**\n * Whether the command options should be parsed in a case-sensitive manner. This will affect how the generated code compares command-line arguments to option names and aliases.\n *\n * @defaultValue false\n */\n isCaseSensitive: boolean;\n}\n\nexport function OptionsMemberParserCondition(\n props: OptionsMemberParserConditionProps\n) {\n const { name, alias: aliasProp, isCaseSensitive } = props;\n\n return (\n <>\n {code`${\n isCaseSensitive\n ? 'arg.startsWith(\"--'\n : 'arg.toLowerCase().replaceAll(\"-\", \"\").replaceAll(\"_\", \"\").startsWith(\"'\n }${isCaseSensitive ? name : name.toLowerCase().replaceAll(\"-\", \"\").replaceAll(\"_\", \"\")}=\") || ${\n isCaseSensitive\n ? \"arg\"\n : 'arg.toLowerCase().replaceAll(\"-\", \"\").replaceAll(\"_\", \"\")'\n } === \"${\n isCaseSensitive\n ? name\n : name.toLowerCase().replaceAll(\"-\", \"\").replaceAll(\"_\", \"\")\n }\" || ${\n isCaseSensitive\n ? 'arg.startsWith(\"-'\n : 'arg.toLowerCase().replaceAll(\"-\", \"\").replaceAll(\"_\", \"\").startsWith(\"'\n }${isCaseSensitive ? name : name.toLowerCase().replaceAll(\"-\", \"\").replaceAll(\"_\", \"\")}=\") || ${\n isCaseSensitive\n ? \"arg\"\n : 'arg.toLowerCase().replaceAll(\"-\", \"\").replaceAll(\"_\", \"\")'\n } === \"${\n isCaseSensitive\n ? name\n : name.toLowerCase().replaceAll(\"-\", \"\").replaceAll(\"_\", \"\")\n }\"`}\n <Show when={aliasProp && aliasProp.length > 0}>\n <For each={aliasProp ?? []}>\n {alias =>\n code` || ${\n isCaseSensitive || alias.length === 1\n ? 'arg.startsWith(\"--'\n : 'arg.toLowerCase().replaceAll(\"-\", \"\").replaceAll(\"_\", \"\").startsWith(\"'\n }${isCaseSensitive || alias.length === 1 ? alias : alias.toLowerCase().replaceAll(\"-\", \"\").replaceAll(\"_\", \"\")}=\") || ${\n isCaseSensitive || alias.length === 1\n ? \"arg\"\n : 'arg.toLowerCase().replaceAll(\"-\", \"\").replaceAll(\"_\", \"\")'\n } === \"${\n isCaseSensitive || alias.length === 1\n ? alias\n : alias.toLowerCase().replaceAll(\"-\", \"\").replaceAll(\"_\", \"\")\n }\" || ${\n isCaseSensitive || alias.length === 1\n ? 'arg.startsWith(\"-'\n : 'arg.toLowerCase().replaceAll(\"-\", \"\").replaceAll(\"_\", \"\").startsWith(\"'\n }${isCaseSensitive || alias.length === 1 ? alias : alias.toLowerCase().replaceAll(\"-\", \"\").replaceAll(\"_\", \"\")}=\") || ${\n isCaseSensitive || alias.length === 1\n ? \"arg\"\n : 'arg.toLowerCase().replaceAll(\"-\", \"\").replaceAll(\"_\", \"\")'\n } === \"${\n isCaseSensitive || alias.length === 1\n ? alias\n : alias.toLowerCase().replaceAll(\"-\", \"\").replaceAll(\"_\", \"\")\n }\"`\n }\n </For>\n </Show>\n </>\n );\n}\n\nexport function OptionsInterfaceDeclaration(props: { command: CommandTree }) {\n const { command } = props;\n\n const options = computed(() => computedOptions(command));\n\n return (\n <InterfaceDeclaration export name={`${pascalCase(command.name)}Options`}>\n <For each={Object.values(options.value)} hardline>\n {option => <OptionsMember option={option} />}\n </For>\n </InterfaceDeclaration>\n );\n}\n\nexport interface OptionsParserLogicProps {\n /**\n * The command to generate the options parser logic for.\n */\n command: CommandTree;\n\n /**\n * The environment variable prefix to use for options that have an associated environment variable. This prefix will be used in the generated code to access the environment variables (e.g., `env.${appSpecificEnvPrefix}_OPTION_NAME`).\n */\n appSpecificEnvPrefix: string;\n\n /**\n * Whether the command options should be parsed in a case-sensitive manner. This will affect how the generated code compares command-line arguments to option names and aliases.\n *\n * @defaultValue false\n */\n isCaseSensitive?: boolean;\n}\n\n/**\n * The command options parser logic.\n */\nexport function OptionsParserLogic(props: OptionsParserLogicProps) {\n const { command, appSpecificEnvPrefix, isCaseSensitive = false } = props;\n\n const options = computed(() => computedOptions(command));\n\n return (\n <>\n <VarDeclaration\n const\n name=\"options\"\n initializer={code` {\n ${Object.entries(options.value)\n .filter(\n ([, option]) =>\n option.env ||\n option.default !== undefined ||\n ((option.kind === CommandParameterKinds.string ||\n option.kind === CommandParameterKinds.number) &&\n option.variadic)\n )\n .map(([name, option]) => {\n if (option.kind === CommandParameterKinds.string) {\n return ` ${\n name.includes(\"?\") || name.includes(\"-\")\n ? `\"${name}\"`\n : `${name}`\n }: ${\n option.env ? `env.${appSpecificEnvPrefix}_${option.env}` : \"\"\n }${\n option.variadic\n ? option.default !== undefined\n ? `${\n option.env ? \" ?? \" : \"\"\n }${JSON.stringify(option.default)}`\n : option.env\n ? \" ?? []\"\n : \"[]\"\n : option.default !== undefined\n ? `${option.env ? \" ?? \" : \"\"}\"${option.default}\"`\n : \"\"\n }, `;\n } else if (option.kind === CommandParameterKinds.number) {\n return ` ${name.includes(\"?\") || name.includes(\"-\") ? `\"${name}\"` : `${name}`}: ${\n option.env ? `env.${appSpecificEnvPrefix}_${option.env}` : \"\"\n }${\n option.variadic\n ? option.default && Array.isArray(option.default)\n ? `${\n option.env ? \" ?? \" : \"\"\n }${JSON.stringify(option.default)}`\n : option.env\n ? \" ?? []\"\n : \"[]\"\n : option.default !== undefined\n ? `${option.env ? \" ?? \" : \"\"}${option.default}`\n : \"\"\n }, `;\n } else if (option.kind === CommandParameterKinds.boolean) {\n return ` ${name.includes(\"?\") || name.includes(\"-\") ? `\"${name}\"` : `${name}`}: ${\n option.env\n ? `env.${appSpecificEnvPrefix}_${option.env} ?? `\n : \"\"\n }${option.default ? \"true\" : \"false\"},`;\n }\n\n return \"\";\n })\n .join(\"\")}\n } as ${pascalCase(command.name)}Options;`}\n />\n <Spacing />\n {code`for (let i = 0; i < args.slice(${\n command.segments.filter(segment => isDynamicPathSegment(segment)).length\n }).length; i++) { `}\n <hbr />\n <VarDeclaration\n const\n name=\"arg\"\n type=\"string\"\n initializer={code` args[i].length > 3 && args[i].startsWith(\"--\")\n ? \\`--\\${args[i].slice(2).replaceAll(\"-\", \"\")${\n isCaseSensitive\n ? \"\"\n : '.toLowerCase().replaceAll(\"-\", \"\").replaceAll(\"_\", \"\")'\n }}\\`\n : args[i].length > 2 && args[i].startsWith(\"-\")\n ? \\`-\\${args[i].slice(1).replaceAll(\"-\", \"\")}\\`\n : args[i]; `}\n />\n <hbr />\n\n <For each={Object.entries(options.value)} hardline>\n {([name, option], i) => (\n <Show\n when={i === 0}\n fallback={\n <ElseIfClause\n condition={\n <>\n <OptionsMemberParserCondition\n name={name}\n alias={option.alias}\n isCaseSensitive={isCaseSensitive}\n />\n </>\n }>\n <OptionsMemberParserLogic\n name={name}\n option={option}\n isCaseSensitive={isCaseSensitive}\n />\n </ElseIfClause>\n }>\n <IfStatement\n condition={\n <OptionsMemberParserCondition\n name={name}\n alias={option.alias}\n isCaseSensitive={isCaseSensitive}\n />\n }>\n <OptionsMemberParserLogic\n name={name}\n option={option}\n isCaseSensitive={isCaseSensitive}\n />\n </IfStatement>\n </Show>\n )}\n </For>\n\n <hbr />\n {code` } `}\n <hbr />\n </>\n );\n}\n\nexport interface CommandParserLogicProps {\n /**\n * The command to generate the parser logic for.\n */\n command: CommandTree;\n\n /**\n * The environment variable prefix to use for options that have an associated environment variable. This prefix will be used in the generated code to access the environment variables (e.g., `env.${appSpecificEnvPrefix}_OPTION_NAME`).\n */\n appSpecificEnvPrefix: string;\n\n /**\n * Whether the command options should be parsed in a case-sensitive manner. This will affect how the generated code compares command-line arguments to option names and aliases.\n *\n * @defaultValue false\n */\n isCaseSensitive?: boolean;\n}\n\n/**\n * The command parser logic, which includes parsing dynamic path segments, positional parameters, and options.\n */\nexport function CommandParserLogic(props: CommandParserLogicProps) {\n const { command, appSpecificEnvPrefix, isCaseSensitive = false } = props;\n\n return (\n <>\n <DynamicSegmentsParserLogic\n command={command}\n isCaseSensitive={isCaseSensitive}\n />\n <Spacing />\n <OptionsParserLogic\n command={command}\n appSpecificEnvPrefix={appSpecificEnvPrefix}\n isCaseSensitive={isCaseSensitive}\n />\n <Spacing />\n <ArgumentsParserLogic\n command={command}\n appSpecificEnvPrefix={appSpecificEnvPrefix}\n isCaseSensitive={isCaseSensitive}\n />\n <Spacing />\n </>\n );\n}\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { CommandOption, CommandTree } from "../types/command.cjs";
2
- import * as _alloy_js_core9 from "@alloy-js/core";
2
+ import * as _alloy_js_core17 from "@alloy-js/core";
3
3
 
4
4
  //#region src/components/options-parser-logic.d.ts
5
5
  interface DynamicSegmentsParserLogicProps {
@@ -12,7 +12,7 @@ interface DynamicSegmentsParserLogicProps {
12
12
  */
13
13
  isCaseSensitive: boolean;
14
14
  }
15
- declare function DynamicSegmentsParserLogic(props: DynamicSegmentsParserLogicProps): _alloy_js_core9.Children;
15
+ declare function DynamicSegmentsParserLogic(props: DynamicSegmentsParserLogicProps): _alloy_js_core17.Children;
16
16
  interface ArgumentsParserLogicProps {
17
17
  /**
18
18
  * The command to generate the positional parameters parser logic for.
@@ -27,7 +27,7 @@ interface ArgumentsParserLogicProps {
27
27
  */
28
28
  isCaseSensitive: boolean;
29
29
  }
30
- declare function ArgumentsParserLogic(props: ArgumentsParserLogicProps): _alloy_js_core9.Children;
30
+ declare function ArgumentsParserLogic(props: ArgumentsParserLogicProps): _alloy_js_core17.Children;
31
31
  /**
32
32
  * The command option interface property.
33
33
  */
@@ -35,7 +35,7 @@ declare function OptionsMember({
35
35
  option
36
36
  }: {
37
37
  option: CommandOption;
38
- }): _alloy_js_core9.Children;
38
+ }): _alloy_js_core17.Children;
39
39
  interface OptionsMemberParserLogicProps {
40
40
  /**
41
41
  * The option name to generate the parser logic for.
@@ -55,27 +55,27 @@ interface OptionsMemberParserLogicProps {
55
55
  /**
56
56
  * The command option property parser logic.
57
57
  */
58
- declare function OptionsMemberParserLogic(props: OptionsMemberParserLogicProps): _alloy_js_core9.Children;
58
+ declare function OptionsMemberParserLogic(props: OptionsMemberParserLogicProps): _alloy_js_core17.Children;
59
59
  interface OptionsMemberParserConditionProps {
60
60
  /**
61
61
  * The option name to generate the parser logic for.
62
62
  */
63
63
  name: string;
64
64
  /**
65
- * Aliases for the option, which will also be parsed in the generated code. This will affect how the generated code compares command line arguments to option names and aliases.
65
+ * Aliases for the option, which will also be parsed in the generated code. This will affect how the generated code compares command-line arguments to option names and aliases.
66
66
  */
67
67
  alias?: string[];
68
68
  /**
69
- * Whether the command options should be parsed in a case-sensitive manner. This will affect how the generated code compares command line arguments to option names and aliases.
69
+ * Whether the command options should be parsed in a case-sensitive manner. This will affect how the generated code compares command-line arguments to option names and aliases.
70
70
  *
71
71
  * @defaultValue false
72
72
  */
73
73
  isCaseSensitive: boolean;
74
74
  }
75
- declare function OptionsMemberParserCondition(props: OptionsMemberParserConditionProps): _alloy_js_core9.Children;
75
+ declare function OptionsMemberParserCondition(props: OptionsMemberParserConditionProps): _alloy_js_core17.Children;
76
76
  declare function OptionsInterfaceDeclaration(props: {
77
77
  command: CommandTree;
78
- }): _alloy_js_core9.Children;
78
+ }): _alloy_js_core17.Children;
79
79
  interface OptionsParserLogicProps {
80
80
  /**
81
81
  * The command to generate the options parser logic for.
@@ -95,7 +95,7 @@ interface OptionsParserLogicProps {
95
95
  /**
96
96
  * The command options parser logic.
97
97
  */
98
- declare function OptionsParserLogic(props: OptionsParserLogicProps): _alloy_js_core9.Children;
98
+ declare function OptionsParserLogic(props: OptionsParserLogicProps): _alloy_js_core17.Children;
99
99
  interface CommandParserLogicProps {
100
100
  /**
101
101
  * The command to generate the parser logic for.
@@ -115,7 +115,7 @@ interface CommandParserLogicProps {
115
115
  /**
116
116
  * The command parser logic, which includes parsing dynamic path segments, positional parameters, and options.
117
117
  */
118
- declare function CommandParserLogic(props: CommandParserLogicProps): _alloy_js_core9.Children;
118
+ declare function CommandParserLogic(props: CommandParserLogicProps): _alloy_js_core17.Children;
119
119
  //#endregion
120
120
  export { ArgumentsParserLogic, ArgumentsParserLogicProps, CommandParserLogic, CommandParserLogicProps, DynamicSegmentsParserLogic, DynamicSegmentsParserLogicProps, OptionsInterfaceDeclaration, OptionsMember, OptionsMemberParserCondition, OptionsMemberParserConditionProps, OptionsMemberParserLogic, OptionsMemberParserLogicProps, OptionsParserLogic, OptionsParserLogicProps };
121
121
  //# sourceMappingURL=options-parser-logic.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"options-parser-logic.d.cts","names":[],"sources":["../../src/components/options-parser-logic.tsx"],"sourcesContent":[],"mappings":";;;;UA+CiB,+BAAA;;;AAAjB;EAYgB,OAAA,EARL,WAQK;EA6BC;AAiBjB;AA+KA;EAAgC,eAAA,EAAA,OAAA;;AAAiC,iBA7NjD,0BAAA,CA6NmD,KAAA,EA5N1D,+BA4N0D,CAAA,EA5N3B,eAAA,CAAA,QA4N2B;AAAA,UAhMlD,yBAAA,CAgMkD;EAmClD;AAsBjB;AAsOA;EAmBgB,OAAA,EA9eL,WA8eK;EAmEA;AAchB;AAsBA;EA0IiB,oBAAA,EAAA,MAAuB;EAsBxB;;;;;iBAxuBA,oBAAA,QAA4B,4BAAyB,eAAA,CAAA;;;;iBA+KrD,aAAA;;;UAAoC;IAAa,eAAA,CAAE;UAmClD,6BAAA;;;;;;;;UASP;;;;;;;;;;;iBAaM,wBAAA,QAAgC,gCAA6B,eAAA,CAAA;UAsO5D,iCAAA;;;;;;;;;;;;;;;;iBAmBD,4BAAA,QACP,oCAAiC,eAAA,CAAA;iBAkE1B,2BAAA;WAA8C;IAAW,eAAA,CAAE;UAc1D,uBAAA;;;;WAIN;;;;;;;;;;;;;;;iBAkBK,kBAAA,QAA0B,0BAAuB,eAAA,CAAA;UA0IhD,uBAAA;;;;WAIN;;;;;;;;;;;;;;;iBAkBK,kBAAA,QAA0B,0BAAuB,eAAA,CAAA"}
1
+ {"version":3,"file":"options-parser-logic.d.cts","names":[],"sources":["../../src/components/options-parser-logic.tsx"],"sourcesContent":[],"mappings":";;;;UA+CiB,+BAAA;;;AAAjB;EAYgB,OAAA,EARL,WAQK;EA6BC;AAiBjB;AA+KA;EAAgC,eAAA,EAAA,OAAA;;AAAiC,iBA7NjD,0BAAA,CA6NmD,KAAA,EA5N1D,+BA4N0D,CAAA,EA5N3B,gBAAA,CAAA,QA4N2B;AAAA,UAhMlD,yBAAA,CAgMkD;EAmClD;AAsBjB;AAsOA;EAmBgB,OAAA,EA9eL,WA8eK;EAmEA;AAchB;AAsBA;EA0IiB,oBAAA,EAAA,MAAuB;EAsBxB;;;;;iBAxuBA,oBAAA,QAA4B,4BAAyB,gBAAA,CAAA;;;;iBA+KrD,aAAA;;;UAAoC;IAAa,gBAAA,CAAE;UAmClD,6BAAA;;;;;;;;UASP;;;;;;;;;;;iBAaM,wBAAA,QAAgC,gCAA6B,gBAAA,CAAA;UAsO5D,iCAAA;;;;;;;;;;;;;;;;iBAmBD,4BAAA,QACP,oCAAiC,gBAAA,CAAA;iBAkE1B,2BAAA;WAA8C;IAAW,gBAAA,CAAE;UAc1D,uBAAA;;;;WAIN;;;;;;;;;;;;;;;iBAkBK,kBAAA,QAA0B,0BAAuB,gBAAA,CAAA;UA0IhD,uBAAA;;;;WAIN;;;;;;;;;;;;;;;iBAkBK,kBAAA,QAA0B,0BAAuB,gBAAA,CAAA"}
@@ -62,11 +62,11 @@ interface OptionsMemberParserConditionProps {
62
62
  */
63
63
  name: string;
64
64
  /**
65
- * Aliases for the option, which will also be parsed in the generated code. This will affect how the generated code compares command line arguments to option names and aliases.
65
+ * Aliases for the option, which will also be parsed in the generated code. This will affect how the generated code compares command-line arguments to option names and aliases.
66
66
  */
67
67
  alias?: string[];
68
68
  /**
69
- * Whether the command options should be parsed in a case-sensitive manner. This will affect how the generated code compares command line arguments to option names and aliases.
69
+ * Whether the command options should be parsed in a case-sensitive manner. This will affect how the generated code compares command-line arguments to option names and aliases.
70
70
  *
71
71
  * @defaultValue false
72
72
  */