effect 4.0.0-beta.13 → 4.0.0-beta.15

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 (64) hide show
  1. package/dist/Channel.d.ts +6 -6
  2. package/dist/Channel.d.ts.map +1 -1
  3. package/dist/Channel.js +4 -4
  4. package/dist/Channel.js.map +1 -1
  5. package/dist/Effect.d.ts +7 -7
  6. package/dist/Effect.d.ts.map +1 -1
  7. package/dist/Effect.js.map +1 -1
  8. package/dist/Stream.d.ts +7 -7
  9. package/dist/Stream.d.ts.map +1 -1
  10. package/dist/Stream.js +8 -6
  11. package/dist/Stream.js.map +1 -1
  12. package/dist/Types.d.ts +70 -0
  13. package/dist/Types.d.ts.map +1 -1
  14. package/dist/internal/effect.js +4 -4
  15. package/dist/internal/effect.js.map +1 -1
  16. package/dist/unstable/ai/LanguageModel.d.ts +2 -0
  17. package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
  18. package/dist/unstable/ai/LanguageModel.js.map +1 -1
  19. package/dist/unstable/cli/Command.d.ts +34 -4
  20. package/dist/unstable/cli/Command.d.ts.map +1 -1
  21. package/dist/unstable/cli/Command.js +75 -20
  22. package/dist/unstable/cli/Command.js.map +1 -1
  23. package/dist/unstable/cli/GlobalFlag.d.ts +25 -62
  24. package/dist/unstable/cli/GlobalFlag.d.ts.map +1 -1
  25. package/dist/unstable/cli/GlobalFlag.js +41 -87
  26. package/dist/unstable/cli/GlobalFlag.js.map +1 -1
  27. package/dist/unstable/cli/internal/command.d.ts +3 -0
  28. package/dist/unstable/cli/internal/command.d.ts.map +1 -1
  29. package/dist/unstable/cli/internal/command.js +2 -0
  30. package/dist/unstable/cli/internal/command.js.map +1 -1
  31. package/dist/unstable/cli/internal/help.d.ts +18 -4
  32. package/dist/unstable/cli/internal/help.d.ts.map +1 -1
  33. package/dist/unstable/cli/internal/help.js +62 -9
  34. package/dist/unstable/cli/internal/help.js.map +1 -1
  35. package/dist/unstable/httpapi/HttpApiBuilder.d.ts +10 -4
  36. package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
  37. package/dist/unstable/httpapi/HttpApiBuilder.js +17 -6
  38. package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
  39. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +7 -2
  40. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
  41. package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
  42. package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
  43. package/dist/unstable/httpapi/OpenApi.js +3 -4
  44. package/dist/unstable/httpapi/OpenApi.js.map +1 -1
  45. package/dist/unstable/reactivity/AtomHttpApi.d.ts +2 -2
  46. package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
  47. package/dist/unstable/reactivity/AtomRegistry.js +2 -6
  48. package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
  49. package/package.json +1 -1
  50. package/src/Channel.ts +24 -14
  51. package/src/Effect.ts +30 -8
  52. package/src/Stream.ts +46 -22
  53. package/src/Types.ts +66 -0
  54. package/src/internal/effect.ts +41 -14
  55. package/src/unstable/ai/LanguageModel.ts +9 -6
  56. package/src/unstable/cli/Command.ts +122 -24
  57. package/src/unstable/cli/GlobalFlag.ts +98 -197
  58. package/src/unstable/cli/internal/command.ts +5 -0
  59. package/src/unstable/cli/internal/help.ts +104 -24
  60. package/src/unstable/httpapi/HttpApiBuilder.ts +68 -13
  61. package/src/unstable/httpapi/HttpApiEndpoint.ts +13 -4
  62. package/src/unstable/httpapi/OpenApi.ts +3 -4
  63. package/src/unstable/reactivity/AtomHttpApi.ts +2 -2
  64. package/src/unstable/reactivity/AtomRegistry.ts +2 -6
@@ -2,8 +2,7 @@
2
2
  * @since 4.0.0
3
3
  */
4
4
  import * as Effect from "../../Effect.ts";
5
- import * as Layer from "../../Layer.ts";
6
- import type { LogLevel } from "../../LogLevel.ts";
5
+ import type { LogLevel as LogLevelType } from "../../LogLevel.ts";
7
6
  import * as Option from "../../Option.ts";
8
7
  import * as ServiceMap from "../../ServiceMap.ts";
9
8
  import type * as Command from "./Command.ts";
@@ -36,10 +35,20 @@ export interface Action<A> {
36
35
  * @since 4.0.0
37
36
  * @category models
38
37
  */
39
- export interface Setting<A> {
38
+ export interface Setting<Id extends string, A> extends ServiceMap.Service<Setting.Identifier<Id>, A> {
40
39
  readonly _tag: "Setting";
40
+ readonly id: Id;
41
41
  readonly flag: Flag.Flag<A>;
42
- readonly layer: (value: A) => Layer.Layer<never>;
42
+ }
43
+ /**
44
+ * @since 4.0.0
45
+ */
46
+ export declare namespace Setting {
47
+ /**
48
+ * @since 4.0.0
49
+ * @category models
50
+ */
51
+ type Identifier<Id extends string> = `effect/unstable/cli/GlobalFlag/${Id}`;
43
52
  }
44
53
  /**
45
54
  * Global flag discriminated union.
@@ -47,7 +56,7 @@ export interface Setting<A> {
47
56
  * @since 4.0.0
48
57
  * @category models
49
58
  */
50
- export type GlobalFlag<A> = Action<A> | Setting<A>;
59
+ export type GlobalFlag<A> = Action<A> | Setting<any, A>;
51
60
  /**
52
61
  * Creates an Action flag that performs a side effect and exits.
53
62
  *
@@ -64,10 +73,9 @@ export declare const action: <A>(options: {
64
73
  * @since 4.0.0
65
74
  * @category constructors
66
75
  */
67
- export declare const setting: <A>(options: {
76
+ export declare const setting: <const Id extends string>(id: Id) => <A>(options: {
68
77
  readonly flag: Flag.Flag<A>;
69
- readonly layer: (value: A) => Layer.Layer<never>;
70
- }) => Setting<A>;
78
+ }) => Setting<Id, A>;
71
79
  /**
72
80
  * The `--help` / `-h` global flag.
73
81
  * Shows help documentation for the command.
@@ -75,7 +83,7 @@ export declare const setting: <A>(options: {
75
83
  * @since 4.0.0
76
84
  * @category references
77
85
  */
78
- export declare const Help: ServiceMap.Reference<Action<boolean>>;
86
+ export declare const Help: Action<boolean>;
79
87
  /**
80
88
  * The `--version` global flag.
81
89
  * Shows version information for the command.
@@ -83,7 +91,7 @@ export declare const Help: ServiceMap.Reference<Action<boolean>>;
83
91
  * @since 4.0.0
84
92
  * @category references
85
93
  */
86
- export declare const Version: ServiceMap.Reference<Action<boolean>>;
94
+ export declare const Version: Action<boolean>;
87
95
  /**
88
96
  * The `--completions` global flag.
89
97
  * Prints shell completion script for the given shell.
@@ -91,7 +99,7 @@ export declare const Version: ServiceMap.Reference<Action<boolean>>;
91
99
  * @since 4.0.0
92
100
  * @category references
93
101
  */
94
- export declare const CompletionsFlag: ServiceMap.Reference<Action<Option.Option<"bash" | "zsh" | "fish">>>;
102
+ export declare const Completions: Action<Option.Option<"bash" | "zsh" | "fish">>;
95
103
  /**
96
104
  * The `--log-level` global flag.
97
105
  * Sets the minimum log level for the command.
@@ -99,64 +107,19 @@ export declare const CompletionsFlag: ServiceMap.Reference<Action<Option.Option<
99
107
  * @since 4.0.0
100
108
  * @category references
101
109
  */
102
- export declare const LogLevelFlag: ServiceMap.Reference<Setting<Option.Option<LogLevel>>>;
110
+ export declare const LogLevel: Setting<"log-level", Option.Option<LogLevelType>>;
103
111
  /**
104
- * The ordered set of global flag references.
105
- * The parser iterates this set to know which flags to extract.
112
+ * Built-in global flags in default precedence order.
106
113
  *
107
114
  * @since 4.0.0
108
115
  * @category references
109
116
  */
110
- export declare const Registry: ServiceMap.Reference<Set<ServiceMap.Reference<GlobalFlag<any>>>>;
111
- /**
112
- * Adds a global flag to the registry.
113
- *
114
- * @since 4.0.0
115
- * @category modifiers
116
- */
117
- export declare const add: {
118
- /**
119
- * Adds a global flag to the registry.
120
- *
121
- * @since 4.0.0
122
- * @category modifiers
123
- */
124
- <A>(ref: ServiceMap.Reference<GlobalFlag<A>>): <B, E, R>(self: Effect.Effect<B, E, R>) => Effect.Effect<B, E, R>;
125
- /**
126
- * Adds a global flag to the registry.
127
- *
128
- * @since 4.0.0
129
- * @category modifiers
130
- */
131
- <B, E, R, A>(self: Effect.Effect<B, E, R>, ref: ServiceMap.Reference<GlobalFlag<A>>): Effect.Effect<B, E, R>;
132
- };
133
- /**
134
- * Removes a global flag by its reference.
135
- *
136
- * @since 4.0.0
137
- * @category modifiers
138
- */
139
- export declare const remove: {
140
- /**
141
- * Removes a global flag by its reference.
142
- *
143
- * @since 4.0.0
144
- * @category modifiers
145
- */
146
- <A>(ref: ServiceMap.Reference<GlobalFlag<A>>): <B, E, R>(self: Effect.Effect<B, E, R>) => Effect.Effect<B, E, R>;
147
- /**
148
- * Removes a global flag by its reference.
149
- *
150
- * @since 4.0.0
151
- * @category modifiers
152
- */
153
- <B, E, R, A>(self: Effect.Effect<B, E, R>, ref: ServiceMap.Reference<GlobalFlag<A>>): Effect.Effect<B, E, R>;
154
- };
117
+ export declare const BuiltIns: ReadonlyArray<GlobalFlag<any>>;
155
118
  /**
156
- * Removes all global flags (built-in and user-defined).
119
+ * Built-in setting context identifiers.
157
120
  *
158
121
  * @since 4.0.0
159
- * @category modifiers
122
+ * @category models
160
123
  */
161
- export declare const clear: <B, E, R>(self: Effect.Effect<B, E, R>) => Effect.Effect<B, E, R>;
124
+ export type BuiltInSettingContext = Setting.Identifier<"log-level">;
162
125
  //# sourceMappingURL=GlobalFlag.d.ts.map
@@ -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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"}
@@ -3,10 +3,7 @@
3
3
  */
4
4
  import * as Console from "../../Console.js";
5
5
  import * as Effect from "../../Effect.js";
6
- import { dual } from "../../Function.js";
7
- import * as Layer from "../../Layer.js";
8
6
  import * as Option from "../../Option.js";
9
- import * as References from "../../References.js";
10
7
  import * as ServiceMap from "../../ServiceMap.js";
11
8
  import * as CliOutput from "./CliOutput.js";
12
9
  import * as Flag from "./Flag.js";
@@ -30,16 +27,21 @@ export const action = options => ({
30
27
  * @since 4.0.0
31
28
  * @category constructors
32
29
  */
33
- export const setting = options => ({
34
- _tag: "Setting",
35
- flag: options.flag,
36
- layer: options.layer
37
- });
30
+ export const setting = id => options => {
31
+ settingIdCounter += 1;
32
+ const ref = ServiceMap.Service(`effect/unstable/cli/GlobalFlag/${id}/${settingIdCounter}`);
33
+ return Object.assign(ref, {
34
+ _tag: "Setting",
35
+ id,
36
+ flag: options.flag
37
+ });
38
+ };
39
+ let settingIdCounter = 0;
38
40
  /* ========================================================================== */
39
41
  /* Built-in Flag References */
40
42
  /* ========================================================================== */
41
43
  import * as CommandDescriptor from "./internal/completions/CommandDescriptor.js";
42
- import * as Completions from "./internal/completions/Completions.js";
44
+ import * as CompletionsInternal from "./internal/completions/Completions.js";
43
45
  import * as HelpInternal from "./internal/help.js";
44
46
  /**
45
47
  * The `--help` / `-h` global flag.
@@ -48,17 +50,15 @@ import * as HelpInternal from "./internal/help.js";
48
50
  * @since 4.0.0
49
51
  * @category references
50
52
  */
51
- export const Help = /*#__PURE__*/ServiceMap.Reference("effect/cli/GlobalFlag/Help", {
52
- defaultValue: () => action({
53
- flag: Flag.boolean("help").pipe(Flag.withAlias("h"), Flag.withDescription("Show help information")),
54
- run: (_, {
55
- command,
56
- commandPath
57
- }) => Effect.gen(function* () {
58
- const formatter = yield* CliOutput.Formatter;
59
- const helpDoc = yield* HelpInternal.getHelpForCommandPath(command, commandPath, Registry);
60
- yield* Console.log(formatter.formatHelpDoc(helpDoc));
61
- })
53
+ export const Help = /*#__PURE__*/action({
54
+ flag: /*#__PURE__*/Flag.boolean("help").pipe(/*#__PURE__*/Flag.withAlias("h"), /*#__PURE__*/Flag.withDescription("Show help information")),
55
+ run: (_, {
56
+ command,
57
+ commandPath
58
+ }) => Effect.gen(function* () {
59
+ const formatter = yield* CliOutput.Formatter;
60
+ const helpDoc = yield* HelpInternal.getHelpForCommandPath(command, commandPath, BuiltIns);
61
+ yield* Console.log(formatter.formatHelpDoc(helpDoc));
62
62
  })
63
63
  });
64
64
  /**
@@ -68,16 +68,14 @@ export const Help = /*#__PURE__*/ServiceMap.Reference("effect/cli/GlobalFlag/Hel
68
68
  * @since 4.0.0
69
69
  * @category references
70
70
  */
71
- export const Version = /*#__PURE__*/ServiceMap.Reference("effect/cli/GlobalFlag/Version", {
72
- defaultValue: () => action({
73
- flag: Flag.boolean("version").pipe(Flag.withDescription("Show version information")),
74
- run: (_, {
75
- command,
76
- version
77
- }) => Effect.gen(function* () {
78
- const formatter = yield* CliOutput.Formatter;
79
- yield* Console.log(formatter.formatVersion(command.name, version));
80
- })
71
+ export const Version = /*#__PURE__*/action({
72
+ flag: /*#__PURE__*/Flag.boolean("version").pipe(/*#__PURE__*/Flag.withDescription("Show version information")),
73
+ run: (_, {
74
+ command,
75
+ version
76
+ }) => Effect.gen(function* () {
77
+ const formatter = yield* CliOutput.Formatter;
78
+ yield* Console.log(formatter.formatVersion(command.name, version));
81
79
  })
82
80
  });
83
81
  /**
@@ -87,16 +85,14 @@ export const Version = /*#__PURE__*/ServiceMap.Reference("effect/cli/GlobalFlag/
87
85
  * @since 4.0.0
88
86
  * @category references
89
87
  */
90
- export const CompletionsFlag = /*#__PURE__*/ServiceMap.Reference("effect/cli/GlobalFlag/Completions", {
91
- defaultValue: () => action({
92
- flag: Flag.choice("completions", ["bash", "zsh", "fish", "sh"]).pipe(Flag.optional, Flag.map(v => Option.map(v, s => s === "sh" ? "bash" : s)), Flag.withDescription("Print shell completion script")),
93
- run: (shell, {
94
- command
95
- }) => Effect.gen(function* () {
96
- if (Option.isNone(shell)) return;
97
- const descriptor = CommandDescriptor.fromCommand(command);
98
- yield* Console.log(Completions.generate(command.name, shell.value, descriptor));
99
- })
88
+ export const Completions = /*#__PURE__*/action({
89
+ flag: /*#__PURE__*/Flag.choice("completions", ["bash", "zsh", "fish", "sh"]).pipe(Flag.optional, /*#__PURE__*/Flag.map(v => Option.map(v, s => s === "sh" ? "bash" : s)), /*#__PURE__*/Flag.withDescription("Print shell completion script")),
90
+ run: (shell, {
91
+ command
92
+ }) => Effect.gen(function* () {
93
+ if (Option.isNone(shell)) return;
94
+ const descriptor = CommandDescriptor.fromCommand(command);
95
+ yield* Console.log(CompletionsInternal.generate(command.name, shell.value, descriptor));
100
96
  })
101
97
  });
102
98
  /**
@@ -106,59 +102,17 @@ export const CompletionsFlag = /*#__PURE__*/ServiceMap.Reference("effect/cli/Glo
106
102
  * @since 4.0.0
107
103
  * @category references
108
104
  */
109
- export const LogLevelFlag = /*#__PURE__*/ServiceMap.Reference("effect/cli/GlobalFlag/LogLevel", {
110
- defaultValue: () => setting({
111
- flag: Flag.choiceWithValue("log-level", [["all", "All"], ["trace", "Trace"], ["debug", "Debug"], ["info", "Info"], ["warn", "Warn"], ["warning", "Warn"], ["error", "Error"], ["fatal", "Fatal"], ["none", "None"]]).pipe(Flag.optional, Flag.withDescription("Sets the minimum log level")),
112
- layer: value => Option.match(value, {
113
- onNone: () => Layer.empty,
114
- onSome: level => Layer.succeed(References.MinimumLogLevel, level)
115
- })
116
- })
105
+ export const LogLevel = /*#__PURE__*/setting("log-level")({
106
+ flag: /*#__PURE__*/Flag.choiceWithValue("log-level", [["all", "All"], ["trace", "Trace"], ["debug", "Debug"], ["info", "Info"], ["warn", "Warn"], ["warning", "Warn"], ["error", "Error"], ["fatal", "Fatal"], ["none", "None"]]).pipe(Flag.optional, /*#__PURE__*/Flag.withDescription("Sets the minimum log level"))
117
107
  });
118
108
  /* ========================================================================== */
119
- /* Registry */
109
+ /* References */
120
110
  /* ========================================================================== */
121
111
  /**
122
- * The ordered set of global flag references.
123
- * The parser iterates this set to know which flags to extract.
112
+ * Built-in global flags in default precedence order.
124
113
  *
125
114
  * @since 4.0.0
126
115
  * @category references
127
116
  */
128
- export const Registry = /*#__PURE__*/ServiceMap.Reference("effect/cli/GlobalFlag/Registry", {
129
- defaultValue: () => new Set([Help, Version, CompletionsFlag, LogLevelFlag])
130
- });
131
- /* ========================================================================== */
132
- /* Public API */
133
- /* ========================================================================== */
134
- /**
135
- * Adds a global flag to the registry.
136
- *
137
- * @since 4.0.0
138
- * @category modifiers
139
- */
140
- export const add = /*#__PURE__*/dual(2, /*#__PURE__*/Effect.fnUntraced(function* (self, ref) {
141
- const currentRegistry = yield* Registry;
142
- const nextRegistry = new Set([...currentRegistry, ref]);
143
- return yield* Effect.provideService(self, Registry, nextRegistry);
144
- }));
145
- /**
146
- * Removes a global flag by its reference.
147
- *
148
- * @since 4.0.0
149
- * @category modifiers
150
- */
151
- export const remove = /*#__PURE__*/dual(2, /*#__PURE__*/Effect.fnUntraced(function* (self, ref) {
152
- const currentRegistry = yield* Registry;
153
- const nextRegistry = new Set(currentRegistry);
154
- nextRegistry.delete(ref);
155
- return yield* Effect.provideService(self, Registry, nextRegistry);
156
- }));
157
- /**
158
- * Removes all global flags (built-in and user-defined).
159
- *
160
- * @since 4.0.0
161
- * @category modifiers
162
- */
163
- export const clear = self => Effect.provideService(self, Registry, new Set());
117
+ export const BuiltIns = [Help, Version, Completions, LogLevel];
164
118
  //# sourceMappingURL=GlobalFlag.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GlobalFlag.js","names":["Console","Effect","dual","Layer","Option","References","ServiceMap","CliOutput","Flag","action","options","_tag","flag","run","setting","layer","CommandDescriptor","Completions","HelpInternal","Help","Reference","defaultValue","boolean","pipe","withAlias","withDescription","_","command","commandPath","gen","formatter","Formatter","helpDoc","getHelpForCommandPath","Registry","log","formatHelpDoc","Version","version","formatVersion","name","CompletionsFlag","choice","optional","map","v","s","shell","isNone","descriptor","fromCommand","generate","value","LogLevelFlag","choiceWithValue","match","onNone","empty","onSome","level","succeed","MinimumLogLevel","Set","add","fnUntraced","self","ref","currentRegistry","nextRegistry","provideService","remove","delete","clear"],"sources":["../../../src/unstable/cli/GlobalFlag.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"GlobalFlag.js","names":["Console","Effect","Option","ServiceMap","CliOutput","Flag","action","options","_tag","flag","run","setting","id","settingIdCounter","ref","Service","Object","assign","CommandDescriptor","CompletionsInternal","HelpInternal","Help","boolean","pipe","withAlias","withDescription","_","command","commandPath","gen","formatter","Formatter","helpDoc","getHelpForCommandPath","BuiltIns","log","formatHelpDoc","Version","version","formatVersion","name","Completions","choice","optional","map","v","s","shell","isNone","descriptor","fromCommand","generate","value","LogLevel","choiceWithValue"],"sources":["../../../src/unstable/cli/GlobalFlag.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -9,6 +9,7 @@ import * as Arr from "../../../Array.ts";
9
9
  import * as Effect from "../../../Effect.ts";
10
10
  import * as ServiceMap from "../../../ServiceMap.ts";
11
11
  import * as CliError from "../CliError.ts";
12
+ import type * as GlobalFlag from "../GlobalFlag.ts";
12
13
  import type { HelpDoc } from "../HelpDoc.ts";
13
14
  import { type ConfigInternal } from "./config.ts";
14
15
  import type { Command, CommandContext, Environment, ParsedTokens } from "../Command.ts";
@@ -24,6 +25,7 @@ export interface CommandInternal<Name extends string, Input, E, R> extends Comma
24
25
  readonly config: ConfigInternal;
25
26
  readonly service: ServiceMap.Service<CommandContext<Name>, Input>;
26
27
  readonly annotations: ServiceMap.ServiceMap<never>;
28
+ readonly globalFlags: ReadonlyArray<GlobalFlag.GlobalFlag<any>>;
27
29
  readonly parse: (input: ParsedTokens) => Effect.Effect<Input, CliError.CliError, Environment>;
28
30
  readonly handle: (input: Input, commandPath: ReadonlyArray<string>) => Effect.Effect<void, E | CliError.CliError, R | Environment>;
29
31
  readonly buildHelpDoc: (commandPath: ReadonlyArray<string>) => HelpDoc;
@@ -47,6 +49,7 @@ export declare const makeCommand: <const Name extends string, Input, E, R>(optio
47
49
  readonly config: ConfigInternal;
48
50
  readonly service?: ServiceMap.Service<CommandContext<Name>, Input> | undefined;
49
51
  readonly annotations?: ServiceMap.ServiceMap<never> | undefined;
52
+ readonly globalFlags?: ReadonlyArray<GlobalFlag.GlobalFlag<any>> | undefined;
50
53
  readonly description?: string | undefined;
51
54
  readonly shortDescription?: string | undefined;
52
55
  readonly alias?: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../src/unstable/cli/internal/command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../src/unstable/cli/internal/command.ts"],"names":[],"mappings":"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"}
@@ -49,6 +49,7 @@ export const makeCommand = options => {
49
49
  const service = options.service ?? ServiceMap.Service(`${TypeId}/${options.name}`);
50
50
  const config = options.config;
51
51
  const annotations = options.annotations ?? ServiceMap.empty();
52
+ const globalFlags = options.globalFlags ?? [];
52
53
  const subcommands = options.subcommands ?? [];
53
54
  const handle = (input, commandPath) => Predicate.isNotUndefined(options.handle) ? options.handle(input, commandPath) : Effect.fail(new CliError.ShowHelp({
54
55
  commandPath
@@ -133,6 +134,7 @@ export const makeCommand = options => {
133
134
  name: options.name,
134
135
  examples: options.examples ?? [],
135
136
  annotations,
137
+ globalFlags,
136
138
  subcommands,
137
139
  config,
138
140
  service,
@@ -1 +1 @@
1
- {"version":3,"file":"command.js","names":["Arr","Effect","YieldableProto","pipeArguments","Predicate","ServiceMap","CliError","Param","Primitive","reconstructTree","TypeId","toImpl","self","Proto","pipe","arguments","asEffect","service","makeCommand","options","Service","name","config","annotations","empty","subcommands","handle","input","commandPath","isNotUndefined","fail","ShowHelp","parse","fnUntraced","parsedArgs","flags","values","parseParams","orderedParams","tree","buildHelpDoc","args","arg","singles","extractSingleParams","metadata","getParamMetadata","single","push","type","typeName","getTypeName","primitiveType","description","required","isOptional","variadic","isVariadic","usage","length","join","some","group","commands","argName","option","formattedAliases","aliases","map","alias","_tag","subcommandDocs","subcommand","shortDescription","examples","Object","assign","create","params","results","currentArguments","remainingArguments","parsed","checkForDuplicateFlags","parent","parentImpl","parentOptionNames","Set","extractNames","add","subImpl","has","DuplicateOption","parentCommand","childCommand"],"sources":["../../../../src/unstable/cli/internal/command.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"command.js","names":["Arr","Effect","YieldableProto","pipeArguments","Predicate","ServiceMap","CliError","Param","Primitive","reconstructTree","TypeId","toImpl","self","Proto","pipe","arguments","asEffect","service","makeCommand","options","Service","name","config","annotations","empty","globalFlags","subcommands","handle","input","commandPath","isNotUndefined","fail","ShowHelp","parse","fnUntraced","parsedArgs","flags","values","parseParams","orderedParams","tree","buildHelpDoc","args","arg","singles","extractSingleParams","metadata","getParamMetadata","single","push","type","typeName","getTypeName","primitiveType","description","required","isOptional","variadic","isVariadic","usage","length","join","some","group","commands","argName","option","formattedAliases","aliases","map","alias","_tag","subcommandDocs","subcommand","shortDescription","examples","Object","assign","create","params","results","currentArguments","remainingArguments","parsed","checkForDuplicateFlags","parent","parentImpl","parentOptionNames","Set","extractNames","add","subImpl","has","DuplicateOption","parentCommand","childCommand"],"sources":["../../../../src/unstable/cli/internal/command.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -6,14 +6,28 @@
6
6
  * Extracted from command.ts to avoid circular dependencies.
7
7
  */
8
8
  import * as Effect from "../../../Effect.ts";
9
- import type * as ServiceMap from "../../../ServiceMap.ts";
10
9
  import type { Command } from "../Command.ts";
11
- import type { GlobalFlag } from "../GlobalFlag.ts";
10
+ import type * as GlobalFlag from "../GlobalFlag.ts";
12
11
  import type { HelpDoc } from "../HelpDoc.ts";
12
+ /**
13
+ * Returns the resolved command lineage for the provided path.
14
+ * Includes the root command as the first element.
15
+ */
16
+ export declare const getCommandsForCommandPath: <Name extends string, Input, E, R>(command: Command<Name, Input, E, R>, commandPath: ReadonlyArray<string>) => ReadonlyArray<Command.Any>;
17
+ /**
18
+ * Returns active global flags for a command path.
19
+ * Built-ins are prepended and declarations are collected root -> leaf.
20
+ */
21
+ export declare const getGlobalFlagsForCommandPath: <Name extends string, Input, E, R>(command: Command<Name, Input, E, R>, commandPath: ReadonlyArray<string>, builtIns: ReadonlyArray<GlobalFlag.GlobalFlag<any>>) => ReadonlyArray<GlobalFlag.GlobalFlag<any>>;
22
+ /**
23
+ * Returns all global flags declared in a command tree.
24
+ * Built-ins are prepended and command declarations are deduplicated by identity.
25
+ */
26
+ export declare const getGlobalFlagsForCommandTree: <Name extends string, Input, E, R>(command: Command<Name, Input, E, R>, builtIns: ReadonlyArray<GlobalFlag.GlobalFlag<any>>) => ReadonlyArray<GlobalFlag.GlobalFlag<any>>;
13
27
  /**
14
28
  * Helper function to get help documentation for a specific command path.
15
29
  * Navigates through the command hierarchy to find the right command.
16
- * Reads global flags from the registry and includes them in the help doc.
30
+ * Reads active global flags for the path and includes them in the help doc.
17
31
  */
18
- export declare const getHelpForCommandPath: <Name extends string, Input, E, R>(command: Command<Name, Input, E, R>, commandPath: ReadonlyArray<string>, registry: ServiceMap.Reference<Set<ServiceMap.Reference<GlobalFlag<unknown>>>>) => Effect.Effect<HelpDoc, never, never>;
32
+ export declare const getHelpForCommandPath: <Name extends string, Input, E, R>(command: Command<Name, Input, E, R>, commandPath: ReadonlyArray<string>, builtIns: ReadonlyArray<GlobalFlag.GlobalFlag<any>>) => Effect.Effect<HelpDoc, never, never>;
19
33
  //# sourceMappingURL=help.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../../../src/unstable/cli/internal/help.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAA;AAC5C,OAAO,KAAK,KAAK,UAAU,MAAM,wBAAwB,CAAA;AACzD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,KAAK,EAAW,OAAO,EAAE,MAAM,eAAe,CAAA;AAKrD;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAAI,IAAI,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EACpE,SAAS,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,EACnC,aAAa,aAAa,CAAC,MAAM,CAAC,EAClC,UAAU,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAC7E,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAwClC,CAAA"}
1
+ {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../../../src/unstable/cli/internal/help.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAA;AAC5C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,KAAK,UAAU,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EAAW,OAAO,EAAE,MAAM,eAAe,CAAA;AAoBrD;;;GAGG;AACH,eAAO,MAAM,yBAAyB,GAAI,IAAI,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EACxE,SAAS,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,EACnC,aAAa,aAAa,CAAC,MAAM,CAAC,KACjC,aAAa,CAAC,OAAO,CAAC,GAAG,CAwB3B,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,4BAA4B,GAAI,IAAI,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAC3E,SAAS,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,EACnC,aAAa,aAAa,CAAC,MAAM,CAAC,EAClC,UAAU,aAAa,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAClD,aAAa,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAO1C,CAAA;AAqBD;;;GAGG;AACH,eAAO,MAAM,4BAA4B,GAAI,IAAI,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAC3E,SAAS,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,EACnC,UAAU,aAAa,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAClD,aAAa,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAIvC,CAAA;AAEJ;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAAI,IAAI,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EACpE,SAAS,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,EACnC,aAAa,aAAa,CAAC,MAAM,CAAC,EAClC,UAAU,aAAa,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAClD,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAwBlC,CAAA"}
@@ -9,12 +9,24 @@ import * as Effect from "../../../Effect.js";
9
9
  import * as Param from "../Param.js";
10
10
  import * as Primitive from "../Primitive.js";
11
11
  import { toImpl } from "./command.js";
12
+ const dedupeGlobalFlags = flags => {
13
+ const seen = new Set();
14
+ const deduped = [];
15
+ for (const flag of flags) {
16
+ if (seen.has(flag)) {
17
+ continue;
18
+ }
19
+ seen.add(flag);
20
+ deduped.push(flag);
21
+ }
22
+ return deduped;
23
+ };
12
24
  /**
13
- * Helper function to get help documentation for a specific command path.
14
- * Navigates through the command hierarchy to find the right command.
15
- * Reads global flags from the registry and includes them in the help doc.
25
+ * Returns the resolved command lineage for the provided path.
26
+ * Includes the root command as the first element.
16
27
  */
17
- export const getHelpForCommandPath = (command, commandPath, registry) => Effect.gen(function* () {
28
+ export const getCommandsForCommandPath = (command, commandPath) => {
29
+ const commands = [command];
18
30
  let currentCommand = command;
19
31
  for (let i = 1; i < commandPath.length; i++) {
20
32
  const subcommandName = commandPath[i];
@@ -25,15 +37,56 @@ export const getHelpForCommandPath = (command, commandPath, registry) => Effect.
25
37
  break;
26
38
  }
27
39
  }
28
- if (subcommand) {
29
- currentCommand = subcommand;
40
+ if (!subcommand) {
41
+ break;
30
42
  }
43
+ commands.push(subcommand);
44
+ currentCommand = subcommand;
31
45
  }
46
+ return commands;
47
+ };
48
+ /**
49
+ * Returns active global flags for a command path.
50
+ * Built-ins are prepended and declarations are collected root -> leaf.
51
+ */
52
+ export const getGlobalFlagsForCommandPath = (command, commandPath, builtIns) => {
53
+ const commands = getCommandsForCommandPath(command, commandPath);
54
+ const declared = commands.flatMap(current => toImpl(current).globalFlags);
55
+ return dedupeGlobalFlags([...builtIns, ...declared]);
56
+ };
57
+ const collectDeclaredGlobalFlags = command => {
58
+ const collected = [];
59
+ const visit = current => {
60
+ const impl = toImpl(current);
61
+ for (const flag of impl.globalFlags) {
62
+ collected.push(flag);
63
+ }
64
+ for (const group of current.subcommands) {
65
+ for (const subcommand of group.commands) {
66
+ visit(subcommand);
67
+ }
68
+ }
69
+ };
70
+ visit(command);
71
+ return dedupeGlobalFlags(collected);
72
+ };
73
+ /**
74
+ * Returns all global flags declared in a command tree.
75
+ * Built-ins are prepended and command declarations are deduplicated by identity.
76
+ */
77
+ export const getGlobalFlagsForCommandTree = (command, builtIns) => dedupeGlobalFlags([...builtIns, ...collectDeclaredGlobalFlags(command)]);
78
+ /**
79
+ * Helper function to get help documentation for a specific command path.
80
+ * Navigates through the command hierarchy to find the right command.
81
+ * Reads active global flags for the path and includes them in the help doc.
82
+ */
83
+ export const getHelpForCommandPath = (command, commandPath, builtIns) => Effect.gen(function* () {
84
+ const commands = getCommandsForCommandPath(command, commandPath);
85
+ const currentCommand = commands.length > 0 ? commands[commands.length - 1] : command;
32
86
  const baseDoc = toImpl(currentCommand).buildHelpDoc(commandPath);
33
- const refs = yield* registry;
87
+ const flags = getGlobalFlagsForCommandPath(command, commandPath, builtIns);
34
88
  const globalFlagDocs = [];
35
- for (const ref of refs) {
36
- const flag = yield* ref;
89
+ for (const flag of flags) {
37
90
  const singles = Param.extractSingleParams(flag.flag);
38
91
  for (const single of singles) {
39
92
  const formattedAliases = single.aliases.map(alias => alias.length === 1 ? `-${alias}` : `--${alias}`);