@detergent-software/atk 8.8.1-dev.3 → 8.8.1-dev.5

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 (176) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/build/cli.js +1 -1
  3. package/build/cli.js.map +1 -1
  4. package/build/commands/_app.d.ts +1 -1
  5. package/build/commands/_app.d.ts.map +1 -1
  6. package/build/commands/_app.js.map +1 -1
  7. package/build/commands/audit.d.ts.map +1 -1
  8. package/build/commands/audit.js +1 -1
  9. package/build/commands/audit.js.map +1 -1
  10. package/build/commands/browse.d.ts.map +1 -1
  11. package/build/commands/browse.js +1 -1
  12. package/build/commands/browse.js.map +1 -1
  13. package/build/commands/cache.d.ts +1 -1
  14. package/build/commands/cache.d.ts.map +1 -1
  15. package/build/commands/cache.js +1 -1
  16. package/build/commands/cache.js.map +1 -1
  17. package/build/commands/checkout.d.ts.map +1 -1
  18. package/build/commands/checkout.js +1 -1
  19. package/build/commands/checkout.js.map +1 -1
  20. package/build/commands/config.d.ts.map +1 -1
  21. package/build/commands/config.js +1 -1
  22. package/build/commands/config.js.map +1 -1
  23. package/build/commands/deprecate.d.ts.map +1 -1
  24. package/build/commands/deprecate.js +1 -1
  25. package/build/commands/deprecate.js.map +1 -1
  26. package/build/commands/diff.d.ts.map +1 -1
  27. package/build/commands/diff.js +1 -1
  28. package/build/commands/diff.js.map +1 -1
  29. package/build/commands/doctor.d.ts.map +1 -1
  30. package/build/commands/doctor.js +1 -1
  31. package/build/commands/doctor.js.map +1 -1
  32. package/build/commands/drift.d.ts.map +1 -1
  33. package/build/commands/drift.js +1 -1
  34. package/build/commands/drift.js.map +1 -1
  35. package/build/commands/freeze.d.ts.map +1 -1
  36. package/build/commands/freeze.js +1 -1
  37. package/build/commands/freeze.js.map +1 -1
  38. package/build/commands/info.d.ts.map +1 -1
  39. package/build/commands/info.js +1 -1
  40. package/build/commands/info.js.map +1 -1
  41. package/build/commands/init.d.ts.map +1 -1
  42. package/build/commands/init.js +1 -1
  43. package/build/commands/init.js.map +1 -1
  44. package/build/commands/install.d.ts.map +1 -1
  45. package/build/commands/install.js +1 -1
  46. package/build/commands/install.js.map +1 -1
  47. package/build/commands/list.d.ts.map +1 -1
  48. package/build/commands/list.js +1 -1
  49. package/build/commands/list.js.map +1 -1
  50. package/build/commands/login.d.ts.map +1 -1
  51. package/build/commands/login.js +1 -1
  52. package/build/commands/login.js.map +1 -1
  53. package/build/commands/logout.d.ts.map +1 -1
  54. package/build/commands/logout.js +1 -1
  55. package/build/commands/logout.js.map +1 -1
  56. package/build/commands/move.d.ts.map +1 -1
  57. package/build/commands/move.js +1 -1
  58. package/build/commands/move.js.map +1 -1
  59. package/build/commands/outdated.d.ts.map +1 -1
  60. package/build/commands/outdated.js +1 -1
  61. package/build/commands/outdated.js.map +1 -1
  62. package/build/commands/pin.d.ts.map +1 -1
  63. package/build/commands/pin.js +1 -1
  64. package/build/commands/pin.js.map +1 -1
  65. package/build/commands/promote.d.ts.map +1 -1
  66. package/build/commands/promote.js +1 -1
  67. package/build/commands/promote.js.map +1 -1
  68. package/build/commands/prune.d.ts.map +1 -1
  69. package/build/commands/prune.js +1 -1
  70. package/build/commands/prune.js.map +1 -1
  71. package/build/commands/publish.d.ts.map +1 -1
  72. package/build/commands/publish.js +1 -1
  73. package/build/commands/publish.js.map +1 -1
  74. package/build/commands/register.d.ts.map +1 -1
  75. package/build/commands/register.js +1 -1
  76. package/build/commands/register.js.map +1 -1
  77. package/build/commands/release-notes.d.ts.map +1 -1
  78. package/build/commands/release-notes.js +1 -1
  79. package/build/commands/release-notes.js.map +1 -1
  80. package/build/commands/reviewer.d.ts.map +1 -1
  81. package/build/commands/reviewer.js +1 -1
  82. package/build/commands/reviewer.js.map +1 -1
  83. package/build/commands/schema.d.ts.map +1 -1
  84. package/build/commands/schema.js +1 -1
  85. package/build/commands/schema.js.map +1 -1
  86. package/build/commands/search.d.ts.map +1 -1
  87. package/build/commands/search.js +1 -1
  88. package/build/commands/search.js.map +1 -1
  89. package/build/commands/setup.d.ts.map +1 -1
  90. package/build/commands/setup.js +1 -1
  91. package/build/commands/setup.js.map +1 -1
  92. package/build/commands/sync.d.ts.map +1 -1
  93. package/build/commands/sync.js +1 -1
  94. package/build/commands/sync.js.map +1 -1
  95. package/build/commands/thaw.d.ts.map +1 -1
  96. package/build/commands/thaw.js +1 -1
  97. package/build/commands/thaw.js.map +1 -1
  98. package/build/commands/uninstall.d.ts.map +1 -1
  99. package/build/commands/uninstall.js +1 -1
  100. package/build/commands/uninstall.js.map +1 -1
  101. package/build/commands/unpin.d.ts.map +1 -1
  102. package/build/commands/unpin.js +1 -1
  103. package/build/commands/unpin.js.map +1 -1
  104. package/build/commands/unpublish.d.ts.map +1 -1
  105. package/build/commands/unpublish.js +1 -1
  106. package/build/commands/unpublish.js.map +1 -1
  107. package/build/commands/update.d.ts.map +1 -1
  108. package/build/commands/update.js +1 -1
  109. package/build/commands/update.js.map +1 -1
  110. package/build/commands/whoami.d.ts.map +1 -1
  111. package/build/commands/whoami.js +1 -1
  112. package/build/commands/whoami.js.map +1 -1
  113. package/build/commands/why.d.ts.map +1 -1
  114. package/build/commands/why.js +1 -1
  115. package/build/commands/why.js.map +1 -1
  116. package/build/hooks/usePublishState.d.ts.map +1 -1
  117. package/build/hooks/usePublishState.js +47 -17
  118. package/build/hooks/usePublishState.js.map +1 -1
  119. package/build/lib/atk-schemas/index.d.ts +1 -0
  120. package/build/lib/atk-schemas/index.d.ts.map +1 -1
  121. package/build/lib/atk-schemas/index.js +1 -0
  122. package/build/lib/atk-schemas/index.js.map +1 -1
  123. package/build/lib/atk-schemas/tools.d.ts +7 -0
  124. package/build/lib/atk-schemas/tools.d.ts.map +1 -0
  125. package/build/lib/atk-schemas/tools.js +8 -0
  126. package/build/lib/atk-schemas/tools.js.map +1 -0
  127. package/build/lib/pastel/_app.d.ts +3 -0
  128. package/build/lib/pastel/_app.d.ts.map +1 -0
  129. package/build/lib/pastel/_app.js +5 -0
  130. package/build/lib/pastel/_app.js.map +1 -0
  131. package/build/lib/pastel/generate-arguments.d.ts +4 -0
  132. package/build/lib/pastel/generate-arguments.d.ts.map +1 -0
  133. package/build/lib/pastel/generate-arguments.js +111 -0
  134. package/build/lib/pastel/generate-arguments.js.map +1 -0
  135. package/build/lib/pastel/generate-command.d.ts +9 -0
  136. package/build/lib/pastel/generate-command.d.ts.map +1 -0
  137. package/build/lib/pastel/generate-command.js +85 -0
  138. package/build/lib/pastel/generate-command.js.map +1 -0
  139. package/build/lib/pastel/generate-commands.d.ts +9 -0
  140. package/build/lib/pastel/generate-commands.d.ts.map +1 -0
  141. package/build/lib/pastel/generate-commands.js +23 -0
  142. package/build/lib/pastel/generate-commands.js.map +1 -0
  143. package/build/lib/pastel/generate-options.d.ts +4 -0
  144. package/build/lib/pastel/generate-options.d.ts.map +1 -0
  145. package/build/lib/pastel/generate-options.js +100 -0
  146. package/build/lib/pastel/generate-options.js.map +1 -0
  147. package/build/lib/pastel/index.d.ts +41 -0
  148. package/build/lib/pastel/index.d.ts.map +1 -0
  149. package/build/lib/pastel/index.js +59 -0
  150. package/build/lib/pastel/index.js.map +1 -0
  151. package/build/lib/pastel/internal-types.d.ts +34 -0
  152. package/build/lib/pastel/internal-types.d.ts.map +1 -0
  153. package/build/lib/pastel/internal-types.js +2 -0
  154. package/build/lib/pastel/internal-types.js.map +1 -0
  155. package/build/lib/pastel/read-commands.d.ts +4 -0
  156. package/build/lib/pastel/read-commands.d.ts.map +1 -0
  157. package/build/lib/pastel/read-commands.js +59 -0
  158. package/build/lib/pastel/read-commands.js.map +1 -0
  159. package/build/lib/pastel/read-custom-app.d.ts +4 -0
  160. package/build/lib/pastel/read-custom-app.d.ts.map +1 -0
  161. package/build/lib/pastel/read-custom-app.js +29 -0
  162. package/build/lib/pastel/read-custom-app.js.map +1 -0
  163. package/build/lib/pastel/types.d.ts +70 -0
  164. package/build/lib/pastel/types.d.ts.map +1 -0
  165. package/build/lib/pastel/types.js +2 -0
  166. package/build/lib/pastel/types.js.map +1 -0
  167. package/build/lib/publisher.d.ts +7 -4
  168. package/build/lib/publisher.d.ts.map +1 -1
  169. package/build/lib/publisher.js +5 -5
  170. package/build/lib/publisher.js.map +1 -1
  171. package/build/lib/schemas/index.d.ts +1 -1
  172. package/build/lib/schemas/index.d.ts.map +1 -1
  173. package/build/lib/schemas/index.js +1 -1
  174. package/build/lib/schemas/index.js.map +1 -1
  175. package/package.json +10 -3
  176. package/src/lib/pastel/LICENSE +9 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/lib/atk-schemas/tools.ts"],"names":[],"mappings":"AACA;;;;GAIG;AACH,eAAO,MAAM,WAAW,sDAAuD,CAAC"}
@@ -0,0 +1,8 @@
1
+ // GENERATED from packages/schemas by `pnpm sync-cli`. Do not edit.
2
+ /**
3
+ * The tool ids ATK places assets for: one per adapter in apps/cli/tool-adapters/, sorted (the CLI's
4
+ * adapter tests fail when they drift). A manifest's `tools` stays any string in `ManifestSchema`, so the
5
+ * published JSON Schema keeps its shape; the API refuses an id outside this list when it plans a publish.
6
+ */
7
+ export const KNOWN_TOOLS = ['claude-code', 'codex-cli', 'copilot-cli'];
8
+ //# sourceMappingURL=tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/lib/atk-schemas/tools.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,aAAa,EAAE,WAAW,EAAE,aAAa,CAAU,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { AppProps } from './types.js';
2
+ export default function App({ commandProps, Component }: AppProps): import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=_app.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_app.d.ts","sourceRoot":"","sources":["../../../src/lib/pastel/_app.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,CAAC,OAAO,UAAU,GAAG,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,QAAQ,2CAEhE"}
@@ -0,0 +1,5 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ export default function App({ commandProps, Component }) {
3
+ return _jsx(Component, { ...commandProps });
4
+ }
5
+ //# sourceMappingURL=_app.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_app.js","sourceRoot":"","sources":["../../../src/lib/pastel/_app.tsx"],"names":[],"mappings":";AAEA,MAAM,CAAC,OAAO,UAAU,GAAG,CAAC,EAAE,YAAY,EAAE,SAAS,EAAY;IAC/D,OAAO,KAAC,SAAS,OAAK,YAAY,GAAI,CAAC;AACzC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Argument } from 'commander';
2
+ import { type CommandArguments } from './internal-types.js';
3
+ export default function generateArguments(argumentsSchema: CommandArguments): Argument[];
4
+ //# sourceMappingURL=generate-arguments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-arguments.d.ts","sourceRoot":"","sources":["../../../src/lib/pastel/generate-arguments.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAKrC,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAqB5D,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,eAAe,EAAE,gBAAgB,GAAG,QAAQ,EAAE,CAmHvF"}
@@ -0,0 +1,111 @@
1
+ import { Argument } from 'commander';
2
+ import decamelize from 'decamelize';
3
+ import { isDeepStrictEqual } from 'node:util';
4
+ import { ZodArray, ZodDefault, ZodEnum, ZodNumber, ZodOptional, ZodTuple } from 'zod';
5
+ import {} from './internal-types.js';
6
+ import {} from './types.js';
7
+ const getConfig = (value) => {
8
+ return value?.startsWith('__pastel_argument_config__')
9
+ ? JSON.parse(value.replace('__pastel_argument_config__', ''))
10
+ : undefined;
11
+ };
12
+ const getName = (value) => {
13
+ return getConfig(value)?.name ?? value;
14
+ };
15
+ const getDescription = (value) => {
16
+ return getConfig(value)?.description;
17
+ };
18
+ const getDefaultValueDescription = (value) => {
19
+ return getConfig(value)?.defaultValueDescription;
20
+ };
21
+ export default function generateArguments(argumentsSchema) {
22
+ let isOptionalByDefault = false;
23
+ let arrayDefaultValue;
24
+ let arrayName = getName(argumentsSchema.description);
25
+ const arrayDescription = getDescription(argumentsSchema.description);
26
+ const arrayDefaultValueDescription = getDefaultValueDescription(argumentsSchema.description);
27
+ if (argumentsSchema instanceof ZodOptional) {
28
+ isOptionalByDefault = true;
29
+ argumentsSchema = argumentsSchema._zod.def.innerType;
30
+ arrayName = argumentsSchema.description ?? arrayName;
31
+ }
32
+ if (argumentsSchema instanceof ZodDefault) {
33
+ isOptionalByDefault = true;
34
+ arrayDefaultValue = argumentsSchema._zod.def.defaultValue;
35
+ argumentsSchema = argumentsSchema._zod.def.innerType;
36
+ arrayName = argumentsSchema.description ?? arrayName;
37
+ }
38
+ if (argumentsSchema instanceof ZodOptional) {
39
+ isOptionalByDefault = true;
40
+ argumentsSchema = argumentsSchema._zod.def.innerType;
41
+ arrayName = argumentsSchema.description ?? arrayName;
42
+ }
43
+ const arguments_ = [];
44
+ if (argumentsSchema instanceof ZodTuple) {
45
+ for (let argumentSchema of argumentsSchema._zod.def.items) {
46
+ let isOptional = isOptionalByDefault;
47
+ let defaultValue;
48
+ const defaultValueDescription = getDefaultValueDescription(argumentSchema.description);
49
+ let name = getName(argumentSchema.description);
50
+ const description = getDescription(argumentSchema.description);
51
+ if (argumentSchema instanceof ZodOptional) {
52
+ isOptional = true;
53
+ argumentSchema = argumentSchema._zod.def.innerType;
54
+ name = getName(argumentSchema.description) ?? name;
55
+ }
56
+ if (argumentSchema instanceof ZodDefault) {
57
+ isOptional = true;
58
+ defaultValue = argumentSchema._zod.def.defaultValue;
59
+ argumentSchema = argumentSchema._zod.def.innerType;
60
+ name = getName(argumentSchema.description) ?? name;
61
+ }
62
+ if (argumentSchema instanceof ZodOptional) {
63
+ isOptional = true;
64
+ argumentSchema = argumentSchema._zod.def.innerType;
65
+ name = getName(argumentSchema.description) ?? name;
66
+ }
67
+ name = decamelize(name ?? 'arg', { separator: '-' });
68
+ const argument = new Argument(isOptional ? `[${name}]` : `<${name}>`, description);
69
+ if (argumentSchema instanceof ZodNumber) {
70
+ argument.argParser((value) => Number.parseFloat(value));
71
+ }
72
+ if (argumentSchema instanceof ZodEnum) {
73
+ argument.choices(Object.values(argumentSchema._zod.def.entries).map(String));
74
+ }
75
+ if (defaultValue !== undefined) {
76
+ argument.default(defaultValue, defaultValueDescription);
77
+ }
78
+ arguments_.push(argument);
79
+ }
80
+ const restSchema = argumentsSchema._zod.def.rest;
81
+ if (restSchema) {
82
+ const name = getName(restSchema.description) ?? 'arg';
83
+ const argument = new Argument(`[${name}...]`, getDescription(restSchema.description));
84
+ if (restSchema instanceof ZodNumber) {
85
+ argument.argParser((value, previousValue) => {
86
+ return [...(previousValue ?? []), Number.parseFloat(value)];
87
+ });
88
+ }
89
+ if (restSchema instanceof ZodEnum) {
90
+ argument.choices(Object.values(restSchema._zod.def.entries).map(String));
91
+ }
92
+ arguments_.push(argument);
93
+ }
94
+ }
95
+ if (argumentsSchema instanceof ZodArray) {
96
+ const name = arrayName ?? 'arg';
97
+ const argument = new Argument(isOptionalByDefault ? `[${name}...]` : `<${name}...>`, arrayDescription);
98
+ if (arrayDefaultValue !== undefined) {
99
+ argument.default(arrayDefaultValue, arrayDefaultValueDescription);
100
+ }
101
+ if (argumentsSchema.element instanceof ZodNumber) {
102
+ argument.argParser((value, previousValue) => {
103
+ const joinPreviousValue = !isDeepStrictEqual(previousValue, arrayDefaultValue);
104
+ return joinPreviousValue ? [...(previousValue ?? []), Number.parseFloat(value)] : [Number.parseFloat(value)];
105
+ });
106
+ }
107
+ arguments_.push(argument);
108
+ }
109
+ return arguments_;
110
+ }
111
+ //# sourceMappingURL=generate-arguments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-arguments.js","sourceRoot":"","sources":["../../../src/lib/pastel/generate-arguments.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { type Command as CommanderCommand } from 'commander';
2
+ import { type ComponentType } from 'react';
3
+ import { type Command } from './internal-types.js';
4
+ import { type AppProps } from './types.js';
5
+ declare const generateCommand: (commanderCommand: CommanderCommand, pastelCommand: Command, { appComponent }: {
6
+ appComponent: ComponentType<AppProps>;
7
+ }) => void;
8
+ export default generateCommand;
9
+ //# sourceMappingURL=generate-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-command.d.ts","sourceRoot":"","sources":["../../../src/lib/pastel/generate-command.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,OAAO,IAAI,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAG7D,OAAc,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAKlD,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,QAAA,MAAM,eAAe,GACnB,kBAAkB,gBAAgB,EAClC,eAAe,OAAO,EACtB,kBAAkB;IAAE,YAAY,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAA;CAAE,SAyG5D,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -0,0 +1,85 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { StatusMessage } from '@inkjs/ui';
3
+ import {} from 'commander';
4
+ import { render } from 'ink';
5
+ import process from 'node:process';
6
+ import React, {} from 'react';
7
+ import { fromZodError } from 'zod-validation-error';
8
+ import generateArguments from './generate-arguments.js';
9
+ import generateOptions from './generate-options.js';
10
+ import {} from './internal-types.js';
11
+ import {} from './types.js';
12
+ const generateCommand = (commanderCommand, pastelCommand, { appComponent }) => {
13
+ commanderCommand.helpOption('-h, --help', 'Show help');
14
+ if (pastelCommand.description) {
15
+ commanderCommand.description(pastelCommand.description);
16
+ }
17
+ if (pastelCommand.alias) {
18
+ commanderCommand.alias(pastelCommand.alias);
19
+ }
20
+ const optionsSchema = pastelCommand.options;
21
+ if (optionsSchema) {
22
+ const options = generateOptions(optionsSchema);
23
+ for (const option of options) {
24
+ commanderCommand.addOption(option);
25
+ }
26
+ }
27
+ let hasVariadicArgument = false;
28
+ const argumentsSchema = pastelCommand.args;
29
+ if (argumentsSchema) {
30
+ const arguments_ = generateArguments(argumentsSchema);
31
+ for (const argument of arguments_) {
32
+ if (argument.variadic) {
33
+ hasVariadicArgument = true;
34
+ }
35
+ commanderCommand.addArgument(argument);
36
+ }
37
+ }
38
+ const { component } = pastelCommand;
39
+ if (component) {
40
+ commanderCommand.action((...input) => {
41
+ // Remove the last argument, which is an instance of Commander command
42
+ input.pop();
43
+ const options = input.pop();
44
+ let parsedOptions = {};
45
+ if (pastelCommand.options) {
46
+ const result = pastelCommand.options.safeParse(options);
47
+ if (result.success) {
48
+ parsedOptions = result.data ?? {};
49
+ }
50
+ else {
51
+ render(_jsx(StatusMessage, { variant: 'error', children: fromZodError(result.error, {
52
+ maxIssuesInMessage: 1,
53
+ prefix: '',
54
+ prefixSeparator: '',
55
+ }).message }));
56
+ process.exit(1);
57
+ }
58
+ }
59
+ let arguments_ = [];
60
+ if (pastelCommand.args) {
61
+ const result = pastelCommand.args.safeParse(hasVariadicArgument ? input.flat() : input);
62
+ if (result.success) {
63
+ arguments_ = result.data ?? [];
64
+ }
65
+ else {
66
+ render(_jsx(StatusMessage, { variant: 'error', children: fromZodError(result.error, {
67
+ maxIssuesInMessage: 1,
68
+ prefix: '',
69
+ prefixSeparator: '',
70
+ }).message }));
71
+ process.exit(1);
72
+ }
73
+ }
74
+ render(React.createElement(appComponent, {
75
+ commandProps: {
76
+ args: arguments_,
77
+ options: parsedOptions,
78
+ },
79
+ Component: component,
80
+ }));
81
+ });
82
+ }
83
+ };
84
+ export default generateCommand;
85
+ //# sourceMappingURL=generate-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-command.js","sourceRoot":"","sources":["../../../src/lib/pastel/generate-command.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { Command as CommanderCommand } from 'commander';
2
+ import { type ComponentType } from 'react';
3
+ import type { Command } from './internal-types.js';
4
+ import { type AppProps } from './types.js';
5
+ declare const generateCommands: (parentCommanderCommand: CommanderCommand, pastelCommands: Map<string, Command>, { appComponent }: {
6
+ appComponent: ComponentType<AppProps>;
7
+ }) => void;
8
+ export default generateCommands;
9
+ //# sourceMappingURL=generate-commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-commands.d.ts","sourceRoot":"","sources":["../../../src/lib/pastel/generate-commands.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAGnD,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,QAAA,MAAM,gBAAgB,GACpB,wBAAwB,gBAAgB,EACxC,gBAAgB,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,kBAAkB;IAAE,YAAY,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAA;CAAE,SAoB5D,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { Command as CommanderCommand } from 'commander';
2
+ import {} from 'react';
3
+ import generateCommand from './generate-command.js';
4
+ import {} from './types.js';
5
+ const generateCommands = (parentCommanderCommand, pastelCommands, { appComponent }) => {
6
+ if (pastelCommands.size > 0) {
7
+ parentCommanderCommand.addHelpCommand('help [command]', 'Show help for command');
8
+ }
9
+ for (const [name, pastelCommand] of pastelCommands) {
10
+ const commanderCommand = new CommanderCommand(name);
11
+ generateCommand(commanderCommand, pastelCommand, { appComponent });
12
+ if (pastelCommand.commands) {
13
+ generateCommands(commanderCommand, pastelCommand.commands, {
14
+ appComponent,
15
+ });
16
+ }
17
+ parentCommanderCommand.addCommand(commanderCommand, {
18
+ isDefault: pastelCommand.isDefault,
19
+ });
20
+ }
21
+ };
22
+ export default generateCommands;
23
+ //# sourceMappingURL=generate-commands.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-commands.js","sourceRoot":"","sources":["../../../src/lib/pastel/generate-commands.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,EAAsB,MAAM,OAAO,CAAC;AAI3C,OAAO,eAAe,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAiB,MAAM,YAAY,CAAC;AAE3C,MAAM,gBAAgB,GAAG,CACvB,sBAAwC,EACxC,cAAoC,EACpC,EAAE,YAAY,EAA6C,EAC3D,EAAE;IACF,IAAI,cAAc,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QAC5B,sBAAsB,CAAC,cAAc,CAAC,gBAAgB,EAAE,uBAAuB,CAAC,CAAC;IACnF,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,IAAI,cAAc,EAAE,CAAC;QACnD,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACpD,eAAe,CAAC,gBAAgB,EAAE,aAAa,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;QAEnE,IAAI,aAAa,CAAC,QAAQ,EAAE,CAAC;YAC3B,gBAAgB,CAAC,gBAAgB,EAAE,aAAa,CAAC,QAAQ,EAAE;gBACzD,YAAY;aACb,CAAC,CAAC;QACL,CAAC;QAED,sBAAsB,CAAC,UAAU,CAAC,gBAAgB,EAAE;YAClD,SAAS,EAAE,aAAa,CAAC,SAAS;SACnC,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Option } from 'commander';
2
+ import { type CommandOptions } from './internal-types.js';
3
+ export default function generateOptions(optionsSchema: CommandOptions): Option[];
4
+ //# sourceMappingURL=generate-options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-options.d.ts","sourceRoot":"","sources":["../../../src/lib/pastel/generate-options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAMnC,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAyB1D,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,aAAa,EAAE,cAAc,GAAG,MAAM,EAAE,CAqG/E"}
@@ -0,0 +1,100 @@
1
+ import { Option } from 'commander';
2
+ import decamelize from 'decamelize';
3
+ import { isDeepStrictEqual } from 'node:util';
4
+ import plur from 'plur';
5
+ import { ZodArray, ZodBoolean, ZodDefault, ZodEnum, ZodNumber, ZodOptional, ZodSet } from 'zod';
6
+ import {} from './internal-types.js';
7
+ import {} from './types.js';
8
+ const getConfig = (value) => {
9
+ return value?.startsWith('__pastel_option_config__')
10
+ ? JSON.parse(value.replace('__pastel_option_config__', ''))
11
+ : undefined;
12
+ };
13
+ const getDescription = (value) => {
14
+ return getConfig(value)?.description ?? value;
15
+ };
16
+ const getDefaultValueDescription = (value) => {
17
+ return getConfig(value)?.defaultValueDescription;
18
+ };
19
+ const getValueDescription = (value) => {
20
+ return getConfig(value)?.valueDescription;
21
+ };
22
+ const getAlias = (value) => {
23
+ return getConfig(value)?.alias;
24
+ };
25
+ export default function generateOptions(optionsSchema) {
26
+ let isOptionalByDefault = false;
27
+ if (optionsSchema instanceof ZodOptional) {
28
+ isOptionalByDefault = true;
29
+ optionsSchema = optionsSchema._zod.def.innerType;
30
+ }
31
+ const options = [];
32
+ for (let [name, optionSchema] of Object.entries(optionsSchema._zod.def.shape)) {
33
+ name = decamelize(name, { separator: '-' });
34
+ let defaultValue;
35
+ let isOptional = isOptionalByDefault;
36
+ // Collect description before unwrapping (for .default().describe() pattern)
37
+ let schemaDescription = optionSchema.description;
38
+ // Unwrap zod.string().optional()
39
+ if (optionSchema instanceof ZodOptional) {
40
+ isOptional = true;
41
+ optionSchema = optionSchema._zod.def.innerType;
42
+ }
43
+ // Unwrap zod.string().optional().default()
44
+ if (optionSchema instanceof ZodDefault) {
45
+ isOptional = true;
46
+ defaultValue = optionSchema._zod.def.defaultValue;
47
+ optionSchema = optionSchema._zod.def.innerType;
48
+ }
49
+ // Unwrap zod.string().default().optional()
50
+ if (optionSchema instanceof ZodOptional) {
51
+ isOptional = true;
52
+ optionSchema = optionSchema._zod.def.innerType;
53
+ }
54
+ // Use description from inner schema if not found on outer (for .describe().default() pattern)
55
+ schemaDescription ||= optionSchema.description;
56
+ let defaultValueDescription = getDefaultValueDescription(schemaDescription);
57
+ const description = getDescription(schemaDescription);
58
+ let valueDescription = getValueDescription(schemaDescription);
59
+ const alias = getAlias(schemaDescription);
60
+ let flag = `--${name}`;
61
+ if (optionSchema instanceof ZodBoolean && defaultValue === true) {
62
+ flag = `--no-${name}`;
63
+ }
64
+ else if (alias) {
65
+ flag = `-${alias}, --${name}`;
66
+ }
67
+ const expectsValue = !(optionSchema instanceof ZodBoolean);
68
+ if (expectsValue) {
69
+ const isVariadic = optionSchema instanceof ZodArray || optionSchema instanceof ZodSet;
70
+ valueDescription ||= isVariadic ? plur(name) : name;
71
+ const rest = isVariadic ? '...' : '';
72
+ flag += isOptional || defaultValue ? ` [${valueDescription}${rest}]` : ` <${valueDescription}${rest}>`;
73
+ }
74
+ const option = new Option(flag, description);
75
+ if (optionSchema instanceof ZodNumber) {
76
+ option.argParser((value) => Number.parseFloat(value));
77
+ }
78
+ if (optionSchema instanceof ZodEnum) {
79
+ option.choices(Object.values(optionSchema._zod.def.entries).map(String));
80
+ }
81
+ if (optionSchema instanceof ZodBoolean && defaultValue === undefined) {
82
+ defaultValue = false;
83
+ }
84
+ if (optionSchema instanceof ZodSet) {
85
+ option.argParser((value, previousValue) => {
86
+ const joinPreviousValue = previousValue instanceof Set && !isDeepStrictEqual(previousValue, defaultValue);
87
+ return joinPreviousValue ? new Set([...previousValue, value]) : new Set([value]);
88
+ });
89
+ }
90
+ if (defaultValue !== undefined) {
91
+ if (!defaultValueDescription && defaultValue instanceof Set) {
92
+ defaultValueDescription = JSON.stringify([...defaultValue]);
93
+ }
94
+ option.default(defaultValue, defaultValueDescription);
95
+ }
96
+ options.push(option);
97
+ }
98
+ return options;
99
+ }
100
+ //# sourceMappingURL=generate-options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-options.js","sourceRoot":"","sources":["../../../src/lib/pastel/generate-options.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import type { CommandArgumentConfig, CommandOptionConfig } from './types.js';
2
+ export type Options = {
3
+ /**
4
+ * Description. Defaults to `description` in the nearest package.json.
5
+ */
6
+ description?: string;
7
+ /**
8
+ * Text to display before all help output.
9
+ */
10
+ helpHeader?: string;
11
+ /**
12
+ * Pass in [`import.meta`](https://nodejs.org/dist/latest/docs/api/esm.html#esm_import_meta). This is used to find the `commands` directory.
13
+ */
14
+ importMeta: ImportMeta;
15
+ /**
16
+ * Program name. Defaults to `name` in the nearest package.json or the name of the executable.
17
+ */
18
+ name?: string;
19
+ /**
20
+ * Version. Defaults to `version` in the nearest package.json.
21
+ */
22
+ version?: string;
23
+ };
24
+ export default class Pastel {
25
+ private readonly options;
26
+ constructor(options: Options);
27
+ /**
28
+ * Run the app.
29
+ */
30
+ run(argv?: string[]): Promise<void>;
31
+ }
32
+ /**
33
+ * Set additional metadata for an argument. Must be used as an argument to `describe` function from Zod.
34
+ */
35
+ export declare function argument(config: CommandArgumentConfig): string;
36
+ /**
37
+ * Set additional metadata for an option. Must be used as an argument to `describe` function from Zod.
38
+ */
39
+ export declare function option(config: CommandOptionConfig): string;
40
+ export * from './types.js';
41
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/pastel/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAQ7E,MAAM,MAAM,OAAO,GAAG;IACpB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,UAAU,EAAE,UAAU,CAAC;IAEvB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,MAAM;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;gBAEtB,OAAO,EAAE,OAAO;IAI5B;;OAEG;IACG,GAAG,CAAC,IAAI,GAAE,MAAM,EAAiB;CAwCxC;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,qBAAqB,UAErD;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE,mBAAmB,UAEjD;AAED,cAAc,YAAY,CAAC"}
@@ -0,0 +1,59 @@
1
+ import { Command } from 'commander';
2
+ import process from 'node:process';
3
+ import { fileURLToPath } from 'node:url';
4
+ import { readPackageUp } from 'read-package-up';
5
+ import App from './_app.js';
6
+ import generateCommand from './generate-command.js';
7
+ import generateCommands from './generate-commands.js';
8
+ import readCommands from './read-commands.js';
9
+ import readCustomApp from './read-custom-app.js';
10
+ export default class Pastel {
11
+ options;
12
+ constructor(options) {
13
+ this.options = options;
14
+ }
15
+ /**
16
+ * Run the app.
17
+ */
18
+ async run(argv = process.argv) {
19
+ const commandsDirectory = fileURLToPath(new URL('commands', this.options.importMeta.url));
20
+ const appComponent = (await readCustomApp(commandsDirectory)) ?? App;
21
+ const program = new Command();
22
+ const commands = await readCommands(commandsDirectory);
23
+ const indexCommand = commands.get('index');
24
+ if (indexCommand) {
25
+ generateCommand(program, indexCommand, { appComponent });
26
+ commands.delete('index');
27
+ }
28
+ generateCommands(program, commands, { appComponent });
29
+ if (this.options.name) {
30
+ program.name(this.options.name);
31
+ }
32
+ const package_ = await readPackageUp();
33
+ const version = this.options.version ?? package_?.packageJson.version;
34
+ if (version) {
35
+ program.version(version, '-v, --version', 'Show version number');
36
+ }
37
+ const description = indexCommand?.description ?? this.options.description ?? package_?.packageJson.description ?? '';
38
+ program.description(description);
39
+ program.helpOption('-h, --help', 'Show help');
40
+ if (this.options.helpHeader) {
41
+ program.addHelpText('beforeAll', this.options.helpHeader);
42
+ }
43
+ program.parse(argv);
44
+ }
45
+ }
46
+ /**
47
+ * Set additional metadata for an argument. Must be used as an argument to `describe` function from Zod.
48
+ */
49
+ export function argument(config) {
50
+ return `__pastel_argument_config__${JSON.stringify(config)}`;
51
+ }
52
+ /**
53
+ * Set additional metadata for an option. Must be used as an argument to `describe` function from Zod.
54
+ */
55
+ export function option(config) {
56
+ return `__pastel_option_config__${JSON.stringify(config)}`;
57
+ }
58
+ export * from './types.js';
59
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/pastel/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIhD,OAAO,GAAG,MAAM,WAAW,CAAC;AAC5B,OAAO,eAAe,MAAM,uBAAuB,CAAC;AACpD,OAAO,gBAAgB,MAAM,wBAAwB,CAAC;AACtD,OAAO,YAAY,MAAM,oBAAoB,CAAC;AAC9C,OAAO,aAAa,MAAM,sBAAsB,CAAC;AA6BjD,MAAM,CAAC,OAAO,OAAO,MAAM;IACR,OAAO,CAAU;IAElC,YAAY,OAAgB;QAC1B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAC,OAAiB,OAAO,CAAC,IAAI;QACrC,MAAM,iBAAiB,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QAE1F,MAAM,YAAY,GAAG,CAAC,MAAM,aAAa,CAAC,iBAAiB,CAAC,CAAC,IAAI,GAAG,CAAC;QACrE,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;QAE9B,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,iBAAiB,CAAC,CAAC;QACvD,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAE3C,IAAI,YAAY,EAAE,CAAC;YACjB,eAAe,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;YACzD,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;QAED,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;QAEtD,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,aAAa,EAAE,CAAC;QAEvC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC;QAEtE,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,qBAAqB,CAAC,CAAC;QACnE,CAAC;QAED,MAAM,WAAW,GACf,YAAY,EAAE,WAAW,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,QAAQ,EAAE,WAAW,CAAC,WAAW,IAAI,EAAE,CAAC;QAEnG,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACjC,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;QAE9C,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YAC5B,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC5D,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,MAA6B;IACpD,OAAO,6BAA6B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;AAC/D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,MAAM,CAAC,MAA2B;IAChD,OAAO,2BAA2B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;AAC7D,CAAC;AAED,cAAc,YAAY,CAAC"}
@@ -0,0 +1,34 @@
1
+ import type { ComponentType } from 'react';
2
+ import type { ZodArray, ZodBoolean, ZodDefault, ZodEnum, ZodNumber, ZodObject, ZodOptional, ZodSet, ZodString, ZodTuple, ZodTypeAny } from 'zod';
3
+ import { type AppProps } from './types.js';
4
+ export type Command = {
5
+ alias?: string;
6
+ args?: CommandArguments;
7
+ commands?: Map<string, Command>;
8
+ component?: ComponentType<AppProps['commandProps']>;
9
+ description?: string;
10
+ isDefault: boolean;
11
+ name: string;
12
+ options?: CommandOptions;
13
+ parentCommand?: Command;
14
+ };
15
+ export type CommandArgument = ZodEnum<Record<string, number | string>> | ZodNumber | ZodString;
16
+ export type CommandArguments = ZodMaybeOptionalOrDefault<CommandArgumentsArray | CommandArgumentsTuple>;
17
+ export type CommandArgumentsArray = ZodArray<ZodEnum<Record<string, number | string>>> | ZodArray<ZodNumber> | ZodArray<ZodString>;
18
+ export type CommandArgumentsTuple = ZodTuple<[
19
+ ZodMaybeOptionalOrDefault<CommandArgument>,
20
+ ...Array<ZodMaybeOptionalOrDefault<CommandArgument>>
21
+ ], CommandArgument | null>;
22
+ export type CommandExports = {
23
+ alias?: string;
24
+ args?: CommandArguments;
25
+ default?: ComponentType<AppProps['commandProps']>;
26
+ description?: string;
27
+ isDefault?: boolean;
28
+ options?: CommandOptions;
29
+ };
30
+ export type CommandOption = ZodMaybeOptionalOrDefault<ZodArray<ZodEnum<Record<string, number | string>>>> | ZodMaybeOptionalOrDefault<ZodArray<ZodNumber>> | ZodMaybeOptionalOrDefault<ZodArray<ZodString>> | ZodMaybeOptionalOrDefault<ZodBoolean> | ZodMaybeOptionalOrDefault<ZodEnum<Record<string, number | string>>> | ZodMaybeOptionalOrDefault<ZodNumber> | ZodMaybeOptionalOrDefault<ZodSet<ZodEnum<Record<string, number | string>>>> | ZodMaybeOptionalOrDefault<ZodSet<ZodNumber>> | ZodMaybeOptionalOrDefault<ZodSet<ZodString>> | ZodMaybeOptionalOrDefault<ZodString>;
31
+ export type CommandOptions = ZodMaybeOptional<ZodObject<Record<string, CommandOption>>>;
32
+ export type ZodMaybeOptional<T extends ZodTypeAny> = T | ZodOptional<T>;
33
+ export type ZodMaybeOptionalOrDefault<T extends ZodTypeAny> = T | ZodDefault<T> | ZodDefault<ZodOptional<T>> | ZodOptional<T> | ZodOptional<ZodDefault<T>>;
34
+ //# sourceMappingURL=internal-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal-types.d.ts","sourceRoot":"","sources":["../../../src/lib/pastel/internal-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import {} from './types.js';
2
+ //# sourceMappingURL=internal-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal-types.js","sourceRoot":"","sources":["../../../src/lib/pastel/internal-types.ts"],"names":[],"mappings":"AAeA,OAAO,EAAiB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Command } from './internal-types.js';
2
+ declare const readCommands: (directory: string) => Promise<Map<string, Command>>;
3
+ export default readCommands;
4
+ //# sourceMappingURL=read-commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-commands.d.ts","sourceRoot":"","sources":["../../../src/lib/pastel/read-commands.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAkB,MAAM,qBAAqB,CAAC;AAEnE,QAAA,MAAM,YAAY,GAAU,WAAW,MAAM,KAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAsD3E,CAAC;AAEF,eAAe,YAAY,CAAC"}