@shell-shock/core 0.10.0 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/dist/components/docs.cjs +4 -4
  2. package/dist/components/docs.cjs.map +1 -1
  3. package/dist/components/docs.d.cts +5 -5
  4. package/dist/components/docs.d.cts.map +1 -1
  5. package/dist/components/docs.d.mts +5 -5
  6. package/dist/components/helpers.d.cts +6 -6
  7. package/dist/components/helpers.d.mts +6 -6
  8. package/dist/components/helpers.d.mts.map +1 -1
  9. package/dist/components/options-parser-logic.cjs +31 -31
  10. package/dist/components/options-parser-logic.cjs.map +1 -1
  11. package/dist/components/options-parser-logic.d.cts +9 -9
  12. package/dist/components/options-parser-logic.d.cts.map +1 -1
  13. package/dist/components/options-parser-logic.d.mts +9 -9
  14. package/dist/components/options-parser-logic.d.mts.map +1 -1
  15. package/dist/components/options-parser-logic.mjs +26 -26
  16. package/dist/components/options-parser-logic.mjs.map +1 -1
  17. package/dist/components/usage.cjs +5 -5
  18. package/dist/components/usage.cjs.map +1 -1
  19. package/dist/components/usage.d.cts +2 -2
  20. package/dist/components/usage.d.cts.map +1 -1
  21. package/dist/components/usage.d.mts +2 -2
  22. package/dist/components/usage.mjs +4 -4
  23. package/dist/components/usage.mjs.map +1 -1
  24. package/dist/components/utils-builtin.cjs +2 -2
  25. package/dist/components/utils-builtin.cjs.map +1 -1
  26. package/dist/components/utils-builtin.mjs +5 -5
  27. package/dist/components/utils-builtin.mjs.map +1 -1
  28. package/dist/contexts/options.cjs +2 -2
  29. package/dist/contexts/options.cjs.map +1 -1
  30. package/dist/contexts/options.d.cts +1 -1
  31. package/dist/contexts/options.d.cts.map +1 -1
  32. package/dist/contexts/options.d.mts +1 -1
  33. package/dist/contexts/options.d.mts.map +1 -1
  34. package/dist/contexts/options.mjs +4 -4
  35. package/dist/contexts/options.mjs.map +1 -1
  36. package/dist/helpers/automd.cjs +2 -2
  37. package/dist/helpers/automd.cjs.map +1 -1
  38. package/dist/helpers/automd.mjs.map +1 -1
  39. package/dist/helpers/paths.cjs +125 -0
  40. package/dist/helpers/paths.cjs.map +1 -0
  41. package/dist/helpers/paths.mjs +121 -0
  42. package/dist/helpers/paths.mjs.map +1 -0
  43. package/dist/helpers/persistence.cjs +68 -116
  44. package/dist/helpers/persistence.cjs.map +1 -1
  45. package/dist/helpers/persistence.mjs +68 -116
  46. package/dist/helpers/persistence.mjs.map +1 -1
  47. package/dist/helpers/update-package-json.cjs +4 -4
  48. package/dist/helpers/update-package-json.cjs.map +1 -1
  49. package/dist/helpers/utilities.cjs +1 -1
  50. package/dist/helpers/utilities.mjs +1 -1
  51. package/dist/helpers/validations.cjs +2 -3
  52. package/dist/helpers/validations.cjs.map +1 -1
  53. package/dist/helpers/validations.mjs +2 -2
  54. package/dist/helpers/validations.mjs.map +1 -1
  55. package/dist/index.cjs +14 -11
  56. package/dist/index.d.cts +2 -2
  57. package/dist/index.d.mts +2 -2
  58. package/dist/index.mjs +3 -3
  59. package/dist/plugin-utils/deepkit.cjs +72 -0
  60. package/dist/plugin-utils/deepkit.cjs.map +1 -0
  61. package/dist/plugin-utils/deepkit.d.cts +24 -0
  62. package/dist/plugin-utils/deepkit.d.cts.map +1 -0
  63. package/dist/plugin-utils/deepkit.d.mts +24 -0
  64. package/dist/plugin-utils/deepkit.d.mts.map +1 -0
  65. package/dist/plugin-utils/deepkit.mjs +70 -0
  66. package/dist/plugin-utils/deepkit.mjs.map +1 -0
  67. package/dist/plugin-utils/get-command-tree.cjs +2 -2
  68. package/dist/plugin-utils/get-command-tree.cjs.map +1 -1
  69. package/dist/plugin-utils/index.cjs +27 -18
  70. package/dist/plugin-utils/index.d.cts +3 -1
  71. package/dist/plugin-utils/index.d.mts +3 -1
  72. package/dist/plugin-utils/index.mjs +3 -1
  73. package/dist/plugin-utils/reflect.cjs +4 -5
  74. package/dist/plugin-utils/reflect.cjs.map +1 -1
  75. package/dist/plugin-utils/reflect.mjs +4 -4
  76. package/dist/plugin-utils/reflect.mjs.map +1 -1
  77. package/dist/plugin-utils/type-checks.cjs +89 -0
  78. package/dist/plugin-utils/type-checks.cjs.map +1 -0
  79. package/dist/plugin-utils/type-checks.d.cts +42 -0
  80. package/dist/plugin-utils/type-checks.d.cts.map +1 -0
  81. package/dist/plugin-utils/type-checks.d.mts +42 -0
  82. package/dist/plugin-utils/type-checks.d.mts.map +1 -0
  83. package/dist/plugin-utils/type-checks.mjs +84 -0
  84. package/dist/plugin-utils/type-checks.mjs.map +1 -0
  85. package/dist/plugin.cjs +28 -24
  86. package/dist/plugin.cjs.map +1 -1
  87. package/dist/plugin.d.cts.map +1 -1
  88. package/dist/plugin.d.mts.map +1 -1
  89. package/dist/plugin.mjs +12 -8
  90. package/dist/plugin.mjs.map +1 -1
  91. package/dist/resolver/deepkit.cjs +129 -0
  92. package/dist/resolver/deepkit.cjs.map +1 -0
  93. package/dist/resolver/deepkit.mjs +128 -0
  94. package/dist/resolver/deepkit.mjs.map +1 -0
  95. package/dist/resolver/helpers.cjs +173 -0
  96. package/dist/resolver/helpers.cjs.map +1 -0
  97. package/dist/resolver/helpers.mjs +168 -0
  98. package/dist/resolver/helpers.mjs.map +1 -0
  99. package/dist/resolver/module.cjs +144 -0
  100. package/dist/resolver/module.cjs.map +1 -0
  101. package/dist/resolver/module.mjs +143 -0
  102. package/dist/resolver/module.mjs.map +1 -0
  103. package/dist/resolver/resolve.cjs +209 -0
  104. package/dist/resolver/resolve.cjs.map +1 -0
  105. package/dist/resolver/resolve.mjs +208 -0
  106. package/dist/resolver/resolve.mjs.map +1 -0
  107. package/dist/types/command.cjs +127 -104
  108. package/dist/types/command.cjs.map +1 -1
  109. package/dist/types/command.d.cts +39 -78
  110. package/dist/types/command.d.cts.map +1 -1
  111. package/dist/types/command.d.mts +39 -78
  112. package/dist/types/command.d.mts.map +1 -1
  113. package/dist/types/command.mjs +115 -95
  114. package/dist/types/command.mjs.map +1 -1
  115. package/dist/types/context.cjs +1 -1
  116. package/dist/types/context.cjs.map +1 -1
  117. package/dist/types/context.d.cts +2 -2
  118. package/dist/types/context.d.cts.map +1 -1
  119. package/dist/types/context.d.mts +2 -2
  120. package/dist/types/context.d.mts.map +1 -1
  121. package/dist/types/context.mjs +1 -1
  122. package/dist/types/context.mjs.map +1 -1
  123. package/dist/types/index.cjs +13 -10
  124. package/dist/types/index.d.cts +2 -2
  125. package/dist/types/index.d.mts +2 -2
  126. package/dist/types/index.mjs +2 -2
  127. package/package.json +24 -75
  128. package/dist/helpers/resolve-command.cjs +0 -430
  129. package/dist/helpers/resolve-command.cjs.map +0 -1
  130. package/dist/helpers/resolve-command.mjs +0 -425
  131. package/dist/helpers/resolve-command.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"options-parser-logic.cjs","names":["code","computed","For","Show","ElseClause","ElseIfClause","IfStatement","InterfaceDeclaration","InterfaceMember","VarDeclaration","ReflectionKind","Spacing","camelCase","constantCase","pascalCase","isSetString","computedOptions","getDynamicPathSegmentName","isDynamicPathSegment","BooleanInputParserLogic","DynamicSegmentsParserLogic","props","command","_$createComponent","each","segments","children","segment","index","when","name","type","_$createIntrinsic","condition","ArgumentsParserLogic","envPrefix","isCaseSensitive","arguments","length","initializer","Object","values","options","map","option","toLowerCase","replaceAll","alias","a","join","hardline","arg","kind","boolean","number","string","variadic","optional","env","String","default","undefined","fallback","_$memo","OptionsMember","doc","description","title","Boolean","OptionsMemberParserLogic","equalsRegex","includes","isNegativeOf","OptionsMemberParserCondition","aliasProp","OptionsInterfaceDeclaration","value","OptionsParserLogic","entries","JSON","stringify","filter","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 { ReflectionKind } from \"@powerlines/deepkit/vendor/type\";\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 NumberCommandOption,\n StringCommandOption\n} from \"../types/command\";\nimport { BooleanInputParserLogic } 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.${envPrefix}_OPTION_NAME`).\n */\n envPrefix: 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, envPrefix, isCaseSensitive } = props;\n\n return (\n <Show when={command.arguments && command.arguments.length > 0}>\n <VarDeclaration\n let\n name=\"optionsIndex\"\n type=\"number\"\n initializer={code`Math.max(0, args.slice(${command.segments.length + 1}).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.arguments ?? []} hardline>\n {(arg, index) => (\n <>\n <VarDeclaration\n let\n name={camelCase(arg.name)}\n type={`${\n arg.kind === ReflectionKind.boolean\n ? \"boolean\"\n : arg.kind === ReflectionKind.number\n ? \"number\"\n : \"string\"\n }${\n (arg.kind === ReflectionKind.string ||\n arg.kind === ReflectionKind.number) &&\n arg.variadic\n ? \"[]\"\n : \"\"\n }${arg.optional ? \" | undefined\" : \"\"}`}\n initializer={\n <>\n <Show when={isSetString(arg.env)}>\n {code`env.${envPrefix}_${constantCase(String(arg.env))} ?? `}\n </Show>\n <Show\n when={arg.default !== undefined}\n fallback={\n (arg.kind === ReflectionKind.string ||\n arg.kind === ReflectionKind.number) &&\n arg.variadic\n ? code`[]`\n : code`undefined;`\n }>\n {arg.kind === ReflectionKind.string\n ? code`\"${arg.default}\"`\n : code`${arg.default}`}\n </Show>\n </>\n }\n />\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 === ReflectionKind.string ||\n arg.kind === ReflectionKind.number\n }\n fallback={\n <BooleanInputParserLogic\n name={`args[argsIndex + ${index}] `}\n />\n }>\n <Show\n when={\n (arg.kind === ReflectionKind.string ||\n arg.kind === ReflectionKind.number) &&\n arg.variadic\n }\n fallback={\n <Show\n when={arg.kind === ReflectionKind.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.arguments.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 === ReflectionKind.string}>\n <InterfaceMember\n name={option.name}\n doc={doc}\n type={\n (option as StringCommandOption).variadic ? \"string[]\" : \"string\"\n }\n optional={option.optional}\n />\n </Show>\n <Show when={option.kind === ReflectionKind.number}>\n <InterfaceMember\n name={option.name}\n doc={doc}\n type={\n (option as NumberCommandOption).variadic ? \"number[]\" : \"number\"\n }\n optional={option.optional}\n />\n </Show>\n <Show when={option.kind === ReflectionKind.boolean}>\n <InterfaceMember\n name={option.name}\n doc={doc}\n type=\"boolean\"\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 === ReflectionKind.string ||\n option.kind === ReflectionKind.number\n }>\n <Show\n when={(option as StringCommandOption | NumberCommandOption).variadic}>\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 === ReflectionKind.string}>\n {code`...arg.replace(${equalsRegex}, \"\").split(\",\").map(item => item.trim().replace(/^(\"|')/, \"\").replace(/(\"|')$/, \"\")).filter(Boolean) `}\n </Show>\n <Show when={option.kind === ReflectionKind.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 {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 === ReflectionKind.string}>\n {code`...args[++i].split(\",\").map(item => item.trim().replace(/^(\"|')/, \"\").replace(/(\"|')$/, \"\")).filter(Boolean) `}\n </Show>\n <Show when={option.kind === ReflectionKind.number}>\n {code`...args[++i].split(\",\").map(item => item.trim().replace(/^(\"|')/, \"\").replace(/(\"|')$/, \"\")).filter(Boolean).map(Number).filter(value => !Number.isNaN(value)) `}\n </Show>\n {code`); `}\n </ElseIfClause>\n </Show>\n <Show\n when={\n !(option as StringCommandOption | NumberCommandOption).variadic\n }>\n <IfStatement\n condition={`${equalsRegex}.test(${isCaseSensitive ? \"arg\" : '\"-\" + arg.toLowerCase().replaceAll(\"-\", \"\").replaceAll(\"_\", \"\")'})`}>\n <Show when={option.kind === ReflectionKind.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 <Show when={option.kind === ReflectionKind.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 </IfStatement>\n </Show>\n </IfStatement>\n <ElseIfClause condition={`args.length > i + 1`}>\n <Show when={option.kind === ReflectionKind.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 <Show when={option.kind === ReflectionKind.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 </IfStatement>\n </Show>\n </ElseIfClause>\n <hbr />\n </Show>\n </Show>\n <Show when={option.kind === ReflectionKind.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.${envPrefix}_OPTION_NAME`).\n */\n envPrefix: 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, envPrefix, 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 .map(([name, option]) => {\n if (option.kind === ReflectionKind.string) {\n return ` ${name.includes(\"?\") || name.includes(\"-\") ? `\"${name}\"` : `${name}`}: ${\n option.env ? `env.${envPrefix}_${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 === ReflectionKind.number) {\n return ` ${name.includes(\"?\") || name.includes(\"-\") ? `\"${name}\"` : `${name}`}: ${\n option.env ? `env.${envPrefix}_${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 === ReflectionKind.boolean) {\n return ` ${name.includes(\"?\") || name.includes(\"-\") ? `\"${name}\"` : `${name}`}: ${\n option.env ? `env.${envPrefix}_${option.env} ?? ` : \"\"\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.${envPrefix}_OPTION_NAME`).\n */\n envPrefix: 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, envPrefix, isCaseSensitive = false } = props;\n\n return (\n <>\n <DynamicSegmentsParserLogic\n command={command}\n isCaseSensitive={isCaseSensitive}\n />\n <Spacing />\n <OptionsParserLogic\n command={command}\n envPrefix={envPrefix}\n isCaseSensitive={isCaseSensitive}\n />\n <Spacing />\n <ArgumentsParserLogic\n command={command}\n envPrefix={envPrefix}\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","DynamicSegmentsParserLogic","props","command","_$createComponent","each","segments","children","segment","index","when","name","type","_$createIntrinsic","condition","ArgumentsParserLogic","envPrefix","isCaseSensitive","args","length","initializer","Object","values","options","map","option","toLowerCase","replaceAll","alias","a","join","hardline","arg","kind","boolean","number","string","variadic","optional","env","String","default","undefined","fallback","_$memo","OptionsMember","doc","description","title","Boolean","OptionsMemberParserLogic","equalsRegex","includes","isNegativeOf","OptionsMemberParserCondition","aliasProp","OptionsInterfaceDeclaration","value","OptionsParserLogic","entries","JSON","stringify","filter","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 } 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.${envPrefix}_OPTION_NAME`).\n */\n envPrefix: 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, envPrefix, 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 <VarDeclaration\n let\n name={camelCase(arg.name)}\n type={`${\n arg.kind === CommandParameterKinds.boolean\n ? \"boolean\"\n : arg.kind === CommandParameterKinds.number\n ? \"number\"\n : \"string\"\n }${\n (arg.kind === CommandParameterKinds.string ||\n arg.kind === CommandParameterKinds.number) &&\n arg.variadic\n ? \"[]\"\n : \"\"\n }${arg.optional ? \" | undefined\" : \"\"}`}\n initializer={\n <>\n <Show when={isSetString(arg.env)}>\n {code`env.${envPrefix}_${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 <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={\n (option as StringCommandParameter).variadic\n ? \"string[]\"\n : \"string\"\n }\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={\n (option as NumberCommandParameter).variadic\n ? \"number[]\"\n : \"number\"\n }\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=\"boolean\"\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 {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 {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 <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 </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 <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 </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.${envPrefix}_OPTION_NAME`).\n */\n envPrefix: 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, envPrefix, 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 .map(([name, option]) => {\n if (option.kind === CommandParameterKinds.string) {\n return ` ${name.includes(\"?\") || name.includes(\"-\") ? `\"${name}\"` : `${name}`}: ${\n option.env ? `env.${envPrefix}_${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.${envPrefix}_${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.boolean) {\n return ` ${name.includes(\"?\") || name.includes(\"-\") ? `\"${name}\"` : `${name}`}: ${\n option.env ? `env.${envPrefix}_${option.env} ?? ` : \"\"\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.${envPrefix}_OPTION_NAME`).\n */\n envPrefix: 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, envPrefix, isCaseSensitive = false } = props;\n\n return (\n <>\n <DynamicSegmentsParserLogic\n command={command}\n isCaseSensitive={isCaseSensitive}\n />\n <Spacing />\n <OptionsParserLogic\n command={command}\n envPrefix={envPrefix}\n isCaseSensitive={isCaseSensitive}\n />\n <Spacing />\n <ArgumentsParserLogic\n command={command}\n envPrefix={envPrefix}\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_core8 from "@alloy-js/core";
2
+ import * as _alloy_js_core11 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_core8.Children;
15
+ declare function DynamicSegmentsParserLogic(props: DynamicSegmentsParserLogicProps): _alloy_js_core11.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_core8.Children;
30
+ declare function ArgumentsParserLogic(props: ArgumentsParserLogicProps): _alloy_js_core11.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_core8.Children;
38
+ }): _alloy_js_core11.Children;
39
39
  interface OptionsMemberParserLogicProps {
40
40
  /**
41
41
  * The option name to generate the parser logic for.
@@ -55,7 +55,7 @@ interface OptionsMemberParserLogicProps {
55
55
  /**
56
56
  * The command option property parser logic.
57
57
  */
58
- declare function OptionsMemberParserLogic(props: OptionsMemberParserLogicProps): _alloy_js_core8.Children;
58
+ declare function OptionsMemberParserLogic(props: OptionsMemberParserLogicProps): _alloy_js_core11.Children;
59
59
  interface OptionsMemberParserConditionProps {
60
60
  /**
61
61
  * The option name to generate the parser logic for.
@@ -72,10 +72,10 @@ interface OptionsMemberParserConditionProps {
72
72
  */
73
73
  isCaseSensitive: boolean;
74
74
  }
75
- declare function OptionsMemberParserCondition(props: OptionsMemberParserConditionProps): _alloy_js_core8.Children;
75
+ declare function OptionsMemberParserCondition(props: OptionsMemberParserConditionProps): _alloy_js_core11.Children;
76
76
  declare function OptionsInterfaceDeclaration(props: {
77
77
  command: CommandTree;
78
- }): _alloy_js_core8.Children;
78
+ }): _alloy_js_core11.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_core8.Children;
98
+ declare function OptionsParserLogic(props: OptionsParserLogicProps): _alloy_js_core11.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_core8.Children;
118
+ declare function CommandParserLogic(props: CommandParserLogicProps): _alloy_js_core11.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;AAyKA;EAAgC,eAAA,EAAA,OAAA;;AAAiC,iBAvNjD,0BAAA,CAuNmD,KAAA,EAtN1D,+BAsN0D,CAAA,EAtN3B,eAAA,CAAA,QAsN2B;AAAA,UA1LlD,yBAAA,CA0LkD;EAuClD;AAsBjB;AAuKA;EAmBgB,OAAA,EA7aL,WA6aK;EAmEA;AAchB;AAsBA;EA4HiB,SAAA,EAAA,MAAA;EAsBD;;;;;iBAzpBA,oBAAA,QAA4B,4BAAyB,eAAA,CAAA;;;;iBAyKrD,aAAA;;;UAAoC;IAAa,eAAA,CAAE;UAuClD,6BAAA;;;;;;;;UASP;;;;;;;;;;;iBAaM,wBAAA,QAAgC,gCAA6B,eAAA,CAAA;UAuK5D,iCAAA;;;;;;;;;;;;;;;;iBAmBD,4BAAA,QACP,oCAAiC,eAAA,CAAA;iBAkE1B,2BAAA;WAA8C;IAAW,eAAA,CAAE;UAc1D,uBAAA;;;;WAIN;;;;;;;;;;;;;;;iBAkBK,kBAAA,QAA0B,0BAAuB,eAAA,CAAA;UA4HhD,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;AA2KA;EAAgC,eAAA,EAAA,OAAA;;AAAiC,iBAzNjD,0BAAA,CAyNmD,KAAA,EAxN1D,+BAwN0D,CAAA,EAxN3B,gBAAA,CAAA,QAwN2B;AAAA,UA5LlD,yBAAA,CA4LkD;EA2ClD;AAsBjB;AA0KA;EAmBgB,OAAA,EAtbL,WAsbK;EAmEA;AAchB;AAsBA;EA4HiB,SAAA,EAAA,MAAA;EAsBD;;;;;iBAlqBA,oBAAA,QAA4B,4BAAyB,gBAAA,CAAA;;;;iBA2KrD,aAAA;;;UAAoC;IAAa,gBAAA,CAAE;UA2ClD,6BAAA;;;;;;;;UASP;;;;;;;;;;;iBAaM,wBAAA,QAAgC,gCAA6B,gBAAA,CAAA;UA0K5D,iCAAA;;;;;;;;;;;;;;;;iBAmBD,4BAAA,QACP,oCAAiC,gBAAA,CAAA;iBAkE1B,2BAAA;WAA8C;IAAW,gBAAA,CAAE;UAc1D,uBAAA;;;;WAIN;;;;;;;;;;;;;;;iBAkBK,kBAAA,QAA0B,0BAAuB,gBAAA,CAAA;UA4HhD,uBAAA;;;;WAIN;;;;;;;;;;;;;;;iBAkBK,kBAAA,QAA0B,0BAAuB,gBAAA,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { CommandOption, CommandTree } from "../types/command.mjs";
2
- import * as _alloy_js_core13 from "@alloy-js/core";
2
+ import * as _alloy_js_core8 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_core13.Children;
15
+ declare function DynamicSegmentsParserLogic(props: DynamicSegmentsParserLogicProps): _alloy_js_core8.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_core13.Children;
30
+ declare function ArgumentsParserLogic(props: ArgumentsParserLogicProps): _alloy_js_core8.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_core13.Children;
38
+ }): _alloy_js_core8.Children;
39
39
  interface OptionsMemberParserLogicProps {
40
40
  /**
41
41
  * The option name to generate the parser logic for.
@@ -55,7 +55,7 @@ interface OptionsMemberParserLogicProps {
55
55
  /**
56
56
  * The command option property parser logic.
57
57
  */
58
- declare function OptionsMemberParserLogic(props: OptionsMemberParserLogicProps): _alloy_js_core13.Children;
58
+ declare function OptionsMemberParserLogic(props: OptionsMemberParserLogicProps): _alloy_js_core8.Children;
59
59
  interface OptionsMemberParserConditionProps {
60
60
  /**
61
61
  * The option name to generate the parser logic for.
@@ -72,10 +72,10 @@ interface OptionsMemberParserConditionProps {
72
72
  */
73
73
  isCaseSensitive: boolean;
74
74
  }
75
- declare function OptionsMemberParserCondition(props: OptionsMemberParserConditionProps): _alloy_js_core13.Children;
75
+ declare function OptionsMemberParserCondition(props: OptionsMemberParserConditionProps): _alloy_js_core8.Children;
76
76
  declare function OptionsInterfaceDeclaration(props: {
77
77
  command: CommandTree;
78
- }): _alloy_js_core13.Children;
78
+ }): _alloy_js_core8.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_core13.Children;
98
+ declare function OptionsParserLogic(props: OptionsParserLogicProps): _alloy_js_core8.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_core13.Children;
118
+ declare function CommandParserLogic(props: CommandParserLogicProps): _alloy_js_core8.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.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"options-parser-logic.d.mts","names":[],"sources":["../../src/components/options-parser-logic.tsx"],"sourcesContent":[],"mappings":";;;;UA+CiB,+BAAA;;;AAAjB;EAYgB,OAAA,EARL,WAQK;EA6BC;AAiBjB;AAyKA;EAAgC,eAAA,EAAA,OAAA;;AAAiC,iBAvNjD,0BAAA,CAuNmD,KAAA,EAtN1D,+BAsN0D,CAAA,EAtN3B,gBAAA,CAAA,QAsN2B;AAAA,UA1LlD,yBAAA,CA0LkD;EAuClD;AAsBjB;AAuKA;EAmBgB,OAAA,EA7aL,WA6aK;EAmEA;AAchB;AAsBA;EA4HiB,SAAA,EAAA,MAAA;EAsBD;;;;;iBAzpBA,oBAAA,QAA4B,4BAAyB,gBAAA,CAAA;;;;iBAyKrD,aAAA;;;UAAoC;IAAa,gBAAA,CAAE;UAuClD,6BAAA;;;;;;;;UASP;;;;;;;;;;;iBAaM,wBAAA,QAAgC,gCAA6B,gBAAA,CAAA;UAuK5D,iCAAA;;;;;;;;;;;;;;;;iBAmBD,4BAAA,QACP,oCAAiC,gBAAA,CAAA;iBAkE1B,2BAAA;WAA8C;IAAW,gBAAA,CAAE;UAc1D,uBAAA;;;;WAIN;;;;;;;;;;;;;;;iBAkBK,kBAAA,QAA0B,0BAAuB,gBAAA,CAAA;UA4HhD,uBAAA;;;;WAIN;;;;;;;;;;;;;;;iBAkBK,kBAAA,QAA0B,0BAAuB,gBAAA,CAAA"}
1
+ {"version":3,"file":"options-parser-logic.d.mts","names":[],"sources":["../../src/components/options-parser-logic.tsx"],"sourcesContent":[],"mappings":";;;;UA+CiB,+BAAA;;;AAAjB;EAYgB,OAAA,EARL,WAQK;EA6BC;AAiBjB;AA2KA;EAAgC,eAAA,EAAA,OAAA;;AAAiC,iBAzNjD,0BAAA,CAyNmD,KAAA,EAxN1D,+BAwN0D,CAAA,EAxN3B,eAAA,CAAA,QAwN2B;AAAA,UA5LlD,yBAAA,CA4LkD;EA2ClD;AAsBjB;AA0KA;EAmBgB,OAAA,EAtbL,WAsbK;EAmEA;AAchB;AAsBA;EA4HiB,SAAA,EAAA,MAAA;EAsBD;;;;;iBAlqBA,oBAAA,QAA4B,4BAAyB,eAAA,CAAA;;;;iBA2KrD,aAAA;;;UAAoC;IAAa,eAAA,CAAE;UA2ClD,6BAAA;;;;;;;;UASP;;;;;;;;;;;iBAaM,wBAAA,QAAgC,gCAA6B,eAAA,CAAA;UA0K5D,iCAAA;;;;;;;;;;;;;;;;iBAmBD,4BAAA,QACP,oCAAiC,eAAA,CAAA;iBAkE1B,2BAAA;WAA8C;IAAW,eAAA,CAAE;UAc1D,uBAAA;;;;WAIN;;;;;;;;;;;;;;;iBAkBK,kBAAA,QAA0B,0BAAuB,eAAA,CAAA;UA4HhD,uBAAA;;;;WAIN;;;;;;;;;;;;;;;iBAkBK,kBAAA,QAA0B,0BAAuB,eAAA,CAAA"}
@@ -1,4 +1,5 @@
1
1
  import { getDynamicPathSegmentName, isDynamicPathSegment } from "../plugin-utils/context-helpers.mjs";
2
+ import { CommandParameterKinds } from "../types/command.mjs";
2
3
  import { computedOptions } from "../contexts/options.mjs";
3
4
  import { BooleanInputParserLogic } from "./helpers.mjs";
4
5
  import { createComponent, createIntrinsic, memo } from "@alloy-js/core/jsx-runtime";
@@ -7,7 +8,6 @@ import { constantCase } from "@stryke/string-format/constant-case";
7
8
  import { isSetString } from "@stryke/type-checks/is-set-string";
8
9
  import { For, Show, code, computed } from "@alloy-js/core";
9
10
  import { Spacing } from "@powerlines/plugin-alloy/core/components/spacing";
10
- import { ReflectionKind } from "@powerlines/deepkit/vendor/type";
11
11
  import { ElseClause, ElseIfClause, IfStatement, InterfaceDeclaration, InterfaceMember, VarDeclaration } from "@alloy-js/typescript";
12
12
  import { pascalCase } from "@stryke/string-format/pascal-case";
13
13
 
@@ -49,7 +49,7 @@ function ArgumentsParserLogic(props) {
49
49
  const { command, envPrefix, isCaseSensitive } = props;
50
50
  return createComponent(Show, {
51
51
  get when() {
52
- return command.arguments && command.arguments.length > 0;
52
+ return command.args && command.args.length > 0;
53
53
  },
54
54
  get children() {
55
55
  return [
@@ -73,7 +73,7 @@ function ArgumentsParserLogic(props) {
73
73
  createComponent(Spacing, {}),
74
74
  createComponent(For, {
75
75
  get each() {
76
- return command.arguments ?? [];
76
+ return command.args ?? [];
77
77
  },
78
78
  hardline: true,
79
79
  children: (arg, index) => [
@@ -83,7 +83,7 @@ function ArgumentsParserLogic(props) {
83
83
  return camelCase(arg.name);
84
84
  },
85
85
  get type() {
86
- return `${arg.kind === ReflectionKind.boolean ? "boolean" : arg.kind === ReflectionKind.number ? "number" : "string"}${(arg.kind === ReflectionKind.string || arg.kind === ReflectionKind.number) && arg.variadic ? "[]" : ""}${arg.optional ? " | undefined" : ""}`;
86
+ return `${arg.kind === CommandParameterKinds.boolean ? "boolean" : arg.kind === CommandParameterKinds.number ? "number" : "string"}${(arg.kind === CommandParameterKinds.string || arg.kind === CommandParameterKinds.number) && arg.variadic ? "[]" : ""}${arg.optional ? " | undefined" : ""}`;
87
87
  },
88
88
  get initializer() {
89
89
  return [createComponent(Show, {
@@ -98,10 +98,10 @@ function ArgumentsParserLogic(props) {
98
98
  return arg.default !== void 0;
99
99
  },
100
100
  get fallback() {
101
- return (arg.kind === ReflectionKind.string || arg.kind === ReflectionKind.number) && arg.variadic ? code`[]` : code`undefined;`;
101
+ return (arg.kind === CommandParameterKinds.string || arg.kind === CommandParameterKinds.number) && arg.variadic ? code`[]` : code`undefined;`;
102
102
  },
103
103
  get children() {
104
- return arg.kind === ReflectionKind.string ? code`"${arg.default}"` : code`${arg.default}`;
104
+ return arg.kind === CommandParameterKinds.string ? code`"${arg.default}"` : code`${arg.default}`;
105
105
  }
106
106
  })];
107
107
  }
@@ -112,7 +112,7 @@ function ArgumentsParserLogic(props) {
112
112
  get children() {
113
113
  return [memo(() => code`${camelCase(arg.name)} = `), createComponent(Show, {
114
114
  get when() {
115
- return arg.kind === ReflectionKind.string || arg.kind === ReflectionKind.number;
115
+ return arg.kind === CommandParameterKinds.string || arg.kind === CommandParameterKinds.number;
116
116
  },
117
117
  get fallback() {
118
118
  return createComponent(BooleanInputParserLogic, { name: `args[argsIndex + ${index}] ` });
@@ -120,19 +120,19 @@ function ArgumentsParserLogic(props) {
120
120
  get children() {
121
121
  return createComponent(Show, {
122
122
  get when() {
123
- return (arg.kind === ReflectionKind.string || arg.kind === ReflectionKind.number) && arg.variadic;
123
+ return (arg.kind === CommandParameterKinds.string || arg.kind === CommandParameterKinds.number) && arg.variadic;
124
124
  },
125
125
  get fallback() {
126
126
  return createComponent(Show, {
127
127
  get when() {
128
- return arg.kind === ReflectionKind.number;
128
+ return arg.kind === CommandParameterKinds.number;
129
129
  },
130
130
  fallback: code`args[argsIndex + ${index}]; `,
131
131
  children: code`Number(args[argsIndex + ${index}]); `
132
132
  });
133
133
  },
134
134
  get children() {
135
- return code`args.slice(argsIndex + ${index}, (optionsIndex > argsIndex ? optionsIndex : args.length) - ${command.arguments.length - index}).join(" ").split(",").map(item => item.trim().replace(/^("|')/, "").replace(/("|')$/, "")).filter(Boolean)`;
135
+ return code`args.slice(argsIndex + ${index}, (optionsIndex > argsIndex ? optionsIndex : args.length) - ${command.args.length - index}).join(" ").split(",").map(item => item.trim().replace(/^("|')/, "").replace(/("|')$/, "")).filter(Boolean)`;
136
136
  }
137
137
  });
138
138
  }
@@ -159,7 +159,7 @@ function OptionsMember({ option }) {
159
159
  return [
160
160
  createComponent(Show, {
161
161
  get when() {
162
- return option.kind === ReflectionKind.string;
162
+ return option.kind === CommandParameterKinds.string;
163
163
  },
164
164
  get children() {
165
165
  return createComponent(InterfaceMember, {
@@ -178,7 +178,7 @@ function OptionsMember({ option }) {
178
178
  }),
179
179
  createComponent(Show, {
180
180
  get when() {
181
- return option.kind === ReflectionKind.number;
181
+ return option.kind === CommandParameterKinds.number;
182
182
  },
183
183
  get children() {
184
184
  return createComponent(InterfaceMember, {
@@ -197,7 +197,7 @@ function OptionsMember({ option }) {
197
197
  }),
198
198
  createComponent(Show, {
199
199
  get when() {
200
- return option.kind === ReflectionKind.boolean;
200
+ return option.kind === CommandParameterKinds.boolean;
201
201
  },
202
202
  get children() {
203
203
  return createComponent(InterfaceMember, {
@@ -224,7 +224,7 @@ function OptionsMemberParserLogic(props) {
224
224
  const equalsRegex = `/^--?(${isCaseSensitive || name.length === 1 ? name : name.toLowerCase().replaceAll("-", "").replaceAll("_", "")}${option.alias && option.alias.length > 0 ? "|" : ""}${option.alias?.map((a) => (isCaseSensitive || name.length === 1 ? a : a.toLowerCase().replaceAll("-", "").replaceAll("_", "")) === "?" ? "\\?" : isCaseSensitive || name.length === 1 ? a : a.toLowerCase().replaceAll("-", "").replaceAll("_", "")).join("|")})=/`;
225
225
  return [createComponent(Show, {
226
226
  get when() {
227
- return option.kind === ReflectionKind.string || option.kind === ReflectionKind.number;
227
+ return option.kind === CommandParameterKinds.string || option.kind === CommandParameterKinds.number;
228
228
  },
229
229
  get children() {
230
230
  return [createComponent(Show, {
@@ -254,13 +254,13 @@ function OptionsMemberParserLogic(props) {
254
254
  }),
255
255
  createComponent(Show, {
256
256
  get when() {
257
- return option.kind === ReflectionKind.string;
257
+ return option.kind === CommandParameterKinds.string;
258
258
  },
259
259
  children: code`...arg.replace(${equalsRegex}, "").split(",").map(item => item.trim().replace(/^("|')/, "").replace(/("|')$/, "")).filter(Boolean) `
260
260
  }),
261
261
  createComponent(Show, {
262
262
  get when() {
263
- return option.kind === ReflectionKind.number;
263
+ return option.kind === CommandParameterKinds.number;
264
264
  },
265
265
  children: code`...arg.replace(${equalsRegex}, "").split(",").map(item => item.trim().replace(/^("|')/, "").replace(/("|')$/, "")).filter(Boolean).map(Number).filter(value => !Number.isNaN(value)) `
266
266
  }),
@@ -281,13 +281,13 @@ function OptionsMemberParserLogic(props) {
281
281
  }),
282
282
  createComponent(Show, {
283
283
  get when() {
284
- return option.kind === ReflectionKind.string;
284
+ return option.kind === CommandParameterKinds.string;
285
285
  },
286
286
  children: code`...args[++i].split(",").map(item => item.trim().replace(/^("|')/, "").replace(/("|')$/, "")).filter(Boolean) `
287
287
  }),
288
288
  createComponent(Show, {
289
289
  get when() {
290
- return option.kind === ReflectionKind.number;
290
+ return option.kind === CommandParameterKinds.number;
291
291
  },
292
292
  children: code`...args[++i].split(",").map(item => item.trim().replace(/^("|')/, "").replace(/("|')$/, "")).filter(Boolean).map(Number).filter(value => !Number.isNaN(value)) `
293
293
  }),
@@ -308,7 +308,7 @@ function OptionsMemberParserLogic(props) {
308
308
  get children() {
309
309
  return [createComponent(Show, {
310
310
  get when() {
311
- return option.kind === ReflectionKind.string;
311
+ return option.kind === CommandParameterKinds.string;
312
312
  },
313
313
  get children() {
314
314
  return [createComponent(Show, {
@@ -321,7 +321,7 @@ function OptionsMemberParserLogic(props) {
321
321
  }
322
322
  }), createComponent(Show, {
323
323
  get when() {
324
- return option.kind === ReflectionKind.number;
324
+ return option.kind === CommandParameterKinds.number;
325
325
  },
326
326
  get children() {
327
327
  return [
@@ -353,7 +353,7 @@ function OptionsMemberParserLogic(props) {
353
353
  get children() {
354
354
  return [createComponent(Show, {
355
355
  get when() {
356
- return option.kind === ReflectionKind.string;
356
+ return option.kind === CommandParameterKinds.string;
357
357
  },
358
358
  get children() {
359
359
  return [createComponent(Show, {
@@ -366,7 +366,7 @@ function OptionsMemberParserLogic(props) {
366
366
  }
367
367
  }), createComponent(Show, {
368
368
  get when() {
369
- return option.kind === ReflectionKind.number;
369
+ return option.kind === CommandParameterKinds.number;
370
370
  },
371
371
  get children() {
372
372
  return [
@@ -400,7 +400,7 @@ function OptionsMemberParserLogic(props) {
400
400
  }
401
401
  }), createComponent(Show, {
402
402
  get when() {
403
- return option.kind === ReflectionKind.boolean;
403
+ return option.kind === CommandParameterKinds.boolean;
404
404
  },
405
405
  get children() {
406
406
  return [
@@ -502,9 +502,9 @@ function OptionsParserLogic(props) {
502
502
  get initializer() {
503
503
  return code` {
504
504
  ${Object.entries(options.value).map(([name, option]) => {
505
- if (option.kind === ReflectionKind.string) return ` ${name.includes("?") || name.includes("-") ? `"${name}"` : `${name}`}: ${option.env ? `env.${envPrefix}_${option.env}` : ""}${option.variadic ? option.default !== void 0 ? `${option.env ? " ?? " : ""}${JSON.stringify(option.default)}` : option.env ? " ?? []" : "" : option.default !== void 0 ? `${option.env ? " ?? " : ""}"${option.default}"` : ""}, `;
506
- else if (option.kind === ReflectionKind.number) return ` ${name.includes("?") || name.includes("-") ? `"${name}"` : `${name}`}: ${option.env ? `env.${envPrefix}_${option.env}` : ""}${option.variadic ? option.default !== void 0 ? `${option.env ? " ?? " : ""}${JSON.stringify(option.default)}` : option.env ? " ?? []" : "" : option.default !== void 0 ? `${option.env ? " ?? " : ""}${option.default}` : ""}, `;
507
- else if (option.kind === ReflectionKind.boolean) return ` ${name.includes("?") || name.includes("-") ? `"${name}"` : `${name}`}: ${option.env ? `env.${envPrefix}_${option.env} ?? ` : ""}${option.default ? "true" : "false"},`;
505
+ if (option.kind === CommandParameterKinds.string) return ` ${name.includes("?") || name.includes("-") ? `"${name}"` : `${name}`}: ${option.env ? `env.${envPrefix}_${option.env}` : ""}${option.variadic ? option.default !== void 0 ? `${option.env ? " ?? " : ""}${JSON.stringify(option.default)}` : option.env ? " ?? []" : "" : option.default !== void 0 ? `${option.env ? " ?? " : ""}"${option.default}"` : ""}, `;
506
+ else if (option.kind === CommandParameterKinds.number) return ` ${name.includes("?") || name.includes("-") ? `"${name}"` : `${name}`}: ${option.env ? `env.${envPrefix}_${option.env}` : ""}${option.variadic ? option.default !== void 0 ? `${option.env ? " ?? " : ""}${JSON.stringify(option.default)}` : option.env ? " ?? []" : "" : option.default !== void 0 ? `${option.env ? " ?? " : ""}${option.default}` : ""}, `;
507
+ else if (option.kind === CommandParameterKinds.boolean) return ` ${name.includes("?") || name.includes("-") ? `"${name}"` : `${name}`}: ${option.env ? `env.${envPrefix}_${option.env} ?? ` : ""}${option.default ? "true" : "false"},`;
508
508
  return "";
509
509
  }).join("")}
510
510
  } as ${pascalCase(command.name)}Options;`;