@shell-shock/core 0.13.1 → 0.13.3

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 (48) hide show
  1. package/README.md +1 -1
  2. package/dist/components/utils-builtin.cjs +19 -0
  3. package/dist/components/utils-builtin.cjs.map +1 -1
  4. package/dist/components/utils-builtin.mjs +19 -0
  5. package/dist/components/utils-builtin.mjs.map +1 -1
  6. package/dist/helpers/utilities.cjs +9 -9
  7. package/dist/helpers/utilities.cjs.map +1 -1
  8. package/dist/helpers/utilities.mjs +9 -9
  9. package/dist/helpers/utilities.mjs.map +1 -1
  10. package/dist/index.cjs +1 -0
  11. package/dist/index.d.cts +2 -2
  12. package/dist/index.d.mts +2 -2
  13. package/dist/index.mjs +2 -2
  14. package/dist/plugin.cjs +26 -2
  15. package/dist/plugin.cjs.map +1 -1
  16. package/dist/plugin.d.cts.map +1 -1
  17. package/dist/plugin.d.mts.map +1 -1
  18. package/dist/plugin.mjs +27 -3
  19. package/dist/plugin.mjs.map +1 -1
  20. package/dist/resolver/helpers.cjs +5 -0
  21. package/dist/resolver/helpers.cjs.map +1 -1
  22. package/dist/resolver/helpers.mjs +6 -1
  23. package/dist/resolver/helpers.mjs.map +1 -1
  24. package/dist/resolver/resolve.cjs +1 -1
  25. package/dist/resolver/resolve.cjs.map +1 -1
  26. package/dist/resolver/resolve.mjs +2 -2
  27. package/dist/resolver/resolve.mjs.map +1 -1
  28. package/dist/types/command.cjs +4 -2
  29. package/dist/types/command.cjs.map +1 -1
  30. package/dist/types/command.d.cts +11 -0
  31. package/dist/types/command.d.cts.map +1 -1
  32. package/dist/types/command.d.mts +11 -0
  33. package/dist/types/command.d.mts.map +1 -1
  34. package/dist/types/command.mjs +4 -2
  35. package/dist/types/command.mjs.map +1 -1
  36. package/dist/types/config.cjs +17 -5
  37. package/dist/types/config.cjs.map +1 -1
  38. package/dist/types/config.d.cts +30 -6
  39. package/dist/types/config.d.cts.map +1 -1
  40. package/dist/types/config.d.mts +30 -6
  41. package/dist/types/config.d.mts.map +1 -1
  42. package/dist/types/config.mjs +17 -6
  43. package/dist/types/config.mjs.map +1 -1
  44. package/dist/types/index.cjs +1 -0
  45. package/dist/types/index.d.cts +2 -2
  46. package/dist/types/index.d.mts +2 -2
  47. package/dist/types/index.mjs +2 -2
  48. package/package.json +10 -10
@@ -180,9 +180,10 @@ const __ΩCommandBase = [
180
180
  "description",
181
181
  "alias",
182
182
  "icon",
183
+ "reference",
183
184
  "isVirtual",
184
185
  "CommandBase",
185
- "PP&,J4!&4\"P&,J4#&F4$&4%8&4&8&F4'8&4(8)4)Mw*y"
186
+ "PP&,J4!&4\"P&,J4#&F4$&4%8&4&8&F4'8&4(8&4)8)4*Mw+y"
186
187
  ];
187
188
  const __ΩCommandConfig = [
188
189
  () => __ΩCommandBase,
@@ -226,8 +227,9 @@ const __ΩCommandMetadata = [
226
227
  "description",
227
228
  "alias",
228
229
  "icon",
230
+ "reference",
229
231
  "CommandMetadata",
230
- "P&4!8&4\"8P&&FJ4#8&4$8Mw%y"
232
+ "P&4!8&4\"8P&&FJ4#8&4$8&4%8Mw&y"
231
233
  ];
232
234
  const __ΩCommandModule = [
233
235
  () => __ΩCommandMetadata,
@@ -1 +1 @@
1
- {"version":3,"file":"command.mjs","names":[],"sources":["../../src/types/command.ts"],"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 type { StandardJSONSchemaV1 } from \"@standard-schema/spec\";\nimport type { JsonSchema7TupleType } from \"@stryke/json\";\nimport type { AnyFunction } from \"@stryke/types/base\";\nimport type { JSONSchema7Object } from \"json-schema\";\nimport type { ResolvedEntryTypeDefinition } from \"powerlines\";\nimport type * as z3 from \"zod/v3\";\n\nexport type CommandParameterType =\n | string\n | number\n | boolean\n | (string | number)[];\n\nexport const CommandParameterKinds = {\n string: \"string\",\n number: \"number\",\n boolean: \"boolean\"\n} as const;\n\nexport type CommandParameterKind =\n (typeof CommandParameterKinds)[keyof typeof CommandParameterKinds];\n\nexport interface BaseCommandParameter {\n /**\n * The option name.\n */\n name: string;\n /**\n * The option kind.\n */\n kind: CommandParameterKind;\n /**\n * The display title.\n */\n title: string;\n /**\n * The option description.\n */\n description: string;\n /**\n * Alternative option names.\n */\n alias: string[];\n /**\n * The environment variable name or false to disable.\n */\n env: string | false;\n /**\n * Whether the option is optional.\n */\n optional: boolean;\n}\n\nexport interface StringCommandParameter extends BaseCommandParameter {\n /**\n * The option kind.\n */\n kind: \"string\";\n /**\n * The default value.\n */\n default?: string;\n /**\n * A standard string format to validate the option value against.\n */\n format?:\n | \"email\"\n | \"uri\"\n | \"uuid\"\n | \"ipv4\"\n | \"ipv6\"\n | \"date\"\n | \"time\"\n | \"date-time\"\n | \"duration\";\n /**\n * Whether the option accepts multiple values.\n */\n variadic: boolean;\n\n /**\n * The allowed choices for the option value.\n */\n choices?: string[];\n}\n\nexport interface NumberCommandParameter extends BaseCommandParameter {\n /**\n * The option kind.\n */\n kind: \"number\";\n /**\n * The default value.\n */\n default?: number;\n /**\n * Whether the option accepts multiple values.\n */\n variadic: boolean;\n\n /**\n * The allowed choices for the option value.\n */\n choices?: number[];\n}\n\nexport interface BooleanCommandParameter extends BaseCommandParameter {\n /**\n * The option kind.\n */\n kind: \"boolean\";\n /**\n * The default value.\n */\n default?: boolean;\n}\n\nexport type CommandParameter =\n | StringCommandParameter\n | NumberCommandParameter\n | BooleanCommandParameter;\n\nexport type AsCommandParameterConfig<T extends BaseCommandParameter> = Pick<\n T,\n \"kind\" | \"alias\"\n> &\n Partial<Omit<T, \"kind\" | \"alias\">> & {\n alias?: string | string[];\n };\n\nexport type StringCommandParameterConfig =\n AsCommandParameterConfig<StringCommandParameter>;\nexport type NumberCommandParameterConfig =\n AsCommandParameterConfig<NumberCommandParameter>;\nexport type BooleanCommandParameterConfig =\n AsCommandParameterConfig<BooleanCommandParameter>;\n\nexport type CommandParameterConfig =\n | StringCommandParameterConfig\n | NumberCommandParameterConfig\n | BooleanCommandParameterConfig;\n\nexport interface BooleanCommandOption extends BooleanCommandParameter {\n /**\n * The option this negates.\n */\n isNegativeOf?: string;\n /**\n * Whether to skip adding a negative option.\n */\n skipAddingNegative?: boolean;\n}\n\nexport type CommandOption =\n | StringCommandParameter\n | NumberCommandParameter\n | BooleanCommandOption;\nexport type CommandOptionConfig = AsCommandParameterConfig<CommandOption>;\n\nexport type CommandArgument =\n | StringCommandParameter\n | NumberCommandParameter\n | BooleanCommandParameter;\nexport type CommandArgumentConfig = AsCommandParameterConfig<CommandArgument>;\n\nexport interface CommandBase {\n /**\n * The command id.\n */\n id: string | null;\n\n /**\n * The command name.\n */\n name: string;\n\n /**\n * The full command path value.\n */\n path: string | null;\n\n /**\n * The path segments.\n */\n segments: string[];\n\n /**\n * The display title.\n */\n title?: string;\n\n /**\n * The command description.\n */\n description?: string;\n\n /**\n * Alternative command names.\n */\n alias?: string[];\n\n /**\n * The command icon.\n */\n icon?: string;\n\n /**\n * Whether the command is virtual.\n *\n * @remarks\n * Virtual commands are considered forks in the command tree and are not directly executable. They are used to group related subcommands together without having an actual command handler or entry point.\n */\n isVirtual: boolean;\n}\n\nexport interface CommandConfig extends CommandBase {\n /**\n * The command id.\n */\n id: string;\n\n /**\n * The resolved entry definition.\n */\n entry: ResolvedEntryTypeDefinition;\n}\n\nexport type CommandTree = CommandConfig & {\n /**\n * The display title.\n */\n title: string;\n /**\n * The command description.\n */\n description: string;\n /**\n * Alternative command names.\n */\n alias: string[];\n /**\n * The command options.\n */\n options: Record<string, CommandOption>;\n /**\n * The positional arguments provided to the command.\n */\n args: CommandArgument[];\n /**\n * The parent command.\n */\n parent: null | CommandTree;\n /**\n * Child commands.\n */\n children: Record<string, CommandTree>;\n};\n\nexport type SerializedCommandTree = Omit<CommandTree, \"parent\" | \"children\"> & {\n /**\n * The parent command id.\n */\n parent: null | string;\n /**\n * Serialized child commands.\n */\n children: Record<string, SerializedCommandTree>;\n};\n\nexport interface CommandMetadata {\n /**\n * The display name of the command.\n *\n * @remarks\n * This value will be used in various displays of the user interface and documentation. If not provided, a formatted value of the command name will be used.\n */\n title?: string;\n\n /**\n * A brief description of what the command does.\n *\n * @remarks\n * This value will be used in various displays of the user interface and documentation. If not provided, a default message may be shown.\n */\n description?: string;\n\n /**\n * One or more alternative names for the command.\n */\n alias?: string | string[];\n\n /**\n * An optional icon to visually represent the command in user interfaces.\n *\n * @remarks\n * This can be a string containing an emoji, a Unicode character, or any other symbol that helps to visually identify the command. If not provided, no icon will be displayed.\n */\n icon?: string;\n}\n\nexport interface CommandModule {\n metadata?: CommandMetadata;\n options?:\n | Record<string, CommandOptionConfig>\n | JSONSchema7Object\n | StandardJSONSchemaV1<Record<string, CommandParameterType>>\n | z3.AnyZodObject;\n args?:\n | CommandArgumentConfig[]\n | JsonSchema7TupleType\n | StandardJSONSchemaV1<CommandParameterType[]>\n | z3.AnyZodTuple;\n default?: AnyFunction;\n}\n"],"mappings":";AAAA,MAAM,UAAU;CAAC;CAAK;CAAK;CAAQ;CAA4B;;;;;;AAE/D,MAAM,UAAU;CAAC;CAAG;OAAM;OAAiB;CAAA;CAAA;CAAA;;;;;;;AAE3C,MAAM,aAAS;CAAA;CAAS;CAAG;CAAY;CAA2B;AAClE,MAAI,0BAA4B,CAAC,wBAAqB,gBAAa;AAEnE,MAAK,wBAA0B;;CAE9B,QAAW;CACX,SAAY;CACZ;AACD,MAAC,0BAA+B;OAAG;OAAkB;CAAA;CAAA;CAAA;AAErD,MAAM,0BAAqB;CAAM;OAAG;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;AAEpC,MAAM,4BAA4B;OAAO;CAAyB;CAAI;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;AAEtE,MAAM,4BAA4B;OAAO;CAAwB;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;AAEjE,MAAM,6BAA6B;OAAO;CAAW;CAAA;CAAA;CAAA;CAAA;CAAA;AAErD,MAAM,sBAAQ;OAAA;OAA+C;OAAA;CAAA;CAAA;CAAA;;;;;;;;;;;;;;AAI7D,MAAI,kCAAA;OAAA;OAAA;CAAA;CAAA;CAAA;AAEJ,MAAI,kCAAA;OAAA;OAAA;CAAA;CAAA;CAAA;;;;;;;AAIJ,MAAE,4BAAgB;OAAA;OAAA;OAAA;CAAA;CAAA;CAAA;AAElB,MAAE,0BAAiB;OAAA;CAAA;CAAA;CAAA;CAAA;CAAA;;;;;;;;AAInB,MAAG,yBAA4B;OAAO;OAA8B;CAAA;CAAA;CAAA;AAEpE,MAAM,qBAAW;OAAA;OAAqB;OAAA;CAAA;CAAA;CAAA;AAEtC,MAAK,2BAAe;OAAA;OAAA;CAAA;CAAA;CAAA;AAEpB,MAAM,iBAAQ;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;AAEd,MAAK,mBAAe;OAAA;CAAA;CAAA;CAAA;CAAA;CAAA;AAEpB,MAAM,iBAAE;OAAoB;CAAA;CAAA;CAAA;OAAA;OAAA;CAAA;OAAA;CAAA;CAAA;CAAA;OAAA;CAAA;CAAA;CAAA;CAAA;CAAA;AAE5B,MAAK,2BAAiB;OAAA;OAAA;CAAA;CAAA;CAAA;OAAA;CAAA;CAAA;CAAA;CAAA;CAAA;AAEtB,MAAE,qBAAa;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;AAEf,MAAK,mBAAW;OAAW;CAAA;OAAA;OAAA;CAAA;CAAA;CAAA;OAAA;CAAA;CAAA;CAAA;CAAA;CAAA"}
1
+ {"version":3,"file":"command.mjs","names":[],"sources":["../../src/types/command.ts"],"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 type { StandardJSONSchemaV1 } from \"@standard-schema/spec\";\nimport type { JsonSchema7TupleType } from \"@stryke/json\";\nimport type { AnyFunction } from \"@stryke/types/base\";\nimport type { JSONSchema7Object } from \"json-schema\";\nimport type { ResolvedEntryTypeDefinition } from \"powerlines\";\nimport type * as z3 from \"zod/v3\";\n\nexport type CommandParameterType =\n | string\n | number\n | boolean\n | (string | number)[];\n\nexport const CommandParameterKinds = {\n string: \"string\",\n number: \"number\",\n boolean: \"boolean\"\n} as const;\n\nexport type CommandParameterKind =\n (typeof CommandParameterKinds)[keyof typeof CommandParameterKinds];\n\nexport interface BaseCommandParameter {\n /**\n * The option name.\n */\n name: string;\n\n /**\n * The option kind.\n */\n kind: CommandParameterKind;\n\n /**\n * The display title.\n */\n title: string;\n\n /**\n * The option description.\n */\n description: string;\n\n /**\n * Alternative option names.\n */\n alias: string[];\n\n /**\n * The environment variable name or false to disable.\n */\n env: string | false;\n\n /**\n * Whether the option is optional.\n */\n optional: boolean;\n}\n\nexport interface StringCommandParameter extends BaseCommandParameter {\n /**\n * The option kind.\n */\n kind: \"string\";\n\n /**\n * The default value.\n */\n default?: string;\n\n /**\n * A standard string format to validate the option value against.\n */\n format?:\n | \"email\"\n | \"uri\"\n | \"uuid\"\n | \"ipv4\"\n | \"ipv6\"\n | \"date\"\n | \"time\"\n | \"date-time\"\n | \"duration\";\n\n /**\n * Whether the option accepts multiple values.\n */\n variadic: boolean;\n\n /**\n * The allowed choices for the option value.\n */\n choices?: string[];\n}\n\nexport interface NumberCommandParameter extends BaseCommandParameter {\n /**\n * The option kind.\n */\n kind: \"number\";\n\n /**\n * The default value.\n */\n default?: number;\n\n /**\n * Whether the option accepts multiple values.\n */\n variadic: boolean;\n\n /**\n * The allowed choices for the option value.\n */\n choices?: number[];\n}\n\nexport interface BooleanCommandParameter extends BaseCommandParameter {\n /**\n * The option kind.\n */\n kind: \"boolean\";\n\n /**\n * The default value.\n */\n default?: boolean;\n}\n\nexport type CommandParameter =\n | StringCommandParameter\n | NumberCommandParameter\n | BooleanCommandParameter;\n\nexport type AsCommandParameterConfig<T extends BaseCommandParameter> = Pick<\n T,\n \"kind\" | \"alias\"\n> &\n Partial<Omit<T, \"kind\" | \"alias\">> & {\n alias?: string | string[];\n };\n\nexport type StringCommandParameterConfig =\n AsCommandParameterConfig<StringCommandParameter>;\nexport type NumberCommandParameterConfig =\n AsCommandParameterConfig<NumberCommandParameter>;\nexport type BooleanCommandParameterConfig =\n AsCommandParameterConfig<BooleanCommandParameter>;\n\nexport type CommandParameterConfig =\n | StringCommandParameterConfig\n | NumberCommandParameterConfig\n | BooleanCommandParameterConfig;\n\nexport interface BooleanCommandOption extends BooleanCommandParameter {\n /**\n * The option this negates.\n */\n isNegativeOf?: string;\n\n /**\n * Whether to skip adding a negative option.\n */\n skipAddingNegative?: boolean;\n}\n\nexport type CommandOption =\n | StringCommandParameter\n | NumberCommandParameter\n | BooleanCommandOption;\nexport type CommandOptionConfig = AsCommandParameterConfig<CommandOption>;\n\nexport type CommandArgument =\n | StringCommandParameter\n | NumberCommandParameter\n | BooleanCommandParameter;\nexport type CommandArgumentConfig = AsCommandParameterConfig<CommandArgument>;\n\nexport interface CommandBase {\n /**\n * The command id.\n */\n id: string | null;\n\n /**\n * The command name.\n */\n name: string;\n\n /**\n * The full command path value.\n */\n path: string | null;\n\n /**\n * The path segments.\n */\n segments: string[];\n\n /**\n * The display title.\n */\n title?: string;\n\n /**\n * The command description.\n */\n description?: string;\n\n /**\n * Alternative command names.\n */\n alias?: string[];\n\n /**\n * The command icon.\n */\n icon?: string;\n\n /**\n * A URL to the command documentation or reference.\n */\n reference?: string;\n\n /**\n * Whether the command is virtual.\n *\n * @remarks\n * Virtual commands are considered forks in the command tree and are not directly executable. They are used to group related subcommands together without having an actual command handler or entry point.\n */\n isVirtual: boolean;\n}\n\nexport interface CommandConfig extends CommandBase {\n /**\n * The command id.\n */\n id: string;\n\n /**\n * The resolved entry definition.\n */\n entry: ResolvedEntryTypeDefinition;\n}\n\nexport type CommandTree = CommandConfig & {\n /**\n * The display title.\n */\n title: string;\n\n /**\n * The command description.\n */\n description: string;\n\n /**\n * Alternative command names.\n */\n alias: string[];\n\n /**\n * The command options.\n */\n options: Record<string, CommandOption>;\n\n /**\n * The positional arguments provided to the command.\n */\n args: CommandArgument[];\n\n /**\n * The parent command.\n */\n parent: null | CommandTree;\n\n /**\n * Child commands.\n */\n children: Record<string, CommandTree>;\n};\n\nexport type SerializedCommandTree = Omit<CommandTree, \"parent\" | \"children\"> & {\n /**\n * The parent command id.\n */\n parent: null | string;\n /**\n * Serialized child commands.\n */\n children: Record<string, SerializedCommandTree>;\n};\n\nexport interface CommandMetadata {\n /**\n * The display name of the command.\n *\n * @remarks\n * This value will be used in various displays of the user interface and documentation. If not provided, a formatted value of the command name will be used.\n */\n title?: string;\n\n /**\n * A brief description of what the command does.\n *\n * @remarks\n * This value will be used in various displays of the user interface and documentation. If not provided, a default message may be shown.\n */\n description?: string;\n\n /**\n * One or more alternative names for the command.\n */\n alias?: string | string[];\n\n /**\n * An optional icon to visually represent the command in user interfaces.\n *\n * @remarks\n * This can be a string containing an emoji, a Unicode character, or any other symbol that helps to visually identify the command. If not provided, no icon will be displayed.\n */\n icon?: string;\n\n /**\n * A URL to the command documentation or reference.\n *\n * @remarks\n * This URL can be used in various displays of the user interface and documentation to provide users with a reference for the command. It can also be used by plugins to link to the documentation in relevant contexts. If the token `{command}` is included in the URL, it will be replaced with the full command path to provide links to command specific documentation. For example, `myapp command subcommand` will be translated to `{referenceLink}/command/subcommand`.\n */\n reference?: string;\n}\n\nexport interface CommandModule {\n metadata?: CommandMetadata;\n options?:\n | Record<string, CommandOptionConfig>\n | JSONSchema7Object\n | StandardJSONSchemaV1<Record<string, CommandParameterType>>\n | z3.AnyZodObject;\n args?:\n | CommandArgumentConfig[]\n | JsonSchema7TupleType\n | StandardJSONSchemaV1<CommandParameterType[]>\n | z3.AnyZodTuple;\n default?: AnyFunction;\n}\n"],"mappings":";AAAA,MAAM,UAAU;CAAC;CAAK;CAAK;CAAQ;CAA4B;;;;;;AAE/D,MAAM,UAAU;CAAC;CAAG;OAAM;OAAiB;CAAA;CAAA;CAAA;;;;;;;AAE3C,MAAM,aAAS;CAAA;CAAS;CAAG;CAAY;CAA2B;AAClE,MAAI,0BAA4B,CAAC,wBAAqB,gBAAa;AAEnE,MAAK,wBAA0B;;CAE9B,QAAW;CACX,SAAY;CACZ;AACD,MAAC,0BAA+B;OAAG;OAAkB;CAAA;CAAA;CAAA;AAErD,MAAM,0BAAqB;CAAM;OAAG;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;AAEpC,MAAM,4BAA4B;OAAO;CAAyB;CAAI;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;AAEtE,MAAM,4BAA4B;OAAO;CAAwB;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;AAEjE,MAAM,6BAA6B;OAAO;CAAW;CAAA;CAAA;CAAA;CAAA;CAAA;AAErD,MAAM,sBAAQ;OAAA;OAA+C;OAAA;CAAA;CAAA;CAAA;;;;;;;;;;;;;;AAI7D,MAAI,kCAAA;OAAA;OAAA;CAAA;CAAA;CAAA;AAEJ,MAAI,kCAAA;OAAA;OAAA;CAAA;CAAA;CAAA;;;;;;;AAIJ,MAAE,4BAAgB;OAAA;OAAA;OAAA;CAAA;CAAA;CAAA;AAElB,MAAE,0BAAiB;OAAA;CAAA;CAAA;CAAA;CAAA;CAAA;;;;;;;;AAInB,MAAG,yBAA4B;OAAO;OAA8B;CAAA;CAAA;CAAA;AAEpE,MAAM,qBAAW;OAAA;OAAqB;OAAA;CAAA;CAAA;CAAA;AAEtC,MAAK,2BAAe;OAAA;OAAA;CAAA;CAAA;CAAA;AAEpB,MAAM,iBAAQ;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;AAEd,MAAI,mBAAA;OAAA;CAAA;CAAA;CAAA;CAAA;CAAA;AAEJ,MAAI,iBAAA;OAAA;CAAA;CAAA;CAAA;OAAA;OAAA;CAAA;OAAA;CAAA;CAAA;CAAA;OAAA;CAAA;CAAA;CAAA;CAAA;CAAA;;;;;;;;;;;;;AAIJ,MAAK,qBAAiB;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;AAEtB,MAAE,mBAAa;OAAA;CAAA;OAAA;OAAA;CAAA;CAAA;CAAA;OAAA;CAAA;CAAA;CAAA;CAAA;CAAA"}
@@ -53,6 +53,12 @@ const __ΩBuildOptions = [
53
53
  "BuildOptions",
54
54
  "!P.\".#.$.%.&.'.(.).*.+.,Jo!#w-y"
55
55
  ];
56
+ const __ΩReferenceOptions = [
57
+ "app",
58
+ "commands",
59
+ "ReferenceOptions",
60
+ "P&4!&4\"8Mw#y"
61
+ ];
56
62
  const __ΩBaseOptions = [
57
63
  () => __ΩPartial,
58
64
  () => __ΩBuildOptions,
@@ -63,14 +69,16 @@ const __ΩBaseOptions = [
63
69
  "input",
64
70
  "",
65
71
  false,
66
- "defaultOptions",
72
+ "globalOptions",
67
73
  "isCaseSensitive",
68
74
  true,
69
75
  "bin",
70
76
  true,
71
77
  "autoAssignEnv",
78
+ () => __ΩReferenceOptions,
79
+ "reference",
72
80
  "BaseOptions",
73
- "Pn\"o!\"PP\"w#FP\"w$2%\"w&2'\"w#F/(.)J4*8)4+8>,P&&FJ4-8P..&J4/8MKw0y"
81
+ "Pn\"o!\"PP\"w#FP\"w$2%\"w&2'\"w#F/(.)J4*8)4+8>,P&&FJ4-8P..&J4/8Pn0&J418MKw2y"
74
82
  ];
75
83
  const __ΩOptions = [
76
84
  () => __ΩBaseOptions,
@@ -80,8 +88,8 @@ const __ΩOptions = [
80
88
  ];
81
89
  const __ΩOutputConfig = [
82
90
  () => __ΩPick,
83
- "outputPath",
84
- "assets",
91
+ "path",
92
+ "copy",
85
93
  "storage",
86
94
  false,
87
95
  "dts",
@@ -101,18 +109,22 @@ const __ΩResolvedConfig = [
101
109
  () => __ΩOmit,
102
110
  () => __ΩOptions,
103
111
  "bin",
112
+ "reference",
104
113
  () => __ΩRecord,
105
114
  "bin",
115
+ () => __ΩReferenceOptions,
116
+ "reference",
106
117
  "appSpecificEnvPrefix",
107
118
  () => __ΩUserConfig,
108
119
  "userConfig",
109
120
  "ResolvedConfig",
110
- "P!!!n#.$o\"#o!\"P&&o%#4&&4'n(4)MKw*y"
121
+ "P!!!n#P.$.%Jo\"#o!\"P&&o&#4'n(4)&4*n+4,MKw-y"
111
122
  ];
112
123
 
113
124
  //#endregion
114
125
  exports.__ΩOptions = __ΩOptions;
115
126
  exports.__ΩOutputConfig = __ΩOutputConfig;
127
+ exports.__ΩReferenceOptions = __ΩReferenceOptions;
116
128
  exports.__ΩResolvedConfig = __ΩResolvedConfig;
117
129
  exports.__ΩUserConfig = __ΩUserConfig;
118
130
  //# sourceMappingURL=config.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.cjs","names":[],"sources":["../../src/types/config.ts"],"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 type { AutoMDPluginResolvedConfig } from \"@powerlines/plugin-automd/types/plugin\";\nimport type {\n NodeJsPluginOptions,\n NodeJsPluginResolvedConfig,\n NodeJsPluginUserConfig\n} from \"@powerlines/plugin-nodejs/types/plugin\";\nimport type {\n TsdownPluginResolvedConfig,\n TsdownPluginUserConfig\n} from \"@powerlines/plugin-tsdown/types/plugin\";\nimport type { OutputConfig as PowerlinesOutputConfig } from \"powerlines\";\nimport type { CommandBase, CommandOption } from \"./command\";\nimport type { Context } from \"./context\";\n\ntype BuildOptions = Pick<\n TsdownPluginUserConfig,\n | \"root\"\n | \"name\"\n | \"title\"\n | \"description\"\n | \"logLevel\"\n | \"mode\"\n | \"skipCache\"\n | \"autoInstall\"\n | \"plugins\"\n | \"tsconfig\"\n | \"tsconfigRaw\"\n>;\n\ntype BaseOptions = Partial<BuildOptions> & {\n /**\n * A set of default command options to apply to each command.\n *\n * @remarks\n * To disable the addition of these default options, set this property to `false`, or provide a custom set of options/a function that returns them.\n */\n defaultOptions?:\n | CommandOption[]\n | ((context: Context, input: CommandBase) => CommandOption[])\n | false;\n\n /**\n * Determines whether commands and option names are treated as case-sensitive.\n *\n * @defaultValue `false`\n */\n isCaseSensitive?: boolean;\n\n /**\n * The name of the binary (the {@link https://docs.npmjs.com/cli/v11/configuring-npm/package-json#bin | \"bin\" field} in package.json) that will be used to run the application through NodeJs package managers (e.g., npm, yarn, pnpm).\n *\n * @remarks\n * If an array is provided, each binary will be linked to the same compiled output file. If not provided, the {@link Options.name | name} option will be used.\n *\n * @see https://docs.npmjs.com/cli/v11/configuring-npm/package-json#bin\n * @see https://yarnpkg.com/cli/bin\n * @see https://pnpm.io/package_json#bin\n */\n bin?: string | string[];\n\n /**\n * Should Shell Shock attempt to automatically assign environment variables to manipulate default values for command options based on the option name?\n *\n * @remarks\n * If set to a string, Shell Shock will use the provided string as an application specific environment variable prefix, convert the option name to {@link https://stringcase.org/cases/constant/ | constant case}, and prepend the provided `string` value to determine the corresponding environment variable name. For example, if an option is named `\"configPath\"` and the `autoAssignEnv` is `\"MY_APP_\"`, Shell Shock will look for an environment variable named `\"MY_APP_CONFIG_PATH\"` and assign its value to the option if it exists. If set to `true`, Shell Shock will use a default environment variable prefix derived from the {@link Options.name | application name}.\n *\n * @see https://medium.com/chingu/an-introduction-to-environment-variables-and-how-to-use-them-f602f66d15fa\n * @see https://stringcase.org/cases/constant/\n */\n autoAssignEnv?: true | string;\n};\n\n/**\n * The plugin options for Shell Shock.\n */\nexport type Options = BaseOptions & Partial<NodeJsPluginOptions>;\n\n/**\n * The output configuration options for Shell Shock.\n */\nexport type OutputConfig = Pick<\n PowerlinesOutputConfig,\n \"outputPath\" | \"assets\" | \"storage\"\n> & {\n /**\n * An indicator specifying whether to generate TypeScript declaration files (.d.ts) during the build process.\n */\n dts?: false;\n};\n\n/**\n * The user configuration options for Shell Shock.\n */\nexport type UserConfig = BaseOptions &\n Partial<NodeJsPluginUserConfig> & {\n /**\n * Configuration for the output of the build process\n */\n output?: OutputConfig;\n };\n\n/**\n * The resolved configuration options for Shell Shock.\n */\nexport type ResolvedConfig = TsdownPluginResolvedConfig &\n AutoMDPluginResolvedConfig &\n NodeJsPluginResolvedConfig &\n Required<Omit<Options, \"bin\">> & {\n /**\n * The name of the binary (the {@link https://docs.npmjs.com/cli/v11/configuring-npm/package-json#bin | \"bin\" field} in package.json) that will be used to run the application through NodeJs package managers (e.g., npm, yarn, pnpm).\n *\n * @remarks\n * If an array is provided, each binary will be linked to the same compiled output file. If not provided, the {@link Options.name | name} option will be used.\n *\n * @see https://docs.npmjs.com/cli/v11/configuring-npm/package-json#bin\n * @see https://yarnpkg.com/cli/bin\n * @see https://pnpm.io/package_json#bin\n */\n bin: Record<string, string>;\n\n /**\n * The command-line application specific environment variable prefix used for automatically assigning environment variables to command options.\n */\n appSpecificEnvPrefix: string;\n\n /**\n * The user configuration for the Shell Shock process.\n */\n userConfig: UserConfig;\n };\n"],"mappings":";;;AAAA,MAAM,UAAU;CAAC;CAAK;CAAK;CAAQ;CAA4B;;;;;;AAE/D,MAAM,cAAc;CAAA;CAAM;CAAW;CAAM;;;;;;;;;AAE3C,MAAM,YAAS;CAAA;CAAS;CAAG;CAAY;CAAqB;AAC5D,MAAI,aAAc;CAAA;CAAM;CAAA;CAAe;CAA4B;AACnE,MAAM,kBAAkB;OAAC;CAAa;CAAS;CAAA;CAAa;CAAO;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;AACnE,MAAK,iBAAkB;OAAO;OAAkB;CAAU;CAAoB;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;;;;;;;AAG9E,MAAC,kBAAuB;OAAG;CAAQ;CAAiB;CAAS;CAAM;CAAA;CAAA;CAAA;CAAA;AAEnE,MAAC,gBAAqB;OAAK;OAAsB;OAAI;CAAA;CAAA;CAAA;CAAA;AAErD,MAAM,oBAAoB;OAAO;OAAG;OAAA;CAAA;OAAA;CAAA;CAAA;OAAA;CAAA;CAAA;CAAA;CAAA"}
1
+ {"version":3,"file":"config.cjs","names":[],"sources":["../../src/types/config.ts"],"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 type { AutoMDPluginResolvedConfig } from \"@powerlines/plugin-automd/types/plugin\";\nimport type {\n NodeJsPluginOptions,\n NodeJsPluginResolvedConfig,\n NodeJsPluginUserConfig\n} from \"@powerlines/plugin-nodejs/types/plugin\";\nimport type {\n TsdownPluginResolvedConfig,\n TsdownPluginUserConfig\n} from \"@powerlines/plugin-tsdown/types/plugin\";\nimport type { OutputConfig as PowerlinesOutputConfig } from \"powerlines\";\nimport type { CommandBase, CommandOption } from \"./command\";\nimport type { Context } from \"./context\";\n\ntype BuildOptions = Pick<\n TsdownPluginUserConfig,\n | \"root\"\n | \"name\"\n | \"title\"\n | \"description\"\n | \"logLevel\"\n | \"mode\"\n | \"skipCache\"\n | \"autoInstall\"\n | \"plugins\"\n | \"tsconfig\"\n | \"tsconfigRaw\"\n>;\n\nexport interface ReferenceOptions {\n /**\n * A URL to the application documentation or reference.\n */\n app: string;\n\n /**\n * A URL to the application command specific documentation or reference.\n *\n * @remarks\n * This URL is expected to contain the token `{command}`, which will be replaced with the full command path to provide links to command specific documentation. For example, `myapp command subcommand` will be translated to `{referenceLink}/command/subcommand`.\n */\n commands?: string;\n}\n\ntype BaseOptions = Partial<BuildOptions> & {\n /**\n * A set of global command options to apply to each command.\n *\n * @remarks\n * Each command will inherit these global options. To disable the addition of these global options, set this property to `false`, or provide a custom set of options/a function that returns them. A `GlobalOptions` interface will be created by the `shell-shock typegen` command and added to the generated `shell-shock.d.ts` file.\n */\n globalOptions?:\n | CommandOption[]\n | ((context: Context, input: CommandBase) => CommandOption[])\n | false;\n\n /**\n * Determines whether commands and option names are treated as case-sensitive.\n *\n * @defaultValue `false`\n */\n isCaseSensitive?: boolean;\n\n /**\n * The name of the binary (the {@link https://docs.npmjs.com/cli/v11/configuring-npm/package-json#bin | \"bin\" field} in package.json) that will be used to run the application through NodeJs package managers (e.g., npm, yarn, pnpm).\n *\n * @remarks\n * If an array is provided, each binary will be linked to the same compiled output file. If not provided, the {@link Options.name | name} option will be used.\n *\n * @see https://docs.npmjs.com/cli/v11/configuring-npm/package-json#bin\n * @see https://yarnpkg.com/cli/bin\n * @see https://pnpm.io/package_json#bin\n */\n bin?: string | string[];\n\n /**\n * Should Shell Shock attempt to automatically assign environment variables to manipulate default values for command options based on the option name?\n *\n * @remarks\n * If set to a string, Shell Shock will use the provided string as an application specific environment variable prefix, convert the option name to {@link https://stringcase.org/cases/constant/ | constant case}, and prepend the provided `string` value to determine the corresponding environment variable name. For example, if an option is named `\"configPath\"` and the `autoAssignEnv` is `\"MY_APP_\"`, Shell Shock will look for an environment variable named `\"MY_APP_CONFIG_PATH\"` and assign its value to the option if it exists. If set to `true`, Shell Shock will use a default environment variable prefix derived from the {@link Options.name | application name}.\n *\n * @see https://medium.com/chingu/an-introduction-to-environment-variables-and-how-to-use-them-f602f66d15fa\n * @see https://stringcase.org/cases/constant/\n */\n autoAssignEnv?: true | string;\n\n /**\n * A URL to the application documentation or reference.\n *\n * @remarks\n * This URL can be used in various displays of the user interface and documentation to provide users with a reference for the application. It can also be used by plugins to link to the documentation in relevant contexts. If the token `{command}` is included in the URL, it will be replaced with the full command path to provide links to command specific documentation. For example, `myapp command subcommand` will be translated to `{referenceLink}/command/subcommand`.\n */\n reference?: ReferenceOptions | string;\n};\n\n/**\n * The plugin options for Shell Shock.\n */\nexport type Options = BaseOptions & Partial<NodeJsPluginOptions>;\n\n/**\n * The output configuration options for Shell Shock.\n */\nexport type OutputConfig = Pick<\n PowerlinesOutputConfig,\n \"path\" | \"copy\" | \"storage\"\n> & {\n /**\n * An indicator specifying whether to generate TypeScript declaration files (.d.ts) during the build process.\n */\n dts?: false;\n};\n\n/**\n * The user configuration options for Shell Shock.\n */\nexport type UserConfig = BaseOptions &\n Partial<NodeJsPluginUserConfig> & {\n /**\n * Configuration for the output of the build process\n */\n output?: OutputConfig;\n };\n\n/**\n * The resolved configuration options for Shell Shock.\n */\nexport type ResolvedConfig = TsdownPluginResolvedConfig &\n AutoMDPluginResolvedConfig &\n NodeJsPluginResolvedConfig &\n Required<Omit<Options, \"bin\" | \"reference\">> & {\n /**\n * The name of the binary (the {@link https://docs.npmjs.com/cli/v11/configuring-npm/package-json#bin | \"bin\" field} in package.json) that will be used to run the application through NodeJs package managers (e.g., npm, yarn, pnpm).\n *\n * @remarks\n * If an array is provided, each binary will be linked to the same compiled output file. If not provided, the {@link Options.name | name} option will be used.\n *\n * @see https://docs.npmjs.com/cli/v11/configuring-npm/package-json#bin\n * @see https://yarnpkg.com/cli/bin\n * @see https://pnpm.io/package_json#bin\n */\n bin: Record<string, string>;\n\n /**\n * The URL(s) to the application documentation or reference.\n */\n reference: ReferenceOptions;\n\n /**\n * The command-line application specific environment variable prefix used for automatically assigning environment variables to command options.\n */\n appSpecificEnvPrefix: string;\n\n /**\n * The user configuration for the Shell Shock process.\n */\n userConfig: UserConfig;\n };\n"],"mappings":";;;AAAA,MAAM,UAAU;CAAC;CAAK;CAAK;CAAQ;CAA4B;;;;;;AAE/D,MAAM,cAAc;CAAA;CAAM;CAAW;CAAM;;;;;;;;;AAE3C,MAAM,YAAS;CAAA;CAAS;CAAG;CAAY;CAAqB;AAC5D,MAAI,aAAc;CAAA;CAAM;CAAA;CAAe;CAA4B;AACnE,MAAM,kBAAkB;OAAC;CAAa;CAAS;CAAA;CAAa;CAAO;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;AACnE,MAAK,sBAAuB;CAAC;CAAE;CAAiB;CAAmB;CAAW;AAE9E,MAAC,iBAAsB;OAAI;OAAqB;CAAC;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;OAAA;CAAA;CAAA;CAAA;CAAA;AACjD,MAAC,aAAkB;OAAO;OAAoB;CAAc;CAAO;CAAA;AAEnE,MAAC,kBAAuB;OAAG;CAAQ;CAAa;CAAK;CAAA;CAAA;CAAA;CAAA;CAAA;AAErD,MAAM,gBAAQ;OAAa;OAAS;OAAA;CAAA;CAAA;CAAA;CAAA;AAEpC,MAAM,oBAAoB;OAAO;OAAmB;OAAe;CAAG;CAAA;OAAA;CAAA;OAAA;CAAA;CAAA;OAAA;CAAA;CAAA;CAAA;CAAA"}
@@ -7,14 +7,27 @@ import { TsdownPluginResolvedConfig, TsdownPluginUserConfig } from "@powerlines/
7
7
 
8
8
  //#region src/types/config.d.ts
9
9
  type BuildOptions = Pick<TsdownPluginUserConfig, "root" | "name" | "title" | "description" | "logLevel" | "mode" | "skipCache" | "autoInstall" | "plugins" | "tsconfig" | "tsconfigRaw">;
10
+ interface ReferenceOptions {
11
+ /**
12
+ * A URL to the application documentation or reference.
13
+ */
14
+ app: string;
15
+ /**
16
+ * A URL to the application command specific documentation or reference.
17
+ *
18
+ * @remarks
19
+ * This URL is expected to contain the token `{command}`, which will be replaced with the full command path to provide links to command specific documentation. For example, `myapp command subcommand` will be translated to `{referenceLink}/command/subcommand`.
20
+ */
21
+ commands?: string;
22
+ }
10
23
  type BaseOptions = Partial<BuildOptions> & {
11
24
  /**
12
- * A set of default command options to apply to each command.
25
+ * A set of global command options to apply to each command.
13
26
  *
14
27
  * @remarks
15
- * To disable the addition of these default options, set this property to `false`, or provide a custom set of options/a function that returns them.
28
+ * Each command will inherit these global options. To disable the addition of these global options, set this property to `false`, or provide a custom set of options/a function that returns them. A `GlobalOptions` interface will be created by the `shell-shock typegen` command and added to the generated `shell-shock.d.ts` file.
16
29
  */
17
- defaultOptions?: CommandOption[] | ((context: Context, input: CommandBase) => CommandOption[]) | false;
30
+ globalOptions?: CommandOption[] | ((context: Context, input: CommandBase) => CommandOption[]) | false;
18
31
  /**
19
32
  * Determines whether commands and option names are treated as case-sensitive.
20
33
  *
@@ -42,6 +55,13 @@ type BaseOptions = Partial<BuildOptions> & {
42
55
  * @see https://stringcase.org/cases/constant/
43
56
  */
44
57
  autoAssignEnv?: true | string;
58
+ /**
59
+ * A URL to the application documentation or reference.
60
+ *
61
+ * @remarks
62
+ * This URL can be used in various displays of the user interface and documentation to provide users with a reference for the application. It can also be used by plugins to link to the documentation in relevant contexts. If the token `{command}` is included in the URL, it will be replaced with the full command path to provide links to command specific documentation. For example, `myapp command subcommand` will be translated to `{referenceLink}/command/subcommand`.
63
+ */
64
+ reference?: ReferenceOptions | string;
45
65
  };
46
66
  /**
47
67
  * The plugin options for Shell Shock.
@@ -50,7 +70,7 @@ type Options = BaseOptions & Partial<NodeJsPluginOptions>;
50
70
  /**
51
71
  * The output configuration options for Shell Shock.
52
72
  */
53
- type OutputConfig = Pick<OutputConfig$1, "outputPath" | "assets" | "storage"> & {
73
+ type OutputConfig = Pick<OutputConfig$1, "path" | "copy" | "storage"> & {
54
74
  /**
55
75
  * An indicator specifying whether to generate TypeScript declaration files (.d.ts) during the build process.
56
76
  */
@@ -68,7 +88,7 @@ type UserConfig = BaseOptions & Partial<NodeJsPluginUserConfig> & {
68
88
  /**
69
89
  * The resolved configuration options for Shell Shock.
70
90
  */
71
- type ResolvedConfig = TsdownPluginResolvedConfig & AutoMDPluginResolvedConfig & NodeJsPluginResolvedConfig & Required<Omit<Options, "bin">> & {
91
+ type ResolvedConfig = TsdownPluginResolvedConfig & AutoMDPluginResolvedConfig & NodeJsPluginResolvedConfig & Required<Omit<Options, "bin" | "reference">> & {
72
92
  /**
73
93
  * The name of the binary (the {@link https://docs.npmjs.com/cli/v11/configuring-npm/package-json#bin | "bin" field} in package.json) that will be used to run the application through NodeJs package managers (e.g., npm, yarn, pnpm).
74
94
  *
@@ -80,6 +100,10 @@ type ResolvedConfig = TsdownPluginResolvedConfig & AutoMDPluginResolvedConfig &
80
100
  * @see https://pnpm.io/package_json#bin
81
101
  */
82
102
  bin: Record<string, string>;
103
+ /**
104
+ * The URL(s) to the application documentation or reference.
105
+ */
106
+ reference: ReferenceOptions;
83
107
  /**
84
108
  * The command-line application specific environment variable prefix used for automatically assigning environment variables to command options.
85
109
  */
@@ -90,5 +114,5 @@ type ResolvedConfig = TsdownPluginResolvedConfig & AutoMDPluginResolvedConfig &
90
114
  userConfig: UserConfig;
91
115
  };
92
116
  //#endregion
93
- export { Options, OutputConfig, ResolvedConfig, UserConfig };
117
+ export { Options, OutputConfig, ReferenceOptions, ResolvedConfig, UserConfig };
94
118
  //# sourceMappingURL=config.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.cts","names":[],"sources":["../../src/types/config.ts"],"mappings":";;;;;;;;KAgCK,YAAA,GAAe,IAAA,CAClB,sBAAA;AAAA,KAcG,WAAA,GAAc,OAAA,CAAQ,YAAA;EAftB;;;;;AACmB;EAqBtB,cAAA,GACI,aAAA,OACE,OAAA,EAAS,OAAA,EAAS,KAAA,EAAO,WAAA,KAAgB,aAAA;;;;;;EAQ/C,eAAA;EAR+C;;;;;;;;;;EAoB/C,GAAA;EApB+C;;;;;;AAqCjD;;;EANE,aAAA;AAAA;;;;KAMU,OAAA,GAAU,WAAA,GAAc,OAAA,CAAQ,mBAAA;;;;KAKhC,YAAA,GAAe,IAAA,CACzB,cAAA;EADU;;;EAOV,GAAA;AAAA;;;;KAMU,UAAA,GAAa,WAAA,GACvB,OAAA,CAAQ,sBAAA;EADE;;;EAKR,MAAA,GAAS,YAAA;AAAA;;;;KAMD,cAAA,GAAiB,0BAAA,GAC3B,0BAAA,GACA,0BAAA,GACA,QAAA,CAAS,IAAA,CAAK,OAAA;EAdS;;;;;;;AAWzB;;;EAcI,GAAA,EAAK,MAAA;EAbP;;;EAkBE,oBAAA;EAhBF;;;EAqBE,UAAA,EAAY,UAAA;AAAA"}
1
+ {"version":3,"file":"config.d.cts","names":[],"sources":["../../src/types/config.ts"],"mappings":";;;;;;;;KAgCK,YAAA,GAAe,IAAA,CAClB,sBAAA;AAAA,UAce,gBAAA;EAfZ;;;EAmBH,GAAA;EAlBsB;AAcxB;;;;;EAYE,QAAA;AAAA;AAAA,KAGG,WAAA,GAAc,OAAA,CAAQ,YAAA;EAAA;;;;;;EAOzB,aAAA,GACI,aAAA,OACE,OAAA,EAAS,OAAA,EAAS,KAAA,EAAO,WAAA,KAAgB,aAAA;EAuCnB;;;;;EA/B5B,eAAA;EARe;;;;;;;;;;EAoBf,GAAA;EAmB4B;AAM9B;;;;;;;;EAdE,aAAA;EAckC;;;;AAKpC;;EAXE,SAAA,GAAY,gBAAA;AAAA;;;;KAMF,OAAA,GAAU,WAAA,GAAc,OAAA,CAAQ,mBAAA;;AAkB5C;;KAbY,YAAA,GAAe,IAAA,CACzB,cAAA;EAYuB;;;EANvB,GAAA;AAAA;;;;KAMU,UAAA,GAAa,WAAA,GACvB,OAAA,CAAQ,sBAAA;EAIN;;;EAAA,MAAA,GAAS,YAAA;AAAA;;;;KAMD,cAAA,GAAiB,0BAAA,GAC3B,0BAAA,GACA,0BAAA,GACA,QAAA,CAAS,IAAA,CAAK,OAAA;EADd;;;;;;;;;;EAYE,GAAA,EAAK,MAAA;EAZP;;;EAiBE,SAAA,EAAW,gBAAA;EALX;;;EAUA,oBAAA;EAAA;;;EAKA,UAAA,EAAY,UAAA;AAAA"}
@@ -7,14 +7,27 @@ import { TsdownPluginResolvedConfig, TsdownPluginUserConfig } from "@powerlines/
7
7
 
8
8
  //#region src/types/config.d.ts
9
9
  type BuildOptions = Pick<TsdownPluginUserConfig, "root" | "name" | "title" | "description" | "logLevel" | "mode" | "skipCache" | "autoInstall" | "plugins" | "tsconfig" | "tsconfigRaw">;
10
+ interface ReferenceOptions {
11
+ /**
12
+ * A URL to the application documentation or reference.
13
+ */
14
+ app: string;
15
+ /**
16
+ * A URL to the application command specific documentation or reference.
17
+ *
18
+ * @remarks
19
+ * This URL is expected to contain the token `{command}`, which will be replaced with the full command path to provide links to command specific documentation. For example, `myapp command subcommand` will be translated to `{referenceLink}/command/subcommand`.
20
+ */
21
+ commands?: string;
22
+ }
10
23
  type BaseOptions = Partial<BuildOptions> & {
11
24
  /**
12
- * A set of default command options to apply to each command.
25
+ * A set of global command options to apply to each command.
13
26
  *
14
27
  * @remarks
15
- * To disable the addition of these default options, set this property to `false`, or provide a custom set of options/a function that returns them.
28
+ * Each command will inherit these global options. To disable the addition of these global options, set this property to `false`, or provide a custom set of options/a function that returns them. A `GlobalOptions` interface will be created by the `shell-shock typegen` command and added to the generated `shell-shock.d.ts` file.
16
29
  */
17
- defaultOptions?: CommandOption[] | ((context: Context, input: CommandBase) => CommandOption[]) | false;
30
+ globalOptions?: CommandOption[] | ((context: Context, input: CommandBase) => CommandOption[]) | false;
18
31
  /**
19
32
  * Determines whether commands and option names are treated as case-sensitive.
20
33
  *
@@ -42,6 +55,13 @@ type BaseOptions = Partial<BuildOptions> & {
42
55
  * @see https://stringcase.org/cases/constant/
43
56
  */
44
57
  autoAssignEnv?: true | string;
58
+ /**
59
+ * A URL to the application documentation or reference.
60
+ *
61
+ * @remarks
62
+ * This URL can be used in various displays of the user interface and documentation to provide users with a reference for the application. It can also be used by plugins to link to the documentation in relevant contexts. If the token `{command}` is included in the URL, it will be replaced with the full command path to provide links to command specific documentation. For example, `myapp command subcommand` will be translated to `{referenceLink}/command/subcommand`.
63
+ */
64
+ reference?: ReferenceOptions | string;
45
65
  };
46
66
  /**
47
67
  * The plugin options for Shell Shock.
@@ -50,7 +70,7 @@ type Options = BaseOptions & Partial<NodeJsPluginOptions>;
50
70
  /**
51
71
  * The output configuration options for Shell Shock.
52
72
  */
53
- type OutputConfig = Pick<OutputConfig$1, "outputPath" | "assets" | "storage"> & {
73
+ type OutputConfig = Pick<OutputConfig$1, "path" | "copy" | "storage"> & {
54
74
  /**
55
75
  * An indicator specifying whether to generate TypeScript declaration files (.d.ts) during the build process.
56
76
  */
@@ -68,7 +88,7 @@ type UserConfig = BaseOptions & Partial<NodeJsPluginUserConfig> & {
68
88
  /**
69
89
  * The resolved configuration options for Shell Shock.
70
90
  */
71
- type ResolvedConfig = TsdownPluginResolvedConfig & AutoMDPluginResolvedConfig & NodeJsPluginResolvedConfig & Required<Omit<Options, "bin">> & {
91
+ type ResolvedConfig = TsdownPluginResolvedConfig & AutoMDPluginResolvedConfig & NodeJsPluginResolvedConfig & Required<Omit<Options, "bin" | "reference">> & {
72
92
  /**
73
93
  * The name of the binary (the {@link https://docs.npmjs.com/cli/v11/configuring-npm/package-json#bin | "bin" field} in package.json) that will be used to run the application through NodeJs package managers (e.g., npm, yarn, pnpm).
74
94
  *
@@ -80,6 +100,10 @@ type ResolvedConfig = TsdownPluginResolvedConfig & AutoMDPluginResolvedConfig &
80
100
  * @see https://pnpm.io/package_json#bin
81
101
  */
82
102
  bin: Record<string, string>;
103
+ /**
104
+ * The URL(s) to the application documentation or reference.
105
+ */
106
+ reference: ReferenceOptions;
83
107
  /**
84
108
  * The command-line application specific environment variable prefix used for automatically assigning environment variables to command options.
85
109
  */
@@ -90,5 +114,5 @@ type ResolvedConfig = TsdownPluginResolvedConfig & AutoMDPluginResolvedConfig &
90
114
  userConfig: UserConfig;
91
115
  };
92
116
  //#endregion
93
- export { Options, OutputConfig, ResolvedConfig, UserConfig };
117
+ export { Options, OutputConfig, ReferenceOptions, ResolvedConfig, UserConfig };
94
118
  //# sourceMappingURL=config.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.mts","names":[],"sources":["../../src/types/config.ts"],"mappings":";;;;;;;;KAgCK,YAAA,GAAe,IAAA,CAClB,sBAAA;AAAA,KAcG,WAAA,GAAc,OAAA,CAAQ,YAAA;EAftB;;;;;AACmB;EAqBtB,cAAA,GACI,aAAA,OACE,OAAA,EAAS,OAAA,EAAS,KAAA,EAAO,WAAA,KAAgB,aAAA;;;;;;EAQ/C,eAAA;EAR+C;;;;;;;;;;EAoB/C,GAAA;EApB+C;;;;;;AAqCjD;;;EANE,aAAA;AAAA;;;;KAMU,OAAA,GAAU,WAAA,GAAc,OAAA,CAAQ,mBAAA;;;;KAKhC,YAAA,GAAe,IAAA,CACzB,cAAA;EADU;;;EAOV,GAAA;AAAA;;;;KAMU,UAAA,GAAa,WAAA,GACvB,OAAA,CAAQ,sBAAA;EADE;;;EAKR,MAAA,GAAS,YAAA;AAAA;;;;KAMD,cAAA,GAAiB,0BAAA,GAC3B,0BAAA,GACA,0BAAA,GACA,QAAA,CAAS,IAAA,CAAK,OAAA;EAdS;;;;;;;AAWzB;;;EAcI,GAAA,EAAK,MAAA;EAbP;;;EAkBE,oBAAA;EAhBF;;;EAqBE,UAAA,EAAY,UAAA;AAAA"}
1
+ {"version":3,"file":"config.d.mts","names":[],"sources":["../../src/types/config.ts"],"mappings":";;;;;;;;KAgCK,YAAA,GAAe,IAAA,CAClB,sBAAA;AAAA,UAce,gBAAA;EAfZ;;;EAmBH,GAAA;EAlBsB;AAcxB;;;;;EAYE,QAAA;AAAA;AAAA,KAGG,WAAA,GAAc,OAAA,CAAQ,YAAA;EAAA;;;;;;EAOzB,aAAA,GACI,aAAA,OACE,OAAA,EAAS,OAAA,EAAS,KAAA,EAAO,WAAA,KAAgB,aAAA;EAuCnB;;;;;EA/B5B,eAAA;EARe;;;;;;;;;;EAoBf,GAAA;EAmB4B;AAM9B;;;;;;;;EAdE,aAAA;EAckC;;;;AAKpC;;EAXE,SAAA,GAAY,gBAAA;AAAA;;;;KAMF,OAAA,GAAU,WAAA,GAAc,OAAA,CAAQ,mBAAA;;AAkB5C;;KAbY,YAAA,GAAe,IAAA,CACzB,cAAA;EAYuB;;;EANvB,GAAA;AAAA;;;;KAMU,UAAA,GAAa,WAAA,GACvB,OAAA,CAAQ,sBAAA;EAIN;;;EAAA,MAAA,GAAS,YAAA;AAAA;;;;KAMD,cAAA,GAAiB,0BAAA,GAC3B,0BAAA,GACA,0BAAA,GACA,QAAA,CAAS,IAAA,CAAK,OAAA;EADd;;;;;;;;;;EAYE,GAAA,EAAK,MAAA;EAZP;;;EAiBE,SAAA,EAAW,gBAAA;EALX;;;EAUA,oBAAA;EAAA;;;EAKA,UAAA,EAAY,UAAA;AAAA"}
@@ -51,6 +51,12 @@ const __ΩBuildOptions = [
51
51
  "BuildOptions",
52
52
  "!P.\".#.$.%.&.'.(.).*.+.,Jo!#w-y"
53
53
  ];
54
+ const __ΩReferenceOptions = [
55
+ "app",
56
+ "commands",
57
+ "ReferenceOptions",
58
+ "P&4!&4\"8Mw#y"
59
+ ];
54
60
  const __ΩBaseOptions = [
55
61
  () => __ΩPartial,
56
62
  () => __ΩBuildOptions,
@@ -61,14 +67,16 @@ const __ΩBaseOptions = [
61
67
  "input",
62
68
  "",
63
69
  false,
64
- "defaultOptions",
70
+ "globalOptions",
65
71
  "isCaseSensitive",
66
72
  true,
67
73
  "bin",
68
74
  true,
69
75
  "autoAssignEnv",
76
+ () => __ΩReferenceOptions,
77
+ "reference",
70
78
  "BaseOptions",
71
- "Pn\"o!\"PP\"w#FP\"w$2%\"w&2'\"w#F/(.)J4*8)4+8>,P&&FJ4-8P..&J4/8MKw0y"
79
+ "Pn\"o!\"PP\"w#FP\"w$2%\"w&2'\"w#F/(.)J4*8)4+8>,P&&FJ4-8P..&J4/8Pn0&J418MKw2y"
72
80
  ];
73
81
  const __ΩOptions = [
74
82
  () => __ΩBaseOptions,
@@ -78,8 +86,8 @@ const __ΩOptions = [
78
86
  ];
79
87
  const __ΩOutputConfig = [
80
88
  () => __ΩPick,
81
- "outputPath",
82
- "assets",
89
+ "path",
90
+ "copy",
83
91
  "storage",
84
92
  false,
85
93
  "dts",
@@ -99,15 +107,18 @@ const __ΩResolvedConfig = [
99
107
  () => __ΩOmit,
100
108
  () => __ΩOptions,
101
109
  "bin",
110
+ "reference",
102
111
  () => __ΩRecord,
103
112
  "bin",
113
+ () => __ΩReferenceOptions,
114
+ "reference",
104
115
  "appSpecificEnvPrefix",
105
116
  () => __ΩUserConfig,
106
117
  "userConfig",
107
118
  "ResolvedConfig",
108
- "P!!!n#.$o\"#o!\"P&&o%#4&&4'n(4)MKw*y"
119
+ "P!!!n#P.$.%Jo\"#o!\"P&&o&#4'n(4)&4*n+4,MKw-y"
109
120
  ];
110
121
 
111
122
  //#endregion
112
- export { __ΩOptions, __ΩOutputConfig, __ΩResolvedConfig, __ΩUserConfig };
123
+ export { __ΩOptions, __ΩOutputConfig, __ΩReferenceOptions, __ΩResolvedConfig, __ΩUserConfig };
113
124
  //# sourceMappingURL=config.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.mjs","names":[],"sources":["../../src/types/config.ts"],"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 type { AutoMDPluginResolvedConfig } from \"@powerlines/plugin-automd/types/plugin\";\nimport type {\n NodeJsPluginOptions,\n NodeJsPluginResolvedConfig,\n NodeJsPluginUserConfig\n} from \"@powerlines/plugin-nodejs/types/plugin\";\nimport type {\n TsdownPluginResolvedConfig,\n TsdownPluginUserConfig\n} from \"@powerlines/plugin-tsdown/types/plugin\";\nimport type { OutputConfig as PowerlinesOutputConfig } from \"powerlines\";\nimport type { CommandBase, CommandOption } from \"./command\";\nimport type { Context } from \"./context\";\n\ntype BuildOptions = Pick<\n TsdownPluginUserConfig,\n | \"root\"\n | \"name\"\n | \"title\"\n | \"description\"\n | \"logLevel\"\n | \"mode\"\n | \"skipCache\"\n | \"autoInstall\"\n | \"plugins\"\n | \"tsconfig\"\n | \"tsconfigRaw\"\n>;\n\ntype BaseOptions = Partial<BuildOptions> & {\n /**\n * A set of default command options to apply to each command.\n *\n * @remarks\n * To disable the addition of these default options, set this property to `false`, or provide a custom set of options/a function that returns them.\n */\n defaultOptions?:\n | CommandOption[]\n | ((context: Context, input: CommandBase) => CommandOption[])\n | false;\n\n /**\n * Determines whether commands and option names are treated as case-sensitive.\n *\n * @defaultValue `false`\n */\n isCaseSensitive?: boolean;\n\n /**\n * The name of the binary (the {@link https://docs.npmjs.com/cli/v11/configuring-npm/package-json#bin | \"bin\" field} in package.json) that will be used to run the application through NodeJs package managers (e.g., npm, yarn, pnpm).\n *\n * @remarks\n * If an array is provided, each binary will be linked to the same compiled output file. If not provided, the {@link Options.name | name} option will be used.\n *\n * @see https://docs.npmjs.com/cli/v11/configuring-npm/package-json#bin\n * @see https://yarnpkg.com/cli/bin\n * @see https://pnpm.io/package_json#bin\n */\n bin?: string | string[];\n\n /**\n * Should Shell Shock attempt to automatically assign environment variables to manipulate default values for command options based on the option name?\n *\n * @remarks\n * If set to a string, Shell Shock will use the provided string as an application specific environment variable prefix, convert the option name to {@link https://stringcase.org/cases/constant/ | constant case}, and prepend the provided `string` value to determine the corresponding environment variable name. For example, if an option is named `\"configPath\"` and the `autoAssignEnv` is `\"MY_APP_\"`, Shell Shock will look for an environment variable named `\"MY_APP_CONFIG_PATH\"` and assign its value to the option if it exists. If set to `true`, Shell Shock will use a default environment variable prefix derived from the {@link Options.name | application name}.\n *\n * @see https://medium.com/chingu/an-introduction-to-environment-variables-and-how-to-use-them-f602f66d15fa\n * @see https://stringcase.org/cases/constant/\n */\n autoAssignEnv?: true | string;\n};\n\n/**\n * The plugin options for Shell Shock.\n */\nexport type Options = BaseOptions & Partial<NodeJsPluginOptions>;\n\n/**\n * The output configuration options for Shell Shock.\n */\nexport type OutputConfig = Pick<\n PowerlinesOutputConfig,\n \"outputPath\" | \"assets\" | \"storage\"\n> & {\n /**\n * An indicator specifying whether to generate TypeScript declaration files (.d.ts) during the build process.\n */\n dts?: false;\n};\n\n/**\n * The user configuration options for Shell Shock.\n */\nexport type UserConfig = BaseOptions &\n Partial<NodeJsPluginUserConfig> & {\n /**\n * Configuration for the output of the build process\n */\n output?: OutputConfig;\n };\n\n/**\n * The resolved configuration options for Shell Shock.\n */\nexport type ResolvedConfig = TsdownPluginResolvedConfig &\n AutoMDPluginResolvedConfig &\n NodeJsPluginResolvedConfig &\n Required<Omit<Options, \"bin\">> & {\n /**\n * The name of the binary (the {@link https://docs.npmjs.com/cli/v11/configuring-npm/package-json#bin | \"bin\" field} in package.json) that will be used to run the application through NodeJs package managers (e.g., npm, yarn, pnpm).\n *\n * @remarks\n * If an array is provided, each binary will be linked to the same compiled output file. If not provided, the {@link Options.name | name} option will be used.\n *\n * @see https://docs.npmjs.com/cli/v11/configuring-npm/package-json#bin\n * @see https://yarnpkg.com/cli/bin\n * @see https://pnpm.io/package_json#bin\n */\n bin: Record<string, string>;\n\n /**\n * The command-line application specific environment variable prefix used for automatically assigning environment variables to command options.\n */\n appSpecificEnvPrefix: string;\n\n /**\n * The user configuration for the Shell Shock process.\n */\n userConfig: UserConfig;\n };\n"],"mappings":";AAAA,MAAM,UAAU;CAAC;CAAK;CAAK;CAAQ;CAA4B;;;;;;AAE/D,MAAM,cAAc;CAAA;CAAM;CAAW;CAAM;;;;;;;;;AAE3C,MAAM,YAAS;CAAA;CAAS;CAAG;CAAY;CAAqB;AAC5D,MAAI,aAAc;CAAA;CAAM;CAAA;CAAe;CAA4B;AACnE,MAAM,kBAAkB;OAAC;CAAa;CAAS;CAAA;CAAa;CAAO;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;AACnE,MAAK,iBAAkB;OAAO;OAAkB;CAAU;CAAoB;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;;;;;;;AAG9E,MAAC,kBAAuB;OAAG;CAAQ;CAAiB;CAAS;CAAM;CAAA;CAAA;CAAA;CAAA;AAEnE,MAAC,gBAAqB;OAAK;OAAsB;OAAI;CAAA;CAAA;CAAA;CAAA;AAErD,MAAM,oBAAoB;OAAO;OAAG;OAAA;CAAA;OAAA;CAAA;CAAA;OAAA;CAAA;CAAA;CAAA;CAAA"}
1
+ {"version":3,"file":"config.mjs","names":[],"sources":["../../src/types/config.ts"],"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 type { AutoMDPluginResolvedConfig } from \"@powerlines/plugin-automd/types/plugin\";\nimport type {\n NodeJsPluginOptions,\n NodeJsPluginResolvedConfig,\n NodeJsPluginUserConfig\n} from \"@powerlines/plugin-nodejs/types/plugin\";\nimport type {\n TsdownPluginResolvedConfig,\n TsdownPluginUserConfig\n} from \"@powerlines/plugin-tsdown/types/plugin\";\nimport type { OutputConfig as PowerlinesOutputConfig } from \"powerlines\";\nimport type { CommandBase, CommandOption } from \"./command\";\nimport type { Context } from \"./context\";\n\ntype BuildOptions = Pick<\n TsdownPluginUserConfig,\n | \"root\"\n | \"name\"\n | \"title\"\n | \"description\"\n | \"logLevel\"\n | \"mode\"\n | \"skipCache\"\n | \"autoInstall\"\n | \"plugins\"\n | \"tsconfig\"\n | \"tsconfigRaw\"\n>;\n\nexport interface ReferenceOptions {\n /**\n * A URL to the application documentation or reference.\n */\n app: string;\n\n /**\n * A URL to the application command specific documentation or reference.\n *\n * @remarks\n * This URL is expected to contain the token `{command}`, which will be replaced with the full command path to provide links to command specific documentation. For example, `myapp command subcommand` will be translated to `{referenceLink}/command/subcommand`.\n */\n commands?: string;\n}\n\ntype BaseOptions = Partial<BuildOptions> & {\n /**\n * A set of global command options to apply to each command.\n *\n * @remarks\n * Each command will inherit these global options. To disable the addition of these global options, set this property to `false`, or provide a custom set of options/a function that returns them. A `GlobalOptions` interface will be created by the `shell-shock typegen` command and added to the generated `shell-shock.d.ts` file.\n */\n globalOptions?:\n | CommandOption[]\n | ((context: Context, input: CommandBase) => CommandOption[])\n | false;\n\n /**\n * Determines whether commands and option names are treated as case-sensitive.\n *\n * @defaultValue `false`\n */\n isCaseSensitive?: boolean;\n\n /**\n * The name of the binary (the {@link https://docs.npmjs.com/cli/v11/configuring-npm/package-json#bin | \"bin\" field} in package.json) that will be used to run the application through NodeJs package managers (e.g., npm, yarn, pnpm).\n *\n * @remarks\n * If an array is provided, each binary will be linked to the same compiled output file. If not provided, the {@link Options.name | name} option will be used.\n *\n * @see https://docs.npmjs.com/cli/v11/configuring-npm/package-json#bin\n * @see https://yarnpkg.com/cli/bin\n * @see https://pnpm.io/package_json#bin\n */\n bin?: string | string[];\n\n /**\n * Should Shell Shock attempt to automatically assign environment variables to manipulate default values for command options based on the option name?\n *\n * @remarks\n * If set to a string, Shell Shock will use the provided string as an application specific environment variable prefix, convert the option name to {@link https://stringcase.org/cases/constant/ | constant case}, and prepend the provided `string` value to determine the corresponding environment variable name. For example, if an option is named `\"configPath\"` and the `autoAssignEnv` is `\"MY_APP_\"`, Shell Shock will look for an environment variable named `\"MY_APP_CONFIG_PATH\"` and assign its value to the option if it exists. If set to `true`, Shell Shock will use a default environment variable prefix derived from the {@link Options.name | application name}.\n *\n * @see https://medium.com/chingu/an-introduction-to-environment-variables-and-how-to-use-them-f602f66d15fa\n * @see https://stringcase.org/cases/constant/\n */\n autoAssignEnv?: true | string;\n\n /**\n * A URL to the application documentation or reference.\n *\n * @remarks\n * This URL can be used in various displays of the user interface and documentation to provide users with a reference for the application. It can also be used by plugins to link to the documentation in relevant contexts. If the token `{command}` is included in the URL, it will be replaced with the full command path to provide links to command specific documentation. For example, `myapp command subcommand` will be translated to `{referenceLink}/command/subcommand`.\n */\n reference?: ReferenceOptions | string;\n};\n\n/**\n * The plugin options for Shell Shock.\n */\nexport type Options = BaseOptions & Partial<NodeJsPluginOptions>;\n\n/**\n * The output configuration options for Shell Shock.\n */\nexport type OutputConfig = Pick<\n PowerlinesOutputConfig,\n \"path\" | \"copy\" | \"storage\"\n> & {\n /**\n * An indicator specifying whether to generate TypeScript declaration files (.d.ts) during the build process.\n */\n dts?: false;\n};\n\n/**\n * The user configuration options for Shell Shock.\n */\nexport type UserConfig = BaseOptions &\n Partial<NodeJsPluginUserConfig> & {\n /**\n * Configuration for the output of the build process\n */\n output?: OutputConfig;\n };\n\n/**\n * The resolved configuration options for Shell Shock.\n */\nexport type ResolvedConfig = TsdownPluginResolvedConfig &\n AutoMDPluginResolvedConfig &\n NodeJsPluginResolvedConfig &\n Required<Omit<Options, \"bin\" | \"reference\">> & {\n /**\n * The name of the binary (the {@link https://docs.npmjs.com/cli/v11/configuring-npm/package-json#bin | \"bin\" field} in package.json) that will be used to run the application through NodeJs package managers (e.g., npm, yarn, pnpm).\n *\n * @remarks\n * If an array is provided, each binary will be linked to the same compiled output file. If not provided, the {@link Options.name | name} option will be used.\n *\n * @see https://docs.npmjs.com/cli/v11/configuring-npm/package-json#bin\n * @see https://yarnpkg.com/cli/bin\n * @see https://pnpm.io/package_json#bin\n */\n bin: Record<string, string>;\n\n /**\n * The URL(s) to the application documentation or reference.\n */\n reference: ReferenceOptions;\n\n /**\n * The command-line application specific environment variable prefix used for automatically assigning environment variables to command options.\n */\n appSpecificEnvPrefix: string;\n\n /**\n * The user configuration for the Shell Shock process.\n */\n userConfig: UserConfig;\n };\n"],"mappings":";AAAA,MAAM,UAAU;CAAC;CAAK;CAAK;CAAQ;CAA4B;;;;;;AAE/D,MAAM,cAAc;CAAA;CAAM;CAAW;CAAM;;;;;;;;;AAE3C,MAAM,YAAS;CAAA;CAAS;CAAG;CAAY;CAAqB;AAC5D,MAAI,aAAc;CAAA;CAAM;CAAA;CAAe;CAA4B;AACnE,MAAM,kBAAkB;OAAC;CAAa;CAAS;CAAA;CAAa;CAAO;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;AACnE,MAAK,sBAAuB;CAAC;CAAE;CAAiB;CAAmB;CAAW;AAE9E,MAAC,iBAAsB;OAAI;OAAqB;CAAC;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;CAAA;OAAA;CAAA;CAAA;CAAA;CAAA;AACjD,MAAC,aAAkB;OAAO;OAAoB;CAAc;CAAO;CAAA;AAEnE,MAAC,kBAAuB;OAAG;CAAQ;CAAa;CAAK;CAAA;CAAA;CAAA;CAAA;CAAA;AAErD,MAAM,gBAAQ;OAAa;OAAS;OAAA;CAAA;CAAA;CAAA;CAAA;AAEpC,MAAM,oBAAoB;OAAO;OAAmB;OAAe;CAAG;CAAA;OAAA;CAAA;OAAA;CAAA;CAAA;OAAA;CAAA;CAAA;CAAA;CAAA"}
@@ -31,6 +31,7 @@ exports.__ΩNumberCommandParameter = require_types_command.__ΩNumberCommandPara
31
31
  exports.__ΩNumberCommandParameterConfig = require_types_command.__ΩNumberCommandParameterConfig;
32
32
  exports.__ΩOptions = require_types_config.__ΩOptions;
33
33
  exports.__ΩOutputConfig = require_types_config.__ΩOutputConfig;
34
+ exports.__ΩReferenceOptions = require_types_config.__ΩReferenceOptions;
34
35
  exports.__ΩResolvedConfig = require_types_config.__ΩResolvedConfig;
35
36
  exports.__ΩSerializedCommandTree = require_types_command.__ΩSerializedCommandTree;
36
37
  exports.__ΩStringCommandParameter = require_types_command.__ΩStringCommandParameter;
@@ -1,6 +1,6 @@
1
1
  import { AsCommandParameterConfig, BaseCommandParameter, BooleanCommandOption, BooleanCommandParameter, BooleanCommandParameterConfig, CommandArgument, CommandArgumentConfig, CommandBase, CommandConfig, CommandMetadata, CommandModule, CommandOption, CommandOptionConfig, CommandParameter, CommandParameterConfig, CommandParameterKind, CommandParameterKinds, CommandParameterType, CommandTree, NumberCommandParameter, NumberCommandParameterConfig, SerializedCommandTree, StringCommandParameter, StringCommandParameterConfig } from "./command.cjs";
2
2
  import { Context, UnresolvedContext } from "./context.cjs";
3
- import { Options, OutputConfig, ResolvedConfig, UserConfig } from "./config.cjs";
3
+ import { Options, OutputConfig, ReferenceOptions, ResolvedConfig, UserConfig } from "./config.cjs";
4
4
  import { BaseCommandOptions } from "./options.cjs";
5
5
  import { CommandContext } from "./runtime.cjs";
6
- export { AsCommandParameterConfig, BaseCommandOptions, BaseCommandParameter, BooleanCommandOption, BooleanCommandParameter, BooleanCommandParameterConfig, CommandArgument, CommandArgumentConfig, CommandBase, CommandConfig, CommandContext, CommandMetadata, CommandModule, CommandOption, CommandOptionConfig, CommandParameter, CommandParameterConfig, CommandParameterKind, CommandParameterKinds, CommandParameterType, CommandTree, Context, NumberCommandParameter, NumberCommandParameterConfig, Options, OutputConfig, ResolvedConfig, SerializedCommandTree, StringCommandParameter, StringCommandParameterConfig, UnresolvedContext, UserConfig };
6
+ export { AsCommandParameterConfig, BaseCommandOptions, BaseCommandParameter, BooleanCommandOption, BooleanCommandParameter, BooleanCommandParameterConfig, CommandArgument, CommandArgumentConfig, CommandBase, CommandConfig, CommandContext, CommandMetadata, CommandModule, CommandOption, CommandOptionConfig, CommandParameter, CommandParameterConfig, CommandParameterKind, CommandParameterKinds, CommandParameterType, CommandTree, Context, NumberCommandParameter, NumberCommandParameterConfig, Options, OutputConfig, ReferenceOptions, ResolvedConfig, SerializedCommandTree, StringCommandParameter, StringCommandParameterConfig, UnresolvedContext, UserConfig };
@@ -1,6 +1,6 @@
1
1
  import { AsCommandParameterConfig, BaseCommandParameter, BooleanCommandOption, BooleanCommandParameter, BooleanCommandParameterConfig, CommandArgument, CommandArgumentConfig, CommandBase, CommandConfig, CommandMetadata, CommandModule, CommandOption, CommandOptionConfig, CommandParameter, CommandParameterConfig, CommandParameterKind, CommandParameterKinds, CommandParameterType, CommandTree, NumberCommandParameter, NumberCommandParameterConfig, SerializedCommandTree, StringCommandParameter, StringCommandParameterConfig } from "./command.mjs";
2
2
  import { Context, UnresolvedContext } from "./context.mjs";
3
- import { Options, OutputConfig, ResolvedConfig, UserConfig } from "./config.mjs";
3
+ import { Options, OutputConfig, ReferenceOptions, ResolvedConfig, UserConfig } from "./config.mjs";
4
4
  import { BaseCommandOptions } from "./options.mjs";
5
5
  import { CommandContext } from "./runtime.mjs";
6
- export { AsCommandParameterConfig, BaseCommandOptions, BaseCommandParameter, BooleanCommandOption, BooleanCommandParameter, BooleanCommandParameterConfig, CommandArgument, CommandArgumentConfig, CommandBase, CommandConfig, CommandContext, CommandMetadata, CommandModule, CommandOption, CommandOptionConfig, CommandParameter, CommandParameterConfig, CommandParameterKind, CommandParameterKinds, CommandParameterType, CommandTree, Context, NumberCommandParameter, NumberCommandParameterConfig, Options, OutputConfig, ResolvedConfig, SerializedCommandTree, StringCommandParameter, StringCommandParameterConfig, UnresolvedContext, UserConfig };
6
+ export { AsCommandParameterConfig, BaseCommandOptions, BaseCommandParameter, BooleanCommandOption, BooleanCommandParameter, BooleanCommandParameterConfig, CommandArgument, CommandArgumentConfig, CommandBase, CommandConfig, CommandContext, CommandMetadata, CommandModule, CommandOption, CommandOptionConfig, CommandParameter, CommandParameterConfig, CommandParameterKind, CommandParameterKinds, CommandParameterType, CommandTree, Context, NumberCommandParameter, NumberCommandParameterConfig, Options, OutputConfig, ReferenceOptions, ResolvedConfig, SerializedCommandTree, StringCommandParameter, StringCommandParameterConfig, UnresolvedContext, UserConfig };
@@ -1,7 +1,7 @@
1
1
  import { CommandParameterKinds, __ΩAsCommandParameterConfig, __ΩBaseCommandParameter, __ΩBooleanCommandOption, __ΩBooleanCommandParameter, __ΩBooleanCommandParameterConfig, __ΩCommandArgument, __ΩCommandArgumentConfig, __ΩCommandBase, __ΩCommandConfig, __ΩCommandMetadata, __ΩCommandModule, __ΩCommandOption, __ΩCommandOptionConfig, __ΩCommandParameter, __ΩCommandParameterConfig, __ΩCommandParameterKind, __ΩCommandParameterType, __ΩCommandTree, __ΩNumberCommandParameter, __ΩNumberCommandParameterConfig, __ΩSerializedCommandTree, __ΩStringCommandParameter, __ΩStringCommandParameterConfig } from "./command.mjs";
2
- import { __ΩOptions, __ΩOutputConfig, __ΩResolvedConfig, __ΩUserConfig } from "./config.mjs";
2
+ import { __ΩOptions, __ΩOutputConfig, __ΩReferenceOptions, __ΩResolvedConfig, __ΩUserConfig } from "./config.mjs";
3
3
  import { __ΩContext, __ΩUnresolvedContext } from "./context.mjs";
4
4
  import { __ΩBaseCommandOptions } from "./options.mjs";
5
5
  import { __ΩCommandContext } from "./runtime.mjs";
6
6
 
7
- export { CommandParameterKinds, __ΩAsCommandParameterConfig, __ΩBaseCommandOptions, __ΩBaseCommandParameter, __ΩBooleanCommandOption, __ΩBooleanCommandParameter, __ΩBooleanCommandParameterConfig, __ΩCommandArgument, __ΩCommandArgumentConfig, __ΩCommandBase, __ΩCommandConfig, __ΩCommandContext, __ΩCommandMetadata, __ΩCommandModule, __ΩCommandOption, __ΩCommandOptionConfig, __ΩCommandParameter, __ΩCommandParameterConfig, __ΩCommandParameterKind, __ΩCommandParameterType, __ΩCommandTree, __ΩContext, __ΩNumberCommandParameter, __ΩNumberCommandParameterConfig, __ΩOptions, __ΩOutputConfig, __ΩResolvedConfig, __ΩSerializedCommandTree, __ΩStringCommandParameter, __ΩStringCommandParameterConfig, __ΩUnresolvedContext, __ΩUserConfig };
7
+ export { CommandParameterKinds, __ΩAsCommandParameterConfig, __ΩBaseCommandOptions, __ΩBaseCommandParameter, __ΩBooleanCommandOption, __ΩBooleanCommandParameter, __ΩBooleanCommandParameterConfig, __ΩCommandArgument, __ΩCommandArgumentConfig, __ΩCommandBase, __ΩCommandConfig, __ΩCommandContext, __ΩCommandMetadata, __ΩCommandModule, __ΩCommandOption, __ΩCommandOptionConfig, __ΩCommandParameter, __ΩCommandParameterConfig, __ΩCommandParameterKind, __ΩCommandParameterType, __ΩCommandTree, __ΩContext, __ΩNumberCommandParameter, __ΩNumberCommandParameterConfig, __ΩOptions, __ΩOutputConfig, __ΩReferenceOptions, __ΩResolvedConfig, __ΩSerializedCommandTree, __ΩStringCommandParameter, __ΩStringCommandParameterConfig, __ΩUnresolvedContext, __ΩUserConfig };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shell-shock/core",
3
- "version": "0.13.1",
3
+ "version": "0.13.3",
4
4
  "type": "module",
5
5
  "description": "A package containing the core Shell Shock functionality used to build and manage a command-line application.",
6
6
  "repository": {
@@ -352,12 +352,12 @@
352
352
  "@alloy-js/core": "0.23.0-dev.8",
353
353
  "@alloy-js/markdown": "0.23.0-dev.1",
354
354
  "@alloy-js/typescript": "0.23.0-dev.4",
355
- "@powerlines/deepkit": "^0.6.134",
356
- "@powerlines/plugin-alloy": "^0.25.41",
357
- "@powerlines/plugin-automd": "^0.1.355",
358
- "@powerlines/plugin-deepkit": "^0.11.234",
359
- "@powerlines/plugin-nodejs": "^0.1.277",
360
- "@powerlines/plugin-tsdown": "^0.1.303",
355
+ "@powerlines/deepkit": "^0.6.147",
356
+ "@powerlines/plugin-alloy": "^0.25.54",
357
+ "@powerlines/plugin-automd": "^0.1.368",
358
+ "@powerlines/plugin-deepkit": "^0.11.247",
359
+ "@powerlines/plugin-nodejs": "^0.1.290",
360
+ "@powerlines/plugin-tsdown": "^0.1.316",
361
361
  "@standard-schema/spec": "^1.1.0",
362
362
  "@standard-schema/utils": "^0.3.0",
363
363
  "@stryke/cli": "^0.13.35",
@@ -373,16 +373,16 @@
373
373
  "automd": "^0.4.3",
374
374
  "defu": "^6.1.4",
375
375
  "json-schema": "^0.4.0",
376
- "powerlines": "^0.41.20",
376
+ "powerlines": "^0.42.9",
377
377
  "tsdown": "^0.21.4"
378
378
  },
379
379
  "devDependencies": {
380
- "@powerlines/plugin-plugin": "^0.12.306",
380
+ "@powerlines/plugin-plugin": "^0.12.319",
381
381
  "@types/json-schema": "^7.0.15",
382
382
  "@types/node": "^25.5.0",
383
383
  "typescript": "^5.9.3",
384
384
  "zod": "^4.3.6"
385
385
  },
386
386
  "publishConfig": { "access": "public" },
387
- "gitHead": "86c55189ed02d126fb583cf6d2555266f00d0f3a"
387
+ "gitHead": "86ac1c51d3258bded9e493024e6631d241f62dd2"
388
388
  }