@mongosh/arg-parser 3.22.0 → 3.23.0

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.
package/.depcheckrc CHANGED
@@ -10,5 +10,7 @@ ignores:
10
10
  - eslint-config-mongodb-js
11
11
  # needed as a peer dependency of @mongodb-js/devtools-connect
12
12
  - mongodb
13
+ # only used in arg-parser export; should be removed once switched to knip
14
+ - yargs-parser
13
15
  ignore-patterns:
14
16
  - .eslintrc.js
package/.mocharc.json ADDED
@@ -0,0 +1,7 @@
1
+ {
2
+ "require": ["../../scripts/import-expansions.js", "ts-node/register"],
3
+ "timeout": 60000,
4
+ "reporter": "../../configs/mocha-config-mongosh/reporter.ts",
5
+ "spec": ["./{src,lib}/**/*.spec.ts"],
6
+ "exclude": ["**/node_modules/**"]
7
+ }
@@ -0,0 +1,22 @@
1
+ import z from 'zod/v4';
2
+ export declare const argMetadata: z.core.$ZodRegistry<ArgumentMetadata, z.core.$ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>>;
3
+ export type ArgumentMetadata = {
4
+ deprecationReplacement?: string;
5
+ replacement?: string;
6
+ unsupported?: boolean;
7
+ alias?: string[];
8
+ };
9
+ export declare function getArgumentMetadata(schema: z.ZodObject, fieldName: string): ArgumentMetadata | undefined;
10
+ export declare function getDeprecatedArgsWithReplacement(schema: z.ZodObject): Record<string, keyof z.infer<typeof schema>>;
11
+ export declare function getUnsupportedArgs(schema: z.ZodObject): string[];
12
+ export declare class InvalidArgumentError extends Error {
13
+ constructor(message: string);
14
+ }
15
+ export declare class UnknownArgumentError extends Error {
16
+ readonly argument: string;
17
+ constructor(argument: string);
18
+ }
19
+ export declare class UnsupportedArgumentError extends Error {
20
+ readonly argument: string;
21
+ constructor(argument: string);
22
+ }
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.UnsupportedArgumentError = exports.UnknownArgumentError = exports.InvalidArgumentError = exports.argMetadata = void 0;
7
+ exports.getArgumentMetadata = getArgumentMetadata;
8
+ exports.getDeprecatedArgsWithReplacement = getDeprecatedArgsWithReplacement;
9
+ exports.getUnsupportedArgs = getUnsupportedArgs;
10
+ const v4_1 = __importDefault(require("zod/v4"));
11
+ exports.argMetadata = v4_1.default.registry();
12
+ function getArgumentMetadata(schema, fieldName) {
13
+ const fieldSchema = schema.shape[fieldName];
14
+ if (!fieldSchema) {
15
+ return undefined;
16
+ }
17
+ return exports.argMetadata.get(fieldSchema);
18
+ }
19
+ function getDeprecatedArgsWithReplacement(schema) {
20
+ const deprecated = {};
21
+ for (const fieldName of Object.keys(schema.shape)) {
22
+ const meta = getArgumentMetadata(schema, fieldName);
23
+ if (meta === null || meta === void 0 ? void 0 : meta.deprecationReplacement) {
24
+ deprecated[fieldName] = meta.deprecationReplacement;
25
+ }
26
+ }
27
+ return deprecated;
28
+ }
29
+ function getUnsupportedArgs(schema) {
30
+ const unsupported = [];
31
+ for (const fieldName of Object.keys(schema.shape)) {
32
+ const meta = getArgumentMetadata(schema, fieldName);
33
+ if (meta === null || meta === void 0 ? void 0 : meta.unsupported) {
34
+ unsupported.push(fieldName);
35
+ }
36
+ }
37
+ return unsupported;
38
+ }
39
+ class InvalidArgumentError extends Error {
40
+ constructor(message) {
41
+ super(message);
42
+ this.name = 'InvalidArgumentError';
43
+ }
44
+ }
45
+ exports.InvalidArgumentError = InvalidArgumentError;
46
+ class UnknownArgumentError extends Error {
47
+ constructor(argument) {
48
+ super(`Unknown argument: ${argument}`);
49
+ this.name = 'UnknownArgumentError';
50
+ this.argument = argument;
51
+ }
52
+ }
53
+ exports.UnknownArgumentError = UnknownArgumentError;
54
+ class UnsupportedArgumentError extends Error {
55
+ constructor(argument) {
56
+ super(`Unsupported argument: ${argument}`);
57
+ this.name = 'UnsupportedArgumentError';
58
+ this.argument = argument;
59
+ }
60
+ }
61
+ exports.UnsupportedArgumentError = UnsupportedArgumentError;
62
+ //# sourceMappingURL=arg-metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arg-metadata.js","sourceRoot":"","sources":["../src/arg-metadata.ts"],"names":[],"mappings":";;;;;;AAwBA,kDASC;AAKD,4EAWC;AAKD,gDASC;AA/DD,gDAAuB;AAKV,QAAA,WAAW,GAAG,YAAC,CAAC,QAAQ,EAAoB,CAAC;AAmB1D,SAAgB,mBAAmB,CACjC,MAAmB,EACnB,SAAiB;IAEjB,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC5C,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,mBAAW,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AACtC,CAAC;AAKD,SAAgB,gCAAgC,CAC9C,MAAmB;IAEnB,MAAM,UAAU,GAAiD,EAAE,CAAC;IACpE,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,GAAG,mBAAmB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACpD,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,sBAAsB,EAAE,CAAC;YACjC,UAAU,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,sBAAsB,CAAC;QACtD,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAKD,SAAgB,kBAAkB,CAAC,MAAmB;IACpD,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,GAAG,mBAAmB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACpD,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,EAAE,CAAC;YACtB,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,MAAa,oBAAqB,SAAQ,KAAK;IAC7C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AALD,oDAKC;AAED,MAAa,oBAAqB,SAAQ,KAAK;IAG7C,YAAY,QAAgB;QAC1B,KAAK,CAAC,qBAAqB,QAAQ,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;QACnC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF;AARD,oDAQC;AAED,MAAa,wBAAyB,SAAQ,KAAK;IAGjD,YAAY,QAAgB;QAC1B,KAAK,CAAC,yBAAyB,QAAQ,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;QACvC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF;AARD,4DAQC"}
@@ -0,0 +1,28 @@
1
+ import parser from 'yargs-parser';
2
+ import { z } from 'zod/v4';
3
+ import type { Options as YargsOptions } from 'yargs-parser';
4
+ import { argMetadata, UnknownArgumentError, UnsupportedArgumentError } from './arg-metadata';
5
+ export declare const defaultParserOptions: Partial<YargsOptions>;
6
+ export type ParserOptions = Partial<YargsOptions>;
7
+ export declare function parseArgs<T extends z.ZodObject>({ args, schema, parserOptions, }: {
8
+ args: string[];
9
+ schema: T;
10
+ parserOptions?: YargsOptions;
11
+ }): {
12
+ parsed: z.infer<T> & Omit<parser.Arguments, '_'>;
13
+ deprecated: Record<string, keyof z.infer<T>>;
14
+ positional: parser.Arguments['_'];
15
+ };
16
+ export declare function parseArgsWithCliOptions<T extends z.ZodObject>({ args, schema: schemaToExtend, parserOptions, }: {
17
+ args: string[];
18
+ schema?: T;
19
+ parserOptions?: Partial<YargsOptions>;
20
+ }): ReturnType<typeof parseArgs<T>>;
21
+ export declare function generateYargsOptionsFromSchema({ schema, parserOptions, }: {
22
+ schema: z.ZodObject;
23
+ parserOptions?: Partial<YargsOptions>;
24
+ }): YargsOptions;
25
+ export declare function getLocale(args: string[], env: any): string;
26
+ export { argMetadata, UnknownArgumentError, UnsupportedArgumentError };
27
+ export { type ArgumentMetadata } from './arg-metadata';
28
+ export { type CliOptions, CliOptionsSchema } from './cli-options';
@@ -0,0 +1,182 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.CliOptionsSchema = exports.UnsupportedArgumentError = exports.UnknownArgumentError = exports.argMetadata = exports.defaultParserOptions = void 0;
7
+ exports.parseArgs = parseArgs;
8
+ exports.parseArgsWithCliOptions = parseArgsWithCliOptions;
9
+ exports.generateYargsOptionsFromSchema = generateYargsOptionsFromSchema;
10
+ exports.getLocale = getLocale;
11
+ const yargs_parser_1 = __importDefault(require("yargs-parser"));
12
+ const v4_1 = require("zod/v4");
13
+ const cli_options_1 = require("./cli-options");
14
+ const arg_metadata_1 = require("./arg-metadata");
15
+ Object.defineProperty(exports, "argMetadata", { enumerable: true, get: function () { return arg_metadata_1.argMetadata; } });
16
+ Object.defineProperty(exports, "UnknownArgumentError", { enumerable: true, get: function () { return arg_metadata_1.UnknownArgumentError; } });
17
+ Object.defineProperty(exports, "UnsupportedArgumentError", { enumerable: true, get: function () { return arg_metadata_1.UnsupportedArgumentError; } });
18
+ const utils_1 = require("./utils");
19
+ exports.defaultParserOptions = {
20
+ configuration: {
21
+ 'camel-case-expansion': false,
22
+ 'unknown-options-as-args': true,
23
+ 'parse-positional-numbers': false,
24
+ 'parse-numbers': false,
25
+ 'greedy-arrays': false,
26
+ 'short-option-groups': false,
27
+ },
28
+ };
29
+ function parseArgs({ args, schema, parserOptions, }) {
30
+ const options = generateYargsOptionsFromSchema({
31
+ schema,
32
+ parserOptions,
33
+ });
34
+ const { argv, error } = yargs_parser_1.default.detailed(args, {
35
+ ...options,
36
+ });
37
+ const { _: positional, ...parsedArgs } = argv;
38
+ if (error) {
39
+ if (error instanceof v4_1.ZodError) {
40
+ throw new arg_metadata_1.InvalidArgumentError(error.message);
41
+ }
42
+ throw error;
43
+ }
44
+ const allDeprecatedArgs = (0, arg_metadata_1.getDeprecatedArgsWithReplacement)(schema);
45
+ const usedDeprecatedArgs = {};
46
+ for (const deprecated of Object.keys(allDeprecatedArgs)) {
47
+ if (deprecated in parsedArgs) {
48
+ const replacement = allDeprecatedArgs[deprecated];
49
+ parsedArgs[replacement] =
50
+ parsedArgs[deprecated];
51
+ usedDeprecatedArgs[deprecated] = replacement;
52
+ delete parsedArgs[deprecated];
53
+ }
54
+ }
55
+ for (const arg of positional) {
56
+ if (typeof arg === 'string' && arg.startsWith('-')) {
57
+ throw new arg_metadata_1.UnknownArgumentError(arg);
58
+ }
59
+ }
60
+ const unsupportedArgs = (0, arg_metadata_1.getUnsupportedArgs)(schema);
61
+ for (const unsupported of unsupportedArgs) {
62
+ if (unsupported in parsedArgs) {
63
+ throw new arg_metadata_1.UnsupportedArgumentError(unsupported);
64
+ }
65
+ }
66
+ return {
67
+ parsed: parsedArgs,
68
+ deprecated: usedDeprecatedArgs,
69
+ positional,
70
+ };
71
+ }
72
+ function parseArgsWithCliOptions({ args, schema: schemaToExtend, parserOptions, }) {
73
+ const schema = schemaToExtend !== undefined
74
+ ? v4_1.z.object({
75
+ ...cli_options_1.CliOptionsSchema.shape,
76
+ ...schemaToExtend.shape,
77
+ })
78
+ : cli_options_1.CliOptionsSchema;
79
+ const { parsed, positional, deprecated } = parseArgs({
80
+ args,
81
+ schema,
82
+ parserOptions,
83
+ });
84
+ const processed = (0, cli_options_1.processPositionalCliOptions)({
85
+ parsed,
86
+ positional,
87
+ });
88
+ (0, cli_options_1.validateCliOptions)(processed);
89
+ return {
90
+ parsed: processed,
91
+ positional,
92
+ deprecated,
93
+ };
94
+ }
95
+ function generateYargsOptionsFromSchema({ schema, parserOptions = exports.defaultParserOptions, }) {
96
+ const options = {
97
+ ...parserOptions,
98
+ string: [],
99
+ boolean: [],
100
+ array: [],
101
+ alias: {},
102
+ coerce: {},
103
+ number: [],
104
+ };
105
+ function processFields(currentSchema, prefix = '') {
106
+ for (const [fieldName, fieldSchema] of Object.entries(currentSchema.shape)) {
107
+ const fullFieldName = prefix ? `${prefix}.${fieldName}` : fieldName;
108
+ const meta = (0, arg_metadata_1.getArgumentMetadata)(currentSchema, fieldName);
109
+ const unwrappedType = (0, utils_1.unwrapType)(fieldSchema);
110
+ if (unwrappedType instanceof v4_1.z.ZodArray) {
111
+ options.array.push(fullFieldName);
112
+ }
113
+ else if (unwrappedType instanceof v4_1.z.ZodBoolean) {
114
+ options.boolean.push(fullFieldName);
115
+ }
116
+ else if (unwrappedType instanceof v4_1.z.ZodString) {
117
+ options.string.push(fullFieldName);
118
+ }
119
+ else if (unwrappedType instanceof v4_1.z.ZodNumber) {
120
+ options.number.push(fullFieldName);
121
+ }
122
+ else if (unwrappedType instanceof v4_1.z.ZodUnion) {
123
+ const unionOptions = unwrappedType.options;
124
+ const hasString = unionOptions.some((opt) => opt instanceof v4_1.z.ZodString || opt instanceof v4_1.z.ZodEnum);
125
+ if (hasString) {
126
+ const hasFalseLiteral = unionOptions.some((opt) => opt instanceof v4_1.z.ZodLiteral && opt.value === false);
127
+ const hasBoolean = unionOptions.some((opt) => opt instanceof v4_1.z.ZodBoolean);
128
+ if (hasFalseLiteral) {
129
+ options.coerce[fullFieldName] = utils_1.coerceIfFalse;
130
+ options.string.push(fullFieldName);
131
+ }
132
+ else if (hasBoolean) {
133
+ options.coerce[fullFieldName] = utils_1.coerceIfBoolean;
134
+ }
135
+ else {
136
+ options.string.push(fullFieldName);
137
+ }
138
+ }
139
+ }
140
+ else if (unwrappedType instanceof v4_1.z.ZodEnum) {
141
+ if (unwrappedType.options.every((opt) => typeof opt === 'string')) {
142
+ options.string.push(fullFieldName);
143
+ }
144
+ else if (unwrappedType.options.every((opt) => typeof opt === 'number')) {
145
+ options.number.push(fullFieldName);
146
+ }
147
+ else {
148
+ throw new Error(`${fullFieldName} has unsupported enum options. Currently, only string and number enum options are supported.`);
149
+ }
150
+ }
151
+ else if (unwrappedType instanceof v4_1.z.ZodObject) {
152
+ if (!prefix) {
153
+ options.coerce[fullFieldName] = (0, utils_1.coerceObject)(unwrappedType);
154
+ }
155
+ processFields(unwrappedType, fullFieldName);
156
+ }
157
+ else {
158
+ throw new Error(`Unknown field type: ${unwrappedType instanceof Object
159
+ ? unwrappedType.constructor.name
160
+ : typeof unwrappedType}`);
161
+ }
162
+ if (!prefix && (meta === null || meta === void 0 ? void 0 : meta.alias)) {
163
+ for (const a of meta.alias) {
164
+ options.alias[a] = fullFieldName;
165
+ }
166
+ }
167
+ }
168
+ }
169
+ processFields(schema);
170
+ return options;
171
+ }
172
+ function getLocale(args, env) {
173
+ const localeIndex = args.indexOf('--locale');
174
+ if (localeIndex > -1) {
175
+ return args[localeIndex + 1];
176
+ }
177
+ const lang = env.LANG || env.LANGUAGE || env.LC_ALL || env.LC_MESSAGES;
178
+ return lang ? lang.split('.')[0] : lang;
179
+ }
180
+ var cli_options_2 = require("./cli-options");
181
+ Object.defineProperty(exports, "CliOptionsSchema", { enumerable: true, get: function () { return cli_options_2.CliOptionsSchema; } });
182
+ //# sourceMappingURL=arg-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arg-parser.js","sourceRoot":"","sources":["../src/arg-parser.ts"],"names":[],"mappings":"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"}
@@ -1,56 +1,181 @@
1
- export interface CliOptions {
1
+ import z from 'zod/v4';
2
+ import type parser from 'yargs-parser';
3
+ export declare const CurrentCliOptionsSchema: z.ZodObject<{
4
+ apiVersion: z.ZodOptional<z.ZodString>;
5
+ authenticationDatabase: z.ZodOptional<z.ZodString>;
6
+ authenticationMechanism: z.ZodOptional<z.ZodString>;
7
+ awsAccessKeyId: z.ZodOptional<z.ZodString>;
8
+ awsIamSessionToken: z.ZodOptional<z.ZodString>;
9
+ awsSecretAccessKey: z.ZodOptional<z.ZodString>;
10
+ awsSessionToken: z.ZodOptional<z.ZodString>;
11
+ csfleLibraryPath: z.ZodOptional<z.ZodString>;
12
+ cryptSharedLibPath: z.ZodOptional<z.ZodString>;
13
+ deepInspect: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
14
+ db: z.ZodOptional<z.ZodString>;
15
+ gssapiServiceName: z.ZodOptional<z.ZodString>;
16
+ sspiHostnameCanonicalization: z.ZodOptional<z.ZodString>;
17
+ sspiRealmOverride: z.ZodOptional<z.ZodString>;
18
+ jsContext: z.ZodOptional<z.ZodEnum<{
19
+ repl: "repl";
20
+ "plain-vm": "plain-vm";
21
+ auto: "auto";
22
+ }>>;
23
+ host: z.ZodOptional<z.ZodString>;
24
+ keyVaultNamespace: z.ZodOptional<z.ZodString>;
25
+ kmsURL: z.ZodOptional<z.ZodString>;
26
+ locale: z.ZodOptional<z.ZodString>;
27
+ oidcFlows: z.ZodOptional<z.ZodString>;
28
+ oidcRedirectUri: z.ZodOptional<z.ZodString>;
29
+ password: z.ZodOptional<z.ZodString>;
30
+ port: z.ZodOptional<z.ZodString>;
31
+ username: z.ZodOptional<z.ZodString>;
32
+ tlsCAFile: z.ZodOptional<z.ZodString>;
33
+ tlsCertificateKeyFile: z.ZodOptional<z.ZodString>;
34
+ tlsCertificateKeyFilePassword: z.ZodOptional<z.ZodString>;
35
+ tlsCertificateSelector: z.ZodOptional<z.ZodString>;
36
+ tlsCRLFile: z.ZodOptional<z.ZodString>;
37
+ tlsDisabledProtocols: z.ZodOptional<z.ZodString>;
38
+ apiDeprecationErrors: z.ZodOptional<z.ZodBoolean>;
39
+ apiStrict: z.ZodOptional<z.ZodBoolean>;
40
+ buildInfo: z.ZodOptional<z.ZodBoolean>;
41
+ exposeAsyncRewriter: z.ZodOptional<z.ZodBoolean>;
42
+ help: z.ZodOptional<z.ZodBoolean>;
43
+ ipv6: z.ZodOptional<z.ZodBoolean>;
44
+ nodb: z.ZodOptional<z.ZodBoolean>;
45
+ norc: z.ZodOptional<z.ZodBoolean>;
46
+ oidcTrustedEndpoint: z.ZodOptional<z.ZodBoolean>;
47
+ oidcIdTokenAsAccessToken: z.ZodOptional<z.ZodBoolean>;
48
+ oidcNoNonce: z.ZodOptional<z.ZodBoolean>;
49
+ quiet: z.ZodOptional<z.ZodBoolean>;
50
+ retryWrites: z.ZodOptional<z.ZodBoolean>;
51
+ shell: z.ZodOptional<z.ZodBoolean>;
52
+ skipStartupWarnings: z.ZodOptional<z.ZodBoolean>;
53
+ verbose: z.ZodOptional<z.ZodBoolean>;
54
+ version: z.ZodOptional<z.ZodBoolean>;
55
+ smokeTests: z.ZodOptional<z.ZodBoolean>;
56
+ perfTests: z.ZodOptional<z.ZodBoolean>;
57
+ tls: z.ZodOptional<z.ZodBoolean>;
58
+ tlsAllowInvalidCertificates: z.ZodOptional<z.ZodBoolean>;
59
+ tlsAllowInvalidHostnames: z.ZodOptional<z.ZodBoolean>;
60
+ tlsFIPSMode: z.ZodOptional<z.ZodBoolean>;
61
+ tlsUseSystemCA: z.ZodOptional<z.ZodBoolean>;
62
+ eval: z.ZodOptional<z.ZodArray<z.ZodString>>;
63
+ file: z.ZodOptional<z.ZodArray<z.ZodString>>;
64
+ json: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodEnum<{
65
+ relaxed: "relaxed";
66
+ canonical: "canonical";
67
+ }>]>>;
68
+ oidcDumpTokens: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodEnum<{
69
+ redacted: "redacted";
70
+ "include-secrets": "include-secrets";
71
+ }>]>>;
72
+ browser: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<false>, z.ZodString]>>;
73
+ }, z.core.$strip>;
74
+ export declare const DeprecatedCliOptions: z.ZodObject<{
75
+ ssl: z.ZodOptional<z.ZodBoolean>;
76
+ sslAllowInvalidCertificates: z.ZodOptional<z.ZodBoolean>;
77
+ sslAllowInvalidHostnames: z.ZodOptional<z.ZodBoolean>;
78
+ sslPEMKeyFile: z.ZodOptional<z.ZodString>;
79
+ sslPEMKeyPassword: z.ZodOptional<z.ZodString>;
80
+ sslCAFile: z.ZodOptional<z.ZodString>;
81
+ sslCertificateSelector: z.ZodOptional<z.ZodString>;
82
+ sslCRLFile: z.ZodOptional<z.ZodString>;
83
+ sslDisabledProtocols: z.ZodOptional<z.ZodString>;
84
+ }, z.core.$strip>;
85
+ export declare const UnsupportedCliOptions: z.ZodObject<{
86
+ gssapiHostName: z.ZodOptional<z.ZodString>;
87
+ sslFIPSMode: z.ZodOptional<z.ZodBoolean>;
88
+ }, z.core.$strip>;
89
+ export declare const CliOptionsSchema: z.ZodObject<{
90
+ gssapiHostName: z.ZodOptional<z.ZodString>;
91
+ sslFIPSMode: z.ZodOptional<z.ZodBoolean>;
92
+ ssl: z.ZodOptional<z.ZodBoolean>;
93
+ sslAllowInvalidCertificates: z.ZodOptional<z.ZodBoolean>;
94
+ sslAllowInvalidHostnames: z.ZodOptional<z.ZodBoolean>;
95
+ sslPEMKeyFile: z.ZodOptional<z.ZodString>;
96
+ sslPEMKeyPassword: z.ZodOptional<z.ZodString>;
97
+ sslCAFile: z.ZodOptional<z.ZodString>;
98
+ sslCertificateSelector: z.ZodOptional<z.ZodString>;
99
+ sslCRLFile: z.ZodOptional<z.ZodString>;
100
+ sslDisabledProtocols: z.ZodOptional<z.ZodString>;
101
+ apiVersion: z.ZodOptional<z.ZodString>;
102
+ authenticationDatabase: z.ZodOptional<z.ZodString>;
103
+ authenticationMechanism: z.ZodOptional<z.ZodString>;
104
+ awsAccessKeyId: z.ZodOptional<z.ZodString>;
105
+ awsIamSessionToken: z.ZodOptional<z.ZodString>;
106
+ awsSecretAccessKey: z.ZodOptional<z.ZodString>;
107
+ awsSessionToken: z.ZodOptional<z.ZodString>;
108
+ csfleLibraryPath: z.ZodOptional<z.ZodString>;
109
+ cryptSharedLibPath: z.ZodOptional<z.ZodString>;
110
+ deepInspect: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
111
+ db: z.ZodOptional<z.ZodString>;
112
+ gssapiServiceName: z.ZodOptional<z.ZodString>;
113
+ sspiHostnameCanonicalization: z.ZodOptional<z.ZodString>;
114
+ sspiRealmOverride: z.ZodOptional<z.ZodString>;
115
+ jsContext: z.ZodOptional<z.ZodEnum<{
116
+ repl: "repl";
117
+ "plain-vm": "plain-vm";
118
+ auto: "auto";
119
+ }>>;
120
+ host: z.ZodOptional<z.ZodString>;
121
+ keyVaultNamespace: z.ZodOptional<z.ZodString>;
122
+ kmsURL: z.ZodOptional<z.ZodString>;
123
+ locale: z.ZodOptional<z.ZodString>;
124
+ oidcFlows: z.ZodOptional<z.ZodString>;
125
+ oidcRedirectUri: z.ZodOptional<z.ZodString>;
126
+ password: z.ZodOptional<z.ZodString>;
127
+ port: z.ZodOptional<z.ZodString>;
128
+ username: z.ZodOptional<z.ZodString>;
129
+ tlsCAFile: z.ZodOptional<z.ZodString>;
130
+ tlsCertificateKeyFile: z.ZodOptional<z.ZodString>;
131
+ tlsCertificateKeyFilePassword: z.ZodOptional<z.ZodString>;
132
+ tlsCertificateSelector: z.ZodOptional<z.ZodString>;
133
+ tlsCRLFile: z.ZodOptional<z.ZodString>;
134
+ tlsDisabledProtocols: z.ZodOptional<z.ZodString>;
135
+ apiDeprecationErrors: z.ZodOptional<z.ZodBoolean>;
136
+ apiStrict: z.ZodOptional<z.ZodBoolean>;
137
+ buildInfo: z.ZodOptional<z.ZodBoolean>;
138
+ exposeAsyncRewriter: z.ZodOptional<z.ZodBoolean>;
139
+ help: z.ZodOptional<z.ZodBoolean>;
140
+ ipv6: z.ZodOptional<z.ZodBoolean>;
141
+ nodb: z.ZodOptional<z.ZodBoolean>;
142
+ norc: z.ZodOptional<z.ZodBoolean>;
143
+ oidcTrustedEndpoint: z.ZodOptional<z.ZodBoolean>;
144
+ oidcIdTokenAsAccessToken: z.ZodOptional<z.ZodBoolean>;
145
+ oidcNoNonce: z.ZodOptional<z.ZodBoolean>;
146
+ quiet: z.ZodOptional<z.ZodBoolean>;
147
+ retryWrites: z.ZodOptional<z.ZodBoolean>;
148
+ shell: z.ZodOptional<z.ZodBoolean>;
149
+ skipStartupWarnings: z.ZodOptional<z.ZodBoolean>;
150
+ verbose: z.ZodOptional<z.ZodBoolean>;
151
+ version: z.ZodOptional<z.ZodBoolean>;
152
+ smokeTests: z.ZodOptional<z.ZodBoolean>;
153
+ perfTests: z.ZodOptional<z.ZodBoolean>;
154
+ tls: z.ZodOptional<z.ZodBoolean>;
155
+ tlsAllowInvalidCertificates: z.ZodOptional<z.ZodBoolean>;
156
+ tlsAllowInvalidHostnames: z.ZodOptional<z.ZodBoolean>;
157
+ tlsFIPSMode: z.ZodOptional<z.ZodBoolean>;
158
+ tlsUseSystemCA: z.ZodOptional<z.ZodBoolean>;
159
+ eval: z.ZodOptional<z.ZodArray<z.ZodString>>;
160
+ file: z.ZodOptional<z.ZodArray<z.ZodString>>;
161
+ json: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodEnum<{
162
+ relaxed: "relaxed";
163
+ canonical: "canonical";
164
+ }>]>>;
165
+ oidcDumpTokens: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodEnum<{
166
+ redacted: "redacted";
167
+ "include-secrets": "include-secrets";
168
+ }>]>>;
169
+ browser: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<false>, z.ZodString]>>;
170
+ }, z.core.$strip>;
171
+ type ExcludedFields = keyof typeof DeprecatedCliOptions | keyof typeof UnsupportedCliOptions;
172
+ export type CliOptions = Omit<z.infer<typeof CliOptionsSchema>, ExcludedFields> & {
2
173
  connectionSpecifier?: string;
3
174
  fileNames?: string[];
4
- apiDeprecationErrors?: boolean;
5
- apiStrict?: boolean;
6
- apiVersion?: string;
7
- authenticationDatabase?: string;
8
- authenticationMechanism?: string;
9
- awsAccessKeyId?: string;
10
- awsIamSessionToken?: string;
11
- awsSecretAccessKey?: string;
12
- awsSessionToken?: string;
13
- csfleLibraryPath?: string;
14
- cryptSharedLibPath?: string;
15
- db?: string;
16
- eval?: string[];
17
- exposeAsyncRewriter?: boolean;
18
- gssapiServiceName?: string;
19
- sspiHostnameCanonicalization?: string;
20
- sspiRealmOverride?: string;
21
- help?: boolean;
22
- host?: string;
23
- ipv6?: boolean;
24
- jsContext?: 'repl' | 'plain-vm' | 'auto';
25
- json?: boolean | 'canonical' | 'relaxed';
26
- keyVaultNamespace?: string;
27
- kmsURL?: string;
28
- nodb?: boolean;
29
- norc?: boolean;
30
- password?: string;
31
- port?: string;
32
- quiet?: boolean;
33
- retryWrites?: boolean;
34
- shell?: boolean;
35
- skipStartupWarnings?: boolean;
36
- tls?: boolean;
37
- tlsAllowInvalidCertificates?: boolean;
38
- tlsAllowInvalidHostnames?: boolean;
39
- tlsCAFile?: string;
40
- tlsCertificateKeyFile?: string;
41
- tlsCertificateKeyFilePassword?: string;
42
- tlsCertificateSelector?: string;
43
- tlsCRLFile?: string;
44
- tlsDisabledProtocols?: boolean;
45
- tlsFIPSMode?: boolean;
46
- username?: string;
47
- verbose?: boolean;
48
- version?: boolean;
49
- oidcFlows?: string;
50
- oidcRedirectUri?: string;
51
- oidcTrustedEndpoint?: boolean;
52
- oidcIdTokenAsAccessToken?: boolean;
53
- oidcDumpTokens?: boolean | 'redacted' | 'include-secrets';
54
- oidcNoNonce?: boolean;
55
- browser?: string | false;
56
- }
175
+ };
176
+ export declare function processPositionalCliOptions<T extends CliOptions>({ parsed, positional, }: {
177
+ parsed: T;
178
+ positional: parser.Arguments['_'];
179
+ }): T;
180
+ export declare function validateCliOptions(parsed: CliOptions): void;
181
+ export {};
@@ -1,3 +1,182 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.CliOptionsSchema = exports.UnsupportedCliOptions = exports.DeprecatedCliOptions = exports.CurrentCliOptionsSchema = void 0;
7
+ exports.processPositionalCliOptions = processPositionalCliOptions;
8
+ exports.validateCliOptions = validateCliOptions;
9
+ const v4_1 = __importDefault(require("zod/v4"));
10
+ const arg_metadata_1 = require("./arg-metadata");
11
+ const errors_1 = require("@mongosh/errors");
12
+ exports.CurrentCliOptionsSchema = v4_1.default.object({
13
+ apiVersion: v4_1.default.string().optional(),
14
+ authenticationDatabase: v4_1.default.string().optional(),
15
+ authenticationMechanism: v4_1.default.string().optional(),
16
+ awsAccessKeyId: v4_1.default.string().optional(),
17
+ awsIamSessionToken: v4_1.default.string().optional(),
18
+ awsSecretAccessKey: v4_1.default.string().optional(),
19
+ awsSessionToken: v4_1.default.string().optional(),
20
+ csfleLibraryPath: v4_1.default.string().optional(),
21
+ cryptSharedLibPath: v4_1.default.string().optional(),
22
+ deepInspect: v4_1.default.boolean().default(true).optional(),
23
+ db: v4_1.default.string().optional(),
24
+ gssapiServiceName: v4_1.default.string().optional(),
25
+ sspiHostnameCanonicalization: v4_1.default.string().optional(),
26
+ sspiRealmOverride: v4_1.default.string().optional(),
27
+ jsContext: v4_1.default.enum(['repl', 'plain-vm', 'auto']).optional(),
28
+ host: v4_1.default.string().optional(),
29
+ keyVaultNamespace: v4_1.default.string().optional(),
30
+ kmsURL: v4_1.default.string().optional(),
31
+ locale: v4_1.default.string().optional(),
32
+ oidcFlows: v4_1.default.string().optional(),
33
+ oidcRedirectUri: v4_1.default
34
+ .string()
35
+ .optional()
36
+ .register(arg_metadata_1.argMetadata, {
37
+ alias: ['oidcRedirectUrl'],
38
+ }),
39
+ password: v4_1.default
40
+ .string()
41
+ .optional()
42
+ .register(arg_metadata_1.argMetadata, { alias: ['p'] }),
43
+ port: v4_1.default.string().optional(),
44
+ username: v4_1.default
45
+ .string()
46
+ .optional()
47
+ .register(arg_metadata_1.argMetadata, { alias: ['u'] }),
48
+ tlsCAFile: v4_1.default.string().optional(),
49
+ tlsCertificateKeyFile: v4_1.default.string().optional(),
50
+ tlsCertificateKeyFilePassword: v4_1.default.string().optional(),
51
+ tlsCertificateSelector: v4_1.default.string().optional(),
52
+ tlsCRLFile: v4_1.default.string().optional(),
53
+ tlsDisabledProtocols: v4_1.default.string().optional(),
54
+ apiDeprecationErrors: v4_1.default.boolean().optional(),
55
+ apiStrict: v4_1.default.boolean().optional(),
56
+ buildInfo: v4_1.default
57
+ .boolean()
58
+ .optional()
59
+ .register(arg_metadata_1.argMetadata, { alias: ['build-info'] }),
60
+ exposeAsyncRewriter: v4_1.default.boolean().optional(),
61
+ help: v4_1.default
62
+ .boolean()
63
+ .optional()
64
+ .register(arg_metadata_1.argMetadata, { alias: ['h'] }),
65
+ ipv6: v4_1.default.boolean().optional(),
66
+ nodb: v4_1.default.boolean().optional(),
67
+ norc: v4_1.default.boolean().optional(),
68
+ oidcTrustedEndpoint: v4_1.default.boolean().optional(),
69
+ oidcIdTokenAsAccessToken: v4_1.default
70
+ .boolean()
71
+ .optional()
72
+ .register(arg_metadata_1.argMetadata, {
73
+ alias: ['oidcIDTokenAsAccessToken'],
74
+ }),
75
+ oidcNoNonce: v4_1.default.boolean().optional(),
76
+ quiet: v4_1.default.boolean().optional(),
77
+ retryWrites: v4_1.default.boolean().optional(),
78
+ shell: v4_1.default.boolean().optional(),
79
+ skipStartupWarnings: v4_1.default.boolean().optional(),
80
+ verbose: v4_1.default.boolean().optional(),
81
+ version: v4_1.default.boolean().optional(),
82
+ smokeTests: v4_1.default.boolean().optional(),
83
+ perfTests: v4_1.default.boolean().optional(),
84
+ tls: v4_1.default.boolean().optional(),
85
+ tlsAllowInvalidCertificates: v4_1.default.boolean().optional(),
86
+ tlsAllowInvalidHostnames: v4_1.default.boolean().optional(),
87
+ tlsFIPSMode: v4_1.default.boolean().optional(),
88
+ tlsUseSystemCA: v4_1.default.boolean().optional(),
89
+ eval: v4_1.default.array(v4_1.default.string()).optional(),
90
+ file: v4_1.default
91
+ .array(v4_1.default.string())
92
+ .optional()
93
+ .register(arg_metadata_1.argMetadata, { alias: ['f'] }),
94
+ json: v4_1.default.union([v4_1.default.boolean(), v4_1.default.enum(['relaxed', 'canonical'])]).optional(),
95
+ oidcDumpTokens: v4_1.default
96
+ .union([v4_1.default.boolean(), v4_1.default.enum(['redacted', 'include-secrets'])])
97
+ .optional(),
98
+ browser: v4_1.default.union([v4_1.default.literal(false), v4_1.default.string()]).optional(),
99
+ });
100
+ exports.DeprecatedCliOptions = v4_1.default.object({
101
+ ssl: v4_1.default
102
+ .boolean()
103
+ .optional()
104
+ .register(arg_metadata_1.argMetadata, { deprecationReplacement: 'tls' }),
105
+ sslAllowInvalidCertificates: v4_1.default.boolean().optional().register(arg_metadata_1.argMetadata, {
106
+ deprecationReplacement: 'tlsAllowInvalidCertificates',
107
+ }),
108
+ sslAllowInvalidHostnames: v4_1.default.boolean().optional().register(arg_metadata_1.argMetadata, {
109
+ deprecationReplacement: 'tlsAllowInvalidHostnames',
110
+ }),
111
+ sslPEMKeyFile: v4_1.default.string().optional().register(arg_metadata_1.argMetadata, {
112
+ deprecationReplacement: 'tlsCertificateKeyFile',
113
+ }),
114
+ sslPEMKeyPassword: v4_1.default.string().optional().register(arg_metadata_1.argMetadata, {
115
+ deprecationReplacement: 'tlsCertificateKeyFilePassword',
116
+ }),
117
+ sslCAFile: v4_1.default.string().optional().register(arg_metadata_1.argMetadata, {
118
+ deprecationReplacement: 'tlsCAFile',
119
+ }),
120
+ sslCertificateSelector: v4_1.default.string().optional().register(arg_metadata_1.argMetadata, {
121
+ deprecationReplacement: 'tlsCertificateSelector',
122
+ }),
123
+ sslCRLFile: v4_1.default.string().optional().register(arg_metadata_1.argMetadata, {
124
+ deprecationReplacement: 'tlsCRLFile',
125
+ }),
126
+ sslDisabledProtocols: v4_1.default.string().optional().register(arg_metadata_1.argMetadata, {
127
+ deprecationReplacement: 'tlsDisabledProtocols',
128
+ }),
129
+ });
130
+ exports.UnsupportedCliOptions = v4_1.default.object({
131
+ gssapiHostName: v4_1.default
132
+ .string()
133
+ .optional()
134
+ .register(arg_metadata_1.argMetadata, { unsupported: true }),
135
+ sslFIPSMode: v4_1.default.boolean().optional().register(arg_metadata_1.argMetadata, {
136
+ unsupported: true,
137
+ }),
138
+ });
139
+ exports.CliOptionsSchema = v4_1.default.object({
140
+ ...exports.CurrentCliOptionsSchema.shape,
141
+ ...exports.DeprecatedCliOptions.shape,
142
+ ...exports.UnsupportedCliOptions.shape,
143
+ });
144
+ function processPositionalCliOptions({ parsed, positional, }) {
145
+ var _a;
146
+ const processed = { ...parsed };
147
+ if (typeof positional[0] === 'string') {
148
+ if (!processed.nodb && isConnectionSpecifier(positional[0])) {
149
+ processed.connectionSpecifier = positional.shift();
150
+ }
151
+ }
152
+ processed.fileNames = [
153
+ ...((_a = processed.file) !== null && _a !== void 0 ? _a : []),
154
+ ...positional,
155
+ ];
156
+ return processed;
157
+ }
158
+ function validateCliOptions(parsed) {
159
+ const jsonValidation = exports.CliOptionsSchema.shape.json.safeParse(parsed.json);
160
+ if (!jsonValidation.success) {
161
+ throw new errors_1.MongoshUnimplementedError('--json can only have the values relaxed, canonical', errors_1.CommonErrors.InvalidArgument);
162
+ }
163
+ const oidcDumpTokensValidation = exports.CliOptionsSchema.shape.oidcDumpTokens.safeParse(parsed.oidcDumpTokens);
164
+ if (!oidcDumpTokensValidation.success) {
165
+ throw new errors_1.MongoshUnimplementedError('--oidcDumpTokens can only have the values redacted, include-secrets', errors_1.CommonErrors.InvalidArgument);
166
+ }
167
+ const jsContextValidation = exports.CliOptionsSchema.shape.jsContext.safeParse(parsed.jsContext);
168
+ if (!jsContextValidation.success) {
169
+ throw new errors_1.MongoshUnimplementedError('--jsContext can only have the values repl, plain-vm, auto', errors_1.CommonErrors.InvalidArgument);
170
+ }
171
+ const browserValidation = exports.CliOptionsSchema.shape.browser.safeParse(parsed.browser);
172
+ if (!browserValidation.success) {
173
+ throw new errors_1.MongoshUnimplementedError('--browser can only be true or a string', errors_1.CommonErrors.InvalidArgument);
174
+ }
175
+ }
176
+ function isConnectionSpecifier(arg) {
177
+ return (typeof arg === 'string' &&
178
+ (arg.startsWith('mongodb://') ||
179
+ arg.startsWith('mongodb+srv://') ||
180
+ !(arg.endsWith('.js') || arg.endsWith('.mongodb'))));
181
+ }
3
182
  //# sourceMappingURL=cli-options.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli-options.js","sourceRoot":"","sources":["../src/cli-options.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"cli-options.js","sourceRoot":"","sources":["../src/cli-options.ts"],"names":[],"mappings":"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"}
package/lib/utils.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ import z from 'zod/v4';
2
+ export declare function coerceObject(schema: z.ZodObject): (value: unknown) => unknown;
3
+ export declare function coerceIfBoolean(value: unknown): unknown;
4
+ export declare function coerceIfFalse(value: unknown): unknown;
5
+ export declare function unwrapType(type: unknown): z.ZodType;
package/lib/utils.js ADDED
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.coerceObject = coerceObject;
7
+ exports.coerceIfBoolean = coerceIfBoolean;
8
+ exports.coerceIfFalse = coerceIfFalse;
9
+ exports.unwrapType = unwrapType;
10
+ const v4_1 = __importDefault(require("zod/v4"));
11
+ function coerceObject(schema) {
12
+ return (value) => {
13
+ switch (typeof value) {
14
+ case 'string':
15
+ return schema.parse(JSON.parse(value));
16
+ case 'object':
17
+ return value;
18
+ default:
19
+ return null;
20
+ }
21
+ };
22
+ }
23
+ function coerceIfBoolean(value) {
24
+ if (typeof value === 'string') {
25
+ if (value === 'true') {
26
+ return true;
27
+ }
28
+ if (value === 'false') {
29
+ return false;
30
+ }
31
+ return value;
32
+ }
33
+ return value;
34
+ }
35
+ function coerceIfFalse(value) {
36
+ if (value === undefined || value === '') {
37
+ return null;
38
+ }
39
+ if (typeof value === 'string') {
40
+ if (value === 'false') {
41
+ return false;
42
+ }
43
+ return value;
44
+ }
45
+ return value;
46
+ }
47
+ function unwrapType(type) {
48
+ assertZodType(type);
49
+ let unwrappedType = v4_1.default.clone(type);
50
+ while (unwrappedType instanceof v4_1.default.ZodOptional ||
51
+ unwrappedType instanceof v4_1.default.ZodDefault ||
52
+ unwrappedType instanceof v4_1.default.ZodNullable ||
53
+ unwrappedType instanceof v4_1.default.ZodPipe) {
54
+ if (unwrappedType instanceof v4_1.default.ZodPipe) {
55
+ const nextWrap = unwrappedType.def.out;
56
+ assertZodType(nextWrap);
57
+ unwrappedType = nextWrap;
58
+ }
59
+ else {
60
+ const nextWrap = unwrappedType.unwrap();
61
+ assertZodType(nextWrap);
62
+ unwrappedType = nextWrap;
63
+ }
64
+ }
65
+ return unwrappedType;
66
+ }
67
+ function assertZodType(type) {
68
+ if (!(type instanceof v4_1.default.ZodType)) {
69
+ throw new Error(`Unknown schema field type: ${type && typeof type === 'object' ? type.constructor.name : typeof type}`);
70
+ }
71
+ }
72
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;;;AAEA,oCAWC;AAED,0CAWC;AAED,sCAYC;AAED,gCAqBC;AA/DD,gDAAuB;AAEvB,SAAgB,YAAY,CAAC,MAAmB;IAC9C,OAAO,CAAC,KAAc,EAAE,EAAE;QACxB,QAAQ,OAAO,KAAK,EAAE,CAAC;YACrB,KAAK,QAAQ;gBACX,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;YACzC,KAAK,QAAQ;gBACX,OAAO,KAAK,CAAC;YACf;gBACE,OAAO,IAAI,CAAC;QAChB,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,SAAgB,eAAe,CAAC,KAAc;IAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;YACtB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAgB,aAAa,CAAC,KAAc;IAC1C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;YACtB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAgB,UAAU,CAAC,IAAa;IACtC,aAAa,CAAC,IAAI,CAAC,CAAC;IACpB,IAAI,aAAa,GAAG,YAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,OACE,aAAa,YAAY,YAAC,CAAC,WAAW;QACtC,aAAa,YAAY,YAAC,CAAC,UAAU;QACrC,aAAa,YAAY,YAAC,CAAC,WAAW;QACtC,aAAa,YAAY,YAAC,CAAC,OAAO,EAClC,CAAC;QACD,IAAI,aAAa,YAAY,YAAC,CAAC,OAAO,EAAE,CAAC;YACvC,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC;YACvC,aAAa,CAAC,QAAQ,CAAC,CAAC;YACxB,aAAa,GAAG,QAAQ,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC;YACxC,aAAa,CAAC,QAAQ,CAAC,CAAC;YACxB,aAAa,GAAG,QAAQ,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,SAAS,aAAa,CAAC,IAAa;IAClC,IAAI,CAAC,CAAC,IAAI,YAAY,YAAC,CAAC,OAAO,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CACb,8BACE,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,IACpE,EAAE,CACH,CAAC;IACJ,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,8 +1,19 @@
1
1
  {
2
2
  "name": "@mongosh/arg-parser",
3
- "version": "3.22.0",
3
+ "version": "3.23.0",
4
4
  "description": "MongoDB Shell CLI Argument List Parser Package",
5
5
  "main": "./lib/index.js",
6
+ "types": "./lib/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "default": "./lib/index.js",
10
+ "types": "./lib/index.d.ts"
11
+ },
12
+ "./arg-parser": {
13
+ "default": "./lib/arg-parser.js",
14
+ "types": "./lib/arg-parser.d.ts"
15
+ }
16
+ },
6
17
  "repository": {
7
18
  "type": "git",
8
19
  "url": "git://github.com/mongodb-js/mongosh.git"
@@ -11,7 +22,7 @@
11
22
  "unsafe-perm": true
12
23
  },
13
24
  "scripts": {
14
- "test": "mocha -r \"../../scripts/import-expansions.js\" --timeout 60000 -r ts-node/register \"./{src,lib}/**/*.spec.ts\" --reporter \"../../configs/mocha-config-mongosh/reporter.ts\"",
25
+ "test": "mocha",
15
26
  "test-ci": "node ../../scripts/run-if-package-requested.js npm test",
16
27
  "test-coverage": "nyc --no-clean --cwd ../.. --reporter=none npm run test",
17
28
  "test-ci-coverage": "nyc --no-clean --cwd ../.. --reporter=none npm run test-ci",
@@ -35,19 +46,24 @@
35
46
  "unitTestsOnly": true
36
47
  },
37
48
  "dependencies": {
38
- "@mongosh/errors": "2.4.4",
39
- "@mongosh/i18n": "^2.19.0",
40
- "mongodb-connection-string-url": "^3.0.2"
49
+ "@mongosh/errors": "2.4.5",
50
+ "@mongosh/i18n": "^2.20.0",
51
+ "mongodb-connection-string-url": "^3.0.2",
52
+ "yargs-parser": "^20.2.4"
53
+ },
54
+ "peerDependencies": {
55
+ "zod": "^3.25.76"
41
56
  },
42
57
  "devDependencies": {
43
58
  "@mongodb-js/devtools-connect": "^3.9.4",
44
59
  "@mongodb-js/eslint-config-mongosh": "^1.0.0",
45
60
  "@mongodb-js/prettier-config-devtools": "^1.0.1",
46
61
  "@mongodb-js/tsconfig-mongosh": "^1.0.0",
62
+ "@types/yargs-parser": "^21.0.3",
47
63
  "depcheck": "^1.4.7",
48
64
  "eslint": "^7.25.0",
49
65
  "mongodb": "^6.19.0",
50
66
  "prettier": "^2.8.8"
51
67
  },
52
- "gitHead": "6cfca044bd9c3dd60ea67dc8e9cbff3fa1cd9fcf"
68
+ "gitHead": "d2069810a846a535c51c88929224a57e49960778"
53
69
  }