@vltpkg/cli-sdk 0.0.0-2

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 (136) hide show
  1. package/LICENSE +15 -0
  2. package/README.md +20 -0
  3. package/dist/esm/commands/config.d.ts +5 -0
  4. package/dist/esm/commands/config.d.ts.map +1 -0
  5. package/dist/esm/commands/config.js +153 -0
  6. package/dist/esm/commands/config.js.map +1 -0
  7. package/dist/esm/commands/exec.d.ts +5 -0
  8. package/dist/esm/commands/exec.d.ts.map +1 -0
  9. package/dist/esm/commands/exec.js +22 -0
  10. package/dist/esm/commands/exec.js.map +1 -0
  11. package/dist/esm/commands/gui.d.ts +6 -0
  12. package/dist/esm/commands/gui.d.ts.map +1 -0
  13. package/dist/esm/commands/gui.js +14 -0
  14. package/dist/esm/commands/gui.js.map +1 -0
  15. package/dist/esm/commands/help.d.ts +4 -0
  16. package/dist/esm/commands/help.d.ts.map +1 -0
  17. package/dist/esm/commands/help.js +10 -0
  18. package/dist/esm/commands/help.js.map +1 -0
  19. package/dist/esm/commands/init.d.ts +9 -0
  20. package/dist/esm/commands/init.d.ts.map +1 -0
  21. package/dist/esm/commands/init.js +25 -0
  22. package/dist/esm/commands/init.js.map +1 -0
  23. package/dist/esm/commands/install/reporter.d.ts +10 -0
  24. package/dist/esm/commands/install/reporter.d.ts.map +1 -0
  25. package/dist/esm/commands/install/reporter.js +66 -0
  26. package/dist/esm/commands/install/reporter.js.map +1 -0
  27. package/dist/esm/commands/install-exec.d.ts +4 -0
  28. package/dist/esm/commands/install-exec.d.ts.map +1 -0
  29. package/dist/esm/commands/install-exec.js +13 -0
  30. package/dist/esm/commands/install-exec.js.map +1 -0
  31. package/dist/esm/commands/install.d.ts +7 -0
  32. package/dist/esm/commands/install.d.ts.map +1 -0
  33. package/dist/esm/commands/install.js +21 -0
  34. package/dist/esm/commands/install.js.map +1 -0
  35. package/dist/esm/commands/list.d.ts +15 -0
  36. package/dist/esm/commands/list.d.ts.map +1 -0
  37. package/dist/esm/commands/list.js +91 -0
  38. package/dist/esm/commands/list.js.map +1 -0
  39. package/dist/esm/commands/login.d.ts +4 -0
  40. package/dist/esm/commands/login.d.ts.map +1 -0
  41. package/dist/esm/commands/login.js +13 -0
  42. package/dist/esm/commands/login.js.map +1 -0
  43. package/dist/esm/commands/logout.d.ts +4 -0
  44. package/dist/esm/commands/logout.d.ts.map +1 -0
  45. package/dist/esm/commands/logout.js +13 -0
  46. package/dist/esm/commands/logout.js.map +1 -0
  47. package/dist/esm/commands/pkg.d.ts +8 -0
  48. package/dist/esm/commands/pkg.d.ts.map +1 -0
  49. package/dist/esm/commands/pkg.js +121 -0
  50. package/dist/esm/commands/pkg.js.map +1 -0
  51. package/dist/esm/commands/query.d.ts +16 -0
  52. package/dist/esm/commands/query.d.ts.map +1 -0
  53. package/dist/esm/commands/query.js +75 -0
  54. package/dist/esm/commands/query.js.map +1 -0
  55. package/dist/esm/commands/run-exec.d.ts +5 -0
  56. package/dist/esm/commands/run-exec.d.ts.map +1 -0
  57. package/dist/esm/commands/run-exec.js +13 -0
  58. package/dist/esm/commands/run-exec.js.map +1 -0
  59. package/dist/esm/commands/run.d.ts +5 -0
  60. package/dist/esm/commands/run.d.ts.map +1 -0
  61. package/dist/esm/commands/run.js +39 -0
  62. package/dist/esm/commands/run.js.map +1 -0
  63. package/dist/esm/commands/token.d.ts +4 -0
  64. package/dist/esm/commands/token.d.ts.map +1 -0
  65. package/dist/esm/commands/token.js +30 -0
  66. package/dist/esm/commands/token.js.map +1 -0
  67. package/dist/esm/commands/uninstall.d.ts +4 -0
  68. package/dist/esm/commands/uninstall.d.ts.map +1 -0
  69. package/dist/esm/commands/uninstall.js +15 -0
  70. package/dist/esm/commands/uninstall.js.map +1 -0
  71. package/dist/esm/commands/whoami.d.ts +11 -0
  72. package/dist/esm/commands/whoami.d.ts.map +1 -0
  73. package/dist/esm/commands/whoami.js +19 -0
  74. package/dist/esm/commands/whoami.js.map +1 -0
  75. package/dist/esm/config/definition.d.ts +286 -0
  76. package/dist/esm/config/definition.d.ts.map +1 -0
  77. package/dist/esm/config/definition.js +475 -0
  78. package/dist/esm/config/definition.js.map +1 -0
  79. package/dist/esm/config/index.d.ts +213 -0
  80. package/dist/esm/config/index.d.ts.map +1 -0
  81. package/dist/esm/config/index.js +504 -0
  82. package/dist/esm/config/index.js.map +1 -0
  83. package/dist/esm/config/merge.d.ts +2 -0
  84. package/dist/esm/config/merge.d.ts.map +1 -0
  85. package/dist/esm/config/merge.js +23 -0
  86. package/dist/esm/config/merge.js.map +1 -0
  87. package/dist/esm/config/usage.d.ts +18 -0
  88. package/dist/esm/config/usage.d.ts.map +1 -0
  89. package/dist/esm/config/usage.js +40 -0
  90. package/dist/esm/config/usage.js.map +1 -0
  91. package/dist/esm/exec-command.d.ts +34 -0
  92. package/dist/esm/exec-command.d.ts.map +1 -0
  93. package/dist/esm/exec-command.js +159 -0
  94. package/dist/esm/exec-command.js.map +1 -0
  95. package/dist/esm/ignored-homedir-folder-names.d.ts +7 -0
  96. package/dist/esm/ignored-homedir-folder-names.d.ts.map +1 -0
  97. package/dist/esm/ignored-homedir-folder-names.js +35 -0
  98. package/dist/esm/ignored-homedir-folder-names.js.map +1 -0
  99. package/dist/esm/index.d.ts +17 -0
  100. package/dist/esm/index.d.ts.map +1 -0
  101. package/dist/esm/index.js +47 -0
  102. package/dist/esm/index.js.map +1 -0
  103. package/dist/esm/output.d.ts +25 -0
  104. package/dist/esm/output.d.ts.map +1 -0
  105. package/dist/esm/output.js +86 -0
  106. package/dist/esm/output.js.map +1 -0
  107. package/dist/esm/package.json +3 -0
  108. package/dist/esm/parse-add-remove-args.d.ts +22 -0
  109. package/dist/esm/parse-add-remove-args.d.ts.map +1 -0
  110. package/dist/esm/parse-add-remove-args.js +71 -0
  111. package/dist/esm/parse-add-remove-args.js.map +1 -0
  112. package/dist/esm/print-err.d.ts +3 -0
  113. package/dist/esm/print-err.d.ts.map +1 -0
  114. package/dist/esm/print-err.js +47 -0
  115. package/dist/esm/print-err.js.map +1 -0
  116. package/dist/esm/project-info.d.ts +32 -0
  117. package/dist/esm/project-info.d.ts.map +1 -0
  118. package/dist/esm/project-info.js +90 -0
  119. package/dist/esm/project-info.js.map +1 -0
  120. package/dist/esm/read-password.d.ts +8 -0
  121. package/dist/esm/read-password.d.ts.map +1 -0
  122. package/dist/esm/read-password.js +33 -0
  123. package/dist/esm/read-password.js.map +1 -0
  124. package/dist/esm/read-project-folders.d.ts +27 -0
  125. package/dist/esm/read-project-folders.d.ts.map +1 -0
  126. package/dist/esm/read-project-folders.js +66 -0
  127. package/dist/esm/read-project-folders.js.map +1 -0
  128. package/dist/esm/start-gui.d.ts +36 -0
  129. package/dist/esm/start-gui.d.ts.map +1 -0
  130. package/dist/esm/start-gui.js +357 -0
  131. package/dist/esm/start-gui.js.map +1 -0
  132. package/dist/esm/view.d.ts +31 -0
  133. package/dist/esm/view.d.ts.map +1 -0
  134. package/dist/esm/view.js +31 -0
  135. package/dist/esm/view.js.map +1 -0
  136. package/package.json +107 -0
@@ -0,0 +1,213 @@
1
+ /**
2
+ * Module that handles all vlt configuration needs
3
+ *
4
+ * Project-level configs are set in a `vlt.json` file in the local project
5
+ * if present. This will override the user-level configs in the appropriate
6
+ * XDG config path.
7
+ *
8
+ * Command-specific configuration can be specified by putting options in a
9
+ * field in the `command` object. For example:
10
+ *
11
+ * ```json
12
+ * {
13
+ * "registry": "https://registry.npmjs.org/",
14
+ * "command": {
15
+ * "publish": {
16
+ * "registry": "http://registry.internal"
17
+ * }
18
+ * }
19
+ * }
20
+ * ```
21
+ * @module
22
+ */
23
+ import { PackageJson } from '@vltpkg/package-json';
24
+ import { Monorepo } from '@vltpkg/workspaces';
25
+ import type { Jack, OptionsResults, Unwrap } from 'jackspeak';
26
+ import { PathScurry } from 'path-scurry';
27
+ import { kIndent, kNewline } from 'polite-json';
28
+ import { commands, definition, isRecordField, recordFields } from './definition.ts';
29
+ import type { Commands, RecordField } from './definition.ts';
30
+ export { recordFields, isRecordField };
31
+ export { definition, commands, type Commands };
32
+ export type RecordPairs = Record<string, unknown>;
33
+ export type RecordString = Record<string, string>;
34
+ export type ConfigFiles = Record<string, ConfigFileData>;
35
+ export type PairsAsRecords = Omit<ConfigOptions, 'projectRoot' | 'scurry' | 'packageJson' | 'monorepo'> & {
36
+ command?: Record<string, ConfigOptions>;
37
+ };
38
+ export declare const pairsToRecords: (obj: ConfigFileData) => PairsAsRecords;
39
+ export declare const recordsToPairs: (obj: RecordPairs) => RecordPairs;
40
+ /**
41
+ * Config data can be any options, and also a 'command' field which
42
+ * contains command names and override options for that command.
43
+ */
44
+ export type ConfigData = OptionsResults<ConfigDefinitions> & {
45
+ command?: Record<string, OptionsResults<ConfigDefinitions>>;
46
+ };
47
+ /**
48
+ * Config data as it appears in config files, with kv pair lists
49
+ * stored as `Record<string, string>`.
50
+ */
51
+ export type ConfigFileData = {
52
+ [k in keyof ConfigData]?: k extends OptListKeys<ConfigData> ? RecordString | string[] : k extends 'command' ? ConfigFiles : ConfigData[k];
53
+ };
54
+ export type ConfigOptions = {
55
+ [k in keyof ConfigData]: k extends RecordField ? RecordString : k extends 'command' ? never : ConfigData[k];
56
+ } & {
57
+ packageJson: PackageJson;
58
+ scurry: PathScurry;
59
+ projectRoot: string;
60
+ monorepo?: Monorepo;
61
+ };
62
+ /**
63
+ * The base config definition set as a type
64
+ */
65
+ export type ConfigDefinitions = Unwrap<typeof definition>;
66
+ export type StringListKeys<O> = {
67
+ [k in keyof O]: O[k] extends string[] | undefined ? k : never;
68
+ };
69
+ export type OptListKeys<O> = Exclude<StringListKeys<O>[keyof StringListKeys<O>], undefined>;
70
+ /**
71
+ * Class that handles configuration for vlt.
72
+ *
73
+ * Call {@link Config.load} to get one of these.
74
+ */
75
+ export declare class Config {
76
+ #private;
77
+ /**
78
+ * The {@link https://npmjs.com/jackspeak | JackSpeak} object
79
+ * representing vlt's configuration
80
+ */
81
+ jack: Jack<ConfigDefinitions>;
82
+ stringifyOptions: {
83
+ [kIndent]: string;
84
+ [kNewline]: string;
85
+ };
86
+ configFiles: ConfigFiles;
87
+ /**
88
+ * Parsed values in effect
89
+ */
90
+ values?: OptionsResults<ConfigDefinitions>;
91
+ /**
92
+ * Command-specific config values
93
+ */
94
+ commandValues: {
95
+ [cmd in Commands[keyof Commands]]?: ConfigData;
96
+ };
97
+ /**
98
+ * A flattened object of the parsed configuration
99
+ */
100
+ get options(): ConfigOptions;
101
+ /**
102
+ * Reset the options value, optionally setting a new project root
103
+ * to recalculate the options.
104
+ */
105
+ resetOptions(projectRoot?: string): void;
106
+ /**
107
+ * positional arguments to the vlt process
108
+ */
109
+ positionals?: string[];
110
+ /**
111
+ * The root of the project where a vlt.json, vlt-workspaces.json,
112
+ * package.json, or .git was found. Not necessarily the `process.cwd()`,
113
+ * though that is the default location.
114
+ *
115
+ * Never walks up as far as `$HOME`. So for example, if a project is in
116
+ * `~/projects/xyz`, then the highest dir it will check is `~/projects`
117
+ */
118
+ projectRoot: string;
119
+ /**
120
+ * `Record<alias, canonical name>` to dereference command aliases.
121
+ */
122
+ commands: Commands;
123
+ /**
124
+ * Which command name to use for overriding with command-specific values,
125
+ * determined from the argv when parse() is called.
126
+ */
127
+ command?: Commands[keyof Commands];
128
+ constructor(jack?: Jack<ConfigDefinitions>, projectRoot?: string);
129
+ /**
130
+ * Parse the arguments and set configuration and positionals accordingly.
131
+ */
132
+ parse(args?: string[]): this & ParsedConfig;
133
+ /**
134
+ * Get a `key=value` list option value as an object.
135
+ *
136
+ * For example, a list option with a vlaue of `['key=value', 'xyz=as=df' ]`
137
+ * would be returned as `{key: 'value', xyz: 'as=df'}`
138
+ *
139
+ * Results are memoized, so subsequent calls for the same key will return the
140
+ * same object. If new strings are added to the list, then the memoized value
141
+ * is *not* updated, so only use once configurations have been fully loaded.
142
+ *
143
+ * If the config value is not set at all, an empty object is returned.
144
+ */
145
+ getRecord(k: OptListKeys<ConfigData>): RecordString;
146
+ /**
147
+ * Get a configuration value.
148
+ *
149
+ * Note: `key=value` pair configs are returned as a string array. To get them
150
+ * as an object, use {@link Config#getRecord}.
151
+ */
152
+ get<K extends keyof OptionsResults<ConfigDefinitions>>(k: K): OptionsResults<ConfigDefinitions>[K];
153
+ /**
154
+ * Write the config values to the user or project config file.
155
+ */
156
+ writeConfigFile(which: 'project' | 'user', values: ConfigFileData): Promise<ConfigFileData>;
157
+ /**
158
+ * Fold in the provided fields with the existing properties
159
+ * in the config file.
160
+ */
161
+ addConfigToFile(which: 'project' | 'user', values: ConfigFileData): Promise<ConfigFileData>;
162
+ getFilename(which?: 'project' | 'user'): string;
163
+ deleteConfigKeys(which: 'project' | 'user', fields: string[]): Promise<boolean>;
164
+ /**
165
+ * Edit the user or project configuration file.
166
+ *
167
+ * If the file isn't present, then it starts with `{}` so the user has
168
+ * something to work with.
169
+ *
170
+ * If the result is not valid, or no config settings are contained in the
171
+ * file after editing, then it's restored to what it was before, which might
172
+ * mean deleting the file.
173
+ */
174
+ editConfigFile(which: 'project' | 'user', edit: (file: string) => Promise<void> | void): Promise<void>;
175
+ /**
176
+ * Find the local config file and load both it and the user-level config in
177
+ * the XDG config home.
178
+ *
179
+ * Note: if working in a workspaces monorepo, then the vlt.json file MUST
180
+ * be in the same folder as the vlt-workspaces.json file, because we stop
181
+ * looking when we find either one.
182
+ */
183
+ loadConfigFile(): Promise<this>;
184
+ /**
185
+ * Determine whether we should use colors in the output. Update
186
+ * chalk appropriately.
187
+ *
188
+ * Implicitly calls this.parse() if it not parsed already.
189
+ */
190
+ loadColor(): Promise<this & LoadedConfig>;
191
+ /**
192
+ * Load the configuration and return a Promise to a
193
+ * {@link Config} object
194
+ */
195
+ static load(projectRoot?: string, argv?: string[],
196
+ /**
197
+ * only used in tests, resets the memoization
198
+ * @internal
199
+ */
200
+ reload?: boolean): Promise<LoadedConfig>;
201
+ }
202
+ export type ParsedConfig = Config & {
203
+ command: NonNullable<Config['command']>;
204
+ values: OptionsResults<ConfigDefinitions>;
205
+ positionals: string[];
206
+ };
207
+ /**
208
+ * A fully loaded {@link Config} object
209
+ */
210
+ export type LoadedConfig = ParsedConfig & {
211
+ get(k: 'color'): boolean;
212
+ };
213
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":"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"}