@zuplo/cli 3.0.5 → 6.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__tests__/archive-utils.test.d.ts +2 -0
- package/dist/__tests__/archive-utils.test.d.ts.map +1 -0
- package/dist/__tests__/archive-utils.test.js +55 -0
- package/dist/__tests__/archive-utils.test.js.map +1 -0
- package/dist/__tests__/engine.test.d.ts +2 -0
- package/dist/__tests__/engine.test.d.ts.map +1 -0
- package/dist/{convert → __tests__}/engine.test.js +2 -5
- package/dist/__tests__/engine.test.js.map +1 -0
- package/dist/__tests__/import-openapi-utils.test.d.ts +2 -0
- package/dist/__tests__/import-openapi-utils.test.d.ts.map +1 -0
- package/dist/__tests__/import-openapi-utils.test.js +125 -0
- package/dist/__tests__/import-openapi-utils.test.js.map +1 -0
- package/dist/__tests__/import-openapi.test.d.ts +2 -0
- package/dist/__tests__/import-openapi.test.d.ts.map +1 -0
- package/dist/__tests__/import-openapi.test.js +166 -0
- package/dist/__tests__/import-openapi.test.js.map +1 -0
- package/dist/__tests__/oas-test-data.d.ts +98 -0
- package/dist/__tests__/oas-test-data.d.ts.map +1 -0
- package/dist/__tests__/oas-test-data.js +114 -0
- package/dist/__tests__/oas-test-data.js.map +1 -0
- package/dist/__tests__/outdated.test.d.ts +2 -0
- package/dist/__tests__/outdated.test.d.ts.map +1 -0
- package/dist/{common → __tests__}/outdated.test.js +4 -7
- package/dist/__tests__/outdated.test.js.map +1 -0
- package/dist/__tests__/tsconfig-upgrader.test.d.ts +2 -0
- package/dist/__tests__/tsconfig-upgrader.test.d.ts.map +1 -0
- package/dist/__tests__/tsconfig-upgrader.test.js +27 -0
- package/dist/__tests__/tsconfig-upgrader.test.js.map +1 -0
- package/dist/build/handler.d.ts +7 -0
- package/dist/build/handler.d.ts.map +1 -0
- package/dist/build/handler.js +29 -0
- package/dist/build/handler.js.map +1 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +4 -5
- package/dist/cli.js.map +1 -0
- package/dist/cmds/build.d.ts +9 -0
- package/dist/cmds/build.d.ts.map +1 -0
- package/dist/cmds/build.js +39 -0
- package/dist/cmds/build.js.map +1 -0
- package/dist/cmds/compile.d.ts +9 -0
- package/dist/cmds/compile.d.ts.map +1 -0
- package/dist/cmds/compile.js +1 -4
- package/dist/cmds/compile.js.map +1 -0
- package/dist/cmds/convert.d.ts +9 -0
- package/dist/cmds/convert.d.ts.map +1 -0
- package/dist/cmds/convert.js +1 -4
- package/dist/cmds/convert.js.map +1 -0
- package/dist/cmds/delete.d.ts +9 -0
- package/dist/cmds/delete.d.ts.map +1 -0
- package/dist/cmds/delete.js +1 -4
- package/dist/cmds/delete.js.map +1 -0
- package/dist/cmds/deploy.d.ts +9 -0
- package/dist/cmds/deploy.d.ts.map +1 -0
- package/dist/cmds/deploy.js +8 -5
- package/dist/cmds/deploy.js.map +1 -0
- package/dist/cmds/dev.d.ts +9 -0
- package/dist/cmds/dev.d.ts.map +1 -0
- package/dist/cmds/dev.js +1 -4
- package/dist/cmds/dev.js.map +1 -0
- package/dist/cmds/editor.d.ts +9 -0
- package/dist/cmds/editor.d.ts.map +1 -0
- package/dist/cmds/editor.js +1 -4
- package/dist/cmds/editor.js.map +1 -0
- package/dist/cmds/link.d.ts +9 -0
- package/dist/cmds/link.d.ts.map +1 -0
- package/dist/cmds/link.js +1 -4
- package/dist/cmds/link.js.map +1 -0
- package/dist/cmds/list.d.ts +9 -0
- package/dist/cmds/list.d.ts.map +1 -0
- package/dist/cmds/list.js +1 -4
- package/dist/cmds/list.js.map +1 -0
- package/dist/cmds/login.d.ts +9 -0
- package/dist/cmds/login.d.ts.map +1 -0
- package/dist/cmds/login.js +1 -4
- package/dist/cmds/login.js.map +1 -0
- package/dist/cmds/project/import-openapi.d.ts +9 -0
- package/dist/cmds/project/import-openapi.d.ts.map +1 -0
- package/dist/cmds/project/import-openapi.js +2 -12
- package/dist/cmds/project/import-openapi.js.map +1 -0
- package/dist/cmds/project/index.d.ts +4 -0
- package/dist/cmds/project/index.d.ts.map +1 -0
- package/dist/cmds/project/index.js +1 -4
- package/dist/cmds/project/index.js.map +1 -0
- package/dist/cmds/project/update.d.ts +9 -0
- package/dist/cmds/project/update.d.ts.map +1 -0
- package/dist/cmds/project/update.js +1 -4
- package/dist/cmds/project/update.js.map +1 -0
- package/dist/cmds/test.d.ts +9 -0
- package/dist/cmds/test.d.ts.map +1 -0
- package/dist/cmds/test.js +1 -4
- package/dist/cmds/test.js.map +1 -0
- package/dist/cmds/tunnel/create.d.ts +9 -0
- package/dist/cmds/tunnel/create.d.ts.map +1 -0
- package/dist/cmds/tunnel/create.js +1 -4
- package/dist/cmds/tunnel/create.js.map +1 -0
- package/dist/cmds/tunnel/delete.d.ts +9 -0
- package/dist/cmds/tunnel/delete.d.ts.map +1 -0
- package/dist/cmds/tunnel/delete.js +1 -4
- package/dist/cmds/tunnel/delete.js.map +1 -0
- package/dist/cmds/tunnel/describe.d.ts +9 -0
- package/dist/cmds/tunnel/describe.d.ts.map +1 -0
- package/dist/cmds/tunnel/describe.js +1 -4
- package/dist/cmds/tunnel/describe.js.map +1 -0
- package/dist/cmds/tunnel/index.d.ts +4 -0
- package/dist/cmds/tunnel/index.d.ts.map +1 -0
- package/dist/cmds/tunnel/index.js +1 -4
- package/dist/cmds/tunnel/index.js.map +1 -0
- package/dist/cmds/tunnel/list.d.ts +9 -0
- package/dist/cmds/tunnel/list.d.ts.map +1 -0
- package/dist/cmds/tunnel/list.js +1 -4
- package/dist/cmds/tunnel/list.js.map +1 -0
- package/dist/cmds/tunnel/rotate-token.d.ts +9 -0
- package/dist/cmds/tunnel/rotate-token.d.ts.map +1 -0
- package/dist/cmds/tunnel/rotate-token.js +1 -4
- package/dist/cmds/tunnel/rotate-token.js.map +1 -0
- package/dist/cmds/tunnel/services/describe.d.ts +9 -0
- package/dist/cmds/tunnel/services/describe.d.ts.map +1 -0
- package/dist/cmds/tunnel/services/describe.js +1 -4
- package/dist/cmds/tunnel/services/describe.js.map +1 -0
- package/dist/cmds/tunnel/services/index.d.ts +4 -0
- package/dist/cmds/tunnel/services/index.d.ts.map +1 -0
- package/dist/cmds/tunnel/services/index.js +1 -4
- package/dist/cmds/tunnel/services/index.js.map +1 -0
- package/dist/cmds/tunnel/services/update.d.ts +9 -0
- package/dist/cmds/tunnel/services/update.d.ts.map +1 -0
- package/dist/cmds/tunnel/services/update.js +1 -4
- package/dist/cmds/tunnel/services/update.js.map +1 -0
- package/dist/cmds/variable/create.d.ts +9 -0
- package/dist/cmds/variable/create.d.ts.map +1 -0
- package/dist/cmds/variable/create.js +1 -4
- package/dist/cmds/variable/create.js.map +1 -0
- package/dist/cmds/variable/index.d.ts +4 -0
- package/dist/cmds/variable/index.d.ts.map +1 -0
- package/dist/cmds/variable/index.js +1 -4
- package/dist/cmds/variable/index.js.map +1 -0
- package/dist/cmds/variable/update.d.ts +9 -0
- package/dist/cmds/variable/update.d.ts.map +1 -0
- package/dist/cmds/variable/update.js +1 -4
- package/dist/cmds/variable/update.js.map +1 -0
- package/dist/common/alias.d.ts +2 -0
- package/dist/common/alias.d.ts.map +1 -0
- package/dist/common/alias.js +1 -4
- package/dist/common/alias.js.map +1 -0
- package/dist/common/analytics/lib.d.ts +18 -0
- package/dist/common/analytics/lib.d.ts.map +1 -0
- package/dist/common/analytics/lib.js +1 -4
- package/dist/common/analytics/lib.js.map +1 -0
- package/dist/common/api/lib.d.ts +16 -0
- package/dist/common/api/lib.d.ts.map +1 -0
- package/dist/common/api/lib.js +1 -4
- package/dist/common/api/lib.js.map +1 -0
- package/dist/common/args.d.ts +4 -0
- package/dist/common/args.d.ts.map +1 -0
- package/dist/common/args.js +1 -4
- package/dist/common/args.js.map +1 -0
- package/dist/common/constants.d.ts +16 -0
- package/dist/common/constants.d.ts.map +1 -0
- package/dist/common/constants.js +1 -4
- package/dist/common/constants.js.map +1 -0
- package/dist/common/handler.d.ts +2 -0
- package/dist/common/handler.d.ts.map +1 -0
- package/dist/common/handler.js +1 -4
- package/dist/common/handler.js.map +1 -0
- package/dist/common/logger.d.ts +3 -0
- package/dist/common/logger.d.ts.map +1 -0
- package/dist/common/logger.js +1 -4
- package/dist/common/logger.js.map +1 -0
- package/dist/common/machine-id/lib.d.ts +2 -0
- package/dist/common/machine-id/lib.d.ts.map +1 -0
- package/dist/common/machine-id/lib.js +1 -4
- package/dist/common/machine-id/lib.js.map +1 -0
- package/dist/common/middleware/user-configuration.d.ts +4 -0
- package/dist/common/middleware/user-configuration.d.ts.map +1 -0
- package/dist/common/middleware/user-configuration.js +1 -4
- package/dist/common/middleware/user-configuration.js.map +1 -0
- package/dist/common/middleware/user-identification.d.ts +4 -0
- package/dist/common/middleware/user-identification.d.ts.map +1 -0
- package/dist/common/middleware/user-identification.js +2 -5
- package/dist/common/middleware/user-identification.js.map +1 -0
- package/dist/common/models.d.ts +7 -0
- package/dist/common/models.d.ts.map +1 -0
- package/dist/common/models.js +1 -4
- package/dist/common/models.js.map +1 -0
- package/dist/common/outdated.d.ts +3 -0
- package/dist/common/outdated.d.ts.map +1 -0
- package/dist/common/outdated.js +3 -6
- package/dist/common/outdated.js.map +1 -0
- package/dist/common/output.d.ts +10 -0
- package/dist/common/output.d.ts.map +1 -0
- package/dist/common/output.js +2 -5
- package/dist/common/output.js.map +1 -0
- package/dist/common/settings.d.ts +11 -0
- package/dist/common/settings.d.ts.map +1 -0
- package/dist/common/settings.js +1 -4
- package/dist/common/settings.js.map +1 -0
- package/dist/common/upgraders/lib.d.ts +15 -0
- package/dist/common/upgraders/lib.d.ts.map +1 -0
- package/dist/common/upgraders/lib.js +1 -4
- package/dist/common/upgraders/lib.js.map +1 -0
- package/dist/common/upgraders/package-json-upgrader.d.ts +10 -0
- package/dist/common/upgraders/package-json-upgrader.d.ts.map +1 -0
- package/dist/common/upgraders/package-json-upgrader.js +1 -4
- package/dist/common/upgraders/package-json-upgrader.js.map +1 -0
- package/dist/common/upgraders/tsconfig-upgrader.d.ts +14 -0
- package/dist/common/upgraders/tsconfig-upgrader.d.ts.map +1 -0
- package/dist/common/upgraders/tsconfig-upgrader.js +1 -4
- package/dist/common/upgraders/tsconfig-upgrader.js.map +1 -0
- package/dist/common/upgraders/vscode-settings-json-upgrader.d.ts +7 -0
- package/dist/common/upgraders/vscode-settings-json-upgrader.d.ts.map +1 -0
- package/dist/common/upgraders/vscode-settings-json-upgrader.js +1 -4
- package/dist/common/upgraders/vscode-settings-json-upgrader.js.map +1 -0
- package/dist/common/utils/box.d.ts +8 -0
- package/dist/common/utils/box.d.ts.map +1 -0
- package/dist/common/utils/box.js +1 -4
- package/dist/common/utils/box.js.map +1 -0
- package/dist/common/utils/ports.d.ts +2 -0
- package/dist/common/utils/ports.d.ts.map +1 -0
- package/dist/common/utils/ports.js +4 -7
- package/dist/common/utils/ports.js.map +1 -0
- package/dist/common/utils/types.d.ts +2 -0
- package/dist/common/utils/types.d.ts.map +1 -0
- package/dist/common/utils/types.js +1 -4
- package/dist/common/utils/types.js.map +1 -0
- package/dist/common/utils/urls.d.ts +2 -0
- package/dist/common/utils/urls.d.ts.map +1 -0
- package/dist/common/utils/urls.js +1 -4
- package/dist/common/utils/urls.js.map +1 -0
- package/dist/common/validators/file-system-validator.d.ts +69 -0
- package/dist/common/validators/file-system-validator.d.ts.map +1 -0
- package/dist/common/validators/file-system-validator.js +3 -6
- package/dist/common/validators/file-system-validator.js.map +1 -0
- package/dist/common/validators/lib.d.ts +21 -0
- package/dist/common/validators/lib.d.ts.map +1 -0
- package/dist/common/validators/lib.js +1 -4
- package/dist/common/validators/lib.js.map +1 -0
- package/dist/common/validators/login-state-validator.d.ts +14 -0
- package/dist/common/validators/login-state-validator.d.ts.map +1 -0
- package/dist/common/validators/login-state-validator.js +1 -4
- package/dist/common/validators/login-state-validator.js.map +1 -0
- package/dist/common/validators/project-name-validator.d.ts +12 -0
- package/dist/common/validators/project-name-validator.d.ts.map +1 -0
- package/dist/common/validators/project-name-validator.js +1 -4
- package/dist/common/validators/project-name-validator.js.map +1 -0
- package/dist/common/xdg/lib.d.ts +7 -0
- package/dist/common/xdg/lib.d.ts.map +1 -0
- package/dist/common/xdg/lib.js +1 -4
- package/dist/common/xdg/lib.js.map +1 -0
- package/dist/compile/handler.d.ts +7 -0
- package/dist/compile/handler.d.ts.map +1 -0
- package/dist/compile/handler.js +4 -5
- package/dist/compile/handler.js.map +1 -0
- package/dist/convert/engine.d.ts +14 -0
- package/dist/convert/engine.d.ts.map +1 -0
- package/dist/convert/engine.js +1 -4
- package/dist/convert/engine.js.map +1 -0
- package/dist/convert/handler.d.ts +5 -0
- package/dist/convert/handler.d.ts.map +1 -0
- package/dist/convert/handler.js +1 -4
- package/dist/convert/handler.js.map +1 -0
- package/dist/convert/routes.generated.d.ts +69 -0
- package/dist/convert/routes.generated.d.ts.map +1 -0
- package/dist/convert/routes.generated.js +1 -4
- package/dist/convert/routes.generated.js.map +1 -0
- package/dist/delete/handler.d.ts +10 -0
- package/dist/delete/handler.d.ts.map +1 -0
- package/dist/delete/handler.js +2 -5
- package/dist/delete/handler.js.map +1 -0
- package/dist/delete/poll-deployment.d.ts +3 -0
- package/dist/delete/poll-deployment.d.ts.map +1 -0
- package/dist/delete/poll-deployment.js +1 -4
- package/dist/delete/poll-deployment.js.map +1 -0
- package/dist/deploy/archive.d.ts +19 -0
- package/dist/deploy/archive.d.ts.map +1 -0
- package/dist/deploy/archive.js +9 -8
- package/dist/deploy/archive.js.map +1 -0
- package/dist/deploy/file-upload.d.ts +2 -0
- package/dist/deploy/file-upload.d.ts.map +1 -0
- package/dist/deploy/file-upload.js +1 -4
- package/dist/deploy/file-upload.js.map +1 -0
- package/dist/deploy/handler.d.ts +13 -0
- package/dist/deploy/handler.d.ts.map +1 -0
- package/dist/deploy/handler.js +1 -4
- package/dist/deploy/handler.js.map +1 -0
- package/dist/deploy/poll-deployment.d.ts +13 -0
- package/dist/deploy/poll-deployment.d.ts.map +1 -0
- package/dist/deploy/poll-deployment.js +1 -4
- package/dist/deploy/poll-deployment.js.map +1 -0
- package/dist/dev/handler.d.ts +9 -0
- package/dist/dev/handler.d.ts.map +1 -0
- package/dist/dev/handler.js +2 -5
- package/dist/dev/handler.js.map +1 -0
- package/dist/editor/assets/index-03352ce7.d.ts +2 -0
- package/dist/editor/assets/index-03352ce7.d.ts.map +1 -0
- package/dist/editor/assets/index-03352ce7.js +9017 -207
- package/dist/editor/assets/index-03352ce7.js.map +1 -0
- package/dist/editor/handler.d.ts +6 -0
- package/dist/editor/handler.d.ts.map +1 -0
- package/dist/editor/handler.js +1 -4
- package/dist/editor/handler.js.map +1 -0
- package/dist/editor/index.html +1 -1
- package/dist/editor/server/cors-plugin.d.ts +4 -0
- package/dist/editor/server/cors-plugin.d.ts.map +1 -0
- package/dist/editor/server/cors-plugin.js +4 -7
- package/dist/editor/server/cors-plugin.js.map +1 -0
- package/dist/editor/server/server.d.ts +24 -0
- package/dist/editor/server/server.d.ts.map +1 -0
- package/dist/editor/server/server.js +2 -5
- package/dist/editor/server/server.js.map +1 -0
- package/dist/editor/server/xfs.d.ts +3 -0
- package/dist/editor/server/xfs.d.ts.map +1 -0
- package/dist/editor/server/xfs.js +2 -5
- package/dist/editor/server/xfs.js.map +1 -0
- package/dist/link/handler.d.ts +9 -0
- package/dist/link/handler.d.ts.map +1 -0
- package/dist/link/handler.js +1 -4
- package/dist/link/handler.js.map +1 -0
- package/dist/link/populate.d.ts +4 -0
- package/dist/link/populate.d.ts.map +1 -0
- package/dist/link/populate.js +1 -4
- package/dist/link/populate.js.map +1 -0
- package/dist/list/handler.d.ts +13 -0
- package/dist/list/handler.d.ts.map +1 -0
- package/dist/list/handler.js +5 -5
- package/dist/list/handler.js.map +1 -0
- package/dist/login/handler.d.ts +14 -0
- package/dist/login/handler.d.ts.map +1 -0
- package/dist/login/handler.js +1 -4
- package/dist/login/handler.js.map +1 -0
- package/dist/login/server.d.ts +2 -0
- package/dist/login/server.d.ts.map +1 -0
- package/dist/login/server.js +1 -4
- package/dist/login/server.js.map +1 -0
- package/dist/project/import-openapi/handler.d.ts +11 -0
- package/dist/project/import-openapi/handler.d.ts.map +1 -0
- package/dist/project/import-openapi/handler.js +14 -22
- package/dist/project/import-openapi/handler.js.map +1 -0
- package/dist/project/import-openapi/interfaces.d.ts +45 -0
- package/dist/project/import-openapi/interfaces.d.ts.map +1 -0
- package/dist/project/import-openapi/interfaces.js +1 -4
- package/dist/project/import-openapi/interfaces.js.map +1 -0
- package/dist/project/import-openapi/utils.d.ts +13 -0
- package/dist/project/import-openapi/utils.d.ts.map +1 -0
- package/dist/project/import-openapi/utils.js +1 -4
- package/dist/project/import-openapi/utils.js.map +1 -0
- package/dist/project/update/handler.d.ts +6 -0
- package/dist/project/update/handler.d.ts.map +1 -0
- package/dist/project/update/handler.js +1 -4
- package/dist/project/update/handler.js.map +1 -0
- package/dist/test/esbuild-config.d.ts +4 -0
- package/dist/test/esbuild-config.d.ts.map +1 -0
- package/dist/test/esbuild-config.js +1 -4
- package/dist/test/esbuild-config.js.map +1 -0
- package/dist/test/esbuild-plugins/node-test-prep-plugin.d.ts +4 -0
- package/dist/test/esbuild-plugins/node-test-prep-plugin.d.ts.map +1 -0
- package/dist/test/esbuild-plugins/node-test-prep-plugin.js +1 -4
- package/dist/test/esbuild-plugins/node-test-prep-plugin.js.map +1 -0
- package/dist/test/handler.d.ts +7 -0
- package/dist/test/handler.d.ts.map +1 -0
- package/dist/test/handler.js +1 -4
- package/dist/test/handler.js.map +1 -0
- package/dist/test/invoke-test.d.ts +4 -0
- package/dist/test/invoke-test.d.ts.map +1 -0
- package/dist/test/invoke-test.js +1 -4
- package/dist/test/invoke-test.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/tunnel/create/handler.d.ts +7 -0
- package/dist/tunnel/create/handler.d.ts.map +1 -0
- package/dist/tunnel/create/handler.js +1 -4
- package/dist/tunnel/create/handler.js.map +1 -0
- package/dist/tunnel/delete/handler.d.ts +7 -0
- package/dist/tunnel/delete/handler.d.ts.map +1 -0
- package/dist/tunnel/delete/handler.js +1 -4
- package/dist/tunnel/delete/handler.js.map +1 -0
- package/dist/tunnel/delete/poll-teardown-operation.d.ts +8 -0
- package/dist/tunnel/delete/poll-teardown-operation.d.ts.map +1 -0
- package/dist/tunnel/delete/poll-teardown-operation.js +1 -4
- package/dist/tunnel/delete/poll-teardown-operation.js.map +1 -0
- package/dist/tunnel/describe/handler.d.ts +7 -0
- package/dist/tunnel/describe/handler.d.ts.map +1 -0
- package/dist/tunnel/describe/handler.js +1 -4
- package/dist/tunnel/describe/handler.js.map +1 -0
- package/dist/tunnel/list/handler.d.ts +6 -0
- package/dist/tunnel/list/handler.d.ts.map +1 -0
- package/dist/tunnel/list/handler.js +1 -4
- package/dist/tunnel/list/handler.js.map +1 -0
- package/dist/tunnel/models.d.ts +24 -0
- package/dist/tunnel/models.d.ts.map +1 -0
- package/dist/tunnel/models.js +1 -4
- package/dist/tunnel/models.js.map +1 -0
- package/dist/tunnel/rotate-token/handler.d.ts +7 -0
- package/dist/tunnel/rotate-token/handler.d.ts.map +1 -0
- package/dist/tunnel/rotate-token/handler.js +1 -4
- package/dist/tunnel/rotate-token/handler.js.map +1 -0
- package/dist/tunnel/services/describe/handler.d.ts +7 -0
- package/dist/tunnel/services/describe/handler.d.ts.map +1 -0
- package/dist/tunnel/services/describe/handler.js +1 -4
- package/dist/tunnel/services/describe/handler.js.map +1 -0
- package/dist/tunnel/services/update/handler.d.ts +8 -0
- package/dist/tunnel/services/update/handler.d.ts.map +1 -0
- package/dist/tunnel/services/update/handler.js +1 -4
- package/dist/tunnel/services/update/handler.js.map +1 -0
- package/dist/tunnel/services/update/poll-provisioning-operations.d.ts +8 -0
- package/dist/tunnel/services/update/poll-provisioning-operations.d.ts.map +1 -0
- package/dist/tunnel/services/update/poll-provisioning-operations.js +1 -4
- package/dist/tunnel/services/update/poll-provisioning-operations.js.map +1 -0
- package/dist/variable/create/handler.d.ts +3 -0
- package/dist/variable/create/handler.d.ts.map +1 -0
- package/dist/variable/create/handler.js +1 -4
- package/dist/variable/create/handler.js.map +1 -0
- package/dist/variable/models.d.ts +18 -0
- package/dist/variable/models.d.ts.map +1 -0
- package/dist/variable/models.js +1 -4
- package/dist/variable/models.js.map +1 -0
- package/dist/variable/update/handler.d.ts +3 -0
- package/dist/variable/update/handler.d.ts.map +1 -0
- package/dist/variable/update/handler.js +1 -4
- package/dist/variable/update/handler.js.map +1 -0
- package/package.json +26 -57
- package/.tool-versions +0 -1
- package/CODEOWNERS +0 -5
- package/dist/common/upgraders/tsconfig-upgrader.test.js +0 -30
- package/polyfills/async_hooks.js +0 -8
- package/polyfills/diagnostics_channel.js +0 -155
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../src/editor/handler.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAsB,MAAM,CAAC,IAAI,EAAE,UAAU,iBAqB5C"}
|
package/dist/editor/handler.js
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="9e4106dc-1dc1-522d-9fb8-0657dd99f9f9")}catch(e){}}();
|
|
3
1
|
import { logger } from "../common/logger.js";
|
|
4
2
|
import { ApiServer } from "./server/server.js";
|
|
5
3
|
export async function editor(argv) {
|
|
@@ -22,5 +20,4 @@ export async function editor(argv) {
|
|
|
22
20
|
});
|
|
23
21
|
});
|
|
24
22
|
}
|
|
25
|
-
//# sourceMappingURL=handler.js.map
|
|
26
|
-
//# debugId=9e4106dc-1dc1-522d-9fb8-0657dd99f9f9
|
|
23
|
+
//# sourceMappingURL=handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../src/editor/handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAO/C,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAAgB;IAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAC7C,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,OAAO,EAAE,IAAI;QACb,UAAU;QACV,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IAEH,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAEjD,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QACnC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;YAC/B,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;YACrB,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;YAC9B,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;YACrB,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC","sourcesContent":["import { logger } from \"../common/logger.js\";\nimport { ApiServer } from \"./server/server.js\";\n\nexport interface EditorArgs {\n dir: string;\n port: number;\n}\n\nexport async function editor(argv: EditorArgs) {\n const workingDir = argv.dir || process.cwd();\n const server = new ApiServer({\n cliArgs: argv,\n workingDir,\n port: argv.port,\n isStandalone: true,\n });\n\n server.start().catch((err) => logger.error(err));\n\n return new Promise<void>((resolve) => {\n process.on(\"SIGTERM\", async () => {\n await server.close();\n resolve();\n });\n process.on(\"SIGINT\", async () => {\n await server.close();\n resolve();\n });\n });\n}\n"]}
|
package/dist/editor/index.html
CHANGED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare const corsPlugin: (fastify: import("fastify").FastifyInstance<import("fastify").RawServerDefault, import("http").IncomingMessage, import("http").ServerResponse<import("http").IncomingMessage>, import("fastify").FastifyBaseLogger, import("fastify").FastifyTypeProviderDefault>, opts: {
|
|
2
|
+
origin: boolean;
|
|
3
|
+
}) => Promise<void>;
|
|
4
|
+
//# sourceMappingURL=cors-plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cors-plugin.d.ts","sourceRoot":"","sources":["../../../src/editor/server/cors-plugin.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,UAAU,2QAGf;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,kBAmBzB,CAAC"}
|
|
@@ -1,19 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import fp from 'fastify-plugin';
|
|
4
|
-
import cors from '@fastify/cors';
|
|
1
|
+
import fp from "fastify-plugin";
|
|
2
|
+
import cors from "@fastify/cors";
|
|
5
3
|
export const corsPlugin = fp(async function (fastify, opts) {
|
|
6
4
|
fastify.register(cors, () => {
|
|
7
5
|
return (req, callback) => {
|
|
8
6
|
const corsOptions = {
|
|
9
7
|
origin: opts.origin,
|
|
10
8
|
};
|
|
11
|
-
if (/^localhost$/m.test(req.headers.origin ??
|
|
9
|
+
if (/^localhost$/m.test(req.headers.origin ?? "")) {
|
|
12
10
|
corsOptions.origin = false;
|
|
13
11
|
}
|
|
14
12
|
callback(null, corsOptions);
|
|
15
13
|
};
|
|
16
14
|
});
|
|
17
15
|
});
|
|
18
|
-
//# sourceMappingURL=cors-plugin.js.map
|
|
19
|
-
//# debugId=935a246d-93e4-521b-833c-997e05b1defa
|
|
16
|
+
//# sourceMappingURL=cors-plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cors-plugin.js","sourceRoot":"","sources":["../../../src/editor/server/cors-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAChC,OAAO,IAAI,MAAM,eAAe,CAAC;AAGjC,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,CAAC,KAAK,WAChC,OAAO,EAEP,IAAyB;IAEzB,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE;QAE1B,OAAO,CAAC,GAAmB,EAAE,QAAa,EAAE,EAAE;YAC5C,MAAM,WAAW,GAAG;gBAElB,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC;YAGF,IAAI,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;gBAClD,WAAW,CAAC,MAAM,GAAG,KAAK,CAAC;YAC7B,CAAC;YAGD,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAC9B,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import fp from \"fastify-plugin\";\nimport cors from \"@fastify/cors\";\nimport { FastifyRequest } from \"fastify\";\n\nexport const corsPlugin = fp(async function (\n fastify,\n // origin=true is NOT recommended for production as it enables reflection exploits\n opts: { origin: boolean }\n) {\n fastify.register(cors, () => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (req: FastifyRequest, callback: any) => {\n const corsOptions = {\n // This is NOT recommended for production as it enables reflection exploits\n origin: opts.origin,\n };\n\n // do not include CORS headers for requests from localhost\n if (/^localhost$/m.test(req.headers.origin ?? \"\")) {\n corsOptions.origin = false;\n }\n\n // callback expects two parameters: error and options\n callback(null, corsOptions);\n };\n });\n});\n"]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { FastifyInstance } from "fastify";
|
|
2
|
+
interface ServerOptions {
|
|
3
|
+
cliArgs: unknown;
|
|
4
|
+
workingDir: string;
|
|
5
|
+
port: number;
|
|
6
|
+
isStandalone: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare class ApiServer {
|
|
9
|
+
fastify: FastifyInstance;
|
|
10
|
+
private listenerHost;
|
|
11
|
+
private watcher;
|
|
12
|
+
private sseContext;
|
|
13
|
+
private cliArgs;
|
|
14
|
+
private workingDir;
|
|
15
|
+
private listenerPort;
|
|
16
|
+
private isStandalone;
|
|
17
|
+
constructor(options?: ServerOptions);
|
|
18
|
+
init: () => Promise<void>;
|
|
19
|
+
start: () => Promise<void>;
|
|
20
|
+
ready: () => Promise<void>;
|
|
21
|
+
close: () => Promise<void>;
|
|
22
|
+
}
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/editor/server/server.ts"],"names":[],"mappings":"AAEA,OAAgB,EAAqB,eAAe,EAAE,MAAM,SAAS,CAAC;AA8BtE,UAAU,aAAa;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,qBAAa,SAAS;IACb,OAAO,EAAE,eAAe,CAAC;IAChC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,OAAO,CAAqB;IAEpC,OAAO,CAAC,UAAU,CAAM;IAExB,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,YAAY,CAAU;gBAG5B,OAAO,GAAE,aAKR;IAeH,IAAI,QAAa,OAAO,CAAC,IAAI,CAAC,CAiP5B;IAEF,KAAK,QAAa,OAAO,CAAC,IAAI,CAAC,CAkC7B;IAEF,KAAK,QAAa,OAAO,CAAC,IAAI,CAAC,CAE7B;IAEF,KAAK,QAAa,OAAO,CAAC,IAAI,CAAC,CAsB7B;CACH"}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="a1c18fce-50a3-5d1a-a266-cdeb334c2940")}catch(e){}}();
|
|
3
1
|
import fastifyStatic from "@fastify/static";
|
|
4
2
|
import chokidar from "chokidar";
|
|
5
3
|
import Fastify from "fastify";
|
|
@@ -237,7 +235,7 @@ export class ApiServer {
|
|
|
237
235
|
printDiagnosticsToConsole("Closing route designer");
|
|
238
236
|
}
|
|
239
237
|
try {
|
|
240
|
-
shutdownAnalytics();
|
|
238
|
+
void shutdownAnalytics();
|
|
241
239
|
if (this.sseContext) {
|
|
242
240
|
this.sseContext.source.end();
|
|
243
241
|
}
|
|
@@ -252,5 +250,4 @@ export class ApiServer {
|
|
|
252
250
|
process.exit();
|
|
253
251
|
};
|
|
254
252
|
}
|
|
255
|
-
//# sourceMappingURL=server.js.map
|
|
256
|
-
//# debugId=a1c18fce-50a3-5d1a-a266-cdeb334c2940
|
|
253
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/editor/server/server.ts"],"names":[],"mappings":"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","sourcesContent":["import fastifyStatic from \"@fastify/static\";\nimport chokidar from \"chokidar\";\nimport Fastify, { FastifyBaseLogger, FastifyInstance } from \"fastify\";\nimport { FastifySSEPlugin } from \"fastify-sse-v2\";\nimport fs, { readFile, readdir } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { captureEvent, shutdownAnalytics } from \"../../common/analytics/lib.js\";\nimport { logger } from \"../../common/logger.js\";\nimport { printDiagnosticsToConsole } from \"../../common/output.js\";\nimport { corsPlugin } from \"./cors-plugin.js\";\nimport { dirExists, fileExists } from \"./xfs.js\";\n\nconst POLICIES_FILENAME = \"policies.json\";\nconst CONFIG_DIR = \"config\";\n\ninterface FunctionPickerMethod {\n name: string;\n isHandlerInvocable: boolean;\n}\n\ninterface FunctionPickerModule {\n name: string;\n filepath: string;\n methods: FunctionPickerMethod[];\n}\n\ninterface FileSaveBody {\n filePath: string;\n content: object;\n}\n\ninterface ServerOptions {\n cliArgs: unknown;\n workingDir: string;\n port: number;\n isStandalone: boolean;\n}\n\nexport class ApiServer {\n public fastify: FastifyInstance;\n private listenerHost: string;\n private watcher: chokidar.FSWatcher;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private sseContext: any;\n\n private cliArgs: unknown;\n private workingDir: string;\n private listenerPort: number;\n private isStandalone: boolean;\n\n constructor(\n options: ServerOptions = {\n cliArgs: {},\n workingDir: \".\",\n port: 9100,\n isStandalone: true,\n }\n ) {\n this.cliArgs = options.cliArgs;\n this.workingDir = options.workingDir;\n this.listenerPort = options.port;\n this.isStandalone = options.isStandalone;\n this.listenerHost = \"localhost\";\n this.watcher = chokidar.watch(path.join(this.workingDir, CONFIG_DIR));\n this.fastify = Fastify({\n logger: logger as FastifyBaseLogger,\n trustProxy: true,\n disableRequestLogging: true,\n });\n }\n\n init = async (): Promise<void> => {\n const cliArgs = this.cliArgs;\n this.fastify.register(corsPlugin, { origin: true });\n this.fastify.register(FastifySSEPlugin);\n\n const editorRootPath = fileURLToPath(new URL(\"../\", import.meta.url));\n this.fastify.register(fastifyStatic, {\n root: editorRootPath,\n });\n\n this.fastify.register((instance, _options, done) => {\n instance.get(\"/\", {\n handler: async (_request, reply) => {\n await captureEvent({ argv: cliArgs, event: \"route-designer: /\" });\n let html = await readFile(\n path.join(editorRootPath, \"index.html\"),\n \"utf-8\"\n );\n html = html.replace(\n \"__SERVER_DATA__\",\n JSON.stringify({\n server_address: this.listenerHost,\n server_port: this.listenerPort,\n })\n );\n reply.type(\"text/html\").send(html);\n },\n });\n\n instance.get(\"/open-api-content\", {\n handler: async (request, reply) => {\n await captureEvent({\n argv: cliArgs,\n event: \"route-designer: /open-api-content\",\n });\n\n const { path: filePath } = request.query as { path: string | null };\n if (filePath === null || filePath === undefined) {\n return reply.code(404).send(\"You must select a file to work with\");\n }\n\n const openApiFilePath = path.join(\n this.workingDir,\n \"config\",\n filePath\n );\n if (!(await fileExists(openApiFilePath))) {\n return reply\n .code(404)\n .send({ message: `Cannot find file named '${filePath}'` });\n }\n\n const policiesPath = path.join(\n this.workingDir,\n \"config\",\n POLICIES_FILENAME\n );\n if (!(await fileExists(policiesPath))) {\n return reply.code(404).send({\n message: `Cannot find a '${POLICIES_FILENAME}' file in the '${CONFIG_DIR}'`,\n });\n }\n\n // read & send\n const openApiFileContent = await fs.readFile(\n openApiFilePath,\n \"utf-8\"\n );\n const policiesContent = await fs.readFile(policiesPath, \"utf-8\");\n\n const payload = [\n {\n path: filePath,\n content: JSON.parse(openApiFileContent),\n },\n {\n path: POLICIES_FILENAME,\n content: JSON.parse(policiesContent),\n },\n ];\n reply.code(200).send(payload);\n },\n });\n\n instance.get(\"/open-api-files\", {\n handler: async (request, reply) => {\n await captureEvent({\n argv: cliArgs,\n event: \"route-designer: /open-api-files\",\n });\n const projectConfigPath = path.join(this.workingDir, CONFIG_DIR);\n if (!(await dirExists(projectConfigPath))) {\n request.log.warn(\n `Cannot find the project '${CONFIG_DIR}' folder. Make sure '${this.workingDir}' has a '${CONFIG_DIR}' folder.`\n );\n return reply.code(404).send({\n message: `Cannot find the project '${CONFIG_DIR}' folder. Make sure '${this.workingDir}' has a '${CONFIG_DIR}' folder.`,\n });\n }\n\n const files = await readdir(projectConfigPath);\n const openApiFiles = files.filter((fileName) =>\n fileName.endsWith(\".oas.json\")\n );\n reply.code(200).send(openApiFiles);\n },\n });\n\n instance.route<{ Body: FileSaveBody[] }>({\n method: \"POST\",\n\n url: \"/save-open-api-updates\",\n handler: async (request, reply): Promise<void> => {\n await captureEvent({\n argv: cliArgs,\n event: \"route-designer: /save-open-api-updates\",\n });\n\n const bodyContent = request.body;\n\n bodyContent.forEach(async (fileData) => {\n const openApiFilePath = path.join(\n this.workingDir,\n \"config\",\n fileData.filePath\n );\n if (!(await fileExists(openApiFilePath))) {\n return reply.code(404).send({\n message: `Cannot find file named '${fileData.filePath}'`,\n });\n }\n\n await fs.writeFile(\n openApiFilePath,\n JSON.stringify(fileData.content, null, 2) as string\n );\n });\n\n reply.code(200).send({ message: \"Changes were saved successfully\" });\n },\n });\n\n // SSE endpoint for real-time updates\n instance.get(\"/updates\", {\n handler: async (request, reply) => {\n await captureEvent({\n argv: cliArgs,\n event: \"route-designer: /updates\",\n });\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n if (this.watcher && this.watcher.closed === true) {\n // @NOTE - some UI interactions send a close event & we need to reenable\n // the watcher in the next event subscription request\n this.watcher = chokidar.watch(\n path.join(this.workingDir, CONFIG_DIR)\n );\n }\n\n this.watcher.on(\"change\", (filePath: string) => {\n const eventData = JSON.stringify({ type: \"update\", filePath });\n reply.sse({ id: Date.now().toString(), data: eventData });\n });\n\n request.raw.on(\"close\", async () => {\n await this.watcher.close();\n });\n\n // @NOTE - Initial reply to successfully initialize SSE connection\n reply.sse({\n id: Date.now().toString(),\n data: JSON.stringify({ filePath: POLICIES_FILENAME, type: \"init\" }),\n retry: 10,\n });\n this.sseContext = reply.sseContext;\n },\n });\n\n instance.get(\"/modules-data\", {\n handler: async (request, reply) => {\n await captureEvent({\n argv: cliArgs,\n event: \"route-designer: /modules-data\",\n });\n\n const projectModulesPath = path.join(this.workingDir, \"modules\");\n if (!(await dirExists(projectModulesPath))) {\n request.log.warn(\n `Cannot find the project 'modules' folder. Make sure '${this.workingDir}' has a 'modules' folder.`\n );\n return reply.code(200).send([]);\n }\n\n const files = await readdir(projectModulesPath);\n const modulesFiles = files.filter((fileName) =>\n fileName.endsWith(\".ts\")\n );\n\n const results: FunctionPickerModule[] = [];\n\n // @NOTE - its either this or bundling 40mb of typescript in the cli\n for (const moduleFileName of modulesFiles) {\n const fullPath = path.join(projectModulesPath, moduleFileName);\n const fileContent = await fs.readFile(fullPath, \"utf-8\");\n const exports: FunctionPickerMethod[] = [];\n\n // Regular expression to find default export\n const defaultExportRegex = /(?:export\\s+(default))/g;\n if (defaultExportRegex.exec(fileContent)) {\n exports.push({ name: \"default\", isHandlerInvocable: true });\n }\n\n // Regular expression to match exported functions/classes\n const functionRegex =\n /(?:export\\s+(function|class))\\s+([a-zA-Z_$][a-zA-Z0-9_$]*)/g;\n\n let match;\n while ((match = functionRegex.exec(fileContent))) {\n exports.push({ name: match[2], isHandlerInvocable: true });\n }\n\n results.push({\n name: moduleFileName,\n filepath: `./modules/${moduleFileName}`,\n methods: exports,\n });\n }\n\n reply.code(200).send(results);\n },\n });\n\n instance.get(\"/ping\", {\n handler: async (_request, reply) => {\n reply.code(200).send();\n },\n });\n\n done();\n });\n };\n\n start = async (): Promise<void> => {\n await this.init();\n\n // See https://github.com/fastify/help/issues/641\n this.fastify.log.level = \"silent\";\n const start = async () => {\n return new Promise<void>((resolve, reject) => {\n this.fastify.listen(\n { port: this.listenerPort, host: this.listenerHost },\n (err) => {\n if (err) {\n reject(err);\n }\n\n this.fastify.log.level = \"info\";\n\n if (this.isStandalone) {\n printDiagnosticsToConsole(\"Started route designer\");\n printDiagnosticsToConsole(\"Ctrl+C to exit\");\n printDiagnosticsToConsole(\"\");\n printDiagnosticsToConsole(\n `📘 Route Designer: http://${this.listenerHost}:${this.listenerPort}`\n );\n printDiagnosticsToConsole(\"\");\n printDiagnosticsToConsole(\"\");\n }\n\n resolve();\n }\n );\n });\n };\n\n await start();\n };\n\n ready = async (): Promise<void> => {\n return this.fastify.ready();\n };\n\n close = async (): Promise<void> => {\n if (this.isStandalone) {\n printDiagnosticsToConsole(\"Closing route designer\");\n }\n\n try {\n void shutdownAnalytics();\n\n if (this.sseContext) {\n this.sseContext.source.end();\n }\n\n if (this.watcher) {\n await this.watcher.close();\n }\n\n await this.fastify.close();\n } catch (err) {\n // eslint-disable-next-line no-console\n console.log(err);\n }\n process.exit();\n };\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xfs.d.ts","sourceRoot":"","sources":["../../../src/editor/server/xfs.ts"],"names":[],"mappings":"AAEA,wBAAsB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOjE;AAED,wBAAsB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOhE"}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="5594147b-22d1-553f-8893-d5ddb61be0d0")}catch(e){}}();
|
|
3
|
-
import fs from 'node:fs/promises';
|
|
1
|
+
import fs from "node:fs/promises";
|
|
4
2
|
export async function fileExists(fsPath) {
|
|
5
3
|
try {
|
|
6
4
|
const stat = await fs.stat(fsPath);
|
|
@@ -19,5 +17,4 @@ export async function dirExists(fsPath) {
|
|
|
19
17
|
return false;
|
|
20
18
|
}
|
|
21
19
|
}
|
|
22
|
-
//# sourceMappingURL=xfs.js.map
|
|
23
|
-
//# debugId=5594147b-22d1-553f-8893-d5ddb61be0d0
|
|
20
|
+
//# sourceMappingURL=xfs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xfs.js","sourceRoot":"","sources":["../../../src/editor/server/xfs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAElC,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,MAAc;IAC7C,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,MAAc;IAC5C,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC","sourcesContent":["import fs from \"node:fs/promises\";\n\nexport async function fileExists(fsPath: string): Promise<boolean> {\n try {\n const stat = await fs.stat(fsPath);\n return stat.isFile();\n } catch (err) {\n return false;\n }\n}\n\nexport async function dirExists(fsPath: string): Promise<boolean> {\n try {\n const stat = await fs.stat(fsPath);\n return stat.isDirectory();\n } catch (err) {\n return false;\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../src/link/handler.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA6BD,wBAAsB,IAAI,CAAC,IAAI,EAAE,SAAS,iBAoKzC"}
|
package/dist/link/handler.js
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="f5e0af3e-c906-5b69-ba89-acd89c389920")}catch(e){}}();
|
|
3
1
|
import { select } from "@inquirer/prompts";
|
|
4
2
|
import { logger } from "../common/logger.js";
|
|
5
3
|
import { printCriticalFailureToConsoleAndExit, printResultToConsoleAndExitGracefully, textOrJson, } from "../common/output.js";
|
|
@@ -140,5 +138,4 @@ export async function link(argv) {
|
|
|
140
138
|
Successfully linked your local directory to the ${project} project in the ${account} account.
|
|
141
139
|
.env.zuplo and zuplo.jsonc have been updated with the new values.`);
|
|
142
140
|
}
|
|
143
|
-
//# sourceMappingURL=handler.js.map
|
|
144
|
-
//# debugId=f5e0af3e-c906-5b69-ba89-acd89c389920
|
|
141
|
+
//# sourceMappingURL=handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../src/link/handler.ts"],"names":[],"mappings":"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","sourcesContent":["import { select } from \"@inquirer/prompts\";\nimport { Environment, Project } from \"../common/api/lib.js\";\nimport { logger } from \"../common/logger.js\";\nimport {\n printCriticalFailureToConsoleAndExit,\n printResultToConsoleAndExitGracefully,\n textOrJson,\n} from \"../common/output.js\";\nimport settings from \"../common/settings.js\";\nimport { pullSystemConfig, safeMergeConfig } from \"./populate.js\";\n\nexport interface Arguments {\n dir: string;\n \"api-key\": string;\n account?: string;\n project?: string;\n environment?: string;\n}\n\nfunction prettyPrintEnvironmentPrompt(\n env: Environment,\n hasSingleDevelopmentInstance: boolean\n) {\n let environmentType = env.environmentType.toLowerCase();\n let branchName = env.branchName;\n let name = env.name;\n\n switch (environmentType) {\n case \"working-copy\":\n case \"working_copy\":\n case \"development\":\n if (hasSingleDevelopmentInstance) {\n name = \"Default for local development\";\n environmentType = \"development\";\n branchName = \"\";\n return `${name} (${environmentType})`;\n } else {\n // For the case of working copy the branch name is actually \"main\" but it doesn't mean anything\n environmentType = \"development\";\n branchName = \"\";\n return `${name} (${environmentType})`;\n }\n }\n return `${name} (${environmentType}, ${branchName})`;\n}\n\nexport async function link(argv: Arguments) {\n const account = argv.account;\n let environment = argv.environment;\n\n // List the projects\n let project = argv.project;\n if (!environment && !project) {\n const projectResponse = await fetch(\n `${settings.ZUPLO_DEVELOPER_API_ENDPOINT}/v1/projects`,\n {\n headers: {\n authorization: `Bearer ${argv[\"api-key\"]}`,\n },\n }\n );\n\n if (!projectResponse.ok) {\n logger.error(\n {\n status: projectResponse.status,\n statusText: projectResponse.statusText,\n response: textOrJson(await projectResponse.text()),\n },\n \"Failed to list projects.\"\n );\n await printCriticalFailureToConsoleAndExit(\n \"Error: Failed to list your projects. Try again later.\"\n );\n }\n\n // Ask the user to select a project, if necessary\n const projectJson = (await projectResponse.json()) as { data: Project[] };\n if (projectJson.data.length === 1) {\n project = projectJson.data[0].name;\n } else {\n project = await select({\n message: \"Select the project to work with\",\n choices: projectJson.data.map((prj) => {\n return {\n name: prj.name,\n value: prj.name,\n };\n }),\n });\n }\n }\n\n if (!environment) {\n const baseUrl = `${settings.ZUPLO_DEVELOPER_API_ENDPOINT}/v1/environments`;\n\n const queryParams: Record<string, string> = {\n // This is safe because of the flow above where we finalize the account and project\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n accountName: account!,\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n projectName: project!,\n };\n\n // Create the query string using URLSearchParams\n const url = new URL(baseUrl);\n url.search = new URLSearchParams(queryParams).toString();\n let environmentResponseFromDeveloperAPI = await fetch(url, {\n headers: {\n authorization: `Bearer ${argv[\"api-key\"]}`,\n },\n });\n\n let environmentJsonFromDeveloperAPI =\n (await environmentResponseFromDeveloperAPI.json()) as {\n data: Environment[];\n };\n\n let numDevelopmentEnvironments =\n environmentJsonFromDeveloperAPI.data.filter((env) => {\n return env.environmentType === \"development\";\n }).length;\n\n if (numDevelopmentEnvironments <= 0) {\n // Create one on-the-fly\n const createDevelopmenEnvironmentResponse = await fetch(`${baseUrl}`, {\n method: \"POST\",\n headers: {\n authorization: `Bearer ${argv[\"api-key\"]}`,\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n accountName: account,\n projectName: project,\n environmentType: \"development\",\n }),\n });\n\n if (!createDevelopmenEnvironmentResponse.ok) {\n logger.debug(\n {\n status: createDevelopmenEnvironmentResponse.status,\n statusText: createDevelopmenEnvironmentResponse.statusText,\n },\n \"Failed to create a new instance of development environment\"\n );\n await printCriticalFailureToConsoleAndExit(\n \"Failed to create a new development environment. Please try again later.\"\n );\n }\n\n numDevelopmentEnvironments++;\n\n // Re-fetch\n environmentResponseFromDeveloperAPI = await fetch(url, {\n headers: {\n authorization: `Bearer ${argv[\"api-key\"]}`,\n },\n });\n\n environmentJsonFromDeveloperAPI =\n (await environmentResponseFromDeveloperAPI.json()) as {\n data: Environment[];\n };\n }\n\n const environments = Object.assign(\n {},\n environmentJsonFromDeveloperAPI.data\n .map((env) => {\n return {\n [prettyPrintEnvironmentPrompt(\n env,\n numDevelopmentEnvironments == 1\n )]: env.name,\n };\n })\n .reduce((acc, curr) => {\n return { ...acc, ...curr };\n })\n );\n\n if (Object.values(environments).length === 1) {\n environment = Object.values(environments)[0];\n } else {\n environment = await select({\n message: \"Select the environment to work with\",\n choices: Object.entries(environments).map(([key, value]) => {\n return {\n name: key,\n value,\n };\n }),\n });\n }\n }\n\n argv.environment = environment;\n\n // Safely merge the values in the .zuplo.jsonc file\n if (project) {\n await safeMergeConfig(argv.dir, project);\n }\n\n // Safely merge in other auxillary files\n await pullSystemConfig(argv);\n\n await printResultToConsoleAndExitGracefully(`\nSuccessfully linked your local directory to the ${project} project in the ${account} account.\n.env.zuplo and zuplo.jsonc have been updated with the new values.`);\n}\n"]}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { Arguments } from "../link/handler.js";
|
|
2
|
+
export declare function safeMergeConfig(dir: string, project: string): Promise<void>;
|
|
3
|
+
export declare function pullSystemConfig(argv: Pick<Arguments, "dir" | "environment" | "api-key">): Promise<void>;
|
|
4
|
+
//# sourceMappingURL=populate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"populate.d.ts","sourceRoot":"","sources":["../../src/link/populate.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,iBAkDjE;AAED,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,GAAG,aAAa,GAAG,SAAS,CAAC,iBAkDzD"}
|
package/dist/link/populate.js
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="67cff82f-69c9-50d3-876f-40e3b6b9afd6")}catch(e){}}();
|
|
3
1
|
import { applyEdits, modify } from "jsonc-parser";
|
|
4
2
|
import { existsSync } from "node:fs";
|
|
5
3
|
import { readFile, writeFile } from "node:fs/promises";
|
|
@@ -83,5 +81,4 @@ ZUPLO_SYSTEM_CONFIGURATIONS=${payload["systemConfigurations"]}
|
|
|
83
81
|
`;
|
|
84
82
|
await writeFile(zuploPreferredConfigFile, content);
|
|
85
83
|
}
|
|
86
|
-
//# sourceMappingURL=populate.js.map
|
|
87
|
-
//# debugId=67cff82f-69c9-50d3-876f-40e3b6b9afd6
|
|
84
|
+
//# sourceMappingURL=populate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"populate.js","sourceRoot":"","sources":["../../src/link/populate.ts"],"names":[],"mappings":"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","sourcesContent":["import { applyEdits, modify } from \"jsonc-parser\";\nimport { existsSync } from \"node:fs\";\nimport { readFile, writeFile } from \"node:fs/promises\";\nimport { join, relative } from \"node:path\";\nimport prettier from \"prettier\";\nimport {\n ZUPLO_FALLBACK_JSON_FILE,\n ZUPLO_PREFERRED_JSON_FILE,\n ZUPLO_SYSTEM_ENV_VAR,\n} from \"../common/constants.js\";\nimport { logger } from \"../common/logger.js\";\nimport { printCriticalFailureToConsoleAndExit } from \"../common/output.js\";\nimport settings from \"../common/settings.js\";\nimport { Arguments } from \"../link/handler.js\";\n\nexport async function safeMergeConfig(dir: string, project: string) {\n const normalizedDir = join(relative(process.cwd(), dir));\n const zuploPreferredConfigFile = join(\n normalizedDir,\n ZUPLO_PREFERRED_JSON_FILE\n );\n const zuploFallbackConfigFile = join(normalizedDir, ZUPLO_FALLBACK_JSON_FILE);\n if (existsSync(zuploPreferredConfigFile)) {\n // Process the file, while respecting comments\n // Apply the edits sequentially\n const originalContents = await readFile(zuploPreferredConfigFile, \"utf-8\");\n const modifyProjectEdit = modify(originalContents, [\"project\"], project, {\n getInsertionIndex: () => 2,\n });\n const contentsPostProject = applyEdits(originalContents, modifyProjectEdit);\n const formatted = await prettier.format(contentsPostProject, {\n parser: \"json\",\n quoteProps: \"as-needed\",\n });\n await writeFile(zuploPreferredConfigFile, formatted);\n } else if (existsSync(zuploFallbackConfigFile)) {\n // Copy the file over\n const config = JSON.parse(await readFile(zuploFallbackConfigFile, \"utf-8\"));\n const formatted = await prettier.format(\n JSON.stringify({\n version: 1,\n project: project,\n compatibilityDate: config.compatibilityDate,\n }),\n {\n parser: \"json\",\n quoteProps: \"as-needed\",\n }\n );\n await writeFile(zuploPreferredConfigFile, formatted);\n } else {\n // Create new file\n const formatted = await prettier.format(\n JSON.stringify({\n version: 1,\n project: project,\n compatibilityDate: \"2023-03-14\",\n }),\n {\n parser: \"json\",\n quoteProps: \"as-needed\",\n }\n );\n await writeFile(zuploPreferredConfigFile, formatted);\n }\n}\n\nexport async function pullSystemConfig(\n argv: Pick<Arguments, \"dir\" | \"environment\" | \"api-key\">\n) {\n const normalizedDir = join(relative(process.cwd(), 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[\"api-key\"]}`,\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 zup link. Please do not edit it manually.\n# It will be auto-generated afresh the next time you run zup 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\n await writeFile(zuploPreferredConfigFile, content);\n}\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface Arguments {
|
|
2
|
+
account: string;
|
|
3
|
+
project: string;
|
|
4
|
+
"api-key": string;
|
|
5
|
+
"self-hosted-endpoint"?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function list(argv: Arguments): Promise<void>;
|
|
8
|
+
export interface SelfHostedDeployment {
|
|
9
|
+
projectName: string;
|
|
10
|
+
deploymentName: string;
|
|
11
|
+
deploymentUrl: string;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../src/list/handler.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;AAoBD,wBAAsB,IAAI,CAAC,IAAI,EAAE,SAAS,iBAOzC;AAuCD,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;CACvB"}
|
package/dist/list/handler.js
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="2c36d082-afe3-5d10-a05d-e20f9c10dcf8")}catch(e){}}();
|
|
3
1
|
import { logger } from "../common/logger.js";
|
|
4
2
|
import { printCriticalFailureToConsoleAndExit, printDiagnosticsToConsole, printResultToConsoleAndExitGracefully, textOrJson, } from "../common/output.js";
|
|
5
3
|
import settings from "../common/settings.js";
|
|
@@ -23,7 +21,10 @@ async function listFromSaas(argv) {
|
|
|
23
21
|
});
|
|
24
22
|
if (listResponse.ok) {
|
|
25
23
|
const { data: deployments } = await listResponse.json();
|
|
26
|
-
const output = deployments
|
|
24
|
+
const output = deployments
|
|
25
|
+
.filter((deployment) => deployment.url)
|
|
26
|
+
.map((deployment) => deployment.url)
|
|
27
|
+
.join("\n");
|
|
27
28
|
await printResultToConsoleAndExitGracefully(output);
|
|
28
29
|
}
|
|
29
30
|
else {
|
|
@@ -55,5 +56,4 @@ async function listFromSelfHosted(argv) {
|
|
|
55
56
|
await printCriticalFailureToConsoleAndExit("Error: Failed to upload to self-hosted build endpoint");
|
|
56
57
|
}
|
|
57
58
|
}
|
|
58
|
-
//# sourceMappingURL=handler.js.map
|
|
59
|
-
//# debugId=2c36d082-afe3-5d10-a05d-e20f9c10dcf8
|
|
59
|
+
//# sourceMappingURL=handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../src/list/handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EACL,oCAAoC,EACpC,yBAAyB,EACzB,qCAAqC,EACrC,UAAU,GACX,MAAM,qBAAqB,CAAC;AAC7B,OAAO,QAAQ,MAAM,uBAAuB,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AA2BvD,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAe;IACxC,IAAI,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,IAAsB,CAAC;QACpC,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;SAAM,CAAC;QACN,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,IAAe;IACzC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAClC,MAAM,YAAY,GAAG,MAAM,KAAK,CAC9B,GAAG,QAAQ,CAAC,4BAA4B,gBAAgB,OAAO,aAAa,OAAO,cAAc,EACjG;QACE,MAAM,EAAE,KAAK;QACb,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,IAAI,CAAC,SAAS,CAAC,EAAE;SAC3C;KACF,CACF,CAAC;IAEF,IAAI,YAAY,CAAC,EAAE,EAAE,CAAC;QACpB,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GACzB,MAAM,YAAY,CAAC,IAAI,EAAE,CAAC;QAE5B,MAAM,MAAM,GAAG,WAAW;aACvB,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;aACtC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;aACnC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,MAAM,qCAAqC,CAAC,MAAM,CAAC,CAAC;IACtD,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,KAAK,CACV;YACE,MAAM,EAAE,YAAY,CAAC,MAAM;YAC3B,UAAU,EAAE,YAAY,CAAC,UAAU;YACnC,QAAQ,EAAE,UAAU,CAAC,MAAM,YAAY,CAAC,IAAI,EAAE,CAAC;SAChD,EACD,8BAA8B,CAC/B,CAAC;QACF,yBAAyB,CACvB,uDAAuD,CACxD,CAAC;IACJ,CAAC;AACH,CAAC;AAQD,KAAK,UAAU,kBAAkB,CAAC,IAAoB;IACpD,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAE5D,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,GAAG,QAAQ,iBAAiB,EAAE;QAC7D,MAAM,EAAE,KAAK;QACb,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,IAAI,CAAC,SAAS,CAAC,EAAE;SAC3C;KACF,CAAC,CAAC;IAEH,IAAI,YAAY,CAAC,EAAE,EAAE,CAAC;QACpB,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GACzB,MAAM,YAAY,CAAC,IAAI,EAAE,CAAC;QAE5B,MAAM,MAAM,GAAG,WAAW;aACvB,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC;aAC7C,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,MAAM,qCAAqC,CAAC,MAAM,CAAC,CAAC;IACtD,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,KAAK,CACV,IAAI,CAAC,SAAS,CAAC,MAAM,YAAY,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAClD,gDAAgD,CACjD,CAAC;QACF,MAAM,oCAAoC,CACxC,uDAAuD,CACxD,CAAC;IACJ,CAAC;AACH,CAAC","sourcesContent":["import { logger } from \"../common/logger.js\";\nimport {\n printCriticalFailureToConsoleAndExit,\n printDiagnosticsToConsole,\n printResultToConsoleAndExitGracefully,\n textOrJson,\n} from \"../common/output.js\";\nimport settings from \"../common/settings.js\";\nimport { RequiredProperties } from \"../common/utils/types.js\";\nimport { normalizeUrl } from \"../common/utils/urls.js\";\n\nexport interface Arguments {\n account: string;\n project: string;\n \"api-key\": string;\n \"self-hosted-endpoint\"?: string;\n}\n\ninterface Deployment {\n name: string;\n createdOn: string;\n loggingId: string;\n environment: string;\n accountName: string;\n projectName: string;\n state: \"IS_STARTING\" | \"STARTED\" | \"STOPPED\" | \"ERRORED\";\n message: null;\n branchName: string;\n userSub: string;\n url: string;\n environmentType: \"PRODUCTION\" | \"PREVIEW\" | \"WORKING_COPY\";\n}\n\ntype SimplifiedDeployment = Pick<Deployment, \"url\">;\ntype SelfHostedArgs = RequiredProperties<Arguments, \"self-hosted-endpoint\">;\n\nexport async function list(argv: Arguments) {\n if (argv[\"self-hosted-endpoint\"]) {\n const args = argv as SelfHostedArgs;\n await listFromSelfHosted(args);\n } else {\n await listFromSaas(argv);\n }\n}\n\nasync function listFromSaas(argv: Arguments) {\n const { account, project } = argv;\n const listResponse = await fetch(\n `${settings.ZUPLO_DEVELOPER_API_ENDPOINT}/v1/accounts/${account}/projects/${project}/deployments`,\n {\n method: \"GET\",\n headers: {\n Authorization: `Bearer ${argv[\"api-key\"]}`,\n },\n }\n );\n\n if (listResponse.ok) {\n const { data: deployments }: { data: SimplifiedDeployment[] } =\n await listResponse.json();\n\n const output = deployments\n .filter((deployment) => deployment.url)\n .map((deployment) => deployment.url)\n .join(\"\\n\");\n\n await printResultToConsoleAndExitGracefully(output);\n } else {\n logger.error(\n {\n status: listResponse.status,\n statusText: listResponse.statusText,\n response: textOrJson(await listResponse.text()),\n },\n \"Failed to list deployed zups\"\n );\n printDiagnosticsToConsole(\n \"Error: Failed to list deployed zups. Try again later.\"\n );\n }\n}\n\nexport interface SelfHostedDeployment {\n projectName: string;\n deploymentName: string;\n deploymentUrl: string;\n}\n\nasync function listFromSelfHosted(argv: SelfHostedArgs) {\n const endpoint = normalizeUrl(argv[\"self-hosted-endpoint\"]);\n\n const listResponse = await fetch(`${endpoint}/v1/deployments`, {\n method: \"GET\",\n headers: {\n Authorization: `Bearer ${argv[\"api-key\"]}`,\n },\n });\n\n if (listResponse.ok) {\n const { data: deployments }: { data: SelfHostedDeployment[] } =\n await listResponse.json();\n\n const output = deployments\n .map((deployment) => deployment.deploymentUrl)\n .join(\"\\n\");\n\n await printResultToConsoleAndExitGracefully(output);\n } else {\n logger.error(\n JSON.stringify(await listResponse.json(), null, 2),\n \"Failed to upload to self-hosted build endpoint\"\n );\n await printCriticalFailureToConsoleAndExit(\n \"Error: Failed to upload to self-hosted build endpoint\"\n );\n }\n}\n"]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare const AUTH_SERVER_PORT = 57801;
|
|
2
|
+
export declare const CLIENT_ID = "mYLGcH7kB4P0pw0HAk6GH7raRwYhSlW4";
|
|
3
|
+
export declare const CALLBACK_URL = "http://localhost:57801/";
|
|
4
|
+
export declare const AUTH0_DOMAIN = "auth.zuplo.com";
|
|
5
|
+
export declare const encode: (value: string) => string;
|
|
6
|
+
export declare const decode: (value: string) => string;
|
|
7
|
+
export declare const createRandomString: () => string;
|
|
8
|
+
export declare const bufferToBase64UrlEncoded: (input: number[] | Uint8Array) => string;
|
|
9
|
+
export declare const sha256: (s: string) => Promise<any>;
|
|
10
|
+
export interface Arguments {
|
|
11
|
+
"print-token": boolean;
|
|
12
|
+
}
|
|
13
|
+
export declare function login(args: Arguments): Promise<void>;
|
|
14
|
+
//# sourceMappingURL=handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../src/login/handler.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,gBAAgB,QAAQ,CAAC;AACtC,eAAO,MAAM,SAAS,qCAAqC,CAAC;AAC5D,eAAO,MAAM,YAAY,4BAA0C,CAAC;AACpE,eAAO,MAAM,YAAY,mBAAmB,CAAC;AAE7C,eAAO,MAAM,MAAM,UAAW,MAAM,WAAgB,CAAC;AACrD,eAAO,MAAM,MAAM,UAAW,MAAM,WAAgB,CAAC;AAErD,eAAO,MAAM,kBAAkB,cAO9B,CAAC;AAOF,eAAO,MAAM,wBAAwB,UAAW,MAAM,EAAE,GAAG,UAAU,WAGpE,CAAC;AAEF,eAAO,MAAM,MAAM,MAAa,MAAM,iBAQrC,CAAC;AAEF,MAAM,WAAW,SAAS;IACxB,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,wBAAsB,KAAK,CAAC,IAAI,EAAE,SAAS,iBAiD1C"}
|
package/dist/login/handler.js
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="b9c770bd-87ab-597f-b274-832456a7ddad")}catch(e){}}();
|
|
3
1
|
import crypto from "node:crypto";
|
|
4
2
|
import { existsSync, mkdirSync } from "node:fs";
|
|
5
3
|
import { writeFile } from "node:fs/promises";
|
|
@@ -74,5 +72,4 @@ export async function login(args) {
|
|
|
74
72
|
}
|
|
75
73
|
await printResultToConsoleAndExitGracefully("Successfully authenticated.");
|
|
76
74
|
}
|
|
77
|
-
//# sourceMappingURL=handler.js.map
|
|
78
|
-
//# debugId=b9c770bd-87ab-597f-b274-832456a7ddad
|
|
75
|
+
//# sourceMappingURL=handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../src/login/handler.ts"],"names":[],"mappings":"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","sourcesContent":["import crypto from \"node:crypto\";\nimport { existsSync, mkdirSync } from \"node:fs\";\nimport { writeFile } from \"node:fs/promises\";\nimport { join } from \"node:path\";\nimport { ZUPLO_AUTH_FILE_NAME } from \"../common/constants.js\";\nimport {\n printResultToConsole,\n printResultToConsoleAndExitGracefully,\n} from \"../common/output.js\";\nimport { ZUPLO_XDG_STATE_HOME } from \"../common/xdg/lib.js\";\nimport { browserAuth } from \"./server.js\";\n\nexport const AUTH_SERVER_PORT = 57801;\nexport const CLIENT_ID = \"mYLGcH7kB4P0pw0HAk6GH7raRwYhSlW4\";\nexport const CALLBACK_URL = `http://localhost:${AUTH_SERVER_PORT}/`;\nexport const AUTH0_DOMAIN = \"auth.zuplo.com\";\n\nexport const encode = (value: string) => btoa(value);\nexport const decode = (value: string) => atob(value);\n\nexport const createRandomString = () => {\n const charset =\n \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_~.\";\n let random = \"\";\n const randomValues = Array.from(crypto.getRandomValues(new Uint8Array(43)));\n randomValues.forEach((v) => (random += charset[v % charset.length]));\n return random;\n};\n\nconst urlEncodeB64 = (input: string) => {\n const b64Chars: { [index: string]: string } = { \"+\": \"-\", \"/\": \"_\", \"=\": \"\" };\n return input.replace(/[+/=]/g, (m: string) => b64Chars[m]);\n};\n\nexport const bufferToBase64UrlEncoded = (input: number[] | Uint8Array) => {\n const ie11SafeInput = new Uint8Array(input);\n return urlEncodeB64(btoa(String.fromCharCode(...Array.from(ie11SafeInput))));\n};\n\nexport const sha256 = async (s: string) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const digestOp: any = crypto.subtle.digest(\n { name: \"SHA-256\" },\n new TextEncoder().encode(s)\n );\n\n return await digestOp;\n};\n\nexport interface Arguments {\n \"print-token\": boolean;\n}\n\nexport async function login(args: Arguments) {\n const code_verifier = createRandomString();\n const code_challengeBuffer = await sha256(code_verifier);\n const code_challenge = bufferToBase64UrlEncoded(code_challengeBuffer);\n\n const authUrl = new URL(`https://${AUTH0_DOMAIN}/authorize`);\n\n authUrl.searchParams.set(\"response_type\", \"code\");\n authUrl.searchParams.set(\"code_challenge\", code_challenge);\n authUrl.searchParams.set(\"code_challenge_method\", \"S256\");\n authUrl.searchParams.set(\"client_id\", CLIENT_ID);\n authUrl.searchParams.set(\"redirect_uri\", CALLBACK_URL);\n authUrl.searchParams.set(\"scope\", \"openid profile email\");\n authUrl.searchParams.set(\"audience\", \"https://api.zuplo.com/\");\n\n const params = await browserAuth(authUrl.toString());\n const code = params.get(\"code\");\n if (code === null) {\n throw new Error(\"No code\");\n }\n\n const tokenParams = new URLSearchParams();\n tokenParams.set(\"grant_type\", \"authorization_code\");\n tokenParams.set(\"client_id\", CLIENT_ID);\n tokenParams.set(\"code_verifier\", code_verifier);\n tokenParams.set(\"code\", code);\n tokenParams.set(\"redirect_uri\", CALLBACK_URL);\n\n const response = await fetch(`https://${AUTH0_DOMAIN}/oauth/token`, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n },\n body: tokenParams,\n });\n\n const result = (await response.json()) as { access_token: string };\n\n if (!existsSync(ZUPLO_XDG_STATE_HOME)) {\n mkdirSync(ZUPLO_XDG_STATE_HOME, { recursive: true });\n }\n const tokenPath = join(ZUPLO_XDG_STATE_HOME, ZUPLO_AUTH_FILE_NAME);\n await writeFile(tokenPath, JSON.stringify(result));\n\n if (args[\"print-token\"]) {\n printResultToConsole(result.access_token);\n }\n\n await printResultToConsoleAndExitGracefully(\"Successfully authenticated.\");\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/login/server.ts"],"names":[],"mappings":"AAKA,wBAAsB,WAAW,CAAC,gBAAgB,EAAE,MAAM,4BAqCzD"}
|
package/dist/login/server.js
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="39935908-8083-55f7-9402-b4eede173a4c")}catch(e){}}();
|
|
3
1
|
import http from "node:http";
|
|
4
2
|
import opn from "open";
|
|
5
3
|
import { printCriticalFailureToConsoleAndExit } from "../common/output.js";
|
|
@@ -34,5 +32,4 @@ export async function browserAuth(authorizationUrl) {
|
|
|
34
32
|
server.close();
|
|
35
33
|
return params;
|
|
36
34
|
}
|
|
37
|
-
//# sourceMappingURL=server.js.map
|
|
38
|
-
//# debugId=39935908-8083-55f7-9402-b4eede173a4c
|
|
35
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/login/server.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,GAAG,MAAM,MAAM,CAAC;AACvB,OAAO,EAAE,oCAAoC,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,gBAAwB;IACxD,IAAI,MAAmC,CAAC;IAExC,MAAM,OAAO,GAAG,CAAC,GAAyB,EAAE,GAAwB,EAAE,EAAE;QACtE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;QAC7B,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,oBAAoB,gBAAgB,EAAE,CAAC,CAAC;QAErE,IAAI,GAAG,CAAC,QAAQ,KAAK,GAAG,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC;YAC1B,GAAG,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;QACjD,CAAC;IACH,CAAC,CAAC;IAGF,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAGnE,MAAM,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAE5B,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,OAAO,MAAM,KAAK,SAAS,EAAE,CAAC;QAC5B,IAAI,UAAU,EAAE,GAAG,GAAG,EAAE,CAAC;YACvB,MAAM,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,oCAAoC,CACxC,8EAA8E,CAC/E,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAK,EAAE,CAAC;IACf,OAAO,MAAM,CAAC;AAChB,CAAC","sourcesContent":["import http from \"node:http\";\nimport opn from \"open\";\nimport { printCriticalFailureToConsoleAndExit } from \"../common/output.js\";\nimport { AUTH_SERVER_PORT } from \"./handler.js\";\n\nexport async function browserAuth(authorizationUrl: string) {\n let params: URLSearchParams | undefined;\n\n const handler = (req: http.IncomingMessage, res: http.ServerResponse) => {\n if (!req.url) {\n throw new Error(\"Bad url\");\n }\n const url = new URL(req.url, `http://localhost:${AUTH_SERVER_PORT}`);\n // In here when the server gets a request\n if (url.pathname === \"/\") {\n params = url.searchParams;\n res.end(\"You can close this browser now.\");\n } else {\n res.end(\"Unsupported route for login server.\");\n }\n };\n\n // Very simple webserver, using Nodes standard http module\n const server = http.createServer(handler).listen(AUTH_SERVER_PORT); // static local port\n\n // Open authorization url in preferred browser, works cross-platform\n await opn(authorizationUrl);\n\n let iterations = 0;\n while (params === undefined) {\n if (iterations++ > 600) {\n server.close();\n await printCriticalFailureToConsoleAndExit(\n \"Timed out waiting for login in the browser. Run the zup login command again.\"\n );\n } else {\n await new Promise((resolve) => setTimeout(resolve, 500));\n }\n }\n\n server.close();\n return params;\n}\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { CommonArgs } from "../../common/args.js";
|
|
2
|
+
export interface Arguments extends CommonArgs {
|
|
3
|
+
dir: string;
|
|
4
|
+
prompt: boolean;
|
|
5
|
+
source: string;
|
|
6
|
+
destination: string;
|
|
7
|
+
"source-url": string;
|
|
8
|
+
}
|
|
9
|
+
export declare const BASE_TEMPLATE = "\n{\n \"openapi\": \"3.1.0\",\n \"info\": {\n \"version\": \"1.0.0\",\n \"title\": \"My Zuplo API\"\n },\n \"paths\": {}\n}\n\n";
|
|
10
|
+
export declare function importOpenApi(argv: Arguments): Promise<void>;
|
|
11
|
+
//# sourceMappingURL=handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/project/import-openapi/handler.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAelD,MAAM,WAAW,SAAU,SAAQ,UAAU;IAC3C,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,aAAa,8IAUzB,CAAC;AAGF,wBAAsB,aAAa,CAAC,IAAI,EAAE,SAAS,iBAkLlD"}
|
|
@@ -1,16 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="c5ad5812-058b-598b-a3a2-62b383857b12")}catch(e){}}();
|
|
3
1
|
import { confirm } from "@inquirer/prompts";
|
|
4
2
|
import jsYaml from "js-yaml";
|
|
5
3
|
import { existsSync, writeFileSync } from "node:fs";
|
|
6
4
|
import { mkdir, readFile, writeFile } from "node:fs/promises";
|
|
7
5
|
import { tmpdir } from "node:os";
|
|
8
|
-
import { basename, dirname, extname, join, relative
|
|
6
|
+
import path, { basename, dirname, extname, join, relative } from "node:path";
|
|
9
7
|
import prettier from "prettier";
|
|
10
8
|
import { logger } from "../../common/logger.js";
|
|
11
9
|
import { printCriticalFailureToConsoleAndExit, printDiagnosticsToConsole, printResultToConsoleAndExitGracefully, } from "../../common/output.js";
|
|
12
10
|
import { addOperationIdsAsNecessary, generateMergeChangeset, mergeOpenApiDocuments, parseOpenApiFile, } from "./utils.js";
|
|
13
|
-
const BASE_TEMPLATE = `
|
|
11
|
+
export const BASE_TEMPLATE = `
|
|
14
12
|
{
|
|
15
13
|
"openapi": "3.1.0",
|
|
16
14
|
"info": {
|
|
@@ -25,7 +23,7 @@ export async function importOpenApi(argv) {
|
|
|
25
23
|
let normalizedFilePath;
|
|
26
24
|
let handleAsUrl = true;
|
|
27
25
|
try {
|
|
28
|
-
|
|
26
|
+
new URL(argv.source);
|
|
29
27
|
}
|
|
30
28
|
catch (err) {
|
|
31
29
|
handleAsUrl = false;
|
|
@@ -44,13 +42,13 @@ export async function importOpenApi(argv) {
|
|
|
44
42
|
}
|
|
45
43
|
const text = await response.text();
|
|
46
44
|
try {
|
|
47
|
-
|
|
45
|
+
JSON.parse(text);
|
|
48
46
|
normalizedFilePath = normalizedFilePath + ".json";
|
|
49
47
|
await writeFile(normalizedFilePath, text, { flag: "w+" });
|
|
50
48
|
}
|
|
51
49
|
catch (err) {
|
|
52
50
|
try {
|
|
53
|
-
|
|
51
|
+
jsYaml.load(text);
|
|
54
52
|
normalizedFilePath = normalizedFilePath + ".yaml";
|
|
55
53
|
await writeFile(normalizedFilePath, text, { flag: "w+" });
|
|
56
54
|
}
|
|
@@ -73,22 +71,13 @@ export async function importOpenApi(argv) {
|
|
|
73
71
|
}
|
|
74
72
|
const rawOpenApiSpec = await readFile(normalizedFilePath);
|
|
75
73
|
const extName = extname(normalizedFilePath);
|
|
76
|
-
const basePath = basename(normalizedFilePath, extName);
|
|
77
74
|
const fileContent = rawOpenApiSpec.toString();
|
|
78
75
|
const parsedOpenApiSpec = await parseOpenApiFile(extName, fileContent);
|
|
79
|
-
|
|
80
|
-
if (
|
|
81
|
-
|
|
82
|
-
if (destination.includes(sep)) {
|
|
83
|
-
await printCriticalFailureToConsoleAndExit(`File names should not be nested with file separators.`);
|
|
84
|
-
}
|
|
85
|
-
if (destination.endsWith("oas.json")) {
|
|
86
|
-
destinationFilePath = join(process.cwd(), "config", destination);
|
|
87
|
-
}
|
|
88
|
-
else {
|
|
89
|
-
destinationFilePath = join(process.cwd(), "config", `${destination.replace(".oas", "")}.oas.json`);
|
|
90
|
-
}
|
|
76
|
+
const destination = argv.destination;
|
|
77
|
+
if (!destination.endsWith(".oas.json")) {
|
|
78
|
+
await printCriticalFailureToConsoleAndExit(`Destination file name must end with '.oas.json'`);
|
|
91
79
|
}
|
|
80
|
+
const destinationFilePath = join(relative(process.cwd(), destination));
|
|
92
81
|
let originalDocument;
|
|
93
82
|
if (!existsSync(destinationFilePath)) {
|
|
94
83
|
originalDocument = (await parseOpenApiFile(".json", BASE_TEMPLATE));
|
|
@@ -137,10 +126,13 @@ export async function importOpenApi(argv) {
|
|
|
137
126
|
const formattedOpenApi = await prettier.format(JSON.stringify(mergedDocument), {
|
|
138
127
|
parser: "json-stringify",
|
|
139
128
|
});
|
|
129
|
+
if (!existsSync(destinationFilePath)) {
|
|
130
|
+
const dir = path.dirname(destinationFilePath);
|
|
131
|
+
await mkdir(dir, { recursive: true });
|
|
132
|
+
}
|
|
140
133
|
writeFileSync(destinationFilePath, formattedOpenApi, {
|
|
141
134
|
flag: "w",
|
|
142
135
|
});
|
|
143
136
|
await printResultToConsoleAndExitGracefully(`Import successful. File written to ${destinationFilePath}`);
|
|
144
137
|
}
|
|
145
|
-
//# sourceMappingURL=handler.js.map
|
|
146
|
-
//# debugId=c5ad5812-058b-598b-a3a2-62b383857b12
|
|
138
|
+
//# sourceMappingURL=handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/project/import-openapi/handler.ts"],"names":[],"mappings":"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","sourcesContent":["import { confirm } from \"@inquirer/prompts\";\nimport jsYaml from \"js-yaml\";\nimport { existsSync, writeFileSync } from \"node:fs\";\nimport { mkdir, readFile, writeFile } from \"node:fs/promises\";\nimport { tmpdir } from \"node:os\";\nimport path, { basename, dirname, extname, join, relative } from \"node:path\";\nimport prettier from \"prettier\";\nimport { CommonArgs } from \"../../common/args.js\";\nimport { logger } from \"../../common/logger.js\";\nimport {\n printCriticalFailureToConsoleAndExit,\n printDiagnosticsToConsole,\n printResultToConsoleAndExitGracefully,\n} from \"../../common/output.js\";\nimport { ZuploOpenApiDocument } from \"./interfaces.js\";\nimport {\n addOperationIdsAsNecessary,\n generateMergeChangeset,\n mergeOpenApiDocuments,\n parseOpenApiFile,\n} from \"./utils.js\";\n\nexport interface Arguments extends CommonArgs {\n dir: string;\n prompt: boolean;\n source: string;\n destination: string;\n \"source-url\": string;\n}\n\nexport const BASE_TEMPLATE = `\n{\n \"openapi\": \"3.1.0\",\n \"info\": {\n \"version\": \"1.0.0\",\n \"title\": \"My Zuplo API\"\n },\n \"paths\": {}\n}\n\n`;\n\n// import is a reserved keyword so importSpec was used instead\nexport async function importOpenApi(argv: Arguments) {\n let normalizedFilePath: string;\n // First see if this is a url\n let handleAsUrl = true;\n try {\n new URL(argv.source);\n } catch (err) {\n handleAsUrl = false;\n }\n\n if (handleAsUrl) {\n const parsedUrl = new URL(argv.source);\n const tempDir = tmpdir();\n const guessedFileName =\n basename(parsedUrl.pathname).replace(/\\.[^/.]+$/, \"\") ||\n `imported-${Buffer.from(argv.source).toString(\"base64\")}`;\n normalizedFilePath = join(tempDir, guessedFileName);\n await mkdir(dirname(normalizedFilePath), { recursive: true });\n\n try {\n const response = await fetch(parsedUrl);\n if (!response.ok) {\n await printCriticalFailureToConsoleAndExit(\n `Failed to download the remote OpenAPI file. Server responded with ${response.status} ${response.statusText}`\n );\n }\n\n const text = await response.text();\n\n try {\n // 1a. See if this is json else try to parse as yaml\n JSON.parse(text);\n normalizedFilePath = normalizedFilePath + \".json\";\n await writeFile(normalizedFilePath, text, { flag: \"w+\" });\n } catch (err) {\n try {\n // 1b. See if this is yaml\n jsYaml.load(text);\n normalizedFilePath = normalizedFilePath + \".yaml\";\n await writeFile(normalizedFilePath, text, { flag: \"w+\" });\n } catch (err) {\n await printCriticalFailureToConsoleAndExit(\n `Failed to parse the remote OpenAPI file as either JSON or YAML.`\n );\n }\n }\n } catch (err) {\n logger.error(err);\n await printCriticalFailureToConsoleAndExit(\n `Failed to download the remote OpenAPI file.`\n );\n }\n } else {\n // 1c. This is a normal file so we use the file extension\n const filePath = argv.source;\n normalizedFilePath = join(relative(process.cwd(), filePath));\n\n if (!existsSync(normalizedFilePath)) {\n await printCriticalFailureToConsoleAndExit(\n `The file ${normalizedFilePath} to import does not exist.`\n );\n }\n }\n\n const rawOpenApiSpec = await readFile(normalizedFilePath);\n const extName = extname(normalizedFilePath);\n const fileContent = rawOpenApiSpec.toString();\n const parsedOpenApiSpec = await parseOpenApiFile(extName, fileContent);\n\n const destination = argv.destination;\n\n if (!destination.endsWith(\".oas.json\")) {\n await printCriticalFailureToConsoleAndExit(\n `Destination file name must end with '.oas.json'`\n );\n }\n\n const destinationFilePath = join(relative(process.cwd(), destination));\n\n let originalDocument: ZuploOpenApiDocument;\n if (!existsSync(destinationFilePath)) {\n // This is an initial import\n originalDocument = (await parseOpenApiFile(\n \".json\",\n BASE_TEMPLATE\n )) as ZuploOpenApiDocument;\n } else {\n const existingOpenApiSpec = await readFile(destinationFilePath);\n const existingFileContent = existingOpenApiSpec.toString();\n originalDocument = (await parseOpenApiFile(\n extName,\n existingFileContent\n )) as ZuploOpenApiDocument;\n }\n const { created, merged, retained } = generateMergeChangeset(\n originalDocument,\n parsedOpenApiSpec\n );\n\n // Present the changes\n printDiagnosticsToConsole(\"This import will...\");\n printDiagnosticsToConsole(\"\");\n\n if (created.size > 0) {\n printDiagnosticsToConsole(\n `Create ${created.size} new ${\n created.size > 1 ? \"operations\" : \"operation\"\n }`\n );\n printDiagnosticsToConsole(\"\");\n created.forEach((operation) => {\n printDiagnosticsToConsole(operation);\n });\n printDiagnosticsToConsole(\"\");\n }\n\n if (merged.size > 0) {\n printDiagnosticsToConsole(\n `Merge ${merged.size} new ${merged.size > 1 ? \"operations\" : \"operation\"}`\n );\n printDiagnosticsToConsole(\"\");\n merged.forEach((operation) => {\n printDiagnosticsToConsole(operation);\n });\n printDiagnosticsToConsole(\"\");\n }\n\n if (retained.size > 0) {\n printDiagnosticsToConsole(\n `Retain ${retained.size} new ${\n retained.size > 1 ? \"operations\" : \"operation\"\n }`\n );\n printDiagnosticsToConsole(\"\");\n retained.forEach((operation) => {\n printDiagnosticsToConsole(operation);\n });\n printDiagnosticsToConsole(\"\");\n }\n\n if (argv.prompt) {\n printDiagnosticsToConsole(\"\");\n const answer = await confirm({ message: \"Proceed?\", default: true });\n if (!answer) {\n await printResultToConsoleAndExitGracefully(\"Import cancelled.\");\n }\n }\n\n const mergedDocument = mergeOpenApiDocuments(\n originalDocument,\n parsedOpenApiSpec\n );\n\n addOperationIdsAsNecessary(mergedDocument);\n\n const formattedOpenApi = await prettier.format(\n JSON.stringify(mergedDocument),\n {\n parser: \"json-stringify\",\n }\n );\n\n // Create folder structure if needed\n if (!existsSync(destinationFilePath)) {\n // Get the directory path of the file\n const dir = path.dirname(destinationFilePath);\n\n // Ensure that the directory exists (creates parent directories if necessary)\n await mkdir(dir, { recursive: true });\n }\n\n writeFileSync(destinationFilePath, formattedOpenApi, {\n flag: \"w\",\n });\n\n await printResultToConsoleAndExitGracefully(\n `Import successful. File written to ${destinationFilePath}`\n );\n}\n"]}
|