@codeworksh/cli 0.0.1-dev.20260922135856 → 0.0.1-dev.20260922183613
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/README.md +43 -0
- package/{add-D7X5BuCv.mjs → add--i7mPR73.mjs} +4 -4
- package/{add-D7X5BuCv.mjs.map → add--i7mPR73.mjs.map} +1 -1
- package/{catalog-DL8yWdvI.mjs → catalog-DJxy_lne.mjs} +2 -2
- package/{catalog-DL8yWdvI.mjs.map → catalog-DJxy_lne.mjs.map} +1 -1
- package/{check-M9CqztTk.mjs → check-Dq2WOgap.mjs} +4 -4
- package/{check-M9CqztTk.mjs.map → check-Dq2WOgap.mjs.map} +1 -1
- package/{commonjs-CiyyOsS6.mjs → commonjs-BDiLMfFF.mjs} +3 -3
- package/{commonjs-CiyyOsS6.mjs.map → commonjs-BDiLMfFF.mjs.map} +1 -1
- package/{definitions-ClJIBYEm.mjs → definitions-Dfwyyv_K.mjs} +3 -3
- package/{definitions-ClJIBYEm.mjs.map → definitions-Dfwyyv_K.mjs.map} +1 -1
- package/{entries-DBdy6ahj.mjs → entries-Gfsq7U4P.mjs} +2 -2
- package/{entries-DBdy6ahj.mjs.map → entries-Gfsq7U4P.mjs.map} +1 -1
- package/{error-DTXBm1nO.mjs → error-BrbT9_4g.mjs} +119 -9
- package/error-BrbT9_4g.mjs.map +1 -0
- package/{generate-C5NElYXe.mjs → generate-DrGYpD3l.mjs} +3 -3
- package/{generate-C5NElYXe.mjs.map → generate-DrGYpD3l.mjs.map} +1 -1
- package/{harness-DQxbts5f.mjs → harness-Bgvrr0ZB.mjs} +2 -2
- package/{harness-DQxbts5f.mjs.map → harness-Bgvrr0ZB.mjs.map} +1 -1
- package/index.d.mts +6 -1
- package/index.mjs +20 -14
- package/index.mjs.map +1 -1
- package/{install-CJEnZ9dx.mjs → install-DoO4D3fk.mjs} +4 -4
- package/{install-CJEnZ9dx.mjs.map → install-DoO4D3fk.mjs.map} +1 -1
- package/{lib-CVW4jqJ3.mjs → lib-BkWR53Bz.mjs} +6 -6
- package/{lib-CVW4jqJ3.mjs.map → lib-BkWR53Bz.mjs.map} +1 -1
- package/{lib-HXZBVLKt.mjs → lib-CyynPpjH.mjs} +5 -5
- package/{lib-HXZBVLKt.mjs.map → lib-CyynPpjH.mjs.map} +1 -1
- package/{lib-5d-Jmuz2.mjs → lib-Dw7R2suc.mjs} +5 -5
- package/{lib-5d-Jmuz2.mjs.map → lib-Dw7R2suc.mjs.map} +1 -1
- package/{lib-vrwKjvzk.mjs → lib-JQygPqgO.mjs} +3 -3
- package/{lib-vrwKjvzk.mjs.map → lib-JQygPqgO.mjs.map} +1 -1
- package/{link-D8V3E5iZ.mjs → link-B1zfETsS.mjs} +3 -3
- package/{link-D8V3E5iZ.mjs.map → link-B1zfETsS.mjs.map} +1 -1
- package/{list-DS9BJ3dD.mjs → list-3OR68HpY.mjs} +4 -4
- package/{list-DS9BJ3dD.mjs.map → list-3OR68HpY.mjs.map} +1 -1
- package/{list-BMUDpLRf.mjs → list-CfPfmfe0.mjs} +4 -4
- package/{list-BMUDpLRf.mjs.map → list-CfPfmfe0.mjs.map} +1 -1
- package/login-GFV3Z9f2.mjs +45 -0
- package/login-GFV3Z9f2.mjs.map +1 -0
- package/logout-D17TQUfo.mjs +29 -0
- package/logout-D17TQUfo.mjs.map +1 -0
- package/{p-map-LZ99xLhZ.mjs → p-map-C2WSUhyP.mjs} +2 -2
- package/{p-map-LZ99xLhZ.mjs.map → p-map-C2WSUhyP.mjs.map} +1 -1
- package/package.json +3 -3
- package/{providers-DT5BfXJV.mjs → providers-DLXs9aWZ.mjs} +4 -4
- package/{providers-DT5BfXJV.mjs.map → providers-DLXs9aWZ.mjs.map} +1 -1
- package/refresh-BTNuP1zL.mjs +35 -0
- package/refresh-BTNuP1zL.mjs.map +1 -0
- package/{reload-2GZ_8UBW.mjs → reload-BzwsCBQq.mjs} +3 -3
- package/{reload-2GZ_8UBW.mjs.map → reload-BzwsCBQq.mjs.map} +1 -1
- package/{remove-t8FHVGC0.mjs → remove-DgB3l5JL.mjs} +4 -4
- package/{remove-t8FHVGC0.mjs.map → remove-DgB3l5JL.mjs.map} +1 -1
- package/{run-CP7aAfkf.mjs → run-BVo4XsL6.mjs} +4 -4
- package/{run-CP7aAfkf.mjs.map → run-BVo4XsL6.mjs.map} +1 -1
- package/{runtime-CDSh4qOj.mjs → runtime-Dl621FOp.mjs} +76 -1
- package/runtime-Dl621FOp.mjs.map +1 -0
- package/{serve-DewC8gvV.mjs → serve-Dpep18-A.mjs} +79 -16
- package/serve-Dpep18-A.mjs.map +1 -0
- package/{settings-Bn2pmQXX.mjs → settings-C52IrA72.mjs} +2 -2
- package/{settings-Bn2pmQXX.mjs.map → settings-C52IrA72.mjs.map} +1 -1
- package/shared-Uwjcofff.mjs +115 -0
- package/shared-Uwjcofff.mjs.map +1 -0
- package/status-DPYq2Sx4.mjs +31 -0
- package/status-DPYq2Sx4.mjs.map +1 -0
- package/{type-defs-xvRvQI4T.mjs → type-defs-BZxrtlVD.mjs} +3 -3
- package/{type-defs-xvRvQI4T.mjs.map → type-defs-BZxrtlVD.mjs.map} +1 -1
- package/{update-CLfU-oh7.mjs → update-CJrBbHwq.mjs} +4 -4
- package/{update-CLfU-oh7.mjs.map → update-CJrBbHwq.mjs.map} +1 -1
- package/{valid-BXe5q7ao.mjs → valid-BWgW_TUl.mjs} +2 -2
- package/{valid-BXe5q7ao.mjs.map → valid-BWgW_TUl.mjs.map} +1 -1
- package/error-DTXBm1nO.mjs.map +0 -1
- package/runtime-CDSh4qOj.mjs.map +0 -1
- package/serve-DewC8gvV.mjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared-Uwjcofff.mjs","names":["Global.resolve","Client.layer"],"sources":["../../src/cli/cmd/handlers/auth/shared.ts"],"sourcesContent":["/* @effect-diagnostics nodeBuiltinImport:off -- OAuth login opens the system browser. */\n/* @effect-diagnostics globalDate:off -- Stored expiry timestamps are rendered for the user. */\n/* oxlint-disable effecttsgo/async-function -- Aikit OAuth callbacks require Promise-returning functions. */\nimport {\n\tGitHubCopilotOAuthClient,\n\tJsonGitHubCopilotAuthStorage,\n\ttype GitHubCopilotAuthStorage,\n} from \"@codeworksh/aikit/oauth/github/copilot\";\nimport {\n\tJsonOpenAICodexAuthStorage,\n\tOpenAICodexOAuthClient,\n\ttype OpenAICodexAuthStorage,\n} from \"@codeworksh/aikit/oauth/openai/codex\";\nimport { openBrowser, promptLine } from \"@codeworksh/aikit/oauth/interactive\";\nimport {\n\tcheckOAuthProvider,\n\toauthProviderLabel,\n\tsummarizeGitHubCopilot,\n\tsummarizeOpenAICodex,\n\ttype OAuthSummary,\n} from \"@codeworksh/aikit/oauth/summary\";\nimport { Global } from \"@codeworksh/harness/effect\";\nimport { Effect, Option, Path } from \"effect\";\nimport { Client } from \"../../../../server/client.ts\";\nimport type { Contract } from \"../../../../server/contract.ts\";\nimport { InvalidInputError, OAuthError } from \"../../../error.ts\";\nimport { Cmd } from \"../../cmd.ts\";\n\nexport type Provider = Contract.OAuthProvider;\n\n// The wire shape and aikit's summary are the same record.\nexport type Summary = Contract.OAuthInfo & OAuthSummary;\n\nconst announce = (\n\tinfo: { url: string; userCode?: string | undefined; instructions?: string | undefined },\n\tbrowser: boolean,\n): void => {\n\tprocess.stderr.write(\n\t\t`${info.instructions ?? \"Complete authentication in your browser.\"}\\n${\n\t\t\tinfo.userCode === undefined ? \"\" : `Enter code: ${info.userCode}\\n`\n\t\t}${info.url}\\n`,\n\t);\n\tif (browser) {\n\t\tvoid openBrowser(info.url, (error) => void process.stderr.write(`Failed to open browser: ${error.message}\\n`));\n\t}\n};\n\nexport interface LoginOptions {\n\treadonly browser: boolean;\n\treadonly device: boolean;\n\treadonly enterprise: Option.Option<string>;\n\treadonly enableModels: boolean;\n}\n\nexport interface Ops {\n\treadonly path: string;\n\treadonly login: (options: LoginOptions) => Promise<{ wire: Contract.OAuthCredentials; summary: Summary }>;\n\treadonly stored: () => Promise<Summary | undefined>;\n\treadonly refreshed: () => Promise<Summary | undefined>;\n\treadonly logout: () => Promise<void>;\n}\n\n/** Holds nothing: a server's credentials live on the server, not on this disk. */\nconst transient: OpenAICodexAuthStorage & GitHubCopilotAuthStorage = {\n\tget: async () => undefined,\n\tset: async () => {},\n\tclear: async () => {},\n};\n\nconst codexOps = (storage: OpenAICodexAuthStorage, path: string): Ops => {\n\tconst client = new OpenAICodexOAuthClient({ storage });\n\treturn {\n\t\tpath,\n\t\tlogin: async (options) => {\n\t\t\tconst credentials = await client.login({\n\t\t\t\tdevice: options.device,\n\t\t\t\tonAuth: (info) => announce(info, options.browser),\n\t\t\t\tonProgress: (message) => void process.stderr.write(`${message}\\n`),\n\t\t\t\tonPrompt: (prompt) => promptLine(prompt.message),\n\t\t\t});\n\t\t\treturn { wire: { provider: \"openai-codex\", ...credentials }, summary: summarizeOpenAICodex(credentials) };\n\t\t},\n\t\tstored: async () => {\n\t\t\tconst credentials = await storage.get();\n\t\t\treturn credentials && summarizeOpenAICodex(credentials);\n\t\t},\n\t\trefreshed: async () => {\n\t\t\tconst credentials = await client.getCredentials();\n\t\t\treturn credentials && summarizeOpenAICodex(credentials);\n\t\t},\n\t\tlogout: () => client.logout(),\n\t};\n};\n\nconst copilotOps = (storage: GitHubCopilotAuthStorage, path: string): Ops => {\n\tconst client = new GitHubCopilotOAuthClient({ storage });\n\tconst read = async () => {\n\t\tconst credentials = await storage.get();\n\t\treturn credentials && summarizeGitHubCopilot(credentials);\n\t};\n\treturn {\n\t\tpath,\n\t\tlogin: async (options) => {\n\t\t\tconst credentials = await client.login({\n\t\t\t\t...(Option.isSome(options.enterprise) && { enterpriseUrl: options.enterprise.value }),\n\t\t\t\tenableModels: options.enableModels,\n\t\t\t\tonAuth: (info) => announce(info, options.browser),\n\t\t\t\tonProgress: (message) => void process.stderr.write(`${message}\\n`),\n\t\t\t});\n\t\t\treturn { wire: { provider: \"github-copilot\", ...credentials }, summary: summarizeGitHubCopilot(credentials) };\n\t\t},\n\t\tstored: read,\n\t\t// GitHub OAuth tokens never expire, so there is nothing to refresh.\n\t\trefreshed: read,\n\t\tlogout: () => client.logout(),\n\t};\n};\n\nexport const makeOps = (provider: Provider, options: { path?: string | undefined; persist?: boolean } = {}): Ops => {\n\tconst file = options.path === undefined ? {} : { path: options.path };\n\tif (provider === \"openai-codex\") {\n\t\tconst storage = options.persist === false ? undefined : new JsonOpenAICodexAuthStorage(file);\n\t\treturn codexOps(storage ?? transient, storage?.path ?? \"\");\n\t}\n\tconst storage = options.persist === false ? undefined : new JsonGitHubCopilotAuthStorage(file);\n\treturn copilotOps(storage ?? transient, storage?.path ?? \"\");\n};\n\nexport const attempt = <A>(message: string, run: () => Promise<A>) =>\n\tEffect.tryPromise({ try: run, catch: (cause) => new OAuthError({ message, cause }) });\n\n/** The provider named by the two mutually exclusive flags. */\nexport const selectProvider = (flags: {\n\treadonly openaiCodex: boolean;\n\treadonly githubCopilot: boolean;\n}): Effect.Effect<Provider, InvalidInputError> => {\n\tconst checked = checkOAuthProvider(flags);\n\treturn checked.ok\n\t\t? Effect.succeed(checked.provider)\n\t\t: Effect.fail(new InvalidInputError({ message: checked.message }));\n};\n\n/** Reject the local-credential flags when the credentials live on a server. */\nexport const assertServerScope = (authFile: Option.Option<string>) =>\n\tEffect.gen(function* () {\n\t\tconst shared = yield* Cmd.spec;\n\t\tif (Option.isSome(authFile) || Option.isSome(shared.home)) {\n\t\t\treturn yield* new InvalidInputError({\n\t\t\t\tmessage: \"--auth-file and --home belong on codework serve when using --server\",\n\t\t\t});\n\t\t}\n\t});\n\n/** Credential operations against this machine's auth.json. */\nexport const localOps = (provider: Provider, authFile: Option.Option<string>) =>\n\tEffect.gen(function* () {\n\t\tconst shared = yield* Cmd.spec;\n\t\tconst path = yield* Path.Path;\n\t\tconst file = Option.isSome(authFile)\n\t\t\t? authFile.value\n\t\t\t: Option.isSome(shared.home)\n\t\t\t\t? path.join((yield* Global.resolve({ home: shared.home.value })).home, \"aikit\", \"auth.json\")\n\t\t\t\t: undefined;\n\t\treturn makeOps(provider, file === undefined ? {} : { path: file });\n\t});\n\n/** Run an effect against the RPC server at `url`, discharging the client. */\nexport const withServer = <A, E, R>(url: string, program: Effect.Effect<A, E, R>) =>\n\tprogram.pipe(Effect.provide(Client.layer(url)), Effect.scoped);\n\nexport { Client, oauthProviderLabel };\n"],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { a as reportFailure, f as writeOut, m as make, r as OAuthError } from "./error-BrbT9_4g.mjs";
|
|
2
|
+
import { i as Cmd, t as handler } from "./runtime-Dl621FOp.mjs";
|
|
3
|
+
import { a as oauthProviderLabel, n as attempt, o as selectProvider, r as localOps, s as withServer, t as assertServerScope } from "./shared-Uwjcofff.mjs";
|
|
4
|
+
import { Effect, Option } from "effect";
|
|
5
|
+
import { formatOAuthSummary, oauthNotice } from "@codeworksh/aikit/oauth/summary";
|
|
6
|
+
//#region src/cli/cmd/handlers/auth/status.ts
|
|
7
|
+
var status_default = handler(Cmd.commands.auth.commands.status, Effect.fn("CLI.auth.status")(function* ({ server, openaiCodex, githubCopilot, authFile, json }) {
|
|
8
|
+
return yield* Effect.gen(function* () {
|
|
9
|
+
const provider = yield* selectProvider({
|
|
10
|
+
openaiCodex,
|
|
11
|
+
githubCopilot
|
|
12
|
+
});
|
|
13
|
+
const name = oauthProviderLabel(provider);
|
|
14
|
+
if (Option.isSome(server)) {
|
|
15
|
+
yield* assertServerScope(authFile);
|
|
16
|
+
return yield* withServer(server.value, Effect.gen(function* () {
|
|
17
|
+
const info = yield* (yield* make)["auth.status"]({ provider });
|
|
18
|
+
if (info === null) return yield* new OAuthError({ message: oauthNotice("missing", provider, "the server") });
|
|
19
|
+
yield* writeOut(formatOAuthSummary(info, { json }));
|
|
20
|
+
}));
|
|
21
|
+
}
|
|
22
|
+
const ops = yield* localOps(provider, authFile);
|
|
23
|
+
const summary = yield* attempt(`failed to read ${name} credentials`, () => ops.stored());
|
|
24
|
+
if (summary === void 0) return yield* new OAuthError({ message: oauthNotice("missing", provider, ops.path) });
|
|
25
|
+
yield* writeOut(formatOAuthSummary(summary, { json }));
|
|
26
|
+
}).pipe(Effect.catch(reportFailure));
|
|
27
|
+
}));
|
|
28
|
+
//#endregion
|
|
29
|
+
export { status_default as default };
|
|
30
|
+
|
|
31
|
+
//# sourceMappingURL=status-DPYq2Sx4.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status-DPYq2Sx4.mjs","names":["Runtime.handler","Client.make"],"sources":["../../src/cli/cmd/handlers/auth/status.ts"],"sourcesContent":["import { formatOAuthSummary, oauthNotice } from \"@codeworksh/aikit/oauth/summary\";\nimport { Effect, Option } from \"effect\";\nimport { Runtime } from \"../../../../framework/runtime.ts\";\nimport { OAuthError, reportFailure } from \"../../../error.ts\";\nimport { writeOut } from \"../../../output.ts\";\nimport { Cmd } from \"../../cmd.ts\";\nimport {\n\tassertServerScope,\n\tattempt,\n\tClient,\n\tlocalOps,\n\toauthProviderLabel,\n\tselectProvider,\n\twithServer,\n} from \"./shared.ts\";\n\nexport default Runtime.handler(\n\tCmd.commands.auth.commands.status,\n\tEffect.fn(\"CLI.auth.status\")(function* ({ server, openaiCodex, githubCopilot, authFile, json }) {\n\t\tconst program = Effect.gen(function* () {\n\t\t\tconst provider = yield* selectProvider({ openaiCodex, githubCopilot });\n\t\t\tconst name = oauthProviderLabel(provider);\n\n\t\t\tif (Option.isSome(server)) {\n\t\t\t\tyield* assertServerScope(authFile);\n\t\t\t\treturn yield* withServer(\n\t\t\t\t\tserver.value,\n\t\t\t\t\tEffect.gen(function* () {\n\t\t\t\t\t\tconst rpc = yield* Client.make;\n\t\t\t\t\t\tconst info = yield* rpc[\"auth.status\"]({ provider });\n\t\t\t\t\t\tif (info === null) {\n\t\t\t\t\t\t\treturn yield* new OAuthError({ message: oauthNotice(\"missing\", provider, \"the server\") });\n\t\t\t\t\t\t}\n\t\t\t\t\t\tyield* writeOut(formatOAuthSummary(info, { json }));\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst ops = yield* localOps(provider, authFile);\n\t\t\tconst summary = yield* attempt(`failed to read ${name} credentials`, () => ops.stored());\n\t\t\tif (summary === undefined) {\n\t\t\t\treturn yield* new OAuthError({ message: oauthNotice(\"missing\", provider, ops.path) });\n\t\t\t}\n\t\t\tyield* writeOut(formatOAuthSummary(summary, { json }));\n\t\t});\n\n\t\treturn yield* program.pipe(Effect.catch(reportFailure));\n\t}),\n);\n"],"mappings":";;;;;;AAgBA,IAAA,iBAAeA,QACd,IAAI,SAAS,KAAK,SAAS,QAC3B,OAAO,GAAG,iBAAiB,CAAC,CAAC,WAAW,EAAE,QAAQ,aAAa,eAAe,UAAU,QAAQ;CA4B/F,OAAO,OA3BS,OAAO,IAAI,aAAa;EACvC,MAAM,WAAW,OAAO,eAAe;GAAE;GAAa;EAAc,CAAC;EACrE,MAAM,OAAO,mBAAmB,QAAQ;EAExC,IAAI,OAAO,OAAO,MAAM,GAAG;GAC1B,OAAO,kBAAkB,QAAQ;GACjC,OAAO,OAAO,WACb,OAAO,OACP,OAAO,IAAI,aAAa;IAEvB,MAAM,OAAO,QAAO,OADDC,KAAAA,CACK,cAAc,CAAC,EAAE,SAAS,CAAC;IACnD,IAAI,SAAS,MACZ,OAAO,OAAO,IAAI,WAAW,EAAE,SAAS,YAAY,WAAW,UAAU,YAAY,EAAE,CAAC;IAEzF,OAAO,SAAS,mBAAmB,MAAM,EAAE,KAAK,CAAC,CAAC;GACnD,CAAC,CACF;EACD;EAEA,MAAM,MAAM,OAAO,SAAS,UAAU,QAAQ;EAC9C,MAAM,UAAU,OAAO,QAAQ,kBAAkB,KAAK,qBAAqB,IAAI,OAAO,CAAC;EACvF,IAAI,YAAY,KAAA,GACf,OAAO,OAAO,IAAI,WAAW,EAAE,SAAS,YAAY,WAAW,UAAU,IAAI,IAAI,EAAE,CAAC;EAErF,OAAO,SAAS,mBAAmB,SAAS,EAAE,KAAK,CAAC,CAAC;CACtD,CAEoB,CAAC,CAAC,KAAK,OAAO,MAAM,aAAa,CAAC;AACvD,CAAC,CACF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { t as require_valid } from "./valid-
|
|
1
|
+
import { Ct as __commonJSMin, Et as __require } from "./error-BrbT9_4g.mjs";
|
|
2
|
+
import { t as require_valid } from "./valid-BWgW_TUl.mjs";
|
|
3
3
|
//#region ../../node_modules/.pnpm/abbrev@5.0.0/node_modules/abbrev/lib/index.js
|
|
4
4
|
var require_lib = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
5
5
|
module.exports = abbrev;
|
|
@@ -535,4 +535,4 @@ var require_type_defs = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
535
535
|
//#endregion
|
|
536
536
|
export { require_umask as n, require_nopt as r, require_type_defs as t };
|
|
537
537
|
|
|
538
|
-
//# sourceMappingURL=type-defs-
|
|
538
|
+
//# sourceMappingURL=type-defs-BZxrtlVD.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type-defs-xvRvQI4T.mjs","names":[],"sources":["../../../../node_modules/.pnpm/abbrev@5.0.0/node_modules/abbrev/lib/index.js","../../../../node_modules/.pnpm/nopt@10.0.1/node_modules/nopt/lib/type-defs.js","../../../../node_modules/.pnpm/nopt@10.0.1/node_modules/nopt/lib/nopt-lib.js","../../../../node_modules/.pnpm/nopt@10.0.1/node_modules/nopt/lib/nopt.js","../../../../node_modules/.pnpm/@npmcli+config@11.0.1/node_modules/@npmcli/config/lib/umask.js","../../../../node_modules/.pnpm/@npmcli+config@11.0.1/node_modules/@npmcli/config/lib/type-defs.js"],"sourcesContent":["module.exports = abbrev\n\nfunction abbrev (...args) {\n let list = args\n if (args.length === 1 && (Array.isArray(args[0]) || typeof args[0] === 'string')) {\n list = [].concat(args[0])\n }\n\n for (let i = 0, l = list.length; i < l; i++) {\n list[i] = typeof list[i] === 'string' ? list[i] : String(list[i])\n }\n\n // sort them lexicographically, so that they're next to their nearest kin\n list = list.sort(lexSort)\n\n // walk through each, seeing how much it has in common with the next and previous\n const abbrevs = {}\n let prev = ''\n for (let ii = 0, ll = list.length; ii < ll; ii++) {\n const current = list[ii]\n const next = list[ii + 1] || ''\n let nextMatches = true\n let prevMatches = true\n if (current === next) {\n continue\n }\n let j = 0\n const cl = current.length\n for (; j < cl; j++) {\n const curChar = current.charAt(j)\n nextMatches = nextMatches && curChar === next.charAt(j)\n prevMatches = prevMatches && curChar === prev.charAt(j)\n if (!nextMatches && !prevMatches) {\n j++\n break\n }\n }\n prev = current\n if (j === cl) {\n abbrevs[current] = current\n continue\n }\n for (let a = current.slice(0, j); j <= cl; j++) {\n abbrevs[a] = current\n a += current.charAt(j)\n }\n }\n return abbrevs\n}\n\nfunction lexSort (a, b) {\n return a === b ? 0 : a > b ? 1 : -1\n}\n","const os = require('node:os')\nconst path = require('node:path')\nconst { Stream } = require('node:stream')\nconst { URL } = require('node:url')\n\nfunction validateString (data, k, val) {\n data[k] = String(val)\n}\n\nfunction validatePath (data, k, val) {\n if (val === true) {\n return false\n }\n if (val === null) {\n return true\n }\n\n val = String(val)\n\n const isWin = process.platform === 'win32'\n const homePattern = isWin ? /^~(\\/|\\\\)/ : /^~\\//\n const home = os.homedir()\n\n if (home && val.match(homePattern)) {\n data[k] = path.resolve(home, val.slice(2))\n } else {\n data[k] = path.resolve(val)\n }\n return true\n}\n\nfunction validateNumber (data, k, val) {\n if (isNaN(val)) {\n return false\n }\n data[k] = +val\n}\n\nfunction validateDate (data, k, val) {\n const s = Date.parse(val)\n if (isNaN(s)) {\n return false\n }\n data[k] = new Date(val)\n}\n\nfunction validateBoolean (data, k, val) {\n if (typeof val === 'string') {\n if (!isNaN(val)) {\n val = !!(+val)\n } else if (val === 'null' || val === 'false') {\n val = false\n } else {\n val = true\n }\n } else {\n val = !!val\n }\n data[k] = val\n}\n\nfunction validateUrl (data, k, val) {\n const parsed = URL.parse(String(val))\n if (!parsed) {\n return false\n }\n data[k] = parsed.href\n}\n\nfunction validateStream (data, k, val) {\n if (!(val instanceof Stream)) {\n return false\n }\n data[k] = val\n}\n\nmodule.exports = {\n String: { type: String, validate: validateString },\n Boolean: { type: Boolean, validate: validateBoolean },\n url: { type: URL, validate: validateUrl },\n Number: { type: Number, validate: validateNumber },\n path: { type: path, validate: validatePath },\n Stream: { type: Stream, validate: validateStream },\n Date: { type: Date, validate: validateDate },\n Array: { type: Array },\n}\n","const abbrev = require('abbrev')\nconst defaultTypeDefs = require('./type-defs')\n\nconst hasOwn = (o, k) => Object.prototype.hasOwnProperty.call(o, k)\n\nconst getType = (k, { types, dynamicTypes }) => {\n let hasType = hasOwn(types, k)\n let type = types[k]\n if (!hasType && typeof dynamicTypes === 'function') {\n const matchedType = dynamicTypes(k)\n if (matchedType !== undefined) {\n type = matchedType\n hasType = true\n }\n }\n return [hasType, type]\n}\n\nconst isTypeDef = (type, def) => def && type === def\nconst hasTypeDef = (type, def) => def && type.indexOf(def) !== -1\nconst doesNotHaveTypeDef = (type, def) => def && !hasTypeDef(type, def)\n\nfunction nopt (args, {\n types,\n shorthands,\n typeDefs,\n invalidHandler, // opt is configured but its value does not validate against given type\n unknownHandler, // opt is not configured\n abbrevHandler, // opt is being expanded via abbrev\n typeDefault,\n dynamicTypes,\n} = {}) {\n const data = {}\n const argv = {\n remain: [],\n cooked: args,\n original: args.slice(0),\n }\n\n parse(args, data, argv.remain, {\n typeDefs, types, dynamicTypes, shorthands, unknownHandler, abbrevHandler,\n })\n\n // now data is full\n clean(data, { types, dynamicTypes, typeDefs, invalidHandler, typeDefault })\n data.argv = argv\n\n Object.defineProperty(data.argv, 'toString', {\n value: function () {\n return this.original.map(JSON.stringify).join(' ')\n },\n enumerable: false,\n })\n\n return data\n}\n\nfunction clean (data, {\n types = {},\n typeDefs = {},\n dynamicTypes,\n invalidHandler,\n typeDefault,\n} = {}) {\n const StringType = typeDefs.String?.type\n const NumberType = typeDefs.Number?.type\n const ArrayType = typeDefs.Array?.type\n const BooleanType = typeDefs.Boolean?.type\n const DateType = typeDefs.Date?.type\n\n const hasTypeDefault = typeof typeDefault !== 'undefined'\n if (!hasTypeDefault) {\n typeDefault = [false, true, null]\n if (StringType) {\n typeDefault.push(StringType)\n }\n if (ArrayType) {\n typeDefault.push(ArrayType)\n }\n }\n\n const remove = {}\n\n Object.keys(data).forEach((k) => {\n if (k === 'argv') {\n return\n }\n let val = data[k]\n const isArray = Array.isArray(val)\n let [hasType, rawType] = getType(k, { types, dynamicTypes })\n let type = rawType\n if (!isArray) {\n val = [val]\n }\n if (!type) {\n type = typeDefault\n }\n if (isTypeDef(type, ArrayType)) {\n type = typeDefault.concat(ArrayType)\n }\n if (!Array.isArray(type)) {\n type = [type]\n }\n\n val = val.map((v) => {\n // if it's an unknown value, then parse false/true/null/numbers/dates\n if (typeof v === 'string') {\n v = v.trim()\n if ((v === 'null' && ~type.indexOf(null))\n || (v === 'true' &&\n (~type.indexOf(true) || hasTypeDef(type, BooleanType)))\n || (v === 'false' &&\n (~type.indexOf(false) || hasTypeDef(type, BooleanType)))) {\n v = JSON.parse(v)\n } else if (hasTypeDef(type, NumberType) && !isNaN(v)) {\n v = +v\n } else if (hasTypeDef(type, DateType) && !isNaN(Date.parse(v))) {\n v = new Date(v)\n }\n }\n\n if (!hasType) {\n if (!hasTypeDefault) {\n return v\n }\n // if the default type has been passed in then we want to validate the\n // unknown data key instead of bailing out earlier. we also set the raw\n // type which is passed to the invalid handler so that it can be\n // determined if during validation if it is unknown vs invalid\n rawType = typeDefault\n }\n\n // allow `--no-blah` to set 'blah' to null if null is allowed\n if (v === false && ~type.indexOf(null) &&\n !(~type.indexOf(false) || hasTypeDef(type, BooleanType))) {\n v = null\n }\n\n const d = {}\n d[k] = v\n if (!validate(d, k, v, rawType, { typeDefs })) {\n if (invalidHandler) {\n invalidHandler(k, v, rawType, data)\n }\n return remove\n }\n return d[k]\n }).filter((v) => v !== remove)\n\n // if we allow Array specifically, then an empty array is how we\n // express 'no value here', not null. Allow it.\n if (!val.length && doesNotHaveTypeDef(type, ArrayType)) {\n delete data[k]\n } else if (isArray) {\n data[k] = val\n } else {\n data[k] = val[0]\n }\n })\n}\n\nfunction validate (data, k, val, type, { typeDefs } = {}) {\n const ArrayType = typeDefs?.Array?.type\n // arrays are lists of types.\n if (Array.isArray(type)) {\n for (let i = 0, l = type.length; i < l; i++) {\n if (isTypeDef(type[i], ArrayType)) {\n continue\n }\n if (validate(data, k, val, type[i], { typeDefs })) {\n return true\n }\n }\n delete data[k]\n return false\n }\n\n // an array of anything?\n if (isTypeDef(type, ArrayType)) {\n return true\n }\n\n // Original comment:\n // NaN is poisonous, it means that something is not allowed.\n\n // New comment:\n // Changing this to an isNaN check breaks a lot of tests.\n // Something is being assumed here that is not actually what happens in practice.\n // Fixing it is outside the scope of getting linting to pass in this repo.\n // Leaving as-is for now.\n /* eslint-disable-next-line no-self-compare */\n if (type !== type) {\n delete data[k]\n return false\n }\n\n // explicit list of values\n if (val === type) {\n data[k] = val\n return true\n }\n\n // now go through the list of typeDefs, validate against each one.\n let ok = false\n const types = Object.keys(typeDefs)\n for (let i = 0, l = types.length; i < l; i++) {\n const t = typeDefs[types[i]]\n if (t && (\n (type && type.name && t.type && t.type.name) ?\n (type.name === t.type.name) :\n (type === t.type)\n )) {\n const d = {}\n ok = t.validate(d, k, val) !== false\n val = d[k]\n if (ok) {\n data[k] = val\n break\n }\n }\n }\n\n if (!ok) {\n delete data[k]\n }\n return ok\n}\n\nfunction parse (args, data, remain, {\n types = {},\n typeDefs = {},\n shorthands = {},\n dynamicTypes,\n unknownHandler,\n abbrevHandler,\n} = {}) {\n const StringType = typeDefs.String?.type\n const NumberType = typeDefs.Number?.type\n const ArrayType = typeDefs.Array?.type\n const BooleanType = typeDefs.Boolean?.type\n const abbrevs = abbrev(Object.keys(types))\n const shortAbbr = abbrev(Object.keys(shorthands))\n\n for (let i = 0; i < args.length; i++) {\n let arg = args[i]\n\n if (arg.match(/^-{2,}$/)) {\n // done with keys.\n // the rest are args.\n remain.push.apply(remain, args.slice(i + 1))\n args[i] = '--'\n break\n }\n let hadEq = false\n if (arg.charAt(0) === '-' && arg.length > 1) {\n const at = arg.indexOf('=')\n if (at > -1) {\n hadEq = true\n const v = arg.slice(at + 1)\n arg = arg.slice(0, at)\n args.splice(i, 1, arg, v)\n }\n\n // see if it's a shorthand\n // if so, splice and back up to re-parse it.\n const shRes = resolveShort(arg, shortAbbr, abbrevs, { shorthands, abbrevHandler })\n if (shRes) {\n args.splice.apply(args, [i, 1].concat(shRes))\n if (arg !== shRes[0]) {\n i--\n continue\n }\n }\n arg = arg.replace(/^-+/, '')\n let no = null\n while (arg.toLowerCase().indexOf('no-') === 0) {\n no = !no\n arg = arg.slice(3)\n }\n\n // abbrev includes the original full string in its abbrev list\n if (abbrevs[arg] && abbrevs[arg] !== arg) {\n if (abbrevHandler) {\n abbrevHandler(arg, abbrevs[arg])\n }\n arg = abbrevs[arg]\n }\n\n let [hasType, argType] = getType(arg, { types, dynamicTypes })\n let isTypeArray = Array.isArray(argType)\n if (isTypeArray && argType.length === 1) {\n isTypeArray = false\n argType = argType[0]\n }\n\n let isArray = isTypeDef(argType, ArrayType) ||\n isTypeArray && hasTypeDef(argType, ArrayType)\n\n // allow unknown things to be arrays if specified multiple times.\n if (!hasType && hasOwn(data, arg)) {\n if (!Array.isArray(data[arg])) {\n data[arg] = [data[arg]]\n }\n isArray = true\n }\n\n let val\n let la = args[i + 1]\n\n const isBool = typeof no === 'boolean' ||\n isTypeDef(argType, BooleanType) ||\n isTypeArray && hasTypeDef(argType, BooleanType) ||\n (typeof argType === 'undefined' && !hadEq) ||\n (la === 'false' &&\n (argType === null ||\n isTypeArray && ~argType.indexOf(null)))\n\n if (typeof argType === 'undefined') {\n // la is going to unexpectedly be parsed outside the context of this arg\n const hangingLa = !hadEq && la && !la?.startsWith('-') && !['true', 'false'].includes(la)\n if (unknownHandler) {\n if (hangingLa) {\n unknownHandler(arg, la)\n } else {\n unknownHandler(arg)\n }\n }\n }\n\n if (isBool) {\n // just set and move along\n val = !no\n // however, also support --bool true or --bool false\n if (la === 'true' || la === 'false') {\n val = JSON.parse(la)\n la = null\n if (no) {\n val = !val\n }\n i++\n }\n\n // also support \"foo\":[Boolean, \"bar\"] and \"--foo bar\"\n if (isTypeArray && la) {\n if (~argType.indexOf(la)) {\n // an explicit type\n val = la\n i++\n } else if (la === 'null' && ~argType.indexOf(null)) {\n // null allowed\n val = null\n i++\n } else if (!la.match(/^-{2,}[^-]/) &&\n !isNaN(la) &&\n hasTypeDef(argType, NumberType)) {\n // number\n val = +la\n i++\n } else if (!la.match(/^-[^-]/) && hasTypeDef(argType, StringType)) {\n // string\n val = la\n i++\n }\n }\n\n if (isArray) {\n (data[arg] = data[arg] || []).push(val)\n } else {\n data[arg] = val\n }\n\n continue\n }\n\n if (isTypeDef(argType, StringType)) {\n if (la === undefined) {\n la = ''\n } else if (la.match(/^-{1,2}[^-]+/)) {\n la = ''\n i--\n }\n }\n\n if (la && la.match(/^-{2,}$/)) {\n la = undefined\n i--\n }\n\n val = la === undefined ? true : la\n if (isArray) {\n (data[arg] = data[arg] || []).push(val)\n } else {\n data[arg] = val\n }\n\n i++\n continue\n }\n remain.push(arg)\n }\n}\n\nconst SINGLES = Symbol('singles')\nconst singleCharacters = (arg, shorthands) => {\n let singles = shorthands[SINGLES]\n if (!singles) {\n singles = Object.keys(shorthands).filter((s) => s.length === 1).reduce((l, r) => {\n l[r] = true\n return l\n }, {})\n shorthands[SINGLES] = singles\n }\n const chrs = arg.split('').filter((c) => singles[c])\n return chrs.join('') === arg ? chrs : null\n}\n\nfunction resolveShort (arg, ...rest) {\n const { abbrevHandler, types = {}, shorthands = {} } = rest.length ? rest.pop() : {}\n const shortAbbr = rest[0] ?? abbrev(Object.keys(shorthands))\n const abbrevs = rest[1] ?? abbrev(Object.keys(types))\n\n // handle single-char shorthands glommed together, like\n // npm ls -glp, but only if there is one dash, and only if\n // all of the chars are single-char shorthands, and it's\n // not a match to some other abbrev.\n arg = arg.replace(/^-+/, '')\n\n // if it's an exact known option, then don't go any further\n if (abbrevs[arg] === arg) {\n return null\n }\n\n // if it's an exact known shortopt, same deal\n if (shorthands[arg]) {\n // make it an array, if it's a list of words\n if (shorthands[arg] && !Array.isArray(shorthands[arg])) {\n shorthands[arg] = shorthands[arg].split(/\\s+/)\n }\n\n return shorthands[arg]\n }\n\n // first check to see if this arg is a set of single-char shorthands\n const chrs = singleCharacters(arg, shorthands)\n if (chrs) {\n return chrs.map((c) => shorthands[c]).reduce((l, r) => l.concat(r), [])\n }\n\n // if it's an arg abbrev, and not a literal shorthand, then prefer the arg\n if (abbrevs[arg] && !shorthands[arg]) {\n return null\n }\n\n // if it's an abbr for a shorthand, then use that\n // exact match has already happened so we don't need to account for that here\n if (shortAbbr[arg]) {\n if (abbrevHandler) {\n abbrevHandler(arg, shortAbbr[arg])\n }\n arg = shortAbbr[arg]\n }\n\n // make it an array, if it's a list of words\n if (shorthands[arg] && !Array.isArray(shorthands[arg])) {\n shorthands[arg] = shorthands[arg].split(/\\s+/)\n }\n\n return shorthands[arg]\n}\n\nmodule.exports = {\n nopt,\n clean,\n parse,\n validate,\n resolveShort,\n typeDefs: defaultTypeDefs,\n}\n","const lib = require('./nopt-lib')\nconst defaultTypeDefs = require('./type-defs')\n\n// This is the version of nopt's API that requires setting typeDefs and invalidHandler on the required `nopt` object since it is a singleton.\n// To not do a breaking change an API that requires all options be passed in is located in `nopt-lib.js` and exported here as lib.\n// TODO(breaking): make API only work in non-singleton mode\n\nmodule.exports = exports = nopt\nexports.clean = clean\nexports.typeDefs = defaultTypeDefs\nexports.lib = lib\n\nfunction nopt (types, shorthands, args = process.argv, slice = 2) {\n return lib.nopt(args.slice(slice), {\n types: types || {},\n shorthands: shorthands || {},\n typeDefs: exports.typeDefs,\n invalidHandler: exports.invalidHandler,\n unknownHandler: exports.unknownHandler,\n abbrevHandler: exports.abbrevHandler,\n })\n}\n\nfunction clean (data, types, typeDefs = exports.typeDefs) {\n return lib.clean(data, {\n types: types || {},\n typeDefs,\n invalidHandler: exports.invalidHandler,\n unknownHandler: exports.unknownHandler,\n abbrevHandler: exports.abbrevHandler,\n })\n}\n","const parse = val => {\n // this is run via nopt and parse field where everything is\n // converted to a string first, ignoring coverage for now\n // instead of figuring out what is happening under the hood in nopt\n // istanbul ignore else\n if (typeof val === 'string') {\n if (/^0o?[0-7]+$/.test(val)) {\n return parseInt(val.replace(/^0o?/, ''), 8)\n } else if (/^[1-9][0-9]*$/.test(val)) {\n return parseInt(val, 10)\n } else {\n throw new Error(`invalid umask value: ${val}`)\n }\n } else {\n if (typeof val !== 'number') {\n throw new Error(`invalid umask value: ${val}`)\n }\n val = Math.floor(val)\n if (val < 0 || val > 511) {\n throw new Error(`invalid umask value: ${val}`)\n }\n return val\n }\n}\n\nconst validate = (data, k, val) => {\n try {\n data[k] = parse(val)\n return true\n } catch (er) {\n return false\n }\n}\n\nmodule.exports = { parse, validate }\n","const nopt = require('nopt')\n\nconst { validate: validateUmask } = require('./umask.js')\n\nclass Umask {}\nclass Semver {}\nconst semverValid = require('semver/functions/valid')\nconst validateSemver = (data, k, val) => {\n const valid = semverValid(val)\n if (!valid) {\n return false\n }\n data[k] = valid\n}\n\nconst noptValidatePath = nopt.typeDefs.path.validate\nconst validatePath = (data, k, val) => {\n if (typeof val !== 'string') {\n return false\n }\n return noptValidatePath(data, k, val)\n}\n\n// add descriptions so we can validate more usefully\nmodule.exports = {\n ...nopt.typeDefs,\n semver: {\n type: Semver,\n validate: validateSemver,\n description: 'full valid SemVer string',\n },\n Umask: {\n type: Umask,\n validate: validateUmask,\n description: 'octal number in range 0o000..0o777 (0..511)',\n },\n url: {\n ...nopt.typeDefs.url,\n description: 'full url with \"http://\"',\n },\n path: {\n ...nopt.typeDefs.path,\n validate: validatePath,\n description: 'valid filesystem path',\n },\n Number: {\n ...nopt.typeDefs.Number,\n description: 'numeric value',\n },\n Boolean: {\n ...nopt.typeDefs.Boolean,\n description: 'boolean value (true or false)',\n },\n Date: {\n ...nopt.typeDefs.Date,\n description: 'valid Date string',\n },\n}\n\n// TODO: make nopt less of a global beast so this kludge isn't necessary\nnopt.typeDefs = module.exports\n"],"x_google_ignoreList":[0,1,2,3,4,5],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"type-defs-BZxrtlVD.mjs","names":[],"sources":["../../../../node_modules/.pnpm/abbrev@5.0.0/node_modules/abbrev/lib/index.js","../../../../node_modules/.pnpm/nopt@10.0.1/node_modules/nopt/lib/type-defs.js","../../../../node_modules/.pnpm/nopt@10.0.1/node_modules/nopt/lib/nopt-lib.js","../../../../node_modules/.pnpm/nopt@10.0.1/node_modules/nopt/lib/nopt.js","../../../../node_modules/.pnpm/@npmcli+config@11.0.1/node_modules/@npmcli/config/lib/umask.js","../../../../node_modules/.pnpm/@npmcli+config@11.0.1/node_modules/@npmcli/config/lib/type-defs.js"],"sourcesContent":["module.exports = abbrev\n\nfunction abbrev (...args) {\n let list = args\n if (args.length === 1 && (Array.isArray(args[0]) || typeof args[0] === 'string')) {\n list = [].concat(args[0])\n }\n\n for (let i = 0, l = list.length; i < l; i++) {\n list[i] = typeof list[i] === 'string' ? list[i] : String(list[i])\n }\n\n // sort them lexicographically, so that they're next to their nearest kin\n list = list.sort(lexSort)\n\n // walk through each, seeing how much it has in common with the next and previous\n const abbrevs = {}\n let prev = ''\n for (let ii = 0, ll = list.length; ii < ll; ii++) {\n const current = list[ii]\n const next = list[ii + 1] || ''\n let nextMatches = true\n let prevMatches = true\n if (current === next) {\n continue\n }\n let j = 0\n const cl = current.length\n for (; j < cl; j++) {\n const curChar = current.charAt(j)\n nextMatches = nextMatches && curChar === next.charAt(j)\n prevMatches = prevMatches && curChar === prev.charAt(j)\n if (!nextMatches && !prevMatches) {\n j++\n break\n }\n }\n prev = current\n if (j === cl) {\n abbrevs[current] = current\n continue\n }\n for (let a = current.slice(0, j); j <= cl; j++) {\n abbrevs[a] = current\n a += current.charAt(j)\n }\n }\n return abbrevs\n}\n\nfunction lexSort (a, b) {\n return a === b ? 0 : a > b ? 1 : -1\n}\n","const os = require('node:os')\nconst path = require('node:path')\nconst { Stream } = require('node:stream')\nconst { URL } = require('node:url')\n\nfunction validateString (data, k, val) {\n data[k] = String(val)\n}\n\nfunction validatePath (data, k, val) {\n if (val === true) {\n return false\n }\n if (val === null) {\n return true\n }\n\n val = String(val)\n\n const isWin = process.platform === 'win32'\n const homePattern = isWin ? /^~(\\/|\\\\)/ : /^~\\//\n const home = os.homedir()\n\n if (home && val.match(homePattern)) {\n data[k] = path.resolve(home, val.slice(2))\n } else {\n data[k] = path.resolve(val)\n }\n return true\n}\n\nfunction validateNumber (data, k, val) {\n if (isNaN(val)) {\n return false\n }\n data[k] = +val\n}\n\nfunction validateDate (data, k, val) {\n const s = Date.parse(val)\n if (isNaN(s)) {\n return false\n }\n data[k] = new Date(val)\n}\n\nfunction validateBoolean (data, k, val) {\n if (typeof val === 'string') {\n if (!isNaN(val)) {\n val = !!(+val)\n } else if (val === 'null' || val === 'false') {\n val = false\n } else {\n val = true\n }\n } else {\n val = !!val\n }\n data[k] = val\n}\n\nfunction validateUrl (data, k, val) {\n const parsed = URL.parse(String(val))\n if (!parsed) {\n return false\n }\n data[k] = parsed.href\n}\n\nfunction validateStream (data, k, val) {\n if (!(val instanceof Stream)) {\n return false\n }\n data[k] = val\n}\n\nmodule.exports = {\n String: { type: String, validate: validateString },\n Boolean: { type: Boolean, validate: validateBoolean },\n url: { type: URL, validate: validateUrl },\n Number: { type: Number, validate: validateNumber },\n path: { type: path, validate: validatePath },\n Stream: { type: Stream, validate: validateStream },\n Date: { type: Date, validate: validateDate },\n Array: { type: Array },\n}\n","const abbrev = require('abbrev')\nconst defaultTypeDefs = require('./type-defs')\n\nconst hasOwn = (o, k) => Object.prototype.hasOwnProperty.call(o, k)\n\nconst getType = (k, { types, dynamicTypes }) => {\n let hasType = hasOwn(types, k)\n let type = types[k]\n if (!hasType && typeof dynamicTypes === 'function') {\n const matchedType = dynamicTypes(k)\n if (matchedType !== undefined) {\n type = matchedType\n hasType = true\n }\n }\n return [hasType, type]\n}\n\nconst isTypeDef = (type, def) => def && type === def\nconst hasTypeDef = (type, def) => def && type.indexOf(def) !== -1\nconst doesNotHaveTypeDef = (type, def) => def && !hasTypeDef(type, def)\n\nfunction nopt (args, {\n types,\n shorthands,\n typeDefs,\n invalidHandler, // opt is configured but its value does not validate against given type\n unknownHandler, // opt is not configured\n abbrevHandler, // opt is being expanded via abbrev\n typeDefault,\n dynamicTypes,\n} = {}) {\n const data = {}\n const argv = {\n remain: [],\n cooked: args,\n original: args.slice(0),\n }\n\n parse(args, data, argv.remain, {\n typeDefs, types, dynamicTypes, shorthands, unknownHandler, abbrevHandler,\n })\n\n // now data is full\n clean(data, { types, dynamicTypes, typeDefs, invalidHandler, typeDefault })\n data.argv = argv\n\n Object.defineProperty(data.argv, 'toString', {\n value: function () {\n return this.original.map(JSON.stringify).join(' ')\n },\n enumerable: false,\n })\n\n return data\n}\n\nfunction clean (data, {\n types = {},\n typeDefs = {},\n dynamicTypes,\n invalidHandler,\n typeDefault,\n} = {}) {\n const StringType = typeDefs.String?.type\n const NumberType = typeDefs.Number?.type\n const ArrayType = typeDefs.Array?.type\n const BooleanType = typeDefs.Boolean?.type\n const DateType = typeDefs.Date?.type\n\n const hasTypeDefault = typeof typeDefault !== 'undefined'\n if (!hasTypeDefault) {\n typeDefault = [false, true, null]\n if (StringType) {\n typeDefault.push(StringType)\n }\n if (ArrayType) {\n typeDefault.push(ArrayType)\n }\n }\n\n const remove = {}\n\n Object.keys(data).forEach((k) => {\n if (k === 'argv') {\n return\n }\n let val = data[k]\n const isArray = Array.isArray(val)\n let [hasType, rawType] = getType(k, { types, dynamicTypes })\n let type = rawType\n if (!isArray) {\n val = [val]\n }\n if (!type) {\n type = typeDefault\n }\n if (isTypeDef(type, ArrayType)) {\n type = typeDefault.concat(ArrayType)\n }\n if (!Array.isArray(type)) {\n type = [type]\n }\n\n val = val.map((v) => {\n // if it's an unknown value, then parse false/true/null/numbers/dates\n if (typeof v === 'string') {\n v = v.trim()\n if ((v === 'null' && ~type.indexOf(null))\n || (v === 'true' &&\n (~type.indexOf(true) || hasTypeDef(type, BooleanType)))\n || (v === 'false' &&\n (~type.indexOf(false) || hasTypeDef(type, BooleanType)))) {\n v = JSON.parse(v)\n } else if (hasTypeDef(type, NumberType) && !isNaN(v)) {\n v = +v\n } else if (hasTypeDef(type, DateType) && !isNaN(Date.parse(v))) {\n v = new Date(v)\n }\n }\n\n if (!hasType) {\n if (!hasTypeDefault) {\n return v\n }\n // if the default type has been passed in then we want to validate the\n // unknown data key instead of bailing out earlier. we also set the raw\n // type which is passed to the invalid handler so that it can be\n // determined if during validation if it is unknown vs invalid\n rawType = typeDefault\n }\n\n // allow `--no-blah` to set 'blah' to null if null is allowed\n if (v === false && ~type.indexOf(null) &&\n !(~type.indexOf(false) || hasTypeDef(type, BooleanType))) {\n v = null\n }\n\n const d = {}\n d[k] = v\n if (!validate(d, k, v, rawType, { typeDefs })) {\n if (invalidHandler) {\n invalidHandler(k, v, rawType, data)\n }\n return remove\n }\n return d[k]\n }).filter((v) => v !== remove)\n\n // if we allow Array specifically, then an empty array is how we\n // express 'no value here', not null. Allow it.\n if (!val.length && doesNotHaveTypeDef(type, ArrayType)) {\n delete data[k]\n } else if (isArray) {\n data[k] = val\n } else {\n data[k] = val[0]\n }\n })\n}\n\nfunction validate (data, k, val, type, { typeDefs } = {}) {\n const ArrayType = typeDefs?.Array?.type\n // arrays are lists of types.\n if (Array.isArray(type)) {\n for (let i = 0, l = type.length; i < l; i++) {\n if (isTypeDef(type[i], ArrayType)) {\n continue\n }\n if (validate(data, k, val, type[i], { typeDefs })) {\n return true\n }\n }\n delete data[k]\n return false\n }\n\n // an array of anything?\n if (isTypeDef(type, ArrayType)) {\n return true\n }\n\n // Original comment:\n // NaN is poisonous, it means that something is not allowed.\n\n // New comment:\n // Changing this to an isNaN check breaks a lot of tests.\n // Something is being assumed here that is not actually what happens in practice.\n // Fixing it is outside the scope of getting linting to pass in this repo.\n // Leaving as-is for now.\n /* eslint-disable-next-line no-self-compare */\n if (type !== type) {\n delete data[k]\n return false\n }\n\n // explicit list of values\n if (val === type) {\n data[k] = val\n return true\n }\n\n // now go through the list of typeDefs, validate against each one.\n let ok = false\n const types = Object.keys(typeDefs)\n for (let i = 0, l = types.length; i < l; i++) {\n const t = typeDefs[types[i]]\n if (t && (\n (type && type.name && t.type && t.type.name) ?\n (type.name === t.type.name) :\n (type === t.type)\n )) {\n const d = {}\n ok = t.validate(d, k, val) !== false\n val = d[k]\n if (ok) {\n data[k] = val\n break\n }\n }\n }\n\n if (!ok) {\n delete data[k]\n }\n return ok\n}\n\nfunction parse (args, data, remain, {\n types = {},\n typeDefs = {},\n shorthands = {},\n dynamicTypes,\n unknownHandler,\n abbrevHandler,\n} = {}) {\n const StringType = typeDefs.String?.type\n const NumberType = typeDefs.Number?.type\n const ArrayType = typeDefs.Array?.type\n const BooleanType = typeDefs.Boolean?.type\n const abbrevs = abbrev(Object.keys(types))\n const shortAbbr = abbrev(Object.keys(shorthands))\n\n for (let i = 0; i < args.length; i++) {\n let arg = args[i]\n\n if (arg.match(/^-{2,}$/)) {\n // done with keys.\n // the rest are args.\n remain.push.apply(remain, args.slice(i + 1))\n args[i] = '--'\n break\n }\n let hadEq = false\n if (arg.charAt(0) === '-' && arg.length > 1) {\n const at = arg.indexOf('=')\n if (at > -1) {\n hadEq = true\n const v = arg.slice(at + 1)\n arg = arg.slice(0, at)\n args.splice(i, 1, arg, v)\n }\n\n // see if it's a shorthand\n // if so, splice and back up to re-parse it.\n const shRes = resolveShort(arg, shortAbbr, abbrevs, { shorthands, abbrevHandler })\n if (shRes) {\n args.splice.apply(args, [i, 1].concat(shRes))\n if (arg !== shRes[0]) {\n i--\n continue\n }\n }\n arg = arg.replace(/^-+/, '')\n let no = null\n while (arg.toLowerCase().indexOf('no-') === 0) {\n no = !no\n arg = arg.slice(3)\n }\n\n // abbrev includes the original full string in its abbrev list\n if (abbrevs[arg] && abbrevs[arg] !== arg) {\n if (abbrevHandler) {\n abbrevHandler(arg, abbrevs[arg])\n }\n arg = abbrevs[arg]\n }\n\n let [hasType, argType] = getType(arg, { types, dynamicTypes })\n let isTypeArray = Array.isArray(argType)\n if (isTypeArray && argType.length === 1) {\n isTypeArray = false\n argType = argType[0]\n }\n\n let isArray = isTypeDef(argType, ArrayType) ||\n isTypeArray && hasTypeDef(argType, ArrayType)\n\n // allow unknown things to be arrays if specified multiple times.\n if (!hasType && hasOwn(data, arg)) {\n if (!Array.isArray(data[arg])) {\n data[arg] = [data[arg]]\n }\n isArray = true\n }\n\n let val\n let la = args[i + 1]\n\n const isBool = typeof no === 'boolean' ||\n isTypeDef(argType, BooleanType) ||\n isTypeArray && hasTypeDef(argType, BooleanType) ||\n (typeof argType === 'undefined' && !hadEq) ||\n (la === 'false' &&\n (argType === null ||\n isTypeArray && ~argType.indexOf(null)))\n\n if (typeof argType === 'undefined') {\n // la is going to unexpectedly be parsed outside the context of this arg\n const hangingLa = !hadEq && la && !la?.startsWith('-') && !['true', 'false'].includes(la)\n if (unknownHandler) {\n if (hangingLa) {\n unknownHandler(arg, la)\n } else {\n unknownHandler(arg)\n }\n }\n }\n\n if (isBool) {\n // just set and move along\n val = !no\n // however, also support --bool true or --bool false\n if (la === 'true' || la === 'false') {\n val = JSON.parse(la)\n la = null\n if (no) {\n val = !val\n }\n i++\n }\n\n // also support \"foo\":[Boolean, \"bar\"] and \"--foo bar\"\n if (isTypeArray && la) {\n if (~argType.indexOf(la)) {\n // an explicit type\n val = la\n i++\n } else if (la === 'null' && ~argType.indexOf(null)) {\n // null allowed\n val = null\n i++\n } else if (!la.match(/^-{2,}[^-]/) &&\n !isNaN(la) &&\n hasTypeDef(argType, NumberType)) {\n // number\n val = +la\n i++\n } else if (!la.match(/^-[^-]/) && hasTypeDef(argType, StringType)) {\n // string\n val = la\n i++\n }\n }\n\n if (isArray) {\n (data[arg] = data[arg] || []).push(val)\n } else {\n data[arg] = val\n }\n\n continue\n }\n\n if (isTypeDef(argType, StringType)) {\n if (la === undefined) {\n la = ''\n } else if (la.match(/^-{1,2}[^-]+/)) {\n la = ''\n i--\n }\n }\n\n if (la && la.match(/^-{2,}$/)) {\n la = undefined\n i--\n }\n\n val = la === undefined ? true : la\n if (isArray) {\n (data[arg] = data[arg] || []).push(val)\n } else {\n data[arg] = val\n }\n\n i++\n continue\n }\n remain.push(arg)\n }\n}\n\nconst SINGLES = Symbol('singles')\nconst singleCharacters = (arg, shorthands) => {\n let singles = shorthands[SINGLES]\n if (!singles) {\n singles = Object.keys(shorthands).filter((s) => s.length === 1).reduce((l, r) => {\n l[r] = true\n return l\n }, {})\n shorthands[SINGLES] = singles\n }\n const chrs = arg.split('').filter((c) => singles[c])\n return chrs.join('') === arg ? chrs : null\n}\n\nfunction resolveShort (arg, ...rest) {\n const { abbrevHandler, types = {}, shorthands = {} } = rest.length ? rest.pop() : {}\n const shortAbbr = rest[0] ?? abbrev(Object.keys(shorthands))\n const abbrevs = rest[1] ?? abbrev(Object.keys(types))\n\n // handle single-char shorthands glommed together, like\n // npm ls -glp, but only if there is one dash, and only if\n // all of the chars are single-char shorthands, and it's\n // not a match to some other abbrev.\n arg = arg.replace(/^-+/, '')\n\n // if it's an exact known option, then don't go any further\n if (abbrevs[arg] === arg) {\n return null\n }\n\n // if it's an exact known shortopt, same deal\n if (shorthands[arg]) {\n // make it an array, if it's a list of words\n if (shorthands[arg] && !Array.isArray(shorthands[arg])) {\n shorthands[arg] = shorthands[arg].split(/\\s+/)\n }\n\n return shorthands[arg]\n }\n\n // first check to see if this arg is a set of single-char shorthands\n const chrs = singleCharacters(arg, shorthands)\n if (chrs) {\n return chrs.map((c) => shorthands[c]).reduce((l, r) => l.concat(r), [])\n }\n\n // if it's an arg abbrev, and not a literal shorthand, then prefer the arg\n if (abbrevs[arg] && !shorthands[arg]) {\n return null\n }\n\n // if it's an abbr for a shorthand, then use that\n // exact match has already happened so we don't need to account for that here\n if (shortAbbr[arg]) {\n if (abbrevHandler) {\n abbrevHandler(arg, shortAbbr[arg])\n }\n arg = shortAbbr[arg]\n }\n\n // make it an array, if it's a list of words\n if (shorthands[arg] && !Array.isArray(shorthands[arg])) {\n shorthands[arg] = shorthands[arg].split(/\\s+/)\n }\n\n return shorthands[arg]\n}\n\nmodule.exports = {\n nopt,\n clean,\n parse,\n validate,\n resolveShort,\n typeDefs: defaultTypeDefs,\n}\n","const lib = require('./nopt-lib')\nconst defaultTypeDefs = require('./type-defs')\n\n// This is the version of nopt's API that requires setting typeDefs and invalidHandler on the required `nopt` object since it is a singleton.\n// To not do a breaking change an API that requires all options be passed in is located in `nopt-lib.js` and exported here as lib.\n// TODO(breaking): make API only work in non-singleton mode\n\nmodule.exports = exports = nopt\nexports.clean = clean\nexports.typeDefs = defaultTypeDefs\nexports.lib = lib\n\nfunction nopt (types, shorthands, args = process.argv, slice = 2) {\n return lib.nopt(args.slice(slice), {\n types: types || {},\n shorthands: shorthands || {},\n typeDefs: exports.typeDefs,\n invalidHandler: exports.invalidHandler,\n unknownHandler: exports.unknownHandler,\n abbrevHandler: exports.abbrevHandler,\n })\n}\n\nfunction clean (data, types, typeDefs = exports.typeDefs) {\n return lib.clean(data, {\n types: types || {},\n typeDefs,\n invalidHandler: exports.invalidHandler,\n unknownHandler: exports.unknownHandler,\n abbrevHandler: exports.abbrevHandler,\n })\n}\n","const parse = val => {\n // this is run via nopt and parse field where everything is\n // converted to a string first, ignoring coverage for now\n // instead of figuring out what is happening under the hood in nopt\n // istanbul ignore else\n if (typeof val === 'string') {\n if (/^0o?[0-7]+$/.test(val)) {\n return parseInt(val.replace(/^0o?/, ''), 8)\n } else if (/^[1-9][0-9]*$/.test(val)) {\n return parseInt(val, 10)\n } else {\n throw new Error(`invalid umask value: ${val}`)\n }\n } else {\n if (typeof val !== 'number') {\n throw new Error(`invalid umask value: ${val}`)\n }\n val = Math.floor(val)\n if (val < 0 || val > 511) {\n throw new Error(`invalid umask value: ${val}`)\n }\n return val\n }\n}\n\nconst validate = (data, k, val) => {\n try {\n data[k] = parse(val)\n return true\n } catch (er) {\n return false\n }\n}\n\nmodule.exports = { parse, validate }\n","const nopt = require('nopt')\n\nconst { validate: validateUmask } = require('./umask.js')\n\nclass Umask {}\nclass Semver {}\nconst semverValid = require('semver/functions/valid')\nconst validateSemver = (data, k, val) => {\n const valid = semverValid(val)\n if (!valid) {\n return false\n }\n data[k] = valid\n}\n\nconst noptValidatePath = nopt.typeDefs.path.validate\nconst validatePath = (data, k, val) => {\n if (typeof val !== 'string') {\n return false\n }\n return noptValidatePath(data, k, val)\n}\n\n// add descriptions so we can validate more usefully\nmodule.exports = {\n ...nopt.typeDefs,\n semver: {\n type: Semver,\n validate: validateSemver,\n description: 'full valid SemVer string',\n },\n Umask: {\n type: Umask,\n validate: validateUmask,\n description: 'octal number in range 0o000..0o777 (0..511)',\n },\n url: {\n ...nopt.typeDefs.url,\n description: 'full url with \"http://\"',\n },\n path: {\n ...nopt.typeDefs.path,\n validate: validatePath,\n description: 'valid filesystem path',\n },\n Number: {\n ...nopt.typeDefs.Number,\n description: 'numeric value',\n },\n Boolean: {\n ...nopt.typeDefs.Boolean,\n description: 'boolean value (true or false)',\n },\n Date: {\n ...nopt.typeDefs.Date,\n description: 'valid Date string',\n },\n}\n\n// TODO: make nopt less of a global beast so this kludge isn't necessary\nnopt.typeDefs = module.exports\n"],"x_google_ignoreList":[0,1,2,3,4,5],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { i as Cmd, t as handler } from "./runtime-
|
|
3
|
-
import { n as probe, r as read, t as fetchable } from "./entries-
|
|
1
|
+
import { W as update, a as reportFailure, f as writeOut, z as definition } from "./error-BrbT9_4g.mjs";
|
|
2
|
+
import { i as Cmd, t as handler } from "./runtime-Dl621FOp.mjs";
|
|
3
|
+
import { n as probe, r as read, t as fetchable } from "./entries-Gfsq7U4P.mjs";
|
|
4
4
|
import { Effect } from "effect";
|
|
5
5
|
//#region src/cli/cmd/handlers/plugin/update.ts
|
|
6
6
|
/**
|
|
@@ -41,4 +41,4 @@ var update_default = handler(Cmd.commands.plugin.commands.update, Effect.fn("CLI
|
|
|
41
41
|
//#endregion
|
|
42
42
|
export { update_default as default };
|
|
43
43
|
|
|
44
|
-
//# sourceMappingURL=update-
|
|
44
|
+
//# sourceMappingURL=update-CJrBbHwq.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-
|
|
1
|
+
{"version":3,"file":"update-CJrBbHwq.mjs","names":["Runtime.handler","Plugin.update","Plugin.definition"],"sources":["../../src/cli/cmd/handlers/plugin/update.ts"],"sourcesContent":["import { Plugin } from \"@codeworksh/harness/effect\";\nimport { Effect } from \"effect\";\nimport { Runtime } from \"../../../../framework/runtime.ts\";\nimport { reportFailure } from \"../../../error.ts\";\nimport { writeOut } from \"../../../output.ts\";\nimport { Cmd } from \"../../cmd.ts\";\nimport { fetchable, probe, read } from \"./entries.ts\";\n\n/**\n * Take whatever `check` found.\n *\n * Only a plugin that is **already installed** is refreshed: \"not installed\" is not \"outdated\", and\n * `plugin install` is the verb for that. Each refresh publishes a new generation, which a running\n * session picks up at its next exchange -- so this command never has to reach into a server.\n */\nexport default Runtime.handler(\n\tCmd.commands.plugin.commands.update,\n\tEffect.fn(\"CLI.plugin.update\")(function* () {\n\t\tconst program = Effect.gen(function* () {\n\t\t\tconst shared = yield* Cmd.spec;\n\t\t\tconst { entries, cache } = yield* read(shared);\n\n\t\t\tlet updated = 0;\n\t\t\tlet failed = 0;\n\t\t\tfor (const entry of entries) {\n\t\t\t\tconst target = fetchable(entry.target);\n\t\t\t\t// A local plugin has no revision to compare and is never copied into the store.\n\t\t\t\tif (target === undefined) continue;\n\n\t\t\t\tconst result = yield* Plugin.update(target, cache, {\n\t\t\t\t\tprobe: probe(cache, entry.from),\n\t\t\t\t\tfrom: entry.from,\n\t\t\t\t\t// Validated while staged, so a refresh that fetches something broken leaves\n\t\t\t\t\t// the generation already in use as the answer. Preserve the loader's reason:\n\t\t\t\t\t// an import failure or invalid definition is not a missing entrypoint.\n\t\t\t\t\tvalidate: (fetched) => Plugin.definition(fetched.entrypoint, entry.reference).pipe(Effect.asVoid),\n\t\t\t\t}).pipe(Effect.result);\n\n\t\t\t\tif (result._tag === \"Failure\") {\n\t\t\t\t\tfailed += 1;\n\t\t\t\t\tyield* writeOut(`${entry.reference} error[${result.failure.reason}]: ${result.failure.message}\\n`);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tif (result.success._tag === \"updated\") {\n\t\t\t\t\tupdated += 1;\n\t\t\t\t\tyield* writeOut(`Updated ${entry.reference} to ${result.success.entry.revision ?? \"a new revision\"}\\n`);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tyield* writeOut(updated === 0 ? \"Nothing to update.\\n\" : `${updated} updated.\\n`);\n\t\t\tif (failed > 0) process.exitCode = 1;\n\t\t});\n\n\t\treturn yield* program.pipe(Effect.catch(reportFailure));\n\t}),\n);\n"],"mappings":";;;;;;;;;;;;AAeA,IAAA,iBAAeA,QACd,IAAI,SAAS,OAAO,SAAS,QAC7B,OAAO,GAAG,mBAAmB,CAAC,CAAC,aAAa;CAoC3C,OAAO,OAnCS,OAAO,IAAI,aAAa;EACvC,MAAM,SAAS,OAAO,IAAI;EAC1B,MAAM,EAAE,SAAS,UAAU,OAAO,KAAK,MAAM;EAE7C,IAAI,UAAU;EACd,IAAI,SAAS;EACb,KAAK,MAAM,SAAS,SAAS;GAC5B,MAAM,SAAS,UAAU,MAAM,MAAM;GAErC,IAAI,WAAW,KAAA,GAAW;GAE1B,MAAM,SAAS,OAAOC,OAAc,QAAQ,OAAO;IAClD,OAAO,MAAM,OAAO,MAAM,IAAI;IAC9B,MAAM,MAAM;IAIZ,WAAW,YAAYC,WAAkB,QAAQ,YAAY,MAAM,SAAS,CAAC,CAAC,KAAK,OAAO,MAAM;GACjG,CAAC,CAAC,CAAC,KAAK,OAAO,MAAM;GAErB,IAAI,OAAO,SAAS,WAAW;IAC9B,UAAU;IACV,OAAO,SAAS,GAAG,MAAM,UAAU,UAAU,OAAO,QAAQ,OAAO,KAAK,OAAO,QAAQ,QAAQ,GAAG;IAClG;GACD;GACA,IAAI,OAAO,QAAQ,SAAS,WAAW;IACtC,WAAW;IACX,OAAO,SAAS,WAAW,MAAM,UAAU,MAAM,OAAO,QAAQ,MAAM,YAAY,iBAAiB,GAAG;GACvG;EACD;EAEA,OAAO,SAAS,YAAY,IAAI,yBAAyB,GAAG,QAAQ,YAAY;EAChF,IAAI,SAAS,GAAG,QAAQ,WAAW;CACpC,CAEoB,CAAC,CAAC,KAAK,OAAO,MAAM,aAAa,CAAC;AACvD,CAAC,CACF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Ct as __commonJSMin } from "./error-BrbT9_4g.mjs";
|
|
2
2
|
//#region ../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/debug.js
|
|
3
3
|
var require_debug = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
4
4
|
module.exports = typeof process === "object" && process.env && process.env.NODE_DEBUG && /\bsemver\b/i.test(process.env.NODE_DEBUG) ? (...args) => console.error("SEMVER", ...args) : () => {};
|
|
@@ -351,4 +351,4 @@ var require_valid = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
351
351
|
//#endregion
|
|
352
352
|
export { require_parse_options as a, require_debug as c, require_identifiers as i, require_parse as n, require_re as o, require_semver as r, require_constants as s, require_valid as t };
|
|
353
353
|
|
|
354
|
-
//# sourceMappingURL=valid-
|
|
354
|
+
//# sourceMappingURL=valid-BWgW_TUl.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"valid-BXe5q7ao.mjs","names":[],"sources":["../../../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/debug.js","../../../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/constants.js","../../../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/re.js","../../../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/parse-options.js","../../../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/identifiers.js","../../../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/classes/semver.js","../../../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/parse.js","../../../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/valid.js"],"sourcesContent":["'use strict'\n\nconst debug = (\n typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)\n) ? (...args) => console.error('SEMVER', ...args)\n : () => {}\n\nmodule.exports = debug\n","'use strict'\n\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nconst SEMVER_SPEC_VERSION = '2.0.0'\n\nconst MAX_LENGTH = 256\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n/* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nconst MAX_SAFE_COMPONENT_LENGTH = 16\n\n// Max safe length for a build identifier. The max length minus 6 characters for\n// the shortest version with a build 0.0.0+BUILD.\nconst MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6\n\nconst RELEASE_TYPES = [\n 'major',\n 'premajor',\n 'minor',\n 'preminor',\n 'patch',\n 'prepatch',\n 'prerelease',\n]\n\nmodule.exports = {\n MAX_LENGTH,\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_SAFE_INTEGER,\n RELEASE_TYPES,\n SEMVER_SPEC_VERSION,\n FLAG_INCLUDE_PRERELEASE: 0b001,\n FLAG_LOOSE: 0b010,\n}\n","'use strict'\n\nconst {\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_LENGTH,\n} = require('./constants')\nconst debug = require('./debug')\nexports = module.exports = {}\n\n// The actual regexps go on exports.re\nconst re = exports.re = []\nconst safeRe = exports.safeRe = []\nconst src = exports.src = []\nconst safeSrc = exports.safeSrc = []\nconst t = exports.t = {}\nlet R = 0\n\nconst LETTERDASHNUMBER = '[a-zA-Z0-9-]'\n\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nconst safeRegexReplacements = [\n ['\\\\s', 1],\n ['\\\\d', MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],\n]\n\nconst makeSafeRegex = (value) => {\n for (const [token, max] of safeRegexReplacements) {\n value = value\n .split(`${token}*`).join(`${token}{0,${max}}`)\n .split(`${token}+`).join(`${token}{1,${max}}`)\n }\n return value\n}\n\nconst createToken = (name, value, isGlobal) => {\n const safe = makeSafeRegex(value)\n const index = R++\n debug(name, index, value)\n t[name] = index\n src[index] = value\n safeSrc[index] = safe\n re[index] = new RegExp(value, isGlobal ? 'g' : undefined)\n safeRe[index] = new RegExp(safe, isGlobal ? 'g' : undefined)\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ncreateToken('NUMERICIDENTIFIER', '0|[1-9]\\\\d*')\ncreateToken('NUMERICIDENTIFIERLOOSE', '\\\\d+')\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ncreateToken('NONNUMERICIDENTIFIER', `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`)\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ncreateToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n// Non-numeric identifiers include numeric identifiers but can be longer.\n// Therefore non-numeric identifiers must go first.\n\ncreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NONNUMERICIDENTIFIER]\n}|${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NONNUMERICIDENTIFIER]\n}|${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ncreateToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`)\n\ncreateToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ncreateToken('BUILDIDENTIFIER', `${LETTERDASHNUMBER}+`)\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ncreateToken('BUILD', `(?:\\\\+(${src[t.BUILDIDENTIFIER]\n}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`)\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ncreateToken('FULLPLAIN', `v?${src[t.MAINVERSION]\n}${src[t.PRERELEASE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('FULL', `^${src[t.FULLPLAIN]}$`)\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ncreateToken('LOOSEPLAIN', `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]\n}${src[t.PRERELEASELOOSE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)\n\ncreateToken('GTLT', '((?:<|>)?=?)')\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifier, meaning \"any version\"\n// Only the first item is strictly required.\ncreateToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`)\ncreateToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`)\n\ncreateToken('XRANGEPLAIN', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:${src[t.PRERELEASE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGEPLAINLOOSE', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:${src[t.PRERELEASELOOSE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`)\ncreateToken('XRANGELOOSE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ncreateToken('COERCEPLAIN', `${'(^|[^\\\\d])' +\n '(\\\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`)\ncreateToken('COERCE', `${src[t.COERCEPLAIN]}(?:$|[^\\\\d])`)\ncreateToken('COERCEFULL', src[t.COERCEPLAIN] +\n `(?:${src[t.PRERELEASE]})?` +\n `(?:${src[t.BUILD]})?` +\n `(?:$|[^\\\\d])`)\ncreateToken('COERCERTL', src[t.COERCE], true)\ncreateToken('COERCERTLFULL', src[t.COERCEFULL], true)\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ncreateToken('LONETILDE', '(?:~>?)')\n\ncreateToken('TILDETRIM', `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true)\nexports.tildeTrimReplace = '$1~'\n\ncreateToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ncreateToken('LONECARET', '(?:\\\\^)')\n\ncreateToken('CARETTRIM', `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true)\nexports.caretTrimReplace = '$1^'\n\ncreateToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ncreateToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`)\ncreateToken('COMPARATOR', `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`)\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ncreateToken('COMPARATORTRIM', `(\\\\s*)${src[t.GTLT]\n}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)\nexports.comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ncreateToken('HYPHENRANGE', `^\\\\s*(${src[t.XRANGEPLAIN]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAIN]})` +\n `\\\\s*$`)\n\ncreateToken('HYPHENRANGELOOSE', `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s*$`)\n\n// Star ranges basically just allow anything at all.\ncreateToken('STAR', '(<|>)?=?\\\\s*\\\\*')\n// >=0.0.0 is like a star\ncreateToken('GTE0', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$')\ncreateToken('GTE0PRE', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$')\n","'use strict'\n\n// parse out just the options we care about\nconst looseOption = Object.freeze({ loose: true })\nconst emptyOpts = Object.freeze({ })\nconst parseOptions = options => {\n if (!options) {\n return emptyOpts\n }\n\n if (typeof options !== 'object') {\n return looseOption\n }\n\n return options\n}\nmodule.exports = parseOptions\n","'use strict'\n\nconst numeric = /^[0-9]+$/\nconst compareIdentifiers = (a, b) => {\n if (typeof a === 'number' && typeof b === 'number') {\n return a === b ? 0 : a < b ? -1 : 1\n }\n\n const anum = numeric.test(a)\n const bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nconst rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)\n\nmodule.exports = {\n compareIdentifiers,\n rcompareIdentifiers,\n}\n","'use strict'\n\nconst debug = require('../internal/debug')\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants')\nconst { safeRe: re, t } = require('../internal/re')\n\nconst parseOptions = require('../internal/parse-options')\nconst { compareIdentifiers } = require('../internal/identifiers')\n\nconst isPrereleaseIdentifier = (prerelease, identifier) => {\n const identifiers = identifier.split('.')\n if (identifiers.length > prerelease.length) {\n return false\n }\n\n for (let i = 0; i < identifiers.length; i++) {\n if (compareIdentifiers(prerelease[i], identifiers[i]) !== 0) {\n return false\n }\n }\n\n return true\n}\n\nclass SemVer {\n constructor (version, options) {\n options = parseOptions(options)\n\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose &&\n version.includePrerelease === !!options.includePrerelease) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof version}\".`)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n )\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n // this isn't actually relevant for versions, but keep it so that we\n // don't run into trouble passing this.options around.\n this.includePrerelease = !!options.includePrerelease\n\n const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n if (!m) {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n }\n\n format () {\n this.version = `${this.major}.${this.minor}.${this.patch}`\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join('.')}`\n }\n return this.version\n }\n\n toString () {\n return this.version\n }\n\n compare (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n if (typeof other === 'string' && other === this.version) {\n return 0\n }\n other = new SemVer(other, this.options)\n }\n\n if (other.version === this.version) {\n return 0\n }\n\n return this.compareMain(other) || this.comparePre(other)\n }\n\n compareMain (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n if (this.major < other.major) {\n return -1\n }\n if (this.major > other.major) {\n return 1\n }\n if (this.minor < other.minor) {\n return -1\n }\n if (this.minor > other.minor) {\n return 1\n }\n if (this.patch < other.patch) {\n return -1\n }\n if (this.patch > other.patch) {\n return 1\n }\n return 0\n }\n\n comparePre (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n let i = 0\n do {\n const a = this.prerelease[i]\n const b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n compareBuild (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n let i = 0\n do {\n const a = this.build[i]\n const b = other.build[i]\n debug('build compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc (release, identifier, identifierBase) {\n if (release.startsWith('pre')) {\n if (!identifier && identifierBase === false) {\n throw new Error('invalid increment argument: identifier is empty')\n }\n // Avoid an invalid semver results\n if (identifier) {\n const match = `-${identifier}`.match(this.options.loose ? re[t.PRERELEASELOOSE] : re[t.PRERELEASE])\n if (!match || match[1] !== identifier) {\n throw new Error(`invalid identifier: ${identifier}`)\n }\n }\n }\n\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier, identifierBase)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier, identifierBase)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier, identifierBase)\n this.inc('pre', identifier, identifierBase)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier, identifierBase)\n }\n this.inc('pre', identifier, identifierBase)\n break\n case 'release':\n if (this.prerelease.length === 0) {\n throw new Error(`version ${this.raw} is not a prerelease`)\n }\n this.prerelease.length = 0\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (\n this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0\n ) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case 'pre': {\n const base = Number(identifierBase) ? 1 : 0\n\n if (this.prerelease.length === 0) {\n this.prerelease = [base]\n } else {\n let i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n if (identifier === this.prerelease.join('.') && identifierBase === false) {\n throw new Error('invalid increment argument: identifier already exists')\n }\n this.prerelease.push(base)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n let prerelease = [identifier, base]\n if (identifierBase === false) {\n prerelease = [identifier]\n }\n if (isPrereleaseIdentifier(this.prerelease, identifier)) {\n const prereleaseBase = this.prerelease[identifier.split('.').length]\n if (isNaN(prereleaseBase)) {\n this.prerelease = prerelease\n }\n } else {\n this.prerelease = prerelease\n }\n }\n break\n }\n default:\n throw new Error(`invalid increment argument: ${release}`)\n }\n this.raw = this.format()\n if (this.build.length) {\n this.raw += `+${this.build.join('.')}`\n }\n return this\n }\n}\n\nmodule.exports = SemVer\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst parse = (version, options, throwErrors = false) => {\n if (version instanceof SemVer) {\n return version\n }\n try {\n return new SemVer(version, options)\n } catch (er) {\n if (!throwErrors) {\n return null\n }\n throw er\n }\n}\n\nmodule.exports = parse\n","'use strict'\n\nconst parse = require('./parse')\nconst valid = (version, options) => {\n const v = parse(version, options)\n return v ? v.version : null\n}\nmodule.exports = valid\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"valid-BWgW_TUl.mjs","names":[],"sources":["../../../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/debug.js","../../../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/constants.js","../../../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/re.js","../../../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/parse-options.js","../../../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/identifiers.js","../../../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/classes/semver.js","../../../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/parse.js","../../../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/valid.js"],"sourcesContent":["'use strict'\n\nconst debug = (\n typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)\n) ? (...args) => console.error('SEMVER', ...args)\n : () => {}\n\nmodule.exports = debug\n","'use strict'\n\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nconst SEMVER_SPEC_VERSION = '2.0.0'\n\nconst MAX_LENGTH = 256\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n/* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nconst MAX_SAFE_COMPONENT_LENGTH = 16\n\n// Max safe length for a build identifier. The max length minus 6 characters for\n// the shortest version with a build 0.0.0+BUILD.\nconst MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6\n\nconst RELEASE_TYPES = [\n 'major',\n 'premajor',\n 'minor',\n 'preminor',\n 'patch',\n 'prepatch',\n 'prerelease',\n]\n\nmodule.exports = {\n MAX_LENGTH,\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_SAFE_INTEGER,\n RELEASE_TYPES,\n SEMVER_SPEC_VERSION,\n FLAG_INCLUDE_PRERELEASE: 0b001,\n FLAG_LOOSE: 0b010,\n}\n","'use strict'\n\nconst {\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_LENGTH,\n} = require('./constants')\nconst debug = require('./debug')\nexports = module.exports = {}\n\n// The actual regexps go on exports.re\nconst re = exports.re = []\nconst safeRe = exports.safeRe = []\nconst src = exports.src = []\nconst safeSrc = exports.safeSrc = []\nconst t = exports.t = {}\nlet R = 0\n\nconst LETTERDASHNUMBER = '[a-zA-Z0-9-]'\n\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nconst safeRegexReplacements = [\n ['\\\\s', 1],\n ['\\\\d', MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],\n]\n\nconst makeSafeRegex = (value) => {\n for (const [token, max] of safeRegexReplacements) {\n value = value\n .split(`${token}*`).join(`${token}{0,${max}}`)\n .split(`${token}+`).join(`${token}{1,${max}}`)\n }\n return value\n}\n\nconst createToken = (name, value, isGlobal) => {\n const safe = makeSafeRegex(value)\n const index = R++\n debug(name, index, value)\n t[name] = index\n src[index] = value\n safeSrc[index] = safe\n re[index] = new RegExp(value, isGlobal ? 'g' : undefined)\n safeRe[index] = new RegExp(safe, isGlobal ? 'g' : undefined)\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ncreateToken('NUMERICIDENTIFIER', '0|[1-9]\\\\d*')\ncreateToken('NUMERICIDENTIFIERLOOSE', '\\\\d+')\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ncreateToken('NONNUMERICIDENTIFIER', `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`)\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ncreateToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n// Non-numeric identifiers include numeric identifiers but can be longer.\n// Therefore non-numeric identifiers must go first.\n\ncreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NONNUMERICIDENTIFIER]\n}|${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NONNUMERICIDENTIFIER]\n}|${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ncreateToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`)\n\ncreateToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ncreateToken('BUILDIDENTIFIER', `${LETTERDASHNUMBER}+`)\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ncreateToken('BUILD', `(?:\\\\+(${src[t.BUILDIDENTIFIER]\n}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`)\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ncreateToken('FULLPLAIN', `v?${src[t.MAINVERSION]\n}${src[t.PRERELEASE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('FULL', `^${src[t.FULLPLAIN]}$`)\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ncreateToken('LOOSEPLAIN', `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]\n}${src[t.PRERELEASELOOSE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)\n\ncreateToken('GTLT', '((?:<|>)?=?)')\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifier, meaning \"any version\"\n// Only the first item is strictly required.\ncreateToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`)\ncreateToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`)\n\ncreateToken('XRANGEPLAIN', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:${src[t.PRERELEASE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGEPLAINLOOSE', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:${src[t.PRERELEASELOOSE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`)\ncreateToken('XRANGELOOSE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ncreateToken('COERCEPLAIN', `${'(^|[^\\\\d])' +\n '(\\\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`)\ncreateToken('COERCE', `${src[t.COERCEPLAIN]}(?:$|[^\\\\d])`)\ncreateToken('COERCEFULL', src[t.COERCEPLAIN] +\n `(?:${src[t.PRERELEASE]})?` +\n `(?:${src[t.BUILD]})?` +\n `(?:$|[^\\\\d])`)\ncreateToken('COERCERTL', src[t.COERCE], true)\ncreateToken('COERCERTLFULL', src[t.COERCEFULL], true)\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ncreateToken('LONETILDE', '(?:~>?)')\n\ncreateToken('TILDETRIM', `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true)\nexports.tildeTrimReplace = '$1~'\n\ncreateToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ncreateToken('LONECARET', '(?:\\\\^)')\n\ncreateToken('CARETTRIM', `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true)\nexports.caretTrimReplace = '$1^'\n\ncreateToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ncreateToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`)\ncreateToken('COMPARATOR', `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`)\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ncreateToken('COMPARATORTRIM', `(\\\\s*)${src[t.GTLT]\n}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)\nexports.comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ncreateToken('HYPHENRANGE', `^\\\\s*(${src[t.XRANGEPLAIN]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAIN]})` +\n `\\\\s*$`)\n\ncreateToken('HYPHENRANGELOOSE', `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s*$`)\n\n// Star ranges basically just allow anything at all.\ncreateToken('STAR', '(<|>)?=?\\\\s*\\\\*')\n// >=0.0.0 is like a star\ncreateToken('GTE0', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$')\ncreateToken('GTE0PRE', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$')\n","'use strict'\n\n// parse out just the options we care about\nconst looseOption = Object.freeze({ loose: true })\nconst emptyOpts = Object.freeze({ })\nconst parseOptions = options => {\n if (!options) {\n return emptyOpts\n }\n\n if (typeof options !== 'object') {\n return looseOption\n }\n\n return options\n}\nmodule.exports = parseOptions\n","'use strict'\n\nconst numeric = /^[0-9]+$/\nconst compareIdentifiers = (a, b) => {\n if (typeof a === 'number' && typeof b === 'number') {\n return a === b ? 0 : a < b ? -1 : 1\n }\n\n const anum = numeric.test(a)\n const bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nconst rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)\n\nmodule.exports = {\n compareIdentifiers,\n rcompareIdentifiers,\n}\n","'use strict'\n\nconst debug = require('../internal/debug')\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants')\nconst { safeRe: re, t } = require('../internal/re')\n\nconst parseOptions = require('../internal/parse-options')\nconst { compareIdentifiers } = require('../internal/identifiers')\n\nconst isPrereleaseIdentifier = (prerelease, identifier) => {\n const identifiers = identifier.split('.')\n if (identifiers.length > prerelease.length) {\n return false\n }\n\n for (let i = 0; i < identifiers.length; i++) {\n if (compareIdentifiers(prerelease[i], identifiers[i]) !== 0) {\n return false\n }\n }\n\n return true\n}\n\nclass SemVer {\n constructor (version, options) {\n options = parseOptions(options)\n\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose &&\n version.includePrerelease === !!options.includePrerelease) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof version}\".`)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n )\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n // this isn't actually relevant for versions, but keep it so that we\n // don't run into trouble passing this.options around.\n this.includePrerelease = !!options.includePrerelease\n\n const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n if (!m) {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n }\n\n format () {\n this.version = `${this.major}.${this.minor}.${this.patch}`\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join('.')}`\n }\n return this.version\n }\n\n toString () {\n return this.version\n }\n\n compare (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n if (typeof other === 'string' && other === this.version) {\n return 0\n }\n other = new SemVer(other, this.options)\n }\n\n if (other.version === this.version) {\n return 0\n }\n\n return this.compareMain(other) || this.comparePre(other)\n }\n\n compareMain (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n if (this.major < other.major) {\n return -1\n }\n if (this.major > other.major) {\n return 1\n }\n if (this.minor < other.minor) {\n return -1\n }\n if (this.minor > other.minor) {\n return 1\n }\n if (this.patch < other.patch) {\n return -1\n }\n if (this.patch > other.patch) {\n return 1\n }\n return 0\n }\n\n comparePre (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n let i = 0\n do {\n const a = this.prerelease[i]\n const b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n compareBuild (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n let i = 0\n do {\n const a = this.build[i]\n const b = other.build[i]\n debug('build compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc (release, identifier, identifierBase) {\n if (release.startsWith('pre')) {\n if (!identifier && identifierBase === false) {\n throw new Error('invalid increment argument: identifier is empty')\n }\n // Avoid an invalid semver results\n if (identifier) {\n const match = `-${identifier}`.match(this.options.loose ? re[t.PRERELEASELOOSE] : re[t.PRERELEASE])\n if (!match || match[1] !== identifier) {\n throw new Error(`invalid identifier: ${identifier}`)\n }\n }\n }\n\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier, identifierBase)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier, identifierBase)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier, identifierBase)\n this.inc('pre', identifier, identifierBase)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier, identifierBase)\n }\n this.inc('pre', identifier, identifierBase)\n break\n case 'release':\n if (this.prerelease.length === 0) {\n throw new Error(`version ${this.raw} is not a prerelease`)\n }\n this.prerelease.length = 0\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (\n this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0\n ) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case 'pre': {\n const base = Number(identifierBase) ? 1 : 0\n\n if (this.prerelease.length === 0) {\n this.prerelease = [base]\n } else {\n let i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n if (identifier === this.prerelease.join('.') && identifierBase === false) {\n throw new Error('invalid increment argument: identifier already exists')\n }\n this.prerelease.push(base)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n let prerelease = [identifier, base]\n if (identifierBase === false) {\n prerelease = [identifier]\n }\n if (isPrereleaseIdentifier(this.prerelease, identifier)) {\n const prereleaseBase = this.prerelease[identifier.split('.').length]\n if (isNaN(prereleaseBase)) {\n this.prerelease = prerelease\n }\n } else {\n this.prerelease = prerelease\n }\n }\n break\n }\n default:\n throw new Error(`invalid increment argument: ${release}`)\n }\n this.raw = this.format()\n if (this.build.length) {\n this.raw += `+${this.build.join('.')}`\n }\n return this\n }\n}\n\nmodule.exports = SemVer\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst parse = (version, options, throwErrors = false) => {\n if (version instanceof SemVer) {\n return version\n }\n try {\n return new SemVer(version, options)\n } catch (er) {\n if (!throwErrors) {\n return null\n }\n throw er\n }\n}\n\nmodule.exports = parse\n","'use strict'\n\nconst parse = require('./parse')\nconst valid = (version, options) => {\n const v = parse(version, options)\n return v ? v.version : null\n}\nmodule.exports = valid\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7],"mappings":";;;CAUA,OAAO,UAPL,OAAO,YAAY,YACnB,QAAQ,OACR,QAAQ,IAAI,cACZ,cAAc,KAAK,QAAQ,IAAI,UAAU,KACtC,GAAG,SAAS,QAAQ,MAAM,UAAU,GAAG,IAAI,UACtC,CAAC;;;;;CCmBX,OAAO,UAAU;EACf;EACA;EACA;EACA,kBAxBuB,OAAO;6BACL;EAwBzB;GAdA;GACA;GACA;GACA;GACA;GACA;GACA;EAQA;EACA;EACA,yBAAyB;EACzB,YAAY;CACd;;;;;CClCA,MAAM,EACJ,2BACA,uBACA,eAAA,kBAAA;CAEF,MAAM,QAAA,cAAA;CACN,UAAU,OAAO,UAAU,CAAC;CAG5B,MAAM,KAAK,QAAQ,KAAK,CAAC;CACzB,MAAM,SAAS,QAAQ,SAAS,CAAC;CACjC,MAAM,MAAM,QAAQ,MAAM,CAAC;CAC3B,MAAM,UAAU,QAAQ,UAAU,CAAC;CACnC,MAAM,IAAI,QAAQ,IAAI,CAAC;CACvB,IAAI,IAAI;CAER,MAAM,mBAAmB;CAQzB,MAAM,wBAAwB;EAC5B,CAAC,OAAO,CAAC;EACT,CAAC,OAAO,UAAU;EAClB,CAAC,kBAAkB,qBAAqB;CAC1C;CAEA,MAAM,iBAAiB,UAAU;EAC/B,KAAK,MAAM,CAAC,OAAO,QAAQ,uBACzB,QAAQ,MACL,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC,KAAK,GAAG,MAAM,KAAK,IAAI,EAAE,CAAC,CAC7C,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC,KAAK,GAAG,MAAM,KAAK,IAAI,EAAE;EAEjD,OAAO;CACT;CAEA,MAAM,eAAe,MAAM,OAAO,aAAa;EAC7C,MAAM,OAAO,cAAc,KAAK;EAChC,MAAM,QAAQ;EACd,MAAM,MAAM,OAAO,KAAK;EACxB,EAAE,QAAQ;EACV,IAAI,SAAS;EACb,QAAQ,SAAS;EACjB,GAAG,SAAS,IAAI,OAAO,OAAO,WAAW,MAAM,KAAA,CAAS;EACxD,OAAO,SAAS,IAAI,OAAO,MAAM,WAAW,MAAM,KAAA,CAAS;CAC7D;CAQA,YAAY,qBAAqB,aAAa;CAC9C,YAAY,0BAA0B,MAAM;CAM5C,YAAY,wBAAwB,gBAAgB,iBAAiB,EAAE;CAKvE,YAAY,eAAe,IAAI,IAAI,EAAE,mBAAmB,OACjC,IAAI,EAAE,mBAAmB,OACzB,IAAI,EAAE,mBAAmB,EAAE;CAElD,YAAY,oBAAoB,IAAI,IAAI,EAAE,wBAAwB,OACtC,IAAI,EAAE,wBAAwB,OAC9B,IAAI,EAAE,wBAAwB,EAAE;CAO5D,YAAY,wBAAwB,MAAM,IAAI,EAAE,sBAC/C,GAAG,IAAI,EAAE,mBAAmB,EAAE;CAE/B,YAAY,6BAA6B,MAAM,IAAI,EAAE,sBACpD,GAAG,IAAI,EAAE,wBAAwB,EAAE;CAMpC,YAAY,cAAc,QAAQ,IAAI,EAAE,sBACvC,QAAQ,IAAI,EAAE,sBAAsB,KAAK;CAE1C,YAAY,mBAAmB,SAAS,IAAI,EAAE,2BAC7C,QAAQ,IAAI,EAAE,2BAA2B,KAAK;CAK/C,YAAY,mBAAmB,GAAG,iBAAiB,EAAE;CAMrD,YAAY,SAAS,UAAU,IAAI,EAAE,iBACpC,QAAQ,IAAI,EAAE,iBAAiB,KAAK;CAWrC,YAAY,aAAa,KAAK,IAAI,EAAE,eACjC,IAAI,EAAE,YAAY,GACnB,IAAI,EAAE,OAAO,EAAE;CAEjB,YAAY,QAAQ,IAAI,IAAI,EAAE,WAAW,EAAE;CAK3C,YAAY,cAAc,WAAW,IAAI,EAAE,oBACxC,IAAI,EAAE,iBAAiB,GACxB,IAAI,EAAE,OAAO,EAAE;CAEjB,YAAY,SAAS,IAAI,IAAI,EAAE,YAAY,EAAE;CAE7C,YAAY,QAAQ,cAAc;CAKlC,YAAY,yBAAyB,GAAG,IAAI,EAAE,wBAAwB,SAAS;CAC/E,YAAY,oBAAoB,GAAG,IAAI,EAAE,mBAAmB,SAAS;CAErE,YAAY,eAAe,YAAY,IAAI,EAAE,kBAAkB,UAClC,IAAI,EAAE,kBAAkB,UACxB,IAAI,EAAE,kBAAkB,MAC5B,IAAI,EAAE,YAAY,IACtB,IAAI,EAAE,OAAO,MACT;CAEzB,YAAY,oBAAoB,YAAY,IAAI,EAAE,uBAAuB,UACvC,IAAI,EAAE,uBAAuB,UAC7B,IAAI,EAAE,uBAAuB,MACjC,IAAI,EAAE,iBAAiB,IAC3B,IAAI,EAAE,OAAO,MACT;CAE9B,YAAY,UAAU,IAAI,IAAI,EAAE,MAAM,MAAM,IAAI,EAAE,aAAa,EAAE;CACjE,YAAY,eAAe,IAAI,IAAI,EAAE,MAAM,MAAM,IAAI,EAAE,kBAAkB,EAAE;CAI3E,YAAY,eAAe,oBACD,0BAA0B,iBACtB,0BAA0B,mBAC1B,0BAA0B,KAAK;CAC7D,YAAY,UAAU,GAAG,IAAI,EAAE,aAAa,aAAa;CACzD,YAAY,cAAc,IAAI,EAAE,eAClB,MAAM,IAAI,EAAE,YAAY,OAClB,IAAI,EAAE,OAAO,eACL;CAC5B,YAAY,aAAa,IAAI,EAAE,SAAS,IAAI;CAC5C,YAAY,iBAAiB,IAAI,EAAE,aAAa,IAAI;CAIpD,YAAY,aAAa,SAAS;CAElC,YAAY,aAAa,SAAS,IAAI,EAAE,WAAW,OAAO,IAAI;CAC9D,QAAQ,mBAAmB;CAE3B,YAAY,SAAS,IAAI,IAAI,EAAE,aAAa,IAAI,EAAE,aAAa,EAAE;CACjE,YAAY,cAAc,IAAI,IAAI,EAAE,aAAa,IAAI,EAAE,kBAAkB,EAAE;CAI3E,YAAY,aAAa,SAAS;CAElC,YAAY,aAAa,SAAS,IAAI,EAAE,WAAW,OAAO,IAAI;CAC9D,QAAQ,mBAAmB;CAE3B,YAAY,SAAS,IAAI,IAAI,EAAE,aAAa,IAAI,EAAE,aAAa,EAAE;CACjE,YAAY,cAAc,IAAI,IAAI,EAAE,aAAa,IAAI,EAAE,kBAAkB,EAAE;CAG3E,YAAY,mBAAmB,IAAI,IAAI,EAAE,MAAM,OAAO,IAAI,EAAE,YAAY,MAAM;CAC9E,YAAY,cAAc,IAAI,IAAI,EAAE,MAAM,OAAO,IAAI,EAAE,WAAW,MAAM;CAIxE,YAAY,kBAAkB,SAAS,IAAI,EAAE,MAC5C,OAAO,IAAI,EAAE,YAAY,GAAG,IAAI,EAAE,aAAa,IAAI,IAAI;CACxD,QAAQ,wBAAwB;CAMhC,YAAY,eAAe,SAAS,IAAI,EAAE,aAAa,aAEhC,IAAI,EAAE,aAAa,OAChB;CAE1B,YAAY,oBAAoB,SAAS,IAAI,EAAE,kBAAkB,aAErC,IAAI,EAAE,kBAAkB,OACrB;CAG/B,YAAY,QAAQ,iBAAiB;CAErC,YAAY,QAAQ,2BAA2B;CAC/C,YAAY,WAAW,6BAA6B;;;;;CC3NpD,MAAM,cAAc,OAAO,OAAO,EAAE,OAAO,KAAK,CAAC;CACjD,MAAM,YAAY,OAAO,OAAO,CAAE,CAAC;CACnC,MAAM,gBAAe,YAAW;EAC9B,IAAI,CAAC,SACH,OAAO;EAGT,IAAI,OAAO,YAAY,UACrB,OAAO;EAGT,OAAO;CACT;CACA,OAAO,UAAU;;;;;CCdjB,MAAM,UAAU;CAChB,MAAM,sBAAsB,GAAG,MAAM;EACnC,IAAI,OAAO,MAAM,YAAY,OAAO,MAAM,UACxC,OAAO,MAAM,IAAI,IAAI,IAAI,IAAI,KAAK;EAGpC,MAAM,OAAO,QAAQ,KAAK,CAAC;EAC3B,MAAM,OAAO,QAAQ,KAAK,CAAC;EAE3B,IAAI,QAAQ,MAAM;GAChB,IAAI,CAAC;GACL,IAAI,CAAC;EACP;EAEA,OAAO,MAAM,IAAI,IACZ,QAAQ,CAAC,OAAQ,KACjB,QAAQ,CAAC,OAAQ,IAClB,IAAI,IAAI,KACR;CACN;CAEA,MAAM,uBAAuB,GAAG,MAAM,mBAAmB,GAAG,CAAC;CAE7D,OAAO,UAAU;EACf;EACA;CACF;;;;;CC1BA,MAAM,QAAA,cAAA;CACN,MAAM,EAAE,YAAY,qBAAA,kBAAA;CACpB,MAAM,EAAE,QAAQ,IAAI,MAAA,WAAA;CAEpB,MAAM,eAAA,sBAAA;CACN,MAAM,EAAE,uBAAA,oBAAA;CAER,MAAM,0BAA0B,YAAY,eAAe;EACzD,MAAM,cAAc,WAAW,MAAM,GAAG;EACxC,IAAI,YAAY,SAAS,WAAW,QAClC,OAAO;EAGT,KAAK,IAAI,IAAI,GAAG,IAAI,YAAY,QAAQ,KACtC,IAAI,mBAAmB,WAAW,IAAI,YAAY,EAAE,MAAM,GACxD,OAAO;EAIX,OAAO;CACT;CAuUA,OAAO,UAAU,MArUX,OAAO;EACX,YAAa,SAAS,SAAS;GAC7B,UAAU,aAAa,OAAO;GAE9B,IAAI,mBAAmB,QAAQ;IAC7B,IAAI,QAAQ,UAAU,CAAC,CAAC,QAAQ,SAC9B,QAAQ,sBAAsB,CAAC,CAAC,QAAQ,mBACxC,OAAO;SAEP,UAAU,QAAQ;GAEtB,OAAO,IAAI,OAAO,YAAY,UAC5B,MAAM,IAAI,UAAU,gDAAgD,OAAO,QAAQ,GAAG;GAGxF,IAAI,QAAQ,SAAS,YACnB,MAAM,IAAI,UACR,0BAA0B,WAAW,YACvC;GAGF,MAAM,UAAU,SAAS,OAAO;GAChC,KAAK,UAAU;GACf,KAAK,QAAQ,CAAC,CAAC,QAAQ;GAGvB,KAAK,oBAAoB,CAAC,CAAC,QAAQ;GAEnC,MAAM,IAAI,QAAQ,KAAK,CAAC,CAAC,MAAM,QAAQ,QAAQ,GAAG,EAAE,SAAS,GAAG,EAAE,KAAK;GAEvE,IAAI,CAAC,GACH,MAAM,IAAI,UAAU,oBAAoB,SAAS;GAGnD,KAAK,MAAM;GAGX,KAAK,QAAQ,CAAC,EAAE;GAChB,KAAK,QAAQ,CAAC,EAAE;GAChB,KAAK,QAAQ,CAAC,EAAE;GAEhB,IAAI,KAAK,QAAQ,oBAAoB,KAAK,QAAQ,GAChD,MAAM,IAAI,UAAU,uBAAuB;GAG7C,IAAI,KAAK,QAAQ,oBAAoB,KAAK,QAAQ,GAChD,MAAM,IAAI,UAAU,uBAAuB;GAG7C,IAAI,KAAK,QAAQ,oBAAoB,KAAK,QAAQ,GAChD,MAAM,IAAI,UAAU,uBAAuB;GAI7C,IAAI,CAAC,EAAE,IACL,KAAK,aAAa,CAAC;QAEnB,KAAK,aAAa,EAAE,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,OAAO;IAC5C,IAAI,WAAW,KAAK,EAAE,GAAG;KACvB,MAAM,MAAM,CAAC;KACb,IAAI,OAAO,KAAK,MAAM,kBACpB,OAAO;IAEX;IACA,OAAO;GACT,CAAC;GAGH,KAAK,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC;GACvC,KAAK,OAAO;EACd;EAEA,SAAU;GACR,KAAK,UAAU,GAAG,KAAK,MAAM,GAAG,KAAK,MAAM,GAAG,KAAK;GACnD,IAAI,KAAK,WAAW,QAClB,KAAK,WAAW,IAAI,KAAK,WAAW,KAAK,GAAG;GAE9C,OAAO,KAAK;EACd;EAEA,WAAY;GACV,OAAO,KAAK;EACd;EAEA,QAAS,OAAO;GACd,MAAM,kBAAkB,KAAK,SAAS,KAAK,SAAS,KAAK;GACzD,IAAI,EAAE,iBAAiB,SAAS;IAC9B,IAAI,OAAO,UAAU,YAAY,UAAU,KAAK,SAC9C,OAAO;IAET,QAAQ,IAAI,OAAO,OAAO,KAAK,OAAO;GACxC;GAEA,IAAI,MAAM,YAAY,KAAK,SACzB,OAAO;GAGT,OAAO,KAAK,YAAY,KAAK,KAAK,KAAK,WAAW,KAAK;EACzD;EAEA,YAAa,OAAO;GAClB,IAAI,EAAE,iBAAiB,SACrB,QAAQ,IAAI,OAAO,OAAO,KAAK,OAAO;GAGxC,IAAI,KAAK,QAAQ,MAAM,OACrB,OAAO;GAET,IAAI,KAAK,QAAQ,MAAM,OACrB,OAAO;GAET,IAAI,KAAK,QAAQ,MAAM,OACrB,OAAO;GAET,IAAI,KAAK,QAAQ,MAAM,OACrB,OAAO;GAET,IAAI,KAAK,QAAQ,MAAM,OACrB,OAAO;GAET,IAAI,KAAK,QAAQ,MAAM,OACrB,OAAO;GAET,OAAO;EACT;EAEA,WAAY,OAAO;GACjB,IAAI,EAAE,iBAAiB,SACrB,QAAQ,IAAI,OAAO,OAAO,KAAK,OAAO;GAIxC,IAAI,KAAK,WAAW,UAAU,CAAC,MAAM,WAAW,QAC9C,OAAO;QACF,IAAI,CAAC,KAAK,WAAW,UAAU,MAAM,WAAW,QACrD,OAAO;QACF,IAAI,CAAC,KAAK,WAAW,UAAU,CAAC,MAAM,WAAW,QACtD,OAAO;GAGT,IAAI,IAAI;GACR,GAAG;IACD,MAAM,IAAI,KAAK,WAAW;IAC1B,MAAM,IAAI,MAAM,WAAW;IAC3B,MAAM,sBAAsB,GAAG,GAAG,CAAC;IACnC,IAAI,MAAM,KAAA,KAAa,MAAM,KAAA,GAC3B,OAAO;SACF,IAAI,MAAM,KAAA,GACf,OAAO;SACF,IAAI,MAAM,KAAA,GACf,OAAO;SACF,IAAI,MAAM,GACf;SAEA,OAAO,mBAAmB,GAAG,CAAC;GAElC,SAAS,EAAE;EACb;EAEA,aAAc,OAAO;GACnB,IAAI,EAAE,iBAAiB,SACrB,QAAQ,IAAI,OAAO,OAAO,KAAK,OAAO;GAGxC,IAAI,IAAI;GACR,GAAG;IACD,MAAM,IAAI,KAAK,MAAM;IACrB,MAAM,IAAI,MAAM,MAAM;IACtB,MAAM,iBAAiB,GAAG,GAAG,CAAC;IAC9B,IAAI,MAAM,KAAA,KAAa,MAAM,KAAA,GAC3B,OAAO;SACF,IAAI,MAAM,KAAA,GACf,OAAO;SACF,IAAI,MAAM,KAAA,GACf,OAAO;SACF,IAAI,MAAM,GACf;SAEA,OAAO,mBAAmB,GAAG,CAAC;GAElC,SAAS,EAAE;EACb;EAIA,IAAK,SAAS,YAAY,gBAAgB;GACxC,IAAI,QAAQ,WAAW,KAAK,GAAG;IAC7B,IAAI,CAAC,cAAc,mBAAmB,OACpC,MAAM,IAAI,MAAM,iDAAiD;IAGnE,IAAI,YAAY;KACd,MAAM,QAAQ,IAAI,aAAa,MAAM,KAAK,QAAQ,QAAQ,GAAG,EAAE,mBAAmB,GAAG,EAAE,WAAW;KAClG,IAAI,CAAC,SAAS,MAAM,OAAO,YACzB,MAAM,IAAI,MAAM,uBAAuB,YAAY;IAEvD;GACF;GAEA,QAAQ,SAAR;IACE,KAAK;KACH,KAAK,WAAW,SAAS;KACzB,KAAK,QAAQ;KACb,KAAK,QAAQ;KACb,KAAK;KACL,KAAK,IAAI,OAAO,YAAY,cAAc;KAC1C;IACF,KAAK;KACH,KAAK,WAAW,SAAS;KACzB,KAAK,QAAQ;KACb,KAAK;KACL,KAAK,IAAI,OAAO,YAAY,cAAc;KAC1C;IACF,KAAK;KAIH,KAAK,WAAW,SAAS;KACzB,KAAK,IAAI,SAAS,YAAY,cAAc;KAC5C,KAAK,IAAI,OAAO,YAAY,cAAc;KAC1C;IAGF,KAAK;KACH,IAAI,KAAK,WAAW,WAAW,GAC7B,KAAK,IAAI,SAAS,YAAY,cAAc;KAE9C,KAAK,IAAI,OAAO,YAAY,cAAc;KAC1C;IACF,KAAK;KACH,IAAI,KAAK,WAAW,WAAW,GAC7B,MAAM,IAAI,MAAM,WAAW,KAAK,IAAI,qBAAqB;KAE3D,KAAK,WAAW,SAAS;KACzB;IAEF,KAAK;KAKH,IACE,KAAK,UAAU,KACf,KAAK,UAAU,KACf,KAAK,WAAW,WAAW,GAE3B,KAAK;KAEP,KAAK,QAAQ;KACb,KAAK,QAAQ;KACb,KAAK,aAAa,CAAC;KACnB;IACF,KAAK;KAKH,IAAI,KAAK,UAAU,KAAK,KAAK,WAAW,WAAW,GACjD,KAAK;KAEP,KAAK,QAAQ;KACb,KAAK,aAAa,CAAC;KACnB;IACF,KAAK;KAKH,IAAI,KAAK,WAAW,WAAW,GAC7B,KAAK;KAEP,KAAK,aAAa,CAAC;KACnB;IAGF,KAAK,OAAO;KACV,MAAM,OAAO,OAAO,cAAc,IAAI,IAAI;KAE1C,IAAI,KAAK,WAAW,WAAW,GAC7B,KAAK,aAAa,CAAC,IAAI;UAClB;MACL,IAAI,IAAI,KAAK,WAAW;MACxB,OAAO,EAAE,KAAK,GACZ,IAAI,OAAO,KAAK,WAAW,OAAO,UAAU;OAC1C,KAAK,WAAW,EAAE;OAClB,IAAI;MACN;MAEF,IAAI,MAAM,IAAI;OAEZ,IAAI,eAAe,KAAK,WAAW,KAAK,GAAG,KAAK,mBAAmB,OACjE,MAAM,IAAI,MAAM,uDAAuD;OAEzE,KAAK,WAAW,KAAK,IAAI;MAC3B;KACF;KACA,IAAI,YAAY;MAGd,IAAI,aAAa,CAAC,YAAY,IAAI;MAClC,IAAI,mBAAmB,OACrB,aAAa,CAAC,UAAU;MAE1B,IAAI,uBAAuB,KAAK,YAAY,UAAU,GAAG;OACvD,MAAM,iBAAiB,KAAK,WAAW,WAAW,MAAM,GAAG,CAAC,CAAC;OAC7D,IAAI,MAAM,cAAc,GACtB,KAAK,aAAa;MAEtB,OACE,KAAK,aAAa;KAEtB;KACA;IACF;IACA,SACE,MAAM,IAAI,MAAM,+BAA+B,SAAS;GAC5D;GACA,KAAK,MAAM,KAAK,OAAO;GACvB,IAAI,KAAK,MAAM,QACb,KAAK,OAAO,IAAI,KAAK,MAAM,KAAK,GAAG;GAErC,OAAO;EACT;CACF;;;;;CCzVA,MAAM,SAAA,eAAA;CACN,MAAM,SAAS,SAAS,SAAS,cAAc,UAAU;EACvD,IAAI,mBAAmB,QACrB,OAAO;EAET,IAAI;GACF,OAAO,IAAI,OAAO,SAAS,OAAO;EACpC,SAAS,IAAI;GACX,IAAI,CAAC,aACH,OAAO;GAET,MAAM;EACR;CACF;CAEA,OAAO,UAAU;;;;;CCfjB,MAAM,QAAA,cAAA;CACN,MAAM,SAAS,SAAS,YAAY;EAClC,MAAM,IAAI,MAAM,SAAS,OAAO;EAChC,OAAO,IAAI,EAAE,UAAU;CACzB;CACA,OAAO,UAAU"}
|