@gadgetinc/ggt 1.5.1 → 1.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/README.md +17 -0
  2. package/dist/{add-XHMGXWYX.js → add-ERWYPHIS.js} +2 -2
  3. package/dist/{add-XHMGXWYX.js.map → add-ERWYPHIS.js.map} +1 -1
  4. package/dist/{chunk-XOSBJSTW.js → chunk-24OT7GHO.js} +24 -24
  5. package/dist/{chunk-XOSBJSTW.js.map → chunk-24OT7GHO.js.map} +3 -3
  6. package/dist/chunk-DYAWQS24.js +2 -0
  7. package/dist/chunk-DYAWQS24.js.map +7 -0
  8. package/dist/chunk-FILWLZUN.js +18 -0
  9. package/dist/{chunk-KW4V2PJW.js.map → chunk-FILWLZUN.js.map} +4 -4
  10. package/dist/chunk-GCO2TOVZ.js +50 -0
  11. package/dist/chunk-GCO2TOVZ.js.map +7 -0
  12. package/dist/chunk-ILB6CSBN.js +2 -0
  13. package/dist/chunk-ILB6CSBN.js.map +7 -0
  14. package/dist/chunk-JBY5A44K.js +7 -0
  15. package/dist/chunk-JBY5A44K.js.map +7 -0
  16. package/dist/{chunk-HAYHNB7Q.js → chunk-JSGXXXFU.js} +2 -2
  17. package/dist/chunk-KMNQ3LJT.js +12 -0
  18. package/dist/{chunk-5VLIBRPJ.js.map → chunk-KMNQ3LJT.js.map} +4 -4
  19. package/dist/chunk-KS2O3TJA.js +116 -0
  20. package/dist/chunk-KS2O3TJA.js.map +7 -0
  21. package/dist/{chunk-A75V6SNW.js → chunk-OGQ5LIYM.js} +2 -2
  22. package/dist/{chunk-A75V6SNW.js.map → chunk-OGQ5LIYM.js.map} +1 -1
  23. package/dist/chunk-QXWICGG6.js +2 -0
  24. package/dist/{chunk-XE5GH5GR.js.map → chunk-QXWICGG6.js.map} +1 -1
  25. package/dist/{chunk-WQ4SFIE4.js → chunk-UCJDY73U.js} +2 -2
  26. package/dist/{chunk-Z7JIVKEF.js → chunk-WNAYBYSG.js} +2 -2
  27. package/dist/chunk-WZ3Q7TTB.js +2 -0
  28. package/dist/{chunk-U5I2YBJK.js.map → chunk-WZ3Q7TTB.js.map} +2 -2
  29. package/dist/chunk-XGQQOMPO.js +2 -0
  30. package/dist/chunk-XGQQOMPO.js.map +7 -0
  31. package/dist/configure-LD5XC2MR.js +12 -0
  32. package/dist/configure-LD5XC2MR.js.map +7 -0
  33. package/dist/{deploy-QW6KPNDB.js → deploy-7Q7RRIXS.js} +2 -2
  34. package/dist/{deploy-QW6KPNDB.js.map → deploy-7Q7RRIXS.js.map} +1 -1
  35. package/dist/{dev-KUTYS7OU.js → dev-MQ76B6CR.js} +2 -2
  36. package/dist/{dev-KUTYS7OU.js.map → dev-MQ76B6CR.js.map} +1 -1
  37. package/dist/{list-OSMGHITM.js → list-YXCTVLRH.js} +2 -2
  38. package/dist/{list-OSMGHITM.js.map → list-YXCTVLRH.js.map} +1 -1
  39. package/dist/login-XIEASAMY.js +2 -0
  40. package/dist/logout-ACRXIJEF.js +7 -0
  41. package/dist/{logout-XPKPHMRV.js.map → logout-ACRXIJEF.js.map} +1 -1
  42. package/dist/main.js +7 -6
  43. package/dist/main.js.map +3 -3
  44. package/dist/{open-SP5XOXPG.js → open-5CYXKN42.js} +2 -2
  45. package/dist/{open-SP5XOXPG.js.map → open-5CYXKN42.js.map} +1 -1
  46. package/dist/{pull-7JMGBM4A.js → pull-STASHXEL.js} +2 -2
  47. package/dist/{pull-7JMGBM4A.js.map → pull-STASHXEL.js.map} +1 -1
  48. package/dist/push-6WUPKY5W.js +2 -0
  49. package/dist/{status-CJVN2UZ6.js → status-SB22V3DI.js} +2 -2
  50. package/dist/{status-CJVN2UZ6.js.map → status-SB22V3DI.js.map} +1 -1
  51. package/dist/{version-NFFT7WG5.js → version-NZHW3VLV.js} +2 -2
  52. package/dist/whoami-AA3ISE77.js +7 -0
  53. package/dist/{whoami-MU3POPXB.js.map → whoami-AA3ISE77.js.map} +1 -1
  54. package/package.json +1 -1
  55. package/dist/chunk-3B2GY4UU.js +0 -121
  56. package/dist/chunk-3B2GY4UU.js.map +0 -7
  57. package/dist/chunk-5VLIBRPJ.js +0 -12
  58. package/dist/chunk-KW4V2PJW.js +0 -18
  59. package/dist/chunk-LPIHKY3M.js +0 -50
  60. package/dist/chunk-LPIHKY3M.js.map +0 -7
  61. package/dist/chunk-U5I2YBJK.js +0 -2
  62. package/dist/chunk-XE5GH5GR.js +0 -2
  63. package/dist/login-UU4MWB6Y.js +0 -2
  64. package/dist/logout-XPKPHMRV.js +0 -7
  65. package/dist/push-7S6V2HSB.js +0 -2
  66. package/dist/whoami-MU3POPXB.js +0 -7
  67. /package/dist/{chunk-HAYHNB7Q.js.map → chunk-JSGXXXFU.js.map} +0 -0
  68. /package/dist/{chunk-WQ4SFIE4.js.map → chunk-UCJDY73U.js.map} +0 -0
  69. /package/dist/{chunk-Z7JIVKEF.js.map → chunk-WNAYBYSG.js.map} +0 -0
  70. /package/dist/{login-UU4MWB6Y.js.map → login-XIEASAMY.js.map} +0 -0
  71. /package/dist/{push-7S6V2HSB.js.map → push-6WUPKY5W.js.map} +0 -0
  72. /package/dist/{version-NFFT7WG5.js.map → version-NZHW3VLV.js.map} +0 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../node_modules/.pnpm/arg@5.0.2/node_modules/arg/index.js", "../src/services/command/arg.ts", "../src/services/command/command.ts"],
4
- "sourcesContent": ["const flagSymbol = Symbol('arg flag');\n\nclass ArgError extends Error {\n\tconstructor(msg, code) {\n\t\tsuper(msg);\n\t\tthis.name = 'ArgError';\n\t\tthis.code = code;\n\n\t\tObject.setPrototypeOf(this, ArgError.prototype);\n\t}\n}\n\nfunction arg(\n\topts,\n\t{\n\t\targv = process.argv.slice(2),\n\t\tpermissive = false,\n\t\tstopAtPositional = false\n\t} = {}\n) {\n\tif (!opts) {\n\t\tthrow new ArgError(\n\t\t\t'argument specification object is required',\n\t\t\t'ARG_CONFIG_NO_SPEC'\n\t\t);\n\t}\n\n\tconst result = { _: [] };\n\n\tconst aliases = {};\n\tconst handlers = {};\n\n\tfor (const key of Object.keys(opts)) {\n\t\tif (!key) {\n\t\t\tthrow new ArgError(\n\t\t\t\t'argument key cannot be an empty string',\n\t\t\t\t'ARG_CONFIG_EMPTY_KEY'\n\t\t\t);\n\t\t}\n\n\t\tif (key[0] !== '-') {\n\t\t\tthrow new ArgError(\n\t\t\t\t`argument key must start with '-' but found: '${key}'`,\n\t\t\t\t'ARG_CONFIG_NONOPT_KEY'\n\t\t\t);\n\t\t}\n\n\t\tif (key.length === 1) {\n\t\t\tthrow new ArgError(\n\t\t\t\t`argument key must have a name; singular '-' keys are not allowed: ${key}`,\n\t\t\t\t'ARG_CONFIG_NONAME_KEY'\n\t\t\t);\n\t\t}\n\n\t\tif (typeof opts[key] === 'string') {\n\t\t\taliases[key] = opts[key];\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet type = opts[key];\n\t\tlet isFlag = false;\n\n\t\tif (\n\t\t\tArray.isArray(type) &&\n\t\t\ttype.length === 1 &&\n\t\t\ttypeof type[0] === 'function'\n\t\t) {\n\t\t\tconst [fn] = type;\n\t\t\ttype = (value, name, prev = []) => {\n\t\t\t\tprev.push(fn(value, name, prev[prev.length - 1]));\n\t\t\t\treturn prev;\n\t\t\t};\n\t\t\tisFlag = fn === Boolean || fn[flagSymbol] === true;\n\t\t} else if (typeof type === 'function') {\n\t\t\tisFlag = type === Boolean || type[flagSymbol] === true;\n\t\t} else {\n\t\t\tthrow new ArgError(\n\t\t\t\t`type missing or not a function or valid array type: ${key}`,\n\t\t\t\t'ARG_CONFIG_VAD_TYPE'\n\t\t\t);\n\t\t}\n\n\t\tif (key[1] !== '-' && key.length > 2) {\n\t\t\tthrow new ArgError(\n\t\t\t\t`short argument keys (with a single hyphen) must have only one character: ${key}`,\n\t\t\t\t'ARG_CONFIG_SHORTOPT_TOOLONG'\n\t\t\t);\n\t\t}\n\n\t\thandlers[key] = [type, isFlag];\n\t}\n\n\tfor (let i = 0, len = argv.length; i < len; i++) {\n\t\tconst wholeArg = argv[i];\n\n\t\tif (stopAtPositional && result._.length > 0) {\n\t\t\tresult._ = result._.concat(argv.slice(i));\n\t\t\tbreak;\n\t\t}\n\n\t\tif (wholeArg === '--') {\n\t\t\tresult._ = result._.concat(argv.slice(i + 1));\n\t\t\tbreak;\n\t\t}\n\n\t\tif (wholeArg.length > 1 && wholeArg[0] === '-') {\n\t\t\t/* eslint-disable operator-linebreak */\n\t\t\tconst separatedArguments =\n\t\t\t\twholeArg[1] === '-' || wholeArg.length === 2\n\t\t\t\t\t? [wholeArg]\n\t\t\t\t\t: wholeArg\n\t\t\t\t\t\t\t.slice(1)\n\t\t\t\t\t\t\t.split('')\n\t\t\t\t\t\t\t.map((a) => `-${a}`);\n\t\t\t/* eslint-enable operator-linebreak */\n\n\t\t\tfor (let j = 0; j < separatedArguments.length; j++) {\n\t\t\t\tconst arg = separatedArguments[j];\n\t\t\t\tconst [originalArgName, argStr] =\n\t\t\t\t\targ[1] === '-' ? arg.split(/=(.*)/, 2) : [arg, undefined];\n\n\t\t\t\tlet argName = originalArgName;\n\t\t\t\twhile (argName in aliases) {\n\t\t\t\t\targName = aliases[argName];\n\t\t\t\t}\n\n\t\t\t\tif (!(argName in handlers)) {\n\t\t\t\t\tif (permissive) {\n\t\t\t\t\t\tresult._.push(arg);\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthrow new ArgError(\n\t\t\t\t\t\t\t`unknown or unexpected option: ${originalArgName}`,\n\t\t\t\t\t\t\t'ARG_UNKNOWN_OPTION'\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst [type, isFlag] = handlers[argName];\n\n\t\t\t\tif (!isFlag && j + 1 < separatedArguments.length) {\n\t\t\t\t\tthrow new ArgError(\n\t\t\t\t\t\t`option requires argument (but was followed by another short argument): ${originalArgName}`,\n\t\t\t\t\t\t'ARG_MISSING_REQUIRED_SHORTARG'\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tif (isFlag) {\n\t\t\t\t\tresult[argName] = type(true, argName, result[argName]);\n\t\t\t\t} else if (argStr === undefined) {\n\t\t\t\t\tif (\n\t\t\t\t\t\targv.length < i + 2 ||\n\t\t\t\t\t\t(argv[i + 1].length > 1 &&\n\t\t\t\t\t\t\targv[i + 1][0] === '-' &&\n\t\t\t\t\t\t\t!(\n\t\t\t\t\t\t\t\targv[i + 1].match(/^-?\\d*(\\.(?=\\d))?\\d*$/) &&\n\t\t\t\t\t\t\t\t(type === Number ||\n\t\t\t\t\t\t\t\t\t// eslint-disable-next-line no-undef\n\t\t\t\t\t\t\t\t\t(typeof BigInt !== 'undefined' && type === BigInt))\n\t\t\t\t\t\t\t))\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst extended =\n\t\t\t\t\t\t\toriginalArgName === argName ? '' : ` (alias for ${argName})`;\n\t\t\t\t\t\tthrow new ArgError(\n\t\t\t\t\t\t\t`option requires argument: ${originalArgName}${extended}`,\n\t\t\t\t\t\t\t'ARG_MISSING_REQUIRED_LONGARG'\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tresult[argName] = type(argv[i + 1], argName, result[argName]);\n\t\t\t\t\t++i;\n\t\t\t\t} else {\n\t\t\t\t\tresult[argName] = type(argStr, argName, result[argName]);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tresult._.push(wholeArg);\n\t\t}\n\t}\n\n\treturn result;\n}\n\narg.flag = (fn) => {\n\tfn[flagSymbol] = true;\n\treturn fn;\n};\n\n// Utility types\narg.COUNT = arg.flag((v, name, existingCount) => (existingCount || 0) + 1);\n\n// Expose error class\narg.ArgError = ArgError;\n\nmodule.exports = arg;\n", "import arg from \"arg\";\nimport chalk from \"chalk\";\nimport type { Simplify } from \"type-fest\";\nimport { GGTError, IsBug, UnexpectedError } from \"../output/report.js\";\nimport { symbol } from \"../output/symbols.js\";\nimport { isNil } from \"../util/is.js\";\n\nexport type ArgsDefinition = Record<string, ArgDefinition>;\n\ntype ArgDefinition<Handler extends arg.Handler = arg.Handler> =\n | Handler\n | {\n type: Handler;\n alias?: string | string[];\n default?: ReturnType<Handler>;\n };\n\nexport type ParseArgsOptions = {\n /**\n * A list of arguments to parse.\n */\n argv?: string[];\n\n /**\n * When permissive set to `true`, arg will push any unknown arguments\n * onto the \"extra\" argument array (`ctx.args._`) instead of throwing\n * an error about an unknown flag.\n *\n * @default false\n */\n permissive?: boolean;\n\n /**\n * When stopAtPositional is set to true, context will stop parsing at\n * the first positional argument.\n *\n * @default false\n */\n stopAtPositional?: boolean;\n};\n\nexport const parseArgs = <Args extends ArgsDefinition>(args: Args, options?: arg.Options): ArgsDefinitionResult<Args> => {\n const spec: arg.Spec = {};\n const defaultValues: Record<string, unknown> = {};\n\n for (const [key, value] of Object.entries(args)) {\n if (!(\"type\" in value)) {\n spec[key] = value;\n continue;\n }\n\n spec[key] = value.type;\n defaultValues[key] = value.default;\n\n if (value.alias) {\n for (const alias of Array.isArray(value.alias) ? value.alias : [value.alias]) {\n spec[alias] = key;\n }\n }\n }\n\n try {\n const parsed = arg(spec, options);\n for (const [key, value] of Object.entries(defaultValues)) {\n if (isNil(parsed[key])) {\n parsed[key] = value as never;\n }\n }\n return parsed as ArgsDefinitionResult<Args>;\n } catch (error: unknown) {\n if (error instanceof arg.ArgError) {\n // convert arg.ArgError to GGTError\n // eslint-disable-next-line no-ex-assign\n error = new ArgError(error.message);\n }\n if (error instanceof GGTError) {\n throw error;\n }\n throw new UnexpectedError(error);\n }\n};\n\nexport class ArgError extends GGTError {\n isBug = IsBug.NO;\n\n protected override render(): string {\n return `${chalk.redBright(symbol.cross)} ` + this.message;\n }\n}\n\n/**\n * Turns this:\n * ```ts\n * type Args = {\n * \"--string\": { type: String; alias: \"s\" };\n * \"--number\": { type: Number; default: 42 };\n * };\n * ```\n *\n * Into this:\n * ```ts\n * type Result = {\n * \"--string\": string | undefined;\n * \"--number\": number;\n * };\n * ```\n */\nexport type ArgsDefinitionResult<Args extends ArgsDefinition, Keys extends keyof Args = keyof Args> = Simplify<{\n [Key in Keys]: Args[Key] extends ArgDefinition<infer Handler>\n ? Args[Key] extends { default: unknown }\n ? NonNullable<ReturnType<Handler>>\n : ReturnType<Handler> | undefined\n : never;\n}> & { _: string[] };\n", "import assert from \"node:assert\";\nimport type { EmptyObject, Promisable } from \"type-fest\";\nimport type { ArgsDefinition, ArgsDefinitionResult } from \"./arg.js\";\nimport type { Context } from \"./context.js\";\n\n/**\n * The list of available commands.\n *\n * 1. Every command corresponds to a file inside of src/commands/\n * 2. The order determines the order of commands in the README\n */\nexport const Commands = [\"dev\", \"deploy\", \"status\", \"push\", \"pull\", \"add\", \"open\", \"list\", \"login\", \"logout\", \"whoami\", \"version\"] as const;\n\n/**\n * One of the commands in {@link Commands}.\n */\nexport type Command = (typeof Commands)[number];\n\n/**\n * Checks if a string is a valid command.\n *\n * @param command - The string to check\n * @returns Whether the string is a valid command\n */\nexport const isCommand = (command: string): command is Command => {\n return Commands.includes(command as Command);\n};\n\n/**\n * A command module is a file in the src/commands/ directory.\n */\nexport type CommandModule<Args extends ArgsDefinition = EmptyObject> = {\n /**\n * The command's {@link ArgsDefinition args}.\n */\n args?: Args;\n\n /**\n * The command's {@link Usage usage}.\n */\n usage: Usage;\n\n /**\n * The command's {@link Run run} function.\n */\n run: Run<Args>;\n};\n\n/**\n * A {@linkcode Command command}'s usage is a function that returns a\n * string describing how to use the command.\n */\nexport type Usage = (ctx: Context) => string;\n\n/**\n * The function that is run when the command is called.\n */\nexport type Run<Args extends ArgsDefinition = EmptyObject> = (ctx: Context, args: ArgsDefinitionResult<Args>) => Promisable<void>;\n\n/**\n * Imports a command module.\n *\n * @param cmd - The command to import\n * @see {@linkcode CommandModule}\n */\nexport const importCommand = async (cmd: Command): Promise<CommandModule> => {\n assert(isCommand(cmd), `invalid command: ${cmd}`);\n\n let module;\n switch (cmd) {\n case \"dev\":\n module = await import(\"../../commands/dev.js\");\n break;\n case \"deploy\":\n module = await import(\"../../commands/deploy.js\");\n break;\n case \"status\":\n module = await import(\"../../commands/status.js\");\n break;\n case \"push\":\n module = await import(\"../../commands/push.js\");\n break;\n case \"pull\":\n module = await import(\"../../commands/pull.js\");\n break;\n case \"add\":\n module = await import(\"../../commands/add.js\");\n break;\n case \"open\":\n module = await import(\"../../commands/open.js\");\n break;\n case \"list\":\n module = await import(\"../../commands/list.js\");\n break;\n case \"login\":\n module = await import(\"../../commands/login.js\");\n break;\n case \"logout\":\n module = await import(\"../../commands/logout.js\");\n break;\n case \"whoami\":\n module = await import(\"../../commands/whoami.js\");\n break;\n case \"version\":\n module = await import(\"../../commands/version.js\");\n break;\n }\n\n return module as CommandModule;\n};\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["const flagSymbol = Symbol('arg flag');\n\nclass ArgError extends Error {\n\tconstructor(msg, code) {\n\t\tsuper(msg);\n\t\tthis.name = 'ArgError';\n\t\tthis.code = code;\n\n\t\tObject.setPrototypeOf(this, ArgError.prototype);\n\t}\n}\n\nfunction arg(\n\topts,\n\t{\n\t\targv = process.argv.slice(2),\n\t\tpermissive = false,\n\t\tstopAtPositional = false\n\t} = {}\n) {\n\tif (!opts) {\n\t\tthrow new ArgError(\n\t\t\t'argument specification object is required',\n\t\t\t'ARG_CONFIG_NO_SPEC'\n\t\t);\n\t}\n\n\tconst result = { _: [] };\n\n\tconst aliases = {};\n\tconst handlers = {};\n\n\tfor (const key of Object.keys(opts)) {\n\t\tif (!key) {\n\t\t\tthrow new ArgError(\n\t\t\t\t'argument key cannot be an empty string',\n\t\t\t\t'ARG_CONFIG_EMPTY_KEY'\n\t\t\t);\n\t\t}\n\n\t\tif (key[0] !== '-') {\n\t\t\tthrow new ArgError(\n\t\t\t\t`argument key must start with '-' but found: '${key}'`,\n\t\t\t\t'ARG_CONFIG_NONOPT_KEY'\n\t\t\t);\n\t\t}\n\n\t\tif (key.length === 1) {\n\t\t\tthrow new ArgError(\n\t\t\t\t`argument key must have a name; singular '-' keys are not allowed: ${key}`,\n\t\t\t\t'ARG_CONFIG_NONAME_KEY'\n\t\t\t);\n\t\t}\n\n\t\tif (typeof opts[key] === 'string') {\n\t\t\taliases[key] = opts[key];\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet type = opts[key];\n\t\tlet isFlag = false;\n\n\t\tif (\n\t\t\tArray.isArray(type) &&\n\t\t\ttype.length === 1 &&\n\t\t\ttypeof type[0] === 'function'\n\t\t) {\n\t\t\tconst [fn] = type;\n\t\t\ttype = (value, name, prev = []) => {\n\t\t\t\tprev.push(fn(value, name, prev[prev.length - 1]));\n\t\t\t\treturn prev;\n\t\t\t};\n\t\t\tisFlag = fn === Boolean || fn[flagSymbol] === true;\n\t\t} else if (typeof type === 'function') {\n\t\t\tisFlag = type === Boolean || type[flagSymbol] === true;\n\t\t} else {\n\t\t\tthrow new ArgError(\n\t\t\t\t`type missing or not a function or valid array type: ${key}`,\n\t\t\t\t'ARG_CONFIG_VAD_TYPE'\n\t\t\t);\n\t\t}\n\n\t\tif (key[1] !== '-' && key.length > 2) {\n\t\t\tthrow new ArgError(\n\t\t\t\t`short argument keys (with a single hyphen) must have only one character: ${key}`,\n\t\t\t\t'ARG_CONFIG_SHORTOPT_TOOLONG'\n\t\t\t);\n\t\t}\n\n\t\thandlers[key] = [type, isFlag];\n\t}\n\n\tfor (let i = 0, len = argv.length; i < len; i++) {\n\t\tconst wholeArg = argv[i];\n\n\t\tif (stopAtPositional && result._.length > 0) {\n\t\t\tresult._ = result._.concat(argv.slice(i));\n\t\t\tbreak;\n\t\t}\n\n\t\tif (wholeArg === '--') {\n\t\t\tresult._ = result._.concat(argv.slice(i + 1));\n\t\t\tbreak;\n\t\t}\n\n\t\tif (wholeArg.length > 1 && wholeArg[0] === '-') {\n\t\t\t/* eslint-disable operator-linebreak */\n\t\t\tconst separatedArguments =\n\t\t\t\twholeArg[1] === '-' || wholeArg.length === 2\n\t\t\t\t\t? [wholeArg]\n\t\t\t\t\t: wholeArg\n\t\t\t\t\t\t\t.slice(1)\n\t\t\t\t\t\t\t.split('')\n\t\t\t\t\t\t\t.map((a) => `-${a}`);\n\t\t\t/* eslint-enable operator-linebreak */\n\n\t\t\tfor (let j = 0; j < separatedArguments.length; j++) {\n\t\t\t\tconst arg = separatedArguments[j];\n\t\t\t\tconst [originalArgName, argStr] =\n\t\t\t\t\targ[1] === '-' ? arg.split(/=(.*)/, 2) : [arg, undefined];\n\n\t\t\t\tlet argName = originalArgName;\n\t\t\t\twhile (argName in aliases) {\n\t\t\t\t\targName = aliases[argName];\n\t\t\t\t}\n\n\t\t\t\tif (!(argName in handlers)) {\n\t\t\t\t\tif (permissive) {\n\t\t\t\t\t\tresult._.push(arg);\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthrow new ArgError(\n\t\t\t\t\t\t\t`unknown or unexpected option: ${originalArgName}`,\n\t\t\t\t\t\t\t'ARG_UNKNOWN_OPTION'\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst [type, isFlag] = handlers[argName];\n\n\t\t\t\tif (!isFlag && j + 1 < separatedArguments.length) {\n\t\t\t\t\tthrow new ArgError(\n\t\t\t\t\t\t`option requires argument (but was followed by another short argument): ${originalArgName}`,\n\t\t\t\t\t\t'ARG_MISSING_REQUIRED_SHORTARG'\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tif (isFlag) {\n\t\t\t\t\tresult[argName] = type(true, argName, result[argName]);\n\t\t\t\t} else if (argStr === undefined) {\n\t\t\t\t\tif (\n\t\t\t\t\t\targv.length < i + 2 ||\n\t\t\t\t\t\t(argv[i + 1].length > 1 &&\n\t\t\t\t\t\t\targv[i + 1][0] === '-' &&\n\t\t\t\t\t\t\t!(\n\t\t\t\t\t\t\t\targv[i + 1].match(/^-?\\d*(\\.(?=\\d))?\\d*$/) &&\n\t\t\t\t\t\t\t\t(type === Number ||\n\t\t\t\t\t\t\t\t\t// eslint-disable-next-line no-undef\n\t\t\t\t\t\t\t\t\t(typeof BigInt !== 'undefined' && type === BigInt))\n\t\t\t\t\t\t\t))\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst extended =\n\t\t\t\t\t\t\toriginalArgName === argName ? '' : ` (alias for ${argName})`;\n\t\t\t\t\t\tthrow new ArgError(\n\t\t\t\t\t\t\t`option requires argument: ${originalArgName}${extended}`,\n\t\t\t\t\t\t\t'ARG_MISSING_REQUIRED_LONGARG'\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tresult[argName] = type(argv[i + 1], argName, result[argName]);\n\t\t\t\t\t++i;\n\t\t\t\t} else {\n\t\t\t\t\tresult[argName] = type(argStr, argName, result[argName]);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tresult._.push(wholeArg);\n\t\t}\n\t}\n\n\treturn result;\n}\n\narg.flag = (fn) => {\n\tfn[flagSymbol] = true;\n\treturn fn;\n};\n\n// Utility types\narg.COUNT = arg.flag((v, name, existingCount) => (existingCount || 0) + 1);\n\n// Expose error class\narg.ArgError = ArgError;\n\nmodule.exports = arg;\n", "import arg from \"arg\";\nimport chalk from \"chalk\";\nimport type { Simplify } from \"type-fest\";\nimport { GGTError, IsBug, UnexpectedError } from \"../output/report.js\";\nimport { symbol } from \"../output/symbols.js\";\nimport { isNil } from \"../util/is.js\";\n\nexport type ArgsDefinition = Record<string, ArgDefinition>;\n\ntype ArgDefinition<Handler extends arg.Handler = arg.Handler> =\n | Handler\n | {\n type: Handler;\n alias?: string | string[];\n default?: ReturnType<Handler>;\n };\n\nexport type ParseArgsOptions = {\n /**\n * A list of arguments to parse.\n */\n argv?: string[];\n\n /**\n * When permissive set to `true`, arg will push any unknown arguments\n * onto the \"extra\" argument array (`ctx.args._`) instead of throwing\n * an error about an unknown flag.\n *\n * @default false\n */\n permissive?: boolean;\n\n /**\n * When stopAtPositional is set to true, context will stop parsing at\n * the first positional argument.\n *\n * @default false\n */\n stopAtPositional?: boolean;\n};\n\nexport const parseArgs = <Args extends ArgsDefinition>(args: Args, options?: arg.Options): ArgsDefinitionResult<Args> => {\n const spec: arg.Spec = {};\n const defaultValues: Record<string, unknown> = {};\n\n for (const [key, value] of Object.entries(args)) {\n if (!(\"type\" in value)) {\n spec[key] = value;\n continue;\n }\n\n spec[key] = value.type;\n defaultValues[key] = value.default;\n\n if (value.alias) {\n for (const alias of Array.isArray(value.alias) ? value.alias : [value.alias]) {\n spec[alias] = key;\n }\n }\n }\n\n try {\n const parsed = arg(spec, options);\n for (const [key, value] of Object.entries(defaultValues)) {\n if (isNil(parsed[key])) {\n parsed[key] = value as never;\n }\n }\n return parsed as ArgsDefinitionResult<Args>;\n } catch (error: unknown) {\n if (error instanceof arg.ArgError) {\n // convert arg.ArgError to GGTError\n // eslint-disable-next-line no-ex-assign\n error = new ArgError(error.message);\n }\n if (error instanceof GGTError) {\n throw error;\n }\n throw new UnexpectedError(error);\n }\n};\n\nexport class ArgError extends GGTError {\n isBug = IsBug.NO;\n\n protected override render(): string {\n return `${chalk.redBright(symbol.cross)} ` + this.message;\n }\n}\n\n/**\n * Turns this:\n * ```ts\n * type Args = {\n * \"--string\": { type: String; alias: \"s\" };\n * \"--number\": { type: Number; default: 42 };\n * };\n * ```\n *\n * Into this:\n * ```ts\n * type Result = {\n * \"--string\": string | undefined;\n * \"--number\": number;\n * };\n * ```\n */\nexport type ArgsDefinitionResult<Args extends ArgsDefinition, Keys extends keyof Args = keyof Args> = Simplify<{\n [Key in Keys]: Args[Key] extends ArgDefinition<infer Handler>\n ? Args[Key] extends { default: unknown }\n ? NonNullable<ReturnType<Handler>>\n : ReturnType<Handler> | undefined\n : never;\n}> & { _: string[] };\n", "import assert from \"node:assert\";\nimport type { EmptyObject, Promisable } from \"type-fest\";\nimport type { ArgsDefinition, ArgsDefinitionResult } from \"./arg.js\";\nimport type { Context } from \"./context.js\";\n\n/**\n * The list of available commands.\n *\n * 1. Every command corresponds to a file inside of src/commands/\n * 2. The order determines the order of commands in the README\n */\nexport const Commands = [\n \"dev\",\n \"deploy\",\n \"status\",\n \"push\",\n \"pull\",\n \"add\",\n \"open\",\n \"list\",\n \"login\",\n \"logout\",\n \"whoami\",\n \"configure\",\n \"version\",\n] as const;\n\n/**\n * One of the commands in {@link Commands}.\n */\nexport type Command = (typeof Commands)[number];\n\n/**\n * Checks if a string is a valid command.\n *\n * @param command - The string to check\n * @returns Whether the string is a valid command\n */\nexport const isCommand = (command: string): command is Command => {\n return Commands.includes(command as Command);\n};\n\n/**\n * A command module is a file in the src/commands/ directory.\n */\nexport type CommandModule<Args extends ArgsDefinition = EmptyObject> = {\n /**\n * The command's {@link ArgsDefinition args}.\n */\n args?: Args;\n\n /**\n * The command's {@link Usage usage}.\n */\n usage: Usage;\n\n /**\n * The command's {@link Run run} function.\n */\n run: Run<Args>;\n};\n\n/**\n * A {@linkcode Command command}'s usage is a function that returns a\n * string describing how to use the command.\n */\nexport type Usage = (ctx: Context) => string;\n\n/**\n * The function that is run when the command is called.\n */\nexport type Run<Args extends ArgsDefinition = EmptyObject> = (ctx: Context, args: ArgsDefinitionResult<Args>) => Promisable<void>;\n\n/**\n * Imports a command module.\n *\n * @param cmd - The command to import\n * @see {@linkcode CommandModule}\n */\nexport const importCommand = async (cmd: Command): Promise<CommandModule> => {\n assert(isCommand(cmd), `invalid command: ${cmd}`);\n\n let module;\n switch (cmd) {\n case \"dev\":\n module = await import(\"../../commands/dev.js\");\n break;\n case \"deploy\":\n module = await import(\"../../commands/deploy.js\");\n break;\n case \"status\":\n module = await import(\"../../commands/status.js\");\n break;\n case \"push\":\n module = await import(\"../../commands/push.js\");\n break;\n case \"pull\":\n module = await import(\"../../commands/pull.js\");\n break;\n case \"add\":\n module = await import(\"../../commands/add.js\");\n break;\n case \"open\":\n module = await import(\"../../commands/open.js\");\n break;\n case \"list\":\n module = await import(\"../../commands/list.js\");\n break;\n case \"login\":\n module = await import(\"../../commands/login.js\");\n break;\n case \"logout\":\n module = await import(\"../../commands/logout.js\");\n break;\n case \"whoami\":\n module = await import(\"../../commands/whoami.js\");\n break;\n case \"configure\":\n module = await import(\"../../commands/configure.js\");\n break;\n case \"version\":\n module = await import(\"../../commands/version.js\");\n break;\n }\n\n return module as CommandModule;\n};\n"],
5
+ "mappings": "0MAAA,IAAAA,EAAAC,EAAA,CAAAC,EAAAC,IAAA,CAAAC,IAAA,IAAMC,EAAa,OAAO,UAAU,EAE9BC,EAAN,MAAMC,UAAiB,KAAM,CAF7B,MAE6B,CAAAC,EAAA,iBAC5B,YAAYC,EAAKC,EAAM,CACtB,MAAMD,CAAG,EACT,KAAK,KAAO,WACZ,KAAK,KAAOC,EAEZ,OAAO,eAAe,KAAMH,EAAS,SAAS,CAC/C,CACD,EAEA,SAASI,EACRC,EACA,CACC,KAAAC,EAAO,QAAQ,KAAK,MAAM,CAAC,EAC3B,WAAAC,EAAa,GACb,iBAAAC,EAAmB,EACpB,EAAI,CAAC,EACJ,CACD,GAAI,CAACH,EACJ,MAAM,IAAIN,EACT,4CACA,oBACD,EAGD,IAAMU,EAAS,CAAE,EAAG,CAAC,CAAE,EAEjBC,EAAU,CAAC,EACXC,EAAW,CAAC,EAElB,QAAWC,KAAO,OAAO,KAAKP,CAAI,EAAG,CACpC,GAAI,CAACO,EACJ,MAAM,IAAIb,EACT,yCACA,sBACD,EAGD,GAAIa,EAAI,CAAC,IAAM,IACd,MAAM,IAAIb,EACT,gDAAgDa,CAAG,IACnD,uBACD,EAGD,GAAIA,EAAI,SAAW,EAClB,MAAM,IAAIb,EACT,qEAAqEa,CAAG,GACxE,uBACD,EAGD,GAAI,OAAOP,EAAKO,CAAG,GAAM,SAAU,CAClCF,EAAQE,CAAG,EAAIP,EAAKO,CAAG,EACvB,QACD,CAEA,IAAIC,EAAOR,EAAKO,CAAG,EACfE,EAAS,GAEb,GACC,MAAM,QAAQD,CAAI,GAClBA,EAAK,SAAW,GAChB,OAAOA,EAAK,CAAC,GAAM,WAClB,CACD,GAAM,CAACE,CAAE,EAAIF,EACbA,EAAOZ,EAAA,CAACe,EAAOC,EAAMC,EAAO,CAAC,KAC5BA,EAAK,KAAKH,EAAGC,EAAOC,EAAMC,EAAKA,EAAK,OAAS,CAAC,CAAC,CAAC,EACzCA,GAFD,QAIPJ,EAASC,IAAO,SAAWA,EAAGjB,CAAU,IAAM,EAC/C,SAAW,OAAOe,GAAS,WAC1BC,EAASD,IAAS,SAAWA,EAAKf,CAAU,IAAM,OAElD,OAAM,IAAIC,EACT,uDAAuDa,CAAG,GAC1D,qBACD,EAGD,GAAIA,EAAI,CAAC,IAAM,KAAOA,EAAI,OAAS,EAClC,MAAM,IAAIb,EACT,4EAA4Ea,CAAG,GAC/E,6BACD,EAGDD,EAASC,CAAG,EAAI,CAACC,EAAMC,CAAM,CAC9B,CAEA,QAASK,EAAI,EAAGC,EAAMd,EAAK,OAAQa,EAAIC,EAAKD,IAAK,CAChD,IAAME,EAAWf,EAAKa,CAAC,EAEvB,GAAIX,GAAoBC,EAAO,EAAE,OAAS,EAAG,CAC5CA,EAAO,EAAIA,EAAO,EAAE,OAAOH,EAAK,MAAMa,CAAC,CAAC,EACxC,KACD,CAEA,GAAIE,IAAa,KAAM,CACtBZ,EAAO,EAAIA,EAAO,EAAE,OAAOH,EAAK,MAAMa,EAAI,CAAC,CAAC,EAC5C,KACD,CAEA,GAAIE,EAAS,OAAS,GAAKA,EAAS,CAAC,IAAM,IAAK,CAE/C,IAAMC,EACLD,EAAS,CAAC,IAAM,KAAOA,EAAS,SAAW,EACxC,CAACA,CAAQ,EACTA,EACC,MAAM,CAAC,EACP,MAAM,EAAE,EACR,IAAKE,GAAM,IAAIA,CAAC,EAAE,EAGvB,QAASC,EAAI,EAAGA,EAAIF,EAAmB,OAAQE,IAAK,CACnD,IAAMpB,EAAMkB,EAAmBE,CAAC,EAC1B,CAACC,EAAiBC,CAAM,EAC7BtB,EAAI,CAAC,IAAM,IAAMA,EAAI,MAAM,QAAS,CAAC,EAAI,CAACA,EAAK,MAAS,EAErDuB,EAAUF,EACd,KAAOE,KAAWjB,GACjBiB,EAAUjB,EAAQiB,CAAO,EAG1B,GAAI,EAAEA,KAAWhB,GAChB,GAAIJ,EAAY,CACfE,EAAO,EAAE,KAAKL,CAAG,EACjB,QACD,KACC,OAAM,IAAIL,EACT,iCAAiC0B,CAAe,GAChD,oBACD,EAIF,GAAM,CAACZ,EAAMC,CAAM,EAAIH,EAASgB,CAAO,EAEvC,GAAI,CAACb,GAAUU,EAAI,EAAIF,EAAmB,OACzC,MAAM,IAAIvB,EACT,0EAA0E0B,CAAe,GACzF,+BACD,EAGD,GAAIX,EACHL,EAAOkB,CAAO,EAAId,EAAK,GAAMc,EAASlB,EAAOkB,CAAO,CAAC,UAC3CD,IAAW,OAAW,CAChC,GACCpB,EAAK,OAASa,EAAI,GACjBb,EAAKa,EAAI,CAAC,EAAE,OAAS,GACrBb,EAAKa,EAAI,CAAC,EAAE,CAAC,IAAM,KACnB,EACCb,EAAKa,EAAI,CAAC,EAAE,MAAM,uBAAuB,IACxCN,IAAS,QAER,OAAO,OAAW,KAAeA,IAAS,SAE7C,CACD,IAAMe,EACLH,IAAoBE,EAAU,GAAK,eAAeA,CAAO,IAC1D,MAAM,IAAI5B,EACT,6BAA6B0B,CAAe,GAAGG,CAAQ,GACvD,8BACD,CACD,CAEAnB,EAAOkB,CAAO,EAAId,EAAKP,EAAKa,EAAI,CAAC,EAAGQ,EAASlB,EAAOkB,CAAO,CAAC,EAC5D,EAAER,CACH,MACCV,EAAOkB,CAAO,EAAId,EAAKa,EAAQC,EAASlB,EAAOkB,CAAO,CAAC,CAEzD,CACD,MACClB,EAAO,EAAE,KAAKY,CAAQ,CAExB,CAEA,OAAOZ,CACR,CAzKSR,EAAAG,EAAA,OA2KTA,EAAI,KAAQW,IACXA,EAAGjB,CAAU,EAAI,GACViB,GAIRX,EAAI,MAAQA,EAAI,KAAK,CAACyB,EAAGZ,EAAMa,KAAmBA,GAAiB,GAAK,CAAC,EAGzE1B,EAAI,SAAWL,EAEfH,EAAO,QAAUQ,IClMjB2B,IAAA,IAAAC,EAAgB,SAyCT,IAAMC,EAAYC,EAAA,CAA8BC,EAAYC,IAAsD,CACvH,IAAMC,EAAiB,CAAC,EAClBC,EAAyC,CAAC,EAEhD,OAAW,CAACC,EAAKC,CAAK,IAAK,OAAO,QAAQL,CAAI,EAAG,CAC/C,GAAI,EAAE,SAAUK,GAAQ,CACtBH,EAAKE,CAAG,EAAIC,EACZ,QACF,CAKA,GAHAH,EAAKE,CAAG,EAAIC,EAAM,KAClBF,EAAcC,CAAG,EAAIC,EAAM,QAEvBA,EAAM,MACR,QAAWC,KAAS,MAAM,QAAQD,EAAM,KAAK,EAAIA,EAAM,MAAQ,CAACA,EAAM,KAAK,EACzEH,EAAKI,CAAK,EAAIF,CAGpB,CAEA,GAAI,CACF,IAAMG,KAAS,EAAAC,SAAIN,EAAMD,CAAO,EAChC,OAAW,CAACG,EAAKC,CAAK,IAAK,OAAO,QAAQF,CAAa,EACjDM,EAAMF,EAAOH,CAAG,CAAC,IACnBG,EAAOH,CAAG,EAAIC,GAGlB,OAAOE,CACT,OAASG,EAAgB,CAMvB,MALIA,aAAiB,EAAAF,QAAI,WAGvBE,EAAQ,IAAIC,EAASD,EAAM,OAAO,GAEhCA,aAAiBE,EACbF,EAEF,IAAIG,EAAgBH,CAAK,CACjC,CACF,EAvCyB,aAyCZC,EAAN,cAAuBC,CAAS,CAlFvC,MAkFuC,CAAAb,EAAA,iBACrC,MAAQe,EAAM,GAEK,QAAiB,CAClC,MAAO,GAAGC,EAAM,UAAUC,EAAO,KAAK,CAAC,IAAM,KAAK,OACpD,CACF,ECxFAC,IAAA,OAAOC,MAAY,cAWZ,IAAMC,EAAW,CACtB,MACA,SACA,SACA,OACA,OACA,MACA,OACA,OACA,QACA,SACA,SACA,YACA,SACF,EAaaC,EAAYC,EAACC,GACjBH,EAAS,SAASG,CAAkB,EADpB,aAyCZC,EAAgBF,EAAA,MAAOG,GAAyC,CAC3EC,EAAOL,EAAUI,CAAG,EAAG,oBAAoBA,CAAG,EAAE,EAEhD,IAAIE,EACJ,OAAQF,EAAK,CACX,IAAK,MACHE,EAAS,KAAM,QAAO,mBAAuB,EAC7C,MACF,IAAK,SACHA,EAAS,KAAM,QAAO,sBAA0B,EAChD,MACF,IAAK,SACHA,EAAS,KAAM,QAAO,sBAA0B,EAChD,MACF,IAAK,OACHA,EAAS,KAAM,QAAO,oBAAwB,EAC9C,MACF,IAAK,OACHA,EAAS,KAAM,QAAO,oBAAwB,EAC9C,MACF,IAAK,MACHA,EAAS,KAAM,QAAO,mBAAuB,EAC7C,MACF,IAAK,OACHA,EAAS,KAAM,QAAO,oBAAwB,EAC9C,MACF,IAAK,OACHA,EAAS,KAAM,QAAO,oBAAwB,EAC9C,MACF,IAAK,QACHA,EAAS,KAAM,QAAO,qBAAyB,EAC/C,MACF,IAAK,SACHA,EAAS,KAAM,QAAO,sBAA0B,EAChD,MACF,IAAK,SACHA,EAAS,KAAM,QAAO,sBAA0B,EAChD,MACF,IAAK,YACHA,EAAS,KAAM,QAAO,yBAA6B,EACnD,MACF,IAAK,UACHA,EAAS,KAAM,QAAO,uBAA2B,EACjD,KACJ,CAEA,OAAOA,CACT,EA/C6B",
6
6
  "names": ["require_arg", "__commonJSMin", "exports", "module", "init_cjs", "flagSymbol", "ArgError", "_ArgError", "__name", "msg", "code", "arg", "opts", "argv", "permissive", "stopAtPositional", "result", "aliases", "handlers", "key", "type", "isFlag", "fn", "value", "name", "prev", "i", "len", "wholeArg", "separatedArguments", "a", "j", "originalArgName", "argStr", "argName", "extended", "v", "existingCount", "init_cjs", "import_arg", "parseArgs", "__name", "args", "options", "spec", "defaultValues", "key", "value", "alias", "parsed", "arg", "isNil", "error", "ArgError", "GGTError", "UnexpectedError", "IsBug", "source_default", "symbol", "init_cjs", "assert", "Commands", "isCommand", "__name", "command", "importCommand", "cmd", "assert", "module"]
7
7
  }
@@ -0,0 +1,2 @@
1
+ import{Z as R,ca as L,d as x}from"./chunk-24OT7GHO.js";import{a as i,e as P,h as l}from"./chunk-7DYQUG5M.js";l();l();l();import U from"node:process";function d(){let{env:e}=U,{TERM:o,TERM_PROGRAM:t}=e;return U.platform!=="win32"?o!=="linux":!!e.WT_SESSION||!!e.TERMINUS_SUBLIME||e.ConEmuTask==="{cmd::Cmder}"||t==="Terminus-Sublime"||t==="vscode"||o==="xterm-256color"||o==="alacritty"||o==="rxvt-unicode"||o==="rxvt-unicode-256color"||e.TERMINAL_EMULATOR==="JetBrains-JediTerm"}i(d,"isUnicodeSupported");var S={circleQuestionMark:"(?)",questionMarkPrefix:"(?)",square:"\u2588",squareDarkShade:"\u2593",squareMediumShade:"\u2592",squareLightShade:"\u2591",squareTop:"\u2580",squareBottom:"\u2584",squareLeft:"\u258C",squareRight:"\u2590",squareCenter:"\u25A0",bullet:"\u25CF",dot:"\u2024",ellipsis:"\u2026",pointerSmall:"\u203A",triangleUp:"\u25B2",triangleUpSmall:"\u25B4",triangleDown:"\u25BC",triangleDownSmall:"\u25BE",triangleLeftSmall:"\u25C2",triangleRightSmall:"\u25B8",home:"\u2302",heart:"\u2665",musicNote:"\u266A",musicNoteBeamed:"\u266B",arrowUp:"\u2191",arrowDown:"\u2193",arrowLeft:"\u2190",arrowRight:"\u2192",arrowLeftRight:"\u2194",arrowUpDown:"\u2195",almostEqual:"\u2248",notEqual:"\u2260",lessOrEqual:"\u2264",greaterOrEqual:"\u2265",identical:"\u2261",infinity:"\u221E",subscriptZero:"\u2080",subscriptOne:"\u2081",subscriptTwo:"\u2082",subscriptThree:"\u2083",subscriptFour:"\u2084",subscriptFive:"\u2085",subscriptSix:"\u2086",subscriptSeven:"\u2087",subscriptEight:"\u2088",subscriptNine:"\u2089",oneHalf:"\xBD",oneThird:"\u2153",oneQuarter:"\xBC",oneFifth:"\u2155",oneSixth:"\u2159",oneEighth:"\u215B",twoThirds:"\u2154",twoFifths:"\u2156",threeQuarters:"\xBE",threeFifths:"\u2157",threeEighths:"\u215C",fourFifths:"\u2158",fiveSixths:"\u215A",fiveEighths:"\u215D",sevenEighths:"\u215E",line:"\u2500",lineBold:"\u2501",lineDouble:"\u2550",lineDashed0:"\u2504",lineDashed1:"\u2505",lineDashed2:"\u2508",lineDashed3:"\u2509",lineDashed4:"\u254C",lineDashed5:"\u254D",lineDashed6:"\u2574",lineDashed7:"\u2576",lineDashed8:"\u2578",lineDashed9:"\u257A",lineDashed10:"\u257C",lineDashed11:"\u257E",lineDashed12:"\u2212",lineDashed13:"\u2013",lineDashed14:"\u2010",lineDashed15:"\u2043",lineVertical:"\u2502",lineVerticalBold:"\u2503",lineVerticalDouble:"\u2551",lineVerticalDashed0:"\u2506",lineVerticalDashed1:"\u2507",lineVerticalDashed2:"\u250A",lineVerticalDashed3:"\u250B",lineVerticalDashed4:"\u254E",lineVerticalDashed5:"\u254F",lineVerticalDashed6:"\u2575",lineVerticalDashed7:"\u2577",lineVerticalDashed8:"\u2579",lineVerticalDashed9:"\u257B",lineVerticalDashed10:"\u257D",lineVerticalDashed11:"\u257F",lineDownLeft:"\u2510",lineDownLeftArc:"\u256E",lineDownBoldLeftBold:"\u2513",lineDownBoldLeft:"\u2512",lineDownLeftBold:"\u2511",lineDownDoubleLeftDouble:"\u2557",lineDownDoubleLeft:"\u2556",lineDownLeftDouble:"\u2555",lineDownRight:"\u250C",lineDownRightArc:"\u256D",lineDownBoldRightBold:"\u250F",lineDownBoldRight:"\u250E",lineDownRightBold:"\u250D",lineDownDoubleRightDouble:"\u2554",lineDownDoubleRight:"\u2553",lineDownRightDouble:"\u2552",lineUpLeft:"\u2518",lineUpLeftArc:"\u256F",lineUpBoldLeftBold:"\u251B",lineUpBoldLeft:"\u251A",lineUpLeftBold:"\u2519",lineUpDoubleLeftDouble:"\u255D",lineUpDoubleLeft:"\u255C",lineUpLeftDouble:"\u255B",lineUpRight:"\u2514",lineUpRightArc:"\u2570",lineUpBoldRightBold:"\u2517",lineUpBoldRight:"\u2516",lineUpRightBold:"\u2515",lineUpDoubleRightDouble:"\u255A",lineUpDoubleRight:"\u2559",lineUpRightDouble:"\u2558",lineUpDownLeft:"\u2524",lineUpBoldDownBoldLeftBold:"\u252B",lineUpBoldDownBoldLeft:"\u2528",lineUpDownLeftBold:"\u2525",lineUpBoldDownLeftBold:"\u2529",lineUpDownBoldLeftBold:"\u252A",lineUpDownBoldLeft:"\u2527",lineUpBoldDownLeft:"\u2526",lineUpDoubleDownDoubleLeftDouble:"\u2563",lineUpDoubleDownDoubleLeft:"\u2562",lineUpDownLeftDouble:"\u2561",lineUpDownRight:"\u251C",lineUpBoldDownBoldRightBold:"\u2523",lineUpBoldDownBoldRight:"\u2520",lineUpDownRightBold:"\u251D",lineUpBoldDownRightBold:"\u2521",lineUpDownBoldRightBold:"\u2522",lineUpDownBoldRight:"\u251F",lineUpBoldDownRight:"\u251E",lineUpDoubleDownDoubleRightDouble:"\u2560",lineUpDoubleDownDoubleRight:"\u255F",lineUpDownRightDouble:"\u255E",lineDownLeftRight:"\u252C",lineDownBoldLeftBoldRightBold:"\u2533",lineDownLeftBoldRightBold:"\u252F",lineDownBoldLeftRight:"\u2530",lineDownBoldLeftBoldRight:"\u2531",lineDownBoldLeftRightBold:"\u2532",lineDownLeftRightBold:"\u252E",lineDownLeftBoldRight:"\u252D",lineDownDoubleLeftDoubleRightDouble:"\u2566",lineDownDoubleLeftRight:"\u2565",lineDownLeftDoubleRightDouble:"\u2564",lineUpLeftRight:"\u2534",lineUpBoldLeftBoldRightBold:"\u253B",lineUpLeftBoldRightBold:"\u2537",lineUpBoldLeftRight:"\u2538",lineUpBoldLeftBoldRight:"\u2539",lineUpBoldLeftRightBold:"\u253A",lineUpLeftRightBold:"\u2536",lineUpLeftBoldRight:"\u2535",lineUpDoubleLeftDoubleRightDouble:"\u2569",lineUpDoubleLeftRight:"\u2568",lineUpLeftDoubleRightDouble:"\u2567",lineUpDownLeftRight:"\u253C",lineUpBoldDownBoldLeftBoldRightBold:"\u254B",lineUpDownBoldLeftBoldRightBold:"\u2548",lineUpBoldDownLeftBoldRightBold:"\u2547",lineUpBoldDownBoldLeftRightBold:"\u254A",lineUpBoldDownBoldLeftBoldRight:"\u2549",lineUpBoldDownLeftRight:"\u2540",lineUpDownBoldLeftRight:"\u2541",lineUpDownLeftBoldRight:"\u253D",lineUpDownLeftRightBold:"\u253E",lineUpBoldDownBoldLeftRight:"\u2542",lineUpDownLeftBoldRightBold:"\u253F",lineUpBoldDownLeftBoldRight:"\u2543",lineUpBoldDownLeftRightBold:"\u2544",lineUpDownBoldLeftBoldRight:"\u2545",lineUpDownBoldLeftRightBold:"\u2546",lineUpDoubleDownDoubleLeftDoubleRightDouble:"\u256C",lineUpDoubleDownDoubleLeftRight:"\u256B",lineUpDownLeftDoubleRightDouble:"\u256A",lineCross:"\u2573",lineBackslash:"\u2572",lineSlash:"\u2571"},v={tick:"\u2714",info:"\u2139",warning:"\u26A0",cross:"\u2718",squareSmall:"\u25FB",squareSmallFilled:"\u25FC",circle:"\u25EF",circleFilled:"\u25C9",circleDotted:"\u25CC",circleDouble:"\u25CE",circleCircle:"\u24DE",circleCross:"\u24E7",circlePipe:"\u24BE",radioOn:"\u25C9",radioOff:"\u25EF",checkboxOn:"\u2612",checkboxOff:"\u2610",checkboxCircleOn:"\u24E7",checkboxCircleOff:"\u24BE",pointer:"\u276F",triangleUpOutline:"\u25B3",triangleLeft:"\u25C0",triangleRight:"\u25B6",lozenge:"\u25C6",lozengeOutline:"\u25C7",hamburger:"\u2630",smiley:"\u32E1",mustache:"\u0DF4",star:"\u2605",play:"\u25B6",nodejs:"\u2B22",oneSeventh:"\u2150",oneNinth:"\u2151",oneTenth:"\u2152"},q={tick:"\u221A",info:"i",warning:"\u203C",cross:"\xD7",squareSmall:"\u25A1",squareSmallFilled:"\u25A0",circle:"( )",circleFilled:"(*)",circleDotted:"( )",circleDouble:"( )",circleCircle:"(\u25CB)",circleCross:"(\xD7)",circlePipe:"(\u2502)",radioOn:"(*)",radioOff:"( )",checkboxOn:"[\xD7]",checkboxOff:"[ ]",checkboxCircleOn:"(\xD7)",checkboxCircleOff:"( )",pointer:">",triangleUpOutline:"\u2206",triangleLeft:"\u25C4",triangleRight:"\u25BA",lozenge:"\u2666",lozengeOutline:"\u25CA",hamburger:"\u2261",smiley:"\u263A",mustache:"\u250C\u2500\u2510",star:"\u2736",play:"\u25BA",nodejs:"\u2666",oneSeventh:"1/7",oneNinth:"1/9",oneTenth:"1/10"},w={...S,...v},W={...S,...q},C=d(),F=C?w:W,T=F,Le=Object.entries(v);var V={...x.testLike?w:T};if(d()&&R.windowsOrWsl)for(let e of["tick","cross"])V[e]+=" ";var g={};P(g,{beep:()=>ue,clearScreen:()=>se,clearTerminal:()=>ae,cursorBackward:()=>J,cursorDown:()=>j,cursorForward:()=>K,cursorGetPosition:()=>z,cursorHide:()=>X,cursorLeft:()=>y,cursorMove:()=>N,cursorNextLine:()=>Q,cursorPrevLine:()=>Y,cursorRestorePosition:()=>H,cursorSavePosition:()=>_,cursorShow:()=>Z,cursorTo:()=>$,cursorUp:()=>A,enterAlternativeScreen:()=>ce,eraseDown:()=>ne,eraseEndLine:()=>oe,eraseLine:()=>E,eraseLines:()=>ee,eraseScreen:()=>m,eraseStartLine:()=>te,eraseUp:()=>ie,exitAlternativeScreen:()=>de,iTerm:()=>fe,image:()=>he,link:()=>pe,scrollDown:()=>re,scrollUp:()=>le});l();import B from"node:process";l();var D=globalThis.window?.document!==void 0,Me=globalThis.process?.versions?.node!==void 0,Pe=globalThis.process?.versions?.bun!==void 0,qe=globalThis.Deno?.version?.deno!==void 0,We=globalThis.process?.versions?.electron!==void 0,Ce=globalThis.navigator?.userAgent?.includes("jsdom")===!0,Fe=typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope,Ve=typeof DedicatedWorkerGlobalScope<"u"&&globalThis instanceof DedicatedWorkerGlobalScope,Ge=typeof SharedWorkerGlobalScope<"u"&&globalThis instanceof SharedWorkerGlobalScope,Ie=typeof ServiceWorkerGlobalScope<"u"&&globalThis instanceof ServiceWorkerGlobalScope,u=globalThis.navigator?.userAgentData?.platform,$e=u==="macOS"||globalThis.navigator?.platform==="MacIntel"||globalThis.navigator?.userAgent?.includes(" Mac ")===!0||globalThis.process?.platform==="darwin",Ne=u==="Windows"||globalThis.navigator?.platform==="Win32"||globalThis.process?.platform==="win32",je=u==="Linux"||globalThis.navigator?.platform?.startsWith("Linux")===!0||globalThis.navigator?.userAgent?.includes(" Linux ")===!0||globalThis.process?.platform==="linux",Ke=u==="iOS"||globalThis.navigator?.platform==="MacIntel"&&globalThis.navigator?.maxTouchPoints>1||/iPad|iPhone|iPod/.test(globalThis.navigator?.platform),Je=u==="Android"||globalThis.navigator?.platform==="Android"||globalThis.navigator?.userAgent?.includes(" Android ")===!0||globalThis.process?.platform==="android";var n="\x1B[",h="\x1B]",c="\x07",p=";",k=!D&&B.env.TERM_PROGRAM==="Apple_Terminal",G=!D&&B.platform==="win32",I=D?()=>{throw new Error("`process.cwd()` only works in Node.js, not the browser.")}:B.cwd,$=i((e,o)=>{if(typeof e!="number")throw new TypeError("The `x` argument is required");return typeof o!="number"?n+(e+1)+"G":n+(o+1)+p+(e+1)+"H"},"cursorTo"),N=i((e,o)=>{if(typeof e!="number")throw new TypeError("The `x` argument is required");let t="";return e<0?t+=n+-e+"D":e>0&&(t+=n+e+"C"),o<0?t+=n+-o+"A":o>0&&(t+=n+o+"B"),t},"cursorMove"),A=i((e=1)=>n+e+"A","cursorUp"),j=i((e=1)=>n+e+"B","cursorDown"),K=i((e=1)=>n+e+"C","cursorForward"),J=i((e=1)=>n+e+"D","cursorBackward"),y=n+"G",_=k?"\x1B7":n+"s",H=k?"\x1B8":n+"u",z=n+"6n",Q=n+"E",Y=n+"F",X=n+"?25l",Z=n+"?25h",ee=i(e=>{let o="";for(let t=0;t<e;t++)o+=E+(t<e-1?A():"");return e&&(o+=y),o},"eraseLines"),oe=n+"K",te=n+"1K",E=n+"2K",ne=n+"J",ie=n+"1J",m=n+"2J",le=n+"S",re=n+"T",se="\x1Bc",ae=G?`${m}${n}0f`:`${m}${n}3J${n}H`,ce=n+"?1049h",de=n+"?1049l",ue=c,pe=i((e,o)=>[h,"8",p,p,o,c,e,h,"8",p,p,c].join(""),"link"),he=i((e,o={})=>{let t=`${h}1337;File=inline=1`;return o.width&&(t+=`;width=${o.width}`),o.height&&(t+=`;height=${o.height}`),o.preserveAspectRatio===!1&&(t+=";preserveAspectRatio=0"),t+":"+Buffer.from(e).toString("base64")+c},"image"),fe={setCwd:i((e=I())=>`${h}50;CurrentDir=${e}${c}`,"setCwd"),annotation(e,o={}){let t=`${h}1337;`,r=o.x!==void 0,a=o.y!==void 0;if((r||a)&&!(r&&a&&o.length!==void 0))throw new Error("`x`, `y` and `length` must be defined when `x` or `y` is defined");return e=e.replaceAll("|",""),t+=o.isHidden?"AddHiddenAnnotation=":"AddAnnotation=",o.length>0?t+=(r?[e,o.length,o.x,o.y]:[o.length,e]).join("|"):t+=e,t+c}};l();l();import De from"node:assert";import ge from"node:events";import s from"node:process";import O from"node:readline";var M=class e extends ge{static{i(this,"Prompt")}static active=!1;value=void 0;firstRender=!0;done=!1;closed=!1;aborted=!1;exited=!1;close;constructor(){super(),De(!e.active,"only one prompt can be active at a time"),e.active=!0;let o=O.createInterface({input:s.stdin,escapeCodeTimeout:50});O.emitKeypressEvents(s.stdin,o),s.stdin.isTTY&&s.stdin.setRawMode(!0);let t=["SelectPrompt"].includes(this.constructor.name),r=i((a,b)=>{let f=be(b,t);f===!1?this._(a,b):f&&typeof this[f]=="function"?this[f](b):this.bell()},"keypress");this.close=()=>{s.stdin.removeListener("keypress",r),s.stdin.isTTY&&s.stdin.setRawMode(!1),o.close(),this.emit(this.aborted?"abort":this.exited?"exit":"submit",this.value),this.closed=!0,e.active=!1},s.stdin.on("keypress",r)}_(o,t){}onRender(){}fire(){this.emit("state",{value:this.value,aborted:this.aborted,exited:this.exited})}bell(){L.writeStdout(g.beep)}render(){this.onRender(),this.firstRender&&(this.firstRender=!1)}},be=i((e,o)=>{if(!(e.meta&&e.name!=="escape")){if(e.ctrl)switch(e.name){case"a":return"first";case"c":case"d":return"abort";case"e":return"last";case"g":return"reset"}if(o){if(e.name==="j")return"down";if(e.name==="k")return"up"}switch(e.name){case"return":case"enter":return"submit";case"backspace":return"delete";case"delete":return"deleteForward";case"abort":return"abort";case"escape":return"exit";case"tab":return"next";case"pagedown":return"nextPage";case"pageup":return"prevPage";case"home":return"home";case"end":return"end";case"up":return"up";case"down":return"down";case"right":return"right";case"left":return"left";default:return!1}}},"getPromptAction"),ao=i((e,o,t)=>{t=t||o;let r=Math.min(o-t,e-Math.floor(t/2));r<0&&(r=0);let a=Math.min(r+t,o);return{startIndex:r,endIndex:a}},"entriesToDisplay");export{g as a,V as b,M as c,ao as d};
2
+ //# sourceMappingURL=chunk-XGQQOMPO.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/services/output/symbols.ts", "../node_modules/.pnpm/figures@6.1.0/node_modules/figures/index.js", "../node_modules/.pnpm/is-unicode-supported@2.1.0/node_modules/is-unicode-supported/index.js", "../node_modules/.pnpm/ansi-escapes@7.0.0/node_modules/ansi-escapes/base.js", "../node_modules/.pnpm/environment@1.1.0/node_modules/environment/index.js", "../node_modules/.pnpm/ansi-escapes@7.0.0/node_modules/ansi-escapes/index.js", "../src/services/output/prompt.ts"],
4
+ "sourcesContent": ["// eslint-disable-next-line no-restricted-imports -- this is the only place we're allowed to import figures\nimport figures, { mainSymbols } from \"figures\";\nimport isUnicodeSupported from \"is-unicode-supported\";\nimport { config } from \"../config/config.js\";\nimport { env } from \"../config/env.js\";\n\n// we always use main symbols in tests rather than figures so that our\n// tests are consistent across platforms (particularly Windows)\nexport const symbol = { ...(env.testLike ? mainSymbols : figures) };\n\nif (isUnicodeSupported() && config.windowsOrWsl) {\n // when unicode is supported and we're on windows or wsl, these\n // symbols end up rendering over two cells while only taking up one,\n // so we add an extra space to each of them to make them take up two\n for (const name of [\"tick\", \"cross\"] as const) {\n symbol[name] += \" \";\n }\n}\n", "import isUnicodeSupported from 'is-unicode-supported';\n\nconst common = {\n\tcircleQuestionMark: '(?)',\n\tquestionMarkPrefix: '(?)',\n\tsquare: '\u2588',\n\tsquareDarkShade: '\u2593',\n\tsquareMediumShade: '\u2592',\n\tsquareLightShade: '\u2591',\n\tsquareTop: '\u2580',\n\tsquareBottom: '\u2584',\n\tsquareLeft: '\u258C',\n\tsquareRight: '\u2590',\n\tsquareCenter: '\u25A0',\n\tbullet: '\u25CF',\n\tdot: '\u2024',\n\tellipsis: '\u2026',\n\tpointerSmall: '\u203A',\n\ttriangleUp: '\u25B2',\n\ttriangleUpSmall: '\u25B4',\n\ttriangleDown: '\u25BC',\n\ttriangleDownSmall: '\u25BE',\n\ttriangleLeftSmall: '\u25C2',\n\ttriangleRightSmall: '\u25B8',\n\thome: '\u2302',\n\theart: '\u2665',\n\tmusicNote: '\u266A',\n\tmusicNoteBeamed: '\u266B',\n\tarrowUp: '\u2191',\n\tarrowDown: '\u2193',\n\tarrowLeft: '\u2190',\n\tarrowRight: '\u2192',\n\tarrowLeftRight: '\u2194',\n\tarrowUpDown: '\u2195',\n\talmostEqual: '\u2248',\n\tnotEqual: '\u2260',\n\tlessOrEqual: '\u2264',\n\tgreaterOrEqual: '\u2265',\n\tidentical: '\u2261',\n\tinfinity: '\u221E',\n\tsubscriptZero: '\u2080',\n\tsubscriptOne: '\u2081',\n\tsubscriptTwo: '\u2082',\n\tsubscriptThree: '\u2083',\n\tsubscriptFour: '\u2084',\n\tsubscriptFive: '\u2085',\n\tsubscriptSix: '\u2086',\n\tsubscriptSeven: '\u2087',\n\tsubscriptEight: '\u2088',\n\tsubscriptNine: '\u2089',\n\toneHalf: '\u00BD',\n\toneThird: '\u2153',\n\toneQuarter: '\u00BC',\n\toneFifth: '\u2155',\n\toneSixth: '\u2159',\n\toneEighth: '\u215B',\n\ttwoThirds: '\u2154',\n\ttwoFifths: '\u2156',\n\tthreeQuarters: '\u00BE',\n\tthreeFifths: '\u2157',\n\tthreeEighths: '\u215C',\n\tfourFifths: '\u2158',\n\tfiveSixths: '\u215A',\n\tfiveEighths: '\u215D',\n\tsevenEighths: '\u215E',\n\tline: '\u2500',\n\tlineBold: '\u2501',\n\tlineDouble: '\u2550',\n\tlineDashed0: '\u2504',\n\tlineDashed1: '\u2505',\n\tlineDashed2: '\u2508',\n\tlineDashed3: '\u2509',\n\tlineDashed4: '\u254C',\n\tlineDashed5: '\u254D',\n\tlineDashed6: '\u2574',\n\tlineDashed7: '\u2576',\n\tlineDashed8: '\u2578',\n\tlineDashed9: '\u257A',\n\tlineDashed10: '\u257C',\n\tlineDashed11: '\u257E',\n\tlineDashed12: '\u2212',\n\tlineDashed13: '\u2013',\n\tlineDashed14: '\u2010',\n\tlineDashed15: '\u2043',\n\tlineVertical: '\u2502',\n\tlineVerticalBold: '\u2503',\n\tlineVerticalDouble: '\u2551',\n\tlineVerticalDashed0: '\u2506',\n\tlineVerticalDashed1: '\u2507',\n\tlineVerticalDashed2: '\u250A',\n\tlineVerticalDashed3: '\u250B',\n\tlineVerticalDashed4: '\u254E',\n\tlineVerticalDashed5: '\u254F',\n\tlineVerticalDashed6: '\u2575',\n\tlineVerticalDashed7: '\u2577',\n\tlineVerticalDashed8: '\u2579',\n\tlineVerticalDashed9: '\u257B',\n\tlineVerticalDashed10: '\u257D',\n\tlineVerticalDashed11: '\u257F',\n\tlineDownLeft: '\u2510',\n\tlineDownLeftArc: '\u256E',\n\tlineDownBoldLeftBold: '\u2513',\n\tlineDownBoldLeft: '\u2512',\n\tlineDownLeftBold: '\u2511',\n\tlineDownDoubleLeftDouble: '\u2557',\n\tlineDownDoubleLeft: '\u2556',\n\tlineDownLeftDouble: '\u2555',\n\tlineDownRight: '\u250C',\n\tlineDownRightArc: '\u256D',\n\tlineDownBoldRightBold: '\u250F',\n\tlineDownBoldRight: '\u250E',\n\tlineDownRightBold: '\u250D',\n\tlineDownDoubleRightDouble: '\u2554',\n\tlineDownDoubleRight: '\u2553',\n\tlineDownRightDouble: '\u2552',\n\tlineUpLeft: '\u2518',\n\tlineUpLeftArc: '\u256F',\n\tlineUpBoldLeftBold: '\u251B',\n\tlineUpBoldLeft: '\u251A',\n\tlineUpLeftBold: '\u2519',\n\tlineUpDoubleLeftDouble: '\u255D',\n\tlineUpDoubleLeft: '\u255C',\n\tlineUpLeftDouble: '\u255B',\n\tlineUpRight: '\u2514',\n\tlineUpRightArc: '\u2570',\n\tlineUpBoldRightBold: '\u2517',\n\tlineUpBoldRight: '\u2516',\n\tlineUpRightBold: '\u2515',\n\tlineUpDoubleRightDouble: '\u255A',\n\tlineUpDoubleRight: '\u2559',\n\tlineUpRightDouble: '\u2558',\n\tlineUpDownLeft: '\u2524',\n\tlineUpBoldDownBoldLeftBold: '\u252B',\n\tlineUpBoldDownBoldLeft: '\u2528',\n\tlineUpDownLeftBold: '\u2525',\n\tlineUpBoldDownLeftBold: '\u2529',\n\tlineUpDownBoldLeftBold: '\u252A',\n\tlineUpDownBoldLeft: '\u2527',\n\tlineUpBoldDownLeft: '\u2526',\n\tlineUpDoubleDownDoubleLeftDouble: '\u2563',\n\tlineUpDoubleDownDoubleLeft: '\u2562',\n\tlineUpDownLeftDouble: '\u2561',\n\tlineUpDownRight: '\u251C',\n\tlineUpBoldDownBoldRightBold: '\u2523',\n\tlineUpBoldDownBoldRight: '\u2520',\n\tlineUpDownRightBold: '\u251D',\n\tlineUpBoldDownRightBold: '\u2521',\n\tlineUpDownBoldRightBold: '\u2522',\n\tlineUpDownBoldRight: '\u251F',\n\tlineUpBoldDownRight: '\u251E',\n\tlineUpDoubleDownDoubleRightDouble: '\u2560',\n\tlineUpDoubleDownDoubleRight: '\u255F',\n\tlineUpDownRightDouble: '\u255E',\n\tlineDownLeftRight: '\u252C',\n\tlineDownBoldLeftBoldRightBold: '\u2533',\n\tlineDownLeftBoldRightBold: '\u252F',\n\tlineDownBoldLeftRight: '\u2530',\n\tlineDownBoldLeftBoldRight: '\u2531',\n\tlineDownBoldLeftRightBold: '\u2532',\n\tlineDownLeftRightBold: '\u252E',\n\tlineDownLeftBoldRight: '\u252D',\n\tlineDownDoubleLeftDoubleRightDouble: '\u2566',\n\tlineDownDoubleLeftRight: '\u2565',\n\tlineDownLeftDoubleRightDouble: '\u2564',\n\tlineUpLeftRight: '\u2534',\n\tlineUpBoldLeftBoldRightBold: '\u253B',\n\tlineUpLeftBoldRightBold: '\u2537',\n\tlineUpBoldLeftRight: '\u2538',\n\tlineUpBoldLeftBoldRight: '\u2539',\n\tlineUpBoldLeftRightBold: '\u253A',\n\tlineUpLeftRightBold: '\u2536',\n\tlineUpLeftBoldRight: '\u2535',\n\tlineUpDoubleLeftDoubleRightDouble: '\u2569',\n\tlineUpDoubleLeftRight: '\u2568',\n\tlineUpLeftDoubleRightDouble: '\u2567',\n\tlineUpDownLeftRight: '\u253C',\n\tlineUpBoldDownBoldLeftBoldRightBold: '\u254B',\n\tlineUpDownBoldLeftBoldRightBold: '\u2548',\n\tlineUpBoldDownLeftBoldRightBold: '\u2547',\n\tlineUpBoldDownBoldLeftRightBold: '\u254A',\n\tlineUpBoldDownBoldLeftBoldRight: '\u2549',\n\tlineUpBoldDownLeftRight: '\u2540',\n\tlineUpDownBoldLeftRight: '\u2541',\n\tlineUpDownLeftBoldRight: '\u253D',\n\tlineUpDownLeftRightBold: '\u253E',\n\tlineUpBoldDownBoldLeftRight: '\u2542',\n\tlineUpDownLeftBoldRightBold: '\u253F',\n\tlineUpBoldDownLeftBoldRight: '\u2543',\n\tlineUpBoldDownLeftRightBold: '\u2544',\n\tlineUpDownBoldLeftBoldRight: '\u2545',\n\tlineUpDownBoldLeftRightBold: '\u2546',\n\tlineUpDoubleDownDoubleLeftDoubleRightDouble: '\u256C',\n\tlineUpDoubleDownDoubleLeftRight: '\u256B',\n\tlineUpDownLeftDoubleRightDouble: '\u256A',\n\tlineCross: '\u2573',\n\tlineBackslash: '\u2572',\n\tlineSlash: '\u2571',\n};\n\nconst specialMainSymbols = {\n\ttick: '\u2714',\n\tinfo: '\u2139',\n\twarning: '\u26A0',\n\tcross: '\u2718',\n\tsquareSmall: '\u25FB',\n\tsquareSmallFilled: '\u25FC',\n\tcircle: '\u25EF',\n\tcircleFilled: '\u25C9',\n\tcircleDotted: '\u25CC',\n\tcircleDouble: '\u25CE',\n\tcircleCircle: '\u24DE',\n\tcircleCross: '\u24E7',\n\tcirclePipe: '\u24BE',\n\tradioOn: '\u25C9',\n\tradioOff: '\u25EF',\n\tcheckboxOn: '\u2612',\n\tcheckboxOff: '\u2610',\n\tcheckboxCircleOn: '\u24E7',\n\tcheckboxCircleOff: '\u24BE',\n\tpointer: '\u276F',\n\ttriangleUpOutline: '\u25B3',\n\ttriangleLeft: '\u25C0',\n\ttriangleRight: '\u25B6',\n\tlozenge: '\u25C6',\n\tlozengeOutline: '\u25C7',\n\thamburger: '\u2630',\n\tsmiley: '\u32E1',\n\tmustache: '\u0DF4',\n\tstar: '\u2605',\n\tplay: '\u25B6',\n\tnodejs: '\u2B22',\n\toneSeventh: '\u2150',\n\toneNinth: '\u2151',\n\toneTenth: '\u2152',\n};\n\nconst specialFallbackSymbols = {\n\ttick: '\u221A',\n\tinfo: 'i',\n\twarning: '\u203C',\n\tcross: '\u00D7',\n\tsquareSmall: '\u25A1',\n\tsquareSmallFilled: '\u25A0',\n\tcircle: '( )',\n\tcircleFilled: '(*)',\n\tcircleDotted: '( )',\n\tcircleDouble: '( )',\n\tcircleCircle: '(\u25CB)',\n\tcircleCross: '(\u00D7)',\n\tcirclePipe: '(\u2502)',\n\tradioOn: '(*)',\n\tradioOff: '( )',\n\tcheckboxOn: '[\u00D7]',\n\tcheckboxOff: '[ ]',\n\tcheckboxCircleOn: '(\u00D7)',\n\tcheckboxCircleOff: '( )',\n\tpointer: '>',\n\ttriangleUpOutline: '\u2206',\n\ttriangleLeft: '\u25C4',\n\ttriangleRight: '\u25BA',\n\tlozenge: '\u2666',\n\tlozengeOutline: '\u25CA',\n\thamburger: '\u2261',\n\tsmiley: '\u263A',\n\tmustache: '\u250C\u2500\u2510',\n\tstar: '\u2736',\n\tplay: '\u25BA',\n\tnodejs: '\u2666',\n\toneSeventh: '1/7',\n\toneNinth: '1/9',\n\toneTenth: '1/10',\n};\n\nexport const mainSymbols = {...common, ...specialMainSymbols};\nexport const fallbackSymbols = {...common, ...specialFallbackSymbols};\n\nconst shouldUseMain = isUnicodeSupported();\nconst figures = shouldUseMain ? mainSymbols : fallbackSymbols;\nexport default figures;\n\nconst replacements = Object.entries(specialMainSymbols);\n\n// On terminals which do not support Unicode symbols, substitute them to other symbols\nexport const replaceSymbols = (string, {useFallback = !shouldUseMain} = {}) => {\n\tif (useFallback) {\n\t\tfor (const [key, mainSymbol] of replacements) {\n\t\t\tstring = string.replaceAll(mainSymbol, fallbackSymbols[key]);\n\t\t}\n\t}\n\n\treturn string;\n};\n", "import process from 'node:process';\n\nexport default function isUnicodeSupported() {\n\tconst {env} = process;\n\tconst {TERM, TERM_PROGRAM} = env;\n\n\tif (process.platform !== 'win32') {\n\t\treturn TERM !== 'linux'; // Linux console (kernel)\n\t}\n\n\treturn Boolean(env.WT_SESSION) // Windows Terminal\n\t\t|| Boolean(env.TERMINUS_SUBLIME) // Terminus (<0.2.27)\n\t\t|| env.ConEmuTask === '{cmd::Cmder}' // ConEmu and cmder\n\t\t|| TERM_PROGRAM === 'Terminus-Sublime'\n\t\t|| TERM_PROGRAM === 'vscode'\n\t\t|| TERM === 'xterm-256color'\n\t\t|| TERM === 'alacritty'\n\t\t|| TERM === 'rxvt-unicode'\n\t\t|| TERM === 'rxvt-unicode-256color'\n\t\t|| env.TERMINAL_EMULATOR === 'JetBrains-JediTerm';\n}\n", "import process from 'node:process';\nimport {isBrowser} from 'environment';\n\nconst ESC = '\\u001B[';\nconst OSC = '\\u001B]';\nconst BEL = '\\u0007';\nconst SEP = ';';\n\nconst isTerminalApp = !isBrowser && process.env.TERM_PROGRAM === 'Apple_Terminal';\nconst isWindows = !isBrowser && process.platform === 'win32';\n\nconst cwdFunction = isBrowser ? () => {\n\tthrow new Error('`process.cwd()` only works in Node.js, not the browser.');\n} : process.cwd;\n\nexport const cursorTo = (x, y) => {\n\tif (typeof x !== 'number') {\n\t\tthrow new TypeError('The `x` argument is required');\n\t}\n\n\tif (typeof y !== 'number') {\n\t\treturn ESC + (x + 1) + 'G';\n\t}\n\n\treturn ESC + (y + 1) + SEP + (x + 1) + 'H';\n};\n\nexport const cursorMove = (x, y) => {\n\tif (typeof x !== 'number') {\n\t\tthrow new TypeError('The `x` argument is required');\n\t}\n\n\tlet returnValue = '';\n\n\tif (x < 0) {\n\t\treturnValue += ESC + (-x) + 'D';\n\t} else if (x > 0) {\n\t\treturnValue += ESC + x + 'C';\n\t}\n\n\tif (y < 0) {\n\t\treturnValue += ESC + (-y) + 'A';\n\t} else if (y > 0) {\n\t\treturnValue += ESC + y + 'B';\n\t}\n\n\treturn returnValue;\n};\n\nexport const cursorUp = (count = 1) => ESC + count + 'A';\nexport const cursorDown = (count = 1) => ESC + count + 'B';\nexport const cursorForward = (count = 1) => ESC + count + 'C';\nexport const cursorBackward = (count = 1) => ESC + count + 'D';\n\nexport const cursorLeft = ESC + 'G';\nexport const cursorSavePosition = isTerminalApp ? '\\u001B7' : ESC + 's';\nexport const cursorRestorePosition = isTerminalApp ? '\\u001B8' : ESC + 'u';\nexport const cursorGetPosition = ESC + '6n';\nexport const cursorNextLine = ESC + 'E';\nexport const cursorPrevLine = ESC + 'F';\nexport const cursorHide = ESC + '?25l';\nexport const cursorShow = ESC + '?25h';\n\nexport const eraseLines = count => {\n\tlet clear = '';\n\n\tfor (let i = 0; i < count; i++) {\n\t\tclear += eraseLine + (i < count - 1 ? cursorUp() : '');\n\t}\n\n\tif (count) {\n\t\tclear += cursorLeft;\n\t}\n\n\treturn clear;\n};\n\nexport const eraseEndLine = ESC + 'K';\nexport const eraseStartLine = ESC + '1K';\nexport const eraseLine = ESC + '2K';\nexport const eraseDown = ESC + 'J';\nexport const eraseUp = ESC + '1J';\nexport const eraseScreen = ESC + '2J';\nexport const scrollUp = ESC + 'S';\nexport const scrollDown = ESC + 'T';\n\nexport const clearScreen = '\\u001Bc';\n\nexport const clearTerminal = isWindows\n\t? `${eraseScreen}${ESC}0f`\n\t// 1. Erases the screen (Only done in case `2` is not supported)\n\t// 2. Erases the whole screen including scrollback buffer\n\t// 3. Moves cursor to the top-left position\n\t// More info: https://www.real-world-systems.com/docs/ANSIcode.html\n\t:\t`${eraseScreen}${ESC}3J${ESC}H`;\n\nexport const enterAlternativeScreen = ESC + '?1049h';\nexport const exitAlternativeScreen = ESC + '?1049l';\n\nexport const beep = BEL;\n\nexport const link = (text, url) => [\n\tOSC,\n\t'8',\n\tSEP,\n\tSEP,\n\turl,\n\tBEL,\n\ttext,\n\tOSC,\n\t'8',\n\tSEP,\n\tSEP,\n\tBEL,\n].join('');\n\nexport const image = (data, options = {}) => {\n\tlet returnValue = `${OSC}1337;File=inline=1`;\n\n\tif (options.width) {\n\t\treturnValue += `;width=${options.width}`;\n\t}\n\n\tif (options.height) {\n\t\treturnValue += `;height=${options.height}`;\n\t}\n\n\tif (options.preserveAspectRatio === false) {\n\t\treturnValue += ';preserveAspectRatio=0';\n\t}\n\n\treturn returnValue + ':' + Buffer.from(data).toString('base64') + BEL;\n};\n\nexport const iTerm = {\n\tsetCwd: (cwd = cwdFunction()) => `${OSC}50;CurrentDir=${cwd}${BEL}`,\n\n\tannotation(message, options = {}) {\n\t\tlet returnValue = `${OSC}1337;`;\n\n\t\tconst hasX = options.x !== undefined;\n\t\tconst hasY = options.y !== undefined;\n\t\tif ((hasX || hasY) && !(hasX && hasY && options.length !== undefined)) {\n\t\t\tthrow new Error('`x`, `y` and `length` must be defined when `x` or `y` is defined');\n\t\t}\n\n\t\tmessage = message.replaceAll('|', '');\n\n\t\treturnValue += options.isHidden ? 'AddHiddenAnnotation=' : 'AddAnnotation=';\n\n\t\tif (options.length > 0) {\n\t\t\treturnValue += (\n\t\t\t\thasX\n\t\t\t\t\t? [message, options.length, options.x, options.y]\n\t\t\t\t\t: [options.length, message]\n\t\t\t).join('|');\n\t\t} else {\n\t\t\treturnValue += message;\n\t\t}\n\n\t\treturn returnValue + BEL;\n\t},\n};\n", "/* globals WorkerGlobalScope, DedicatedWorkerGlobalScope, SharedWorkerGlobalScope, ServiceWorkerGlobalScope */\n\nexport const isBrowser = globalThis.window?.document !== undefined;\n\nexport const isNode = globalThis.process?.versions?.node !== undefined;\n\nexport const isBun = globalThis.process?.versions?.bun !== undefined;\n\nexport const isDeno = globalThis.Deno?.version?.deno !== undefined;\n\nexport const isElectron = globalThis.process?.versions?.electron !== undefined;\n\nexport const isJsDom = globalThis.navigator?.userAgent?.includes('jsdom') === true;\n\nexport const isWebWorker = typeof WorkerGlobalScope !== 'undefined' && globalThis instanceof WorkerGlobalScope;\n\nexport const isDedicatedWorker = typeof DedicatedWorkerGlobalScope !== 'undefined' && globalThis instanceof DedicatedWorkerGlobalScope;\n\nexport const isSharedWorker = typeof SharedWorkerGlobalScope !== 'undefined' && globalThis instanceof SharedWorkerGlobalScope;\n\nexport const isServiceWorker = typeof ServiceWorkerGlobalScope !== 'undefined' && globalThis instanceof ServiceWorkerGlobalScope;\n\n// Note: I'm intentionally not DRYing up the other variables to keep them \"lazy\".\nconst platform = globalThis.navigator?.userAgentData?.platform;\n\nexport const isMacOs = platform === 'macOS'\n\t|| globalThis.navigator?.platform === 'MacIntel' // Even on Apple silicon Macs.\n\t|| globalThis.navigator?.userAgent?.includes(' Mac ') === true\n\t|| globalThis.process?.platform === 'darwin';\n\nexport const isWindows = platform === 'Windows'\n\t|| globalThis.navigator?.platform === 'Win32'\n\t|| globalThis.process?.platform === 'win32';\n\nexport const isLinux = platform === 'Linux'\n\t|| globalThis.navigator?.platform?.startsWith('Linux') === true\n\t|| globalThis.navigator?.userAgent?.includes(' Linux ') === true\n\t|| globalThis.process?.platform === 'linux';\n\nexport const isIos = platform === 'iOS'\n\t|| (globalThis.navigator?.platform === 'MacIntel' && globalThis.navigator?.maxTouchPoints > 1)\n\t|| /iPad|iPhone|iPod/.test(globalThis.navigator?.platform);\n\nexport const isAndroid = platform === 'Android'\n\t|| globalThis.navigator?.platform === 'Android'\n\t|| globalThis.navigator?.userAgent?.includes(' Android ') === true\n\t|| globalThis.process?.platform === 'android';\n", "export * from './base.js';\nexport * as default from './base.js';\n", "import ansiEscapes from \"ansi-escapes\";\nimport assert from \"node:assert\";\nimport EventEmitter from \"node:events\";\nimport process from \"node:process\";\nimport readline from \"node:readline\";\nimport { output } from \"./output.js\";\n\n/**\n * Inspired by `prompts`:\n * https://github.com/terkelg/prompts/blob/e0519913ec4fcc6746bb3d97d8cd0960c3f3ffde/lib/elements/prompt.js\n *\n * MIT License\n *\n * Copyright (c) 2018 Terkel Gjervig Nielsen\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nexport class Prompt extends EventEmitter {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [action: string]: any; // (key: StdinKey) => void;\n\n static active = false;\n\n // state\n value: unknown = undefined;\n firstRender = true;\n done = false;\n closed = false;\n aborted = false;\n exited = false;\n\n // methods that rely on constructor closure\n close: () => void;\n\n constructor() {\n super();\n assert(!Prompt.active, \"only one prompt can be active at a time\");\n Prompt.active = true;\n\n const rl = readline.createInterface({ input: process.stdin, escapeCodeTimeout: 50 });\n readline.emitKeypressEvents(process.stdin, rl);\n\n if (process.stdin.isTTY) {\n process.stdin.setRawMode(true);\n }\n\n const isSelect = [\"SelectPrompt\"].includes(this.constructor.name);\n const keypress = (str: string, key: StdinKey): void => {\n const action = getPromptAction(key, isSelect);\n if (action === false) {\n this._(str, key);\n } else if (action && typeof this[action] === \"function\") {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call\n this[action](key);\n } else {\n this.bell();\n }\n };\n\n this.close = () => {\n process.stdin.removeListener(\"keypress\", keypress);\n if (process.stdin.isTTY) {\n process.stdin.setRawMode(false);\n }\n\n rl.close();\n this.emit(this.aborted ? \"abort\" : this.exited ? \"exit\" : \"submit\", this.value);\n this.closed = true;\n Prompt.active = false;\n };\n\n process.stdin.on(\"keypress\", keypress);\n }\n\n _(_str: string, _key: StdinKey): void {\n // noop\n }\n\n onRender(): void {\n // noop\n }\n\n fire(): void {\n this.emit(\"state\", {\n value: this.value,\n aborted: this.aborted,\n exited: this.exited,\n });\n }\n\n bell(): void {\n output.writeStdout(ansiEscapes.beep);\n }\n\n render(): void {\n this.onRender();\n if (this.firstRender) {\n this.firstRender = false;\n }\n }\n}\n\nexport type PromptAction =\n | \"abort\"\n | \"exit\"\n | \"submit\"\n | \"next\"\n | \"nextPage\"\n | \"prevPage\"\n | \"home\"\n | \"end\"\n | \"up\"\n | \"down\"\n | \"right\"\n | \"left\"\n | \"reset\"\n | \"delete\"\n | \"deleteForward\"\n | \"first\"\n | \"last\";\n\nexport type StdinKey = {\n name: string;\n ctrl: boolean;\n meta: boolean;\n};\n\nconst getPromptAction = (key: StdinKey, isSelect: boolean): PromptAction | false | undefined => {\n if (key.meta && key.name !== \"escape\") {\n return;\n }\n\n if (key.ctrl) {\n switch (key.name) {\n case \"a\":\n return \"first\";\n case \"c\":\n case \"d\":\n return \"abort\";\n case \"e\":\n return \"last\";\n case \"g\":\n return \"reset\";\n }\n }\n\n if (isSelect) {\n if (key.name === \"j\") {\n return \"down\";\n }\n if (key.name === \"k\") {\n return \"up\";\n }\n }\n\n switch (key.name) {\n case \"return\":\n case \"enter\":\n return \"submit\";\n case \"backspace\":\n return \"delete\";\n case \"delete\":\n return \"deleteForward\";\n case \"abort\":\n return \"abort\";\n case \"escape\":\n return \"exit\";\n case \"tab\":\n return \"next\";\n case \"pagedown\":\n return \"nextPage\";\n case \"pageup\":\n return \"prevPage\";\n case \"home\":\n return \"home\";\n case \"end\":\n return \"end\";\n case \"up\":\n return \"up\";\n case \"down\":\n return \"down\";\n case \"right\":\n return \"right\";\n case \"left\":\n return \"left\";\n default:\n return false;\n }\n};\n\n/**\n * Determine what entries should be displayed on the screen, based on the\n * currently selected index and the maximum visible. Used in list-based\n * prompts like `select` and `multiselect`.\n *\n * @param cursor - the currently selected entry\n * @param total - the total entries available to display\n * @param [maxVisible] - the number of entries that can be displayed\n */\nexport const entriesToDisplay = (cursor: number, total: number, maxVisible: number): { startIndex: number; endIndex: number } => {\n maxVisible = maxVisible || total;\n\n let startIndex = Math.min(total - maxVisible, cursor - Math.floor(maxVisible / 2));\n if (startIndex < 0) {\n startIndex = 0;\n }\n\n const endIndex = Math.min(startIndex + maxVisible, total);\n\n return { startIndex, endIndex };\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["init_cjs", "init_cjs", "init_cjs", "process", "isUnicodeSupported", "env", "process", "TERM", "TERM_PROGRAM", "__name", "common", "specialMainSymbols", "specialFallbackSymbols", "mainSymbols", "fallbackSymbols", "shouldUseMain", "isUnicodeSupported", "figures", "figures_default", "replacements", "symbol", "env", "mainSymbols", "figures_default", "isUnicodeSupported", "config", "name", "base_exports", "__export", "beep", "clearScreen", "clearTerminal", "cursorBackward", "cursorDown", "cursorForward", "cursorGetPosition", "cursorHide", "cursorLeft", "cursorMove", "cursorNextLine", "cursorPrevLine", "cursorRestorePosition", "cursorSavePosition", "cursorShow", "cursorTo", "cursorUp", "enterAlternativeScreen", "eraseDown", "eraseEndLine", "eraseLine", "eraseLines", "eraseScreen", "eraseStartLine", "eraseUp", "exitAlternativeScreen", "iTerm", "image", "link", "scrollDown", "scrollUp", "init_cjs", "process", "init_cjs", "isBrowser", "isNode", "isBun", "isDeno", "isElectron", "isJsDom", "isWebWorker", "isDedicatedWorker", "isSharedWorker", "isServiceWorker", "platform", "isMacOs", "isWindows", "isLinux", "isIos", "isAndroid", "ESC", "OSC", "BEL", "SEP", "isTerminalApp", "isBrowser", "process", "isWindows", "cwdFunction", "cursorTo", "__name", "x", "y", "cursorMove", "returnValue", "cursorUp", "count", "cursorDown", "cursorForward", "cursorBackward", "cursorLeft", "cursorSavePosition", "cursorRestorePosition", "cursorGetPosition", "cursorNextLine", "cursorPrevLine", "cursorHide", "cursorShow", "eraseLines", "clear", "i", "eraseLine", "eraseEndLine", "eraseStartLine", "eraseDown", "eraseUp", "eraseScreen", "scrollUp", "scrollDown", "clearScreen", "clearTerminal", "enterAlternativeScreen", "exitAlternativeScreen", "beep", "link", "text", "url", "image", "data", "options", "iTerm", "cwd", "message", "hasX", "hasY", "init_cjs", "init_cjs", "assert", "EventEmitter", "process", "readline", "Prompt", "_Prompt", "EventEmitter", "__name", "assert", "rl", "readline", "process", "isSelect", "keypress", "str", "key", "action", "getPromptAction", "_str", "_key", "output", "base_exports", "entriesToDisplay", "cursor", "total", "maxVisible", "startIndex", "endIndex"]
7
+ }
@@ -0,0 +1,12 @@
1
+ import{a as i,b as s,c as g}from"./chunk-ILB6CSBN.js";import{b as n}from"./chunk-JSGXXXFU.js";import"./chunk-JBY5A44K.js";import"./chunk-XGQQOMPO.js";import"./chunk-KMNQ3LJT.js";import{ha as a,ja as r}from"./chunk-24OT7GHO.js";import{a as o,h as t}from"./chunk-7DYQUG5M.js";t();var c=o(e=>{n({json:e,headers:["Option","Configured Value"],rows:[["telemetry",String(e.telemetry)],["json",String(e.json)]],borders:"thick"})},"printDefaultsConfig"),m=o(e=>a`
2
+ Make changes to the configured defaults. This allows you to set an option on every ggt command by default without
3
+ needing to set a flag on every command.
4
+
5
+ {gray Usage}
6
+ ggt configure show
7
+
8
+ ggt configure change
9
+
10
+ ggt configure clear
11
+ `,"usage"),h=o(async(e,f)=>{switch(f._[0]){case"show":c(await s(e,!1));break;case"change":await i(e);break;case"clear":await g(e);break;default:r(m(e));return}},"run");export{h as run,m as usage};
12
+ //# sourceMappingURL=configure-LD5XC2MR.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/commands/configure.ts"],
4
+ "sourcesContent": ["import type { Run, Usage } from \"../services/command/command.js\";\nimport { clearDefaultsConfig, type DefaultsConfigData, loadDefaultsConfig, promptDefaultsConfig } from \"../services/config/defaults.js\";\nimport { println } from \"../services/output/print.js\";\nimport { sprint } from \"../services/output/sprint.js\";\nimport { printTable } from \"../services/output/table.js\";\n\nconst printDefaultsConfig = (defaults: DefaultsConfigData): void => {\n printTable({\n json: defaults,\n headers: [\"Option\", \"Configured Value\"],\n rows: [\n [\"telemetry\", String(defaults.telemetry)],\n [\"json\", String(defaults.json)],\n ],\n borders: \"thick\",\n });\n};\n\nexport const usage: Usage = (_ctx) => {\n return sprint`\n Make changes to the configured defaults. This allows you to set an option on every ggt command by default without\n needing to set a flag on every command.\n\n {gray Usage}\n ggt configure show\n \n ggt configure change\n \n ggt configure clear\n `;\n};\n\nexport const run: Run = async (ctx, args): Promise<void> => {\n switch (args._[0]) {\n case \"show\":\n printDefaultsConfig(await loadDefaultsConfig(ctx, false));\n break;\n case \"change\":\n await promptDefaultsConfig(ctx);\n break;\n case \"clear\":\n await clearDefaultsConfig(ctx);\n break;\n default:\n println(usage(ctx));\n return;\n }\n};\n"],
5
+ "mappings": "kRAAAA,IAMA,IAAMC,EAAsBC,EAACC,GAAuC,CAClEC,EAAW,CACT,KAAMD,EACN,QAAS,CAAC,SAAU,kBAAkB,EACtC,KAAM,CACJ,CAAC,YAAa,OAAOA,EAAS,SAAS,CAAC,EACxC,CAAC,OAAQ,OAAOA,EAAS,IAAI,CAAC,CAChC,EACA,QAAS,OACX,CAAC,CACH,EAV4B,uBAYfE,EAAeH,EAACI,GACpBC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IADmB,SAcfC,EAAWN,EAAA,MAAOO,EAAKC,IAAwB,CAC1D,OAAQA,EAAK,EAAE,CAAC,EAAG,CACjB,IAAK,OACHT,EAAoB,MAAMU,EAAmBF,EAAK,EAAK,CAAC,EACxD,MACF,IAAK,SACH,MAAMG,EAAqBH,CAAG,EAC9B,MACF,IAAK,QACH,MAAMI,EAAoBJ,CAAG,EAC7B,MACF,QACEK,EAAQT,EAAMI,CAAG,CAAC,EAClB,MACJ,CACF,EAfwB",
6
+ "names": ["init_cjs", "printDefaultsConfig", "__name", "defaults", "printTable", "usage", "_ctx", "sprint", "run", "ctx", "args", "loadDefaultsConfig", "promptDefaultsConfig", "clearDefaultsConfig", "println"]
7
+ }
@@ -1,4 +1,4 @@
1
- import{a as ee}from"./chunk-SX5LO3XQ.js";import{a as te}from"./chunk-WQ4SFIE4.js";import{b as H,c as R,e as Q,k as y,p as Z}from"./chunk-A75V6SNW.js";import{a as J,c as q,d as _,i as X,n as W,o as K}from"./chunk-3B2GY4UU.js";import"./chunk-HAYHNB7Q.js";import{b as Y}from"./chunk-Z7JIVKEF.js";import"./chunk-U5I2YBJK.js";import"./chunk-HN3YKQ3C.js";import{c as w}from"./chunk-KW4V2PJW.js";import{b as A,e as O,i as z}from"./chunk-LPIHKY3M.js";import"./chunk-5VLIBRPJ.js";import{b as i,ba as G,d as F,ea as j,ga as l,ia as t,m as V}from"./chunk-XOSBJSTW.js";import"./chunk-GFQYFEEH.js";import{a as m,h as M}from"./chunk-7DYQUG5M.js";M();import le from"node:assert";var Re={...te,"--env":{type:String,alias:["-e","--environment","--from"]},"--allow-problems":{type:Boolean,alias:"--allow-issues"},"--allow-charges":{type:Boolean},"--allow-data-delete":{type:Boolean}},_e=m(s=>l`
1
+ import{a as ee}from"./chunk-SX5LO3XQ.js";import{a as te}from"./chunk-UCJDY73U.js";import{b as H,c as R,e as Q,k as y,p as Z}from"./chunk-OGQ5LIYM.js";import{a as J,c as q,d as _,i as X,m as W,n as K}from"./chunk-KS2O3TJA.js";import"./chunk-JSGXXXFU.js";import{b as Y}from"./chunk-WNAYBYSG.js";import"./chunk-WZ3Q7TTB.js";import"./chunk-JBY5A44K.js";import"./chunk-HN3YKQ3C.js";import{a as w}from"./chunk-FILWLZUN.js";import{a as A,d as O,h as z}from"./chunk-GCO2TOVZ.js";import"./chunk-DYAWQS24.js";import"./chunk-XGQQOMPO.js";import"./chunk-KMNQ3LJT.js";import{b as i,ca as G,d as F,fa as j,ha as l,ja as t,n as V}from"./chunk-24OT7GHO.js";import"./chunk-GFQYFEEH.js";import{a as m,h as M}from"./chunk-7DYQUG5M.js";M();import le from"node:assert";var Re={...te,"--env":{type:String,alias:["-e","--environment","--from"]},"--allow-problems":{type:Boolean,alias:"--allow-issues"},"--allow-charges":{type:Boolean},"--allow-data-delete":{type:Boolean}},_e=m(s=>l`
2
2
  Deploys your app to production.
3
3
 
4
4
  This command first performs a sync to ensure that your local and environment directories
@@ -22,4 +22,4 @@ import{a as ee}from"./chunk-SX5LO3XQ.js";import{a as te}from"./chunk-WQ4SFIE4.js
22
22
  Deploys code from the staging environment of a myBlog
23
23
  {cyanBright $ ggt deploy -a myBlog -from staging}
24
24
  `,"usage"),Pe=m(async(s,o)=>{let ne=await K(process.cwd()),a=await W.loadOrInit(s,{command:"deploy",args:o,directory:ne});t({ensureEmptyLineAbove:!0,content:`Deploying ${a.environment.name} to ${A(a.environment.application.primaryDomain,`https://${a.environment.application.primaryDomain}/`)}`});let T=new Z(a),p=await T.hashes(s);if(!p.inSync&&(p.localChangesToPush.size>0||!p.onlyDotGadgetFilesChanged)){if(await T.print(s,{hashes:p}),!o["--force"])if(t({ensureEmptyLineAbove:!0,content:"Your environment's files must match your local files before you can deploy."}),G.isInteractive||F.testLike){let r;switch(!0){case p.bothChanged:r=l`Would you like to push your local changes and {underline discard your environment's} changes now?`,o["--force"]=!0;break;case p.localChangesToPush.size>0:r=l`Would you like to push your local changes now?`;break;case p.environmentChanges.size>0:r=l`Do you want to {underline discard your environment's} changes now?`,o["--force"]=!0;break;default:ee("no changes to push or discard")}await w(r)}else t({ensureEmptyLineAbove:!0,content:"Assuming you want to push your local files now."});await T.push(s,{command:"deploy",hashes:p,force:o["--force"]})}let I={localFilesVersion:String(a.filesVersion),force:o["--allow-problems"],allowDeletedData:o["--allow-data-delete"],allowCharges:o["--allow-charges"]},E,f=e.NOT_STARTED,B=!1,v=a.edit.subscribe({subscription:Q,variables:I,onError:m(async r=>{if(s.log.error("failed to deploy",{error:r}),E?.fail(P(a,f)+" "+y()),V(r.cause)){let c=r.cause[0];if(le(c,"expected graphqlError to be defined"),c.extensions)switch(!0){case c.extensions.requiresUpgrade:t({ensureEmptyLineAbove:!0,content:c.message.replace(/GGT_PAYMENT_REQUIRED:?\s*/,"")}),process.exit(1);break;case c.extensions.requiresAdditionalCharge:t({ensureEmptyLineAbove:!0,content:c.message.replace(/GGT_PAYMENT_REQUIRED:?\s*/,"")}),await w({ensureEmptyLineAbove:!0,content:"Do you want to continue?"}),v.resubscribe({...I,allowCharges:!0});return}}await O(s,r)},"onError"),onData:m(async({publishStatus:r})=>{if(!r){s.log.warn("received empty publish status");return}let{publishStarted:c,progress:D,issues:N,status:g,deletedModelsAndFields:se}=r,C=N.length>0,{deletedModels:U,deletedModelFields:$}=se??{deletedModels:[],deletedModelFields:[]},x=U.length>0||$.length>0;if(!B&&(C||x)){B=!0;let d=N.filter(u=>u.severity===J.Fatal);if(d.length>0&&await O(s,new X(_(d))),C&&(t({ensureEmptyLineAbove:!0,content:l`{bold.yellow !} {bold Issues found in your development app}`}),q({problems:_(N)})),x){t({ensureEmptyLineAbove:!0,content:l`{bold.yellow !} {bold Data deleted on deploy}`});let u=i.blueBright("updated"),b=i.redBright("deleted"),S=[];U.forEach(n=>{S.push({symbol:R,name:i.redBright(n),action:b,indent:0})}),$.forEach(({modelIdentifier:n,fields:h})=>{S.push({symbol:H,name:i.blueBright(n),action:u,indent:0}),h.forEach(L=>{S.push({symbol:R,name:i.redBright(L),action:b,indent:2})})});let re=S.reduce((n,h)=>Math.max(n,h.name.length),0),ae=S.reduce((n,h)=>Math.max(n,h.indent),0),k=2;t({ensureEmptyLineAbove:!0,content:i.gray("These changes will be applied to production based on the app you're deploying.")});for(let n of S){let h=" ".repeat(n.indent*k),L=" ".repeat(re-n.name.length+2),ie=" ".repeat((ae-n.indent)*k);t({ensureEmptyLineAbove:!1,content:j(`${h}${n.symbol} ${n.name}${L}${ie}${n.action}`,6)})}}if(!c)await w("Do you want to continue?"),v.resubscribe({...I,force:!0,allowDeletedData:!0});else{let u=o["--allow-data-delete"],b=o["--allow-problems"];if(!u&&!b)throw new z("expected --allow-data-delete or --allow-problems to be true");b&&t(l`Deploying regardless of problems because "${i.gray("--allow-problems")}" was passed.`),u&&t(l`Deploying regardless of deleted data because "${i.gray("--allow-data-delete")}" was passed.`)}return}if(g?.code==="Errored"){E?.fail(P(a,f)+" "+y()),g.message&&t({ensureEmptyLineAbove:!0,content:i.red(g.message)}),g.output&&t({ensureEmptyLineAbove:!0,content:l`${A("Check logs",g.output)}`});return}if(D===e.COMPLETED){E?.succeed(oe(a,f));let d=i.green("Deploy successful!");g?.output&&(d+=` ${A("Check logs",g.output)}.`),t({ensureEmptyLineAbove:!0,content:d});return}if(D!==f){let d=P(a,D);if(d!==E?.text){E?.succeed(oe(a,f));let u=f===e.NOT_STARTED||!G.isInteractive;E=Y({ensureEmptyLineAbove:u,content:d})}f=D}},"onData"),onComplete:m(()=>{v.unsubscribe()},"onComplete")})},"run"),e=Object.freeze({NOT_STARTED:"NOT_STARTED",STARTING:"STARTING",BUILDING_ASSETS:"BUILDING_ASSETS",UPLOADING_ASSETS:"UPLOADING_ASSETS",CONVERGING_STORAGE:"CONVERGING_STORAGE",PUBLISHING_TREE:"PUBLISHING_TREE",RELOADING_SANDBOX:"RELOADING_SANDBOX",COMPLETED:"COMPLETED"}),P=m((s,o)=>{switch(o){case e.NOT_STARTED:case e.STARTING:case e.BUILDING_ASSETS:case e.UPLOADING_ASSETS:return"Building frontend assets.";case e.CONVERGING_STORAGE:return"Setting up database.";case e.PUBLISHING_TREE:return`Copying ${s.environment.name}.`;case e.RELOADING_SANDBOX:return"Restarting app.";case e.COMPLETED:return"Deploy complete!";default:return"Unknown step."}},"stepToSpinnerStart"),oe=m((s,o)=>{switch(o){case e.NOT_STARTED:case e.STARTING:case e.BUILDING_ASSETS:case e.UPLOADING_ASSETS:return`Built frontend assets. ${y()}`;case e.CONVERGING_STORAGE:return`Setup database. ${y()}`;case e.PUBLISHING_TREE:return`Copied ${s.environment.name}. ${y()}`;case e.RELOADING_SANDBOX:return`Restarted app. ${y()}`;case e.COMPLETED:return"Deploy successful!";default:return`Completed unknown step. ${y()}`}},"stepToSpinnerEnd");export{e as AppDeploymentSteps,Re as args,Pe as run,oe as stepToSpinnerEnd,P as stepToSpinnerStart,_e as usage};
25
- //# sourceMappingURL=deploy-QW6KPNDB.js.map
25
+ //# sourceMappingURL=deploy-7Q7RRIXS.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/commands/deploy.ts"],
4
4
  "sourcesContent": ["import chalk from \"chalk\";\nimport indentString from \"indent-string\";\nimport assert from \"node:assert\";\nimport terminalLink from \"terminal-link\";\nimport { PUBLISH_STATUS_SUBSCRIPTION } from \"../services/app/edit/operation.js\";\nimport { type Run, type Usage } from \"../services/command/command.js\";\nimport { env } from \"../services/config/env.js\";\nimport { deletedSymbol, updatedSymbol } from \"../services/filesync/changes.js\";\nimport { DeployDisallowedError } from \"../services/filesync/error.js\";\nimport { FileSync } from \"../services/filesync/filesync.js\";\nimport { SyncJson, loadSyncJsonDirectory } from \"../services/filesync/sync-json.js\";\nimport { confirm } from \"../services/output/confirm.js\";\nimport { output } from \"../services/output/output.js\";\nimport { println } from \"../services/output/print.js\";\nimport { ProblemSeverity, printProblems, publishIssuesToProblems } from \"../services/output/problems.js\";\nimport { UnexpectedError, reportErrorAndExit } from \"../services/output/report.js\";\nimport { spin, type spinner } from \"../services/output/spinner.js\";\nimport { sprint } from \"../services/output/sprint.js\";\nimport { ts } from \"../services/output/timestamp.js\";\nimport { unreachable } from \"../services/util/assert.js\";\nimport { isGraphQLErrors } from \"../services/util/is.js\";\nimport { args as PushArgs } from \"./push.js\";\n\nexport type DeployArgs = typeof args;\n\nexport const args = {\n ...PushArgs,\n \"--env\": { type: String, alias: [\"-e\", \"--environment\", \"--from\"] },\n \"--allow-problems\": { type: Boolean, alias: \"--allow-issues\" },\n \"--allow-charges\": { type: Boolean },\n \"--allow-data-delete\": { type: Boolean },\n};\n\nexport const usage: Usage = (_ctx) => {\n return sprint`\n Deploys your app to production.\n\n This command first performs a sync to ensure that your local and environment directories\n match, changes are tracked since last sync. If any conflicts are detected, they must be\n resolved before deployment.\n\n {gray Usage}\n $ ggt deploy [options]\n\n {gray Options}\n -a, --app <app_name> Selects a specific app to deploy. Default set on \".gadget/sync.json\"\n --from, -e, --env <env_name> Selects a specific environment to sync and deploy from. Default set on \".gadget/sync.json\"\n --force Deploys by discarding any changes made to the environment directory since last sync\n --allow-different-directory Deploys from any local directory with existing files, even if the \".gadget/sync.json\" file is missing\n --allow-different-app Deploys a different app using the --app command, instead of the one specified in the \u201C.gadget/sync.json\u201D file\n --allow-problems Deploys despite any existing issues found in the app (gelly errors, typescript errors etc.)\n --allow-data-delete Deploys even if it results in the deletion of data in production\n --allow-charges Deploys even if it results in additional charges to your plan\n\n {gray Examples}\n Deploys code from the staging environment of a myBlog\n {cyanBright $ ggt deploy -a myBlog -from staging}\n`;\n};\n\nexport const run: Run<DeployArgs> = async (ctx, args) => {\n const directory = await loadSyncJsonDirectory(process.cwd());\n const syncJson = await SyncJson.loadOrInit(ctx, { command: \"deploy\", args, directory });\n\n println({\n ensureEmptyLineAbove: true,\n content: `Deploying ${syncJson.environment.name} to ${terminalLink(syncJson.environment.application.primaryDomain, `https://${syncJson.environment.application.primaryDomain}/`)}`,\n });\n\n const filesync = new FileSync(syncJson);\n const hashes = await filesync.hashes(ctx);\n if (!hashes.inSync && (hashes.localChangesToPush.size > 0 || !hashes.onlyDotGadgetFilesChanged)) {\n // the following is true:\n // 1. our local files don't match our environment's files\n // 2. we have local changes to push or non .gadget/ files have changed on our environment\n // therefor, we need to push before we can deploy\n await filesync.print(ctx, { hashes });\n\n if (!args[\"--force\"]) {\n // they didn't pass --force, so we need to ask them if they want to push\n println({\n ensureEmptyLineAbove: true,\n content: \"Your environment's files must match your local files before you can deploy.\",\n });\n\n if (output.isInteractive || env.testLike) {\n // we're interactive, so ask them what they want to do\n let content: string;\n // eslint-disable-next-line max-depth\n switch (true) {\n case hashes.bothChanged:\n content = sprint`Would you like to push your local changes and {underline discard your environment's} changes now?`;\n args[\"--force\"] = true; // accepting this confirmation implies --force\n break;\n case hashes.localChangesToPush.size > 0:\n content = sprint`Would you like to push your local changes now?`;\n break;\n case hashes.environmentChanges.size > 0:\n content = sprint`Do you want to {underline discard your environment's} changes now?`;\n args[\"--force\"] = true; // same as above\n break;\n default:\n unreachable(\"no changes to push or discard\");\n }\n\n await confirm(content);\n } else {\n // we're not interactive, so we're likely in a CI/CD environment\n // assume they want to push\n println({\n ensureEmptyLineAbove: true,\n content: \"Assuming you want to push your local files now.\",\n });\n }\n }\n\n await filesync.push(ctx, { command: \"deploy\", hashes, force: args[\"--force\"] });\n }\n\n const variables = {\n localFilesVersion: String(syncJson.filesVersion),\n force: args[\"--allow-problems\"],\n allowDeletedData: args[\"--allow-data-delete\"],\n allowCharges: args[\"--allow-charges\"],\n };\n\n let spinner: spinner | undefined;\n let currentStep: AppDeploymentSteps = AppDeploymentSteps.NOT_STARTED;\n let printedProblems = false;\n\n const subscription = syncJson.edit.subscribe({\n subscription: PUBLISH_STATUS_SUBSCRIPTION,\n variables,\n onError: async (error) => {\n ctx.log.error(\"failed to deploy\", { error });\n spinner?.fail(stepToSpinnerStart(syncJson, currentStep) + \" \" + ts());\n\n if (isGraphQLErrors(error.cause)) {\n const graphqlError = error.cause[0];\n assert(graphqlError, \"expected graphqlError to be defined\");\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- TODO: extensions is typed as never undefined, but it can be.\n if (graphqlError.extensions) {\n switch (true) {\n case graphqlError.extensions[\"requiresUpgrade\"]:\n println({ ensureEmptyLineAbove: true, content: graphqlError.message.replace(/GGT_PAYMENT_REQUIRED:?\\s*/, \"\") });\n process.exit(1);\n break;\n case graphqlError.extensions[\"requiresAdditionalCharge\"]:\n println({ ensureEmptyLineAbove: true, content: graphqlError.message.replace(/GGT_PAYMENT_REQUIRED:?\\s*/, \"\") });\n await confirm({ ensureEmptyLineAbove: true, content: \"Do you want to continue?\" });\n subscription.resubscribe({ ...variables, allowCharges: true });\n return;\n }\n }\n }\n\n await reportErrorAndExit(ctx, error);\n },\n onData: async ({ publishStatus }): Promise<void> => {\n if (!publishStatus) {\n ctx.log.warn(\"received empty publish status\");\n return;\n }\n\n const { publishStarted, progress: step, issues, status, deletedModelsAndFields } = publishStatus;\n const hasIssues = issues.length > 0;\n\n const { deletedModels, deletedModelFields } = deletedModelsAndFields ?? { deletedModels: [], deletedModelFields: [] };\n const hasDataLoss = deletedModels.length > 0 || deletedModelFields.length > 0;\n\n if (!printedProblems && (hasIssues || hasDataLoss)) {\n printedProblems = true;\n\n const fatalIssues = issues.filter((issue) => issue.severity === ProblemSeverity.Fatal);\n if (fatalIssues.length > 0) {\n await reportErrorAndExit(ctx, new DeployDisallowedError(publishIssuesToProblems(fatalIssues)));\n }\n\n if (hasIssues) {\n println({ ensureEmptyLineAbove: true, content: sprint`{bold.yellow !} {bold Issues found in your development app}` });\n printProblems({ problems: publishIssuesToProblems(issues) });\n }\n\n if (hasDataLoss) {\n println({\n ensureEmptyLineAbove: true,\n content: sprint`{bold.yellow !} {bold Data deleted on deploy}`,\n });\n\n const updated = chalk.blueBright(\"updated\");\n const deleted = chalk.redBright(\"deleted\");\n\n const rows: { symbol: string; name: string; action: string; indent: number }[] = [];\n\n deletedModels.forEach((model: string) => {\n rows.push({ symbol: deletedSymbol, name: chalk.redBright(model), action: deleted, indent: 0 });\n });\n\n deletedModelFields.forEach(({ modelIdentifier, fields }) => {\n rows.push({ symbol: updatedSymbol, name: chalk.blueBright(modelIdentifier), action: updated, indent: 0 });\n fields.forEach((field) => {\n rows.push({ symbol: deletedSymbol, name: chalk.redBright(field), action: deleted, indent: 2 });\n });\n });\n\n const longestNameLength = rows.reduce((longest, row) => Math.max(longest, row.name.length), 0);\n const longestIndent = rows.reduce((longest, row) => Math.max(longest, row.indent), 0);\n const indentSize = 2;\n\n println({\n ensureEmptyLineAbove: true,\n content: chalk.gray(\"These changes will be applied to production based on the app you're deploying.\"),\n });\n for (const row of rows) {\n const indentation = \" \".repeat(row.indent * indentSize);\n const namePadding = \" \".repeat(longestNameLength - row.name.length + 2);\n const actionPadding = \" \".repeat((longestIndent - row.indent) * indentSize);\n println({\n ensureEmptyLineAbove: false,\n content: indentString(`${indentation}${row.symbol} ${row.name}${namePadding}${actionPadding}${row.action}`, 6),\n });\n }\n }\n\n if (!publishStarted) {\n await confirm(\"Do you want to continue?\");\n subscription.resubscribe({ ...variables, force: true, allowDeletedData: true });\n } else {\n const allowDataDelete = args[\"--allow-data-delete\"];\n const allowProblems = args[\"--allow-problems\"];\n\n if (!allowDataDelete && !allowProblems) {\n throw new UnexpectedError(\"expected --allow-data-delete or --allow-problems to be true\");\n }\n\n if (allowProblems) {\n println(sprint`Deploying regardless of problems because \"${chalk.gray(\"--allow-problems\")}\" was passed.`);\n }\n\n if (allowDataDelete) {\n println(sprint`Deploying regardless of deleted data because \"${chalk.gray(\"--allow-data-delete\")}\" was passed.`);\n }\n }\n\n return;\n }\n\n if (status?.code === \"Errored\") {\n spinner?.fail(stepToSpinnerStart(syncJson, currentStep) + \" \" + ts());\n\n if (status.message) {\n println({ ensureEmptyLineAbove: true, content: chalk.red(status.message) });\n }\n if (status.output) {\n println({ ensureEmptyLineAbove: true, content: sprint`${terminalLink(\"Check logs\", status.output)}` });\n }\n return;\n }\n\n if (step === AppDeploymentSteps.COMPLETED) {\n spinner?.succeed(stepToSpinnerEnd(syncJson, currentStep));\n\n let content = chalk.green(\"Deploy successful!\");\n if (status?.output) {\n content += ` ${terminalLink(\"Check logs\", status.output)}.`;\n }\n\n println({ ensureEmptyLineAbove: true, content });\n return;\n }\n\n if (step !== currentStep) {\n const spinnerText = stepToSpinnerStart(syncJson, step);\n if (spinnerText !== spinner?.text) {\n // stop the current spinner, if any, and start a new one\n spinner?.succeed(stepToSpinnerEnd(syncJson, currentStep));\n\n const ensureEmptyLineAbove = currentStep === AppDeploymentSteps.NOT_STARTED || !output.isInteractive;\n spinner = spin({ ensureEmptyLineAbove, content: spinnerText });\n }\n\n currentStep = step as AppDeploymentSteps;\n }\n },\n onComplete: () => {\n subscription.unsubscribe();\n },\n });\n};\n\nexport const AppDeploymentSteps = Object.freeze({\n NOT_STARTED: \"NOT_STARTED\",\n STARTING: \"STARTING\",\n BUILDING_ASSETS: \"BUILDING_ASSETS\",\n UPLOADING_ASSETS: \"UPLOADING_ASSETS\",\n CONVERGING_STORAGE: \"CONVERGING_STORAGE\",\n PUBLISHING_TREE: \"PUBLISHING_TREE\",\n RELOADING_SANDBOX: \"RELOADING_SANDBOX\",\n COMPLETED: \"COMPLETED\",\n});\n\nexport type AppDeploymentSteps = (typeof AppDeploymentSteps)[keyof typeof AppDeploymentSteps];\n\nexport const stepToSpinnerStart = (syncJson: SyncJson, step: string): string => {\n switch (step) {\n case AppDeploymentSteps.NOT_STARTED:\n case AppDeploymentSteps.STARTING:\n case AppDeploymentSteps.BUILDING_ASSETS:\n case AppDeploymentSteps.UPLOADING_ASSETS:\n return \"Building frontend assets.\";\n case AppDeploymentSteps.CONVERGING_STORAGE:\n return \"Setting up database.\";\n case AppDeploymentSteps.PUBLISHING_TREE:\n return `Copying ${syncJson.environment.name}.`;\n case AppDeploymentSteps.RELOADING_SANDBOX:\n return \"Restarting app.\";\n case AppDeploymentSteps.COMPLETED:\n return \"Deploy complete!\";\n default:\n return \"Unknown step.\";\n }\n};\n\nexport const stepToSpinnerEnd = (syncJson: SyncJson, step: string): string => {\n switch (step) {\n case AppDeploymentSteps.NOT_STARTED:\n case AppDeploymentSteps.STARTING:\n case AppDeploymentSteps.BUILDING_ASSETS:\n case AppDeploymentSteps.UPLOADING_ASSETS:\n return `Built frontend assets. ${ts()}`;\n case AppDeploymentSteps.CONVERGING_STORAGE:\n return `Setup database. ${ts()}`;\n case AppDeploymentSteps.PUBLISHING_TREE:\n return `Copied ${syncJson.environment.name}. ${ts()}`;\n case AppDeploymentSteps.RELOADING_SANDBOX:\n return `Restarted app. ${ts()}`;\n case AppDeploymentSteps.COMPLETED:\n return \"Deploy successful!\";\n default:\n return `Completed unknown step. ${ts()}`;\n }\n};\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": ["init_cjs", "assert", "args", "usage", "__name", "_ctx", "sprint", "run", "ctx", "directory", "loadSyncJsonDirectory", "syncJson", "SyncJson", "println", "terminalLink", "filesync", "FileSync", "hashes", "output", "env", "content", "unreachable", "confirm", "variables", "spinner", "currentStep", "AppDeploymentSteps", "printedProblems", "subscription", "PUBLISH_STATUS_SUBSCRIPTION", "error", "stepToSpinnerStart", "ts", "isGraphQLErrors", "graphqlError", "assert", "reportErrorAndExit", "publishStatus", "publishStarted", "step", "issues", "status", "deletedModelsAndFields", "hasIssues", "deletedModels", "deletedModelFields", "hasDataLoss", "fatalIssues", "issue", "ProblemSeverity", "DeployDisallowedError", "publishIssuesToProblems", "printProblems", "updated", "source_default", "deleted", "rows", "model", "deletedSymbol", "modelIdentifier", "fields", "updatedSymbol", "field", "longestNameLength", "longest", "row", "longestIndent", "indentSize", "indentation", "namePadding", "actionPadding", "indentString", "allowDataDelete", "allowProblems", "UnexpectedError", "stepToSpinnerEnd", "spinnerText", "ensureEmptyLineAbove", "spin"]
7
7
  }
@@ -1,4 +1,4 @@
1
- import{a as Nn}from"./chunk-XE5GH5GR.js";import{a as nt}from"./chunk-SX5LO3XQ.js";import{a as it,d as vn,n as K,o as rr,p as or}from"./chunk-A75V6SNW.js";import{f as Xt,l as er,m as ir,n as nr,o as sr}from"./chunk-3B2GY4UU.js";import"./chunk-HAYHNB7Q.js";import{b as tr}from"./chunk-Z7JIVKEF.js";import"./chunk-U5I2YBJK.js";import"./chunk-HN3YKQ3C.js";import"./chunk-KW4V2PJW.js";import{B as Zt,D as Qt,e as Yt,k as Vt,l as En}from"./chunk-LPIHKY3M.js";import"./chunk-5VLIBRPJ.js";import{L as rt,S as Kt,b as Ht,ba as je,ga as B,ha as zt,ia as Jt,o as $t}from"./chunk-XOSBJSTW.js";import{a as gn}from"./chunk-GFQYFEEH.js";import{a as s,b as v,c as q,d as b,e as yn,f as Be,g as wn,h as c}from"./chunk-7DYQUG5M.js";var Cr=b(Ee=>{"use strict";c();Object.defineProperty(Ee,"__esModule",{value:!0});Ee.sync=Ee.isexe=void 0;var Rn=v("fs"),bn=v("fs/promises"),kn=s(async(e,t={})=>{let{ignoreErrors:r=!1}=t;try{return Ar(await(0,bn.stat)(e),t)}catch(i){let n=i;if(r||n.code==="EACCES")return!1;throw n}},"isexe");Ee.isexe=kn;var Ln=s((e,t={})=>{let{ignoreErrors:r=!1}=t;try{return Ar((0,Rn.statSync)(e),t)}catch(i){let n=i;if(r||n.code==="EACCES")return!1;throw n}},"sync");Ee.sync=Ln;var Ar=s((e,t)=>e.isFile()&&On(e,t),"checkStat"),On=s((e,t)=>{let r=t.uid??process.getuid?.(),i=t.groups??process.getgroups?.()??[],n=t.gid??process.getgid?.()??i[0];if(r===void 0||n===void 0)throw new Error("cannot get uid or gid");let o=new Set([n,...i]),a=e.mode,f=e.uid,l=e.gid,u=parseInt("100",8),h=parseInt("010",8),g=parseInt("001",8),p=u|h;return!!(a&g||a&h&&o.has(l)||a&u&&f===r||a&p&&r===0)},"checkMode")});var Rr=b(ve=>{"use strict";c();Object.defineProperty(ve,"__esModule",{value:!0});ve.sync=ve.isexe=void 0;var qn=v("fs"),Fn=v("fs/promises"),Un=s(async(e,t={})=>{let{ignoreErrors:r=!1}=t;try{return Tr(await(0,Fn.stat)(e),e,t)}catch(i){let n=i;if(r||n.code==="EACCES")return!1;throw n}},"isexe");ve.isexe=Un;var Pn=s((e,t={})=>{let{ignoreErrors:r=!1}=t;try{return Tr((0,qn.statSync)(e),e,t)}catch(i){let n=i;if(r||n.code==="EACCES")return!1;throw n}},"sync");ve.sync=Pn;var Mn=s((e,t)=>{let{pathExt:r=process.env.PATHEXT||""}=t,i=r.split(";");if(i.indexOf("")!==-1)return!0;for(let n=0;n<i.length;n++){let o=i[n].toLowerCase(),a=e.substring(e.length-o.length).toLowerCase();if(o&&a===o)return!0}return!1},"checkPathExt"),Tr=s((e,t,r)=>e.isFile()&&Mn(t,r),"checkStat")});var kr=b(br=>{"use strict";c();Object.defineProperty(br,"__esModule",{value:!0})});var Pr=b(R=>{"use strict";c();var Lr=R&&R.__createBinding||(Object.create?function(e,t,r,i){i===void 0&&(i=r);var n=Object.getOwnPropertyDescriptor(t,r);(!n||("get"in n?!t.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:s(function(){return t[r]},"get")}),Object.defineProperty(e,i,n)}:function(e,t,r,i){i===void 0&&(i=r),e[i]=t[r]}),Wn=R&&R.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),Or=R&&R.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&Lr(t,e,r);return Wn(t,e),t},Gn=R&&R.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&Lr(t,e,r)};Object.defineProperty(R,"__esModule",{value:!0});R.sync=R.isexe=R.posix=R.win32=void 0;var qr=Or(Cr());R.posix=qr;var Fr=Or(Rr());R.win32=Fr;Gn(kr(),R);var Bn=process.env._ISEXE_TEST_PLATFORM_||process.platform,Ur=Bn==="win32"?Fr:qr;R.isexe=Ur.isexe;R.sync=Ur.sync});var Jr=b((zc,zr)=>{c();var{isexe:jn,sync:Hn}=Pr(),{join:$n,delimiter:Kn,sep:Mr,posix:Wr}=v("path"),Gr=process.platform==="win32",Br=new RegExp(`[${Wr.sep}${Mr===Wr.sep?"":Mr}]`.replace(/(\\)/g,"\\$1")),zn=new RegExp(`^\\.${Br.source}`),jr=s(e=>Object.assign(new Error(`not found: ${e}`),{code:"ENOENT"}),"getNotFoundError"),Hr=s((e,{path:t=process.env.PATH,pathExt:r=process.env.PATHEXT,delimiter:i=Kn})=>{let n=e.match(Br)?[""]:[...Gr?[process.cwd()]:[],...(t||"").split(i)];if(Gr){let o=r||[".EXE",".CMD",".BAT",".COM"].join(i),a=o.split(i).flatMap(f=>[f,f.toLowerCase()]);return e.includes(".")&&a[0]!==""&&a.unshift(""),{pathEnv:n,pathExt:a,pathExtExe:o}}return{pathEnv:n,pathExt:[""]}},"getPathInfo"),$r=s((e,t)=>{let r=/^".*"$/.test(e)?e.slice(1,-1):e;return(!r&&zn.test(t)?t.slice(0,2):"")+$n(r,t)},"getPathPart"),Kr=s(async(e,t={})=>{let{pathEnv:r,pathExt:i,pathExtExe:n}=Hr(e,t),o=[];for(let a of r){let f=$r(a,e);for(let l of i){let u=f+l;if(await jn(u,{pathExt:n,ignoreErrors:!0})){if(!t.all)return u;o.push(u)}}}if(t.all&&o.length)return o;if(t.nothrow)return null;throw jr(e)},"which"),Jn=s((e,t={})=>{let{pathEnv:r,pathExt:i,pathExtExe:n}=Hr(e,t),o=[];for(let a of r){let f=$r(a,e);for(let l of i){let u=f+l;if(Hn(u,{pathExt:n,ignoreErrors:!0})){if(!t.all)return u;o.push(u)}}}if(t.all&&o.length)return o;if(t.nothrow)return null;throw jr(e)},"whichSync");zr.exports=Kr;Kr.sync=Jn});var Yr=b(Ke=>{c();(function(){var e;e=s(function(t,r,i){var n,o;for(o="";t.length>0;)n=t.match(r),n?(o+=t.slice(0,n.index),o+=i(n),t=t.slice(n.index+n[0].length)):(o+=t,t="");return o},"scan"),Ke.split=function(t){var r,i;return t==null&&(t=""),i=[],r="",e(t,/\s*(?:([^\s\\\'\"]+)|'((?:[^\'\\]|\\.)*)'|"((?:[^\"\\]|\\.)*)"|(\\.?)|(\S))(\s|$)?/,function(n){var o,a,f,l,u,h,g;if(l=n[0],g=n[1],h=n[2],o=n[3],a=n[4],f=n[5],u=n[6],f!=null)throw new Error("Unmatched quote");if(r+=g||(h||o||a).replace(/\\(?=.)/,""),u!=null)return i.push(r),r=""}),r&&i.push(r),i},Ke.escape=function(t){return t==null&&(t=""),t==null?"''":t.replace(/([^A-Za-z0-9_\-.,:\/@\n])/g,"\\$1").replace(/\n/g,`'
1
+ import{a as Nn}from"./chunk-QXWICGG6.js";import{a as nt}from"./chunk-SX5LO3XQ.js";import{a as it,d as vn,n as K,o as rr,p as or}from"./chunk-OGQ5LIYM.js";import{f as Xt,l as ir,m as nr,n as sr}from"./chunk-KS2O3TJA.js";import"./chunk-JSGXXXFU.js";import{b as tr}from"./chunk-WNAYBYSG.js";import"./chunk-WZ3Q7TTB.js";import{a as er}from"./chunk-JBY5A44K.js";import"./chunk-HN3YKQ3C.js";import"./chunk-FILWLZUN.js";import{A as Zt,C as Qt,d as Yt,j as En}from"./chunk-GCO2TOVZ.js";import"./chunk-DYAWQS24.js";import{b as Vt}from"./chunk-XGQQOMPO.js";import"./chunk-KMNQ3LJT.js";import{M as rt,T as Kt,b as Ht,ca as je,ha as B,ia as zt,ja as Jt,p as $t}from"./chunk-24OT7GHO.js";import{a as gn}from"./chunk-GFQYFEEH.js";import{a as s,b as v,c as q,d as b,e as yn,f as Be,g as wn,h as c}from"./chunk-7DYQUG5M.js";var Cr=b(Ee=>{"use strict";c();Object.defineProperty(Ee,"__esModule",{value:!0});Ee.sync=Ee.isexe=void 0;var Rn=v("fs"),bn=v("fs/promises"),kn=s(async(e,t={})=>{let{ignoreErrors:r=!1}=t;try{return Ar(await(0,bn.stat)(e),t)}catch(i){let n=i;if(r||n.code==="EACCES")return!1;throw n}},"isexe");Ee.isexe=kn;var Ln=s((e,t={})=>{let{ignoreErrors:r=!1}=t;try{return Ar((0,Rn.statSync)(e),t)}catch(i){let n=i;if(r||n.code==="EACCES")return!1;throw n}},"sync");Ee.sync=Ln;var Ar=s((e,t)=>e.isFile()&&On(e,t),"checkStat"),On=s((e,t)=>{let r=t.uid??process.getuid?.(),i=t.groups??process.getgroups?.()??[],n=t.gid??process.getgid?.()??i[0];if(r===void 0||n===void 0)throw new Error("cannot get uid or gid");let o=new Set([n,...i]),a=e.mode,f=e.uid,l=e.gid,u=parseInt("100",8),h=parseInt("010",8),g=parseInt("001",8),p=u|h;return!!(a&g||a&h&&o.has(l)||a&u&&f===r||a&p&&r===0)},"checkMode")});var Rr=b(ve=>{"use strict";c();Object.defineProperty(ve,"__esModule",{value:!0});ve.sync=ve.isexe=void 0;var qn=v("fs"),Fn=v("fs/promises"),Un=s(async(e,t={})=>{let{ignoreErrors:r=!1}=t;try{return Tr(await(0,Fn.stat)(e),e,t)}catch(i){let n=i;if(r||n.code==="EACCES")return!1;throw n}},"isexe");ve.isexe=Un;var Pn=s((e,t={})=>{let{ignoreErrors:r=!1}=t;try{return Tr((0,qn.statSync)(e),e,t)}catch(i){let n=i;if(r||n.code==="EACCES")return!1;throw n}},"sync");ve.sync=Pn;var Mn=s((e,t)=>{let{pathExt:r=process.env.PATHEXT||""}=t,i=r.split(";");if(i.indexOf("")!==-1)return!0;for(let n=0;n<i.length;n++){let o=i[n].toLowerCase(),a=e.substring(e.length-o.length).toLowerCase();if(o&&a===o)return!0}return!1},"checkPathExt"),Tr=s((e,t,r)=>e.isFile()&&Mn(t,r),"checkStat")});var kr=b(br=>{"use strict";c();Object.defineProperty(br,"__esModule",{value:!0})});var Pr=b(R=>{"use strict";c();var Lr=R&&R.__createBinding||(Object.create?function(e,t,r,i){i===void 0&&(i=r);var n=Object.getOwnPropertyDescriptor(t,r);(!n||("get"in n?!t.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:s(function(){return t[r]},"get")}),Object.defineProperty(e,i,n)}:function(e,t,r,i){i===void 0&&(i=r),e[i]=t[r]}),Wn=R&&R.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),Or=R&&R.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&Lr(t,e,r);return Wn(t,e),t},Gn=R&&R.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&Lr(t,e,r)};Object.defineProperty(R,"__esModule",{value:!0});R.sync=R.isexe=R.posix=R.win32=void 0;var qr=Or(Cr());R.posix=qr;var Fr=Or(Rr());R.win32=Fr;Gn(kr(),R);var Bn=process.env._ISEXE_TEST_PLATFORM_||process.platform,Ur=Bn==="win32"?Fr:qr;R.isexe=Ur.isexe;R.sync=Ur.sync});var Jr=b((zc,zr)=>{c();var{isexe:jn,sync:Hn}=Pr(),{join:$n,delimiter:Kn,sep:Mr,posix:Wr}=v("path"),Gr=process.platform==="win32",Br=new RegExp(`[${Wr.sep}${Mr===Wr.sep?"":Mr}]`.replace(/(\\)/g,"\\$1")),zn=new RegExp(`^\\.${Br.source}`),jr=s(e=>Object.assign(new Error(`not found: ${e}`),{code:"ENOENT"}),"getNotFoundError"),Hr=s((e,{path:t=process.env.PATH,pathExt:r=process.env.PATHEXT,delimiter:i=Kn})=>{let n=e.match(Br)?[""]:[...Gr?[process.cwd()]:[],...(t||"").split(i)];if(Gr){let o=r||[".EXE",".CMD",".BAT",".COM"].join(i),a=o.split(i).flatMap(f=>[f,f.toLowerCase()]);return e.includes(".")&&a[0]!==""&&a.unshift(""),{pathEnv:n,pathExt:a,pathExtExe:o}}return{pathEnv:n,pathExt:[""]}},"getPathInfo"),$r=s((e,t)=>{let r=/^".*"$/.test(e)?e.slice(1,-1):e;return(!r&&zn.test(t)?t.slice(0,2):"")+$n(r,t)},"getPathPart"),Kr=s(async(e,t={})=>{let{pathEnv:r,pathExt:i,pathExtExe:n}=Hr(e,t),o=[];for(let a of r){let f=$r(a,e);for(let l of i){let u=f+l;if(await jn(u,{pathExt:n,ignoreErrors:!0})){if(!t.all)return u;o.push(u)}}}if(t.all&&o.length)return o;if(t.nothrow)return null;throw jr(e)},"which"),Jn=s((e,t={})=>{let{pathEnv:r,pathExt:i,pathExtExe:n}=Hr(e,t),o=[];for(let a of r){let f=$r(a,e);for(let l of i){let u=f+l;if(Hn(u,{pathExt:n,ignoreErrors:!0})){if(!t.all)return u;o.push(u)}}}if(t.all&&o.length)return o;if(t.nothrow)return null;throw jr(e)},"whichSync");zr.exports=Kr;Kr.sync=Jn});var Yr=b(Ke=>{c();(function(){var e;e=s(function(t,r,i){var n,o;for(o="";t.length>0;)n=t.match(r),n?(o+=t.slice(0,n.index),o+=i(n),t=t.slice(n.index+n[0].length)):(o+=t,t="");return o},"scan"),Ke.split=function(t){var r,i;return t==null&&(t=""),i=[],r="",e(t,/\s*(?:([^\s\\\'\"]+)|'((?:[^\'\\]|\\.)*)'|"((?:[^\"\\]|\\.)*)"|(\\.?)|(\S))(\s|$)?/,function(n){var o,a,f,l,u,h,g;if(l=n[0],g=n[1],h=n[2],o=n[3],a=n[4],f=n[5],u=n[6],f!=null)throw new Error("Unmatched quote");if(r+=g||(h||o||a).replace(/\\(?=.)/,""),u!=null)return i.push(r),r=""}),r&&i.push(r),i},Ke.escape=function(t){return t==null&&(t=""),t==null?"''":t.replace(/([^A-Za-z0-9_\-.,:\/@\n])/g,"\\$1").replace(/\n/g,`'
2
2
  '`)}}).call(Ke)});var Zr=b((sf,Xr)=>{"use strict";c();var Vr=v("fs"),Nt;function Yn(){try{return Vr.statSync("/.dockerenv"),!0}catch{return!1}}s(Yn,"hasDockerEnv");function Vn(){try{return Vr.readFileSync("/proc/self/cgroup","utf8").includes("docker")}catch{return!1}}s(Vn,"hasDockerCGroup");Xr.exports=()=>(Nt===void 0&&(Nt=Yn()||Vn()),Nt)});var ti=b((cf,St)=>{"use strict";c();var Xn=v("os"),Zn=v("fs"),Qr=Zr(),ei=s(()=>{if(process.platform!=="linux")return!1;if(Xn.release().toLowerCase().includes("microsoft"))return!Qr();try{return Zn.readFileSync("/proc/version","utf8").toLowerCase().includes("microsoft")?!Qr():!1}catch{return!1}},"isWsl");process.env.__IS_WSL_TEST__?St.exports=ei:St.exports=ei()});var de=b((uf,A)=>{c();var Qn=Yr(),ze=v("child_process"),xt=Nn(),es=ti(),ts=v("path"),rs=v("url"),he=v("os"),_t=v("fs"),is=v("net"),ns=1024;function si(e){return JSON.parse(JSON.stringify(e))}s(si,"clone");A.exports.clone=si;var ss=s(function(e){return typeof e=="string"?e.replace(/(["$`\\])/g,"\\$1"):e},"escapeQuotes"),os=s(function(e,t){return e.indexOf(t)!==-1},"inArray"),ri={u:"urgency",urgency:"urgency",t:"expire-time",time:"expire-time",timeout:"expire-time",e:"expire-time",expire:"expire-time","expire-time":"expire-time",i:"icon",icon:"icon",c:"category",category:"category",subtitle:"category",h:"hint",hint:"hint",a:"app-name","app-name":"app-name"};A.exports.command=function(e,t,r){return e=Qn.escape(e),process.env.DEBUG&&process.env.DEBUG.indexOf("notifier")!==-1&&(console.info("node-notifier debug info (command):"),console.info("[notifier path]",e),console.info("[notifier options]",t.join(" "))),ze.exec(e+" "+t.join(" "),function(i,n,o){if(i)return r(i);r(o,n)})};A.exports.fileCommand=function(e,t,r){return process.env.DEBUG&&process.env.DEBUG.indexOf("notifier")!==-1&&(console.info("node-notifier debug info (fileCommand):"),console.info("[notifier path]",e),console.info("[notifier options]",t.join(" "))),ze.execFile(e,t,function(i,n,o){if(i)return r(i,n);r(o,n)})};A.exports.fileCommandJson=function(e,t,r){return process.env.DEBUG&&process.env.DEBUG.indexOf("notifier")!==-1&&(console.info("node-notifier debug info (fileCommandJson):"),console.info("[notifier path]",e),console.info("[notifier options]",t.join(" "))),ze.execFile(e,t,function(i,n,o){if(i)return r(i,n);if(!n)return r(i,{});try{let a=JSON.parse(n);r(o||null,a)}catch(a){r(a,n)}})};A.exports.immediateFileCommand=function(e,t,r){process.env.DEBUG&&process.env.DEBUG.indexOf("notifier")!==-1&&(console.info("node-notifier debug info (notifier):"),console.info("[notifier path]",e)),as(e,function(i,n){if(!n)return r(new Error("Notifier ("+e+") not found on system."));ze.execFile(e,t),r()})};function as(e,t){return _t.stat(e,function(r,i){return r?ts.extname(e)?t(r,!1):_t.stat(e+".exe",function(n,o){if(n)return t(n,!1);t(n,o.isFile())}):t(r,i.isFile())})}s(as,"notifierExists");var Je=s(function(e){return e.appIcon&&(e.icon=e.appIcon,delete e.appIcon),e},"mapAppIcon"),De=s(function(e){return e.text&&(e.message=e.text,delete e.text),e},"mapText"),oi=s(function(e){return e.i&&(e.icon=e.i,delete e.i),e},"mapIconShorthand");A.exports.mapToNotifySend=function(e){e=Je(e),e=De(e),e.timeout===!1&&delete e.timeout,e.wait===!0&&(e["expire-time"]=5);for(let t in e)t==="message"||t==="title"||e.hasOwnProperty(t)&&ri[t]!==t&&(e[ri[t]]=e[t],delete e[t]);return typeof e["expire-time"]>"u"?e["expire-time"]=10*1e3:typeof e["expire-time"]=="number"&&(e["expire-time"]=e["expire-time"]*1e3),e};A.exports.mapToGrowl=function(e){if(e=Je(e),e=oi(e),e=De(e),e.icon&&!Buffer.isBuffer(e.icon))try{e.icon=_t.readFileSync(e.icon)}catch{}return e};A.exports.mapToMac=function(e){return e=oi(e),e=De(e),e.icon&&(e.appIcon=e.icon,delete e.icon),e.sound===!0&&(e.sound="Bottle"),e.sound===!1&&delete e.sound,e.sound&&e.sound.indexOf("Notification.")===0&&(e.sound="Bottle"),e.wait===!0&&(e.timeout||(e.timeout=5),delete e.wait),!e.wait&&!e.timeout&&(e.timeout===!1?delete e.timeout:e.timeout=10),e.json=!0,e};function It(e){return Object.prototype.toString.call(e)==="[object Array]"}s(It,"isArray");A.exports.isArray=It;function cs(){}s(cs,"noop");A.exports.actionJackerDecorator=function(e,t,r,i){if(t=si(t),r=r||cs,typeof r!="function")throw new TypeError("The second argument must be a function callback. You have passed "+typeof r);return function(n,o){let a=o,f={};if(a&&typeof a=="object"&&(f=a,a=a.activationType),a&&(a=a.toLowerCase().trim(),a.match(/^activate|clicked$/)&&(a="activate"),a.match(/^timedout$/)&&(a="timeout")),r.apply(e,[n,a,f]),!i||!a)return;let l=i(a);l&&e.emit(l,e,t,f)}};A.exports.constructArgumentList=function(e,t){let r=[];t=t||{};let i=t.initial||[],n=t.keyExtra||"",o=t.allowedArguments||[],a=t.noEscape!==void 0,f=t.allowedArguments!==void 0,l=!!t.explicitTrue,u=!!t.keepNewlines,h=t.wrapper===void 0?'"':t.wrapper,g=s(function p(d){return It(d)?ii(d.map(p).join(",")):(a||(d=ss(d)),typeof d=="string"&&!u&&(d=ii(d)),h+d+h)},"escapeFn");i.forEach(function(p){r.push(g(p))});for(let p in e)if(e.hasOwnProperty(p)&&(!f||os(o,p)))if(l&&e[p]===!0)r.push("-"+n+p);else{if(l&&e[p]===!1)continue;r.push("-"+n+p,g(e[p]))}return r};function ii(e){let t=process.platform==="win32"?"\\r\\n":"\\n";return e.replace(/\r?\n/g,t)}s(ii,"removeNewLines");var fs=["t","m","b","tb","p","id","s","silent","appID","pid","pipeName","close","install"],ls="Notification.",ni="Notification.Default";A.exports.mapToWin8=function(e){e=Je(e),e=De(e),e.icon&&(/^file:\/+/.test(e.icon)?e.p=new rs.URL(e.icon).pathname.replace(/^\/(\w:\/)/,"$1").replace(/\//g,"\\"):e.p=e.icon,delete e.icon),e.message&&(e.m=e.message.replace(/\x1b/g,""),delete e.message),e.title&&(e.t=e.title,delete e.title),e.appName&&(e.appID=e.appName,delete e.appName),typeof e.remove<"u"&&(e.close=e.remove,delete e.remove),(e.quiet||e.silent)&&(e.silent=e.quiet||e.silent,delete e.quiet),typeof e.sound<"u"&&(e.s=e.sound,delete e.sound),e.s===!1&&(e.silent=!0,delete e.s),e.s&&e.silent&&delete e.s,e.s===!0&&(e.s=ni),e.s&&e.s.indexOf(ls)!==0&&(e.s=ni),e.actions&&It(e.actions)&&(e.b=e.actions.join(";"),delete e.actions);for(let t in e)e.hasOwnProperty(t)&&fs.indexOf(t)===-1&&delete e[t];return e};A.exports.mapToNotifu=function(e){return e=Je(e),e=De(e),e.icon&&(e.i=e.icon,delete e.icon),e.message&&(e.m=e.message,delete e.message),e.title&&(e.p=e.title,delete e.title),e.time&&(e.d=e.time,delete e.time),e.q!==!1?e.q=!0:delete e.q,e.quiet===!1&&(delete e.q,delete e.quiet),e.sound&&(delete e.q,delete e.sound),e.t&&(e.d=e.t,delete e.t),e.type&&(e.t=us(e.type),delete e.type),e};A.exports.isMac=function(){return he.type()==="Darwin"};A.exports.isMountainLion=function(){return he.type()==="Darwin"&&xt.satisfies(Dt(he.release()),">=12.0.0")};A.exports.isWin8=function(){return he.type()==="Windows_NT"&&xt.satisfies(Dt(he.release()),">=6.2.9200")};A.exports.isWSL=function(){return es};A.exports.isLessThanWin8=function(){return he.type()==="Windows_NT"&&xt.satisfies(Dt(he.release()),"<6.2.9200")};function Dt(e){return e.split(".").length===2&&(e+=".0"),e}s(Dt,"garanteeSemverFormat");function us(e){if(typeof e=="string"||e instanceof String){if(e.toLowerCase()==="info")return"info";if(e.toLowerCase()==="warn")return"warn";if(e.toLowerCase()==="error")return"error"}return"info"}s(us,"sanitizeNotifuTypeArgument");A.exports.createNamedPipe=e=>{let t=Buffer.alloc(ns);return new Promise(r=>{e.instance=is.createServer(i=>{i.on("data",n=>{t.write(n.toString())}),i.on("end",()=>{e.instance.close()})}),e.instance.listen(e.namedPipe,()=>{r(t)})})}});var hi=b((mf,ui)=>{c();var ai=v("os"),hs=vn(),Ae=de(),fi=v("events").EventEmitter,ds=v("util"),li="notify-send",Ye;ui.exports=Ce;function Ce(e){if(e=Ae.clone(e||{}),!(this instanceof Ce))return new Ce(e);this.options=e,fi.call(this)}s(Ce,"NotifySend");ds.inherits(Ce,fi);function ms(){}s(ms,"noop");function ps(e,t){if(e=Ae.clone(e||{}),t=t||ms,typeof t!="function")throw new TypeError("The second argument must be a function callback. You have passed "+typeof t);if(typeof e=="string"&&(e={title:"node-notifier",message:e}),!e.message)return t(new Error("Message is required.")),this;if(ai.type()!=="Linux"&&!ai.type().match(/BSD$/))return t(new Error("Only supported on Linux and *BSD systems")),this;if(Ye===!1)return t(new Error("notify-send must be installed on the system.")),this;if(Ye||this.options.suppressOsdCheck)return ci(e,t),this;try{Ye=!!hs.sync(li),ci(e,t)}catch(r){return Ye=!1,t(r)}return this}s(ps,"notifyRaw");Object.defineProperty(Ce.prototype,"notify",{get:s(function(){return this._notify||(this._notify=ps.bind(this)),this._notify},"get")});var ys=["urgency","expire-time","icon","category","hint","app-name"];function ci(e,t){e=Ae.mapToNotifySend(e),e.title=e.title||"Node Notification:";let r=[e.title,e.message];delete e.title,delete e.message;let i=Ae.constructArgumentList(e,{initial:r,keyExtra:"-",allowedArguments:ys});Ae.command(li,i,t)}s(ci,"doNotification")});var At=b((wf,mi)=>{c();var ws=v("net"),di=!1;mi.exports=function(e,t){if(typeof t>"u"&&(t=e,e={}),di)return t(null,di);let r=e.port||23053,i=e.host||"localhost",n=ws.connect(r,i);n.setTimeout(100),n.once("connect",function(){n.end(),t(null,!0)}),n.once("error",function(){n.end(),t(null,!1)})}});var wi=b((Ef,yi)=>{c();var gs=v("net"),Es=v("crypto"),pi=v("util").format,vs=v("fs"),G=`\r
3
3
  `;function me(e,t){t=t||{},this.type=e,this.host=t.host||"localhost",this.port=t.port||23053,this.request="GNTP/1.0 "+e+" NONE"+G,this.resources=[],this.attempts=0,this.maxAttempts=5}s(me,"GNTP");me.prototype.parseResp=function(e){var t={},r,i;return e=e.slice(0,e.indexOf(G+G)).split(G),r=e[0],i=e.slice(1),t.state=r.match(/-(OK|ERROR|CALLBACK)/)[0].slice(1),i.forEach(function(n){n=n.split(": "),t[n[0]]=n[1]}),t};me.prototype.retry=function(){var e=this,t=arguments;setTimeout(function(){e.send.apply(e,t)},750)};me.prototype.addResource=function(e){var t=Es.createHash("md5").update(e).digest("hex"),r="Identifier: "+t+G+"Length: "+e.length+G+G;return this.resources.push({header:r,file:e}),"x-growl-resource://"+t};me.prototype.add=function(e,t){t!==void 0&&(/-Icon/.test(e)&&!/^https?:\/\//.test(t)&&(/\.(png|gif|jpe?g)$/.test(t)?t=this.addResource(vs.readFileSync(t)):t instanceof Buffer&&(t=this.addResource(t))),this.request+=e+": "+t+G)};me.prototype.newline=function(){this.request+=G};me.prototype.send=function(e){var t=this,r=gs.connect(this.port,this.host),i="";e=e||function(){},this.attempts+=1,r.on("connect",function(){r.write(t.request),t.resources.forEach(function(n){r.write(n.header),r.write(n.file),r.write(G+G)})}),r.on("data",function(n){i+=n.toString(),i.slice(i.length-4)===G+G&&(i=t.parseResp(i),i.state==="ERROR"||i.state==="CALLBACK"?r.end():i="")}),r.on("end",function(){if(["200","401","402"].indexOf(i["Error-Code"])>=0)if(t.attempts<=t.maxAttempts)t.retry(e);else{var n='GNTP request to "%s:%d" failed with error code %s (%s)';e(new Error(pi(n,t.host,t.port,i["Error-Code"],i["Error-Description"])))}else e(void 0,i)}),r.on("error",function(){e(new Error(pi('Error while sending GNTP request to "%s:%d"',t.host,t.port))),r.destroy()})};yi.exports=me});var vi=b((Sf,Ei)=>{c();var gi=wi();function Te(){this.appname="Growly",this.notifications=void 0,this.labels=void 0,this.count=0,this.registered=!1,this.host=void 0,this.port=void 0}s(Te,"Growly");Te.prototype.getLabels=function(){return this.notifications.map(function(e){return e.label})};Te.prototype.setHost=function(e,t){this.host=e,this.port=t};Te.prototype.register=function(e,t,r,i){var n;typeof t=="object"&&(r=t,t=void 0),(r===void 0||!r.length)&&(r=[{label:"default",dispname:"Default Notification",enabled:!0}]),typeof arguments[arguments.length-1]=="function"?i=arguments[arguments.length-1]:i=s(function(){},"callback"),this.appname=e,this.notifications=r,this.labels=this.getLabels(),this.registered=!0,n=new gi("REGISTER",{host:this.host,port:this.port}),n.add("Application-Name",e),n.add("Application-Icon",t),n.add("Notifications-Count",r.length),n.newline(),r.forEach(function(o){o.enabled===void 0&&(o.enabled=!0),n.add("Notification-Name",o.label),n.add("Notification-Display-Name",o.dispname),n.add("Notification-Enabled",o.enabled?"True":"False"),n.add("Notification-Icon",o.icon),n.newline()}),n.send(i)};Te.prototype.notify=function(e,t,r){var i=this,n;if(!this.registered){this.register(this.appname,function(o){o&&console.log(o),i.notify.call(i,e,t,r)});return}t=t||{},typeof t=="function"&&(r=t,t={}),n=new gi("NOTIFY",{host:this.host,port:this.port}),n.add("Application-Name",this.appname),n.add("Notification-Name",t.label||this.labels[0]),n.add("Notification-ID",++this.count),n.add("Notification-Title",t.title),n.add("Notification-Text",e),n.add("Notification-Sticky",t.sticky?"True":"False"),n.add("Notification-Priority",t.priority),n.add("Notification-Icon",t.icon),n.add("Notification-Coalescing-ID",t.coalescingId||void 0),n.add("Notification-Callback-Context",r?"context":void 0),n.add("Notification-Callback-Context-Type",r?"string":void 0),n.add("Notification-Callback-Target",void 0),n.newline(),n.send(function(o,a){r&&o?r(o):r&&a.state==="CALLBACK"&&r(void 0,a["Notification-Callback-Result"].toLowerCase())})};Ei.exports=new Te});var Xe=b((If,_i)=>{c();var Ns=At(),Ve=de(),Re=vi(),Si=v("events").EventEmitter,Ss=v("util"),_s="Couldn't connect to growl (might be used as a fallback). Make sure it is running";_i.exports=be;var Ni;function be(e){if(e=Ve.clone(e||{}),!(this instanceof be))return new be(e);Re.appname=e.name||"Node",this.options=e,Si.call(this)}s(be,"Growl");Ss.inherits(be,Si);function xs(e,t){if(Re.setHost(this.options.host,this.options.port),e=Ve.clone(e||{}),typeof e=="string"&&(e={title:"node-notifier",message:e}),t=Ve.actionJackerDecorator(this,e,t,function(r){return r==="click"?"click":r==="timedout"?"timeout":!1}),e=Ve.mapToGrowl(e),!e.message)return t(new Error("Message is required.")),this;if(e.title=e.title||"Node Notification:",Ni||e.wait){let r=e.wait?t:Is;return Re.notify(e.message,e,r),e.wait||t(),this}return Ns(Re,function(r,i){if(Ni=i,!i)return t(new Error(_s));Re.notify(e.message,e),t()}),this}s(xs,"notifyRaw");Object.defineProperty(be.prototype,"notify",{get:s(function(){return this._notify||(this._notify=xs.bind(this)),this._notify},"get")});function Is(){}s(Is,"noop")});var Ai=b((Cf,Di)=>{c();var pe=de(),Ds=Xe(),As=v("path"),Cs=As.join(__dirname,"../vendor/mac.noindex/terminal-notifier.app/Contents/MacOS/terminal-notifier"),Ii=v("events").EventEmitter,Ts=v("util"),Rs="You need Mac OS X 10.8 or above to use NotificationCenter, or use Growl fallback with constructor option {withFallback: true}.";Di.exports=ke;function ke(e){if(e=pe.clone(e||{}),!(this instanceof ke))return new ke(e);this.options=e,Ii.call(this)}s(ke,"NotificationCenter");Ts.inherits(ke,Ii);var xi=null;function bs(){}s(bs,"noop");function ks(e,t){let r,i=Ls();if(e=pe.clone(e||{}),xi=i,typeof e=="string"&&(e={title:"node-notifier",message:e}),t=t||bs,typeof t!="function")throw new TypeError("The second argument must be a function callback. You have passed "+typeof fn);let n=pe.actionJackerDecorator(this,e,t,function(a){return xi!==i?!1:a==="activate"?"click":a==="timeout"?"timeout":a==="replied"?"replied":!1});if(e=pe.mapToMac(e),!e.message&&!e.group&&!e.list&&!e.remove)return t(new Error("Message, group, remove or list property is required.")),this;let o=pe.constructArgumentList(e);return pe.isMountainLion()?(pe.fileCommandJson(this.options.customPath||Cs,o,n),this):r||this.options.withFallback?(r=r||new Ds(this.options),r.notify(e,t)):(t(new Error(Rs)),this)}s(ks,"notifyRaw");Object.defineProperty(ke.prototype,"notify",{get:s(function(){return this._notify||(this._notify=ks.bind(this)),this._notify},"get")});function Ls(){return{_ref:"val"}}s(Ls,"identificator")});var Ct=b((bf,bi)=>{c();var Os=v("path"),qs=Os.resolve(__dirname,"../vendor/notifu/notifu"),Fs=At(),re=de(),Us=Tt(),Ci=Xe(),Ps=v("os"),Ri=v("events").EventEmitter,Ms=v("util"),Ze;bi.exports=Le;function Le(e){if(e=re.clone(e||{}),!(this instanceof Le))return new Le(e);this.options=e,Ri.call(this)}s(Le,"WindowsBalloon");Ms.inherits(Le,Ri);function Ws(){}s(Ws,"noop");function Gs(e,t){let r,i=this.options;e=re.clone(e||{}),t=t||Ws,typeof e=="string"&&(e={title:"node-notifier",message:e});let n=re.actionJackerDecorator(this,e,t,function(o){return o==="activate"?"click":o==="timeout"?"timeout":!1});return this.options.withFallback&&re.isWin8()?(r=r||new Us(i),r.notify(e,t)):this.options.withFallback&&(!re.isLessThanWin8()||Ze===!0)?(r=r||new Ci(i),r.notify(e,t)):!this.options.withFallback||Ze===!1?(Ti(e,i,n),this):(Fs(i,function(o,a){if(Ze=a,Ze)return r=r||new Ci(i),r.notify(e,t);Ti(e,i,n)}),this)}s(Gs,"notifyRaw");Object.defineProperty(Le.prototype,"notify",{get:s(function(){return this._notify||(this._notify=Gs.bind(this)),this._notify},"get")});var Bs=["t","d","p","m","i","e","q","w","xp"];function Ti(e,t,r){let i=Ps.arch()==="x64";e=e||{},e=re.mapToNotifu(e),e.p=e.p||"Node Notification:";let n=qs+(i?"64":"")+".exe",o=t.customPath||n;if(!e.m)return r(new Error("Message is required.")),this;let a=re.constructArgumentList(e,{wrapper:"",noEscape:!0,explicitTrue:!0,allowedArguments:Bs});if(e.wait)return re.fileCommand(o,a,function(f,l){let u=js(f.code);return u==="error"?r(f,l):r(null,u)});re.immediateFileCommand(o,a,r)}s(Ti,"doNotification");function js(e){switch(e){case 2:return"timeout";case 3:case 6:case 7:return"activate";case 4:return"close";default:return"error"}}s(js,"fromErrorCodeToAction")});import Hs from"crypto";function Oe(){return Qe>et.length-16&&(Hs.randomFillSync(et),Qe=0),et.slice(Qe,Qe+=16)}var et,Qe,Rt=q(()=>{c();et=new Uint8Array(256),Qe=et.length;s(Oe,"rng")});var ki,Li=q(()=>{c();ki=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i});function $s(e){return typeof e=="string"&&ki.test(e)}var ae,qe=q(()=>{c();Li();s($s,"validate");ae=$s});function Ks(e,t=0){let r=(k[e[t+0]]+k[e[t+1]]+k[e[t+2]]+k[e[t+3]]+"-"+k[e[t+4]]+k[e[t+5]]+"-"+k[e[t+6]]+k[e[t+7]]+"-"+k[e[t+8]]+k[e[t+9]]+"-"+k[e[t+10]]+k[e[t+11]]+k[e[t+12]]+k[e[t+13]]+k[e[t+14]]+k[e[t+15]]).toLowerCase();if(!ae(r))throw TypeError("Stringified UUID is invalid");return r}var k,ce,Fe=q(()=>{c();qe();k=[];for(let e=0;e<256;++e)k.push((e+256).toString(16).substr(1));s(Ks,"stringify");ce=Ks});function zs(e,t,r){let i=t&&r||0,n=t||new Array(16);e=e||{};let o=e.node||Oi,a=e.clockseq!==void 0?e.clockseq:bt;if(o==null||a==null){let p=e.random||(e.rng||Oe)();o==null&&(o=Oi=[p[0]|1,p[1],p[2],p[3],p[4],p[5]]),a==null&&(a=bt=(p[6]<<8|p[7])&16383)}let f=e.msecs!==void 0?e.msecs:Date.now(),l=e.nsecs!==void 0?e.nsecs:Lt+1,u=f-kt+(l-Lt)/1e4;if(u<0&&e.clockseq===void 0&&(a=a+1&16383),(u<0||f>kt)&&e.nsecs===void 0&&(l=0),l>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");kt=f,Lt=l,bt=a,f+=122192928e5;let h=((f&268435455)*1e4+l)%4294967296;n[i++]=h>>>24&255,n[i++]=h>>>16&255,n[i++]=h>>>8&255,n[i++]=h&255;let g=f/4294967296*1e4&268435455;n[i++]=g>>>8&255,n[i++]=g&255,n[i++]=g>>>24&15|16,n[i++]=g>>>16&255,n[i++]=a>>>8|128,n[i++]=a&255;for(let p=0;p<6;++p)n[i+p]=o[p];return t||ce(n)}var Oi,bt,kt,Lt,qi,Fi=q(()=>{c();Rt();Fe();kt=0,Lt=0;s(zs,"v1");qi=zs});function Js(e){if(!ae(e))throw TypeError("Invalid UUID");let t,r=new Uint8Array(16);return r[0]=(t=parseInt(e.slice(0,8),16))>>>24,r[1]=t>>>16&255,r[2]=t>>>8&255,r[3]=t&255,r[4]=(t=parseInt(e.slice(9,13),16))>>>8,r[5]=t&255,r[6]=(t=parseInt(e.slice(14,18),16))>>>8,r[7]=t&255,r[8]=(t=parseInt(e.slice(19,23),16))>>>8,r[9]=t&255,r[10]=(t=parseInt(e.slice(24,36),16))/1099511627776&255,r[11]=t/4294967296&255,r[12]=t>>>24&255,r[13]=t>>>16&255,r[14]=t>>>8&255,r[15]=t&255,r}var tt,Ot=q(()=>{c();qe();s(Js,"parse");tt=Js});function Ys(e){e=unescape(encodeURIComponent(e));let t=[];for(let r=0;r<e.length;++r)t.push(e.charCodeAt(r));return t}function Ue(e,t,r){function i(n,o,a,f){if(typeof n=="string"&&(n=Ys(n)),typeof o=="string"&&(o=tt(o)),o.length!==16)throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");let l=new Uint8Array(16+n.length);if(l.set(o),l.set(n,o.length),l=r(l),l[6]=l[6]&15|t,l[8]=l[8]&63|128,a){f=f||0;for(let u=0;u<16;++u)a[f+u]=l[u];return a}return ce(l)}s(i,"generateUUID");try{i.name=e}catch{}return i.DNS=Vs,i.URL=Xs,i}var Vs,Xs,qt=q(()=>{c();Fe();Ot();s(Ys,"stringToBytes");Vs="6ba7b810-9dad-11d1-80b4-00c04fd430c8",Xs="6ba7b811-9dad-11d1-80b4-00c04fd430c8";s(Ue,"default")});import Zs from"crypto";function Qs(e){return Array.isArray(e)?e=Buffer.from(e):typeof e=="string"&&(e=Buffer.from(e,"utf8")),Zs.createHash("md5").update(e).digest()}var Ui,Pi=q(()=>{c();s(Qs,"md5");Ui=Qs});var eo,Mi,Wi=q(()=>{c();qt();Pi();eo=Ue("v3",48,Ui),Mi=eo});function to(e,t,r){e=e||{};let i=e.random||(e.rng||Oe)();if(i[6]=i[6]&15|64,i[8]=i[8]&63|128,t){r=r||0;for(let n=0;n<16;++n)t[r+n]=i[n];return t}return ce(i)}var Gi,Bi=q(()=>{c();Rt();Fe();s(to,"v4");Gi=to});import ro from"crypto";function io(e){return Array.isArray(e)?e=Buffer.from(e):typeof e=="string"&&(e=Buffer.from(e,"utf8")),ro.createHash("sha1").update(e).digest()}var ji,Hi=q(()=>{c();s(io,"sha1");ji=io});var no,$i,Ki=q(()=>{c();qt();Hi();no=Ue("v5",80,ji),$i=no});var zi,Ji=q(()=>{c();zi="00000000-0000-0000-0000-000000000000"});function so(e){if(!ae(e))throw TypeError("Invalid UUID");return parseInt(e.substr(14,1),16)}var Yi,Vi=q(()=>{c();qe();s(so,"version");Yi=so});var Xi={};yn(Xi,{NIL:()=>zi,parse:()=>tt,stringify:()=>ce,v1:()=>qi,v3:()=>Mi,v4:()=>Gi,v5:()=>$i,validate:()=>ae,version:()=>Yi});var Zi=q(()=>{c();Fi();Wi();Bi();Ki();Ji();Vi();qe();Fe();Ot()});var Tt=b(($l,en)=>{c();var oo=v("path"),ao=oo.resolve(__dirname,"../vendor/snoreToast/snoretoast"),X=de(),co=Ct(),fo=v("os"),{v4:lo}=(Zi(),wn(Xi)),Qi=v("events").EventEmitter,uo=v("util"),Ft,ho="notifierPipe",mo="\\\\.\\pipe\\",po="/tmp/";en.exports=Pe;function Pe(e){if(e=X.clone(e||{}),!(this instanceof Pe))return new Pe(e);this.options=e,Qi.call(this)}s(Pe,"WindowsToaster");uo.inherits(Pe,Qi);function yo(){}s(yo,"noop");function wo(e){return e?e.split(";").reduce((t,r)=>{let i=r.split("=");return i&&i.length===2&&(t[i[0]]=i[1]),t},{}):{}}s(wo,"parseResult");function go(){return`${X.isWSL()?po:mo}${ho}-${lo()}`}s(go,"getPipeName");function Eo(e,t){e=X.clone(e||{}),t=t||yo;let r=fo.arch()==="x64",i,n={namedPipe:go()};if(typeof e=="string"&&(e={title:"node-notifier",message:e}),typeof t!="function")throw new TypeError("The second argument must be a function callback. You have passed "+typeof fn);let o=s((f,l)=>{let u=wo(i&&i.toString("utf16le"));u.action==="buttonClicked"&&u.button?u.activationType=u.button:u.action&&(u.activationType=u.action),f&&f.code===-1&&l(f,u),l(null,u),n.instance&&n.instance.close()},"snoreToastResultParser"),a=s(f=>o(f,X.actionJackerDecorator(this,e,t,l=>l==="activate"?"click":l||!1)),"actionJackedCallback");return e.title=e.title||"Node Notification:",typeof e.message>"u"&&typeof e.close>"u"?(t(new Error("Message or ID to close is required.")),this):!X.isWin8()&&!X.isWSL()&&this.options.withFallback?(Ft=Ft||new co(this.options),Ft.notify(e,t)):(X.createNamedPipe(n).then(f=>{i=f,e.pipeName=n.namedPipe;let l=e.customPath||this.options.customPath||ao+"-x"+(r?"64":"86")+".exe";e=X.mapToWin8(e);let u=X.constructArgumentList(e,{explicitTrue:!0,wrapper:"",keepNewlines:!0,noEscape:!0});X.fileCommand(l,u,a)}),this)}s(Eo,"notifyRaw");Object.defineProperty(Pe.prototype,"notify",{get:s(function(){return this._notify||(this._notify=Eo.bind(this)),this._notify},"get")})});var nn=b((Jl,C)=>{c();var tn=v("os"),rn=de(),Me=hi(),Ut=Ai(),We=Tt(),Pt=Xe(),Mt=Ct(),ye={withFallback:!0},vo=rn.isWSL()?"WSL":tn.type();switch(vo){case"Linux":C.exports=new Me(ye),C.exports.Notification=Me;break;case"Darwin":C.exports=new Ut(ye),C.exports.Notification=Ut;break;case"Windows_NT":rn.isLessThanWin8()?(C.exports=new Mt(ye),C.exports.Notification=Mt):(C.exports=new We(ye),C.exports.Notification=We);break;case"WSL":C.exports=new We(ye),C.exports.Notification=We;break;default:tn.type().match(/BSD$/)?(C.exports=new Me(ye),C.exports.Notification=Me):(C.exports=new Pt(ye),C.exports.Notification=Pt)}C.exports.NotifySend=Me;C.exports.NotificationCenter=Ut;C.exports.WindowsToaster=We;C.exports.WindowsBalloon=Mt;C.exports.Growl=Pt});c();var cn=Be(En(),1),fe=Be(gn(),1);import an from"node:path";c();import{EventEmitter as Tn}from"node:events";import gt from"node:fs";import ge from"node:path";c();import Sn from"node:os";var ar=300,se=20,Ne=1e7,cr=Sn.platform();var _n=cr==="darwin",st=cr==="win32",oe=_n||st,fr=3e3,lr=2e4,ot=1250;c();var J;(function(e){e[e.DIR=1]="DIR",e[e.FILE=2]="FILE"})(J||(J={}));var ue;(function(e){e.CHANGE="change",e.RENAME="rename"})(ue||(ue={}));var Se;(function(e){e.CHANGE="change",e.ERROR="error"})(Se||(Se={}));var m;(function(e){e.ADD="add",e.ADD_DIR="addDir",e.CHANGE="change",e.RENAME="rename",e.RENAME_DIR="renameDir",e.UNLINK="unlink",e.UNLINK_DIR="unlinkDir"})(m||(m={}));var F;(function(e){e.ALL="all",e.CLOSE="close",e.ERROR="error",e.READY="ready"})(F||(F={}));c();c();c();var xn=s((e,t=1,r)=>{t=Math.max(1,t);let i=r?.leading??!1,n=r?.trailing??!0,o=Math.max(r?.maxWait??1/0,t),a,f,l=0,u=0,h=s(()=>{let _=Date.now(),W=_-l,ne=_-u,le=W>=t||ne>=o;return[_,le]},"getInstantData"),g=s(_=>{if(u=_,!a)return;let W=a;a=void 0,e.apply(void 0,W)},"invoke"),p=s(()=>{L(0)},"onCancel"),d=s(()=>{f&&(p(),g(Date.now()))},"onFlush"),D=s(_=>{if(u=_,i)return g(_)},"onLeading"),T=s(_=>{if(n&&a)return g(_);a=void 0},"onTrailing"),M=s(()=>{f=void 0;let[_,W]=h();return W?T(_):ie(_)},"onTimeout"),ie=s(_=>{let W=_-l,ne=_-u,le=t-W,Ge=o-ne,H=Math.min(le,Ge);return L(H)},"updateTimeout"),L=s(_=>{f&&clearTimeout(f),!(_<=0)&&(f=setTimeout(M,_))},"resetTimeout"),j=s((..._)=>{let[W,ne]=h(),le=!!f;if(a=_,l=W,(ne||!f)&&L(t),ne)return le?g(W):D(W)},"debounced");return j.cancel=p,j.flush=d,j},"debounce"),He=xn;c();import Sr from"node:fs";import lt from"node:path";c();import S from"node:fs";import{promisify as O}from"node:util";c();var Q=s((e,t)=>s(function(...i){return e.apply(void 0,i).catch(t)},"attemptified"),"attemptifyAsync"),Y=s((e,t)=>s(function(...i){try{return e.apply(void 0,i)}catch(n){return t(n)}},"attemptified"),"attemptifySync");c();import ur from"node:process";var hr=ur.getuid?!ur.getuid():!1,dr=1e4,P=s(()=>{},"NOOP");c();var _e={isChangeErrorOk:s(e=>{if(!_e.isNodeError(e))return!1;let{code:t}=e;return t==="ENOSYS"||!hr&&(t==="EINVAL"||t==="EPERM")},"isChangeErrorOk"),isNodeError:s(e=>e instanceof Error,"isNodeError"),isRetriableError:s(e=>{if(!_e.isNodeError(e))return!1;let{code:t}=e;return t==="EMFILE"||t==="ENFILE"||t==="EAGAIN"||t==="EBUSY"||t==="EACCESS"||t==="EACCES"||t==="EACCS"||t==="EPERM"},"isRetriableError"),onChangeError:s(e=>{if(!_e.isNodeError(e))throw e;if(!_e.isChangeErrorOk(e))throw e},"onChangeError")},I=_e;c();c();var at=class{static{s(this,"RetryfyQueue")}constructor(){this.interval=25,this.intervalId=void 0,this.limit=dr,this.queueActive=new Set,this.queueWaiting=new Set,this.init=()=>{this.intervalId||(this.intervalId=setInterval(this.tick,this.interval))},this.reset=()=>{this.intervalId&&(clearInterval(this.intervalId),delete this.intervalId)},this.add=t=>{this.queueWaiting.add(t),this.queueActive.size<this.limit/2?this.tick():this.init()},this.remove=t=>{this.queueWaiting.delete(t),this.queueActive.delete(t)},this.schedule=()=>new Promise(t=>{let r=s(()=>this.remove(i),"cleanup"),i=s(()=>t(r),"resolver");this.add(i)}),this.tick=()=>{if(!(this.queueActive.size>=this.limit)){if(!this.queueWaiting.size)return this.reset();for(let t of this.queueWaiting){if(this.queueActive.size>=this.limit)break;this.queueWaiting.delete(t),this.queueActive.add(t),t()}}}}},mr=new at;var ee=s((e,t)=>s(function(i){return s(function n(...o){return mr.schedule().then(a=>{let f=s(u=>(a(),u),"onResolve"),l=s(u=>{if(a(),Date.now()>=i)throw u;if(t(u)){let h=Math.round(100*Math.random());return new Promise(p=>setTimeout(p,h)).then(()=>n.apply(void 0,o))}throw u},"onReject");return e.apply(void 0,o).then(f,l)})},"attempt")},"retrified"),"retryifyAsync"),te=s((e,t)=>s(function(i){return s(function n(...o){try{return e.apply(void 0,o)}catch(a){if(Date.now()>i)throw a;if(t(a))return n.apply(void 0,o);throw a}},"attempt")},"retrified"),"retryifySync");var In={attempt:{chmod:Q(O(S.chmod),I.onChangeError),chown:Q(O(S.chown),I.onChangeError),close:Q(O(S.close),P),fsync:Q(O(S.fsync),P),mkdir:Q(O(S.mkdir),P),realpath:Q(O(S.realpath),P),stat:Q(O(S.stat),P),unlink:Q(O(S.unlink),P),chmodSync:Y(S.chmodSync,I.onChangeError),chownSync:Y(S.chownSync,I.onChangeError),closeSync:Y(S.closeSync,P),existsSync:Y(S.existsSync,P),fsyncSync:Y(S.fsync,P),mkdirSync:Y(S.mkdirSync,P),realpathSync:Y(S.realpathSync,P),statSync:Y(S.statSync,P),unlinkSync:Y(S.unlinkSync,P)},retry:{close:ee(O(S.close),I.isRetriableError),fsync:ee(O(S.fsync),I.isRetriableError),open:ee(O(S.open),I.isRetriableError),readFile:ee(O(S.readFile),I.isRetriableError),rename:ee(O(S.rename),I.isRetriableError),stat:ee(O(S.stat),I.isRetriableError),write:ee(O(S.write),I.isRetriableError),writeFile:ee(O(S.writeFile),I.isRetriableError),closeSync:te(S.closeSync,I.isRetriableError),fsyncSync:te(S.fsyncSync,I.isRetriableError),openSync:te(S.openSync,I.isRetriableError),readFileSync:te(S.readFileSync,I.isRetriableError),renameSync:te(S.renameSync,I.isRetriableError),statSync:te(S.statSync,I.isRetriableError),writeSync:te(S.writeSync,I.isRetriableError),writeFileSync:te(S.writeFileSync,I.isRetriableError)}},pr=In;c();import ft from"node:fs";import $e from"node:path";c();c();c();var ct=s(()=>{},"noop");var Dn=s(()=>{let e=ct,t=ct,r=!1,i=!1;return{promise:new Promise((l,u)=>{e=s(h=>(r=!0,l(h)),"resolve"),t=s(h=>(i=!0,u(h)),"reject")}),resolve:e,reject:t,isPending:s(()=>!r&&!i,"isPending"),isResolved:s(()=>r,"isResolved"),isRejected:s(()=>i,"isRejected")}},"makeNakedPromise"),yr=Dn;var An=s(()=>{let{promise:e,resolve:t,isPending:r}=yr(),i=0,n=s(()=>{i+=1},"increment"),o=s(()=>{i-=1,!i&&t()},"decrement");return s(()=>{n(),queueMicrotask(o)},"init")(),{promise:e,isPending:r,increment:n,decrement:o}},"makeCounterPromise"),wr=An;c();var gr={then:s(e=>{e()},"then")};c();var Er=s(e=>Array.isArray(e)?e:[e],"castArray"),vr=s(e=>typeof e=="function","isFunction");var Cn=s((e,t)=>{let r=t?.followSymlinks??!1,i=t?.depth??1/0,n=t?.limit??1/0,o=t?.ignore??[],a=Er(o).map(E=>vr(E)?E:w=>E.test(w)),f=s(E=>a.some(w=>w(E)),"isIgnored"),l=t?.signal??{aborted:!1},u=t?.onDirents||(()=>{}),h=[],g=new Set,p={},d=[],D=new Set,T={},M=[],ie=new Set,L={},j={},_=new Set,W={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{},map:{}},ne={directories:h,directoriesNames:g,directoriesNamesToPaths:p,files:d,filesNames:D,filesNamesToPaths:T,symlinks:M,symlinksNames:ie,symlinksNamesToPaths:L,map:j},{promise:le,increment:Ge,decrement:H}=wr(),Z=0,Wt=s((E,w,N,x)=>{_.has(w)||Z>=n||(Z+=1,E.directories.push(w),E.directoriesNames.add(N),h.push(w),g.add(N),p.propertyIsEnumerable(N)||(p[N]=[]),p[N].push(w),_.add(w),!(x>=i)&&(Z>=n||jt(w,x+1)))},"handleDirectory"),Gt=s((E,w,N)=>{_.has(w)||Z>=n||(Z+=1,E.files.push(w),E.filesNames.add(N),d.push(w),D.add(N),T.propertyIsEnumerable(N)||(T[N]=[]),T[N].push(w),_.add(w))},"handleFile"),Bt=s((E,w,N,x)=>{_.has(w)||Z>=n||(Z+=1,E.symlinks.push(w),E.symlinksNames.add(N),M.push(w),ie.add(N),L.propertyIsEnumerable(N)||(L[N]=[]),L[N].push(w),_.add(w),r&&(x>=i||Z>=n||mn(w,x+1)))},"handleSymlink"),un=s((E,w,N,x,$)=>{l.aborted||f(w)||(x.isDirectory()?Wt(E,w,N,$):x.isFile()?Gt(E,w,N):x.isSymbolicLink()&&Bt(E,w,N,$))},"handleStat"),hn=s((E,w,N,x)=>{if(l.aborted)return;let $=w===$e.sep?"":$e.sep,z=N.name,we=`${w}${$}${z}`;f(we)||(N.isDirectory()?Wt(E,we,z,x):N.isFile()?Gt(E,we,z):N.isSymbolicLink()&&Bt(E,we,z,x))},"handleDirent"),dn=s((E,w,N,x)=>{for(let $=0,z=N.length;$<z;$++)hn(E,w,N[$],x)},"handleDirents"),jt=s((E,w)=>{l.aborted||w>i||Z>=n||(Ge(),ft.readdir(E,{withFileTypes:!0},(N,x)=>{if(N||l.aborted||!x.length)return H();(u(x)||gr).then(()=>{let z=j[E]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};dn(z,E,x,w),H()})}))},"populateResultFromPath"),mn=s((E,w)=>{Ge(),ft.realpath(E,(N,x)=>{if(N||l.aborted)return H();ft.stat(x,($,z)=>{if($||l.aborted)return H();let we=$e.basename(x),pn=j[E]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};un(pn,x,we,z,w),H()})})},"populateResultFromSymlink");return s(async(E,w=1)=>(E=$e.normalize(E),_.add(E),jt(E,w),await le,l.aborted?W:ne),"getResult")(e)},"readdir"),Nr=Cn;var V={lang:{debounce:He,attempt:s(e=>{try{return e()}catch(t){return V.lang.castError(t)}},"attempt"),castArray:s(e=>V.lang.isArray(e)?e:[e],"castArray"),castError:s(e=>V.lang.isError(e)?e:V.lang.isString(e)?new Error(e):new Error("Unknown error"),"castError"),defer:s(e=>setTimeout(e,0),"defer"),isArray:s(e=>Array.isArray(e),"isArray"),isError:s(e=>e instanceof Error,"isError"),isFunction:s(e=>typeof e=="function","isFunction"),isNaN:s(e=>Number.isNaN(e),"isNaN"),isNumber:s(e=>typeof e=="number","isNumber"),isPrimitive:s(e=>{if(e===null)return!0;let t=typeof e;return t!=="object"&&t!=="function"},"isPrimitive"),isShallowEqual:s((e,t)=>{if(e===t)return!0;if(V.lang.isNaN(e))return V.lang.isNaN(t);if(V.lang.isPrimitive(e)||V.lang.isPrimitive(t))return e===t;for(let r in e)if(!(r in t))return!1;for(let r in t)if(e[r]!==t[r])return!1;return!0},"isShallowEqual"),isSet:s(e=>e instanceof Set,"isSet"),isString:s(e=>typeof e=="string","isString"),isUndefined:s(e=>e===void 0,"isUndefined"),noop:s(()=>{},"noop"),uniq:s(e=>e.length<2?e:Array.from(new Set(e)),"uniq")},fs:{getDepth:s(e=>Math.max(0,e.split(lt.sep).length-1),"getDepth"),getRealPath:s((e,t)=>{try{return t?Sr.realpathSync.native(e):Sr.realpathSync(e)}catch{return}},"getRealPath"),isSubPath:s((e,t)=>t.startsWith(e)&&t[e.length]===lt.sep&&t.length-e.length>lt.sep.length,"isSubPath"),poll:s((e,t=lr)=>pr.retry.stat(t)(e,{bigint:!0}).catch(V.lang.noop),"poll"),readdir:s(async(e,t,r=1/0,i=1/0,n,o)=>{if(o&&r===1&&e in o){let a=o[e];return[a.directories,a.files]}else{let a=await Nr(e,{depth:r,limit:i,ignore:t,signal:n});return[a.directories,a.files]}},"readdir")}},y=V;c();import ut from"node:path";var ht=class{static{s(this,"WatcherHandler")}constructor(t,r,i){this.base=i,this.watcher=t,this.handler=r.handler,this.fswatcher=r.watcher,this.options=r.options,this.folderPath=r.folderPath,this.filePath=r.filePath,this.handlerBatched=this.base?this.base.onWatcherEvent.bind(this.base):this._makeHandlerBatched(this.options.debounce)}_isSubRoot(t){return this.filePath?t===this.filePath:t===this.folderPath||y.fs.isSubPath(this.folderPath,t)}_makeHandlerBatched(t=ar){return(()=>{let r=this.watcher._readyWait,i=[],n=new Set,o=s(async(f,l)=>{let u=this.options.ignoreInitial?[]:f,h=await this.eventsPopulate([...l]),g=this.eventsDeduplicate([...u,...h]);this.onTargetEvents(g)},"flush"),a=y.lang.debounce(()=>{this.watcher.isClosed()||(r=o(i,n),i=[],n=new Set)},t);return async(f,l="",u=!1)=>{u?await this.eventsPopulate([l],i,!0):n.add(l),r.then(a)}})()}eventsDeduplicate(t){if(t.length<2)return t;let r={};return t.reduce((i,n)=>{let[o,a]=n,f=r[a];return o===f||o===m.CHANGE&&f===m.ADD||(r[a]=o,i.push(n)),i},[])}async eventsPopulate(t,r=[],i=!1){return await Promise.all(t.map(async n=>{let o=await this.watcher._poller.update(n,this.options.pollingTimeout);await Promise.all(o.map(async a=>{r.push([a,n]),a===m.ADD_DIR?await this.eventsPopulateAddDir(t,n,r,i):a===m.UNLINK_DIR&&await this.eventsPopulateUnlinkDir(t,n,r,i)}))})),r}async eventsPopulateAddDir(t,r,i=[],n=!1){if(n)return i;let o=this.options.recursive?this.options.depth??se:Math.min(1,this.options.depth??se),a=this.options.limit??Ne,[f,l]=await y.fs.readdir(r,this.options.ignore,o,a,this.watcher._closeSignal),u=[...f,...l];return await Promise.all(u.map(h=>{if(!this.watcher.isIgnored(h,this.options.ignore)&&!t.includes(h))return this.eventsPopulate([h],i,!0)})),i}async eventsPopulateUnlinkDir(t,r,i=[],n=!1){if(n)return i;for(let o of this.watcher._poller.stats.keys())y.fs.isSubPath(r,o)&&(t.includes(o)||await this.eventsPopulate([o],i,!0));return i}onTargetAdd(t){this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetAdd(t,this.options.renameTimeout):this.watcher.event(m.ADD,t))}onTargetAddDir(t){t!==this.folderPath&&this.options.recursive&&!oe&&this.options.native!==!1&&this.watcher.watchDirectory(t,this.options,this.handler,void 0,this.base||this),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetAddDir(t,this.options.renameTimeout):this.watcher.event(m.ADD_DIR,t))}onTargetChange(t){this._isSubRoot(t)&&this.watcher.event(m.CHANGE,t)}onTargetUnlink(t){this.watcher.watchersClose(ut.dirname(t),t,!1),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetUnlink(t,this.options.renameTimeout):this.watcher.event(m.UNLINK,t))}onTargetUnlinkDir(t){this.watcher.watchersClose(ut.dirname(t),t,!1),this.watcher.watchersClose(t),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetUnlinkDir(t,this.options.renameTimeout):this.watcher.event(m.UNLINK_DIR,t))}onTargetEvent(t){let[r,i]=t;r===m.ADD?this.onTargetAdd(i):r===m.ADD_DIR?this.onTargetAddDir(i):r===m.CHANGE?this.onTargetChange(i):r===m.UNLINK?this.onTargetUnlink(i):r===m.UNLINK_DIR&&this.onTargetUnlinkDir(i)}onTargetEvents(t){for(let r of t)this.onTargetEvent(r)}onWatcherEvent(t,r,i=!1){return this.handlerBatched(t,r,i)}onWatcherChange(t=ue.CHANGE,r){if(this.watcher.isClosed())return;let i=ut.resolve(this.folderPath,r||"");this.filePath&&i!==this.folderPath&&i!==this.filePath||this.watcher.isIgnored(i,this.options.ignore)||this.onWatcherEvent(t,i)}onWatcherError(t){st&&t.code==="EPERM"?this.onWatcherChange(ue.CHANGE,""):this.watcher.error(t)}async init(){await this.initWatcherEvents(),await this.initInitialEvents()}async initWatcherEvents(){let t=this.onWatcherChange.bind(this);this.fswatcher.on(Se.CHANGE,t);let r=this.onWatcherError.bind(this);this.fswatcher.on(Se.ERROR,r)}async initInitialEvents(){let t=!this.watcher.isReady();if(this.filePath){if(this.watcher._poller.stats.has(this.filePath))return;await this.onWatcherEvent(ue.CHANGE,this.filePath,t)}else{let r=this.options.recursive&&oe&&this.options.native!==!1?this.options.depth??se:Math.min(1,this.options.depth??se),i=this.options.limit??Ne,[n,o]=await y.fs.readdir(this.folderPath,this.options.ignore,r,i,this.watcher._closeSignal,this.options.readdirMap),a=[this.folderPath,...n,...o];await Promise.all(a.map(f=>{if(!this.watcher._poller.stats.has(f)&&!this.watcher.isIgnored(f,this.options.ignore))return this.onWatcherEvent(ue.CHANGE,f,t)}))}}},_r=ht;c();c();var U={interval:100,intervalId:void 0,fns:new Map,init:s(()=>{U.intervalId||(U.intervalId=setInterval(U.resolve,U.interval))},"init"),reset:s(()=>{U.intervalId&&(clearInterval(U.intervalId),delete U.intervalId)},"reset"),add:s((e,t)=>{U.fns.set(e,Date.now()+t),U.init()},"add"),remove:s(e=>{U.fns.delete(e)},"remove"),resolve:s(()=>{if(!U.fns.size)return U.reset();let e=Date.now();for(let[t,r]of U.fns)r>=e||(U.remove(t),t())},"resolve")},xe=U;var Ie=class e{static{s(this,"WatcherLocker")}constructor(t){this._watcher=t,this.reset()}getLockAdd(t,r=ot){let{ino:i,targetPath:n,events:o,locks:a}=t,f=s(()=>{let g=this._watcher._poller.paths.find(i||-1,p=>p!==n);if(g&&g!==n){if(y.fs.getRealPath(n,!0)===g)return;this._watcher.event(o.rename,g,n)}else this._watcher.event(o.add,n)},"emit");if(!i)return f();let l=s(()=>{a.add.delete(i),xe.remove(u)},"cleanup"),u=s(()=>{l(),f()},"free");xe.add(u,r);let h=s(()=>{let g=a.unlink.get(i);if(!g)return;l();let p=g();n===p?o.change&&this._watcher._poller.stats.has(n)&&this._watcher.event(o.change,n):this._watcher.event(o.rename,p,n)},"resolve");a.add.set(i,h),h()}getLockUnlink(t,r=ot){let{ino:i,targetPath:n,events:o,locks:a}=t,f=s(()=>{this._watcher.event(o.unlink,n)},"emit");if(!i)return f();let l=s(()=>{a.unlink.delete(i),xe.remove(u)},"cleanup"),u=s(()=>{l(),f()},"free");xe.add(u,r);let h=s(()=>(l(),n),"overridden");a.unlink.set(i,h),a.add.get(i)?.()}getLockTargetAdd(t,r){let i=this._watcher._poller.getIno(t,m.ADD,J.FILE);return this.getLockAdd({ino:i,targetPath:t,events:e.FILE_EVENTS,locks:this._locksFile},r)}getLockTargetAddDir(t,r){let i=this._watcher._poller.getIno(t,m.ADD_DIR,J.DIR);return this.getLockAdd({ino:i,targetPath:t,events:e.DIR_EVENTS,locks:this._locksDir},r)}getLockTargetUnlink(t,r){let i=this._watcher._poller.getIno(t,m.UNLINK,J.FILE);return this.getLockUnlink({ino:i,targetPath:t,events:e.FILE_EVENTS,locks:this._locksFile},r)}getLockTargetUnlinkDir(t,r){let i=this._watcher._poller.getIno(t,m.UNLINK_DIR,J.DIR);return this.getLockUnlink({ino:i,targetPath:t,events:e.DIR_EVENTS,locks:this._locksDir},r)}reset(){this._locksAdd=new Map,this._locksAddDir=new Map,this._locksUnlink=new Map,this._locksUnlinkDir=new Map,this._locksDir={add:this._locksAddDir,unlink:this._locksUnlinkDir},this._locksFile={add:this._locksAdd,unlink:this._locksUnlink}}};Ie.DIR_EVENTS={add:m.ADD_DIR,rename:m.RENAME_DIR,unlink:m.UNLINK_DIR};Ie.FILE_EVENTS={add:m.ADD,change:m.CHANGE,rename:m.RENAME,unlink:m.UNLINK};var xr=Ie;c();c();var dt=class{static{s(this,"LazyMapSet")}constructor(){this.map=new Map}clear(){this.map.clear()}delete(t,r){if(y.lang.isUndefined(r))return this.map.delete(t);if(this.map.has(t)){let i=this.map.get(t);if(y.lang.isSet(i)){let n=i.delete(r);return i.size||this.map.delete(t),n}else if(i===r)return this.map.delete(t),!0}return!1}find(t,r){if(this.map.has(t)){let i=this.map.get(t);if(y.lang.isSet(i))return Array.from(i).find(r);if(r(i))return i}}get(t){return this.map.get(t)}has(t,r){if(y.lang.isUndefined(r))return this.map.has(t);if(this.map.has(t)){let i=this.map.get(t);return y.lang.isSet(i)?i.has(r):i===r}return!1}set(t,r){if(this.map.has(t)){let i=this.map.get(t);y.lang.isSet(i)?i.add(r):i!==r&&this.map.set(t,new Set([i,r]))}else this.map.set(t,r);return this}},mt=dt;c();var pt=class{static{s(this,"WatcherStats")}constructor(t){this.ino=t.ino<=Number.MAX_SAFE_INTEGER?Number(t.ino):t.ino,this.size=Number(t.size),this.atimeMs=Number(t.atimeMs),this.mtimeMs=Number(t.mtimeMs),this.ctimeMs=Number(t.ctimeMs),this.birthtimeMs=Number(t.birthtimeMs),this._isFile=t.isFile(),this._isDirectory=t.isDirectory(),this._isSymbolicLink=t.isSymbolicLink()}isFile(){return this._isFile}isDirectory(){return this._isDirectory}isSymbolicLink(){return this._isSymbolicLink}},Ir=pt;var yt=class{static{s(this,"WatcherPoller")}constructor(){this.inos={},this.paths=new mt,this.stats=new Map}getIno(t,r,i){let n=this.inos[r];if(!n)return;let o=n[t];if(o&&!(i&&o[1]!==i))return o[0]}getStats(t){return this.stats.get(t)}async poll(t,r){let i=await y.fs.poll(t,r);if(!(!i||!(i.isFile()||i.isDirectory())))return new Ir(i)}reset(){this.inos={},this.paths=new mt,this.stats=new Map}async update(t,r){let i=this.getStats(t),n=await this.poll(t,r);if(this.updateStats(t,n),!i&&n){if(n.isFile())return this.updateIno(t,m.ADD,n),[m.ADD];if(n.isDirectory())return this.updateIno(t,m.ADD_DIR,n),[m.ADD_DIR]}else if(i&&!n){if(i.isFile())return this.updateIno(t,m.UNLINK,i),[m.UNLINK];if(i.isDirectory())return this.updateIno(t,m.UNLINK_DIR,i),[m.UNLINK_DIR]}else if(i&&n){if(i.isFile()){if(n.isFile())return i.ino===n.ino&&!i.size&&!n.size?[]:(this.updateIno(t,m.CHANGE,n),[m.CHANGE]);if(n.isDirectory())return this.updateIno(t,m.UNLINK,i),this.updateIno(t,m.ADD_DIR,n),[m.UNLINK,m.ADD_DIR]}else if(i.isDirectory()){if(n.isFile())return this.updateIno(t,m.UNLINK_DIR,i),this.updateIno(t,m.ADD,n),[m.UNLINK_DIR,m.ADD];if(n.isDirectory())return i.ino===n.ino?[]:(this.updateIno(t,m.UNLINK_DIR,i),this.updateIno(t,m.ADD_DIR,n),[m.UNLINK_DIR,m.ADD_DIR])}}return[]}updateIno(t,r,i){let n=this.inos[r]=this.inos[r]||(this.inos[r]={}),o=i.isFile()?J.FILE:J.DIR;n[t]=[i.ino,o]}updateStats(t,r){if(r)this.paths.set(r.ino,t),this.stats.set(t,r);else{let i=this.stats.get(t)?.ino||-1;this.paths.delete(i,t),this.stats.delete(t)}}},wt=yt;var Et=class e extends Tn{static{s(this,"Watcher")}constructor(t,r,i){super(),this._closed=!1,this._ready=!1,this._closeAborter=new AbortController,this._closeSignal=this._closeAborter.signal,this.on(F.CLOSE,()=>this._closeAborter.abort()),this._closeWait=new Promise(n=>this.on(F.CLOSE,n)),this._readyWait=new Promise(n=>this.on(F.READY,n)),this._locker=new xr(this),this._roots=new Set,this._poller=new wt,this._pollers=new Set,this._subwatchers=new Set,this._watchers={},this._watchersLock=Promise.resolve(),this._watchersRestorable={},this.watch(t,r,i)}isClosed(){return this._closed}isIgnored(t,r){return!!r&&(y.lang.isFunction(r)?!!r(t):r.test(t))}isReady(){return this._ready}close(){return this._locker.reset(),this._poller.reset(),this._roots.clear(),this.watchersClose(),this.isClosed()?!1:(this._closed=!0,this.emit(F.CLOSE))}error(t){if(this.isClosed())return!1;let r=y.lang.castError(t);return this.emit(F.ERROR,r)}event(t,r,i){return this.isClosed()?!1:(this.emit(F.ALL,t,r,i),this.emit(t,r,i))}ready(){return this.isClosed()||this.isReady()?!1:(this._ready=!0,this.emit(F.READY))}pollerExists(t,r){for(let i of this._pollers)if(i.targetPath===t&&y.lang.isShallowEqual(i.options,r))return!0;return!1}subwatcherExists(t,r){for(let i of this._subwatchers)if(i.targetPath===t&&y.lang.isShallowEqual(i.options,r))return!0;return!1}watchersClose(t,r,i=!0){if(t){let n=this._watchers[t];if(n)for(let o of[...n])r&&o.filePath!==r||this.watcherClose(o);if(i)for(let o in this._watchers)y.fs.isSubPath(t,o)&&this.watchersClose(o,r,!1)}else for(let n in this._watchers)this.watchersClose(n,r,!1)}watchersLock(t){return this._watchersLock.then(()=>this._watchersLock=new Promise(async r=>{await t(),r()}))}watchersRestore(){delete this._watchersRestoreTimeout;let t=Object.entries(this._watchersRestorable);this._watchersRestorable={};for(let[r,i]of t)this.watchPath(r,i.options,i.handler)}async watcherAdd(t,r){let{folderPath:i}=t;(this._watchers[i]=this._watchers[i]||[]).push(t);let o=new _r(this,t,r);return await o.init(),o}watcherClose(t){t.watcher.close();let r=this._watchers[t.folderPath];if(r){let o=r.indexOf(t);r.splice(o,1),r.length||delete this._watchers[t.folderPath]}let i=t.filePath||t.folderPath;this._roots.has(i)&&(this._watchersRestorable[i]=t,this._watchersRestoreTimeout||(this._watchersRestoreTimeout=y.lang.defer(()=>this.watchersRestore())))}watcherExists(t,r,i,n){if(this._watchers[t]?.find(f=>f.handler===i&&(!f.filePath||f.filePath===n)&&f.options.ignore===r.ignore&&!!f.options.native==!!r.native&&(!r.recursive||f.options.recursive)))return!0;let a=ge.dirname(t);for(let f=1;f<1/0;f++){if(this._watchers[a]?.find(h=>(f===1||h.options.recursive&&f<=(h.options.depth??se))&&h.handler===i&&(!h.filePath||h.filePath===n)&&h.options.ignore===r.ignore&&!!h.options.native==!!r.native&&(!r.recursive||h.options.recursive&&oe&&h.options.native!==!1)))return!0;if(!oe)break;let u=ge.dirname(t);if(a===u)break;a=u}return!1}async watchDirectories(t,r,i,n,o){if(this.isClosed())return;t=y.lang.uniq(t).sort();let a;for(let f of t)if(!this.isIgnored(f,r.ignore)&&!this.watcherExists(f,r,i,n))try{let l=!r.recursive||oe&&r.native!==!1?r:{...r,recursive:!1},h={watcher:gt.watch(f,l),handler:i,options:r,folderPath:f,filePath:n},g=a=await this.watcherAdd(h,o);if(this._roots.has(n||f)){let d={...r,ignoreInitial:!0,recursive:!1},D=ge.dirname(f),T=f;await this.watchDirectories([D],d,i,T,g)}}catch(l){this.error(l)}return a}async watchDirectory(t,r,i,n,o){if(!this.isClosed()&&!this.isIgnored(t,r.ignore)){if(!r.recursive||oe&&r.native!==!1)return this.watchersLock(()=>this.watchDirectories([t],r,i,n,o));{r={...r,recursive:!0};let a=r.depth??se,f=r.limit??Ne,[l]=await y.fs.readdir(t,r.ignore,a,f,this._closeSignal,r.readdirMap);return this.watchersLock(async()=>{let u=await this.watchDirectories([t],r,i,n,o);if(l.length){let h=y.fs.getDepth(t);for(let g of l){let p=y.fs.getDepth(g),d=Math.max(0,a-(p-h)),D={...r,depth:d};await this.watchDirectories([g],D,i,n,o||u)}}})}}}async watchFileOnce(t,r,i){if(this.isClosed()||(r={...r,ignoreInitial:!1},this.subwatcherExists(t,r)))return;let n={targetPath:t,options:r},o=s((u,h)=>{h===t&&(l(),i())},"handler"),a=new e(o),f=s(()=>{this._subwatchers.add(n),this.on(F.CLOSE,l),a.watchFile(t,r,o)},"start"),l=s(()=>{this._subwatchers.delete(n),this.removeListener(F.CLOSE,l),a.close()},"stop");return f()}async watchFile(t,r,i){if(this.isClosed()||this.isIgnored(t,r.ignore))return;r={...r,recursive:!1};let n=ge.dirname(t);return this.watchDirectory(n,r,i,t)}async watchPollingOnce(t,r,i){if(this.isClosed())return;let n=!1,o=new wt,a=await this.watchPolling(t,r,async()=>{n||!(await o.update(t,r.pollingTimeout)).length||n||(n=!0,a(),i())})}async watchPolling(t,r,i){if(this.isClosed())return y.lang.noop;if(this.pollerExists(t,r))return y.lang.noop;let n={...r,interval:r.pollingInterval??fr},o={targetPath:t,options:r},a=s(()=>{this._pollers.add(o),this.on(F.CLOSE,f),gt.watchFile(t,n,i)},"start"),f=s(()=>{this._pollers.delete(o),this.removeListener(F.CLOSE,f),gt.unwatchFile(t,i)},"stop");return y.lang.attempt(a),()=>y.lang.attempt(f)}async watchUnknownChild(t,r,i){if(this.isClosed())return;let n=s(()=>this.watchPath(t,r,i),"watch");return this.watchFileOnce(t,r,n)}async watchUnknownTarget(t,r,i){if(this.isClosed())return;let n=s(()=>this.watchPath(t,r,i),"watch");return this.watchPollingOnce(t,r,n)}async watchPaths(t,r,i){if(this.isClosed())return;if(t=y.lang.uniq(t).sort(),t.every((o,a)=>t.every((f,l)=>l===a||!y.fs.isSubPath(o,f))))await Promise.all(t.map(o=>this.watchPath(o,r,i)));else for(let o of t)await this.watchPath(o,r,i)}async watchPath(t,r,i){if(this.isClosed()||(t=ge.resolve(t),this.isIgnored(t,r.ignore)))return;let n=await y.fs.poll(t,r.pollingTimeout);if(n){if(n.isFile())return this.watchFile(t,r,i);if(n.isDirectory())return this.watchDirectory(t,r,i);this.error(`"${t}" is not supported`)}else{let o=ge.dirname(t);return(await y.fs.poll(o,r.pollingTimeout))?.isDirectory()?this.watchUnknownChild(t,r,i):this.watchUnknownTarget(t,r,i)}}async watch(t,r,i=y.lang.noop){if(y.lang.isFunction(t))return this.watch([],{},t);if(y.lang.isUndefined(t))return this.watch([],r,i);if(y.lang.isFunction(r))return this.watch(t,{},r);if(y.lang.isUndefined(r))return this.watch(t,{},i);if(this.isClosed())return;this.isReady()&&(r.readdirMap=void 0);let n=y.lang.castArray(t);n.forEach(o=>this._roots.add(o)),await this.watchPaths(n,r,i),!this.isClosed()&&(i!==y.lang.noop&&this.on(F.ALL,i),r.readdirMap=void 0,this.ready())}},Dr=Et;var ln=Be(Jr(),1);c();var vt=s((e,...t)=>{let r=zt(e,...t);je.isInteractive?je.updateFooter(r):je.writeStdout(r)},"footer");c();var sn=Be(nn(),1);var on=s((e,t)=>{e.log.info("notifying user",{notification:t}),sn.default.notify({title:"Gadget",contentImage:rt("favicon-128@4x.png"),icon:rt("favicon-128@4x.png"),sound:!0,timeout:!1,...t},r=>{r&&e.log.warn("error notifying user",{notification:t})})},"notify");var Su={...ir,...Zt,"--prefer":rr,"--file-push-delay":{type:Number,default:(0,fe.default)("100ms")},"--file-watch-debounce":{type:Number,default:(0,fe.default)("300ms")},"--file-watch-poll-interval":{type:Number,default:(0,fe.default)("3s")},"--file-watch-poll-timeout":{type:Number,default:(0,fe.default)("20s")},"--file-watch-rename-timeout":{type:Number,default:(0,fe.default)("1.25s")},"--no-logs":Boolean},_u=s(e=>B`
4
4
  Clones your Gadget environment's files to your local machine and keeps it in sync, in order to
@@ -55,4 +55,4 @@ ${i.sprint({indent:4})}
55
55
 
56
56
  Waiting for file changes${Vt.ellipsis} {gray Press Ctrl+C to stop}
57
57
  `})},"run");export{Su as args,xu as run,_u as usage};
58
- //# sourceMappingURL=dev-KUTYS7OU.js.map
58
+ //# sourceMappingURL=dev-MQ76B6CR.js.map