@zuplo/cli 6.63.34 → 6.63.35

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 (117) hide show
  1. package/dist/__tests__/archive-utils.test.js.map +1 -1
  2. package/dist/__tests__/import-openapi-utils.test.js +1 -1
  3. package/dist/__tests__/import-openapi-utils.test.js.map +1 -1
  4. package/dist/__tests__/import-openapi.test.js.map +1 -1
  5. package/dist/__tests__/integration/delete.integration.test.js +1 -1
  6. package/dist/__tests__/integration/delete.integration.test.js.map +1 -1
  7. package/dist/__tests__/integration/deploy.integration.test.js +1 -1
  8. package/dist/__tests__/integration/deploy.integration.test.js.map +1 -1
  9. package/dist/__tests__/integration/link.integration.test.js +1 -1
  10. package/dist/__tests__/integration/link.integration.test.js.map +1 -1
  11. package/dist/__tests__/integration/list.integration.test.js +1 -1
  12. package/dist/__tests__/integration/list.integration.test.js.map +1 -1
  13. package/dist/__tests__/integration/tunnel.integration.test.js +1 -1
  14. package/dist/__tests__/integration/tunnel.integration.test.js.map +1 -1
  15. package/dist/__tests__/integration/variable.integration.test.js +1 -1
  16. package/dist/__tests__/integration/variable.integration.test.js.map +1 -1
  17. package/dist/__tests__/populate.test.js +4 -4
  18. package/dist/__tests__/populate.test.js.map +1 -1
  19. package/dist/cli.js +2 -2
  20. package/dist/cli.js.map +1 -1
  21. package/dist/cmds/delete.js +2 -2
  22. package/dist/cmds/delete.js.map +1 -1
  23. package/dist/cmds/deploy.js +3 -3
  24. package/dist/cmds/deploy.js.map +1 -1
  25. package/dist/cmds/link.js +3 -3
  26. package/dist/cmds/link.js.map +1 -1
  27. package/dist/cmds/list.js +2 -2
  28. package/dist/cmds/list.js.map +1 -1
  29. package/dist/cmds/mtls-certificates/create.js +2 -2
  30. package/dist/cmds/mtls-certificates/create.js.map +1 -1
  31. package/dist/cmds/mtls-certificates/delete.js +2 -2
  32. package/dist/cmds/mtls-certificates/delete.js.map +1 -1
  33. package/dist/cmds/mtls-certificates/describe.js +2 -2
  34. package/dist/cmds/mtls-certificates/describe.js.map +1 -1
  35. package/dist/cmds/mtls-certificates/disable.js +2 -2
  36. package/dist/cmds/mtls-certificates/disable.js.map +1 -1
  37. package/dist/cmds/mtls-certificates/list.js +2 -2
  38. package/dist/cmds/mtls-certificates/list.js.map +1 -1
  39. package/dist/cmds/mtls-certificates/update.js +2 -2
  40. package/dist/cmds/mtls-certificates/update.js.map +1 -1
  41. package/dist/cmds/project/create.d.ts.map +1 -1
  42. package/dist/cmds/project/create.js +3 -3
  43. package/dist/cmds/project/create.js.map +1 -1
  44. package/dist/cmds/source/migrate.d.ts.map +1 -1
  45. package/dist/cmds/source/migrate.js +2 -2
  46. package/dist/cmds/source/migrate.js.map +1 -1
  47. package/dist/cmds/tunnel/create.js +2 -2
  48. package/dist/cmds/tunnel/create.js.map +1 -1
  49. package/dist/cmds/tunnel/delete.js +2 -2
  50. package/dist/cmds/tunnel/delete.js.map +1 -1
  51. package/dist/cmds/tunnel/describe.js +2 -2
  52. package/dist/cmds/tunnel/describe.js.map +1 -1
  53. package/dist/cmds/tunnel/list.js +2 -2
  54. package/dist/cmds/tunnel/list.js.map +1 -1
  55. package/dist/cmds/tunnel/rotate-token.js +2 -2
  56. package/dist/cmds/tunnel/rotate-token.js.map +1 -1
  57. package/dist/cmds/tunnel/services/describe.js +2 -2
  58. package/dist/cmds/tunnel/services/describe.js.map +1 -1
  59. package/dist/cmds/tunnel/services/update.js +2 -2
  60. package/dist/cmds/tunnel/services/update.js.map +1 -1
  61. package/dist/cmds/variable/create.js +2 -2
  62. package/dist/cmds/variable/create.js.map +1 -1
  63. package/dist/cmds/variable/update.js +2 -2
  64. package/dist/cmds/variable/update.js.map +1 -1
  65. package/dist/common/middleware/get-project-param.js +3 -3
  66. package/dist/common/middleware/get-project-param.js.map +1 -1
  67. package/dist/common/populate.d.ts.map +1 -1
  68. package/dist/common/populate.js.map +1 -1
  69. package/dist/common/utils/stringify-config.test.js +1 -1
  70. package/dist/common/utils/stringify-config.test.js.map +1 -1
  71. package/dist/common/worker-output.d.ts.map +1 -1
  72. package/dist/common/worker-output.js +1 -1
  73. package/dist/common/worker-output.js.map +1 -1
  74. package/dist/delete/handler.js +1 -1
  75. package/dist/delete/handler.js.map +1 -1
  76. package/dist/deploy/archive.js.map +1 -1
  77. package/dist/deploy/archive.test.js +2 -2
  78. package/dist/deploy/archive.test.js.map +1 -1
  79. package/dist/deploy/handler.d.ts.map +1 -1
  80. package/dist/deploy/handler.js +2 -2
  81. package/dist/deploy/handler.js.map +1 -1
  82. package/dist/dev/handler.js +1 -1
  83. package/dist/dev/handler.js.map +1 -1
  84. package/dist/editor/handler.js +2 -2
  85. package/dist/editor/handler.js.map +1 -1
  86. package/dist/login/login.js +1 -1
  87. package/dist/login/login.js.map +1 -1
  88. package/dist/open-api/convert/convert-engine.d.ts +1 -1
  89. package/dist/open-api/convert/convert-engine.d.ts.map +1 -1
  90. package/dist/open-api/convert/convert-engine.js.map +1 -1
  91. package/dist/open-api/convert/convert-engine.spec.js +2 -2
  92. package/dist/open-api/convert/convert-engine.spec.js.map +1 -1
  93. package/dist/open-api/convert/handler.js +2 -2
  94. package/dist/open-api/convert/handler.js.map +1 -1
  95. package/dist/open-api/convert/handler.spec.js +1 -1
  96. package/dist/open-api/convert/handler.spec.js.map +1 -1
  97. package/dist/open-api/merge/handler.d.ts.map +1 -1
  98. package/dist/open-api/merge/handler.js +1 -1
  99. package/dist/open-api/merge/handler.js.map +1 -1
  100. package/dist/open-api/merge/handler.spec.js +1 -1
  101. package/dist/open-api/merge/handler.spec.js.map +1 -1
  102. package/dist/open-api/merge/merge-engine.spec.js +2 -2
  103. package/dist/open-api/merge/merge-engine.spec.js.map +1 -1
  104. package/dist/open-api/merge/utils.js +1 -1
  105. package/dist/open-api/merge/utils.js.map +1 -1
  106. package/dist/open-api/overlay/handler.js +1 -1
  107. package/dist/open-api/overlay/handler.js.map +1 -1
  108. package/dist/open-api/overlay/handler.spec.js +1 -1
  109. package/dist/open-api/overlay/handler.spec.js.map +1 -1
  110. package/dist/open-api/overlay/overlay-engine.d.ts.map +1 -1
  111. package/dist/open-api/overlay/overlay-engine.js.map +1 -1
  112. package/dist/open-api/overlay/overlay-engine.spec.js +2 -2
  113. package/dist/open-api/overlay/overlay-engine.spec.js.map +1 -1
  114. package/dist/source/migrate/dev-portal/handler.d.ts.map +1 -1
  115. package/dist/source/migrate/dev-portal/handler.js +7 -4
  116. package/dist/source/migrate/dev-portal/handler.js.map +1 -1
  117. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../../src/cmds/source/migrate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,WAAW,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,gDAAgD,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AAG9E,MAAM,QAAQ,GAAG;IACf,QAAQ,EAAE,oBAAoB;IAC9B,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,KAAK;SACF,OAAO,CAAC;QACP,QAAQ,EACN,uEAAuE;QACzE,OAAO,EAAE,YAAY;QACrB,OAAO,EAAE,CAAC,KAAW,EAAE,EAAE,CACvB,KAAK;aACF,KAAK,CAAC,wCAAwC,CAAC;aAC/C,MAAM,CAAC,KAAK,EAAE;YACb,IAAI,EAAE,QAAQ;YACd,QAAQ,EACN,mEAAmE;YACrE,OAAO,EAAE,GAAG;YACZ,SAAS,EAAE,IAAI;SAChB,CAAC;aACD,MAAM,CAAC,OAAO,EAAE;YACf,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,mCAAmC;YAC7C,OAAO,EAAE,KAAK;SACf,CAAC;aACD,OAAO,CAAC;YACP;gBACE,8BAA8B;gBAC9B,uDAAuD;aACxD;YACD;gBACE,iDAAiD;gBACjD,oCAAoC;aACrC;YACD;gBACE,sCAAsC;gBACtC,4DAA4D;aAC7D;SACF,CAAC;aACD,UAAU,CAAC,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QACxC,OAAO,EAAE,KAAK,EAAE,IAAa,EAAE,EAAE;YAC/B,MAAM,YAAY,CAAC;gBACjB,IAAI;gBACJ,KAAK,EAAE,iCAAiC;aACzC,CAAC,CAAC;YACH,MAAM,gBAAgB,CAAC,IAAiB,CAAC,CAAC;QAC5C,CAAC;KACF,CAAC;SACD,IAAI,EAAE;IACX,OAAO,EAAE,YAAY;CACE,CAAC;AAE1B,eAAe,QAAQ,CAAC","sourcesContent":["import type { Argv, CommandModule } from \"yargs\";\nimport { groupHandler } from \"../../common/handler.js\";\nimport setBlocking from \"../../common/output.js\";\nimport { identify } from \"../../common/middleware/user-identification.js\";\nimport { captureEvent } from \"../../common/analytics/lib.js\";\nimport { migrateDevPortal } from \"../../source/migrate/dev-portal/handler.js\";\nimport type { Arguments } from \"../../source/migrate/dev-portal/types.js\";\n\nconst commands = {\n describe: \"Migration commands\",\n command: \"migrate\",\n builder: (yargs) =>\n yargs\n .command({\n describe:\n \"Migrates legacy dev portal configuration to the new dev portal format\",\n command: \"dev-portal\",\n builder: (yargs: Argv) =>\n yargs\n .usage(\"$0 source migrate dev-portal [options]\")\n .option(\"dir\", {\n type: \"string\",\n describe:\n \"The directory containing your Zuplo project and dev portal config\",\n default: \".\",\n normalize: true,\n })\n .option(\"force\", {\n type: \"boolean\",\n describe: \"Force overwrite of existing files\",\n default: false,\n })\n .example([\n [\n \"$0 source migrate dev-portal\",\n \"Migrate legacy dev portal configuration to new format\",\n ],\n [\n \"$0 source migrate dev-portal --dir ./my-project\",\n \"Specify the project directory path\",\n ],\n [\n \"$0 source migrate dev-portal --force\",\n \"Force overwrite existing dev portal files during migration\",\n ],\n ])\n .middleware([setBlocking, identify]),\n handler: async (argv: unknown) => {\n await captureEvent({\n argv,\n event: \"zuplo source migrate dev-portal\",\n });\n await migrateDevPortal(argv as Arguments);\n },\n })\n .help(),\n handler: groupHandler,\n} satisfies CommandModule;\n\nexport default commands;\n"]}
1
+ {"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../../src/cmds/source/migrate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,gDAAgD,CAAC;AAC1E,OAAO,WAAW,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AAG9E,MAAM,QAAQ,GAAG;IACf,QAAQ,EAAE,oBAAoB;IAC9B,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,KAAK;SACF,OAAO,CAAC;QACP,QAAQ,EACN,uEAAuE;QACzE,OAAO,EAAE,YAAY;QACrB,OAAO,EAAE,CAAC,KAAW,EAAE,EAAE,CACvB,KAAK;aACF,KAAK,CAAC,wCAAwC,CAAC;aAC/C,MAAM,CAAC,KAAK,EAAE;YACb,IAAI,EAAE,QAAQ;YACd,QAAQ,EACN,mEAAmE;YACrE,OAAO,EAAE,GAAG;YACZ,SAAS,EAAE,IAAI;SAChB,CAAC;aACD,MAAM,CAAC,OAAO,EAAE;YACf,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,mCAAmC;YAC7C,OAAO,EAAE,KAAK;SACf,CAAC;aACD,OAAO,CAAC;YACP;gBACE,8BAA8B;gBAC9B,uDAAuD;aACxD;YACD;gBACE,iDAAiD;gBACjD,oCAAoC;aACrC;YACD;gBACE,sCAAsC;gBACtC,4DAA4D;aAC7D;SACF,CAAC;aACD,UAAU,CAAC,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QACxC,OAAO,EAAE,KAAK,EAAE,IAAa,EAAE,EAAE;YAC/B,MAAM,YAAY,CAAC;gBACjB,IAAI;gBACJ,KAAK,EAAE,iCAAiC;aACzC,CAAC,CAAC;YACH,MAAM,gBAAgB,CAAC,IAAiB,CAAC,CAAC;QAC5C,CAAC;KACF,CAAC;SACD,IAAI,EAAE;IACX,OAAO,EAAE,YAAY;CACE,CAAC;AAE1B,eAAe,QAAQ,CAAC","sourcesContent":["import type { Argv, CommandModule } from \"yargs\";\nimport { captureEvent } from \"../../common/analytics/lib.js\";\nimport { groupHandler } from \"../../common/handler.js\";\nimport { identify } from \"../../common/middleware/user-identification.js\";\nimport setBlocking from \"../../common/output.js\";\nimport { migrateDevPortal } from \"../../source/migrate/dev-portal/handler.js\";\nimport type { Arguments } from \"../../source/migrate/dev-portal/types.js\";\n\nconst commands = {\n describe: \"Migration commands\",\n command: \"migrate\",\n builder: (yargs) =>\n yargs\n .command({\n describe:\n \"Migrates legacy dev portal configuration to the new dev portal format\",\n command: \"dev-portal\",\n builder: (yargs: Argv) =>\n yargs\n .usage(\"$0 source migrate dev-portal [options]\")\n .option(\"dir\", {\n type: \"string\",\n describe:\n \"The directory containing your Zuplo project and dev portal config\",\n default: \".\",\n normalize: true,\n })\n .option(\"force\", {\n type: \"boolean\",\n describe: \"Force overwrite of existing files\",\n default: false,\n })\n .example([\n [\n \"$0 source migrate dev-portal\",\n \"Migrate legacy dev portal configuration to new format\",\n ],\n [\n \"$0 source migrate dev-portal --dir ./my-project\",\n \"Specify the project directory path\",\n ],\n [\n \"$0 source migrate dev-portal --force\",\n \"Force overwrite existing dev portal files during migration\",\n ],\n ])\n .middleware([setBlocking, identify]),\n handler: async (argv: unknown) => {\n await captureEvent({\n argv,\n event: \"zuplo source migrate dev-portal\",\n });\n await migrateDevPortal(argv as Arguments);\n },\n })\n .help(),\n handler: groupHandler,\n} satisfies CommandModule;\n\nexport default commands;\n"]}
@@ -1,10 +1,10 @@
1
1
  import { captureEvent } from "../../common/analytics/lib.js";
2
2
  import { authenticate } from "../../common/middleware/authentication.js";
3
- import setBlocking from "../../common/output.js";
4
- import { create } from "../../tunnel/create/handler.js";
5
3
  import { fetchAccount } from "../../common/middleware/get-account-param.js";
6
4
  import { configure } from "../../common/middleware/user-configuration.js";
7
5
  import { identify } from "../../common/middleware/user-identification.js";
6
+ import setBlocking from "../../common/output.js";
7
+ import { create } from "../../tunnel/create/handler.js";
8
8
  export default {
9
9
  desc: "Creates a new tunnel in your account",
10
10
  command: "create",
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/cmds/tunnel/create.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AACzE,OAAO,WAAW,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAa,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,gDAAgD,CAAC;AAE1E,eAAe;IACb,IAAI,EAAE,sCAAsC;IAC5C,OAAO,EAAE,QAAQ;IACjB,OAAO,EAAE,CAAC,KAAW,EAAiB,EAAE;QACtC,OAAO,KAAK;aACT,KAAK,CAAC,iDAAiD,CAAC;aACxD,MAAM,CAAC,aAAa,EAAE;YACrB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,kCAAkC;SAC7C,CAAC;aACD,MAAM,CAAC,SAAS,EAAE;YACjB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,wBAAwB;YAClC,MAAM,EAAE,SAAS;SAClB,CAAC;aACD,MAAM,CAAC,SAAS,EAAE;YACjB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,kBAAkB;SAC7B,CAAC;aACD,YAAY,CAAC,CAAC,aAAa,CAAC,CAAC;aAC7B,YAAY,CAAC,SAAS,EAAE,4CAA4C,CAAC;aACrE,OAAO,CAAC;YACP,CAAC,0CAA0C,EAAE,qBAAqB,CAAC;YACnE;gBACE,uEAAuE;gBACvE,gCAAgC;aACjC;SACF,CAAC;aACD,UAAU,CAAC;YACV,WAAW;YACX,YAAY;YACZ,SAAS;YACT,YAAY;YACZ,QAAQ;SACT,CAAC,CAAC;IACP,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAa,EAAE,EAAE;QAC/B,MAAM,YAAY,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,qBAAqB,EAAE,CAAC,CAAC;QAC3D,MAAM,MAAM,CAAC,IAAiB,CAAC,CAAC;IAClC,CAAC;CACF,CAAC","sourcesContent":["import { Argv } from \"yargs\";\nimport { captureEvent } from \"../../common/analytics/lib.js\";\nimport { authenticate } from \"../../common/middleware/authentication.js\";\nimport setBlocking from \"../../common/output.js\";\nimport { Arguments, create } from \"../../tunnel/create/handler.js\";\nimport { fetchAccount } from \"../../common/middleware/get-account-param.js\";\nimport { configure } from \"../../common/middleware/user-configuration.js\";\nimport { identify } from \"../../common/middleware/user-identification.js\";\n\nexport default {\n desc: \"Creates a new tunnel in your account\",\n command: \"create\",\n builder: (yargs: Argv): Argv<unknown> => {\n return yargs\n .usage(\"$0 tunnel create --tunnel-name <name> [options]\")\n .option(\"tunnel-name\", {\n type: \"string\",\n describe: \"The name of the tunnel to create\",\n })\n .option(\"api-key\", {\n type: \"string\",\n describe: \"The API Key from Zuplo\",\n envVar: \"API_KEY\",\n })\n .option(\"account\", {\n type: \"string\",\n describe: \"The account name\",\n })\n .demandOption([\"tunnel-name\"])\n .demandOption(\"api-key\", \"You must provide an API key with --api-key\")\n .example([\n [\"$0 tunnel create --tunnel-name my-tunnel\", \"Create a new tunnel\"],\n [\n \"$0 tunnel create --tunnel-name production-tunnel --account my-account\",\n \"Explicitly specify the account\",\n ],\n ])\n .middleware([\n setBlocking,\n authenticate,\n configure,\n fetchAccount,\n identify,\n ]);\n },\n handler: async (argv: unknown) => {\n await captureEvent({ argv, event: \"zuplo tunnel create\" });\n await create(argv as Arguments);\n },\n};\n"]}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/cmds/tunnel/create.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,gDAAgD,CAAC;AAC1E,OAAO,WAAW,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAa,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAEnE,eAAe;IACb,IAAI,EAAE,sCAAsC;IAC5C,OAAO,EAAE,QAAQ;IACjB,OAAO,EAAE,CAAC,KAAW,EAAiB,EAAE;QACtC,OAAO,KAAK;aACT,KAAK,CAAC,iDAAiD,CAAC;aACxD,MAAM,CAAC,aAAa,EAAE;YACrB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,kCAAkC;SAC7C,CAAC;aACD,MAAM,CAAC,SAAS,EAAE;YACjB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,wBAAwB;YAClC,MAAM,EAAE,SAAS;SAClB,CAAC;aACD,MAAM,CAAC,SAAS,EAAE;YACjB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,kBAAkB;SAC7B,CAAC;aACD,YAAY,CAAC,CAAC,aAAa,CAAC,CAAC;aAC7B,YAAY,CAAC,SAAS,EAAE,4CAA4C,CAAC;aACrE,OAAO,CAAC;YACP,CAAC,0CAA0C,EAAE,qBAAqB,CAAC;YACnE;gBACE,uEAAuE;gBACvE,gCAAgC;aACjC;SACF,CAAC;aACD,UAAU,CAAC;YACV,WAAW;YACX,YAAY;YACZ,SAAS;YACT,YAAY;YACZ,QAAQ;SACT,CAAC,CAAC;IACP,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAa,EAAE,EAAE;QAC/B,MAAM,YAAY,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,qBAAqB,EAAE,CAAC,CAAC;QAC3D,MAAM,MAAM,CAAC,IAAiB,CAAC,CAAC;IAClC,CAAC;CACF,CAAC","sourcesContent":["import { Argv } from \"yargs\";\nimport { captureEvent } from \"../../common/analytics/lib.js\";\nimport { authenticate } from \"../../common/middleware/authentication.js\";\nimport { fetchAccount } from \"../../common/middleware/get-account-param.js\";\nimport { configure } from \"../../common/middleware/user-configuration.js\";\nimport { identify } from \"../../common/middleware/user-identification.js\";\nimport setBlocking from \"../../common/output.js\";\nimport { Arguments, create } from \"../../tunnel/create/handler.js\";\n\nexport default {\n desc: \"Creates a new tunnel in your account\",\n command: \"create\",\n builder: (yargs: Argv): Argv<unknown> => {\n return yargs\n .usage(\"$0 tunnel create --tunnel-name <name> [options]\")\n .option(\"tunnel-name\", {\n type: \"string\",\n describe: \"The name of the tunnel to create\",\n })\n .option(\"api-key\", {\n type: \"string\",\n describe: \"The API Key from Zuplo\",\n envVar: \"API_KEY\",\n })\n .option(\"account\", {\n type: \"string\",\n describe: \"The account name\",\n })\n .demandOption([\"tunnel-name\"])\n .demandOption(\"api-key\", \"You must provide an API key with --api-key\")\n .example([\n [\"$0 tunnel create --tunnel-name my-tunnel\", \"Create a new tunnel\"],\n [\n \"$0 tunnel create --tunnel-name production-tunnel --account my-account\",\n \"Explicitly specify the account\",\n ],\n ])\n .middleware([\n setBlocking,\n authenticate,\n configure,\n fetchAccount,\n identify,\n ]);\n },\n handler: async (argv: unknown) => {\n await captureEvent({ argv, event: \"zuplo tunnel create\" });\n await create(argv as Arguments);\n },\n};\n"]}
@@ -1,10 +1,10 @@
1
1
  import { captureEvent } from "../../common/analytics/lib.js";
2
2
  import { authenticate } from "../../common/middleware/authentication.js";
3
+ import { fetchAccount } from "../../common/middleware/get-account-param.js";
4
+ import { configure } from "../../common/middleware/user-configuration.js";
3
5
  import { identify } from "../../common/middleware/user-identification.js";
4
6
  import setBlocking from "../../common/output.js";
5
7
  import { deleteTunnel } from "../../tunnel/delete/handler.js";
6
- import { configure } from "../../common/middleware/user-configuration.js";
7
- import { fetchAccount } from "../../common/middleware/get-account-param.js";
8
8
  export default {
9
9
  desc: "Deletes a tunnel in your account",
10
10
  command: "delete",
@@ -1 +1 @@
1
- {"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../src/cmds/tunnel/delete.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,gDAAgD,CAAC;AAC1E,OAAO,WAAW,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAa,YAAY,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAC;AAE5E,eAAe;IACb,IAAI,EAAE,kCAAkC;IACxC,OAAO,EAAE,QAAQ;IACjB,OAAO,EAAE,CAAC,KAAW,EAAiB,EAAE;QACtC,OAAO,KAAK;aACT,KAAK,CAAC,4BAA4B,CAAC;aACnC,MAAM,CAAC,SAAS,EAAE;YACjB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,wBAAwB;YAClC,MAAM,EAAE,SAAS;SAClB,CAAC;aACD,YAAY,CAAC,SAAS,EAAE,4CAA4C,CAAC;aACrE,OAAO,CAAC;YACP;gBACE,kBAAkB;gBAClB,oDAAoD;aACrD;YACD;gBACE,uCAAuC;gBACvC,gCAAgC;aACjC;SACF,CAAC;aACD,UAAU,CAAC;YACV,WAAW;YACX,YAAY;YACZ,SAAS;YACT,YAAY;YACZ,QAAQ;SACT,CAAC,CAAC;IACP,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAa,EAAE,EAAE;QAC/B,MAAM,YAAY,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,qBAAqB,EAAE,CAAC,CAAC;QAC3D,MAAM,YAAY,CAAC,IAAiB,CAAC,CAAC;IACxC,CAAC;CACF,CAAC","sourcesContent":["import { Argv } from \"yargs\";\nimport { captureEvent } from \"../../common/analytics/lib.js\";\nimport { authenticate } from \"../../common/middleware/authentication.js\";\nimport { identify } from \"../../common/middleware/user-identification.js\";\nimport setBlocking from \"../../common/output.js\";\nimport { Arguments, deleteTunnel } from \"../../tunnel/delete/handler.js\";\nimport { configure } from \"../../common/middleware/user-configuration.js\";\nimport { fetchAccount } from \"../../common/middleware/get-account-param.js\";\n\nexport default {\n desc: \"Deletes a tunnel in your account\",\n command: \"delete\",\n builder: (yargs: Argv): Argv<unknown> => {\n return yargs\n .usage(\"$0 tunnel delete [options]\")\n .option(\"api-key\", {\n type: \"string\",\n describe: \"The API Key from Zuplo\",\n envVar: \"API_KEY\",\n })\n .demandOption(\"api-key\", \"You must provide an API key with --api-key\")\n .example([\n [\n \"$0 tunnel delete\",\n \"Delete a tunnel (will prompt for tunnel selection)\",\n ],\n [\n \"$0 tunnel delete --account my-account\",\n \"Explicitly specify the account\",\n ],\n ])\n .middleware([\n setBlocking,\n authenticate,\n configure,\n fetchAccount,\n identify,\n ]);\n },\n handler: async (argv: unknown) => {\n await captureEvent({ argv, event: \"zuplo tunnel delete\" });\n await deleteTunnel(argv as Arguments);\n },\n};\n"]}
1
+ {"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../src/cmds/tunnel/delete.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,gDAAgD,CAAC;AAC1E,OAAO,WAAW,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAa,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAEzE,eAAe;IACb,IAAI,EAAE,kCAAkC;IACxC,OAAO,EAAE,QAAQ;IACjB,OAAO,EAAE,CAAC,KAAW,EAAiB,EAAE;QACtC,OAAO,KAAK;aACT,KAAK,CAAC,4BAA4B,CAAC;aACnC,MAAM,CAAC,SAAS,EAAE;YACjB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,wBAAwB;YAClC,MAAM,EAAE,SAAS;SAClB,CAAC;aACD,YAAY,CAAC,SAAS,EAAE,4CAA4C,CAAC;aACrE,OAAO,CAAC;YACP;gBACE,kBAAkB;gBAClB,oDAAoD;aACrD;YACD;gBACE,uCAAuC;gBACvC,gCAAgC;aACjC;SACF,CAAC;aACD,UAAU,CAAC;YACV,WAAW;YACX,YAAY;YACZ,SAAS;YACT,YAAY;YACZ,QAAQ;SACT,CAAC,CAAC;IACP,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAa,EAAE,EAAE;QAC/B,MAAM,YAAY,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,qBAAqB,EAAE,CAAC,CAAC;QAC3D,MAAM,YAAY,CAAC,IAAiB,CAAC,CAAC;IACxC,CAAC;CACF,CAAC","sourcesContent":["import { Argv } from \"yargs\";\nimport { captureEvent } from \"../../common/analytics/lib.js\";\nimport { authenticate } from \"../../common/middleware/authentication.js\";\nimport { fetchAccount } from \"../../common/middleware/get-account-param.js\";\nimport { configure } from \"../../common/middleware/user-configuration.js\";\nimport { identify } from \"../../common/middleware/user-identification.js\";\nimport setBlocking from \"../../common/output.js\";\nimport { Arguments, deleteTunnel } from \"../../tunnel/delete/handler.js\";\n\nexport default {\n desc: \"Deletes a tunnel in your account\",\n command: \"delete\",\n builder: (yargs: Argv): Argv<unknown> => {\n return yargs\n .usage(\"$0 tunnel delete [options]\")\n .option(\"api-key\", {\n type: \"string\",\n describe: \"The API Key from Zuplo\",\n envVar: \"API_KEY\",\n })\n .demandOption(\"api-key\", \"You must provide an API key with --api-key\")\n .example([\n [\n \"$0 tunnel delete\",\n \"Delete a tunnel (will prompt for tunnel selection)\",\n ],\n [\n \"$0 tunnel delete --account my-account\",\n \"Explicitly specify the account\",\n ],\n ])\n .middleware([\n setBlocking,\n authenticate,\n configure,\n fetchAccount,\n identify,\n ]);\n },\n handler: async (argv: unknown) => {\n await captureEvent({ argv, event: \"zuplo tunnel delete\" });\n await deleteTunnel(argv as Arguments);\n },\n};\n"]}
@@ -1,10 +1,10 @@
1
1
  import { captureEvent } from "../../common/analytics/lib.js";
2
2
  import { authenticate } from "../../common/middleware/authentication.js";
3
+ import { fetchAccount } from "../../common/middleware/get-account-param.js";
4
+ import { configure } from "../../common/middleware/user-configuration.js";
3
5
  import { identify } from "../../common/middleware/user-identification.js";
4
6
  import setBlocking from "../../common/output.js";
5
7
  import { describe } from "../../tunnel/describe/handler.js";
6
- import { configure } from "../../common/middleware/user-configuration.js";
7
- import { fetchAccount } from "../../common/middleware/get-account-param.js";
8
8
  export default {
9
9
  desc: "Describes a tunnel in your account",
10
10
  command: "describe",
@@ -1 +1 @@
1
- {"version":3,"file":"describe.js","sourceRoot":"","sources":["../../../src/cmds/tunnel/describe.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,gDAAgD,CAAC;AAC1E,OAAO,WAAW,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAa,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAC;AAE5E,eAAe;IACb,IAAI,EAAE,oCAAoC;IAC1C,OAAO,EAAE,UAAU;IACnB,OAAO,EAAE,CAAC,KAAW,EAAiB,EAAE;QACtC,OAAO,KAAK;aACT,KAAK,CAAC,+CAA+C,CAAC;aACtD,MAAM,CAAC,WAAW,EAAE;YACnB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,kCAAkC;SAC7C,CAAC;aACD,MAAM,CAAC,SAAS,EAAE;YACjB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,wBAAwB;YAClC,MAAM,EAAE,SAAS;SAClB,CAAC;aACD,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC;aAC3B,YAAY,CAAC,SAAS,EAAE,4CAA4C,CAAC;aACrE,OAAO,CAAC;YACP;gBACE,6DAA6D;gBAC7D,4BAA4B;aAC7B;YACD;gBACE,kFAAkF;gBAClF,gCAAgC;aACjC;SACF,CAAC;aACD,UAAU,CAAC;YACV,WAAW;YACX,YAAY;YACZ,SAAS;YACT,YAAY;YACZ,QAAQ;SACT,CAAC,CAAC;IACP,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAa,EAAE,EAAE;QAC/B,MAAM,YAAY,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC;QAC7D,MAAM,QAAQ,CAAC,IAAiB,CAAC,CAAC;IACpC,CAAC;CACF,CAAC","sourcesContent":["import { Argv } from \"yargs\";\nimport { captureEvent } from \"../../common/analytics/lib.js\";\nimport { authenticate } from \"../../common/middleware/authentication.js\";\nimport { identify } from \"../../common/middleware/user-identification.js\";\nimport setBlocking from \"../../common/output.js\";\nimport { Arguments, describe } from \"../../tunnel/describe/handler.js\";\nimport { configure } from \"../../common/middleware/user-configuration.js\";\nimport { fetchAccount } from \"../../common/middleware/get-account-param.js\";\n\nexport default {\n desc: \"Describes a tunnel in your account\",\n command: \"describe\",\n builder: (yargs: Argv): Argv<unknown> => {\n return yargs\n .usage(\"$0 tunnel describe --tunnel-id <id> [options]\")\n .option(\"tunnel-id\", {\n type: \"string\",\n describe: \"The ID of the tunnel to describe\",\n })\n .option(\"api-key\", {\n type: \"string\",\n describe: \"The API Key from Zuplo\",\n envVar: \"API_KEY\",\n })\n .demandOption([\"tunnel-id\"])\n .demandOption(\"api-key\", \"You must provide an API key with --api-key\")\n .example([\n [\n \"$0 tunnel describe --tunnel-id tnl_TRMZwunq2PLNQDwhu6A04Bmx\",\n \"Get details about a tunnel\",\n ],\n [\n \"$0 tunnel describe --tunnel-id tnl_TRMZwunq2PLNQDwhu6A04Bmx --account my-account\",\n \"Explicitly specify the account\",\n ],\n ])\n .middleware([\n setBlocking,\n authenticate,\n configure,\n fetchAccount,\n identify,\n ]);\n },\n handler: async (argv: unknown) => {\n await captureEvent({ argv, event: \"zuplo tunnel describe\" });\n await describe(argv as Arguments);\n },\n};\n"]}
1
+ {"version":3,"file":"describe.js","sourceRoot":"","sources":["../../../src/cmds/tunnel/describe.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,gDAAgD,CAAC;AAC1E,OAAO,WAAW,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAa,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAEvE,eAAe;IACb,IAAI,EAAE,oCAAoC;IAC1C,OAAO,EAAE,UAAU;IACnB,OAAO,EAAE,CAAC,KAAW,EAAiB,EAAE;QACtC,OAAO,KAAK;aACT,KAAK,CAAC,+CAA+C,CAAC;aACtD,MAAM,CAAC,WAAW,EAAE;YACnB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,kCAAkC;SAC7C,CAAC;aACD,MAAM,CAAC,SAAS,EAAE;YACjB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,wBAAwB;YAClC,MAAM,EAAE,SAAS;SAClB,CAAC;aACD,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC;aAC3B,YAAY,CAAC,SAAS,EAAE,4CAA4C,CAAC;aACrE,OAAO,CAAC;YACP;gBACE,6DAA6D;gBAC7D,4BAA4B;aAC7B;YACD;gBACE,kFAAkF;gBAClF,gCAAgC;aACjC;SACF,CAAC;aACD,UAAU,CAAC;YACV,WAAW;YACX,YAAY;YACZ,SAAS;YACT,YAAY;YACZ,QAAQ;SACT,CAAC,CAAC;IACP,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAa,EAAE,EAAE;QAC/B,MAAM,YAAY,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC;QAC7D,MAAM,QAAQ,CAAC,IAAiB,CAAC,CAAC;IACpC,CAAC;CACF,CAAC","sourcesContent":["import { Argv } from \"yargs\";\nimport { captureEvent } from \"../../common/analytics/lib.js\";\nimport { authenticate } from \"../../common/middleware/authentication.js\";\nimport { fetchAccount } from \"../../common/middleware/get-account-param.js\";\nimport { configure } from \"../../common/middleware/user-configuration.js\";\nimport { identify } from \"../../common/middleware/user-identification.js\";\nimport setBlocking from \"../../common/output.js\";\nimport { Arguments, describe } from \"../../tunnel/describe/handler.js\";\n\nexport default {\n desc: \"Describes a tunnel in your account\",\n command: \"describe\",\n builder: (yargs: Argv): Argv<unknown> => {\n return yargs\n .usage(\"$0 tunnel describe --tunnel-id <id> [options]\")\n .option(\"tunnel-id\", {\n type: \"string\",\n describe: \"The ID of the tunnel to describe\",\n })\n .option(\"api-key\", {\n type: \"string\",\n describe: \"The API Key from Zuplo\",\n envVar: \"API_KEY\",\n })\n .demandOption([\"tunnel-id\"])\n .demandOption(\"api-key\", \"You must provide an API key with --api-key\")\n .example([\n [\n \"$0 tunnel describe --tunnel-id tnl_TRMZwunq2PLNQDwhu6A04Bmx\",\n \"Get details about a tunnel\",\n ],\n [\n \"$0 tunnel describe --tunnel-id tnl_TRMZwunq2PLNQDwhu6A04Bmx --account my-account\",\n \"Explicitly specify the account\",\n ],\n ])\n .middleware([\n setBlocking,\n authenticate,\n configure,\n fetchAccount,\n identify,\n ]);\n },\n handler: async (argv: unknown) => {\n await captureEvent({ argv, event: \"zuplo tunnel describe\" });\n await describe(argv as Arguments);\n },\n};\n"]}
@@ -1,10 +1,10 @@
1
1
  import { captureEvent } from "../../common/analytics/lib.js";
2
2
  import { authenticate } from "../../common/middleware/authentication.js";
3
+ import { fetchAccount } from "../../common/middleware/get-account-param.js";
4
+ import { configure } from "../../common/middleware/user-configuration.js";
3
5
  import { identify } from "../../common/middleware/user-identification.js";
4
6
  import setBlocking from "../../common/output.js";
5
7
  import { list } from "../../tunnel/list/handler.js";
6
- import { configure } from "../../common/middleware/user-configuration.js";
7
- import { fetchAccount } from "../../common/middleware/get-account-param.js";
8
8
  export default {
9
9
  desc: "Lists the tunnels in your account",
10
10
  command: "list",
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/cmds/tunnel/list.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,gDAAgD,CAAC;AAC1E,OAAO,WAAW,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAa,IAAI,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAC;AAE5E,eAAe;IACb,IAAI,EAAE,mCAAmC;IACzC,OAAO,EAAE,MAAM;IACf,OAAO,EAAE,CAAC,KAAW,EAAiB,EAAE;QACtC,OAAO,KAAK;aACT,KAAK,CAAC,0BAA0B,CAAC;aACjC,MAAM,CAAC,SAAS,EAAE;YACjB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,wBAAwB;YAClC,MAAM,EAAE,SAAS;SAClB,CAAC;aACD,YAAY,CAAC,SAAS,EAAE,4CAA4C,CAAC;aACrE,OAAO,CAAC;YACP,CAAC,gBAAgB,EAAE,kBAAkB,CAAC;YACtC;gBACE,qCAAqC;gBACrC,gCAAgC;aACjC;SACF,CAAC;aACD,UAAU,CAAC;YACV,WAAW;YACX,YAAY;YACZ,SAAS;YACT,YAAY;YACZ,QAAQ;SACT,CAAC,CAAC;IACP,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAa,EAAE,EAAE;QAC/B,MAAM,YAAY,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC;QACzD,MAAM,IAAI,CAAC,IAAiB,CAAC,CAAC;IAChC,CAAC;CACF,CAAC","sourcesContent":["import { Argv } from \"yargs\";\nimport { captureEvent } from \"../../common/analytics/lib.js\";\nimport { authenticate } from \"../../common/middleware/authentication.js\";\nimport { identify } from \"../../common/middleware/user-identification.js\";\nimport setBlocking from \"../../common/output.js\";\nimport { Arguments, list } from \"../../tunnel/list/handler.js\";\nimport { configure } from \"../../common/middleware/user-configuration.js\";\nimport { fetchAccount } from \"../../common/middleware/get-account-param.js\";\n\nexport default {\n desc: \"Lists the tunnels in your account\",\n command: \"list\",\n builder: (yargs: Argv): Argv<unknown> => {\n return yargs\n .usage(\"$0 tunnel list [options]\")\n .option(\"api-key\", {\n type: \"string\",\n describe: \"The API Key from Zuplo\",\n envVar: \"API_KEY\",\n })\n .demandOption(\"api-key\", \"You must provide an API key with --api-key\")\n .example([\n [\"$0 tunnel list\", \"List all tunnels\"],\n [\n \"$0 tunnel list --account my-account\",\n \"Explicitly specify the account\",\n ],\n ])\n .middleware([\n setBlocking,\n authenticate,\n configure,\n fetchAccount,\n identify,\n ]);\n },\n handler: async (argv: unknown) => {\n await captureEvent({ argv, event: \"zuplo tunnel list\" });\n await list(argv as Arguments);\n },\n};\n"]}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/cmds/tunnel/list.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,gDAAgD,CAAC;AAC1E,OAAO,WAAW,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAa,IAAI,EAAE,MAAM,8BAA8B,CAAC;AAE/D,eAAe;IACb,IAAI,EAAE,mCAAmC;IACzC,OAAO,EAAE,MAAM;IACf,OAAO,EAAE,CAAC,KAAW,EAAiB,EAAE;QACtC,OAAO,KAAK;aACT,KAAK,CAAC,0BAA0B,CAAC;aACjC,MAAM,CAAC,SAAS,EAAE;YACjB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,wBAAwB;YAClC,MAAM,EAAE,SAAS;SAClB,CAAC;aACD,YAAY,CAAC,SAAS,EAAE,4CAA4C,CAAC;aACrE,OAAO,CAAC;YACP,CAAC,gBAAgB,EAAE,kBAAkB,CAAC;YACtC;gBACE,qCAAqC;gBACrC,gCAAgC;aACjC;SACF,CAAC;aACD,UAAU,CAAC;YACV,WAAW;YACX,YAAY;YACZ,SAAS;YACT,YAAY;YACZ,QAAQ;SACT,CAAC,CAAC;IACP,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAa,EAAE,EAAE;QAC/B,MAAM,YAAY,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC;QACzD,MAAM,IAAI,CAAC,IAAiB,CAAC,CAAC;IAChC,CAAC;CACF,CAAC","sourcesContent":["import { Argv } from \"yargs\";\nimport { captureEvent } from \"../../common/analytics/lib.js\";\nimport { authenticate } from \"../../common/middleware/authentication.js\";\nimport { fetchAccount } from \"../../common/middleware/get-account-param.js\";\nimport { configure } from \"../../common/middleware/user-configuration.js\";\nimport { identify } from \"../../common/middleware/user-identification.js\";\nimport setBlocking from \"../../common/output.js\";\nimport { Arguments, list } from \"../../tunnel/list/handler.js\";\n\nexport default {\n desc: \"Lists the tunnels in your account\",\n command: \"list\",\n builder: (yargs: Argv): Argv<unknown> => {\n return yargs\n .usage(\"$0 tunnel list [options]\")\n .option(\"api-key\", {\n type: \"string\",\n describe: \"The API Key from Zuplo\",\n envVar: \"API_KEY\",\n })\n .demandOption(\"api-key\", \"You must provide an API key with --api-key\")\n .example([\n [\"$0 tunnel list\", \"List all tunnels\"],\n [\n \"$0 tunnel list --account my-account\",\n \"Explicitly specify the account\",\n ],\n ])\n .middleware([\n setBlocking,\n authenticate,\n configure,\n fetchAccount,\n identify,\n ]);\n },\n handler: async (argv: unknown) => {\n await captureEvent({ argv, event: \"zuplo tunnel list\" });\n await list(argv as Arguments);\n },\n};\n"]}
@@ -1,10 +1,10 @@
1
1
  import { captureEvent } from "../../common/analytics/lib.js";
2
2
  import { authenticate } from "../../common/middleware/authentication.js";
3
+ import { fetchAccount } from "../../common/middleware/get-account-param.js";
4
+ import { configure } from "../../common/middleware/user-configuration.js";
3
5
  import { identify } from "../../common/middleware/user-identification.js";
4
6
  import setBlocking from "../../common/output.js";
5
7
  import { rotateToken } from "../../tunnel/rotate-token/handler.js";
6
- import { configure } from "../../common/middleware/user-configuration.js";
7
- import { fetchAccount } from "../../common/middleware/get-account-param.js";
8
8
  export default {
9
9
  desc: "Rotates the token for a tunnel in your account",
10
10
  command: "rotate-token",
@@ -1 +1 @@
1
- {"version":3,"file":"rotate-token.js","sourceRoot":"","sources":["../../../src/cmds/tunnel/rotate-token.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,gDAAgD,CAAC;AAC1E,OAAO,WAAW,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAa,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAC;AAE5E,eAAe;IACb,IAAI,EAAE,gDAAgD;IACtD,OAAO,EAAE,cAAc;IACvB,OAAO,EAAE,CAAC,KAAW,EAAiB,EAAE;QACtC,OAAO,KAAK;aACT,KAAK,CAAC,mDAAmD,CAAC;aAC1D,MAAM,CAAC,WAAW,EAAE;YACnB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,8CAA8C;SACzD,CAAC;aACD,MAAM,CAAC,SAAS,EAAE;YACjB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,wBAAwB;YAClC,MAAM,EAAE,SAAS;SAClB,CAAC;aACD,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC;aAC3B,YAAY,CAAC,SAAS,EAAE,4CAA4C,CAAC;aACrE,OAAO,CAAC;YACP;gBACE,iEAAiE;gBACjE,8CAA8C;aAC/C;YACD;gBACE,sFAAsF;gBACtF,gCAAgC;aACjC;SACF,CAAC;aACD,UAAU,CAAC;YACV,WAAW;YACX,YAAY;YACZ,SAAS;YACT,YAAY;YACZ,QAAQ;SACT,CAAC,CAAC;IACP,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAa,EAAE,EAAE;QAC/B,MAAM,YAAY,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,2BAA2B,EAAE,CAAC,CAAC;QACjE,MAAM,WAAW,CAAC,IAAiB,CAAC,CAAC;IACvC,CAAC;CACF,CAAC","sourcesContent":["import { Argv } from \"yargs\";\nimport { captureEvent } from \"../../common/analytics/lib.js\";\nimport { authenticate } from \"../../common/middleware/authentication.js\";\nimport { identify } from \"../../common/middleware/user-identification.js\";\nimport setBlocking from \"../../common/output.js\";\nimport { Arguments, rotateToken } from \"../../tunnel/rotate-token/handler.js\";\nimport { configure } from \"../../common/middleware/user-configuration.js\";\nimport { fetchAccount } from \"../../common/middleware/get-account-param.js\";\n\nexport default {\n desc: \"Rotates the token for a tunnel in your account\",\n command: \"rotate-token\",\n builder: (yargs: Argv): Argv<unknown> => {\n return yargs\n .usage(\"$0 tunnel rotate-token --tunnel-id <id> [options]\")\n .option(\"tunnel-id\", {\n type: \"string\",\n describe: \"The ID of the tunnel to rotate the token for\",\n })\n .option(\"api-key\", {\n type: \"string\",\n describe: \"The API Key from Zuplo\",\n envVar: \"API_KEY\",\n })\n .demandOption([\"tunnel-id\"])\n .demandOption(\"api-key\", \"You must provide an API key with --api-key\")\n .example([\n [\n \"$0 tunnel rotate-token --tunnel-id tnl_TRMZwunq2PLNQDwhu6A04Bmx\",\n \"Rotate the authentication token for a tunnel\",\n ],\n [\n \"$0 tunnel rotate-token --tunnel-id tnl_TRMZwunq2PLNQDwhu6A04Bmx --account my-account\",\n \"Explicitly specify the account\",\n ],\n ])\n .middleware([\n setBlocking,\n authenticate,\n configure,\n fetchAccount,\n identify,\n ]);\n },\n handler: async (argv: unknown) => {\n await captureEvent({ argv, event: \"zuplo tunnel rotate-token\" });\n await rotateToken(argv as Arguments);\n },\n};\n"]}
1
+ {"version":3,"file":"rotate-token.js","sourceRoot":"","sources":["../../../src/cmds/tunnel/rotate-token.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,gDAAgD,CAAC;AAC1E,OAAO,WAAW,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAa,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAE9E,eAAe;IACb,IAAI,EAAE,gDAAgD;IACtD,OAAO,EAAE,cAAc;IACvB,OAAO,EAAE,CAAC,KAAW,EAAiB,EAAE;QACtC,OAAO,KAAK;aACT,KAAK,CAAC,mDAAmD,CAAC;aAC1D,MAAM,CAAC,WAAW,EAAE;YACnB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,8CAA8C;SACzD,CAAC;aACD,MAAM,CAAC,SAAS,EAAE;YACjB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,wBAAwB;YAClC,MAAM,EAAE,SAAS;SAClB,CAAC;aACD,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC;aAC3B,YAAY,CAAC,SAAS,EAAE,4CAA4C,CAAC;aACrE,OAAO,CAAC;YACP;gBACE,iEAAiE;gBACjE,8CAA8C;aAC/C;YACD;gBACE,sFAAsF;gBACtF,gCAAgC;aACjC;SACF,CAAC;aACD,UAAU,CAAC;YACV,WAAW;YACX,YAAY;YACZ,SAAS;YACT,YAAY;YACZ,QAAQ;SACT,CAAC,CAAC;IACP,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAa,EAAE,EAAE;QAC/B,MAAM,YAAY,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,2BAA2B,EAAE,CAAC,CAAC;QACjE,MAAM,WAAW,CAAC,IAAiB,CAAC,CAAC;IACvC,CAAC;CACF,CAAC","sourcesContent":["import { Argv } from \"yargs\";\nimport { captureEvent } from \"../../common/analytics/lib.js\";\nimport { authenticate } from \"../../common/middleware/authentication.js\";\nimport { fetchAccount } from \"../../common/middleware/get-account-param.js\";\nimport { configure } from \"../../common/middleware/user-configuration.js\";\nimport { identify } from \"../../common/middleware/user-identification.js\";\nimport setBlocking from \"../../common/output.js\";\nimport { Arguments, rotateToken } from \"../../tunnel/rotate-token/handler.js\";\n\nexport default {\n desc: \"Rotates the token for a tunnel in your account\",\n command: \"rotate-token\",\n builder: (yargs: Argv): Argv<unknown> => {\n return yargs\n .usage(\"$0 tunnel rotate-token --tunnel-id <id> [options]\")\n .option(\"tunnel-id\", {\n type: \"string\",\n describe: \"The ID of the tunnel to rotate the token for\",\n })\n .option(\"api-key\", {\n type: \"string\",\n describe: \"The API Key from Zuplo\",\n envVar: \"API_KEY\",\n })\n .demandOption([\"tunnel-id\"])\n .demandOption(\"api-key\", \"You must provide an API key with --api-key\")\n .example([\n [\n \"$0 tunnel rotate-token --tunnel-id tnl_TRMZwunq2PLNQDwhu6A04Bmx\",\n \"Rotate the authentication token for a tunnel\",\n ],\n [\n \"$0 tunnel rotate-token --tunnel-id tnl_TRMZwunq2PLNQDwhu6A04Bmx --account my-account\",\n \"Explicitly specify the account\",\n ],\n ])\n .middleware([\n setBlocking,\n authenticate,\n configure,\n fetchAccount,\n identify,\n ]);\n },\n handler: async (argv: unknown) => {\n await captureEvent({ argv, event: \"zuplo tunnel rotate-token\" });\n await rotateToken(argv as Arguments);\n },\n};\n"]}
@@ -1,10 +1,10 @@
1
1
  import { captureEvent } from "../../../common/analytics/lib.js";
2
2
  import { authenticate } from "../../../common/middleware/authentication.js";
3
+ import { fetchAccount } from "../../../common/middleware/get-account-param.js";
4
+ import { configure } from "../../../common/middleware/user-configuration.js";
3
5
  import { identify } from "../../../common/middleware/user-identification.js";
4
6
  import setBlocking from "../../../common/output.js";
5
7
  import { describe, } from "../../../tunnel/services/describe/handler.js";
6
- import { configure } from "../../../common/middleware/user-configuration.js";
7
- import { fetchAccount } from "../../../common/middleware/get-account-param.js";
8
8
  export default {
9
9
  desc: "Describes the services for this tunnel",
10
10
  command: "describe",
@@ -1 +1 @@
1
- {"version":3,"file":"describe.js","sourceRoot":"","sources":["../../../../src/cmds/tunnel/services/describe.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,mDAAmD,CAAC;AAC7E,OAAO,WAAW,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAEL,QAAQ,GACT,MAAM,8CAA8C,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,kDAAkD,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,iDAAiD,CAAC;AAE/E,eAAe;IACb,IAAI,EAAE,wCAAwC;IAC9C,OAAO,EAAE,UAAU;IACnB,OAAO,EAAE,CAAC,KAAW,EAAiB,EAAE;QACtC,OAAO,KAAK;aACT,KAAK,CAAC,wDAAwD,CAAC;aAC/D,MAAM,CAAC,WAAW,EAAE;YACnB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,8CAA8C;SACzD,CAAC;aACD,MAAM,CAAC,SAAS,EAAE;YACjB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,wBAAwB;YAClC,MAAM,EAAE,SAAS;SAClB,CAAC;aACD,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC;aAC3B,YAAY,CAAC,SAAS,EAAE,4CAA4C,CAAC;aACrE,OAAO,CAAC;YACP;gBACE,sEAAsE;gBACtE,8CAA8C;aAC/C;YACD;gBACE,2FAA2F;gBAC3F,gCAAgC;aACjC;SACF,CAAC;aACD,UAAU,CAAC;YACV,WAAW;YACX,YAAY;YACZ,SAAS;YACT,YAAY;YACZ,QAAQ;SACT,CAAC,CAAC;IACP,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAa,EAAE,EAAE;QAC/B,MAAM,YAAY,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,gCAAgC,EAAE,CAAC,CAAC;QACtE,MAAM,QAAQ,CAAC,IAAiB,CAAC,CAAC;IACpC,CAAC;CACF,CAAC","sourcesContent":["import { Argv } from \"yargs\";\nimport { captureEvent } from \"../../../common/analytics/lib.js\";\nimport { authenticate } from \"../../../common/middleware/authentication.js\";\nimport { identify } from \"../../../common/middleware/user-identification.js\";\nimport setBlocking from \"../../../common/output.js\";\nimport {\n Arguments,\n describe,\n} from \"../../../tunnel/services/describe/handler.js\";\nimport { configure } from \"../../../common/middleware/user-configuration.js\";\nimport { fetchAccount } from \"../../../common/middleware/get-account-param.js\";\n\nexport default {\n desc: \"Describes the services for this tunnel\",\n command: \"describe\",\n builder: (yargs: Argv): Argv<unknown> => {\n return yargs\n .usage(\"$0 tunnel services describe --tunnel-id <id> [options]\")\n .option(\"tunnel-id\", {\n type: \"string\",\n describe: \"The ID of the tunnel containing the services\",\n })\n .option(\"api-key\", {\n type: \"string\",\n describe: \"The API Key from Zuplo\",\n envVar: \"API_KEY\",\n })\n .demandOption([\"tunnel-id\"])\n .demandOption(\"api-key\", \"You must provide an API key with --api-key\")\n .example([\n [\n \"$0 tunnel services describe --tunnel-id tnl_TRMZwunq2PLNQDwhu6A04Bmx\",\n \"View the services configuration for a tunnel\",\n ],\n [\n \"$0 tunnel services describe --tunnel-id tnl_TRMZwunq2PLNQDwhu6A04Bmx --account my-account\",\n \"Explicitly specify the account\",\n ],\n ])\n .middleware([\n setBlocking,\n authenticate,\n configure,\n fetchAccount,\n identify,\n ]);\n },\n handler: async (argv: unknown) => {\n await captureEvent({ argv, event: \"zuplo tunnel services describe\" });\n await describe(argv as Arguments);\n },\n};\n"]}
1
+ {"version":3,"file":"describe.js","sourceRoot":"","sources":["../../../../src/cmds/tunnel/services/describe.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,iDAAiD,CAAC;AAC/E,OAAO,EAAE,SAAS,EAAE,MAAM,kDAAkD,CAAC;AAC7E,OAAO,EAAE,QAAQ,EAAE,MAAM,mDAAmD,CAAC;AAC7E,OAAO,WAAW,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAEL,QAAQ,GACT,MAAM,8CAA8C,CAAC;AAEtD,eAAe;IACb,IAAI,EAAE,wCAAwC;IAC9C,OAAO,EAAE,UAAU;IACnB,OAAO,EAAE,CAAC,KAAW,EAAiB,EAAE;QACtC,OAAO,KAAK;aACT,KAAK,CAAC,wDAAwD,CAAC;aAC/D,MAAM,CAAC,WAAW,EAAE;YACnB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,8CAA8C;SACzD,CAAC;aACD,MAAM,CAAC,SAAS,EAAE;YACjB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,wBAAwB;YAClC,MAAM,EAAE,SAAS;SAClB,CAAC;aACD,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC;aAC3B,YAAY,CAAC,SAAS,EAAE,4CAA4C,CAAC;aACrE,OAAO,CAAC;YACP;gBACE,sEAAsE;gBACtE,8CAA8C;aAC/C;YACD;gBACE,2FAA2F;gBAC3F,gCAAgC;aACjC;SACF,CAAC;aACD,UAAU,CAAC;YACV,WAAW;YACX,YAAY;YACZ,SAAS;YACT,YAAY;YACZ,QAAQ;SACT,CAAC,CAAC;IACP,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAa,EAAE,EAAE;QAC/B,MAAM,YAAY,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,gCAAgC,EAAE,CAAC,CAAC;QACtE,MAAM,QAAQ,CAAC,IAAiB,CAAC,CAAC;IACpC,CAAC;CACF,CAAC","sourcesContent":["import { Argv } from \"yargs\";\nimport { captureEvent } from \"../../../common/analytics/lib.js\";\nimport { authenticate } from \"../../../common/middleware/authentication.js\";\nimport { fetchAccount } from \"../../../common/middleware/get-account-param.js\";\nimport { configure } from \"../../../common/middleware/user-configuration.js\";\nimport { identify } from \"../../../common/middleware/user-identification.js\";\nimport setBlocking from \"../../../common/output.js\";\nimport {\n Arguments,\n describe,\n} from \"../../../tunnel/services/describe/handler.js\";\n\nexport default {\n desc: \"Describes the services for this tunnel\",\n command: \"describe\",\n builder: (yargs: Argv): Argv<unknown> => {\n return yargs\n .usage(\"$0 tunnel services describe --tunnel-id <id> [options]\")\n .option(\"tunnel-id\", {\n type: \"string\",\n describe: \"The ID of the tunnel containing the services\",\n })\n .option(\"api-key\", {\n type: \"string\",\n describe: \"The API Key from Zuplo\",\n envVar: \"API_KEY\",\n })\n .demandOption([\"tunnel-id\"])\n .demandOption(\"api-key\", \"You must provide an API key with --api-key\")\n .example([\n [\n \"$0 tunnel services describe --tunnel-id tnl_TRMZwunq2PLNQDwhu6A04Bmx\",\n \"View the services configuration for a tunnel\",\n ],\n [\n \"$0 tunnel services describe --tunnel-id tnl_TRMZwunq2PLNQDwhu6A04Bmx --account my-account\",\n \"Explicitly specify the account\",\n ],\n ])\n .middleware([\n setBlocking,\n authenticate,\n configure,\n fetchAccount,\n identify,\n ]);\n },\n handler: async (argv: unknown) => {\n await captureEvent({ argv, event: \"zuplo tunnel services describe\" });\n await describe(argv as Arguments);\n },\n};\n"]}
@@ -1,10 +1,10 @@
1
1
  import { captureEvent } from "../../../common/analytics/lib.js";
2
2
  import { authenticate } from "../../../common/middleware/authentication.js";
3
+ import { fetchAccount } from "../../../common/middleware/get-account-param.js";
4
+ import { configure } from "../../../common/middleware/user-configuration.js";
3
5
  import { identify } from "../../../common/middleware/user-identification.js";
4
6
  import setBlocking from "../../../common/output.js";
5
7
  import { updateServices, } from "../../../tunnel/services/update/handler.js";
6
- import { configure } from "../../../common/middleware/user-configuration.js";
7
- import { fetchAccount } from "../../../common/middleware/get-account-param.js";
8
8
  export default {
9
9
  desc: "Updates the services for this tunnel",
10
10
  command: "update",
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../src/cmds/tunnel/services/update.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAC;AAC5E,OAAO,EAAE,QAAQ,EAAE,MAAM,mDAAmD,CAAC;AAC7E,OAAO,WAAW,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAEL,cAAc,GACf,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,kDAAkD,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,iDAAiD,CAAC;AAE/E,eAAe;IACb,IAAI,EAAE,sCAAsC;IAC5C,OAAO,EAAE,QAAQ;IACjB,OAAO,EAAE,CAAC,KAAW,EAAiB,EAAE;QACtC,OAAO,KAAK;aACT,KAAK,CACJ,kFAAkF,CACnF;aACA,MAAM,CAAC,oBAAoB,EAAE;YAC5B,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,oCAAoC;SAC/C,CAAC;aACD,MAAM,CAAC,WAAW,EAAE;YACnB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,8CAA8C;SACzD,CAAC;aACD,MAAM,CAAC,SAAS,EAAE;YACjB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,wBAAwB;YAClC,MAAM,EAAE,SAAS;SAClB,CAAC;aACD,YAAY,CAAC,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAC;aACjD,YAAY,CAAC,SAAS,EAAE,4CAA4C,CAAC;aACrE,OAAO,CAAC;YACP;gBACE,yGAAyG;gBACzG,gDAAgD;aACjD;YACD;gBACE,4IAA4I;gBAC5I,gCAAgC;aACjC;SACF,CAAC;aACD,UAAU,CAAC;YACV,WAAW;YACX,YAAY;YACZ,SAAS;YACT,YAAY;YACZ,QAAQ;SACT,CAAC,CAAC;IACP,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAa,EAAE,EAAE;QAC/B,MAAM,YAAY,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,8BAA8B,EAAE,CAAC,CAAC;QACpE,MAAM,cAAc,CAAC,IAAiB,CAAC,CAAC;IAC1C,CAAC;CACF,CAAC","sourcesContent":["import { Argv } from \"yargs\";\nimport { captureEvent } from \"../../../common/analytics/lib.js\";\nimport { authenticate } from \"../../../common/middleware/authentication.js\";\nimport { identify } from \"../../../common/middleware/user-identification.js\";\nimport setBlocking from \"../../../common/output.js\";\nimport {\n Arguments,\n updateServices,\n} from \"../../../tunnel/services/update/handler.js\";\nimport { configure } from \"../../../common/middleware/user-configuration.js\";\nimport { fetchAccount } from \"../../../common/middleware/get-account-param.js\";\n\nexport default {\n desc: \"Updates the services for this tunnel\",\n command: \"update\",\n builder: (yargs: Argv): Argv<unknown> => {\n return yargs\n .usage(\n \"$0 tunnel services update --tunnel-id <id> --configuration-file <file> [options]\"\n )\n .option(\"configuration-file\", {\n type: \"string\",\n describe: \"The path to the configuration file\",\n })\n .option(\"tunnel-id\", {\n type: \"string\",\n describe: \"The ID of the tunnel containing the services\",\n })\n .option(\"api-key\", {\n type: \"string\",\n describe: \"The API Key from Zuplo\",\n envVar: \"API_KEY\",\n })\n .demandOption([\"configuration-file\", \"tunnel-id\"])\n .demandOption(\"api-key\", \"You must provide an API key with --api-key\")\n .example([\n [\n \"$0 tunnel services update --tunnel-id tnl_TRMZwunq2PLNQDwhu6A04Bmx --configuration-file ./services.json\",\n \"Update the services configuration for a tunnel\",\n ],\n [\n \"$0 tunnel services update --tunnel-id tnl_TRMZwunq2PLNQDwhu6A04Bmx --configuration-file ./config/tunnel-services.json --account my-account\",\n \"Explicitly specify the account\",\n ],\n ])\n .middleware([\n setBlocking,\n authenticate,\n configure,\n fetchAccount,\n identify,\n ]);\n },\n handler: async (argv: unknown) => {\n await captureEvent({ argv, event: \"zuplo tunnel services update\" });\n await updateServices(argv as Arguments);\n },\n};\n"]}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../src/cmds/tunnel/services/update.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,iDAAiD,CAAC;AAC/E,OAAO,EAAE,SAAS,EAAE,MAAM,kDAAkD,CAAC;AAC7E,OAAO,EAAE,QAAQ,EAAE,MAAM,mDAAmD,CAAC;AAC7E,OAAO,WAAW,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAEL,cAAc,GACf,MAAM,4CAA4C,CAAC;AAEpD,eAAe;IACb,IAAI,EAAE,sCAAsC;IAC5C,OAAO,EAAE,QAAQ;IACjB,OAAO,EAAE,CAAC,KAAW,EAAiB,EAAE;QACtC,OAAO,KAAK;aACT,KAAK,CACJ,kFAAkF,CACnF;aACA,MAAM,CAAC,oBAAoB,EAAE;YAC5B,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,oCAAoC;SAC/C,CAAC;aACD,MAAM,CAAC,WAAW,EAAE;YACnB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,8CAA8C;SACzD,CAAC;aACD,MAAM,CAAC,SAAS,EAAE;YACjB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,wBAAwB;YAClC,MAAM,EAAE,SAAS;SAClB,CAAC;aACD,YAAY,CAAC,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAC;aACjD,YAAY,CAAC,SAAS,EAAE,4CAA4C,CAAC;aACrE,OAAO,CAAC;YACP;gBACE,yGAAyG;gBACzG,gDAAgD;aACjD;YACD;gBACE,4IAA4I;gBAC5I,gCAAgC;aACjC;SACF,CAAC;aACD,UAAU,CAAC;YACV,WAAW;YACX,YAAY;YACZ,SAAS;YACT,YAAY;YACZ,QAAQ;SACT,CAAC,CAAC;IACP,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAa,EAAE,EAAE;QAC/B,MAAM,YAAY,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,8BAA8B,EAAE,CAAC,CAAC;QACpE,MAAM,cAAc,CAAC,IAAiB,CAAC,CAAC;IAC1C,CAAC;CACF,CAAC","sourcesContent":["import { Argv } from \"yargs\";\nimport { captureEvent } from \"../../../common/analytics/lib.js\";\nimport { authenticate } from \"../../../common/middleware/authentication.js\";\nimport { fetchAccount } from \"../../../common/middleware/get-account-param.js\";\nimport { configure } from \"../../../common/middleware/user-configuration.js\";\nimport { identify } from \"../../../common/middleware/user-identification.js\";\nimport setBlocking from \"../../../common/output.js\";\nimport {\n Arguments,\n updateServices,\n} from \"../../../tunnel/services/update/handler.js\";\n\nexport default {\n desc: \"Updates the services for this tunnel\",\n command: \"update\",\n builder: (yargs: Argv): Argv<unknown> => {\n return yargs\n .usage(\n \"$0 tunnel services update --tunnel-id <id> --configuration-file <file> [options]\"\n )\n .option(\"configuration-file\", {\n type: \"string\",\n describe: \"The path to the configuration file\",\n })\n .option(\"tunnel-id\", {\n type: \"string\",\n describe: \"The ID of the tunnel containing the services\",\n })\n .option(\"api-key\", {\n type: \"string\",\n describe: \"The API Key from Zuplo\",\n envVar: \"API_KEY\",\n })\n .demandOption([\"configuration-file\", \"tunnel-id\"])\n .demandOption(\"api-key\", \"You must provide an API key with --api-key\")\n .example([\n [\n \"$0 tunnel services update --tunnel-id tnl_TRMZwunq2PLNQDwhu6A04Bmx --configuration-file ./services.json\",\n \"Update the services configuration for a tunnel\",\n ],\n [\n \"$0 tunnel services update --tunnel-id tnl_TRMZwunq2PLNQDwhu6A04Bmx --configuration-file ./config/tunnel-services.json --account my-account\",\n \"Explicitly specify the account\",\n ],\n ])\n .middleware([\n setBlocking,\n authenticate,\n configure,\n fetchAccount,\n identify,\n ]);\n },\n handler: async (argv: unknown) => {\n await captureEvent({ argv, event: \"zuplo tunnel services update\" });\n await updateServices(argv as Arguments);\n },\n};\n"]}
@@ -1,11 +1,11 @@
1
1
  import { captureEvent } from "../../common/analytics/lib.js";
2
2
  import { authenticate } from "../../common/middleware/authentication.js";
3
+ import { fetchAccount } from "../../common/middleware/get-account-param.js";
4
+ import { fetchProject } from "../../common/middleware/get-project-param.js";
3
5
  import { configure } from "../../common/middleware/user-configuration.js";
4
6
  import { identify } from "../../common/middleware/user-identification.js";
5
7
  import setBlocking from "../../common/output.js";
6
8
  import { create } from "../../variable/create/handler.js";
7
- import { fetchAccount } from "../../common/middleware/get-account-param.js";
8
- import { fetchProject } from "../../common/middleware/get-project-param.js";
9
9
  export default {
10
10
  desc: "Creates a new variable for a branch",
11
11
  command: "create",
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/cmds/variable/create.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,gDAAgD,CAAC;AAC1E,OAAO,WAAW,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAC;AAE5E,eAAe;IACb,IAAI,EAAE,qCAAqC;IAC3C,OAAO,EAAE,QAAQ;IACjB,OAAO,EAAE,CAAC,KAAW,EAAiB,EAAE;QACtC,OAAO,KAAK;aACT,KAAK,CACJ,oGAAoG,CACrG;aACA,MAAM,CAAC,MAAM,EAAE;YACd,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,oCAAoC;SAC/C,CAAC;aACD,MAAM,CAAC,OAAO,EAAE;YACf,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,qCAAqC;SAChD,CAAC;aACD,MAAM,CAAC,WAAW,EAAE;YACnB,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,0BAA0B;SACrC,CAAC;aACD,MAAM,CAAC,QAAQ,EAAE;YAChB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,6CAA6C;SACxD,CAAC;aACD,MAAM,CAAC,SAAS,EAAE;YACjB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,wBAAwB;YAClC,MAAM,EAAE,SAAS;SAClB,CAAC;aACD,MAAM,CAAC,SAAS,EAAE;YACjB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,kBAAkB;SAC7B,CAAC;aACD,MAAM,CAAC,SAAS,EAAE;YACjB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,kBAAkB;SAC7B,CAAC;aACD,YAAY,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;aACtD,OAAO,CAAC;YACP;gBACE,wFAAwF;gBACxF,8CAA8C;aAC/C;YACD;gBACE,0GAA0G;gBAC1G,wDAAwD;aACzD;YACD;gBACE,8HAA8H;gBAC9H,4CAA4C;aAC7C;SACF,CAAC;aACD,UAAU,CAAC;YACV,WAAW;YACX,YAAY;YACZ,SAAS;YACT,YAAY;YACZ,YAAY;YACZ,QAAQ;SACT,CAAC,CAAC;IACP,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAa,EAAE,EAAE;QAC/B,MAAM,YAAY,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC;QAC7D,MAAM,MAAM,CAAC,IAAiB,CAAC,CAAC;IAClC,CAAC;CACF,CAAC","sourcesContent":["import { Argv } from \"yargs\";\nimport { captureEvent } from \"../../common/analytics/lib.js\";\nimport { authenticate } from \"../../common/middleware/authentication.js\";\nimport { configure } from \"../../common/middleware/user-configuration.js\";\nimport { identify } from \"../../common/middleware/user-identification.js\";\nimport setBlocking from \"../../common/output.js\";\nimport { create } from \"../../variable/create/handler.js\";\nimport { Arguments } from \"../../variable/models.js\";\nimport { fetchAccount } from \"../../common/middleware/get-account-param.js\";\nimport { fetchProject } from \"../../common/middleware/get-project-param.js\";\n\nexport default {\n desc: \"Creates a new variable for a branch\",\n command: \"create\",\n builder: (yargs: Argv): Argv<unknown> => {\n return yargs\n .usage(\n \"$0 variable create --name <name> --value <value> --is-secret <boolean> --branch <branch> [options]\"\n )\n .option(\"name\", {\n type: \"string\",\n describe: \"The name of the variable to create\",\n })\n .option(\"value\", {\n type: \"string\",\n describe: \"The value of the variable to create\",\n })\n .option(\"is-secret\", {\n type: \"boolean\",\n describe: \"Is the variable a secret\",\n })\n .option(\"branch\", {\n type: \"string\",\n describe: \"The branch where the variable should be set\",\n })\n .option(\"api-key\", {\n type: \"string\",\n describe: \"The API Key from Zuplo\",\n envVar: \"API_KEY\",\n })\n .option(\"account\", {\n type: \"string\",\n describe: \"The account name\",\n })\n .option(\"project\", {\n type: \"string\",\n describe: \"The project name\",\n })\n .demandOption([\"name\", \"value\", \"is-secret\", \"branch\"])\n .example([\n [\n \"$0 variable create --name API_KEY --value my-secret-key --is-secret true --branch main\",\n \"Create a secret variable for the main branch\",\n ],\n [\n \"$0 variable create --name BASE_URL --value https://api.example.com --is-secret false --branch production\",\n \"Create a non-secret variable for the production branch\",\n ],\n [\n \"$0 variable create --name DB_HOST --value localhost --is-secret false --branch dev --account my-account --project my-project\",\n \"Explicitly specify the account and project\",\n ],\n ])\n .middleware([\n setBlocking,\n authenticate,\n configure,\n fetchAccount,\n fetchProject,\n identify,\n ]);\n },\n handler: async (argv: unknown) => {\n await captureEvent({ argv, event: \"zuplo variable create\" });\n await create(argv as Arguments);\n },\n};\n"]}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/cmds/variable/create.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,gDAAgD,CAAC;AAC1E,OAAO,WAAW,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAG1D,eAAe;IACb,IAAI,EAAE,qCAAqC;IAC3C,OAAO,EAAE,QAAQ;IACjB,OAAO,EAAE,CAAC,KAAW,EAAiB,EAAE;QACtC,OAAO,KAAK;aACT,KAAK,CACJ,oGAAoG,CACrG;aACA,MAAM,CAAC,MAAM,EAAE;YACd,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,oCAAoC;SAC/C,CAAC;aACD,MAAM,CAAC,OAAO,EAAE;YACf,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,qCAAqC;SAChD,CAAC;aACD,MAAM,CAAC,WAAW,EAAE;YACnB,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,0BAA0B;SACrC,CAAC;aACD,MAAM,CAAC,QAAQ,EAAE;YAChB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,6CAA6C;SACxD,CAAC;aACD,MAAM,CAAC,SAAS,EAAE;YACjB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,wBAAwB;YAClC,MAAM,EAAE,SAAS;SAClB,CAAC;aACD,MAAM,CAAC,SAAS,EAAE;YACjB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,kBAAkB;SAC7B,CAAC;aACD,MAAM,CAAC,SAAS,EAAE;YACjB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,kBAAkB;SAC7B,CAAC;aACD,YAAY,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;aACtD,OAAO,CAAC;YACP;gBACE,wFAAwF;gBACxF,8CAA8C;aAC/C;YACD;gBACE,0GAA0G;gBAC1G,wDAAwD;aACzD;YACD;gBACE,8HAA8H;gBAC9H,4CAA4C;aAC7C;SACF,CAAC;aACD,UAAU,CAAC;YACV,WAAW;YACX,YAAY;YACZ,SAAS;YACT,YAAY;YACZ,YAAY;YACZ,QAAQ;SACT,CAAC,CAAC;IACP,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAa,EAAE,EAAE;QAC/B,MAAM,YAAY,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC;QAC7D,MAAM,MAAM,CAAC,IAAiB,CAAC,CAAC;IAClC,CAAC;CACF,CAAC","sourcesContent":["import { Argv } from \"yargs\";\nimport { captureEvent } from \"../../common/analytics/lib.js\";\nimport { authenticate } from \"../../common/middleware/authentication.js\";\nimport { fetchAccount } from \"../../common/middleware/get-account-param.js\";\nimport { fetchProject } from \"../../common/middleware/get-project-param.js\";\nimport { configure } from \"../../common/middleware/user-configuration.js\";\nimport { identify } from \"../../common/middleware/user-identification.js\";\nimport setBlocking from \"../../common/output.js\";\nimport { create } from \"../../variable/create/handler.js\";\nimport { Arguments } from \"../../variable/models.js\";\n\nexport default {\n desc: \"Creates a new variable for a branch\",\n command: \"create\",\n builder: (yargs: Argv): Argv<unknown> => {\n return yargs\n .usage(\n \"$0 variable create --name <name> --value <value> --is-secret <boolean> --branch <branch> [options]\"\n )\n .option(\"name\", {\n type: \"string\",\n describe: \"The name of the variable to create\",\n })\n .option(\"value\", {\n type: \"string\",\n describe: \"The value of the variable to create\",\n })\n .option(\"is-secret\", {\n type: \"boolean\",\n describe: \"Is the variable a secret\",\n })\n .option(\"branch\", {\n type: \"string\",\n describe: \"The branch where the variable should be set\",\n })\n .option(\"api-key\", {\n type: \"string\",\n describe: \"The API Key from Zuplo\",\n envVar: \"API_KEY\",\n })\n .option(\"account\", {\n type: \"string\",\n describe: \"The account name\",\n })\n .option(\"project\", {\n type: \"string\",\n describe: \"The project name\",\n })\n .demandOption([\"name\", \"value\", \"is-secret\", \"branch\"])\n .example([\n [\n \"$0 variable create --name API_KEY --value my-secret-key --is-secret true --branch main\",\n \"Create a secret variable for the main branch\",\n ],\n [\n \"$0 variable create --name BASE_URL --value https://api.example.com --is-secret false --branch production\",\n \"Create a non-secret variable for the production branch\",\n ],\n [\n \"$0 variable create --name DB_HOST --value localhost --is-secret false --branch dev --account my-account --project my-project\",\n \"Explicitly specify the account and project\",\n ],\n ])\n .middleware([\n setBlocking,\n authenticate,\n configure,\n fetchAccount,\n fetchProject,\n identify,\n ]);\n },\n handler: async (argv: unknown) => {\n await captureEvent({ argv, event: \"zuplo variable create\" });\n await create(argv as Arguments);\n },\n};\n"]}
@@ -1,11 +1,11 @@
1
1
  import { captureEvent } from "../../common/analytics/lib.js";
2
2
  import { authenticate } from "../../common/middleware/authentication.js";
3
+ import { fetchAccount } from "../../common/middleware/get-account-param.js";
4
+ import { fetchProject } from "../../common/middleware/get-project-param.js";
3
5
  import { configure } from "../../common/middleware/user-configuration.js";
4
6
  import { identify } from "../../common/middleware/user-identification.js";
5
7
  import setBlocking from "../../common/output.js";
6
8
  import { update } from "../../variable/update/handler.js";
7
- import { fetchAccount } from "../../common/middleware/get-account-param.js";
8
- import { fetchProject } from "../../common/middleware/get-project-param.js";
9
9
  export default {
10
10
  desc: "Updates an existing variable for a branch",
11
11
  command: "update",
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/cmds/variable/update.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,gDAAgD,CAAC;AAC1E,OAAO,WAAW,MAAM,wBAAwB,CAAC;AAEjD,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAC;AAE5E,eAAe;IACb,IAAI,EAAE,2CAA2C;IACjD,OAAO,EAAE,QAAQ;IACjB,OAAO,EAAE,CAAC,KAAW,EAAiB,EAAE;QACtC,OAAO,KAAK;aACT,KAAK,CACJ,8EAA8E,CAC/E;aACA,MAAM,CAAC,MAAM,EAAE;YACd,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,oCAAoC;SAC/C,CAAC;aACD,MAAM,CAAC,OAAO,EAAE;YACf,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,qCAAqC;SAChD,CAAC;aACD,MAAM,CAAC,QAAQ,EAAE;YAChB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,sCAAsC;SACjD,CAAC;aACD,MAAM,CAAC,SAAS,EAAE;YACjB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,kBAAkB;SAC7B,CAAC;aACD,MAAM,CAAC,SAAS,EAAE;YACjB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,wBAAwB;YAClC,MAAM,EAAE,SAAS;SAClB,CAAC;aACD,MAAM,CAAC,SAAS,EAAE;YACjB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,kBAAkB;SAC7B,CAAC;aACD,YAAY,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;aACzC,OAAO,CAAC;YACP;gBACE,wEAAwE;gBACxE,sCAAsC;aACvC;YACD;gBACE,uIAAuI;gBACvI,4CAA4C;aAC7C;SACF,CAAC;aACD,UAAU,CAAC;YACV,WAAW;YACX,YAAY;YACZ,SAAS;YACT,YAAY;YACZ,YAAY;YACZ,QAAQ;SACT,CAAC,CAAC;IACP,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAa,EAAE,EAAE;QAC/B,MAAM,YAAY,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC;QAC7D,MAAM,MAAM,CAAC,IAAiB,CAAC,CAAC;IAClC,CAAC;CACF,CAAC","sourcesContent":["import { Argv } from \"yargs\";\nimport { captureEvent } from \"../../common/analytics/lib.js\";\nimport { authenticate } from \"../../common/middleware/authentication.js\";\nimport { configure } from \"../../common/middleware/user-configuration.js\";\nimport { identify } from \"../../common/middleware/user-identification.js\";\nimport setBlocking from \"../../common/output.js\";\nimport { Arguments } from \"../../variable/models.js\";\nimport { update } from \"../../variable/update/handler.js\";\nimport { fetchAccount } from \"../../common/middleware/get-account-param.js\";\nimport { fetchProject } from \"../../common/middleware/get-project-param.js\";\n\nexport default {\n desc: \"Updates an existing variable for a branch\",\n command: \"update\",\n builder: (yargs: Argv): Argv<unknown> => {\n return yargs\n .usage(\n \"$0 variable update --name <name> --value <value> --branch <branch> [options]\"\n )\n .option(\"name\", {\n type: \"string\",\n describe: \"The name of the variable to update\",\n })\n .option(\"value\", {\n type: \"string\",\n describe: \"The value of the variable to update\",\n })\n .option(\"branch\", {\n type: \"string\",\n describe: \"The branch where the variable exists\",\n })\n .option(\"project\", {\n type: \"string\",\n describe: \"The project name\",\n })\n .option(\"api-key\", {\n type: \"string\",\n describe: \"The API Key from Zuplo\",\n envVar: \"API_KEY\",\n })\n .option(\"account\", {\n type: \"string\",\n describe: \"The account name\",\n })\n .demandOption([\"name\", \"value\", \"branch\"])\n .example([\n [\n \"$0 variable update --name API_KEY --value new-secret-key --branch main\",\n \"Update a variable on the main branch\",\n ],\n [\n \"$0 variable update --name BASE_URL --value https://api.prod.example.com --branch production --account my-account --project my-project\",\n \"Explicitly specify the account and project\",\n ],\n ])\n .middleware([\n setBlocking,\n authenticate,\n configure,\n fetchAccount,\n fetchProject,\n identify,\n ]);\n },\n handler: async (argv: unknown) => {\n await captureEvent({ argv, event: \"zuplo variable update\" });\n await update(argv as Arguments);\n },\n};\n"]}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/cmds/variable/update.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,gDAAgD,CAAC;AAC1E,OAAO,WAAW,MAAM,wBAAwB,CAAC;AAEjD,OAAO,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAE1D,eAAe;IACb,IAAI,EAAE,2CAA2C;IACjD,OAAO,EAAE,QAAQ;IACjB,OAAO,EAAE,CAAC,KAAW,EAAiB,EAAE;QACtC,OAAO,KAAK;aACT,KAAK,CACJ,8EAA8E,CAC/E;aACA,MAAM,CAAC,MAAM,EAAE;YACd,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,oCAAoC;SAC/C,CAAC;aACD,MAAM,CAAC,OAAO,EAAE;YACf,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,qCAAqC;SAChD,CAAC;aACD,MAAM,CAAC,QAAQ,EAAE;YAChB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,sCAAsC;SACjD,CAAC;aACD,MAAM,CAAC,SAAS,EAAE;YACjB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,kBAAkB;SAC7B,CAAC;aACD,MAAM,CAAC,SAAS,EAAE;YACjB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,wBAAwB;YAClC,MAAM,EAAE,SAAS;SAClB,CAAC;aACD,MAAM,CAAC,SAAS,EAAE;YACjB,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,kBAAkB;SAC7B,CAAC;aACD,YAAY,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;aACzC,OAAO,CAAC;YACP;gBACE,wEAAwE;gBACxE,sCAAsC;aACvC;YACD;gBACE,uIAAuI;gBACvI,4CAA4C;aAC7C;SACF,CAAC;aACD,UAAU,CAAC;YACV,WAAW;YACX,YAAY;YACZ,SAAS;YACT,YAAY;YACZ,YAAY;YACZ,QAAQ;SACT,CAAC,CAAC;IACP,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAa,EAAE,EAAE;QAC/B,MAAM,YAAY,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC;QAC7D,MAAM,MAAM,CAAC,IAAiB,CAAC,CAAC;IAClC,CAAC;CACF,CAAC","sourcesContent":["import { Argv } from \"yargs\";\nimport { captureEvent } from \"../../common/analytics/lib.js\";\nimport { authenticate } from \"../../common/middleware/authentication.js\";\nimport { fetchAccount } from \"../../common/middleware/get-account-param.js\";\nimport { fetchProject } from \"../../common/middleware/get-project-param.js\";\nimport { configure } from \"../../common/middleware/user-configuration.js\";\nimport { identify } from \"../../common/middleware/user-identification.js\";\nimport setBlocking from \"../../common/output.js\";\nimport { Arguments } from \"../../variable/models.js\";\nimport { update } from \"../../variable/update/handler.js\";\n\nexport default {\n desc: \"Updates an existing variable for a branch\",\n command: \"update\",\n builder: (yargs: Argv): Argv<unknown> => {\n return yargs\n .usage(\n \"$0 variable update --name <name> --value <value> --branch <branch> [options]\"\n )\n .option(\"name\", {\n type: \"string\",\n describe: \"The name of the variable to update\",\n })\n .option(\"value\", {\n type: \"string\",\n describe: \"The value of the variable to update\",\n })\n .option(\"branch\", {\n type: \"string\",\n describe: \"The branch where the variable exists\",\n })\n .option(\"project\", {\n type: \"string\",\n describe: \"The project name\",\n })\n .option(\"api-key\", {\n type: \"string\",\n describe: \"The API Key from Zuplo\",\n envVar: \"API_KEY\",\n })\n .option(\"account\", {\n type: \"string\",\n describe: \"The account name\",\n })\n .demandOption([\"name\", \"value\", \"branch\"])\n .example([\n [\n \"$0 variable update --name API_KEY --value new-secret-key --branch main\",\n \"Update a variable on the main branch\",\n ],\n [\n \"$0 variable update --name BASE_URL --value https://api.prod.example.com --branch production --account my-account --project my-project\",\n \"Explicitly specify the account and project\",\n ],\n ])\n .middleware([\n setBlocking,\n authenticate,\n configure,\n fetchAccount,\n fetchProject,\n identify,\n ]);\n },\n handler: async (argv: unknown) => {\n await captureEvent({ argv, event: \"zuplo variable update\" });\n await update(argv as Arguments);\n },\n};\n"]}
@@ -1,9 +1,9 @@
1
- import { select, input } from "@inquirer/prompts";
1
+ import { readFile } from "node:fs/promises";
2
+ import { input, select } from "@inquirer/prompts";
3
+ import { createProject } from "../../project/create/handler.js";
2
4
  import { logger } from "../logger.js";
3
5
  import { printCriticalFailureToConsoleAndExit, textOrJson } from "../output.js";
4
6
  import settings from "../settings.js";
5
- import { readFile } from "node:fs/promises";
6
- import { createProject } from "../../project/create/handler.js";
7
7
  export async function fetchProject(argv) {
8
8
  if (argv.project && typeof argv.project === "string") {
9
9
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"get-project-param.js","sourceRoot":"","sources":["../../../src/common/middleware/get-project-param.ts"],"names":[],"mappings":"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","sourcesContent":["import { select, input } from \"@inquirer/prompts\";\nimport { logger } from \"../logger.js\";\nimport { printCriticalFailureToConsoleAndExit, textOrJson } from \"../output.js\";\nimport settings from \"../settings.js\";\nimport { readFile } from \"node:fs/promises\";\nimport { createProject } from \"../../project/create/handler.js\";\n\n/**\n * Middleware that ensures a project is provided in argv. If not, prompts the user.\n * Note: must be called after get account param.\n */\nexport async function fetchProject(argv: { [key: string]: unknown }) {\n if (argv.project && typeof argv.project === \"string\") {\n return;\n }\n\n if (!argv.account || typeof argv.account !== \"string\") {\n throw new Error(\"Invalid state: account is not set.\");\n }\n\n const baseUrl = `${settings.ZUPLO_DEVELOPER_API_ENDPOINT}/v1/projects`;\n const queryParams: Record<string, string> = {\n // This is safe because of the previous middleware where we set the account.\n accountName: argv.account!,\n };\n\n // Create the query string using URLSearchParams\n const url = new URL(baseUrl);\n url.search = new URLSearchParams(queryParams).toString();\n\n // Make a call to the API key\n const response = await fetch(url, {\n method: \"GET\",\n headers: {\n // biome-ignore lint/style/useNamingConvention: External API property\n Authorization: `Bearer ${argv.authToken}`,\n },\n });\n\n if (response.ok) {\n const projectsJson: { data: { name: string }[] } = await response.json();\n if (projectsJson.data.length === 0) {\n let projectName: string | undefined;\n try {\n const packageJson = JSON.parse(await readFile(\"package.json\", \"utf-8\"));\n projectName = packageJson.name;\n } catch (error) {\n logger.trace(\"Failed to read package.json\", error);\n }\n const outputProjectName = await input({\n message:\n \"You don't have any projects configured for this account. Please enter a project name to create one.\",\n default: projectName,\n });\n\n await createProject({\n name: outputProjectName,\n account: argv.account,\n authToken: argv.authToken as string,\n });\n argv.project = outputProjectName;\n logger.trace(`Project ${outputProjectName} created successfully.`);\n } else {\n try {\n argv.project = await select({\n message: \"Select the project\",\n choices: projectsJson.data\n .map((project) => {\n return {\n name: project.name,\n value: project.name,\n };\n })\n .sort((a, b) => a.name.localeCompare(b.name)),\n });\n } catch (error) {\n if (error.isTtyError || error.name === \"ExitPromptError\") {\n process.exit(0);\n }\n logger.trace(\"Failed to select project\", error);\n process.exit(1);\n }\n }\n } else {\n if (response.status === 404) {\n await printCriticalFailureToConsoleAndExit(\n \"You don't have any projects configured for this account. Create a project in the Zuplo dashboard and try again.\"\n );\n }\n logger.trace(\n {\n status: response.status,\n statusText: response.statusText,\n response: textOrJson(await response.text()),\n },\n \"Failed to request projects for account\"\n );\n await printCriticalFailureToConsoleAndExit(\n \"Error: Failed to request projects for the account.\"\n );\n }\n}\n"]}
1
+ {"version":3,"file":"get-project-param.js","sourceRoot":"","sources":["../../../src/common/middleware/get-project-param.ts"],"names":[],"mappings":"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","sourcesContent":["import { readFile } from \"node:fs/promises\";\nimport { input, select } from \"@inquirer/prompts\";\nimport { createProject } from \"../../project/create/handler.js\";\nimport { logger } from \"../logger.js\";\nimport { printCriticalFailureToConsoleAndExit, textOrJson } from \"../output.js\";\nimport settings from \"../settings.js\";\n\n/**\n * Middleware that ensures a project is provided in argv. If not, prompts the user.\n * Note: must be called after get account param.\n */\nexport async function fetchProject(argv: { [key: string]: unknown }) {\n if (argv.project && typeof argv.project === \"string\") {\n return;\n }\n\n if (!argv.account || typeof argv.account !== \"string\") {\n throw new Error(\"Invalid state: account is not set.\");\n }\n\n const baseUrl = `${settings.ZUPLO_DEVELOPER_API_ENDPOINT}/v1/projects`;\n const queryParams: Record<string, string> = {\n // This is safe because of the previous middleware where we set the account.\n accountName: argv.account!,\n };\n\n // Create the query string using URLSearchParams\n const url = new URL(baseUrl);\n url.search = new URLSearchParams(queryParams).toString();\n\n // Make a call to the API key\n const response = await fetch(url, {\n method: \"GET\",\n headers: {\n // biome-ignore lint/style/useNamingConvention: External API property\n Authorization: `Bearer ${argv.authToken}`,\n },\n });\n\n if (response.ok) {\n const projectsJson: { data: { name: string }[] } = await response.json();\n if (projectsJson.data.length === 0) {\n let projectName: string | undefined;\n try {\n const packageJson = JSON.parse(await readFile(\"package.json\", \"utf-8\"));\n projectName = packageJson.name;\n } catch (error) {\n logger.trace(\"Failed to read package.json\", error);\n }\n const outputProjectName = await input({\n message:\n \"You don't have any projects configured for this account. Please enter a project name to create one.\",\n default: projectName,\n });\n\n await createProject({\n name: outputProjectName,\n account: argv.account,\n authToken: argv.authToken as string,\n });\n argv.project = outputProjectName;\n logger.trace(`Project ${outputProjectName} created successfully.`);\n } else {\n try {\n argv.project = await select({\n message: \"Select the project\",\n choices: projectsJson.data\n .map((project) => {\n return {\n name: project.name,\n value: project.name,\n };\n })\n .sort((a, b) => a.name.localeCompare(b.name)),\n });\n } catch (error) {\n if (error.isTtyError || error.name === \"ExitPromptError\") {\n process.exit(0);\n }\n logger.trace(\"Failed to select project\", error);\n process.exit(1);\n }\n }\n } else {\n if (response.status === 404) {\n await printCriticalFailureToConsoleAndExit(\n \"You don't have any projects configured for this account. Create a project in the Zuplo dashboard and try again.\"\n );\n }\n logger.trace(\n {\n status: response.status,\n statusText: response.statusText,\n response: textOrJson(await response.text()),\n },\n \"Failed to request projects for account\"\n );\n await printCriticalFailureToConsoleAndExit(\n \"Error: Failed to request projects for the account.\"\n );\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"populate.d.ts","sourceRoot":"","sources":["../../src/common/populate.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AA+B/C,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,GAAG,aAAa,GAAG,WAAW,CAAC,iBAiD3D;AAUD,wBAAsB,eAAe,CACnC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,GAAG,aAAa,GAAG,WAAW,CAAC,iBAwF3D"}
1
+ {"version":3,"file":"populate.d.ts","sourceRoot":"","sources":["../../src/common/populate.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAmC/C,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,GAAG,aAAa,GAAG,WAAW,CAAC,iBAiD3D;AAUD,wBAAsB,eAAe,CACnC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,GAAG,aAAa,GAAG,WAAW,CAAC,iBAwF3D"}
@@ -1 +1 @@
1
- {"version":3,"file":"populate.js","sourceRoot":"","sources":["../../src/common/populate.ts"],"names":[],"mappings":"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","sourcesContent":["import { writeFile } from \"node:fs/promises\";\nimport { join, resolve } from \"node:path\";\nimport { ZUPLO_SYSTEM_ENV_VAR } from \"./constants.js\";\nimport { logger } from \"./logger.js\";\nimport { printCriticalFailureToConsoleAndExit } from \"./output.js\";\nimport settings from \"./settings.js\";\nimport { Arguments } from \"../link/handler.js\";\n\nconst SYSTEM_KEYS = [\n \"accountName\",\n \"projectName\",\n \"environmentType\",\n \"systemConfigurations\",\n];\n\n/**\n * Wraps environment variable values in single quotes for dotenv compatibility.\n * Escapes any single quotes within the value by replacing them with \\'.\n * This ensures proper parsing while preserving special characters.\n *\n * @param value The environment variable value to wrap\n * @returns The value wrapped in single quotes with escaped single quotes\n */\nfunction wrapEnvValue(value: string): string {\n // Escape single quotes by replacing them with \\'\n const escapedValue = value.replace(/\"/g, '\\\\\"');\n // Always use single quotes\n return `\"${escapedValue}\"`;\n}\n\n/**\n * Pulls the system configuration from the API and writes it to the .env.zuplo file.\n * All the system environment variables are encoded in base58. Use this wherever\n * we need to *make sure* that the system environment variables are preserved correctly,\n * e.g in deployments.\n * @param argv\n */\nexport async function pullSystemConfig(\n argv: Pick<Arguments, \"dir\" | \"environment\" | \"authToken\">\n) {\n const normalizedDir = resolve(argv.dir);\n const zuploPreferredConfigFile = join(normalizedDir, ZUPLO_SYSTEM_ENV_VAR);\n\n const environmentResponseFromDeveloperAPI = await fetch(\n `${settings.ZUPLO_DEVELOPER_API_ENDPOINT}/v1/environments/${argv.environment}/configurations`,\n {\n headers: {\n authorization: `Bearer ${argv.authToken}`,\n },\n }\n );\n\n if (!environmentResponseFromDeveloperAPI.ok) {\n if (\n environmentResponseFromDeveloperAPI.status === 404 ||\n environmentResponseFromDeveloperAPI.status === 401\n ) {\n await printCriticalFailureToConsoleAndExit(\n \"Error: Failed to link data from the environment. The environment you specified doesn't exist or you don't have access to it.\"\n );\n } else {\n logger.error(\n {\n status: environmentResponseFromDeveloperAPI.status,\n statusText: environmentResponseFromDeveloperAPI.statusText,\n },\n `Failed to link data from ${argv.environment}`\n );\n await printCriticalFailureToConsoleAndExit(\n \"Error: Failed to link data from the environment. Please try again later.\"\n );\n }\n }\n\n const payload = await environmentResponseFromDeveloperAPI.json();\n\n const content = `\n# This file is auto-generated from zuplo link. Please do not edit it manually.\n# It will be auto-generated afresh the next time you run zuplo link.\n# If you wish to add your own environment variables, create a separate .env file.\nZUPLO_ACCOUNT_NAME=${payload.accountName}\nZUPLO_PROJECT_NAME=${payload.projectName}\nZUPLO_ENVIRONMENT_TYPE=${payload.environmentType}\nZUPLO_SYSTEM_CONFIGURATIONS=${payload[\"systemConfigurations\"]}\n`;\n\n await writeFile(zuploPreferredConfigFile, content);\n}\n\n/**\n * Pulls the local configuration from dev-api and writes it to the .env.zuplo file.\n * This method differs from pullSystemConfig in that it writes the user defined\n * environment variables, as well as the public variables explicitly to the\n * file instead of getting all variable in the base58 encoded ZUPLO_SYSTEM_CONFIGURATIONS\n * variable.\n * @param argv\n */\nexport async function pullLocalConfig(\n argv: Pick<Arguments, \"dir\" | \"environment\" | \"authToken\">\n) {\n const normalizedDir = resolve(argv.dir);\n const zuploPreferredConfigFile = join(normalizedDir, ZUPLO_SYSTEM_ENV_VAR);\n\n const environmentResponseFromDeveloperAPI = await fetch(\n `${settings.ZUPLO_DEVELOPER_API_ENDPOINT}/v1/environments/${argv.environment}/local-configurations`,\n {\n headers: {\n authorization: `Bearer ${argv.authToken}`,\n },\n }\n );\n\n if (!environmentResponseFromDeveloperAPI.ok) {\n if (\n environmentResponseFromDeveloperAPI.status === 404 ||\n environmentResponseFromDeveloperAPI.status === 401\n ) {\n await printCriticalFailureToConsoleAndExit(\n \"Error: Failed to link data from the environment. The environment you specified doesn't exist or you don't have access to it.\"\n );\n } else {\n logger.error(\n {\n status: environmentResponseFromDeveloperAPI.status,\n statusText: environmentResponseFromDeveloperAPI.statusText,\n },\n `Failed to link data from ${argv.environment}`\n );\n await printCriticalFailureToConsoleAndExit(\n \"Error: Failed to link data from the environment. Please try again later.\"\n );\n }\n }\n\n const payload = await environmentResponseFromDeveloperAPI.json();\n\n // We wrap the env vars in appropriate quotes to preserve special characters\n // and handle single quotes properly for dotenv parsing.\n const userEnvVars = Object.keys(payload)\n .filter((key) => {\n return !key.startsWith(\"ZUPLO_PUBLIC_\") && !SYSTEM_KEYS.includes(key);\n })\n .map((key) => {\n return `${key}=${wrapEnvValue(payload[key])}`;\n });\n\n const zuploPublicEnvVars = Object.keys(payload)\n .filter((key) => {\n // These start with ZUPLO_PUBLIC_ and are not system variables\n return key.startsWith(\"ZUPLO_PUBLIC_\");\n })\n .map((key) => {\n return `${key}=${wrapEnvValue(payload[key])}`;\n });\n\n let content = `# This file is auto-generated from zuplo link. Please do not edit it manually.\n# It will be auto-generated afresh the next time you run zuplo link.\n# If you wish to add your own environment variables, create a separate .env file.\n\nZUPLO_ACCOUNT_NAME=${payload.accountName}\nZUPLO_PROJECT_NAME=${payload.projectName}\nZUPLO_ENVIRONMENT_TYPE=${payload.environmentType}\nZUPLO_SYSTEM_CONFIGURATIONS=${payload[\"systemConfigurations\"]}`;\n\n // Only add public environment variables section if there are any\n if (zuploPublicEnvVars.length > 0) {\n content += `\n\n# Public Zuplo environment variables\n${zuploPublicEnvVars.join(\"\\n\")}`;\n }\n\n // Only add user environment variables section if there are any\n if (userEnvVars.length > 0) {\n content += `\n\n# Environment variables defined in the Zuplo UI for the environment\n# Note that \" characters are escaped with a backslash and escaped double quotes\n# will show up as \\\\\" in the value.\n${userEnvVars.join(\"\\n\")}`;\n }\n\n // Add final newline\n content += \"\\n\";\n\n await writeFile(zuploPreferredConfigFile, content);\n}\n"]}
1
+ {"version":3,"file":"populate.js","sourceRoot":"","sources":["../../src/common/populate.ts"],"names":[],"mappings":"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","sourcesContent":["import { writeFile } from \"node:fs/promises\";\nimport { join, resolve } from \"node:path\";\nimport { Arguments } from \"../link/handler.js\";\nimport { ZUPLO_SYSTEM_ENV_VAR } from \"./constants.js\";\nimport { logger } from \"./logger.js\";\nimport { printCriticalFailureToConsoleAndExit } from \"./output.js\";\nimport settings from \"./settings.js\";\n\nconst SYSTEM_KEYS = [\n \"accountName\",\n \"projectName\",\n \"environmentType\",\n \"systemConfigurations\",\n];\n\n/**\n * Wraps environment variable values in single quotes for dotenv compatibility.\n * Escapes any single quotes within the value by replacing them with \\'.\n * This ensures proper parsing while preserving special characters.\n *\n * @param value The environment variable value to wrap\n * @returns The value wrapped in single quotes with escaped single quotes\n */\nfunction wrapEnvValue(value: string): string {\n // Escape single quotes by replacing them with \\'\n const escapedValue = value.replace(/\"/g, '\\\\\"');\n // Always use single quotes\n return `\"${escapedValue}\"`;\n}\n\n/**\n * Pulls the system configuration from the API and writes it to the .env.zuplo file.\n * All the system environment variables are encoded in base58. Use this wherever\n * we need to *make sure* that the system environment variables are preserved correctly,\n * e.g in deployments.\n * @param argv\n */\nexport async function pullSystemConfig(\n argv: Pick<Arguments, \"dir\" | \"environment\" | \"authToken\">\n) {\n const normalizedDir = resolve(argv.dir);\n const zuploPreferredConfigFile = join(normalizedDir, ZUPLO_SYSTEM_ENV_VAR);\n\n const environmentResponseFromDeveloperAPI = await fetch(\n `${settings.ZUPLO_DEVELOPER_API_ENDPOINT}/v1/environments/${argv.environment}/configurations`,\n {\n headers: {\n authorization: `Bearer ${argv.authToken}`,\n },\n }\n );\n\n if (!environmentResponseFromDeveloperAPI.ok) {\n if (\n environmentResponseFromDeveloperAPI.status === 404 ||\n environmentResponseFromDeveloperAPI.status === 401\n ) {\n await printCriticalFailureToConsoleAndExit(\n \"Error: Failed to link data from the environment. The environment you specified doesn't exist or you don't have access to it.\"\n );\n } else {\n logger.error(\n {\n status: environmentResponseFromDeveloperAPI.status,\n statusText: environmentResponseFromDeveloperAPI.statusText,\n },\n `Failed to link data from ${argv.environment}`\n );\n await printCriticalFailureToConsoleAndExit(\n \"Error: Failed to link data from the environment. Please try again later.\"\n );\n }\n }\n\n const payload = await environmentResponseFromDeveloperAPI.json();\n\n const content = `\n# This file is auto-generated from zuplo link. Please do not edit it manually.\n# It will be auto-generated afresh the next time you run zuplo link.\n# If you wish to add your own environment variables, create a separate .env file.\nZUPLO_ACCOUNT_NAME=${payload.accountName}\nZUPLO_PROJECT_NAME=${payload.projectName}\nZUPLO_ENVIRONMENT_TYPE=${payload.environmentType}\nZUPLO_SYSTEM_CONFIGURATIONS=${payload[\"systemConfigurations\"]}\n`;\n\n await writeFile(zuploPreferredConfigFile, content);\n}\n\n/**\n * Pulls the local configuration from dev-api and writes it to the .env.zuplo file.\n * This method differs from pullSystemConfig in that it writes the user defined\n * environment variables, as well as the public variables explicitly to the\n * file instead of getting all variable in the base58 encoded ZUPLO_SYSTEM_CONFIGURATIONS\n * variable.\n * @param argv\n */\nexport async function pullLocalConfig(\n argv: Pick<Arguments, \"dir\" | \"environment\" | \"authToken\">\n) {\n const normalizedDir = resolve(argv.dir);\n const zuploPreferredConfigFile = join(normalizedDir, ZUPLO_SYSTEM_ENV_VAR);\n\n const environmentResponseFromDeveloperAPI = await fetch(\n `${settings.ZUPLO_DEVELOPER_API_ENDPOINT}/v1/environments/${argv.environment}/local-configurations`,\n {\n headers: {\n authorization: `Bearer ${argv.authToken}`,\n },\n }\n );\n\n if (!environmentResponseFromDeveloperAPI.ok) {\n if (\n environmentResponseFromDeveloperAPI.status === 404 ||\n environmentResponseFromDeveloperAPI.status === 401\n ) {\n await printCriticalFailureToConsoleAndExit(\n \"Error: Failed to link data from the environment. The environment you specified doesn't exist or you don't have access to it.\"\n );\n } else {\n logger.error(\n {\n status: environmentResponseFromDeveloperAPI.status,\n statusText: environmentResponseFromDeveloperAPI.statusText,\n },\n `Failed to link data from ${argv.environment}`\n );\n await printCriticalFailureToConsoleAndExit(\n \"Error: Failed to link data from the environment. Please try again later.\"\n );\n }\n }\n\n const payload = await environmentResponseFromDeveloperAPI.json();\n\n // We wrap the env vars in appropriate quotes to preserve special characters\n // and handle single quotes properly for dotenv parsing.\n const userEnvVars = Object.keys(payload)\n .filter((key) => {\n return !key.startsWith(\"ZUPLO_PUBLIC_\") && !SYSTEM_KEYS.includes(key);\n })\n .map((key) => {\n return `${key}=${wrapEnvValue(payload[key])}`;\n });\n\n const zuploPublicEnvVars = Object.keys(payload)\n .filter((key) => {\n // These start with ZUPLO_PUBLIC_ and are not system variables\n return key.startsWith(\"ZUPLO_PUBLIC_\");\n })\n .map((key) => {\n return `${key}=${wrapEnvValue(payload[key])}`;\n });\n\n let content = `# This file is auto-generated from zuplo link. Please do not edit it manually.\n# It will be auto-generated afresh the next time you run zuplo link.\n# If you wish to add your own environment variables, create a separate .env file.\n\nZUPLO_ACCOUNT_NAME=${payload.accountName}\nZUPLO_PROJECT_NAME=${payload.projectName}\nZUPLO_ENVIRONMENT_TYPE=${payload.environmentType}\nZUPLO_SYSTEM_CONFIGURATIONS=${payload[\"systemConfigurations\"]}`;\n\n // Only add public environment variables section if there are any\n if (zuploPublicEnvVars.length > 0) {\n content += `\n\n# Public Zuplo environment variables\n${zuploPublicEnvVars.join(\"\\n\")}`;\n }\n\n // Only add user environment variables section if there are any\n if (userEnvVars.length > 0) {\n content += `\n\n# Environment variables defined in the Zuplo UI for the environment\n# Note that \" characters are escaped with a backslash and escaped double quotes\n# will show up as \\\\\" in the value.\n${userEnvVars.join(\"\\n\")}`;\n }\n\n // Add final newline\n content += \"\\n\";\n\n await writeFile(zuploPreferredConfigFile, content);\n}\n"]}
@@ -1,5 +1,5 @@
1
- import { describe, it } from "node:test";
2
1
  import { strictEqual } from "node:assert";
2
+ import { describe, it } from "node:test";
3
3
  import { stringifyConfig } from "./stringify-config.js";
4
4
  describe("stringifyConfig", () => {
5
5
  it("should handle env var patterns", () => {
@@ -1 +1 @@
1
- {"version":3,"file":"stringify-config.test.js","sourceRoot":"","sources":["../../../src/common/utils/stringify-config.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,MAAM,GAAG;YAEb,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,IAAI;YACX,UAAU,EAAE,SAAS;YACrB,YAAY,EAAE,gBAAgB;YAG9B,MAAM,EAAE,eAAe;YACvB,KAAK,EAAE,oBAAoB;YAG3B,KAAK,EAAE,wBAAwB;YAC/B,OAAO,EAAE,sBAAsB;YAC/B,OAAO,EAAE,mCAAmC;YAG5C,OAAO,EAAE,sCAAsC;YAG/C,MAAM,EAAE,0BAA0B;YAGlC,WAAW,EAAE,kCAAkC;YAC/C,SAAS,EAAE,wBAAwB;YAGnC,QAAQ,EAAE;gBACR,OAAO,EAAE,mBAAmB;gBAC5B,KAAK,EAAE,4BAA4B;aACpC;YAGD,UAAU,EAAE;gBACV,iBAAiB;gBACjB,aAAa;gBACb,2BAA2B;gBAC3B,uBAAuB;aACxB;YAGD,cAAc,EAAE;gBACd,KAAK,EAAE;oBACL,QAAQ,EAAE,uBAAuB;oBACjC,MAAM,EAAE,yBAAyB;oBACjC,MAAM,EAAE,CAAC,MAAM,EAAE,mBAAmB,CAAC;iBACtC;aACF;SACF,CAAC;QAEF,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoCnB,CAAC;QAEC,WAAW,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { describe, it } from \"node:test\";\nimport { strictEqual } from \"node:assert\";\nimport { stringifyConfig } from \"./stringify-config.js\";\n\ndescribe(\"stringifyConfig\", () => {\n it(\"should handle env var patterns\", () => {\n const config = {\n // Simple values without env vars\n enabled: true,\n count: 42,\n ratio: 3.14,\n empty: null,\n notDefined: undefined,\n normalString: \"regular string\",\n\n // Env vars - complete replacement\n apiKey: \"$env(API_KEY)\",\n dbUrl: \"$env(DATABASE_URL)\",\n\n // Env vars with prefixes, suffixes, and both\n title: \"$env(APP_TITLE) Portal\",\n baseUrl: \"https://$env(DOMAIN)\",\n fullUrl: \"https://$env(HOST):$env(PORT)/api\",\n\n // Multiple env vars in one string\n message: \"$env(APP_NAME) version $env(VERSION)\",\n\n // Env vars with underscores and numbers\n secret: \"$env(JWT_SECRET_KEY_123)\",\n\n // Special characters in non-env parts\n description: 'App \"with quotes\" $env(APP_NAME)',\n multiline: \"Line1\\nLine2 $env(VAR)\",\n\n // Nested objects\n metadata: {\n favicon: \"$env(FAVICON_URL)\",\n title: \"Welcome to $env(SITE_NAME)\",\n },\n\n // Arrays with mixed content\n navigation: [\n \"$env(HOME_PATH)\",\n \"static/path\",\n \"prefix $env(DYNAMIC_PATH)\",\n \"$env(API_PATH) suffix\",\n ],\n\n // Deep nesting\n authentication: {\n oauth: {\n clientId: \"$env(OAUTH_CLIENT_ID)\",\n issuer: \"$env(OAUTH_ISSUER)/auth\",\n scopes: [\"read\", \"$env(OAUTH_SCOPE)\"],\n },\n },\n };\n\n const expected = `{\n enabled: true,\n count: 42,\n ratio: 3.14,\n empty: null,\n notDefined: undefined,\n normalString: 'regular string',\n apiKey: process.env.API_KEY,\n dbUrl: process.env.DATABASE_URL,\n title: process.env.APP_TITLE + \" Portal\",\n baseUrl: \"https://\" + process.env.DOMAIN,\n fullUrl: \"https://\" + process.env.HOST + \":\" + process.env.PORT + \"/api\",\n message: process.env.APP_NAME + \" version \" + process.env.VERSION,\n secret: process.env.JWT_SECRET_KEY_123,\n description: \"App \\\\\"with quotes\\\\\" \" + process.env.APP_NAME,\n multiline: \"Line1\\\\nLine2 \" + process.env.VAR,\n metadata: {\n favicon: process.env.FAVICON_URL,\n title: \"Welcome to \" + process.env.SITE_NAME\n },\n navigation: [\n process.env.HOME_PATH,\n 'static/path',\n \"prefix \" + process.env.DYNAMIC_PATH,\n process.env.API_PATH + \" suffix\"\n ],\n authentication: {\n oauth: {\n clientId: process.env.OAUTH_CLIENT_ID,\n issuer: process.env.OAUTH_ISSUER + \"/auth\",\n scopes: [\n 'read',\n process.env.OAUTH_SCOPE\n ]\n }\n }\n}`;\n\n strictEqual(stringifyConfig(config), expected);\n });\n});\n"]}
1
+ {"version":3,"file":"stringify-config.test.js","sourceRoot":"","sources":["../../../src/common/utils/stringify-config.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,MAAM,GAAG;YAEb,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,IAAI;YACX,UAAU,EAAE,SAAS;YACrB,YAAY,EAAE,gBAAgB;YAG9B,MAAM,EAAE,eAAe;YACvB,KAAK,EAAE,oBAAoB;YAG3B,KAAK,EAAE,wBAAwB;YAC/B,OAAO,EAAE,sBAAsB;YAC/B,OAAO,EAAE,mCAAmC;YAG5C,OAAO,EAAE,sCAAsC;YAG/C,MAAM,EAAE,0BAA0B;YAGlC,WAAW,EAAE,kCAAkC;YAC/C,SAAS,EAAE,wBAAwB;YAGnC,QAAQ,EAAE;gBACR,OAAO,EAAE,mBAAmB;gBAC5B,KAAK,EAAE,4BAA4B;aACpC;YAGD,UAAU,EAAE;gBACV,iBAAiB;gBACjB,aAAa;gBACb,2BAA2B;gBAC3B,uBAAuB;aACxB;YAGD,cAAc,EAAE;gBACd,KAAK,EAAE;oBACL,QAAQ,EAAE,uBAAuB;oBACjC,MAAM,EAAE,yBAAyB;oBACjC,MAAM,EAAE,CAAC,MAAM,EAAE,mBAAmB,CAAC;iBACtC;aACF;SACF,CAAC;QAEF,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoCnB,CAAC;QAEC,WAAW,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { strictEqual } from \"node:assert\";\nimport { describe, it } from \"node:test\";\nimport { stringifyConfig } from \"./stringify-config.js\";\n\ndescribe(\"stringifyConfig\", () => {\n it(\"should handle env var patterns\", () => {\n const config = {\n // Simple values without env vars\n enabled: true,\n count: 42,\n ratio: 3.14,\n empty: null,\n notDefined: undefined,\n normalString: \"regular string\",\n\n // Env vars - complete replacement\n apiKey: \"$env(API_KEY)\",\n dbUrl: \"$env(DATABASE_URL)\",\n\n // Env vars with prefixes, suffixes, and both\n title: \"$env(APP_TITLE) Portal\",\n baseUrl: \"https://$env(DOMAIN)\",\n fullUrl: \"https://$env(HOST):$env(PORT)/api\",\n\n // Multiple env vars in one string\n message: \"$env(APP_NAME) version $env(VERSION)\",\n\n // Env vars with underscores and numbers\n secret: \"$env(JWT_SECRET_KEY_123)\",\n\n // Special characters in non-env parts\n description: 'App \"with quotes\" $env(APP_NAME)',\n multiline: \"Line1\\nLine2 $env(VAR)\",\n\n // Nested objects\n metadata: {\n favicon: \"$env(FAVICON_URL)\",\n title: \"Welcome to $env(SITE_NAME)\",\n },\n\n // Arrays with mixed content\n navigation: [\n \"$env(HOME_PATH)\",\n \"static/path\",\n \"prefix $env(DYNAMIC_PATH)\",\n \"$env(API_PATH) suffix\",\n ],\n\n // Deep nesting\n authentication: {\n oauth: {\n clientId: \"$env(OAUTH_CLIENT_ID)\",\n issuer: \"$env(OAUTH_ISSUER)/auth\",\n scopes: [\"read\", \"$env(OAUTH_SCOPE)\"],\n },\n },\n };\n\n const expected = `{\n enabled: true,\n count: 42,\n ratio: 3.14,\n empty: null,\n notDefined: undefined,\n normalString: 'regular string',\n apiKey: process.env.API_KEY,\n dbUrl: process.env.DATABASE_URL,\n title: process.env.APP_TITLE + \" Portal\",\n baseUrl: \"https://\" + process.env.DOMAIN,\n fullUrl: \"https://\" + process.env.HOST + \":\" + process.env.PORT + \"/api\",\n message: process.env.APP_NAME + \" version \" + process.env.VERSION,\n secret: process.env.JWT_SECRET_KEY_123,\n description: \"App \\\\\"with quotes\\\\\" \" + process.env.APP_NAME,\n multiline: \"Line1\\\\nLine2 \" + process.env.VAR,\n metadata: {\n favicon: process.env.FAVICON_URL,\n title: \"Welcome to \" + process.env.SITE_NAME\n },\n navigation: [\n process.env.HOME_PATH,\n 'static/path',\n \"prefix \" + process.env.DYNAMIC_PATH,\n process.env.API_PATH + \" suffix\"\n ],\n authentication: {\n oauth: {\n clientId: process.env.OAUTH_CLIENT_ID,\n issuer: process.env.OAUTH_ISSUER + \"/auth\",\n scopes: [\n 'read',\n process.env.OAUTH_SCOPE\n ]\n }\n }\n}`;\n\n strictEqual(stringifyConfig(config), expected);\n });\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"worker-output.d.ts","sourceRoot":"","sources":["../../src/common/worker-output.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAiC,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAO1E,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,QAoMpE;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,QAEvD;AAKD,wBAAsB,eAAe,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,iBA2ClE"}
1
+ {"version":3,"file":"worker-output.d.ts","sourceRoot":"","sources":["../../src/common/worker-output.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAiC,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAM1E,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,QAoMpE;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,QAEvD;AAKD,wBAAsB,eAAe,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,iBA2ClE"}
@@ -1,5 +1,5 @@
1
- import { LogFormatter } from "@zuplo/core/cli";
2
1
  import { readFile } from "node:fs/promises";
2
+ import { LogFormatter } from "@zuplo/core/cli";
3
3
  const logFormatter = new LogFormatter(async (path) => {
4
4
  return readFile(path, { encoding: "utf8" });
5
5
  });