effect 4.0.0-beta.25 → 4.0.0-beta.27

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 (155) hide show
  1. package/dist/Cause.d.ts +1 -1
  2. package/dist/Config.js +4 -4
  3. package/dist/Config.js.map +1 -1
  4. package/dist/Data.d.ts +2 -2
  5. package/dist/Data.js +2 -2
  6. package/dist/Effect.d.ts +51 -35
  7. package/dist/Effect.d.ts.map +1 -1
  8. package/dist/Effect.js +16 -12
  9. package/dist/Effect.js.map +1 -1
  10. package/dist/ErrorReporter.d.ts +2 -4
  11. package/dist/ErrorReporter.d.ts.map +1 -1
  12. package/dist/ErrorReporter.js +1 -3
  13. package/dist/ErrorReporter.js.map +1 -1
  14. package/dist/Layer.d.ts +112 -117
  15. package/dist/Layer.d.ts.map +1 -1
  16. package/dist/Layer.js +43 -44
  17. package/dist/Layer.js.map +1 -1
  18. package/dist/LayerMap.d.ts +4 -4
  19. package/dist/LayerMap.js +3 -3
  20. package/dist/ManagedRuntime.d.ts +1 -1
  21. package/dist/ManagedRuntime.js +1 -1
  22. package/dist/Metric.d.ts +2 -4
  23. package/dist/Metric.d.ts.map +1 -1
  24. package/dist/Metric.js +2 -4
  25. package/dist/Metric.js.map +1 -1
  26. package/dist/Runtime.d.ts +66 -0
  27. package/dist/Runtime.d.ts.map +1 -1
  28. package/dist/Runtime.js +72 -5
  29. package/dist/Runtime.js.map +1 -1
  30. package/dist/Schedule.d.ts +36 -36
  31. package/dist/Schedule.js +14 -14
  32. package/dist/Schema.d.ts +15 -32
  33. package/dist/Schema.d.ts.map +1 -1
  34. package/dist/Schema.js +9 -17
  35. package/dist/Schema.js.map +1 -1
  36. package/dist/SchemaAST.js +91 -2
  37. package/dist/SchemaAST.js.map +1 -1
  38. package/dist/SchemaGetter.d.ts +3 -3
  39. package/dist/SchemaRepresentation.d.ts.map +1 -1
  40. package/dist/SchemaRepresentation.js +12 -8
  41. package/dist/SchemaRepresentation.js.map +1 -1
  42. package/dist/Stdio.d.ts +10 -2
  43. package/dist/Stdio.d.ts.map +1 -1
  44. package/dist/Stdio.js +18 -0
  45. package/dist/Stdio.js.map +1 -1
  46. package/dist/index.d.ts +1 -1
  47. package/dist/index.js +1 -1
  48. package/dist/internal/schema/representation.js +7 -3
  49. package/dist/internal/schema/representation.js.map +1 -1
  50. package/dist/internal/schema/to-codec.js +7 -10
  51. package/dist/internal/schema/to-codec.js.map +1 -1
  52. package/dist/unstable/ai/AiError.d.ts +6 -3
  53. package/dist/unstable/ai/AiError.d.ts.map +1 -1
  54. package/dist/unstable/ai/AiError.js +8 -4
  55. package/dist/unstable/ai/AiError.js.map +1 -1
  56. package/dist/unstable/ai/LanguageModel.js +7 -5
  57. package/dist/unstable/ai/LanguageModel.js.map +1 -1
  58. package/dist/unstable/cli/CliError.d.ts +23 -56
  59. package/dist/unstable/cli/CliError.d.ts.map +1 -1
  60. package/dist/unstable/cli/CliError.js +25 -57
  61. package/dist/unstable/cli/CliError.js.map +1 -1
  62. package/dist/unstable/cli/Command.d.ts +117 -62
  63. package/dist/unstable/cli/Command.d.ts.map +1 -1
  64. package/dist/unstable/cli/Command.js +95 -32
  65. package/dist/unstable/cli/Command.js.map +1 -1
  66. package/dist/unstable/cli/GlobalFlag.d.ts +1 -1
  67. package/dist/unstable/cli/GlobalFlag.d.ts.map +1 -1
  68. package/dist/unstable/cli/Primitive.d.ts +1 -1
  69. package/dist/unstable/cli/Primitive.js +1 -1
  70. package/dist/unstable/cli/internal/command.d.ts +27 -10
  71. package/dist/unstable/cli/internal/command.d.ts.map +1 -1
  72. package/dist/unstable/cli/internal/command.js +40 -23
  73. package/dist/unstable/cli/internal/command.js.map +1 -1
  74. package/dist/unstable/cli/internal/config.js +42 -0
  75. package/dist/unstable/cli/internal/config.js.map +1 -1
  76. package/dist/unstable/cli/internal/help.d.ts +4 -4
  77. package/dist/unstable/cli/internal/help.d.ts.map +1 -1
  78. package/dist/unstable/cli/internal/help.js +25 -7
  79. package/dist/unstable/cli/internal/help.js.map +1 -1
  80. package/dist/unstable/cli/internal/parser.js +26 -6
  81. package/dist/unstable/cli/internal/parser.js.map +1 -1
  82. package/dist/unstable/http/Headers.d.ts +16 -0
  83. package/dist/unstable/http/Headers.d.ts.map +1 -1
  84. package/dist/unstable/http/Headers.js +11 -0
  85. package/dist/unstable/http/Headers.js.map +1 -1
  86. package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
  87. package/dist/unstable/httpapi/HttpApiBuilder.js +6 -7
  88. package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
  89. package/dist/unstable/httpapi/HttpApiClient.d.ts +6 -6
  90. package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
  91. package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
  92. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +10 -10
  93. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
  94. package/dist/unstable/httpapi/HttpApiEndpoint.js +2 -2
  95. package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
  96. package/dist/unstable/httpapi/HttpApiError.d.ts +6 -15
  97. package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
  98. package/dist/unstable/httpapi/HttpApiError.js +16 -21
  99. package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
  100. package/dist/unstable/reactivity/Atom.d.ts +56 -0
  101. package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
  102. package/dist/unstable/reactivity/Atom.js +66 -0
  103. package/dist/unstable/reactivity/Atom.js.map +1 -1
  104. package/dist/unstable/reactivity/AtomHttpApi.d.ts +2 -2
  105. package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
  106. package/dist/unstable/rpc/RpcServer.d.ts +3 -0
  107. package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
  108. package/dist/unstable/rpc/RpcServer.js.map +1 -1
  109. package/dist/unstable/schema/Model.d.ts +21 -0
  110. package/dist/unstable/schema/Model.d.ts.map +1 -1
  111. package/dist/unstable/schema/Model.js +15 -0
  112. package/dist/unstable/schema/Model.js.map +1 -1
  113. package/dist/unstable/sql/SqlSchema.d.ts +2 -2
  114. package/dist/unstable/sql/SqlSchema.d.ts.map +1 -1
  115. package/dist/unstable/sql/SqlSchema.js.map +1 -1
  116. package/package.json +1 -1
  117. package/src/Cause.ts +1 -1
  118. package/src/Config.ts +4 -4
  119. package/src/Data.ts +2 -2
  120. package/src/Effect.ts +60 -31
  121. package/src/ErrorReporter.ts +2 -4
  122. package/src/Layer.ts +112 -117
  123. package/src/LayerMap.ts +4 -4
  124. package/src/ManagedRuntime.ts +1 -1
  125. package/src/Metric.ts +2 -4
  126. package/src/Runtime.ts +95 -5
  127. package/src/Schedule.ts +36 -36
  128. package/src/Schema.ts +20 -52
  129. package/src/SchemaAST.ts +127 -2
  130. package/src/SchemaGetter.ts +3 -3
  131. package/src/SchemaRepresentation.ts +12 -8
  132. package/src/Stdio.ts +21 -2
  133. package/src/index.ts +1 -1
  134. package/src/internal/schema/representation.ts +8 -4
  135. package/src/internal/schema/to-codec.ts +7 -17
  136. package/src/unstable/ai/AiError.ts +8 -4
  137. package/src/unstable/ai/LanguageModel.ts +8 -5
  138. package/src/unstable/cli/CliError.ts +47 -59
  139. package/src/unstable/cli/Command.ts +348 -180
  140. package/src/unstable/cli/GlobalFlag.ts +1 -1
  141. package/src/unstable/cli/Primitive.ts +1 -1
  142. package/src/unstable/cli/internal/command.ts +62 -32
  143. package/src/unstable/cli/internal/config.ts +49 -0
  144. package/src/unstable/cli/internal/help.ts +41 -16
  145. package/src/unstable/cli/internal/parser.ts +36 -10
  146. package/src/unstable/http/Headers.ts +34 -0
  147. package/src/unstable/httpapi/HttpApiBuilder.ts +4 -7
  148. package/src/unstable/httpapi/HttpApiClient.ts +6 -6
  149. package/src/unstable/httpapi/HttpApiEndpoint.ts +4 -4
  150. package/src/unstable/httpapi/HttpApiError.ts +23 -21
  151. package/src/unstable/reactivity/Atom.ts +132 -0
  152. package/src/unstable/reactivity/AtomHttpApi.ts +2 -2
  153. package/src/unstable/rpc/RpcServer.ts +5 -0
  154. package/src/unstable/schema/Model.ts +31 -0
  155. package/src/unstable/sql/SqlSchema.ts +2 -2
@@ -6,12 +6,13 @@ import * as Predicate from "../../Predicate.js";
6
6
  import * as References from "../../References.js";
7
7
  import * as Result from "../../Result.js";
8
8
  import * as ServiceMap from "../../ServiceMap.js";
9
+ import * as Stdio from "../../Stdio.js";
9
10
  import * as Terminal from "../../Terminal.js";
10
11
  import * as CliError from "./CliError.js";
11
12
  import * as CliOutput from "./CliOutput.js";
12
13
  import * as GlobalFlag from "./GlobalFlag.js";
13
- import { checkForDuplicateFlags, makeCommand, toImpl, TypeId } from "./internal/command.js";
14
- import { parseConfig } from "./internal/config.js";
14
+ import { checkForDuplicateFlags, makeCommand, makeParser, toImpl, TypeId } from "./internal/command.js";
15
+ import { mergeConfig, parseConfig } from "./internal/config.js";
15
16
  import { getGlobalFlagsForCommandPath, getGlobalFlagsForCommandTree, getHelpForCommandPath } from "./internal/help.js";
16
17
  import * as Lexer from "./internal/lexer.js";
17
18
  import * as Parser from "./internal/parser.js";
@@ -165,7 +166,7 @@ const normalizeSubcommandEntries = entries => {
165
166
  * Adds subcommands to a command, creating a hierarchical command structure.
166
167
  *
167
168
  * Subcommands can access their parent's parsed configuration by yielding the parent
168
- * command within their handler. This enables patterns like global flags that affect
169
+ * command within their handler. This enables shared parent flags that affect
169
170
  * all subcommands.
170
171
  *
171
172
  * @example
@@ -173,10 +174,12 @@ const normalizeSubcommandEntries = entries => {
173
174
  * import { Console, Effect } from "effect"
174
175
  * import { Command, Flag } from "effect/unstable/cli"
175
176
  *
176
- * // Parent command with global flags
177
- * const git = Command.make("git", {
178
- * verbose: Flag.boolean("verbose")
179
- * })
177
+ * // Parent command with shared flags
178
+ * const git = Command.make("git").pipe(
179
+ * Command.withSharedFlags({
180
+ * verbose: Flag.boolean("verbose")
181
+ * })
182
+ * )
180
183
  *
181
184
  * // Subcommand that accesses parent config
182
185
  * const clone = Command.make("clone", {
@@ -202,19 +205,19 @@ export const withSubcommands = /*#__PURE__*/dual(2, (self, subcommands) => {
202
205
  checkForDuplicateFlags(self, normalized.flat);
203
206
  const impl = toImpl(self);
204
207
  const byName = new Map(normalized.flat.map(s => [s.name, toImpl(s)]));
208
+ const SubcommandStateSymbol = Symbol("effect/cli/SubcommandState");
205
209
  const parse = Effect.fnUntraced(function* (raw) {
206
- const parent = yield* impl.parse(raw);
207
210
  if (!raw.subcommand) {
208
- return parent;
211
+ return yield* impl.parse(raw);
209
212
  }
210
213
  const sub = byName.get(raw.subcommand.name);
211
214
  if (!sub) {
212
- return parent;
215
+ return yield* impl.parse(raw);
213
216
  }
217
+ const context = yield* impl.parseContext(raw);
214
218
  const result = yield* sub.parse(raw.subcommand.parsedInput);
215
- // Attach subcommand info internally for routing
216
- return Object.assign({}, parent, {
217
- _subcommand: {
219
+ return Object.assign({}, context, {
220
+ [SubcommandStateSymbol]: {
218
221
  name: sub.name,
219
222
  result
220
223
  }
@@ -222,20 +225,23 @@ export const withSubcommands = /*#__PURE__*/dual(2, (self, subcommands) => {
222
225
  });
223
226
  const handle = Effect.fnUntraced(function* (input, path) {
224
227
  const internal = input;
225
- if (internal._subcommand) {
226
- const child = byName.get(internal._subcommand.name);
228
+ const selectedSubcommand = internal[SubcommandStateSymbol];
229
+ if (selectedSubcommand) {
230
+ const child = byName.get(selectedSubcommand.name);
227
231
  if (!child) {
228
232
  return yield* new CliError.ShowHelp({
229
- commandPath: path
233
+ commandPath: path,
234
+ errors: []
230
235
  });
231
236
  }
232
- return yield* child.handle(internal._subcommand.result, [...path, child.name]).pipe(Effect.provideService(impl.service, input));
237
+ return yield* child.handle(selectedSubcommand.result, [...path, child.name]).pipe(Effect.provideService(impl.service, input));
233
238
  }
234
239
  return yield* impl.handle(input, path);
235
240
  });
236
241
  return makeCommand({
237
242
  name: impl.name,
238
243
  config: impl.config,
244
+ contextConfig: impl.contextConfig,
239
245
  description: impl.description,
240
246
  shortDescription: impl.shortDescription,
241
247
  alias: impl.alias,
@@ -245,6 +251,57 @@ export const withSubcommands = /*#__PURE__*/dual(2, (self, subcommands) => {
245
251
  service: impl.service,
246
252
  subcommands: normalized.groups,
247
253
  parse,
254
+ parseContext: impl.parseContext,
255
+ handle
256
+ });
257
+ });
258
+ /**
259
+ * Adds flags that are inherited by subcommands.
260
+ *
261
+ * Shared flags are available to this command's handler and to descendant
262
+ * handlers via `yield* parentCommand`. Shared flags are accepted both before
263
+ * and after a selected subcommand name (npm-style).
264
+ *
265
+ * @since 4.0.0
266
+ * @category combinators
267
+ */
268
+ export const withSharedFlags = /*#__PURE__*/dual(2, (self, sharedFlags) => {
269
+ const impl = toImpl(self);
270
+ const sharedConfig = parseConfig(sharedFlags);
271
+ const mergedConfig = mergeConfig(impl.config, sharedConfig);
272
+ const mergedContextConfig = mergeConfig(impl.contextConfig, sharedConfig);
273
+ if (impl.subcommands.length > 0) {
274
+ const flatSubcommands = impl.subcommands.flatMap(group => group.commands);
275
+ checkForDuplicateFlags(self, flatSubcommands, {
276
+ contextConfig: mergedContextConfig
277
+ });
278
+ }
279
+ const parseShared = makeParser(sharedConfig);
280
+ const parse = Effect.fnUntraced(function* (raw) {
281
+ const base = yield* impl.parse(raw);
282
+ const shared = yield* parseShared(raw);
283
+ return Object.assign({}, base, shared);
284
+ });
285
+ const parseContext = Effect.fnUntraced(function* (raw) {
286
+ const base = yield* impl.parseContext(raw);
287
+ const shared = yield* parseShared(raw);
288
+ return Object.assign({}, base, shared);
289
+ });
290
+ const handle = (input, commandPath) => impl.handle(input, commandPath);
291
+ return makeCommand({
292
+ name: impl.name,
293
+ config: mergedConfig,
294
+ contextConfig: mergedContextConfig,
295
+ description: impl.description,
296
+ shortDescription: impl.shortDescription,
297
+ alias: impl.alias,
298
+ annotations: impl.annotations,
299
+ globalFlags: impl.globalFlags,
300
+ examples: impl.examples,
301
+ service: impl.service,
302
+ subcommands: impl.subcommands,
303
+ parse,
304
+ parseContext,
248
305
  handle
249
306
  });
250
307
  });
@@ -473,12 +530,12 @@ const getOutOfScopeGlobalFlagErrors = (allFlags, activeFlags, flagMap, commandPa
473
530
  }
474
531
  return errors;
475
532
  };
476
- const showHelp = (command, commandPath, errors) => Effect.gen(function* () {
533
+ const showHelp = (command, error) => Effect.gen(function* () {
477
534
  const formatter = yield* CliOutput.Formatter;
478
- const helpDoc = yield* getHelpForCommandPath(command, commandPath, GlobalFlag.BuiltIns);
535
+ const helpDoc = yield* getHelpForCommandPath(command, error.commandPath, GlobalFlag.BuiltIns);
479
536
  yield* Console.log(formatter.formatHelpDoc(helpDoc));
480
- if (errors && errors.length > 0) {
481
- yield* Console.error(formatter.formatErrors(errors));
537
+ if (error.errors.length > 0) {
538
+ yield* Console.error(formatter.formatErrors(error.errors));
482
539
  }
483
540
  });
484
541
  /**
@@ -496,7 +553,7 @@ const showHelp = (command, commandPath, errors) => Effect.gen(function* () {
496
553
  * yield* Console.log(`Hello, ${config.name}!`)
497
554
  * }))
498
555
  *
499
- * // Automatically gets args from process.argv
556
+ * // Automatically gets args from the Stdio service
500
557
  * const program = Command.run(greetCommand, {
501
558
  * version: "1.0.0"
502
559
  * })
@@ -505,12 +562,9 @@ const showHelp = (command, commandPath, errors) => Effect.gen(function* () {
505
562
  * @since 4.0.0
506
563
  * @category command execution
507
564
  */
508
- export const run = /*#__PURE__*/dual(2, (command, config) => {
509
- // TODO: process.argv is a Node.js global. For browser/edge runtime support,
510
- // consider accepting an optional args parameter or using a platform service.
511
- const input = process.argv.slice(2);
512
- return runWith(command, config)(input);
513
- });
565
+ export const run = /*#__PURE__*/dual(2, (command, config) => Stdio.Stdio.use(({
566
+ args
567
+ }) => Effect.flatMap(args, args => runWith(command, config)(args))));
514
568
  /**
515
569
  * Runs a command with explicitly provided arguments instead of using process.argv.
516
570
  *
@@ -586,7 +640,10 @@ export const runWith = (command, config) => {
586
640
  const outOfScopeErrors = getOutOfScopeGlobalFlagErrors(allFlags, activeFlags, flagMap, commandPath);
587
641
  if (outOfScopeErrors.length > 0) {
588
642
  const parseErrors = parsedArgs.errors ?? [];
589
- return yield* showHelp(command, commandPath, [...outOfScopeErrors, ...parseErrors]);
643
+ return yield* new CliError.ShowHelp({
644
+ commandPath,
645
+ errors: [...outOfScopeErrors, ...parseErrors]
646
+ });
590
647
  }
591
648
  // 5. Process action flags — first present action wins, then exit
592
649
  for (const flag of activeFlags) {
@@ -603,11 +660,17 @@ export const runWith = (command, config) => {
603
660
  }
604
661
  // 6. Handle parsing errors
605
662
  if (parsedArgs.errors && parsedArgs.errors.length > 0) {
606
- return yield* showHelp(command, commandPath, parsedArgs.errors);
663
+ return yield* new CliError.ShowHelp({
664
+ commandPath,
665
+ errors: parsedArgs.errors
666
+ });
607
667
  }
608
668
  const parseResult = yield* Effect.result(commandImpl.parse(parsedArgs));
609
669
  if (parseResult._tag === "Failure") {
610
- return yield* showHelp(command, commandPath, [parseResult.failure]);
670
+ return yield* new CliError.ShowHelp({
671
+ commandPath,
672
+ errors: [parseResult.failure]
673
+ });
611
674
  }
612
675
  // 7. Provide setting values
613
676
  let program = commandImpl.handle(parseResult.success, [command.name]);
@@ -625,6 +688,6 @@ export const runWith = (command, config) => {
625
688
  });
626
689
  // 9. Run command handler with composed context
627
690
  yield* Effect.provideServices(program, services);
628
- }, Effect.catchFilter(error => CliError.isCliError(error) && error._tag === "ShowHelp" ? Result.succeed(error) : Result.fail(error), error => showHelp(command, error.commandPath)), Effect.catchFilter(e => Terminal.isQuitError(e) ? Result.succeed(e) : Result.fail(e), _ => Effect.interrupt));
691
+ }, Effect.catchFilter(error => CliError.isCliError(error) && error._tag === "ShowHelp" ? Result.succeed(error) : Result.fail(error), error => Effect.andThen(showHelp(command, error), Effect.fail(error))), Effect.catchFilter(e => Terminal.isQuitError(e) ? Result.succeed(e) : Result.fail(e), _ => Effect.interrupt));
629
692
  };
630
693
  //# sourceMappingURL=Command.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Command.js","names":["Console","Effect","dual","Option","Predicate","References","Result","ServiceMap","Terminal","CliError","CliOutput","GlobalFlag","checkForDuplicateFlags","makeCommand","toImpl","TypeId","parseConfig","getGlobalFlagsForCommandPath","getGlobalFlagsForCommandTree","getHelpForCommandPath","Lexer","Parser","Param","isCommand","u","hasProperty","make","name","config","handler","parsedConfig","isNotUndefined","handle","withHandler","self","normalizeSubcommandEntries","entries","flat","grouped","Map","addToGroup","group","command","push","existing","get","set","entry","undefined","commands","groups","ungroupedCommands","length","withSubcommands","subcommands","normalized","impl","byName","map","s","parse","fnUntraced","raw","parent","subcommand","sub","result","parsedInput","Object","assign","_subcommand","input","path","internal","child","ShowHelp","commandPath","pipe","provideService","service","description","shortDescription","alias","annotations","globalFlags","examples","withGlobalFlags","next","Array","from","Set","withDescription","withShortDescription","withAlias","annotate","value","add","annotateMerge","merge","withExamples","mapHandler","f","provide","args","layer","options","provideSync","implementation","provideEffect","effect","provideServiceEffect","provideEffectDiscard","andThen","getOutOfScopeGlobalFlagErrors","allFlags","activeFlags","flagMap","activeSet","errors","seen","flag","has","singles","extractSingleParams","single","option","UnrecognizedOption","suggestions","showHelp","gen","formatter","Formatter","helpDoc","BuiltIns","log","formatHelpDoc","error","formatErrors","run","process","argv","slice","runWith","commandImpl","tokens","trailingOperands","lex","allFlagParams","flatMap","globalRegistry","createFlagRegistry","filter","isFlagParam","remainder","consumeKnownFlags","emptyArgs","flags","arguments","parsedArgs","parseArgs","getCommandPath","handlerCtx","version","outOfScopeErrors","parseErrors","_tag","hasEntry","some","parseResult","failure","program","success","logLevel","LogLevel","services","match","onNone","empty","onSome","level","MinimumLogLevel","provideServices","catchFilter","isCliError","succeed","fail","e","isQuitError","_","interrupt"],"sources":["../../../src/unstable/cli/Command.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Command.js","names":["Console","Effect","dual","Option","Predicate","References","Result","ServiceMap","Stdio","Terminal","CliError","CliOutput","GlobalFlag","checkForDuplicateFlags","makeCommand","makeParser","toImpl","TypeId","mergeConfig","parseConfig","getGlobalFlagsForCommandPath","getGlobalFlagsForCommandTree","getHelpForCommandPath","Lexer","Parser","Param","isCommand","u","hasProperty","make","name","config","handler","parsedConfig","isNotUndefined","handle","withHandler","self","normalizeSubcommandEntries","entries","flat","grouped","Map","addToGroup","group","command","push","existing","get","set","entry","undefined","commands","groups","ungroupedCommands","length","withSubcommands","subcommands","normalized","impl","byName","map","s","SubcommandStateSymbol","Symbol","parse","fnUntraced","raw","subcommand","sub","context","parseContext","result","parsedInput","Object","assign","input","path","internal","selectedSubcommand","child","ShowHelp","commandPath","errors","pipe","provideService","service","contextConfig","description","shortDescription","alias","annotations","globalFlags","examples","withSharedFlags","sharedFlags","sharedConfig","mergedConfig","mergedContextConfig","flatSubcommands","flatMap","parseShared","base","shared","withGlobalFlags","next","Array","from","Set","withDescription","withShortDescription","withAlias","annotate","value","add","annotateMerge","merge","withExamples","mapHandler","f","provide","args","layer","options","provideSync","implementation","provideEffect","effect","provideServiceEffect","provideEffectDiscard","andThen","getOutOfScopeGlobalFlagErrors","allFlags","activeFlags","flagMap","activeSet","seen","flag","has","singles","extractSingleParams","single","option","UnrecognizedOption","suggestions","showHelp","error","gen","formatter","Formatter","helpDoc","BuiltIns","log","formatHelpDoc","formatErrors","run","use","runWith","commandImpl","tokens","trailingOperands","lex","allFlagParams","globalRegistry","createFlagRegistry","filter","isFlagParam","remainder","consumeKnownFlags","emptyArgs","flags","arguments","parsedArgs","parseArgs","getCommandPath","handlerCtx","version","outOfScopeErrors","parseErrors","_tag","hasEntry","some","parseResult","failure","program","success","logLevel","LogLevel","services","match","onNone","empty","onSome","level","MinimumLogLevel","provideServices","catchFilter","isCliError","succeed","fail","e","isQuitError","_","interrupt"],"sources":["../../../src/unstable/cli/Command.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -14,7 +14,7 @@ import * as Flag from "./Flag.ts";
14
14
  * @category models
15
15
  */
16
16
  export interface HandlerContext {
17
- readonly command: Command.Command<any, unknown, unknown, unknown>;
17
+ readonly command: Command.Command<any, unknown, any, unknown, unknown>;
18
18
  readonly commandPath: ReadonlyArray<string>;
19
19
  readonly version: string;
20
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"GlobalFlag.d.ts","sourceRoot":"","sources":["../../../src/unstable/cli/GlobalFlag.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GlobalFlag.d.ts","sourceRoot":"","sources":["../../../src/unstable/cli/GlobalFlag.ts"],"names":[],"mappings":"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"}
@@ -407,7 +407,7 @@ export declare const keyValuePair: Primitive<Record<string, string>>;
407
407
  *
408
408
  * const program = Effect.gen(function*() {
409
409
  * // This will always fail - useful for boolean flags
410
- * const result = yield* Primitive.none.parse("any-value")
410
+ * return yield* Primitive.none.parse("any-value")
411
411
  * })
412
412
  *
413
413
  * // The above effect will fail with "This option does not accept values"
@@ -446,7 +446,7 @@ export const keyValuePair = /*#__PURE__*/makePrimitive("KeyValuePair", /*#__PURE
446
446
  *
447
447
  * const program = Effect.gen(function*() {
448
448
  * // This will always fail - useful for boolean flags
449
- * const result = yield* Primitive.none.parse("any-value")
449
+ * return yield* Primitive.none.parse("any-value")
450
450
  * })
451
451
  *
452
452
  * // The above effect will fail with "This option does not accept values"
@@ -10,23 +10,26 @@ import * as Effect from "../../../Effect.ts";
10
10
  import * as ServiceMap from "../../../ServiceMap.ts";
11
11
  import * as CliError from "../CliError.ts";
12
12
  import type * as GlobalFlag from "../GlobalFlag.ts";
13
- import type { HelpDoc } from "../HelpDoc.ts";
13
+ import type { FlagDoc, HelpDoc } from "../HelpDoc.ts";
14
+ import * as Param from "../Param.ts";
14
15
  import { type ConfigInternal } from "./config.ts";
15
16
  import type { Command, CommandContext, Environment, ParsedTokens } from "../Command.ts";
16
17
  interface SubcommandGroup {
17
18
  readonly group: string | undefined;
18
- readonly commands: Arr.NonEmptyReadonlyArray<Command<any, unknown, unknown, unknown>>;
19
+ readonly commands: Arr.NonEmptyReadonlyArray<Command<any, unknown, any, unknown, unknown>>;
19
20
  }
20
21
  /**
21
22
  * Internal implementation interface with all the machinery.
22
23
  * Use toImpl() to access from internal code.
23
24
  */
24
- export interface CommandInternal<Name extends string, Input, E, R> extends Command<Name, Input, E, R> {
25
+ export interface CommandInternal<Name extends string, Input, E, R, ContextInput> extends Command<Name, Input, ContextInput, E, R> {
25
26
  readonly config: ConfigInternal;
26
- readonly service: ServiceMap.Key<CommandContext<Name>, Input>;
27
+ readonly contextConfig: ConfigInternal;
28
+ readonly service: ServiceMap.Key<CommandContext<Name>, ContextInput>;
27
29
  readonly annotations: ServiceMap.ServiceMap<never>;
28
30
  readonly globalFlags: ReadonlyArray<GlobalFlag.GlobalFlag<any>>;
29
31
  readonly parse: (input: ParsedTokens) => Effect.Effect<Input, CliError.CliError, Environment>;
32
+ readonly parseContext: (input: ParsedTokens) => Effect.Effect<ContextInput, CliError.CliError, Environment>;
30
33
  readonly handle: (input: Input, commandPath: ReadonlyArray<string>) => Effect.Effect<void, E | CliError.CliError, R | Environment>;
31
34
  readonly buildHelpDoc: (commandPath: ReadonlyArray<string>) => HelpDoc;
32
35
  }
@@ -35,19 +38,20 @@ export declare const TypeId: "~effect/cli/Command";
35
38
  * Casts a Command to its internal implementation.
36
39
  * For use by internal modules that need access to config, parse, handle, etc.
37
40
  */
38
- export declare const toImpl: <Name extends string, Input, E, R>(self: Command<Name, Input, E, R>) => CommandInternal<Name, Input, E, R>;
41
+ export declare const toImpl: <Name extends string, Input, E, R, ContextInput = {}>(self: Command<Name, Input, ContextInput, E, R>) => CommandInternal<Name, Input, E, R, ContextInput>;
39
42
  export declare const Proto: {
40
43
  pipe(): unknown;
41
- asEffect(this: Command<any, any, any, any>): Effect.Effect<any, never, CommandContext<any>>;
44
+ asEffect(this: Command<any, any, any, any, any>): Effect.Effect<any, never, CommandContext<any>>;
42
45
  [Symbol.iterator](): any;
43
46
  };
44
47
  /**
45
48
  * Internal command constructor. Only accepts already-parsed ConfigInternal.
46
49
  */
47
- export declare const makeCommand: <const Name extends string, Input, E, R>(options: {
50
+ export declare const makeCommand: <const Name extends string, Input, E, R, ContextInput = {}>(options: {
48
51
  readonly name: Name;
49
52
  readonly config: ConfigInternal;
50
- readonly service?: ServiceMap.Key<CommandContext<Name>, Input> | undefined;
53
+ readonly contextConfig?: ConfigInternal | undefined;
54
+ readonly service?: ServiceMap.Key<CommandContext<Name>, ContextInput> | undefined;
51
55
  readonly annotations?: ServiceMap.ServiceMap<never> | undefined;
52
56
  readonly globalFlags?: ReadonlyArray<GlobalFlag.GlobalFlag<any>> | undefined;
53
57
  readonly description?: string | undefined;
@@ -56,11 +60,24 @@ export declare const makeCommand: <const Name extends string, Input, E, R>(optio
56
60
  readonly examples?: ReadonlyArray<Command.Example> | undefined;
57
61
  readonly subcommands?: ReadonlyArray<SubcommandGroup> | undefined;
58
62
  readonly parse?: ((input: ParsedTokens) => Effect.Effect<Input, CliError.CliError, Environment>) | undefined;
63
+ readonly parseContext?: ((input: ParsedTokens) => Effect.Effect<ContextInput, CliError.CliError, Environment>) | undefined;
59
64
  readonly handle?: ((input: Input, commandPath: ReadonlyArray<string>) => Effect.Effect<void, E, R | Environment>) | undefined;
60
- }) => Command<Name, Input, E, R>;
65
+ }) => Command<Name, Input, ContextInput, E, R>;
66
+ /**
67
+ * Converts a single flag param into a FlagDoc for help display.
68
+ */
69
+ export declare const toFlagDoc: (single: Param.Single<typeof Param.flagKind, unknown>) => FlagDoc;
70
+ /**
71
+ * Creates a parser for a given config. Used as the default for both `parse`
72
+ * and `parseContext`, and also by `withSharedFlags` to avoid constructing a
73
+ * full throwaway command.
74
+ */
75
+ export declare const makeParser: (cfg: ConfigInternal) => (input: ParsedTokens) => Effect.Effect<Record<string, any>, CliError.CliError, Environment>;
61
76
  /**
62
77
  * Checks for duplicate flag names between parent and child commands.
63
78
  */
64
- export declare const checkForDuplicateFlags: <Name extends string, Input>(parent: Command<Name, Input, unknown, unknown>, subcommands: ReadonlyArray<Command<any, unknown, unknown, unknown>>) => void;
79
+ export declare const checkForDuplicateFlags: <Name extends string, Input, ContextInput>(parent: Command<Name, Input, ContextInput, unknown, unknown>, subcommands: ReadonlyArray<Command<any, unknown, any, unknown, unknown>>, options?: {
80
+ readonly contextConfig?: ConfigInternal | undefined;
81
+ } | undefined) => void;
65
82
  export {};
66
83
  //# sourceMappingURL=command.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../src/unstable/cli/internal/command.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,GAAG,MAAM,mBAAmB,CAAA;AACxC,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAA;AAI5C,OAAO,KAAK,UAAU,MAAM,wBAAwB,CAAA;AACpD,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAA;AAC1C,OAAO,KAAK,KAAK,UAAU,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EAA+B,OAAO,EAAsB,MAAM,eAAe,CAAA;AAG7F,OAAO,EAAE,KAAK,cAAc,EAAmB,MAAM,aAAa,CAAA;AAMlE,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAEvF,UAAU,eAAe;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,qBAAqB,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAA;CACtF;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe,CAAC,IAAI,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAE,SAAQ,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IACnG,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;IAC/B,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAA;IAC7D,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;IAClD,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAA;IAC/D,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;IAC7F,QAAQ,CAAC,MAAM,EAAE,CACf,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,KAC/B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,WAAW,CAAC,CAAA;IAChE,QAAQ,CAAC,YAAY,EAAE,CAAC,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,KAAK,OAAO,CAAA;CACvE;AAMD,eAAO,MAAM,MAAM,EAAG,qBAA8B,CAAA;AAMpD;;;GAGG;AACH,eAAO,MAAM,MAAM,GAAI,IAAI,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EACrD,MAAM,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,KAC/B,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAA+C,CAAA;AAMnF,eAAO,MAAM,KAAK;;mBAKD,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;;CAG3C,CAAA;AAMD;;GAEG;AACH,eAAO,MAAM,WAAW,GAAI,KAAK,CAAC,IAAI,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS;IAC3E,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;IACnB,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;IAC/B,QAAQ,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,GAAG,SAAS,CAAA;IAC1E,QAAQ,CAAC,WAAW,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,SAAS,CAAA;IAC/D,QAAQ,CAAC,WAAW,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAA;IAC5E,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACzC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC9C,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,SAAS,CAAA;IAC9D,QAAQ,CAAC,WAAW,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,GAAG,SAAS,CAAA;IACjE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,YAAY,KAAK,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,GAAG,SAAS,CAAA;IAC5G,QAAQ,CAAC,MAAM,CAAC,EACZ,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,GAC/F,SAAS,CAAA;CACd,KAAG,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAgH5B,CAAA;AA8BD;;GAEG;AACH,eAAO,MAAM,sBAAsB,GAAI,IAAI,SAAS,MAAM,EAAE,KAAK,EAC/D,QAAQ,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAC9C,aAAa,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,KAClE,IA8BF,CAAA"}
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../src/unstable/cli/internal/command.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,7 @@ import * as ServiceMap from "../../../ServiceMap.js";
14
14
  import * as CliError from "../CliError.js";
15
15
  import * as Param from "../Param.js";
16
16
  import * as Primitive from "../Primitive.js";
17
- import { reconstructTree } from "./config.js";
17
+ import { emptyConfig, reconstructTree } from "./config.js";
18
18
  /* ========================================================================== */
19
19
  /* Type ID */
20
20
  /* ========================================================================== */
@@ -46,22 +46,18 @@ export const Proto = {
46
46
  * Internal command constructor. Only accepts already-parsed ConfigInternal.
47
47
  */
48
48
  export const makeCommand = options => {
49
- const service = options.service ?? ServiceMap.Service(`${TypeId}/${options.name}`);
50
49
  const config = options.config;
50
+ const contextConfig = options.contextConfig ?? emptyConfig;
51
+ const service = options.service ?? ServiceMap.Service(`${TypeId}/${options.name}`);
51
52
  const annotations = options.annotations ?? ServiceMap.empty();
52
53
  const globalFlags = options.globalFlags ?? [];
53
54
  const subcommands = options.subcommands ?? [];
54
55
  const handle = (input, commandPath) => Predicate.isNotUndefined(options.handle) ? options.handle(input, commandPath) : Effect.fail(new CliError.ShowHelp({
55
- commandPath
56
+ commandPath,
57
+ errors: []
56
58
  }));
57
- const parse = options.parse ?? Effect.fnUntraced(function* (input) {
58
- const parsedArgs = {
59
- flags: input.flags,
60
- arguments: input.arguments
61
- };
62
- const values = yield* parseParams(parsedArgs, config.orderedParams);
63
- return reconstructTree(config.tree, values);
64
- });
59
+ const parse = options.parse ?? makeParser(config);
60
+ const parseContext = options.parseContext ?? makeParser(contextConfig);
65
61
  const buildHelpDoc = commandPath => {
66
62
  const args = [];
67
63
  const flags = [];
@@ -90,14 +86,7 @@ export const makeCommand = options => {
90
86
  for (const option of config.flags) {
91
87
  const singles = Param.extractSingleParams(option);
92
88
  for (const single of singles) {
93
- const formattedAliases = single.aliases.map(alias => alias.length === 1 ? `-${alias}` : `--${alias}`);
94
- flags.push({
95
- name: single.name,
96
- aliases: formattedAliases,
97
- type: single.typeName ?? Primitive.getTypeName(single.primitiveType),
98
- description: single.description,
99
- required: single.primitiveType._tag !== "Boolean"
100
- });
89
+ flags.push(toFlagDoc(single));
101
90
  }
102
91
  }
103
92
  const subcommandDocs = [];
@@ -137,8 +126,10 @@ export const makeCommand = options => {
137
126
  globalFlags,
138
127
  subcommands,
139
128
  config,
129
+ contextConfig,
140
130
  service,
141
131
  parse,
132
+ parseContext,
142
133
  handle,
143
134
  buildHelpDoc,
144
135
  ...(Predicate.isNotUndefined(options.description) ? {
@@ -155,6 +146,32 @@ export const makeCommand = options => {
155
146
  /* ========================================================================== */
156
147
  /* Helpers */
157
148
  /* ========================================================================== */
149
+ /**
150
+ * Converts a single flag param into a FlagDoc for help display.
151
+ */
152
+ export const toFlagDoc = single => {
153
+ const formattedAliases = single.aliases.map(alias => alias.length === 1 ? `-${alias}` : `--${alias}`);
154
+ return {
155
+ name: single.name,
156
+ aliases: formattedAliases,
157
+ type: single.typeName ?? Primitive.getTypeName(single.primitiveType),
158
+ description: single.description,
159
+ required: single.primitiveType._tag !== "Boolean"
160
+ };
161
+ };
162
+ /**
163
+ * Creates a parser for a given config. Used as the default for both `parse`
164
+ * and `parseContext`, and also by `withSharedFlags` to avoid constructing a
165
+ * full throwaway command.
166
+ */
167
+ export const makeParser = cfg => Effect.fnUntraced(function* (input) {
168
+ const parsedArgs = {
169
+ flags: input.flags,
170
+ arguments: input.arguments
171
+ };
172
+ const values = yield* parseParams(parsedArgs, cfg.orderedParams);
173
+ return reconstructTree(cfg.tree, values);
174
+ });
158
175
  /**
159
176
  * Parses param values from parsed command arguments into their typed
160
177
  * representations.
@@ -175,18 +192,18 @@ const parseParams = /*#__PURE__*/Effect.fnUntraced(function* (parsedArgs, params
175
192
  /**
176
193
  * Checks for duplicate flag names between parent and child commands.
177
194
  */
178
- export const checkForDuplicateFlags = (parent, subcommands) => {
195
+ export const checkForDuplicateFlags = (parent, subcommands, options) => {
179
196
  const parentImpl = toImpl(parent);
180
197
  const parentOptionNames = new Set();
181
- const extractNames = options => {
182
- for (const option of options) {
198
+ const extractNames = flags => {
199
+ for (const option of flags) {
183
200
  const singles = Param.extractSingleParams(option);
184
201
  for (const single of singles) {
185
202
  parentOptionNames.add(single.name);
186
203
  }
187
204
  }
188
205
  };
189
- extractNames(parentImpl.config.flags);
206
+ extractNames((options?.contextConfig ?? parentImpl.contextConfig).flags);
190
207
  for (const subcommand of subcommands) {
191
208
  const subImpl = toImpl(subcommand);
192
209
  for (const option of subImpl.config.flags) {