@zuplo/cli 6.60.21 → 6.60.22

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 (134) hide show
  1. package/dist/__tests__/engine.test.js.map +1 -1
  2. package/dist/__tests__/import-openapi-utils.test.js.map +1 -1
  3. package/dist/__tests__/integration/jest-setup.js.map +1 -1
  4. package/dist/__tests__/integration/test-utils.d.ts.map +1 -1
  5. package/dist/__tests__/integration/test-utils.js.map +1 -1
  6. package/dist/__tests__/outdated.test.js.map +1 -1
  7. package/dist/__tests__/populate.test.js.map +1 -1
  8. package/dist/__tests__/tsconfig-upgrader.test.js.map +1 -1
  9. package/dist/build/handler.d.ts.map +1 -1
  10. package/dist/build/handler.js.map +1 -1
  11. package/dist/cli.js.map +1 -1
  12. package/dist/cmds/source/migrate/runner.d.ts.map +1 -1
  13. package/dist/cmds/source/migrate/runner.js.map +1 -1
  14. package/dist/cmds/source/migrate/types.d.ts.map +1 -1
  15. package/dist/cmds/source/migrate/types.js.map +1 -1
  16. package/dist/common/alias.d.ts.map +1 -1
  17. package/dist/common/alias.js.map +1 -1
  18. package/dist/common/analytics/lib.d.ts.map +1 -1
  19. package/dist/common/analytics/lib.js.map +1 -1
  20. package/dist/common/handler.d.ts.map +1 -1
  21. package/dist/common/handler.js.map +1 -1
  22. package/dist/common/logger.d.ts.map +1 -1
  23. package/dist/common/logger.js.map +1 -1
  24. package/dist/common/machine-id/lib.js.map +1 -1
  25. package/dist/common/middleware/get-account-param.d.ts.map +1 -1
  26. package/dist/common/middleware/get-account-param.js.map +1 -1
  27. package/dist/common/middleware/get-environment-param.js +1 -1
  28. package/dist/common/middleware/get-environment-param.js.map +1 -1
  29. package/dist/common/middleware/get-project-param.js.map +1 -1
  30. package/dist/common/middleware/logging.d.ts.map +1 -1
  31. package/dist/common/middleware/logging.js.map +1 -1
  32. package/dist/common/middleware/user-configuration.d.ts.map +1 -1
  33. package/dist/common/middleware/user-configuration.js.map +1 -1
  34. package/dist/common/middleware/user-identification.d.ts.map +1 -1
  35. package/dist/common/middleware/user-identification.js.map +1 -1
  36. package/dist/common/middleware/validate-fleet.d.ts.map +1 -1
  37. package/dist/common/middleware/validate-fleet.js.map +1 -1
  38. package/dist/common/outdated.d.ts.map +1 -1
  39. package/dist/common/outdated.js.map +1 -1
  40. package/dist/common/output.d.ts.map +1 -1
  41. package/dist/common/output.js.map +1 -1
  42. package/dist/common/settings.d.ts.map +1 -1
  43. package/dist/common/settings.js +4 -4
  44. package/dist/common/settings.js.map +1 -1
  45. package/dist/common/upgraders/vscode-settings-json-upgrader.js.map +1 -1
  46. package/dist/common/utils/box.js.map +1 -1
  47. package/dist/common/utils/ports.d.ts.map +1 -1
  48. package/dist/common/utils/ports.js.map +1 -1
  49. package/dist/common/validators/file-system-validator.d.ts.map +1 -1
  50. package/dist/common/validators/file-system-validator.js.map +1 -1
  51. package/dist/common/validators/lib.d.ts +1 -1
  52. package/dist/common/validators/lib.d.ts.map +1 -1
  53. package/dist/common/validators/lib.js.map +1 -1
  54. package/dist/common/worker-output.d.ts.map +1 -1
  55. package/dist/common/worker-output.js.map +1 -1
  56. package/dist/common/xdg/lib.d.ts.map +1 -1
  57. package/dist/common/xdg/lib.js.map +1 -1
  58. package/dist/compile/handler.d.ts.map +1 -1
  59. package/dist/compile/handler.js.map +1 -1
  60. package/dist/convert/engine.d.ts.map +1 -1
  61. package/dist/convert/engine.js.map +1 -1
  62. package/dist/delete/handler.js +1 -1
  63. package/dist/delete/handler.js.map +1 -1
  64. package/dist/delete/poll-deployment.d.ts.map +1 -1
  65. package/dist/delete/poll-deployment.js +0 -1
  66. package/dist/delete/poll-deployment.js.map +1 -1
  67. package/dist/deploy/archive.js +1 -1
  68. package/dist/deploy/archive.js.map +1 -1
  69. package/dist/deploy/handler.js +3 -3
  70. package/dist/deploy/handler.js.map +1 -1
  71. package/dist/deploy/poll-deployment.d.ts.map +1 -1
  72. package/dist/deploy/poll-deployment.js +8 -14
  73. package/dist/deploy/poll-deployment.js.map +1 -1
  74. package/dist/dev/handler.d.ts.map +1 -1
  75. package/dist/dev/handler.js.map +1 -1
  76. package/dist/editor/server/cors-plugin.js.map +1 -1
  77. package/dist/editor/server/server.d.ts.map +1 -1
  78. package/dist/editor/server/server.js.map +1 -1
  79. package/dist/editor/server/xfs.js +2 -2
  80. package/dist/editor/server/xfs.js.map +1 -1
  81. package/dist/list/handler.d.ts.map +1 -1
  82. package/dist/list/handler.js.map +1 -1
  83. package/dist/login/login.d.ts.map +1 -1
  84. package/dist/login/login.js +1 -1
  85. package/dist/login/login.js.map +1 -1
  86. package/dist/login/tokens.d.ts.map +1 -1
  87. package/dist/login/tokens.js.map +1 -1
  88. package/dist/project/create/handler.d.ts.map +1 -1
  89. package/dist/project/create/handler.js.map +1 -1
  90. package/dist/proxies/create/handler.d.ts.map +1 -1
  91. package/dist/proxies/create/handler.js.map +1 -1
  92. package/dist/proxies/delete/handler.d.ts.map +1 -1
  93. package/dist/proxies/delete/handler.js.map +1 -1
  94. package/dist/proxies/describe/handler.d.ts.map +1 -1
  95. package/dist/proxies/describe/handler.js.map +1 -1
  96. package/dist/proxies/update/handler.d.ts.map +1 -1
  97. package/dist/proxies/update/handler.js.map +1 -1
  98. package/dist/source/import-openapi/ajv.d.ts +34 -0
  99. package/dist/source/import-openapi/ajv.d.ts.map +1 -0
  100. package/dist/source/import-openapi/ajv.js +2 -0
  101. package/dist/source/import-openapi/ajv.js.map +1 -0
  102. package/dist/source/import-openapi/handler.js +2 -2
  103. package/dist/source/import-openapi/handler.js.map +1 -1
  104. package/dist/source/import-openapi/interfaces.d.ts +1 -1
  105. package/dist/source/import-openapi/interfaces.d.ts.map +1 -1
  106. package/dist/source/import-openapi/interfaces.js.map +1 -1
  107. package/dist/tsconfig.tsbuildinfo +1 -1
  108. package/dist/tunnel/create/handler.d.ts.map +1 -1
  109. package/dist/tunnel/create/handler.js.map +1 -1
  110. package/dist/tunnel/delete/handler.d.ts.map +1 -1
  111. package/dist/tunnel/delete/handler.js.map +1 -1
  112. package/dist/tunnel/delete/poll-teardown-operation.d.ts.map +1 -1
  113. package/dist/tunnel/delete/poll-teardown-operation.js.map +1 -1
  114. package/dist/tunnel/describe/handler.d.ts.map +1 -1
  115. package/dist/tunnel/describe/handler.js.map +1 -1
  116. package/dist/tunnel/list/handler.d.ts.map +1 -1
  117. package/dist/tunnel/list/handler.js.map +1 -1
  118. package/dist/tunnel/models.js.map +1 -1
  119. package/dist/tunnel/rotate-token/handler.d.ts.map +1 -1
  120. package/dist/tunnel/rotate-token/handler.js.map +1 -1
  121. package/dist/tunnel/services/describe/handler.d.ts.map +1 -1
  122. package/dist/tunnel/services/describe/handler.js.map +1 -1
  123. package/dist/tunnel/services/update/handler.d.ts.map +1 -1
  124. package/dist/tunnel/services/update/handler.js.map +1 -1
  125. package/dist/tunnel/services/update/poll-provisioning-operations.d.ts.map +1 -1
  126. package/dist/tunnel/services/update/poll-provisioning-operations.js.map +1 -1
  127. package/dist/variable/create/handler.d.ts.map +1 -1
  128. package/dist/variable/create/handler.js +1 -1
  129. package/dist/variable/create/handler.js.map +1 -1
  130. package/dist/variable/update/handler.d.ts.map +1 -1
  131. package/dist/variable/update/handler.js +1 -1
  132. package/dist/variable/update/handler.js.map +1 -1
  133. package/package.json +4 -4
  134. package/zup.js +1 -1
@@ -0,0 +1,34 @@
1
+ export interface ErrorObject<
2
+ K extends string = string,
3
+ P = Record<string, any>,
4
+ S = unknown,
5
+ > {
6
+ keyword: K;
7
+ instancePath: string;
8
+ schemaPath: string;
9
+ params: P;
10
+ propertyName?: string;
11
+ message?: string;
12
+ schema?: S;
13
+ parentSchema?: AnySchemaObject;
14
+ data?: unknown;
15
+ }
16
+ interface _SchemaObject {
17
+ id?: string;
18
+ $id?: string;
19
+ $schema?: string;
20
+ [x: string]: any;
21
+ }
22
+ export interface SchemaObject extends _SchemaObject {
23
+ id?: string;
24
+ $id?: string;
25
+ $schema?: string;
26
+ $async?: false;
27
+ [x: string]: any;
28
+ }
29
+ export interface AsyncSchema extends _SchemaObject {
30
+ $async: true;
31
+ }
32
+ export type AnySchemaObject = SchemaObject | AsyncSchema;
33
+ export {};
34
+ //# sourceMappingURL=ajv.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ajv.d.ts","sourceRoot":"","sources":["../../../src/source/import-openapi/ajv.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,WAAW,CAC1B,CAAC,SAAS,MAAM,GAAG,MAAM,EACzB,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACvB,CAAC,GAAG,OAAO;IAEX,OAAO,EAAE,CAAC,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,CAAC,CAAC;IACV,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,CAAC,CAAC;IACX,YAAY,CAAC,EAAE,eAAe,CAAC;IAC/B,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAGD,UAAU,aAAa;IACrB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;CAClB;AACD,MAAM,WAAW,YAAa,SAAQ,aAAa;IACjD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,KAAK,CAAC;IACf,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;CAClB;AACD,MAAM,WAAW,WAAY,SAAQ,aAAa;IAChD,MAAM,EAAE,IAAI,CAAC;CACd;AACD,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,WAAW,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ajv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ajv.js","sourceRoot":"","sources":["../../../src/source/import-openapi/ajv.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * This file contains types copied from AJV to avoid a direct dependency on it.\n *\n */\n\n/** biome-ignore-all lint/suspicious/noExplicitAny: Third party api */\nexport interface ErrorObject<\n K extends string = string,\n P = Record<string, any>,\n S = unknown,\n> {\n keyword: K;\n instancePath: string;\n schemaPath: string;\n params: P;\n propertyName?: string;\n message?: string;\n schema?: S;\n parentSchema?: AnySchemaObject;\n data?: unknown;\n}\n\n// biome-ignore lint/style/useNamingConvention: Copy from AJV\ninterface _SchemaObject {\n id?: string;\n $id?: string;\n $schema?: string;\n [x: string]: any;\n}\nexport interface SchemaObject extends _SchemaObject {\n id?: string;\n $id?: string;\n $schema?: string;\n $async?: false;\n [x: string]: any;\n}\nexport interface AsyncSchema extends _SchemaObject {\n $async: true;\n}\nexport type AnySchemaObject = SchemaObject | AsyncSchema;\n"]}
@@ -44,13 +44,13 @@ export async function importOpenApi(argv) {
44
44
  const text = await response.text();
45
45
  try {
46
46
  JSON.parse(text);
47
- normalizedFilePath = normalizedFilePath + ".json";
47
+ normalizedFilePath = `${normalizedFilePath}.json`;
48
48
  await writeFile(normalizedFilePath, text, { flag: "w+" });
49
49
  }
50
50
  catch {
51
51
  try {
52
52
  jsYaml.load(text);
53
- normalizedFilePath = normalizedFilePath + ".yaml";
53
+ normalizedFilePath = `${normalizedFilePath}.yaml`;
54
54
  await writeFile(normalizedFilePath, text, { flag: "w+" });
55
55
  }
56
56
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/source/import-openapi/handler.ts"],"names":[],"mappings":"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","sourcesContent":["import { existsSync, writeFileSync } from \"node:fs\";\nimport { mkdir, readFile, writeFile } from \"node:fs/promises\";\nimport { tmpdir } from \"node:os\";\nimport path, { basename, dirname, extname, join, relative } from \"node:path\";\nimport { confirm } from \"@inquirer/prompts\";\nimport { mergeOpenApiDocuments } from \"@zuplo/openapi-tools\";\nimport jsYaml from \"js-yaml\";\nimport { format } from \"prettier\";\nimport { CommonArgs } from \"../../common/args.js\";\nimport { logger } from \"../../common/logger.js\";\nimport {\n printCriticalFailureToConsoleAndExit,\n printDiagnosticsToConsole,\n printResultToConsoleAndExitGracefully,\n} from \"../../common/output.js\";\nimport { ZuploOpenApiDocument } from \"./interfaces.js\";\nimport { addOperationIdsAsNecessary, parseOpenApiFile } from \"./utils.js\";\n\nexport interface Arguments extends CommonArgs {\n dir: string;\n prompt: boolean;\n source: string;\n destination: string;\n \"source-url\": string;\n \"merge-mode\"?: \"path-method\" | \"operation-id\";\n}\n\nexport const BASE_TEMPLATE = `\n{\n \"openapi\": \"3.1.0\",\n \"info\": {\n \"version\": \"1.0.0\",\n \"title\": \"My Zuplo API\"\n },\n \"paths\": {}\n}\n\n`;\n\n// import is a reserved keyword so importSpec was used instead\nexport async function importOpenApi(argv: Arguments) {\n let normalizedFilePath: string;\n // First see if this is a url\n let handleAsUrl = true;\n try {\n new URL(argv.source);\n } catch {\n handleAsUrl = false;\n }\n\n if (handleAsUrl) {\n const parsedUrl = new URL(argv.source);\n const tempDir = tmpdir();\n const guessedFileName =\n basename(parsedUrl.pathname).replace(/\\.[^/.]+$/, \"\") ||\n `imported-${Buffer.from(argv.source).toString(\"base64\")}`;\n normalizedFilePath = join(tempDir, guessedFileName);\n await mkdir(dirname(normalizedFilePath), { recursive: true });\n\n try {\n const response = await fetch(parsedUrl);\n if (!response.ok) {\n await printCriticalFailureToConsoleAndExit(\n `Failed to download the remote OpenAPI file. Server responded with ${response.status} ${response.statusText}`\n );\n }\n\n const text = await response.text();\n\n try {\n // 1a. See if this is json else try to parse as yaml\n JSON.parse(text);\n normalizedFilePath = normalizedFilePath + \".json\";\n await writeFile(normalizedFilePath, text, { flag: \"w+\" });\n } catch {\n try {\n // 1b. See if this is yaml\n jsYaml.load(text);\n normalizedFilePath = normalizedFilePath + \".yaml\";\n await writeFile(normalizedFilePath, text, { flag: \"w+\" });\n } catch {\n await printCriticalFailureToConsoleAndExit(\n `Failed to parse the remote OpenAPI file as either JSON or YAML.`\n );\n }\n }\n } catch (err) {\n logger.error(err);\n await printCriticalFailureToConsoleAndExit(\n `Failed to download the remote OpenAPI file.`\n );\n }\n } else {\n // 1c. This is a normal file so we use the file extension\n const filePath = argv.source;\n normalizedFilePath = join(relative(process.cwd(), filePath));\n\n if (!existsSync(normalizedFilePath)) {\n await printCriticalFailureToConsoleAndExit(\n `The file ${normalizedFilePath} to import does not exist.`\n );\n }\n }\n\n const rawOpenApiSpec = await readFile(normalizedFilePath);\n const extName = extname(normalizedFilePath);\n const fileContent = rawOpenApiSpec.toString();\n const parsedOpenApiSpec = await parseOpenApiFile(extName, fileContent);\n\n const destination = argv.destination;\n\n if (!destination.endsWith(\".oas.json\")) {\n await printCriticalFailureToConsoleAndExit(\n `Destination file name must end with '.oas.json'`\n );\n }\n\n const destinationFilePath = join(relative(process.cwd(), destination));\n\n let originalDocument: ZuploOpenApiDocument;\n if (!existsSync(destinationFilePath)) {\n // This is an initial import\n originalDocument = (await parseOpenApiFile(\n \".json\",\n BASE_TEMPLATE\n )) as ZuploOpenApiDocument;\n } else {\n const existingOpenApiSpec = await readFile(destinationFilePath);\n const existingFileContent = existingOpenApiSpec.toString();\n originalDocument = (await parseOpenApiFile(\n extName,\n existingFileContent\n )) as ZuploOpenApiDocument;\n }\n\n // Default to path-method merging\n const mergeMode = argv[\"merge-mode\"] || \"path-method\";\n\n const { created, merged, retained, mergedDocument } = mergeOpenApiDocuments(\n originalDocument,\n parsedOpenApiSpec,\n mergeMode\n );\n\n // Present the changes\n printDiagnosticsToConsole(\"This import will...\");\n printDiagnosticsToConsole(\"\");\n\n if (created.size > 0) {\n printDiagnosticsToConsole(\n `Create ${created.size} new ${\n created.size > 1 ? \"operations\" : \"operation\"\n }`\n );\n printDiagnosticsToConsole(\"\");\n created.forEach((operation) => {\n printDiagnosticsToConsole(operation);\n });\n printDiagnosticsToConsole(\"\");\n }\n\n if (merged.size > 0) {\n printDiagnosticsToConsole(\n `Merge ${merged.size} ${merged.size > 1 ? \"operations\" : \"operation\"}`\n );\n printDiagnosticsToConsole(\"\");\n merged.forEach((operation) => {\n printDiagnosticsToConsole(operation);\n });\n printDiagnosticsToConsole(\"\");\n }\n\n if (retained.size > 0) {\n printDiagnosticsToConsole(\n `Retain ${retained.size} ${\n retained.size > 1 ? \"operations\" : \"operation\"\n }`\n );\n printDiagnosticsToConsole(\"\");\n retained.forEach((operation) => {\n printDiagnosticsToConsole(operation);\n });\n printDiagnosticsToConsole(\"\");\n }\n\n if (argv.prompt) {\n printDiagnosticsToConsole(\"\");\n const answer = await confirm({ message: \"Proceed?\", default: true });\n if (!answer) {\n await printResultToConsoleAndExitGracefully(\"Import cancelled.\");\n }\n }\n\n addOperationIdsAsNecessary(mergedDocument);\n\n const formattedOpenApi = await format(JSON.stringify(mergedDocument), {\n parser: \"json-stringify\",\n });\n\n // Create folder structure if needed\n if (!existsSync(destinationFilePath)) {\n // Get the directory path of the file\n const dir = path.dirname(destinationFilePath);\n\n // Ensure that the directory exists (creates parent directories if necessary)\n await mkdir(dir, { recursive: true });\n }\n\n writeFileSync(destinationFilePath, formattedOpenApi, {\n flag: \"w\",\n });\n\n await printResultToConsoleAndExitGracefully(\n `Import successful. File written to ${destinationFilePath}`\n );\n}\n"]}
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/source/import-openapi/handler.ts"],"names":[],"mappings":"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","sourcesContent":["import { existsSync, writeFileSync } from \"node:fs\";\nimport { mkdir, readFile, writeFile } from \"node:fs/promises\";\nimport { tmpdir } from \"node:os\";\nimport path, { basename, dirname, extname, join, relative } from \"node:path\";\nimport { confirm } from \"@inquirer/prompts\";\nimport { mergeOpenApiDocuments } from \"@zuplo/openapi-tools\";\nimport jsYaml from \"js-yaml\";\nimport { format } from \"prettier\";\nimport { CommonArgs } from \"../../common/args.js\";\nimport { logger } from \"../../common/logger.js\";\nimport {\n printCriticalFailureToConsoleAndExit,\n printDiagnosticsToConsole,\n printResultToConsoleAndExitGracefully,\n} from \"../../common/output.js\";\nimport { ZuploOpenApiDocument } from \"./interfaces.js\";\nimport { addOperationIdsAsNecessary, parseOpenApiFile } from \"./utils.js\";\n\nexport interface Arguments extends CommonArgs {\n dir: string;\n prompt: boolean;\n source: string;\n destination: string;\n \"source-url\": string;\n \"merge-mode\"?: \"path-method\" | \"operation-id\";\n}\n\nexport const BASE_TEMPLATE = `\n{\n \"openapi\": \"3.1.0\",\n \"info\": {\n \"version\": \"1.0.0\",\n \"title\": \"My Zuplo API\"\n },\n \"paths\": {}\n}\n\n`;\n\n// import is a reserved keyword so importSpec was used instead\nexport async function importOpenApi(argv: Arguments) {\n let normalizedFilePath: string;\n // First see if this is a url\n let handleAsUrl = true;\n try {\n new URL(argv.source);\n } catch {\n handleAsUrl = false;\n }\n\n if (handleAsUrl) {\n const parsedUrl = new URL(argv.source);\n const tempDir = tmpdir();\n const guessedFileName =\n basename(parsedUrl.pathname).replace(/\\.[^/.]+$/, \"\") ||\n `imported-${Buffer.from(argv.source).toString(\"base64\")}`;\n normalizedFilePath = join(tempDir, guessedFileName);\n await mkdir(dirname(normalizedFilePath), { recursive: true });\n\n try {\n const response = await fetch(parsedUrl);\n if (!response.ok) {\n await printCriticalFailureToConsoleAndExit(\n `Failed to download the remote OpenAPI file. Server responded with ${response.status} ${response.statusText}`\n );\n }\n\n const text = await response.text();\n\n try {\n // 1a. See if this is json else try to parse as yaml\n JSON.parse(text);\n normalizedFilePath = `${normalizedFilePath}.json`;\n await writeFile(normalizedFilePath, text, { flag: \"w+\" });\n } catch {\n try {\n // 1b. See if this is yaml\n jsYaml.load(text);\n normalizedFilePath = `${normalizedFilePath}.yaml`;\n await writeFile(normalizedFilePath, text, { flag: \"w+\" });\n } catch {\n await printCriticalFailureToConsoleAndExit(\n `Failed to parse the remote OpenAPI file as either JSON or YAML.`\n );\n }\n }\n } catch (err) {\n logger.error(err);\n await printCriticalFailureToConsoleAndExit(\n `Failed to download the remote OpenAPI file.`\n );\n }\n } else {\n // 1c. This is a normal file so we use the file extension\n const filePath = argv.source;\n normalizedFilePath = join(relative(process.cwd(), filePath));\n\n if (!existsSync(normalizedFilePath)) {\n await printCriticalFailureToConsoleAndExit(\n `The file ${normalizedFilePath} to import does not exist.`\n );\n }\n }\n\n const rawOpenApiSpec = await readFile(normalizedFilePath);\n const extName = extname(normalizedFilePath);\n const fileContent = rawOpenApiSpec.toString();\n const parsedOpenApiSpec = await parseOpenApiFile(extName, fileContent);\n\n const destination = argv.destination;\n\n if (!destination.endsWith(\".oas.json\")) {\n await printCriticalFailureToConsoleAndExit(\n `Destination file name must end with '.oas.json'`\n );\n }\n\n const destinationFilePath = join(relative(process.cwd(), destination));\n\n let originalDocument: ZuploOpenApiDocument;\n if (!existsSync(destinationFilePath)) {\n // This is an initial import\n originalDocument = (await parseOpenApiFile(\n \".json\",\n BASE_TEMPLATE\n )) as ZuploOpenApiDocument;\n } else {\n const existingOpenApiSpec = await readFile(destinationFilePath);\n const existingFileContent = existingOpenApiSpec.toString();\n originalDocument = (await parseOpenApiFile(\n extName,\n existingFileContent\n )) as ZuploOpenApiDocument;\n }\n\n // Default to path-method merging\n const mergeMode = argv[\"merge-mode\"] || \"path-method\";\n\n const { created, merged, retained, mergedDocument } = mergeOpenApiDocuments(\n originalDocument,\n parsedOpenApiSpec,\n mergeMode\n );\n\n // Present the changes\n printDiagnosticsToConsole(\"This import will...\");\n printDiagnosticsToConsole(\"\");\n\n if (created.size > 0) {\n printDiagnosticsToConsole(\n `Create ${created.size} new ${\n created.size > 1 ? \"operations\" : \"operation\"\n }`\n );\n printDiagnosticsToConsole(\"\");\n created.forEach((operation) => {\n printDiagnosticsToConsole(operation);\n });\n printDiagnosticsToConsole(\"\");\n }\n\n if (merged.size > 0) {\n printDiagnosticsToConsole(\n `Merge ${merged.size} ${merged.size > 1 ? \"operations\" : \"operation\"}`\n );\n printDiagnosticsToConsole(\"\");\n merged.forEach((operation) => {\n printDiagnosticsToConsole(operation);\n });\n printDiagnosticsToConsole(\"\");\n }\n\n if (retained.size > 0) {\n printDiagnosticsToConsole(\n `Retain ${retained.size} ${\n retained.size > 1 ? \"operations\" : \"operation\"\n }`\n );\n printDiagnosticsToConsole(\"\");\n retained.forEach((operation) => {\n printDiagnosticsToConsole(operation);\n });\n printDiagnosticsToConsole(\"\");\n }\n\n if (argv.prompt) {\n printDiagnosticsToConsole(\"\");\n const answer = await confirm({ message: \"Proceed?\", default: true });\n if (!answer) {\n await printResultToConsoleAndExitGracefully(\"Import cancelled.\");\n }\n }\n\n addOperationIdsAsNecessary(mergedDocument);\n\n const formattedOpenApi = await format(JSON.stringify(mergedDocument), {\n parser: \"json-stringify\",\n });\n\n // Create folder structure if needed\n if (!existsSync(destinationFilePath)) {\n // Get the directory path of the file\n const dir = path.dirname(destinationFilePath);\n\n // Ensure that the directory exists (creates parent directories if necessary)\n await mkdir(dir, { recursive: true });\n }\n\n writeFileSync(destinationFilePath, formattedOpenApi, {\n flag: \"w\",\n });\n\n await printResultToConsoleAndExitGracefully(\n `Import successful. File written to ${destinationFilePath}`\n );\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  import { RouteConfiguration } from "@zuplo/runtime";
2
- import { ErrorObject } from "ajv";
3
2
  import { OpenAPIV3_1 } from "openapi-types";
3
+ import type { ErrorObject } from "./ajv.js";
4
4
  export type ValidationResult = {
5
5
  isValid: boolean;
6
6
  errors: ErrorObject[];
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/source/import-openapi/interfaces.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,KAAK,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,QAAQ,EAAE,WAAW,EAAE,CAAC;CACzB,CAAC;AAEF,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;AACzC,MAAM,MAAM,gBAAgB,GAAG,WAAW,CAAC,WAAW,GAAG,MAAM,CAAC;AAGhE,eAAO,MAAM,4BAA4B,YAAY,CAAC;AACtD,eAAO,MAAM,qCAAqC,eAAe,CAAC;AAClE,eAAO,MAAM,uBAAuB,gBACa,CAAC;AAClD,eAAO,MAAM,wBAAwB,iBACa,CAAC;AAEnD,MAAM,MAAM,oBAAoB,GAAG,MAAM,CACvC,WAAW,CAAC,QAAQ,CAAC,8BAA8B,CAAC,EACpD;IACE,KAAK,EAAE,uBAAuB,GAAG,SAAS,CAAC;CAC5C,CACF,CAAC;AACF,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAC1C,MAAM,EACN,0BAA0B,GAAG,SAAS,CACvC,CAAC;AACF,MAAM,MAAM,0BAA0B,GAAG,MAAM,CAC7C,WAAW,CAAC,cAAc,CAAC,8BAA8B,CAAC,GACxD,6BAA6B,EAC/B;IACE,GAAG,CAAC,EAAE,2BAA2B,CAAC;IAClC,GAAG,CAAC,EAAE,2BAA2B,CAAC;IAClC,IAAI,CAAC,EAAE,2BAA2B,CAAC;IACnC,MAAM,CAAC,EAAE,2BAA2B,CAAC;IACrC,OAAO,CAAC,EAAE,2BAA2B,CAAC;IACtC,IAAI,CAAC,EAAE,2BAA2B,CAAC;IACnC,KAAK,CAAC,EAAE,2BAA2B,CAAC;IACpC,KAAK,CAAC,EAAE,2BAA2B,CAAC;CACrC,CACF,CAAC;AACF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,CAAC,uBAAuB,CAAC,CAAC,EAAE,8BAA8B,CAAC;CAC5D,CAAC;AACF,MAAM,MAAM,8BAA8B,GAAG;IAC3C,QAAQ,EAAE,QAAQ,CAAC;CACpB,CAAC;AACF,MAAM,MAAM,QAAQ,GAAG,UAAU,GAAG,aAAa,CAAC;AAClD,MAAM,MAAM,2BAA2B,GAAG,MAAM,CAC9C,WAAW,CAAC,eAAe,CAAC,8BAA8B,CAAC,EAC3D;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,CACxB,CAAC;AACF,MAAM,MAAM,+BAA+B,GAAG,IAAI,CAChD,kBAAkB,EAChB,aAAa,GACb,MAAM,GACN,SAAS,GACT,OAAO,GACP,KAAK,GACL,SAAS,GACT,aAAa,GACb,YAAY,GACZ,WAAW,GACX,MAAM,GACN,SAAS,GACT,KAAK,CACR,CAAC;AACF,MAAM,MAAM,8BAA8B,GAAG;IAC3C,CAAC,wBAAwB,CAAC,CAAC,EAAE,+BAA+B,CAAC;IAC7D,CAAC,qCAAqC,CAAC,CAAC,EAAE,OAAO,CAAC;CACnD,CAAC"}
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/source/import-openapi/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,QAAQ,EAAE,WAAW,EAAE,CAAC;CACzB,CAAC;AAEF,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;AACzC,MAAM,MAAM,gBAAgB,GAAG,WAAW,CAAC,WAAW,GAAG,MAAM,CAAC;AAGhE,eAAO,MAAM,4BAA4B,YAAY,CAAC;AACtD,eAAO,MAAM,qCAAqC,eAAe,CAAC;AAClE,eAAO,MAAM,uBAAuB,gBACa,CAAC;AAClD,eAAO,MAAM,wBAAwB,iBACa,CAAC;AAEnD,MAAM,MAAM,oBAAoB,GAAG,MAAM,CACvC,WAAW,CAAC,QAAQ,CAAC,8BAA8B,CAAC,EACpD;IACE,KAAK,EAAE,uBAAuB,GAAG,SAAS,CAAC;CAC5C,CACF,CAAC;AACF,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAC1C,MAAM,EACN,0BAA0B,GAAG,SAAS,CACvC,CAAC;AACF,MAAM,MAAM,0BAA0B,GAAG,MAAM,CAC7C,WAAW,CAAC,cAAc,CAAC,8BAA8B,CAAC,GACxD,6BAA6B,EAC/B;IACE,GAAG,CAAC,EAAE,2BAA2B,CAAC;IAClC,GAAG,CAAC,EAAE,2BAA2B,CAAC;IAClC,IAAI,CAAC,EAAE,2BAA2B,CAAC;IACnC,MAAM,CAAC,EAAE,2BAA2B,CAAC;IACrC,OAAO,CAAC,EAAE,2BAA2B,CAAC;IACtC,IAAI,CAAC,EAAE,2BAA2B,CAAC;IACnC,KAAK,CAAC,EAAE,2BAA2B,CAAC;IACpC,KAAK,CAAC,EAAE,2BAA2B,CAAC;CACrC,CACF,CAAC;AACF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,CAAC,uBAAuB,CAAC,CAAC,EAAE,8BAA8B,CAAC;CAC5D,CAAC;AACF,MAAM,MAAM,8BAA8B,GAAG;IAC3C,QAAQ,EAAE,QAAQ,CAAC;CACpB,CAAC;AACF,MAAM,MAAM,QAAQ,GAAG,UAAU,GAAG,aAAa,CAAC;AAClD,MAAM,MAAM,2BAA2B,GAAG,MAAM,CAC9C,WAAW,CAAC,eAAe,CAAC,8BAA8B,CAAC,EAC3D;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,CACxB,CAAC;AACF,MAAM,MAAM,+BAA+B,GAAG,IAAI,CAChD,kBAAkB,EAChB,aAAa,GACb,MAAM,GACN,SAAS,GACT,OAAO,GACP,KAAK,GACL,SAAS,GACT,aAAa,GACb,YAAY,GACZ,WAAW,GACX,MAAM,GACN,SAAS,GACT,KAAK,CACR,CAAC;AACF,MAAM,MAAM,8BAA8B,GAAG;IAC3C,CAAC,wBAAwB,CAAC,CAAC,EAAE,+BAA+B,CAAC;IAC7D,CAAC,qCAAqC,CAAC,CAAC,EAAE,OAAO,CAAC;CACnD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/source/import-openapi/interfaces.ts"],"names":[],"mappings":"AAeA,MAAM,CAAC,MAAM,4BAA4B,GAAG,SAAS,CAAC;AACtD,MAAM,CAAC,MAAM,qCAAqC,GAAG,YAAY,CAAC;AAClE,MAAM,CAAC,MAAM,uBAAuB,GAClC,GAAG,4BAA4B,OAAgB,CAAC;AAClD,MAAM,CAAC,MAAM,wBAAwB,GACnC,GAAG,4BAA4B,QAAiB,CAAC","sourcesContent":["/* eslint-disable @typescript-eslint/consistent-type-definitions */\nimport { RouteConfiguration } from \"@zuplo/runtime\";\nimport { ErrorObject } from \"ajv\";\nimport { OpenAPIV3_1 } from \"openapi-types\";\n\nexport type ValidationResult = {\n isValid: boolean;\n errors: ErrorObject[];\n warnings: ErrorObject[];\n};\n\ntype Modify<T, R> = Omit<T, keyof R> & R;\nexport type ZuploHttpMethods = OpenAPIV3_1.HttpMethods | string;\n\n// TODO: This should all be moved to the backend eventually\nexport const ZUPLO_OPEN_API_VENDOR_PREFIX = \"x-zuplo\";\nexport const OPEN_API_INTERNAL_PROPERTY_VENDOR_TAG = \"x-internal\";\nexport const ZUPLO_OPEN_API_PATH_KEY =\n `${ZUPLO_OPEN_API_VENDOR_PREFIX}-path` as const;\nexport const ZUPLO_OPEN_API_ROUTE_KEY =\n `${ZUPLO_OPEN_API_VENDOR_PREFIX}-route` as const;\n\nexport type ZuploOpenApiDocument = Modify<\n OpenAPIV3_1.Document<ZuploOpenApiOperationExtension>,\n {\n paths: ZuploOpenApiPathsObject | undefined;\n }\n>;\nexport type ZuploOpenApiPathsObject = Record<\n string,\n ZuploOpenApiPathItemObject | undefined\n>;\nexport type ZuploOpenApiPathItemObject = Modify<\n OpenAPIV3_1.PathItemObject<ZuploOpenApiOperationExtension> &\n ZuploOpenApiPathItemExtension,\n {\n get?: ZuploOpenApiOperationObject;\n put?: ZuploOpenApiOperationObject;\n post?: ZuploOpenApiOperationObject;\n delete?: ZuploOpenApiOperationObject;\n options?: ZuploOpenApiOperationObject;\n head?: ZuploOpenApiOperationObject;\n patch?: ZuploOpenApiOperationObject;\n trace?: ZuploOpenApiOperationObject;\n }\n>;\nexport type ZuploOpenApiPathItemExtension = {\n [ZUPLO_OPEN_API_PATH_KEY]?: ZuploOpenApiPathItemProperties;\n};\nexport type ZuploOpenApiPathItemProperties = {\n pathMode: PathMode;\n};\nexport type PathMode = \"open-api\" | \"url-pattern\";\nexport type ZuploOpenApiOperationObject = Modify<\n OpenAPIV3_1.OperationObject<ZuploOpenApiOperationExtension>,\n { operationId: string }\n>;\nexport type ZuploOpenApiOperationProperties = Omit<\n RouteConfiguration,\n | \"operationId\"\n | \"path\"\n | \"methods\"\n | \"label\"\n | \"key\"\n | \"summary\"\n | \"description\"\n | \"parameters\"\n | \"responses\"\n | \"tags\"\n | \"version\"\n | \"raw\"\n>;\nexport type ZuploOpenApiOperationExtension = {\n [ZUPLO_OPEN_API_ROUTE_KEY]?: ZuploOpenApiOperationProperties;\n [OPEN_API_INTERNAL_PROPERTY_VENDOR_TAG]?: boolean;\n};\n"]}
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/source/import-openapi/interfaces.ts"],"names":[],"mappings":"AAcA,MAAM,CAAC,MAAM,4BAA4B,GAAG,SAAS,CAAC;AACtD,MAAM,CAAC,MAAM,qCAAqC,GAAG,YAAY,CAAC;AAClE,MAAM,CAAC,MAAM,uBAAuB,GAClC,GAAG,4BAA4B,OAAgB,CAAC;AAClD,MAAM,CAAC,MAAM,wBAAwB,GACnC,GAAG,4BAA4B,QAAiB,CAAC","sourcesContent":["import { RouteConfiguration } from \"@zuplo/runtime\";\nimport { OpenAPIV3_1 } from \"openapi-types\";\nimport type { ErrorObject } from \"./ajv.js\";\n\nexport type ValidationResult = {\n isValid: boolean;\n errors: ErrorObject[];\n warnings: ErrorObject[];\n};\n\ntype Modify<T, R> = Omit<T, keyof R> & R;\nexport type ZuploHttpMethods = OpenAPIV3_1.HttpMethods | string;\n\n// TODO: This should all be moved to the backend eventually\nexport const ZUPLO_OPEN_API_VENDOR_PREFIX = \"x-zuplo\";\nexport const OPEN_API_INTERNAL_PROPERTY_VENDOR_TAG = \"x-internal\";\nexport const ZUPLO_OPEN_API_PATH_KEY =\n `${ZUPLO_OPEN_API_VENDOR_PREFIX}-path` as const;\nexport const ZUPLO_OPEN_API_ROUTE_KEY =\n `${ZUPLO_OPEN_API_VENDOR_PREFIX}-route` as const;\n\nexport type ZuploOpenApiDocument = Modify<\n OpenAPIV3_1.Document<ZuploOpenApiOperationExtension>,\n {\n paths: ZuploOpenApiPathsObject | undefined;\n }\n>;\nexport type ZuploOpenApiPathsObject = Record<\n string,\n ZuploOpenApiPathItemObject | undefined\n>;\nexport type ZuploOpenApiPathItemObject = Modify<\n OpenAPIV3_1.PathItemObject<ZuploOpenApiOperationExtension> &\n ZuploOpenApiPathItemExtension,\n {\n get?: ZuploOpenApiOperationObject;\n put?: ZuploOpenApiOperationObject;\n post?: ZuploOpenApiOperationObject;\n delete?: ZuploOpenApiOperationObject;\n options?: ZuploOpenApiOperationObject;\n head?: ZuploOpenApiOperationObject;\n patch?: ZuploOpenApiOperationObject;\n trace?: ZuploOpenApiOperationObject;\n }\n>;\nexport type ZuploOpenApiPathItemExtension = {\n [ZUPLO_OPEN_API_PATH_KEY]?: ZuploOpenApiPathItemProperties;\n};\nexport type ZuploOpenApiPathItemProperties = {\n pathMode: PathMode;\n};\nexport type PathMode = \"open-api\" | \"url-pattern\";\nexport type ZuploOpenApiOperationObject = Modify<\n OpenAPIV3_1.OperationObject<ZuploOpenApiOperationExtension>,\n { operationId: string }\n>;\nexport type ZuploOpenApiOperationProperties = Omit<\n RouteConfiguration,\n | \"operationId\"\n | \"path\"\n | \"methods\"\n | \"label\"\n | \"key\"\n | \"summary\"\n | \"description\"\n | \"parameters\"\n | \"responses\"\n | \"tags\"\n | \"version\"\n | \"raw\"\n>;\nexport type ZuploOpenApiOperationExtension = {\n [ZUPLO_OPEN_API_ROUTE_KEY]?: ZuploOpenApiOperationProperties;\n [OPEN_API_INTERNAL_PROPERTY_VENDOR_TAG]?: boolean;\n};\n"]}
@@ -1 +1 @@
1
- {"root":["../src/cli.ts","../src/types.d.ts","../src/__tests__/archive-utils.test.ts","../src/__tests__/engine.test.ts","../src/__tests__/import-openapi-utils.test.ts","../src/__tests__/import-openapi.test.ts","../src/__tests__/oas-test-data.ts","../src/__tests__/outdated.test.ts","../src/__tests__/populate.test.ts","../src/__tests__/tsconfig-upgrader.test.ts","../src/__tests__/integration/delete.integration.test.ts","../src/__tests__/integration/deploy.integration.test.ts","../src/__tests__/integration/jest-mocks-setup.ts","../src/__tests__/integration/jest-setup.ts","../src/__tests__/integration/link.integration.test.ts","../src/__tests__/integration/list.integration.test.ts","../src/__tests__/integration/test-utils.ts","../src/__tests__/integration/tunnel.integration.test.ts","../src/__tests__/integration/variable.integration.test.ts","../src/build/handler.ts","../src/cmds/build.ts","../src/cmds/compile.ts","../src/cmds/convert.ts","../src/cmds/delete.ts","../src/cmds/deploy.ts","../src/cmds/dev.ts","../src/cmds/editor.ts","../src/cmds/link.ts","../src/cmds/list.ts","../src/cmds/login.ts","../src/cmds/test.ts","../src/cmds/project/create.ts","../src/cmds/project/index.ts","../src/cmds/proxies/create.ts","../src/cmds/proxies/delete.ts","../src/cmds/proxies/describe.ts","../src/cmds/proxies/index.ts","../src/cmds/proxies/update.ts","../src/cmds/source/import-openapi.ts","../src/cmds/source/index.ts","../src/cmds/source/migrate.ts","../src/cmds/source/upgrade.ts","../src/cmds/source/migrate/handler.ts","../src/cmds/source/migrate/runner.ts","../src/cmds/source/migrate/stringify-config.test.ts","../src/cmds/source/migrate/stringify-config.ts","../src/cmds/source/migrate/types.ts","../src/cmds/tunnel/create.ts","../src/cmds/tunnel/delete.ts","../src/cmds/tunnel/describe.ts","../src/cmds/tunnel/index.ts","../src/cmds/tunnel/list.ts","../src/cmds/tunnel/rotate-token.ts","../src/cmds/tunnel/services/describe.ts","../src/cmds/tunnel/services/index.ts","../src/cmds/tunnel/services/update.ts","../src/cmds/variable/create.ts","../src/cmds/variable/index.ts","../src/cmds/variable/update.ts","../src/common/alias.ts","../src/common/args.ts","../src/common/constants.ts","../src/common/handler.ts","../src/common/logger.ts","../src/common/models.ts","../src/common/outdated.ts","../src/common/output.ts","../src/common/populate.ts","../src/common/settings.ts","../src/common/worker-output.ts","../src/common/analytics/lib.ts","../src/common/api/lib.ts","../src/common/machine-id/lib.ts","../src/common/middleware/authentication.ts","../src/common/middleware/get-account-param.ts","../src/common/middleware/get-environment-param.ts","../src/common/middleware/get-project-param.ts","../src/common/middleware/logging.ts","../src/common/middleware/user-configuration.ts","../src/common/middleware/user-identification.ts","../src/common/middleware/validate-fleet.ts","../src/common/upgraders/lib.ts","../src/common/upgraders/package-json-upgrader.ts","../src/common/upgraders/tsconfig-upgrader.ts","../src/common/upgraders/vscode-settings-json-upgrader.ts","../src/common/utils/box.ts","../src/common/utils/ports.ts","../src/common/utils/pretty-print-environment-prompt.ts","../src/common/utils/types.ts","../src/common/utils/urls.ts","../src/common/validators/file-system-validator.ts","../src/common/validators/lib.ts","../src/common/validators/project-name-validator.ts","../src/common/xdg/lib.ts","../src/compile/handler.ts","../src/convert/engine.ts","../src/convert/handler.ts","../src/convert/routes.legacy.ts","../src/delete/handler.ts","../src/delete/poll-deployment.ts","../src/deploy/archive.ts","../src/deploy/environments.ts","../src/deploy/file-upload.ts","../src/deploy/handler.ts","../src/deploy/poll-deployment.ts","../src/dev/handler.ts","../src/editor/handler.ts","../src/editor/assets/index-7e947de6.js","../src/editor/server/cors-plugin.ts","../src/editor/server/server.ts","../src/editor/server/xfs.ts","../src/link/handler.ts","../src/list/handler.ts","../src/login/login.ts","../src/login/tokens.ts","../src/project/create/handler.ts","../src/proxies/models.ts","../src/proxies/create/handler.ts","../src/proxies/delete/handler.ts","../src/proxies/describe/handler.ts","../src/proxies/update/handler.ts","../src/source/import-openapi/handler.ts","../src/source/import-openapi/interfaces.ts","../src/source/import-openapi/utils.ts","../src/source/update/handler.ts","../src/test/esbuild-config.ts","../src/test/handler.ts","../src/test/invoke-test.ts","../src/test/test-files.test.ts","../src/test/test-files.ts","../src/test/esbuild-plugins/node-test-prep-plugin.ts","../src/tunnel/models.ts","../src/tunnel/create/handler.ts","../src/tunnel/delete/handler.ts","../src/tunnel/delete/poll-teardown-operation.ts","../src/tunnel/describe/handler.ts","../src/tunnel/list/handler.ts","../src/tunnel/rotate-token/handler.ts","../src/tunnel/services/describe/handler.ts","../src/tunnel/services/update/handler.ts","../src/tunnel/services/update/poll-provisioning-operations.ts","../src/variable/models.ts","../src/variable/create/handler.ts","../src/variable/update/handler.ts"],"version":"5.8.2"}
1
+ {"root":["../src/cli.ts","../src/types.d.ts","../src/__tests__/archive-utils.test.ts","../src/__tests__/engine.test.ts","../src/__tests__/import-openapi-utils.test.ts","../src/__tests__/import-openapi.test.ts","../src/__tests__/oas-test-data.ts","../src/__tests__/outdated.test.ts","../src/__tests__/populate.test.ts","../src/__tests__/tsconfig-upgrader.test.ts","../src/__tests__/integration/delete.integration.test.ts","../src/__tests__/integration/deploy.integration.test.ts","../src/__tests__/integration/jest-mocks-setup.ts","../src/__tests__/integration/jest-setup.ts","../src/__tests__/integration/link.integration.test.ts","../src/__tests__/integration/list.integration.test.ts","../src/__tests__/integration/test-utils.ts","../src/__tests__/integration/tunnel.integration.test.ts","../src/__tests__/integration/variable.integration.test.ts","../src/build/handler.ts","../src/cmds/build.ts","../src/cmds/compile.ts","../src/cmds/convert.ts","../src/cmds/delete.ts","../src/cmds/deploy.ts","../src/cmds/dev.ts","../src/cmds/editor.ts","../src/cmds/link.ts","../src/cmds/list.ts","../src/cmds/login.ts","../src/cmds/test.ts","../src/cmds/project/create.ts","../src/cmds/project/index.ts","../src/cmds/proxies/create.ts","../src/cmds/proxies/delete.ts","../src/cmds/proxies/describe.ts","../src/cmds/proxies/index.ts","../src/cmds/proxies/update.ts","../src/cmds/source/import-openapi.ts","../src/cmds/source/index.ts","../src/cmds/source/migrate.ts","../src/cmds/source/upgrade.ts","../src/cmds/source/migrate/handler.ts","../src/cmds/source/migrate/runner.ts","../src/cmds/source/migrate/stringify-config.test.ts","../src/cmds/source/migrate/stringify-config.ts","../src/cmds/source/migrate/types.ts","../src/cmds/tunnel/create.ts","../src/cmds/tunnel/delete.ts","../src/cmds/tunnel/describe.ts","../src/cmds/tunnel/index.ts","../src/cmds/tunnel/list.ts","../src/cmds/tunnel/rotate-token.ts","../src/cmds/tunnel/services/describe.ts","../src/cmds/tunnel/services/index.ts","../src/cmds/tunnel/services/update.ts","../src/cmds/variable/create.ts","../src/cmds/variable/index.ts","../src/cmds/variable/update.ts","../src/common/alias.ts","../src/common/args.ts","../src/common/constants.ts","../src/common/handler.ts","../src/common/logger.ts","../src/common/models.ts","../src/common/outdated.ts","../src/common/output.ts","../src/common/populate.ts","../src/common/settings.ts","../src/common/worker-output.ts","../src/common/analytics/lib.ts","../src/common/api/lib.ts","../src/common/machine-id/lib.ts","../src/common/middleware/authentication.ts","../src/common/middleware/get-account-param.ts","../src/common/middleware/get-environment-param.ts","../src/common/middleware/get-project-param.ts","../src/common/middleware/logging.ts","../src/common/middleware/user-configuration.ts","../src/common/middleware/user-identification.ts","../src/common/middleware/validate-fleet.ts","../src/common/upgraders/lib.ts","../src/common/upgraders/package-json-upgrader.ts","../src/common/upgraders/tsconfig-upgrader.ts","../src/common/upgraders/vscode-settings-json-upgrader.ts","../src/common/utils/box.ts","../src/common/utils/ports.ts","../src/common/utils/pretty-print-environment-prompt.ts","../src/common/utils/types.ts","../src/common/utils/urls.ts","../src/common/validators/file-system-validator.ts","../src/common/validators/lib.ts","../src/common/validators/project-name-validator.ts","../src/common/xdg/lib.ts","../src/compile/handler.ts","../src/convert/engine.ts","../src/convert/handler.ts","../src/convert/routes.legacy.ts","../src/delete/handler.ts","../src/delete/poll-deployment.ts","../src/deploy/archive.ts","../src/deploy/environments.ts","../src/deploy/file-upload.ts","../src/deploy/handler.ts","../src/deploy/poll-deployment.ts","../src/dev/handler.ts","../src/editor/handler.ts","../src/editor/assets/index-7e947de6.js","../src/editor/server/cors-plugin.ts","../src/editor/server/server.ts","../src/editor/server/xfs.ts","../src/link/handler.ts","../src/list/handler.ts","../src/login/login.ts","../src/login/tokens.ts","../src/project/create/handler.ts","../src/proxies/models.ts","../src/proxies/create/handler.ts","../src/proxies/delete/handler.ts","../src/proxies/describe/handler.ts","../src/proxies/update/handler.ts","../src/source/import-openapi/ajv.ts","../src/source/import-openapi/handler.ts","../src/source/import-openapi/interfaces.ts","../src/source/import-openapi/utils.ts","../src/source/update/handler.ts","../src/test/esbuild-config.ts","../src/test/handler.ts","../src/test/invoke-test.ts","../src/test/test-files.test.ts","../src/test/test-files.ts","../src/test/esbuild-plugins/node-test-prep-plugin.ts","../src/tunnel/models.ts","../src/tunnel/create/handler.ts","../src/tunnel/delete/handler.ts","../src/tunnel/delete/poll-teardown-operation.ts","../src/tunnel/describe/handler.ts","../src/tunnel/list/handler.ts","../src/tunnel/rotate-token/handler.ts","../src/tunnel/services/describe/handler.ts","../src/tunnel/services/update/handler.ts","../src/tunnel/services/update/poll-provisioning-operations.ts","../src/variable/models.ts","../src/variable/create/handler.ts","../src/variable/update/handler.ts"],"version":"5.8.2"}
@@ -1 +1 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/tunnel/create/handler.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,MAAM,CAAC,IAAI,EAAE,SAAS,iBA8B3C"}
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/tunnel/create/handler.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,MAAM,CAAC,IAAI,EAAE,SAAS,iBA+B3C"}
@@ -1 +1 @@
1
- {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/tunnel/create/handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EACL,yBAAyB,EACzB,oCAAoC,EACpC,UAAU,GACX,MAAM,wBAAwB,CAAC;AAChC,OAAO,QAAQ,MAAM,0BAA0B,CAAC;AAShD,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAAe;IAC1C,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACzB,MAAM,cAAc,GAAG,MAAM,KAAK,CAChC,GAAG,QAAQ,CAAC,4BAA4B,gBAAgB,OAAO,UAAU,EACzE;QACE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,IAAI,CAAC,SAAS,EAAE;YACzC,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;KACpD,CACF,CAAC;IAEF,IAAI,cAAc,CAAC,EAAE,EAAE,CAAC;QACtB,MAAM,MAAM,GAAW,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC;QACnD,MAAM,oCAAoC,CAAC,MAAM,CAAC,CAAC;IACrD,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,KAAK,CACV;YACE,MAAM,EAAE,cAAc,CAAC,MAAM;YAC7B,UAAU,EAAE,cAAc,CAAC,UAAU;YACrC,QAAQ,EAAE,UAAU,CAAC,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC;SAClD,EACD,qCAAqC,CACtC,CAAC;QACF,yBAAyB,CACvB,uEAAuE,CACxE,CAAC;IACJ,CAAC;AACH,CAAC","sourcesContent":["import { logger } from \"../../common/logger.js\";\nimport {\n printDiagnosticsToConsole,\n printTableToConsoleAndExitGracefully,\n textOrJson,\n} from \"../../common/output.js\";\nimport settings from \"../../common/settings.js\";\nimport { Tunnel } from \"../models.js\";\n\nexport interface Arguments {\n account: string;\n \"tunnel-name\": string;\n authToken: string;\n}\n\nexport async function create(argv: Arguments) {\n const { account } = argv;\n const createResponse = await fetch(\n `${settings.ZUPLO_DEVELOPER_API_ENDPOINT}/v1/accounts/${account}/tunnels`,\n {\n method: \"POST\",\n headers: {\n Authorization: `Bearer ${argv.authToken}`,\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({ name: argv[\"tunnel-name\"] }),\n }\n );\n\n if (createResponse.ok) {\n const tunnel: Tunnel = await createResponse.json();\n await printTableToConsoleAndExitGracefully(tunnel);\n } else {\n logger.error(\n {\n status: createResponse.status,\n statusText: createResponse.statusText,\n response: textOrJson(await createResponse.text()),\n },\n \"Failed to create tunnel for account\"\n );\n printDiagnosticsToConsole(\n \"Error: Failed to create tunnel for your account. Check the arguments.\"\n );\n }\n}\n"]}
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/tunnel/create/handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EACL,yBAAyB,EACzB,oCAAoC,EACpC,UAAU,GACX,MAAM,wBAAwB,CAAC;AAChC,OAAO,QAAQ,MAAM,0BAA0B,CAAC;AAShD,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAAe;IAC1C,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACzB,MAAM,cAAc,GAAG,MAAM,KAAK,CAChC,GAAG,QAAQ,CAAC,4BAA4B,gBAAgB,OAAO,UAAU,EACzE;QACE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YAEP,aAAa,EAAE,UAAU,IAAI,CAAC,SAAS,EAAE;YACzC,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;KACpD,CACF,CAAC;IAEF,IAAI,cAAc,CAAC,EAAE,EAAE,CAAC;QACtB,MAAM,MAAM,GAAW,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC;QACnD,MAAM,oCAAoC,CAAC,MAAM,CAAC,CAAC;IACrD,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,KAAK,CACV;YACE,MAAM,EAAE,cAAc,CAAC,MAAM;YAC7B,UAAU,EAAE,cAAc,CAAC,UAAU;YACrC,QAAQ,EAAE,UAAU,CAAC,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC;SAClD,EACD,qCAAqC,CACtC,CAAC;QACF,yBAAyB,CACvB,uEAAuE,CACxE,CAAC;IACJ,CAAC;AACH,CAAC","sourcesContent":["import { logger } from \"../../common/logger.js\";\nimport {\n printDiagnosticsToConsole,\n printTableToConsoleAndExitGracefully,\n textOrJson,\n} from \"../../common/output.js\";\nimport settings from \"../../common/settings.js\";\nimport { Tunnel } from \"../models.js\";\n\nexport interface Arguments {\n account: string;\n \"tunnel-name\": string;\n authToken: string;\n}\n\nexport async function create(argv: Arguments) {\n const { account } = argv;\n const createResponse = await fetch(\n `${settings.ZUPLO_DEVELOPER_API_ENDPOINT}/v1/accounts/${account}/tunnels`,\n {\n method: \"POST\",\n headers: {\n // biome-ignore lint/style/useNamingConvention: External API property\n Authorization: `Bearer ${argv.authToken}`,\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({ name: argv[\"tunnel-name\"] }),\n }\n );\n\n if (createResponse.ok) {\n const tunnel: Tunnel = await createResponse.json();\n await printTableToConsoleAndExitGracefully(tunnel);\n } else {\n logger.error(\n {\n status: createResponse.status,\n statusText: createResponse.statusText,\n response: textOrJson(await createResponse.text()),\n },\n \"Failed to create tunnel for account\"\n );\n printDiagnosticsToConsole(\n \"Error: Failed to create tunnel for your account. Check the arguments.\"\n );\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/tunnel/delete/handler.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,SAAS,iBAmDjD"}
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/tunnel/delete/handler.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,SAAS,iBAoDjD"}
@@ -1 +1 @@
1
- {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/tunnel/delete/handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EACL,oCAAoC,EACpC,yBAAyB,EACzB,qCAAqC,EACrC,UAAU,GACX,MAAM,wBAAwB,CAAC;AAChC,OAAO,QAAQ,MAAM,0BAA0B,CAAC;AAEhD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAQrE,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAe;IAEhD,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACzB,MAAM,cAAc,GAAG,MAAM,KAAK,CAChC,GAAG,QAAQ,CAAC,4BAA4B,gBAAgB,OAAO,YAAY,IAAI,CAAC,WAAW,CAAC,EAAE,EAC9F;QACE,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,IAAI,CAAC,SAAS,EAAE;SAC1C;KACF,CACF,CAAC;IAEF,IAAI,cAAc,CAAC,EAAE,EAAE,CAAC;QACtB,MAAM,iBAAiB,GAAsB,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC;QACzE,yBAAyB,CACvB,mBAAmB,IAAI,CAAC,WAAW,CAAC,eAAe,OAAO,KAAK,CAChE,CAAC;QAGF,MAAM,uBAAuB,GAAG,MAAM,qBAAqB,CAAC;YAC1D,IAAI;YACJ,OAAO;YACP,mBAAmB,EAAE,iBAAiB,CAAC,EAAE;SAC1C,CAAC,CAAC;QAEH,IAAI,uBAAuB,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACjD,MAAM,qCAAqC,CACzC,UAAU,IAAI,CAAC,WAAW,CAAC,wBAAwB,CACpD,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,yBAAyB,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;YAC3D,MAAM,oCAAoC,CACxC,UAAU,IAAI,CAAC,WAAW,CAAC,wCAAwC,uBAAuB,CAAC,OAAO,EAAE,CACrG,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;QACzD,MAAM,CAAC,KAAK,CACV;YACE,MAAM,EAAE,cAAc,CAAC,MAAM;YAC7B,UAAU,EAAE,cAAc,CAAC,UAAU;YACrC,QAAQ;SACT,EACD,qCAAqC,CACtC,CAAC;QACF,yBAAyB,CACvB,2EAA2E,EAC3E,QAAQ,CACT,CAAC;IACJ,CAAC;AACH,CAAC","sourcesContent":["import { logger } from \"../../common/logger.js\";\nimport {\n printCriticalFailureToConsoleAndExit,\n printDiagnosticsToConsole,\n printResultToConsoleAndExitGracefully,\n textOrJson,\n} from \"../../common/output.js\";\nimport settings from \"../../common/settings.js\";\nimport { TeardownOperation } from \"../models.js\";\nimport { pollTeardownOperation } from \"./poll-teardown-operation.js\";\n\nexport interface Arguments {\n account: string;\n \"tunnel-id\": string;\n authToken: string;\n}\n\nexport async function deleteTunnel(argv: Arguments) {\n // 1. Initiate a deletion for the tunnel\n const { account } = argv;\n const deleteResponse = await fetch(\n `${settings.ZUPLO_DEVELOPER_API_ENDPOINT}/v1/accounts/${account}/tunnels/${argv[\"tunnel-id\"]}`,\n {\n method: \"DELETE\",\n headers: {\n Authorization: `Bearer ${argv.authToken}`,\n },\n }\n );\n\n if (deleteResponse.ok) {\n const teardownOperation: TeardownOperation = await deleteResponse.json();\n printDiagnosticsToConsole(\n `Deleting tunnel ${argv[\"tunnel-id\"]} on account ${account}...`\n );\n\n // 2. Poll for status\n const polledTearDownOperation = await pollTeardownOperation({\n argv,\n account,\n teardownOperationId: teardownOperation.id,\n });\n\n if (polledTearDownOperation.status === \"success\") {\n await printResultToConsoleAndExitGracefully(\n `Tunnel ${argv[\"tunnel-id\"]} deleted successfully.`\n );\n } else {\n printDiagnosticsToConsole(polledTearDownOperation.details);\n await printCriticalFailureToConsoleAndExit(\n `Tunnel ${argv[\"tunnel-id\"]} failed to delete. Here's the error: ${polledTearDownOperation.message}`\n );\n }\n } else {\n const response = textOrJson(await deleteResponse.text());\n logger.error(\n {\n status: deleteResponse.status,\n statusText: deleteResponse.statusText,\n response,\n },\n \"Failed to delete tunnel for account\"\n );\n printDiagnosticsToConsole(\n \"Error: Failed to delete the tunnel for your account. Check the arguments.\",\n response\n );\n }\n}\n"]}
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/tunnel/delete/handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EACL,oCAAoC,EACpC,yBAAyB,EACzB,qCAAqC,EACrC,UAAU,GACX,MAAM,wBAAwB,CAAC;AAChC,OAAO,QAAQ,MAAM,0BAA0B,CAAC;AAEhD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAQrE,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAe;IAEhD,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACzB,MAAM,cAAc,GAAG,MAAM,KAAK,CAChC,GAAG,QAAQ,CAAC,4BAA4B,gBAAgB,OAAO,YAAY,IAAI,CAAC,WAAW,CAAC,EAAE,EAC9F;QACE,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE;YAEP,aAAa,EAAE,UAAU,IAAI,CAAC,SAAS,EAAE;SAC1C;KACF,CACF,CAAC;IAEF,IAAI,cAAc,CAAC,EAAE,EAAE,CAAC;QACtB,MAAM,iBAAiB,GAAsB,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC;QACzE,yBAAyB,CACvB,mBAAmB,IAAI,CAAC,WAAW,CAAC,eAAe,OAAO,KAAK,CAChE,CAAC;QAGF,MAAM,uBAAuB,GAAG,MAAM,qBAAqB,CAAC;YAC1D,IAAI;YACJ,OAAO;YACP,mBAAmB,EAAE,iBAAiB,CAAC,EAAE;SAC1C,CAAC,CAAC;QAEH,IAAI,uBAAuB,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACjD,MAAM,qCAAqC,CACzC,UAAU,IAAI,CAAC,WAAW,CAAC,wBAAwB,CACpD,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,yBAAyB,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;YAC3D,MAAM,oCAAoC,CACxC,UAAU,IAAI,CAAC,WAAW,CAAC,wCAAwC,uBAAuB,CAAC,OAAO,EAAE,CACrG,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;QACzD,MAAM,CAAC,KAAK,CACV;YACE,MAAM,EAAE,cAAc,CAAC,MAAM;YAC7B,UAAU,EAAE,cAAc,CAAC,UAAU;YACrC,QAAQ;SACT,EACD,qCAAqC,CACtC,CAAC;QACF,yBAAyB,CACvB,2EAA2E,EAC3E,QAAQ,CACT,CAAC;IACJ,CAAC;AACH,CAAC","sourcesContent":["import { logger } from \"../../common/logger.js\";\nimport {\n printCriticalFailureToConsoleAndExit,\n printDiagnosticsToConsole,\n printResultToConsoleAndExitGracefully,\n textOrJson,\n} from \"../../common/output.js\";\nimport settings from \"../../common/settings.js\";\nimport { TeardownOperation } from \"../models.js\";\nimport { pollTeardownOperation } from \"./poll-teardown-operation.js\";\n\nexport interface Arguments {\n account: string;\n \"tunnel-id\": string;\n authToken: string;\n}\n\nexport async function deleteTunnel(argv: Arguments) {\n // 1. Initiate a deletion for the tunnel\n const { account } = argv;\n const deleteResponse = await fetch(\n `${settings.ZUPLO_DEVELOPER_API_ENDPOINT}/v1/accounts/${account}/tunnels/${argv[\"tunnel-id\"]}`,\n {\n method: \"DELETE\",\n headers: {\n // biome-ignore lint/style/useNamingConvention: External API property\n Authorization: `Bearer ${argv.authToken}`,\n },\n }\n );\n\n if (deleteResponse.ok) {\n const teardownOperation: TeardownOperation = await deleteResponse.json();\n printDiagnosticsToConsole(\n `Deleting tunnel ${argv[\"tunnel-id\"]} on account ${account}...`\n );\n\n // 2. Poll for status\n const polledTearDownOperation = await pollTeardownOperation({\n argv,\n account,\n teardownOperationId: teardownOperation.id,\n });\n\n if (polledTearDownOperation.status === \"success\") {\n await printResultToConsoleAndExitGracefully(\n `Tunnel ${argv[\"tunnel-id\"]} deleted successfully.`\n );\n } else {\n printDiagnosticsToConsole(polledTearDownOperation.details);\n await printCriticalFailureToConsoleAndExit(\n `Tunnel ${argv[\"tunnel-id\"]} failed to delete. Here's the error: ${polledTearDownOperation.message}`\n );\n }\n } else {\n const response = textOrJson(await deleteResponse.text());\n logger.error(\n {\n status: deleteResponse.status,\n statusText: deleteResponse.statusText,\n response,\n },\n \"Failed to delete tunnel for account\"\n );\n printDiagnosticsToConsole(\n \"Error: Failed to delete the tunnel for your account. Check the arguments.\",\n response\n );\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"poll-teardown-operation.d.ts","sourceRoot":"","sources":["../../../src/tunnel/delete/poll-teardown-operation.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAQzC,wBAAsB,qBAAqB,CAAC,IAAI,EAAE;IAChD,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB,EAAE,MAAM,CAAC;CAC7B,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAmD7B"}
1
+ {"version":3,"file":"poll-teardown-operation.d.ts","sourceRoot":"","sources":["../../../src/tunnel/delete/poll-teardown-operation.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAQzC,wBAAsB,qBAAqB,CAAC,IAAI,EAAE;IAChD,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB,EAAE,MAAM,CAAC;CAC7B,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAoD7B"}
@@ -1 +1 @@
1
- {"version":3,"file":"poll-teardown-operation.js","sourceRoot":"","sources":["../../../src/tunnel/delete/poll-teardown-operation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,QAAQ,MAAM,0BAA0B,CAAC;AAIhD,SAAS,IAAI,CACX,WAAmB,QAAQ,CAAC,0BAA0B;IAEtD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,IAI3C;IACC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;IACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAExC,KACE,IAAI,SAAS,GAAG,CAAC,EACjB,SAAS,GAAG,QAAQ,CAAC,wBAAwB,EAC7C,SAAS,EAAE,EACX,CAAC;QACD,yBAAyB,CACvB,6CAA6C,SAAS,IAAI,QAAQ,CAAC,wBAAwB,GAAG,CAC/F,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,GAAG,QAAQ,CAAC,4BAA4B,gBAAgB,IAAI,CAAC,OAAO,YAAY,QAAQ,wBAAwB,IAAI,CAAC,mBAAmB,EAAE,EAC1I;YACE,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,SAAS,EAAE;aACrC;SACF,CACF,CAAC;QAEF,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;YAChB,MAAM,iBAAiB,GAAsB,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnE,QAAQ,iBAAiB,CAAC,MAAM,EAAE,CAAC;gBACjC,KAAK,OAAO;oBACV,OAAO,iBAAiB,CAAC;gBAC3B,KAAK,aAAa;oBAChB,MAAM,IAAI,EAAE,CAAC;oBACb,SAAS;gBACX,KAAK,SAAS;oBACZ,OAAO,iBAAiB,CAAC;YAC7B,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CACV,6EACE,QAAQ,CAAC,MACX,IAAI,QAAQ,CAAC,UAAU,IAAI,MAAM,QAAQ,CAAC,IAAI,EAAE,EAAE,CACnD,CAAC;YACF,MAAM,IAAI,KAAK,CACb,gFAAgF,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CACzH,CAAC;QACJ,CAAC;IACH,CAAC;IAID,MAAM,IAAI,KAAK,CACb,8DAA8D,CAC/D,CAAC;AACJ,CAAC","sourcesContent":["import { logger } from \"../../common/logger.js\";\nimport { printDiagnosticsToConsole } from \"../../common/output.js\";\nimport settings from \"../../common/settings.js\";\nimport { TeardownOperation } from \"../models.js\";\nimport { Arguments } from \"./handler.js\";\n\nfunction wait(\n duration: number = settings.PROVISIONING_POLL_INTERVAL\n): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, duration));\n}\n\nexport async function pollTeardownOperation(args: {\n argv: Arguments;\n account: string;\n teardownOperationId: string;\n}): Promise<TeardownOperation> {\n const authToken = args.argv.authToken;\n const tunnelId = args.argv[\"tunnel-id\"];\n\n for (\n let pollRetry = 0;\n pollRetry < settings.MAX_PROVISIONING_RETRIES;\n pollRetry++\n ) {\n printDiagnosticsToConsole(\n `Polling for teardown operation status... (${pollRetry}/${settings.MAX_PROVISIONING_RETRIES})`\n );\n\n const response = await fetch(\n `${settings.ZUPLO_DEVELOPER_API_ENDPOINT}/v1/accounts/${args.account}/tunnels/${tunnelId}/teardown-operations/${args.teardownOperationId}`,\n {\n method: \"GET\",\n headers: {\n Authorization: `Bearer ${authToken}`,\n },\n }\n );\n\n if (response.ok) {\n const teardownOperation: TeardownOperation = await response.json();\n switch (teardownOperation.status) {\n case \"error\":\n return teardownOperation;\n case \"in-progress\":\n await wait();\n continue;\n case \"success\":\n return teardownOperation;\n }\n } else {\n logger.error(\n `Unexpected error from server while polling for teardown operation status: ${\n response.status\n } ${response.statusText} ${await response.json()}`\n );\n throw new Error(\n `Unexpected response from server while polling for teardown operation status: ${response.status} ${response.statusText}`\n );\n }\n }\n\n // We will not get here because we will always execute the loop at least once\n // This is to appease the TypeScript compiler\n throw new Error(\n \"Unexpected error while polling for teardown operation status\"\n );\n}\n"]}
1
+ {"version":3,"file":"poll-teardown-operation.js","sourceRoot":"","sources":["../../../src/tunnel/delete/poll-teardown-operation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,QAAQ,MAAM,0BAA0B,CAAC;AAIhD,SAAS,IAAI,CACX,WAAmB,QAAQ,CAAC,0BAA0B;IAEtD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,IAI3C;IACC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;IACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAExC,KACE,IAAI,SAAS,GAAG,CAAC,EACjB,SAAS,GAAG,QAAQ,CAAC,wBAAwB,EAC7C,SAAS,EAAE,EACX,CAAC;QACD,yBAAyB,CACvB,6CAA6C,SAAS,IAAI,QAAQ,CAAC,wBAAwB,GAAG,CAC/F,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,GAAG,QAAQ,CAAC,4BAA4B,gBAAgB,IAAI,CAAC,OAAO,YAAY,QAAQ,wBAAwB,IAAI,CAAC,mBAAmB,EAAE,EAC1I;YACE,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBAEP,aAAa,EAAE,UAAU,SAAS,EAAE;aACrC;SACF,CACF,CAAC;QAEF,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;YAChB,MAAM,iBAAiB,GAAsB,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnE,QAAQ,iBAAiB,CAAC,MAAM,EAAE,CAAC;gBACjC,KAAK,OAAO;oBACV,OAAO,iBAAiB,CAAC;gBAC3B,KAAK,aAAa;oBAChB,MAAM,IAAI,EAAE,CAAC;oBACb,SAAS;gBACX,KAAK,SAAS;oBACZ,OAAO,iBAAiB,CAAC;YAC7B,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CACV,6EACE,QAAQ,CAAC,MACX,IAAI,QAAQ,CAAC,UAAU,IAAI,MAAM,QAAQ,CAAC,IAAI,EAAE,EAAE,CACnD,CAAC;YACF,MAAM,IAAI,KAAK,CACb,gFAAgF,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CACzH,CAAC;QACJ,CAAC;IACH,CAAC;IAID,MAAM,IAAI,KAAK,CACb,8DAA8D,CAC/D,CAAC;AACJ,CAAC","sourcesContent":["import { logger } from \"../../common/logger.js\";\nimport { printDiagnosticsToConsole } from \"../../common/output.js\";\nimport settings from \"../../common/settings.js\";\nimport { TeardownOperation } from \"../models.js\";\nimport { Arguments } from \"./handler.js\";\n\nfunction wait(\n duration: number = settings.PROVISIONING_POLL_INTERVAL\n): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, duration));\n}\n\nexport async function pollTeardownOperation(args: {\n argv: Arguments;\n account: string;\n teardownOperationId: string;\n}): Promise<TeardownOperation> {\n const authToken = args.argv.authToken;\n const tunnelId = args.argv[\"tunnel-id\"];\n\n for (\n let pollRetry = 0;\n pollRetry < settings.MAX_PROVISIONING_RETRIES;\n pollRetry++\n ) {\n printDiagnosticsToConsole(\n `Polling for teardown operation status... (${pollRetry}/${settings.MAX_PROVISIONING_RETRIES})`\n );\n\n const response = await fetch(\n `${settings.ZUPLO_DEVELOPER_API_ENDPOINT}/v1/accounts/${args.account}/tunnels/${tunnelId}/teardown-operations/${args.teardownOperationId}`,\n {\n method: \"GET\",\n headers: {\n // biome-ignore lint/style/useNamingConvention: External API property\n Authorization: `Bearer ${authToken}`,\n },\n }\n );\n\n if (response.ok) {\n const teardownOperation: TeardownOperation = await response.json();\n switch (teardownOperation.status) {\n case \"error\":\n return teardownOperation;\n case \"in-progress\":\n await wait();\n continue;\n case \"success\":\n return teardownOperation;\n }\n } else {\n logger.error(\n `Unexpected error from server while polling for teardown operation status: ${\n response.status\n } ${response.statusText} ${await response.json()}`\n );\n throw new Error(\n `Unexpected response from server while polling for teardown operation status: ${response.status} ${response.statusText}`\n );\n }\n }\n\n // We will not get here because we will always execute the loop at least once\n // This is to appease the TypeScript compiler\n throw new Error(\n \"Unexpected error while polling for teardown operation status\"\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/tunnel/describe/handler.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,SAAS,iBA8B7C"}
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/tunnel/describe/handler.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,SAAS,iBA+B7C"}
@@ -1 +1 @@
1
- {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/tunnel/describe/handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EACL,yBAAyB,EACzB,oCAAoC,EACpC,UAAU,GACX,MAAM,wBAAwB,CAAC;AAChC,OAAO,QAAQ,MAAM,0BAA0B,CAAC;AAShD,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAe;IAC5C,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACzB,MAAM,gBAAgB,GAAG,MAAM,KAAK,CAClC,GAAG,QAAQ,CAAC,4BAA4B,gBAAgB,OAAO,YAAY,IAAI,CAAC,WAAW,CAAC,EAAE,EAC9F;QACE,MAAM,EAAE,KAAK;QACb,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,IAAI,CAAC,SAAS,EAAE;SAC1C;KACF,CACF,CAAC;IAEF,IAAI,gBAAgB,CAAC,EAAE,EAAE,CAAC;QACxB,MAAM,MAAM,GAAW,MAAM,gBAAgB,CAAC,IAAI,EAAE,CAAC;QACrD,MAAM,oCAAoC,CAAC,MAAM,CAAC,CAAC;IACrD,CAAC;SAAM,CAAC;QACN,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3D,MAAM,CAAC,KAAK,CACV;YACE,MAAM,EAAE,gBAAgB,CAAC,MAAM;YAC/B,UAAU,EAAE,gBAAgB,CAAC,UAAU;YACvC,QAAQ;SACT,EACD,uCAAuC,CACxC,CAAC;QACF,yBAAyB,CACvB,yEAAyE,EACzE,QAAQ,CACT,CAAC;IACJ,CAAC;AACH,CAAC","sourcesContent":["import { logger } from \"../../common/logger.js\";\nimport {\n printDiagnosticsToConsole,\n printTableToConsoleAndExitGracefully,\n textOrJson,\n} from \"../../common/output.js\";\nimport settings from \"../../common/settings.js\";\nimport { Tunnel } from \"../models.js\";\n\nexport interface Arguments {\n account: string;\n \"tunnel-id\": string;\n authToken: string;\n}\n\nexport async function describe(argv: Arguments) {\n const { account } = argv;\n const describeResponse = await fetch(\n `${settings.ZUPLO_DEVELOPER_API_ENDPOINT}/v1/accounts/${account}/tunnels/${argv[\"tunnel-id\"]}`,\n {\n method: \"GET\",\n headers: {\n Authorization: `Bearer ${argv.authToken}`,\n },\n }\n );\n\n if (describeResponse.ok) {\n const tunnel: Tunnel = await describeResponse.json();\n await printTableToConsoleAndExitGracefully(tunnel);\n } else {\n const response = textOrJson(await describeResponse.text());\n logger.error(\n {\n status: describeResponse.status,\n statusText: describeResponse.statusText,\n response,\n },\n \"Failed to describe tunnel for account\"\n );\n printDiagnosticsToConsole(\n \"Error: Failed to describe tunnel for your account. Check the arguments.\",\n response\n );\n }\n}\n"]}
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/tunnel/describe/handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EACL,yBAAyB,EACzB,oCAAoC,EACpC,UAAU,GACX,MAAM,wBAAwB,CAAC;AAChC,OAAO,QAAQ,MAAM,0BAA0B,CAAC;AAShD,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAe;IAC5C,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACzB,MAAM,gBAAgB,GAAG,MAAM,KAAK,CAClC,GAAG,QAAQ,CAAC,4BAA4B,gBAAgB,OAAO,YAAY,IAAI,CAAC,WAAW,CAAC,EAAE,EAC9F;QACE,MAAM,EAAE,KAAK;QACb,OAAO,EAAE;YAEP,aAAa,EAAE,UAAU,IAAI,CAAC,SAAS,EAAE;SAC1C;KACF,CACF,CAAC;IAEF,IAAI,gBAAgB,CAAC,EAAE,EAAE,CAAC;QACxB,MAAM,MAAM,GAAW,MAAM,gBAAgB,CAAC,IAAI,EAAE,CAAC;QACrD,MAAM,oCAAoC,CAAC,MAAM,CAAC,CAAC;IACrD,CAAC;SAAM,CAAC;QACN,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3D,MAAM,CAAC,KAAK,CACV;YACE,MAAM,EAAE,gBAAgB,CAAC,MAAM;YAC/B,UAAU,EAAE,gBAAgB,CAAC,UAAU;YACvC,QAAQ;SACT,EACD,uCAAuC,CACxC,CAAC;QACF,yBAAyB,CACvB,yEAAyE,EACzE,QAAQ,CACT,CAAC;IACJ,CAAC;AACH,CAAC","sourcesContent":["import { logger } from \"../../common/logger.js\";\nimport {\n printDiagnosticsToConsole,\n printTableToConsoleAndExitGracefully,\n textOrJson,\n} from \"../../common/output.js\";\nimport settings from \"../../common/settings.js\";\nimport { Tunnel } from \"../models.js\";\n\nexport interface Arguments {\n account: string;\n \"tunnel-id\": string;\n authToken: string;\n}\n\nexport async function describe(argv: Arguments) {\n const { account } = argv;\n const describeResponse = await fetch(\n `${settings.ZUPLO_DEVELOPER_API_ENDPOINT}/v1/accounts/${account}/tunnels/${argv[\"tunnel-id\"]}`,\n {\n method: \"GET\",\n headers: {\n // biome-ignore lint/style/useNamingConvention: External API property\n Authorization: `Bearer ${argv.authToken}`,\n },\n }\n );\n\n if (describeResponse.ok) {\n const tunnel: Tunnel = await describeResponse.json();\n await printTableToConsoleAndExitGracefully(tunnel);\n } else {\n const response = textOrJson(await describeResponse.text());\n logger.error(\n {\n status: describeResponse.status,\n statusText: describeResponse.statusText,\n response,\n },\n \"Failed to describe tunnel for account\"\n );\n printDiagnosticsToConsole(\n \"Error: Failed to describe tunnel for your account. Check the arguments.\",\n response\n );\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/tunnel/list/handler.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,IAAI,CAAC,IAAI,EAAE,SAAS,iBAuCzC"}
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/tunnel/list/handler.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,IAAI,CAAC,IAAI,EAAE,SAAS,iBAwCzC"}
@@ -1 +1 @@
1
- {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/tunnel/list/handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EACL,yBAAyB,EACzB,qCAAqC,EACrC,oCAAoC,GACrC,MAAM,wBAAwB,CAAC;AAChC,OAAO,QAAQ,MAAM,0BAA0B,CAAC;AAQhD,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAe;IACxC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC;IAC/B,MAAM,YAAY,GAAG,MAAM,KAAK,CAC9B,GAAG,QAAQ,CAAC,4BAA4B,gBAAgB,OAAO,UAAU,EACzE;QACE,MAAM,EAAE,KAAK;QACb,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,IAAI,CAAC,SAAS,EAAE;SAC1C;KACF,CACF,CAAC;IAEF,IAAI,YAAY,CAAC,EAAE,EAAE,CAAC;QACpB,MAAM,OAAO,GAAe,MAAM,YAAY,CAAC,IAAI,EAAE,CAAC;QAEtD,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,kBAAkB,CAAC;YAClC,MAAM,qCAAqC,CAAC,MAAM,CAAC,CAAC;QACtD,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;gBACxC,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;YACvD,CAAC,CAAC,CAAC;YACH,MAAM,oCAAoC,CAAC,KAAK,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,CAAC;QAC3C,MAAM,CAAC,KAAK,CACV;YACE,MAAM,EAAE,YAAY,CAAC,MAAM;YAC3B,UAAU,EAAE,YAAY,CAAC,UAAU;YACnC,QAAQ;SACT,EACD,oCAAoC,CACrC,CAAC;QACF,yBAAyB,CACvB,kEAAkE,EAClE,QAAQ,CACT,CAAC;IACJ,CAAC;AACH,CAAC","sourcesContent":["import { logger } from \"../../common/logger.js\";\nimport {\n printDiagnosticsToConsole,\n printResultToConsoleAndExitGracefully,\n printTableToConsoleAndExitGracefully,\n} from \"../../common/output.js\";\nimport settings from \"../../common/settings.js\";\nimport { TunnelList } from \"../models.js\";\n\nexport interface Arguments {\n account: string;\n authToken: string;\n}\n\nexport async function list(argv: Arguments) {\n const { account } = await argv;\n const listResponse = await fetch(\n `${settings.ZUPLO_DEVELOPER_API_ENDPOINT}/v1/accounts/${account}/tunnels`,\n {\n method: \"GET\",\n headers: {\n Authorization: `Bearer ${argv.authToken}`,\n },\n }\n );\n\n if (listResponse.ok) {\n const tunnels: TunnelList = await listResponse.json();\n\n if (tunnels.data.length === 0) {\n const output = \"No tunnels found\";\n await printResultToConsoleAndExitGracefully(output);\n } else {\n const table = tunnels.data.map((tunnel) => {\n return { \"tunnel-id\": tunnel.id, name: tunnel.name };\n });\n await printTableToConsoleAndExitGracefully(table);\n }\n } else {\n const response = await listResponse.json();\n logger.error(\n {\n status: listResponse.status,\n statusText: listResponse.statusText,\n response,\n },\n \"Failed to list tunnels for account\"\n );\n printDiagnosticsToConsole(\n \"Error: Failed to list tunnels for your account. Try again later.\",\n response\n );\n }\n}\n"]}
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/tunnel/list/handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EACL,yBAAyB,EACzB,qCAAqC,EACrC,oCAAoC,GACrC,MAAM,wBAAwB,CAAC;AAChC,OAAO,QAAQ,MAAM,0BAA0B,CAAC;AAQhD,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAe;IACxC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC;IAC/B,MAAM,YAAY,GAAG,MAAM,KAAK,CAC9B,GAAG,QAAQ,CAAC,4BAA4B,gBAAgB,OAAO,UAAU,EACzE;QACE,MAAM,EAAE,KAAK;QACb,OAAO,EAAE;YAEP,aAAa,EAAE,UAAU,IAAI,CAAC,SAAS,EAAE;SAC1C;KACF,CACF,CAAC;IAEF,IAAI,YAAY,CAAC,EAAE,EAAE,CAAC;QACpB,MAAM,OAAO,GAAe,MAAM,YAAY,CAAC,IAAI,EAAE,CAAC;QAEtD,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,kBAAkB,CAAC;YAClC,MAAM,qCAAqC,CAAC,MAAM,CAAC,CAAC;QACtD,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;gBACxC,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;YACvD,CAAC,CAAC,CAAC;YACH,MAAM,oCAAoC,CAAC,KAAK,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,CAAC;QAC3C,MAAM,CAAC,KAAK,CACV;YACE,MAAM,EAAE,YAAY,CAAC,MAAM;YAC3B,UAAU,EAAE,YAAY,CAAC,UAAU;YACnC,QAAQ;SACT,EACD,oCAAoC,CACrC,CAAC;QACF,yBAAyB,CACvB,kEAAkE,EAClE,QAAQ,CACT,CAAC;IACJ,CAAC;AACH,CAAC","sourcesContent":["import { logger } from \"../../common/logger.js\";\nimport {\n printDiagnosticsToConsole,\n printResultToConsoleAndExitGracefully,\n printTableToConsoleAndExitGracefully,\n} from \"../../common/output.js\";\nimport settings from \"../../common/settings.js\";\nimport { TunnelList } from \"../models.js\";\n\nexport interface Arguments {\n account: string;\n authToken: string;\n}\n\nexport async function list(argv: Arguments) {\n const { account } = await argv;\n const listResponse = await fetch(\n `${settings.ZUPLO_DEVELOPER_API_ENDPOINT}/v1/accounts/${account}/tunnels`,\n {\n method: \"GET\",\n headers: {\n // biome-ignore lint/style/useNamingConvention: External API property\n Authorization: `Bearer ${argv.authToken}`,\n },\n }\n );\n\n if (listResponse.ok) {\n const tunnels: TunnelList = await listResponse.json();\n\n if (tunnels.data.length === 0) {\n const output = \"No tunnels found\";\n await printResultToConsoleAndExitGracefully(output);\n } else {\n const table = tunnels.data.map((tunnel) => {\n return { \"tunnel-id\": tunnel.id, name: tunnel.name };\n });\n await printTableToConsoleAndExitGracefully(table);\n }\n } else {\n const response = await listResponse.json();\n logger.error(\n {\n status: listResponse.status,\n statusText: listResponse.statusText,\n response,\n },\n \"Failed to list tunnels for account\"\n );\n printDiagnosticsToConsole(\n \"Error: Failed to list tunnels for your account. Try again later.\",\n response\n );\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/tunnel/models.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Ideally this file should be generated from the API spec.\n */\n\nimport { Collection } from \"../common/models.js\";\n\nexport type TunnelList = Collection<TunnelListItem>;\n\nexport interface TunnelListItem {\n id: string;\n name: string;\n}\n\nexport interface Tunnel {\n id: string;\n name: string;\n token: string;\n}\n\nexport interface ProvisioningOperation {\n id: string;\n status: \"in-progress\" | \"success\" | \"error\";\n message?: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n details?: any;\n}\n\nexport interface TeardownOperation {\n id: string;\n status: \"in-progress\" | \"success\" | \"error\";\n message?: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n details?: any;\n}\n"]}
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/tunnel/models.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Ideally this file should be generated from the API spec.\n */\n\nimport { Collection } from \"../common/models.js\";\n\nexport type TunnelList = Collection<TunnelListItem>;\n\nexport interface TunnelListItem {\n id: string;\n name: string;\n}\n\nexport interface Tunnel {\n id: string;\n name: string;\n token: string;\n}\n\nexport interface ProvisioningOperation {\n id: string;\n status: \"in-progress\" | \"success\" | \"error\";\n message?: string;\n // biome-ignore lint/suspicious/noExplicitAny: Migrated from ESLint\n details?: any;\n}\n\nexport interface TeardownOperation {\n id: string;\n status: \"in-progress\" | \"success\" | \"error\";\n message?: string;\n // biome-ignore lint/suspicious/noExplicitAny: Migrated from ESLint\n details?: any;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/tunnel/rotate-token/handler.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,SAAS,iBA8BhD"}
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/tunnel/rotate-token/handler.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,SAAS,iBA+BhD"}
@@ -1 +1 @@
1
- {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/tunnel/rotate-token/handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EACL,yBAAyB,EACzB,oCAAoC,EACpC,UAAU,GACX,MAAM,wBAAwB,CAAC;AAChC,OAAO,QAAQ,MAAM,0BAA0B,CAAC;AAShD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAe;IAC/C,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACzB,MAAM,cAAc,GAAG,MAAM,KAAK,CAChC,GAAG,QAAQ,CAAC,4BAA4B,gBAAgB,OAAO,YAAY,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAC5G;QACE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,IAAI,CAAC,SAAS,EAAE;SAC1C;KACF,CACF,CAAC;IAEF,IAAI,cAAc,CAAC,EAAE,EAAE,CAAC;QACtB,MAAM,MAAM,GAAW,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC;QACnD,MAAM,oCAAoC,CAAC,MAAM,CAAC,CAAC;IACrD,CAAC;SAAM,CAAC;QACN,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;QACzD,MAAM,CAAC,KAAK,CACV;YACE,MAAM,EAAE,cAAc,CAAC,MAAM;YAC7B,UAAU,EAAE,cAAc,CAAC,UAAU;YACrC,QAAQ;SACT,EACD,mCAAmC,CACpC,CAAC;QACF,yBAAyB,CACvB,gEAAgE,EAChE,QAAQ,CACT,CAAC;IACJ,CAAC;AACH,CAAC","sourcesContent":["import { logger } from \"../../common/logger.js\";\nimport {\n printDiagnosticsToConsole,\n printTableToConsoleAndExitGracefully,\n textOrJson,\n} from \"../../common/output.js\";\nimport settings from \"../../common/settings.js\";\nimport { Tunnel } from \"../models.js\";\n\nexport interface Arguments {\n account: string;\n \"tunnel-id\": string;\n authToken: string;\n}\n\nexport async function rotateToken(argv: Arguments) {\n const { account } = argv;\n const rotateResponse = await fetch(\n `${settings.ZUPLO_DEVELOPER_API_ENDPOINT}/v1/accounts/${account}/tunnels/${argv[\"tunnel-id\"]}/$rotate-token`,\n {\n method: \"POST\",\n headers: {\n Authorization: `Bearer ${argv.authToken}`,\n },\n }\n );\n\n if (rotateResponse.ok) {\n const tunnel: Tunnel = await rotateResponse.json();\n await printTableToConsoleAndExitGracefully(tunnel);\n } else {\n const response = textOrJson(await rotateResponse.text());\n logger.error(\n {\n status: rotateResponse.status,\n statusText: rotateResponse.statusText,\n response,\n },\n \"Failed to rotate token for tunnel\"\n );\n printDiagnosticsToConsole(\n \"Error: Failed to rotate token for tunnel. Check the arguments.\",\n response\n );\n }\n}\n"]}
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/tunnel/rotate-token/handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EACL,yBAAyB,EACzB,oCAAoC,EACpC,UAAU,GACX,MAAM,wBAAwB,CAAC;AAChC,OAAO,QAAQ,MAAM,0BAA0B,CAAC;AAShD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAe;IAC/C,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACzB,MAAM,cAAc,GAAG,MAAM,KAAK,CAChC,GAAG,QAAQ,CAAC,4BAA4B,gBAAgB,OAAO,YAAY,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAC5G;QACE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YAEP,aAAa,EAAE,UAAU,IAAI,CAAC,SAAS,EAAE;SAC1C;KACF,CACF,CAAC;IAEF,IAAI,cAAc,CAAC,EAAE,EAAE,CAAC;QACtB,MAAM,MAAM,GAAW,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC;QACnD,MAAM,oCAAoC,CAAC,MAAM,CAAC,CAAC;IACrD,CAAC;SAAM,CAAC;QACN,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;QACzD,MAAM,CAAC,KAAK,CACV;YACE,MAAM,EAAE,cAAc,CAAC,MAAM;YAC7B,UAAU,EAAE,cAAc,CAAC,UAAU;YACrC,QAAQ;SACT,EACD,mCAAmC,CACpC,CAAC;QACF,yBAAyB,CACvB,gEAAgE,EAChE,QAAQ,CACT,CAAC;IACJ,CAAC;AACH,CAAC","sourcesContent":["import { logger } from \"../../common/logger.js\";\nimport {\n printDiagnosticsToConsole,\n printTableToConsoleAndExitGracefully,\n textOrJson,\n} from \"../../common/output.js\";\nimport settings from \"../../common/settings.js\";\nimport { Tunnel } from \"../models.js\";\n\nexport interface Arguments {\n account: string;\n \"tunnel-id\": string;\n authToken: string;\n}\n\nexport async function rotateToken(argv: Arguments) {\n const { account } = argv;\n const rotateResponse = await fetch(\n `${settings.ZUPLO_DEVELOPER_API_ENDPOINT}/v1/accounts/${account}/tunnels/${argv[\"tunnel-id\"]}/$rotate-token`,\n {\n method: \"POST\",\n headers: {\n // biome-ignore lint/style/useNamingConvention: External API property\n Authorization: `Bearer ${argv.authToken}`,\n },\n }\n );\n\n if (rotateResponse.ok) {\n const tunnel: Tunnel = await rotateResponse.json();\n await printTableToConsoleAndExitGracefully(tunnel);\n } else {\n const response = textOrJson(await rotateResponse.text());\n logger.error(\n {\n status: rotateResponse.status,\n statusText: rotateResponse.statusText,\n response,\n },\n \"Failed to rotate token for tunnel\"\n );\n printDiagnosticsToConsole(\n \"Error: Failed to rotate token for tunnel. Check the arguments.\",\n response\n );\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../src/tunnel/services/describe/handler.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,SAAS,iBAgC7C"}
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../src/tunnel/services/describe/handler.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,SAAS,iBAiC7C"}
@@ -1 +1 @@
1
- {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../../src/tunnel/services/describe/handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EACL,yBAAyB,EACzB,qCAAqC,EACrC,UAAU,GACX,MAAM,2BAA2B,CAAC;AACnC,OAAO,QAAQ,MAAM,6BAA6B,CAAC;AASnD,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAe;IAC5C,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACzB,MAAM,gBAAgB,GAAG,MAAM,KAAK,CAClC,GAAG,QAAQ,CAAC,4BAA4B,gBAAgB,OAAO,YAAY,IAAI,CAAC,WAAW,CAAC,yBAAyB,EACrH;QACE,MAAM,EAAE,KAAK;QACb,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,IAAI,CAAC,SAAS,EAAE;SAC1C;KACF,CACF,CAAC;IAEF,IAAI,gBAAgB,CAAC,EAAE,EAAE,CAAC;QACxB,MAAM,MAAM,GAAW,MAAM,gBAAgB,CAAC,IAAI,EAAE,CAAC;QACrD,MAAM,qCAAqC,CACzC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAChC,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3D,MAAM,CAAC,KAAK,CACV;YACE,MAAM,EAAE,gBAAgB,CAAC,MAAM;YAC/B,UAAU,EAAE,gBAAgB,CAAC,UAAU;YACvC,QAAQ;SACT,EACD,wCAAwC,CACzC,CAAC;QACF,yBAAyB,CACvB,8EAA8E,EAC9E,QAAQ,CACT,CAAC;IACJ,CAAC;AACH,CAAC","sourcesContent":["import { logger } from \"../../../common/logger.js\";\nimport {\n printDiagnosticsToConsole,\n printResultToConsoleAndExitGracefully,\n textOrJson,\n} from \"../../../common/output.js\";\nimport settings from \"../../../common/settings.js\";\nimport { Tunnel } from \"../../models.js\";\n\nexport interface Arguments {\n account: string;\n \"tunnel-id\": string;\n authToken: string;\n}\n\nexport async function describe(argv: Arguments) {\n const { account } = argv;\n const describeResponse = await fetch(\n `${settings.ZUPLO_DEVELOPER_API_ENDPOINT}/v1/accounts/${account}/tunnels/${argv[\"tunnel-id\"]}/services-configuration`,\n {\n method: \"GET\",\n headers: {\n Authorization: `Bearer ${argv.authToken}`,\n },\n }\n );\n\n if (describeResponse.ok) {\n const tunnel: Tunnel = await describeResponse.json();\n await printResultToConsoleAndExitGracefully(\n JSON.stringify(tunnel, null, 2)\n );\n } else {\n const response = textOrJson(await describeResponse.text());\n logger.error(\n {\n status: describeResponse.status,\n statusText: describeResponse.statusText,\n response,\n },\n \"Failed to describe services for tunnel\"\n );\n printDiagnosticsToConsole(\n \"Error: Failed to describe the services for your tunnel. Check the arguments.\",\n response\n );\n }\n}\n"]}
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../../src/tunnel/services/describe/handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EACL,yBAAyB,EACzB,qCAAqC,EACrC,UAAU,GACX,MAAM,2BAA2B,CAAC;AACnC,OAAO,QAAQ,MAAM,6BAA6B,CAAC;AASnD,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAe;IAC5C,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACzB,MAAM,gBAAgB,GAAG,MAAM,KAAK,CAClC,GAAG,QAAQ,CAAC,4BAA4B,gBAAgB,OAAO,YAAY,IAAI,CAAC,WAAW,CAAC,yBAAyB,EACrH;QACE,MAAM,EAAE,KAAK;QACb,OAAO,EAAE;YAEP,aAAa,EAAE,UAAU,IAAI,CAAC,SAAS,EAAE;SAC1C;KACF,CACF,CAAC;IAEF,IAAI,gBAAgB,CAAC,EAAE,EAAE,CAAC;QACxB,MAAM,MAAM,GAAW,MAAM,gBAAgB,CAAC,IAAI,EAAE,CAAC;QACrD,MAAM,qCAAqC,CACzC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAChC,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3D,MAAM,CAAC,KAAK,CACV;YACE,MAAM,EAAE,gBAAgB,CAAC,MAAM;YAC/B,UAAU,EAAE,gBAAgB,CAAC,UAAU;YACvC,QAAQ;SACT,EACD,wCAAwC,CACzC,CAAC;QACF,yBAAyB,CACvB,8EAA8E,EAC9E,QAAQ,CACT,CAAC;IACJ,CAAC;AACH,CAAC","sourcesContent":["import { logger } from \"../../../common/logger.js\";\nimport {\n printDiagnosticsToConsole,\n printResultToConsoleAndExitGracefully,\n textOrJson,\n} from \"../../../common/output.js\";\nimport settings from \"../../../common/settings.js\";\nimport { Tunnel } from \"../../models.js\";\n\nexport interface Arguments {\n account: string;\n \"tunnel-id\": string;\n authToken: string;\n}\n\nexport async function describe(argv: Arguments) {\n const { account } = argv;\n const describeResponse = await fetch(\n `${settings.ZUPLO_DEVELOPER_API_ENDPOINT}/v1/accounts/${account}/tunnels/${argv[\"tunnel-id\"]}/services-configuration`,\n {\n method: \"GET\",\n headers: {\n // biome-ignore lint/style/useNamingConvention: External API property\n Authorization: `Bearer ${argv.authToken}`,\n },\n }\n );\n\n if (describeResponse.ok) {\n const tunnel: Tunnel = await describeResponse.json();\n await printResultToConsoleAndExitGracefully(\n JSON.stringify(tunnel, null, 2)\n );\n } else {\n const response = textOrJson(await describeResponse.text());\n logger.error(\n {\n status: describeResponse.status,\n statusText: describeResponse.statusText,\n response,\n },\n \"Failed to describe services for tunnel\"\n );\n printDiagnosticsToConsole(\n \"Error: Failed to describe the services for your tunnel. Check the arguments.\",\n response\n );\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../src/tunnel/services/update/handler.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,SAAS,iBAgEnD"}
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../src/tunnel/services/update/handler.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,SAAS,iBAiEnD"}
@@ -1 +1 @@
1
- {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../../src/tunnel/services/update/handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EACL,oCAAoC,EACpC,yBAAyB,EACzB,qCAAqC,EACrC,UAAU,GACX,MAAM,2BAA2B,CAAC;AACnC,OAAO,QAAQ,MAAM,6BAA6B,CAAC;AAEnD,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAS9E,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAe;IAElD,IAAI,QAAQ,CAAC;IACb,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC,CAAC;IACjE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,oCAAoC,CACxC,2CAA2C,IAAI,CAAC,oBAAoB,CAAC,KAAK,GAAG,CAAC,OAAO,GAAG,CACzF,CAAC;IACJ,CAAC;IAGD,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACzB,MAAM,cAAc,GAAG,MAAM,KAAK,CAChC,GAAG,QAAQ,CAAC,4BAA4B,gBAAgB,OAAO,YAAY,IAAI,CAAC,WAAW,CAAC,yBAAyB,EACrH;QACE,MAAM,EAAE,KAAK;QACb,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,IAAI,CAAC,SAAS,EAAE;YACzC,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,QAAQ;KACf,CACF,CAAC;IAEF,IAAI,cAAc,CAAC,EAAE,EAAE,CAAC;QACtB,MAAM,qBAAqB,GACzB,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC;QAC9B,yBAAyB,CACvB,+BAA+B,IAAI,CAAC,WAAW,CAAC,eAAe,OAAO,KAAK,CAC5E,CAAC;QAGF,MAAM,2BAA2B,GAAG,MAAM,yBAAyB,CAAC;YAClE,IAAI;YACJ,OAAO;YACP,uBAAuB,EAAE,qBAAqB,CAAC,EAAE;SAClD,CAAC,CAAC;QAEH,IAAI,2BAA2B,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACrD,MAAM,qCAAqC,CACzC,UAAU,IAAI,CAAC,WAAW,CAAC,wBAAwB,CACpD,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,yBAAyB,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAC;YAC/D,MAAM,oCAAoC,CACxC,UAAU,IAAI,CAAC,WAAW,CAAC,wCAAwC,2BAA2B,CAAC,OAAO,EAAE,CACzG,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;QACzD,MAAM,CAAC,KAAK,CACV;YACE,MAAM,EAAE,cAAc,CAAC,MAAM;YAC7B,UAAU,EAAE,cAAc,CAAC,UAAU;YACrC,QAAQ;SACT,EACD,qCAAqC,CACtC,CAAC;QACF,yBAAyB,CACvB,2EAA2E,EAC3E,QAAQ,CACT,CAAC;IACJ,CAAC;AACH,CAAC","sourcesContent":["import { readFile } from \"node:fs/promises\";\nimport { logger } from \"../../../common/logger.js\";\nimport {\n printCriticalFailureToConsoleAndExit,\n printDiagnosticsToConsole,\n printResultToConsoleAndExitGracefully,\n textOrJson,\n} from \"../../../common/output.js\";\nimport settings from \"../../../common/settings.js\";\nimport { ProvisioningOperation } from \"../../models.js\";\nimport { pollProvisioningOperation } from \"./poll-provisioning-operations.js\";\n\nexport interface Arguments {\n account: string;\n \"configuration-file\": string;\n \"tunnel-id\": string;\n authToken: string;\n}\n\nexport async function updateServices(argv: Arguments) {\n // 2. Read the configuration file\n let contents;\n try {\n contents = await readFile(argv[\"configuration-file\"], \"utf-8\");\n } catch (err) {\n await printCriticalFailureToConsoleAndExit(\n `Error reading the configuration file at ${argv[\"configuration-file\"]}: ${err.message}}`\n );\n }\n\n // 3. Initiate a update for the tunnel\n const { account } = argv;\n const deleteResponse = await fetch(\n `${settings.ZUPLO_DEVELOPER_API_ENDPOINT}/v1/accounts/${account}/tunnels/${argv[\"tunnel-id\"]}/services-configuration`,\n {\n method: \"PUT\",\n headers: {\n Authorization: `Bearer ${argv.authToken}`,\n \"Content-Type\": \"application/json\",\n },\n body: contents,\n }\n );\n\n if (deleteResponse.ok) {\n const provisioningOperation: ProvisioningOperation =\n await deleteResponse.json();\n printDiagnosticsToConsole(\n `Updating services on tunnel ${argv[\"tunnel-id\"]} on account ${account}...`\n );\n\n // 3. Poll for status\n const polledProvisioningOperation = await pollProvisioningOperation({\n argv,\n account,\n provisioningOperationId: provisioningOperation.id,\n });\n\n if (polledProvisioningOperation.status === \"success\") {\n await printResultToConsoleAndExitGracefully(\n `Tunnel ${argv[\"tunnel-id\"]} updated successfully.`\n );\n } else {\n printDiagnosticsToConsole(polledProvisioningOperation.details);\n await printCriticalFailureToConsoleAndExit(\n `Tunnel ${argv[\"tunnel-id\"]} failed to update. Here's the error: ${polledProvisioningOperation.message}`\n );\n }\n } else {\n const response = textOrJson(await deleteResponse.text());\n logger.error(\n {\n status: deleteResponse.status,\n statusText: deleteResponse.statusText,\n response,\n },\n \"Failed to update tunnel for account\"\n );\n printDiagnosticsToConsole(\n \"Error: Failed to update the tunnel for your account. Check the arguments.\",\n response\n );\n }\n}\n"]}
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../../src/tunnel/services/update/handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EACL,oCAAoC,EACpC,yBAAyB,EACzB,qCAAqC,EACrC,UAAU,GACX,MAAM,2BAA2B,CAAC;AACnC,OAAO,QAAQ,MAAM,6BAA6B,CAAC;AAEnD,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAS9E,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAe;IAElD,IAAI,QAAQ,CAAC;IACb,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC,CAAC;IACjE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,oCAAoC,CACxC,2CAA2C,IAAI,CAAC,oBAAoB,CAAC,KAAK,GAAG,CAAC,OAAO,GAAG,CACzF,CAAC;IACJ,CAAC;IAGD,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACzB,MAAM,cAAc,GAAG,MAAM,KAAK,CAChC,GAAG,QAAQ,CAAC,4BAA4B,gBAAgB,OAAO,YAAY,IAAI,CAAC,WAAW,CAAC,yBAAyB,EACrH;QACE,MAAM,EAAE,KAAK;QACb,OAAO,EAAE;YAEP,aAAa,EAAE,UAAU,IAAI,CAAC,SAAS,EAAE;YACzC,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,QAAQ;KACf,CACF,CAAC;IAEF,IAAI,cAAc,CAAC,EAAE,EAAE,CAAC;QACtB,MAAM,qBAAqB,GACzB,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC;QAC9B,yBAAyB,CACvB,+BAA+B,IAAI,CAAC,WAAW,CAAC,eAAe,OAAO,KAAK,CAC5E,CAAC;QAGF,MAAM,2BAA2B,GAAG,MAAM,yBAAyB,CAAC;YAClE,IAAI;YACJ,OAAO;YACP,uBAAuB,EAAE,qBAAqB,CAAC,EAAE;SAClD,CAAC,CAAC;QAEH,IAAI,2BAA2B,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACrD,MAAM,qCAAqC,CACzC,UAAU,IAAI,CAAC,WAAW,CAAC,wBAAwB,CACpD,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,yBAAyB,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAC;YAC/D,MAAM,oCAAoC,CACxC,UAAU,IAAI,CAAC,WAAW,CAAC,wCAAwC,2BAA2B,CAAC,OAAO,EAAE,CACzG,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;QACzD,MAAM,CAAC,KAAK,CACV;YACE,MAAM,EAAE,cAAc,CAAC,MAAM;YAC7B,UAAU,EAAE,cAAc,CAAC,UAAU;YACrC,QAAQ;SACT,EACD,qCAAqC,CACtC,CAAC;QACF,yBAAyB,CACvB,2EAA2E,EAC3E,QAAQ,CACT,CAAC;IACJ,CAAC;AACH,CAAC","sourcesContent":["import { readFile } from \"node:fs/promises\";\nimport { logger } from \"../../../common/logger.js\";\nimport {\n printCriticalFailureToConsoleAndExit,\n printDiagnosticsToConsole,\n printResultToConsoleAndExitGracefully,\n textOrJson,\n} from \"../../../common/output.js\";\nimport settings from \"../../../common/settings.js\";\nimport { ProvisioningOperation } from \"../../models.js\";\nimport { pollProvisioningOperation } from \"./poll-provisioning-operations.js\";\n\nexport interface Arguments {\n account: string;\n \"configuration-file\": string;\n \"tunnel-id\": string;\n authToken: string;\n}\n\nexport async function updateServices(argv: Arguments) {\n // 2. Read the configuration file\n let contents;\n try {\n contents = await readFile(argv[\"configuration-file\"], \"utf-8\");\n } catch (err) {\n await printCriticalFailureToConsoleAndExit(\n `Error reading the configuration file at ${argv[\"configuration-file\"]}: ${err.message}}`\n );\n }\n\n // 3. Initiate a update for the tunnel\n const { account } = argv;\n const deleteResponse = await fetch(\n `${settings.ZUPLO_DEVELOPER_API_ENDPOINT}/v1/accounts/${account}/tunnels/${argv[\"tunnel-id\"]}/services-configuration`,\n {\n method: \"PUT\",\n headers: {\n // biome-ignore lint/style/useNamingConvention: External API property\n Authorization: `Bearer ${argv.authToken}`,\n \"Content-Type\": \"application/json\",\n },\n body: contents,\n }\n );\n\n if (deleteResponse.ok) {\n const provisioningOperation: ProvisioningOperation =\n await deleteResponse.json();\n printDiagnosticsToConsole(\n `Updating services on tunnel ${argv[\"tunnel-id\"]} on account ${account}...`\n );\n\n // 3. Poll for status\n const polledProvisioningOperation = await pollProvisioningOperation({\n argv,\n account,\n provisioningOperationId: provisioningOperation.id,\n });\n\n if (polledProvisioningOperation.status === \"success\") {\n await printResultToConsoleAndExitGracefully(\n `Tunnel ${argv[\"tunnel-id\"]} updated successfully.`\n );\n } else {\n printDiagnosticsToConsole(polledProvisioningOperation.details);\n await printCriticalFailureToConsoleAndExit(\n `Tunnel ${argv[\"tunnel-id\"]} failed to update. Here's the error: ${polledProvisioningOperation.message}`\n );\n }\n } else {\n const response = textOrJson(await deleteResponse.text());\n logger.error(\n {\n status: deleteResponse.status,\n statusText: deleteResponse.statusText,\n response,\n },\n \"Failed to update tunnel for account\"\n );\n printDiagnosticsToConsole(\n \"Error: Failed to update the tunnel for your account. Check the arguments.\",\n response\n );\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"poll-provisioning-operations.d.ts","sourceRoot":"","sources":["../../../../src/tunnel/services/update/poll-provisioning-operations.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAQzC,wBAAsB,yBAAyB,CAAC,IAAI,EAAE;IACpD,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,uBAAuB,EAAE,MAAM,CAAC;CACjC,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAuDjC"}
1
+ {"version":3,"file":"poll-provisioning-operations.d.ts","sourceRoot":"","sources":["../../../../src/tunnel/services/update/poll-provisioning-operations.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAQzC,wBAAsB,yBAAyB,CAAC,IAAI,EAAE;IACpD,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,uBAAuB,EAAE,MAAM,CAAC;CACjC,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAwDjC"}
@@ -1 +1 @@
1
- {"version":3,"file":"poll-provisioning-operations.js","sourceRoot":"","sources":["../../../../src/tunnel/services/update/poll-provisioning-operations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EACL,yBAAyB,EACzB,UAAU,GACX,MAAM,2BAA2B,CAAC;AACnC,OAAO,QAAQ,MAAM,6BAA6B,CAAC;AAInD,SAAS,IAAI,CACX,WAAmB,QAAQ,CAAC,0BAA0B;IAEtD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,IAI/C;IACC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;IACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAExC,KACE,IAAI,SAAS,GAAG,CAAC,EACjB,SAAS,GAAG,QAAQ,CAAC,wBAAwB,EAC7C,SAAS,EAAE,EACX,CAAC;QACD,yBAAyB,CACvB,iDAAiD,SAAS,IAAI,QAAQ,CAAC,wBAAwB,GAAG,CACnG,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,GAAG,QAAQ,CAAC,4BAA4B,gBAAgB,IAAI,CAAC,OAAO,YAAY,QAAQ,4BAA4B,IAAI,CAAC,uBAAuB,EAAE,EAClJ;YACE,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,SAAS,EAAE;aACrC;SACF,CACF,CAAC;QAEF,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;YAChB,MAAM,qBAAqB,GACzB,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACxB,QAAQ,qBAAqB,CAAC,MAAM,EAAE,CAAC;gBACrC,KAAK,OAAO;oBACV,OAAO,qBAAqB,CAAC;gBAC/B,KAAK,aAAa;oBAChB,MAAM,IAAI,EAAE,CAAC;oBACb,SAAS;gBACX,KAAK,SAAS;oBACZ,OAAO,qBAAqB,CAAC;YACjC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CACV;gBACE,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;gBAC/B,QAAQ,EAAE,UAAU,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;aAC5C,EACD,8EAA8E,CAC/E,CAAC;YACF,MAAM,IAAI,KAAK,CACb,oFAAoF,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAC7H,CAAC;QACJ,CAAC;IACH,CAAC;IAID,MAAM,IAAI,KAAK,CACb,kEAAkE,CACnE,CAAC;AACJ,CAAC","sourcesContent":["import { logger } from \"../../../common/logger.js\";\nimport {\n printDiagnosticsToConsole,\n textOrJson,\n} from \"../../../common/output.js\";\nimport settings from \"../../../common/settings.js\";\nimport { ProvisioningOperation } from \"../../models.js\";\nimport { Arguments } from \"./handler.js\";\n\nfunction wait(\n duration: number = settings.PROVISIONING_POLL_INTERVAL\n): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, duration));\n}\n\nexport async function pollProvisioningOperation(args: {\n argv: Arguments;\n account: string;\n provisioningOperationId: string;\n}): Promise<ProvisioningOperation> {\n const authToken = args.argv.authToken;\n const tunnelId = args.argv[\"tunnel-id\"];\n\n for (\n let pollRetry = 0;\n pollRetry < settings.MAX_PROVISIONING_RETRIES;\n pollRetry++\n ) {\n printDiagnosticsToConsole(\n `Polling for provisioning operation status... (${pollRetry}/${settings.MAX_PROVISIONING_RETRIES})`\n );\n\n const response = await fetch(\n `${settings.ZUPLO_DEVELOPER_API_ENDPOINT}/v1/accounts/${args.account}/tunnels/${tunnelId}/provisioning-operations/${args.provisioningOperationId}`,\n {\n method: \"GET\",\n headers: {\n Authorization: `Bearer ${authToken}`,\n },\n }\n );\n\n if (response.ok) {\n const provisioningOperation: ProvisioningOperation =\n await response.json();\n switch (provisioningOperation.status) {\n case \"error\":\n return provisioningOperation;\n case \"in-progress\":\n await wait();\n continue;\n case \"success\":\n return provisioningOperation;\n }\n } else {\n logger.error(\n {\n status: response.status,\n statusText: response.statusText,\n response: textOrJson(await response.text()),\n },\n \"Unexpected error from server while polling for provisioning operation status\"\n );\n throw new Error(\n `Unexpected response from server while polling for provisioning operation status: ${response.status} ${response.statusText}`\n );\n }\n }\n\n // We will not get here because we will always execute the loop at least once\n // This is to appease the TypeScript compiler\n throw new Error(\n \"Unexpected error while polling for provisioning operation status\"\n );\n}\n"]}
1
+ {"version":3,"file":"poll-provisioning-operations.js","sourceRoot":"","sources":["../../../../src/tunnel/services/update/poll-provisioning-operations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACnD,OAAO,EACL,yBAAyB,EACzB,UAAU,GACX,MAAM,2BAA2B,CAAC;AACnC,OAAO,QAAQ,MAAM,6BAA6B,CAAC;AAInD,SAAS,IAAI,CACX,WAAmB,QAAQ,CAAC,0BAA0B;IAEtD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,IAI/C;IACC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;IACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAExC,KACE,IAAI,SAAS,GAAG,CAAC,EACjB,SAAS,GAAG,QAAQ,CAAC,wBAAwB,EAC7C,SAAS,EAAE,EACX,CAAC;QACD,yBAAyB,CACvB,iDAAiD,SAAS,IAAI,QAAQ,CAAC,wBAAwB,GAAG,CACnG,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,GAAG,QAAQ,CAAC,4BAA4B,gBAAgB,IAAI,CAAC,OAAO,YAAY,QAAQ,4BAA4B,IAAI,CAAC,uBAAuB,EAAE,EAClJ;YACE,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBAEP,aAAa,EAAE,UAAU,SAAS,EAAE;aACrC;SACF,CACF,CAAC;QAEF,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;YAChB,MAAM,qBAAqB,GACzB,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACxB,QAAQ,qBAAqB,CAAC,MAAM,EAAE,CAAC;gBACrC,KAAK,OAAO;oBACV,OAAO,qBAAqB,CAAC;gBAC/B,KAAK,aAAa;oBAChB,MAAM,IAAI,EAAE,CAAC;oBACb,SAAS;gBACX,KAAK,SAAS;oBACZ,OAAO,qBAAqB,CAAC;YACjC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CACV;gBACE,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;gBAC/B,QAAQ,EAAE,UAAU,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;aAC5C,EACD,8EAA8E,CAC/E,CAAC;YACF,MAAM,IAAI,KAAK,CACb,oFAAoF,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAC7H,CAAC;QACJ,CAAC;IACH,CAAC;IAID,MAAM,IAAI,KAAK,CACb,kEAAkE,CACnE,CAAC;AACJ,CAAC","sourcesContent":["import { logger } from \"../../../common/logger.js\";\nimport {\n printDiagnosticsToConsole,\n textOrJson,\n} from \"../../../common/output.js\";\nimport settings from \"../../../common/settings.js\";\nimport { ProvisioningOperation } from \"../../models.js\";\nimport { Arguments } from \"./handler.js\";\n\nfunction wait(\n duration: number = settings.PROVISIONING_POLL_INTERVAL\n): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, duration));\n}\n\nexport async function pollProvisioningOperation(args: {\n argv: Arguments;\n account: string;\n provisioningOperationId: string;\n}): Promise<ProvisioningOperation> {\n const authToken = args.argv.authToken;\n const tunnelId = args.argv[\"tunnel-id\"];\n\n for (\n let pollRetry = 0;\n pollRetry < settings.MAX_PROVISIONING_RETRIES;\n pollRetry++\n ) {\n printDiagnosticsToConsole(\n `Polling for provisioning operation status... (${pollRetry}/${settings.MAX_PROVISIONING_RETRIES})`\n );\n\n const response = await fetch(\n `${settings.ZUPLO_DEVELOPER_API_ENDPOINT}/v1/accounts/${args.account}/tunnels/${tunnelId}/provisioning-operations/${args.provisioningOperationId}`,\n {\n method: \"GET\",\n headers: {\n // biome-ignore lint/style/useNamingConvention: External API property\n Authorization: `Bearer ${authToken}`,\n },\n }\n );\n\n if (response.ok) {\n const provisioningOperation: ProvisioningOperation =\n await response.json();\n switch (provisioningOperation.status) {\n case \"error\":\n return provisioningOperation;\n case \"in-progress\":\n await wait();\n continue;\n case \"success\":\n return provisioningOperation;\n }\n } else {\n logger.error(\n {\n status: response.status,\n statusText: response.statusText,\n response: textOrJson(await response.text()),\n },\n \"Unexpected error from server while polling for provisioning operation status\"\n );\n throw new Error(\n `Unexpected response from server while polling for provisioning operation status: ${response.status} ${response.statusText}`\n );\n }\n }\n\n // We will not get here because we will always execute the loop at least once\n // This is to appease the TypeScript compiler\n throw new Error(\n \"Unexpected error while polling for provisioning operation status\"\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/variable/create/handler.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,SAAS,EAAY,MAAM,cAAc,CAAC;AAEnD,wBAAsB,MAAM,CAAC,IAAI,EAAE,SAAS,iBAwC3C"}
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/variable/create/handler.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,SAAS,EAAY,MAAM,cAAc,CAAC;AAEnD,wBAAsB,MAAM,CAAC,IAAI,EAAE,SAAS,iBAyC3C"}
@@ -17,7 +17,7 @@ export async function create(argv) {
17
17
  });
18
18
  if (createResponse.ok) {
19
19
  const variable = await createResponse.json();
20
- printResultToConsole(variable.name + " created successfully");
20
+ printResultToConsole(`${variable.name} created successfully`);
21
21
  }
22
22
  else {
23
23
  const problem = textOrJson(await createResponse.text());
@@ -1 +1 @@
1
- {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/variable/create/handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EACL,yBAAyB,EACzB,oBAAoB,EACpB,UAAU,GACX,MAAM,wBAAwB,CAAC;AAChC,OAAO,QAAQ,MAAM,0BAA0B,CAAC;AAGhD,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAAe;IAC1C,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAClC,MAAM,cAAc,GAAG,MAAM,KAAK,CAChC,GACE,QAAQ,CAAC,4BACX,gBAAgB,OAAO,aAAa,OAAO,aAAa,kBAAkB,CACxE,IAAI,CAAC,QAAQ,CAAC,CACf,YAAY,EACb;QACE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,IAAI,CAAC,SAAS,EAAE;YACzC,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;YAClB,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC;YAC3B,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC;SACrB,CAAC;KACH,CACF,CAAC;IAEF,IAAI,cAAc,CAAC,EAAE,EAAE,CAAC;QACtB,MAAM,QAAQ,GAAa,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC;QACvD,oBAAoB,CAAC,QAAQ,CAAC,IAAI,GAAG,uBAAuB,CAAC,CAAC;IAChE,CAAC;SAAM,CAAC;QACN,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;QACxD,MAAM,CAAC,KAAK,CACV;YACE,MAAM,EAAE,cAAc,CAAC,MAAM;YAC7B,UAAU,EAAE,cAAc,CAAC,UAAU;YACrC,QAAQ,EAAE,OAAO;SAClB,EACD,2BAA2B,CAC5B,CAAC;QACF,yBAAyB,CACvB,wDAAwD,EACxD,OAAO,CACR,CAAC;IACJ,CAAC;AACH,CAAC","sourcesContent":["import { logger } from \"../../common/logger.js\";\nimport {\n printDiagnosticsToConsole,\n printResultToConsole,\n textOrJson,\n} from \"../../common/output.js\";\nimport settings from \"../../common/settings.js\";\nimport { Arguments, Variable } from \"../models.js\";\n\nexport async function create(argv: Arguments) {\n const { account, project } = argv;\n const createResponse = await fetch(\n `${\n settings.ZUPLO_DEVELOPER_API_ENDPOINT\n }/v1/accounts/${account}/projects/${project}/branches/${encodeURIComponent(\n argv[\"branch\"]\n )}/variables`,\n {\n method: \"POST\",\n headers: {\n Authorization: `Bearer ${argv.authToken}`,\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n name: argv[\"name\"],\n isSecret: argv[\"is-secret\"],\n value: argv[\"value\"],\n }),\n }\n );\n\n if (createResponse.ok) {\n const variable: Variable = await createResponse.json();\n printResultToConsole(variable.name + \" created successfully\");\n } else {\n const problem = textOrJson(await createResponse.text());\n logger.error(\n {\n status: createResponse.status,\n statusText: createResponse.statusText,\n response: problem,\n },\n \"Failed to create variable\"\n );\n printDiagnosticsToConsole(\n \"Error: Failed to create variable. Check the arguments.\",\n problem\n );\n }\n}\n"]}
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/variable/create/handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EACL,yBAAyB,EACzB,oBAAoB,EACpB,UAAU,GACX,MAAM,wBAAwB,CAAC;AAChC,OAAO,QAAQ,MAAM,0BAA0B,CAAC;AAGhD,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAAe;IAC1C,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAClC,MAAM,cAAc,GAAG,MAAM,KAAK,CAChC,GACE,QAAQ,CAAC,4BACX,gBAAgB,OAAO,aAAa,OAAO,aAAa,kBAAkB,CACxE,IAAI,CAAC,QAAQ,CAAC,CACf,YAAY,EACb;QACE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YAEP,aAAa,EAAE,UAAU,IAAI,CAAC,SAAS,EAAE;YACzC,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;YAClB,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC;YAC3B,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC;SACrB,CAAC;KACH,CACF,CAAC;IAEF,IAAI,cAAc,CAAC,EAAE,EAAE,CAAC;QACtB,MAAM,QAAQ,GAAa,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC;QACvD,oBAAoB,CAAC,GAAG,QAAQ,CAAC,IAAI,uBAAuB,CAAC,CAAC;IAChE,CAAC;SAAM,CAAC;QACN,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;QACxD,MAAM,CAAC,KAAK,CACV;YACE,MAAM,EAAE,cAAc,CAAC,MAAM;YAC7B,UAAU,EAAE,cAAc,CAAC,UAAU;YACrC,QAAQ,EAAE,OAAO;SAClB,EACD,2BAA2B,CAC5B,CAAC;QACF,yBAAyB,CACvB,wDAAwD,EACxD,OAAO,CACR,CAAC;IACJ,CAAC;AACH,CAAC","sourcesContent":["import { logger } from \"../../common/logger.js\";\nimport {\n printDiagnosticsToConsole,\n printResultToConsole,\n textOrJson,\n} from \"../../common/output.js\";\nimport settings from \"../../common/settings.js\";\nimport { Arguments, Variable } from \"../models.js\";\n\nexport async function create(argv: Arguments) {\n const { account, project } = argv;\n const createResponse = await fetch(\n `${\n settings.ZUPLO_DEVELOPER_API_ENDPOINT\n }/v1/accounts/${account}/projects/${project}/branches/${encodeURIComponent(\n argv[\"branch\"]\n )}/variables`,\n {\n method: \"POST\",\n headers: {\n // biome-ignore lint/style/useNamingConvention: External API property\n Authorization: `Bearer ${argv.authToken}`,\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n name: argv[\"name\"],\n isSecret: argv[\"is-secret\"],\n value: argv[\"value\"],\n }),\n }\n );\n\n if (createResponse.ok) {\n const variable: Variable = await createResponse.json();\n printResultToConsole(`${variable.name} created successfully`);\n } else {\n const problem = textOrJson(await createResponse.text());\n logger.error(\n {\n status: createResponse.status,\n statusText: createResponse.statusText,\n response: problem,\n },\n \"Failed to create variable\"\n );\n printDiagnosticsToConsole(\n \"Error: Failed to create variable. Check the arguments.\",\n problem\n );\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/variable/update/handler.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,SAAS,EAAY,MAAM,cAAc,CAAC;AAEnD,wBAAsB,MAAM,CAAC,IAAI,EAAE,SAAS,iBAsC3C"}
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/variable/update/handler.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,SAAS,EAAY,MAAM,cAAc,CAAC;AAEnD,wBAAsB,MAAM,CAAC,IAAI,EAAE,SAAS,iBAuC3C"}
@@ -15,7 +15,7 @@ export async function update(argv) {
15
15
  });
16
16
  if (updateResponse.ok) {
17
17
  const variable = await updateResponse.json();
18
- printResultToConsole(variable.name + " updated successfully");
18
+ printResultToConsole(`${variable.name} updated successfully`);
19
19
  }
20
20
  else {
21
21
  const problem = textOrJson(await updateResponse.text());
@@ -1 +1 @@
1
- {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/variable/update/handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EACL,yBAAyB,EACzB,oBAAoB,EACpB,UAAU,GACX,MAAM,wBAAwB,CAAC;AAChC,OAAO,QAAQ,MAAM,0BAA0B,CAAC;AAGhD,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAAe;IAC1C,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAClC,MAAM,cAAc,GAAG,MAAM,KAAK,CAChC,GACE,QAAQ,CAAC,4BACX,gBAAgB,OAAO,aAAa,OAAO,aAAa,kBAAkB,CACxE,IAAI,CAAC,QAAQ,CAAC,CACf,cAAc,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,EACjD;QACE,MAAM,EAAE,OAAO;QACf,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,IAAI,CAAC,SAAS,EAAE;YACzC,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC;SACrB,CAAC;KACH,CACF,CAAC;IAEF,IAAI,cAAc,CAAC,EAAE,EAAE,CAAC;QACtB,MAAM,QAAQ,GAAa,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC;QACvD,oBAAoB,CAAC,QAAQ,CAAC,IAAI,GAAG,uBAAuB,CAAC,CAAC;IAChE,CAAC;SAAM,CAAC;QACN,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;QACxD,MAAM,CAAC,KAAK,CACV;YACE,MAAM,EAAE,cAAc,CAAC,MAAM;YAC7B,UAAU,EAAE,cAAc,CAAC,UAAU;YACrC,QAAQ,EAAE,OAAO;SAClB,EACD,2BAA2B,CAC5B,CAAC;QACF,yBAAyB,CACvB,wDAAwD,EACxD,OAAO,CACR,CAAC;IACJ,CAAC;AACH,CAAC","sourcesContent":["import { logger } from \"../../common/logger.js\";\nimport {\n printDiagnosticsToConsole,\n printResultToConsole,\n textOrJson,\n} from \"../../common/output.js\";\nimport settings from \"../../common/settings.js\";\nimport { Arguments, Variable } from \"../models.js\";\n\nexport async function update(argv: Arguments) {\n const { account, project } = argv;\n const updateResponse = await fetch(\n `${\n settings.ZUPLO_DEVELOPER_API_ENDPOINT\n }/v1/accounts/${account}/projects/${project}/branches/${encodeURIComponent(\n argv[\"branch\"]\n )}/variables/${encodeURIComponent(argv[\"name\"])}`,\n {\n method: \"PATCH\",\n headers: {\n Authorization: `Bearer ${argv.authToken}`,\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n value: argv[\"value\"],\n }),\n }\n );\n\n if (updateResponse.ok) {\n const variable: Variable = await updateResponse.json();\n printResultToConsole(variable.name + \" updated successfully\");\n } else {\n const problem = textOrJson(await updateResponse.text());\n logger.error(\n {\n status: updateResponse.status,\n statusText: updateResponse.statusText,\n response: problem,\n },\n \"Failed to update variable\"\n );\n printDiagnosticsToConsole(\n \"Error: Failed to update variable. Check the arguments.\",\n problem\n );\n }\n}\n"]}
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/variable/update/handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EACL,yBAAyB,EACzB,oBAAoB,EACpB,UAAU,GACX,MAAM,wBAAwB,CAAC;AAChC,OAAO,QAAQ,MAAM,0BAA0B,CAAC;AAGhD,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAAe;IAC1C,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAClC,MAAM,cAAc,GAAG,MAAM,KAAK,CAChC,GACE,QAAQ,CAAC,4BACX,gBAAgB,OAAO,aAAa,OAAO,aAAa,kBAAkB,CACxE,IAAI,CAAC,QAAQ,CAAC,CACf,cAAc,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,EACjD;QACE,MAAM,EAAE,OAAO;QACf,OAAO,EAAE;YAEP,aAAa,EAAE,UAAU,IAAI,CAAC,SAAS,EAAE;YACzC,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC;SACrB,CAAC;KACH,CACF,CAAC;IAEF,IAAI,cAAc,CAAC,EAAE,EAAE,CAAC;QACtB,MAAM,QAAQ,GAAa,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC;QACvD,oBAAoB,CAAC,GAAG,QAAQ,CAAC,IAAI,uBAAuB,CAAC,CAAC;IAChE,CAAC;SAAM,CAAC;QACN,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;QACxD,MAAM,CAAC,KAAK,CACV;YACE,MAAM,EAAE,cAAc,CAAC,MAAM;YAC7B,UAAU,EAAE,cAAc,CAAC,UAAU;YACrC,QAAQ,EAAE,OAAO;SAClB,EACD,2BAA2B,CAC5B,CAAC;QACF,yBAAyB,CACvB,wDAAwD,EACxD,OAAO,CACR,CAAC;IACJ,CAAC;AACH,CAAC","sourcesContent":["import { logger } from \"../../common/logger.js\";\nimport {\n printDiagnosticsToConsole,\n printResultToConsole,\n textOrJson,\n} from \"../../common/output.js\";\nimport settings from \"../../common/settings.js\";\nimport { Arguments, Variable } from \"../models.js\";\n\nexport async function update(argv: Arguments) {\n const { account, project } = argv;\n const updateResponse = await fetch(\n `${\n settings.ZUPLO_DEVELOPER_API_ENDPOINT\n }/v1/accounts/${account}/projects/${project}/branches/${encodeURIComponent(\n argv[\"branch\"]\n )}/variables/${encodeURIComponent(argv[\"name\"])}`,\n {\n method: \"PATCH\",\n headers: {\n // biome-ignore lint/style/useNamingConvention: External API property\n Authorization: `Bearer ${argv.authToken}`,\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n value: argv[\"value\"],\n }),\n }\n );\n\n if (updateResponse.ok) {\n const variable: Variable = await updateResponse.json();\n printResultToConsole(`${variable.name} updated successfully`);\n } else {\n const problem = textOrJson(await updateResponse.text());\n logger.error(\n {\n status: updateResponse.status,\n statusText: updateResponse.statusText,\n response: problem,\n },\n \"Failed to update variable\"\n );\n printDiagnosticsToConsole(\n \"Error: Failed to update variable. Check the arguments.\",\n problem\n );\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zuplo/cli",
3
- "version": "6.60.21",
3
+ "version": "6.60.22",
4
4
  "repository": "https://github.com/zuplo/zuplo",
5
5
  "author": "Zuplo, Inc.",
6
6
  "type": "module",
@@ -29,9 +29,9 @@
29
29
  "@opentelemetry/api": "1.9.0",
30
30
  "@sentry/node": "9.22.0",
31
31
  "@swc/core": "1.10.18",
32
- "@zuplo/core": "6.60.21",
33
- "@zuplo/openapi-tools": "6.60.21",
34
- "@zuplo/runtime": "6.60.21",
32
+ "@zuplo/core": "6.60.22",
33
+ "@zuplo/openapi-tools": "6.60.22",
34
+ "@zuplo/runtime": "6.60.22",
35
35
  "as-table": "1.0.55",
36
36
  "chalk": "5.4.1",
37
37
  "chokidar": "3.5.3",
package/zup.js CHANGED
@@ -1,4 +1,4 @@
1
1
  #!/usr/bin/env -S node --no-warnings
2
- /* eslint-disable */
2
+
3
3
  process.removeAllListeners("warning");
4
4
  import "./dist/cli.js";