@speedkit/cli 2.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +775 -0
- package/bin/dev +18 -0
- package/bin/dev.cmd +3 -0
- package/bin/run +4 -0
- package/bin/run.cmd +3 -0
- package/dist/commands/airports_iata.json +1 -0
- package/dist/commands/build-parameter-query.d.ts +15 -0
- package/dist/commands/build-parameter-query.js +95 -0
- package/dist/commands/build-prewarm-query.d.ts +15 -0
- package/dist/commands/build-prewarm-query.js +69 -0
- package/dist/commands/deploy.d.ts +17 -0
- package/dist/commands/deploy.js +39 -0
- package/dist/commands/document-handler.d.ts +16 -0
- package/dist/commands/document-handler.js +36 -0
- package/dist/commands/find-pops.d.ts +17 -0
- package/dist/commands/find-pops.js +84 -0
- package/dist/commands/generate-customer-config.d.ts +10 -0
- package/dist/commands/generate-customer-config.js +29 -0
- package/dist/commands/generate-pop-config.d.ts +27 -0
- package/dist/commands/generate-pop-config.js +231 -0
- package/dist/commands/login.d.ts +10 -0
- package/dist/commands/login.js +35 -0
- package/dist/commands/onboarding.d.ts +16 -0
- package/dist/commands/onboarding.js +25 -0
- package/dist/commands/param-diff.d.ts +16 -0
- package/dist/commands/param-diff.js +111 -0
- package/dist/commands/pop-prewarm.d.ts +17 -0
- package/dist/commands/pop-prewarm.js +80 -0
- package/dist/commands/prewarm.d.ts +40 -0
- package/dist/commands/prewarm.js +127 -0
- package/dist/commands/pull.d.ts +14 -0
- package/dist/commands/pull.js +24 -0
- package/dist/commands/wpt-launcher.d.ts +21 -0
- package/dist/commands/wpt-launcher.js +79 -0
- package/dist/helpers/CustomerConfig.d.ts +51 -0
- package/dist/helpers/CustomerConfig.js +150 -0
- package/dist/helpers/build-query-helper.d.ts +32 -0
- package/dist/helpers/build-query-helper.js +216 -0
- package/dist/helpers/cli-config.d.ts +22 -0
- package/dist/helpers/cli-config.js +85 -0
- package/dist/helpers/file-helper.d.ts +8 -0
- package/dist/helpers/file-helper.js +63 -0
- package/dist/helpers/get-parsed-config.d.ts +11 -0
- package/dist/helpers/get-parsed-config.js +63 -0
- package/dist/helpers/getChromePath.d.ts +7 -0
- package/dist/helpers/getChromePath.js +27 -0
- package/dist/helpers/isDirectory.d.ts +1 -0
- package/dist/helpers/isDirectory.js +17 -0
- package/dist/helpers/isExecutable.d.ts +1 -0
- package/dist/helpers/isExecutable.js +15 -0
- package/dist/helpers/isFile.d.ts +1 -0
- package/dist/helpers/isFile.js +17 -0
- package/dist/helpers/logging-helper.d.ts +12 -0
- package/dist/helpers/logging-helper.js +27 -0
- package/dist/helpers/normalize.d.ts +40 -0
- package/dist/helpers/normalize.js +112 -0
- package/dist/helpers/race.d.ts +1 -0
- package/dist/helpers/race.js +16 -0
- package/dist/helpers/safe.d.ts +10 -0
- package/dist/helpers/safe.js +34 -0
- package/dist/helpers/scrape.d.ts +1 -0
- package/dist/helpers/scrape.js +11 -0
- package/dist/helpers/speedKitRuleToRegExp.d.ts +1 -0
- package/dist/helpers/speedKitRuleToRegExp.js +10 -0
- package/dist/helpers/watchFiles.d.ts +1 -0
- package/dist/helpers/watchFiles.js +20 -0
- package/dist/models/cli-parameters.d.ts +73 -0
- package/dist/models/cli-parameters.js +82 -0
- package/dist/models/files.d.ts +20 -0
- package/dist/models/files.js +23 -0
- package/dist/models/install.d.ts +24 -0
- package/dist/models/install.js +2 -0
- package/dist/services/athena-service.d.ts +30 -0
- package/dist/services/athena-service.js +139 -0
- package/dist/services/bundler/bundle-service-factory.d.ts +4 -0
- package/dist/services/bundler/bundle-service-factory.js +10 -0
- package/dist/services/bundler/bundle-service.d.ts +25 -0
- package/dist/services/bundler/bundle-service.js +84 -0
- package/dist/services/bundler/index.d.ts +2 -0
- package/dist/services/bundler/index.js +5 -0
- package/dist/services/cli/cli-service-factory.d.ts +5 -0
- package/dist/services/cli/cli-service-factory.js +14 -0
- package/dist/services/cli/cli-service-model.d.ts +27 -0
- package/dist/services/cli/cli-service-model.js +9 -0
- package/dist/services/cli/cli-service.d.ts +37 -0
- package/dist/services/cli/cli-service.js +123 -0
- package/dist/services/cli/error/cli-type-error.d.ts +3 -0
- package/dist/services/cli/error/cli-type-error.js +7 -0
- package/dist/services/cli/hooks.d.ts +11 -0
- package/dist/services/cli/hooks.js +33 -0
- package/dist/services/cli/index.d.ts +3 -0
- package/dist/services/cli/index.js +6 -0
- package/dist/services/config-api/client.d.ts +16 -0
- package/dist/services/config-api/client.js +54 -0
- package/dist/services/config-api/config-api-service.d.ts +16 -0
- package/dist/services/config-api/config-api-service.js +56 -0
- package/dist/services/config-api/context/config-api-context.d.ts +5 -0
- package/dist/services/config-api/context/config-api-context.js +9 -0
- package/dist/services/config-api/error/json-response-error.d.ts +2 -0
- package/dist/services/config-api/error/json-response-error.js +5 -0
- package/dist/services/config-api/error/login-error.d.ts +5 -0
- package/dist/services/config-api/error/login-error.js +12 -0
- package/dist/services/config-api/factory/config-api-service-factory.d.ts +10 -0
- package/dist/services/config-api/factory/config-api-service-factory.js +38 -0
- package/dist/services/config-api/factory/entity-manager-factory.d.ts +5 -0
- package/dist/services/config-api/factory/entity-manager-factory.js +21 -0
- package/dist/services/config-api/interface/config-api-context-interface.d.ts +4 -0
- package/dist/services/config-api/interface/config-api-context-interface.js +2 -0
- package/dist/services/config-api/interface/request-extension-interface.d.ts +5 -0
- package/dist/services/config-api/interface/request-extension-interface.js +2 -0
- package/dist/services/config-api-service.d.ts +18 -0
- package/dist/services/config-api-service.js +96 -0
- package/dist/services/context/app-context.d.ts +1 -0
- package/dist/services/context/app-context.js +2 -0
- package/dist/services/context/error/context-runtime-error.d.ts +3 -0
- package/dist/services/context/error/context-runtime-error.js +7 -0
- package/dist/services/context/interface/context-interface.d.ts +2 -0
- package/dist/services/context/interface/context-interface.js +2 -0
- package/dist/services/customer-config/customer-config-service-context.d.ts +5 -0
- package/dist/services/customer-config/customer-config-service-context.js +15 -0
- package/dist/services/customer-config/customer-config-service-factory.d.ts +8 -0
- package/dist/services/customer-config/customer-config-service-factory.js +24 -0
- package/dist/services/customer-config/customer-config-service-model.d.ts +39 -0
- package/dist/services/customer-config/customer-config-service-model.js +23 -0
- package/dist/services/customer-config/customer-config-service.d.ts +27 -0
- package/dist/services/customer-config/customer-config-service.js +263 -0
- package/dist/services/customer-config/index.d.ts +4 -0
- package/dist/services/customer-config/index.js +7 -0
- package/dist/services/customer-config/templates/config_SpeedKit.js.hbs +351 -0
- package/dist/services/customer-config/templates/config_customer.js.hbs +75 -0
- package/dist/services/customer-config/templates/config_documentHandler.js.hbs +162 -0
- package/dist/services/customer-config/templates/config_dynamicBlocks.es6.hbs +263 -0
- package/dist/services/customer-config/templates/config_dynamicStyles.css.hbs +116 -0
- package/dist/services/customer-config/templates/config_loadHandler.js.hbs +394 -0
- package/dist/services/customer-config/templates/deploymentDetection.es6.hbs +262 -0
- package/dist/services/customer-config/templates/downtimeDetection.js.hbs +110 -0
- package/dist/services/deploy/builder/install-resource-builder.d.ts +14 -0
- package/dist/services/deploy/builder/install-resource-builder.js +48 -0
- package/dist/services/deploy/checks/post-deploy/revalidated-module-check.d.ts +11 -0
- package/dist/services/deploy/checks/post-deploy/revalidated-module-check.js +30 -0
- package/dist/services/deploy/checks/post-deploy/save-files-check.d.ts +9 -0
- package/dist/services/deploy/checks/post-deploy/save-files-check.js +25 -0
- package/dist/services/deploy/context/deploy-context.d.ts +12 -0
- package/dist/services/deploy/context/deploy-context.js +26 -0
- package/dist/services/deploy/deploy-service-factory.d.ts +15 -0
- package/dist/services/deploy/deploy-service-factory.js +68 -0
- package/dist/services/deploy/deploy-service.d.ts +17 -0
- package/dist/services/deploy/deploy-service.js +63 -0
- package/dist/services/deploy/error/create-find-temp-directory-error.d.ts +4 -0
- package/dist/services/deploy/error/create-find-temp-directory-error.js +10 -0
- package/dist/services/deploy/error/deploy-app-error.d.ts +2 -0
- package/dist/services/deploy/error/deploy-app-error.js +5 -0
- package/dist/services/deploy/error/no-active-installation-error.d.ts +4 -0
- package/dist/services/deploy/error/no-active-installation-error.js +10 -0
- package/dist/services/deploy/handler/customer-config-handler.d.ts +21 -0
- package/dist/services/deploy/handler/customer-config-handler.js +85 -0
- package/dist/services/deploy/handler/install-resource-handler.d.ts +25 -0
- package/dist/services/deploy/handler/install-resource-handler.js +104 -0
- package/dist/services/deploy/handler/install-resource-modifier/deleted-file-check.d.ts +13 -0
- package/dist/services/deploy/handler/install-resource-modifier/deleted-file-check.js +51 -0
- package/dist/services/deploy/handler/module-handler.d.ts +14 -0
- package/dist/services/deploy/handler/module-handler.js +81 -0
- package/dist/services/deploy/handler/module-modifier/deployment-detection-modifier.d.ts +9 -0
- package/dist/services/deploy/handler/module-modifier/deployment-detection-modifier.js +24 -0
- package/dist/services/deploy/handler/server-config-handler.d.ts +12 -0
- package/dist/services/deploy/handler/server-config-handler.js +63 -0
- package/dist/services/deploy/interface/deploy-handler-interface.d.ts +6 -0
- package/dist/services/deploy/interface/deploy-handler-interface.js +2 -0
- package/dist/services/deploy/interface/install-configs.d.ts +11 -0
- package/dist/services/deploy/interface/install-configs.js +2 -0
- package/dist/services/deploy/interface/install-resource-processor-interface.d.ts +5 -0
- package/dist/services/deploy/interface/install-resource-processor-interface.js +2 -0
- package/dist/services/deploy/interface/install.d.ts +14 -0
- package/dist/services/deploy/interface/install.js +2 -0
- package/dist/services/deploy/interface/post-deploy-check-interface.d.ts +3 -0
- package/dist/services/deploy/interface/post-deploy-check-interface.js +2 -0
- package/dist/services/deploy/interface/runtime-modifier.d.ts +6 -0
- package/dist/services/deploy/interface/runtime-modifier.js +2 -0
- package/dist/services/deploy/interface/validate-origins-response.d.ts +4 -0
- package/dist/services/deploy/interface/validate-origins-response.js +2 -0
- package/dist/services/diff/diff-model.d.ts +5 -0
- package/dist/services/diff/diff-model.js +12 -0
- package/dist/services/diff/diff-service-factory.d.ts +7 -0
- package/dist/services/diff/diff-service-factory.js +20 -0
- package/dist/services/diff/diff-service.d.ts +34 -0
- package/dist/services/diff/diff-service.js +134 -0
- package/dist/services/diff/index.d.ts +3 -0
- package/dist/services/diff/index.js +6 -0
- package/dist/services/diff-service.d.ts +24 -0
- package/dist/services/diff-service.js +112 -0
- package/dist/services/document-handler-runtime/context/document-handler-runtime-context.d.ts +23 -0
- package/dist/services/document-handler-runtime/context/document-handler-runtime-context.js +41 -0
- package/dist/services/document-handler-runtime/document-handler-runtime-service.d.ts +32 -0
- package/dist/services/document-handler-runtime/document-handler-runtime-service.js +220 -0
- package/dist/services/document-handler-runtime/document-handler-server.d.ts +42 -0
- package/dist/services/document-handler-runtime/document-handler-server.js +225 -0
- package/dist/services/document-handler-runtime/error/handler/required-file-not-found-handler.d.ts +6 -0
- package/dist/services/document-handler-runtime/error/handler/required-file-not-found-handler.js +14 -0
- package/dist/services/document-handler-runtime/error/required-file-not-found-error.d.ts +3 -0
- package/dist/services/document-handler-runtime/error/required-file-not-found-error.js +7 -0
- package/dist/services/document-handler-runtime/factory/document-handler-runtime-service-factory.d.ts +24 -0
- package/dist/services/document-handler-runtime/factory/document-handler-runtime-service-factory.js +106 -0
- package/dist/services/document-handler-runtime/interface/document-handler-runtime-config-interface.d.ts +3 -0
- package/dist/services/document-handler-runtime/interface/document-handler-runtime-config-interface.js +6 -0
- package/dist/services/document-handler-runtime/interface/template-context-interface.d.ts +3 -0
- package/dist/services/document-handler-runtime/interface/template-context-interface.js +2 -0
- package/dist/services/document-handler-runtime/interface/template-interface.d.ts +6 -0
- package/dist/services/document-handler-runtime/interface/template-interface.js +2 -0
- package/dist/services/document-handler-runtime/interface/template-param-interface.d.ts +4 -0
- package/dist/services/document-handler-runtime/interface/template-param-interface.js +2 -0
- package/dist/services/document-handler-runtime/templates/abstract-template.d.ts +9 -0
- package/dist/services/document-handler-runtime/templates/abstract-template.js +18 -0
- package/dist/services/document-handler-runtime/templates/database-mock.d.ts +6 -0
- package/dist/services/document-handler-runtime/templates/database-mock.js +111 -0
- package/dist/services/document-handler-runtime/templates/execute-document-handler.d.ts +6 -0
- package/dist/services/document-handler-runtime/templates/execute-document-handler.js +76 -0
- package/dist/services/document-handler-runtime/templates/orestes-mock.d.ts +9 -0
- package/dist/services/document-handler-runtime/templates/orestes-mock.js +168 -0
- package/dist/services/document-handler-runtime/templates/package-json.d.ts +8 -0
- package/dist/services/document-handler-runtime/templates/package-json.js +21 -0
- package/dist/services/document-handler-runtime/templates/test.d.ts +6 -0
- package/dist/services/document-handler-runtime/templates/test.js +63 -0
- package/dist/services/error-handling/abstract/abstract-async-error-handling-factory.d.ts +6 -0
- package/dist/services/error-handling/abstract/abstract-async-error-handling-factory.js +19 -0
- package/dist/services/error-handling/abstract/abstract-async-error-handling-service.d.ts +6 -0
- package/dist/services/error-handling/abstract/abstract-async-error-handling-service.js +18 -0
- package/dist/services/error-handling/abstract/abstract-error-handling-factory.d.ts +6 -0
- package/dist/services/error-handling/abstract/abstract-error-handling-factory.js +19 -0
- package/dist/services/error-handling/abstract/abstract-error-handling-service.d.ts +6 -0
- package/dist/services/error-handling/abstract/abstract-error-handling-service.js +19 -0
- package/dist/services/error-handling/error/application-error.d.ts +5 -0
- package/dist/services/error-handling/error/application-error.js +11 -0
- package/dist/services/error-handling/error/handler/default-error-handler.d.ts +5 -0
- package/dist/services/error-handling/error/handler/default-error-handler.js +13 -0
- package/dist/services/error-handling/error-handling-service.d.ts +7 -0
- package/dist/services/error-handling/error-handling-service.js +27 -0
- package/dist/services/error-handling/factory/error-handling-factory.d.ts +8 -0
- package/dist/services/error-handling/factory/error-handling-factory.js +21 -0
- package/dist/services/error-handling/interface/error-context-interface.d.ts +6 -0
- package/dist/services/error-handling/interface/error-context-interface.js +2 -0
- package/dist/services/error-handling/interface/error-handler-interface.d.ts +5 -0
- package/dist/services/error-handling/interface/error-handler-interface.js +2 -0
- package/dist/services/error-handling/interface/error-handling-factory-interface.d.ts +8 -0
- package/dist/services/error-handling/interface/error-handling-factory-interface.js +2 -0
- package/dist/services/error-handling/interface/error-handling-service-interface.d.ts +8 -0
- package/dist/services/error-handling/interface/error-handling-service-interface.js +2 -0
- package/dist/services/integration-api/context/integration-api-context.d.ts +9 -0
- package/dist/services/integration-api/context/integration-api-context.js +20 -0
- package/dist/services/integration-api/error/customer-config-error.d.ts +2 -0
- package/dist/services/integration-api/error/customer-config-error.js +5 -0
- package/dist/services/integration-api/error/customer-config-legacy-error.d.ts +3 -0
- package/dist/services/integration-api/error/customer-config-legacy-error.js +7 -0
- package/dist/services/integration-api/error/handler/customer-config-handler.d.ts +5 -0
- package/dist/services/integration-api/error/handler/customer-config-handler.js +19 -0
- package/dist/services/integration-api/error/handler/customer-config-legacy-handler.d.ts +6 -0
- package/dist/services/integration-api/error/handler/customer-config-legacy-handler.js +24 -0
- package/dist/services/integration-api/error/handler/origin-handler.d.ts +6 -0
- package/dist/services/integration-api/error/handler/origin-handler.js +22 -0
- package/dist/services/integration-api/error/load-customer-error.d.ts +4 -0
- package/dist/services/integration-api/error/load-customer-error.js +10 -0
- package/dist/services/integration-api/error/mandatory-file-missing-error.d.ts +3 -0
- package/dist/services/integration-api/error/mandatory-file-missing-error.js +8 -0
- package/dist/services/integration-api/error/origin-error.d.ts +3 -0
- package/dist/services/integration-api/error/origin-error.js +7 -0
- package/dist/services/integration-api/external/external-file-reader.d.ts +4 -0
- package/dist/services/integration-api/external/external-file-reader.js +17 -0
- package/dist/services/integration-api/factory/integration-api-service-factory.d.ts +13 -0
- package/dist/services/integration-api/factory/integration-api-service-factory.js +55 -0
- package/dist/services/integration-api/file-list.d.ts +18 -0
- package/dist/services/integration-api/file-list.js +79 -0
- package/dist/services/integration-api/file-reader.d.ts +15 -0
- package/dist/services/integration-api/file-reader.js +97 -0
- package/dist/services/integration-api/file-writer.d.ts +9 -0
- package/dist/services/integration-api/file-writer.js +27 -0
- package/dist/services/integration-api/handler/customer-config-handler.d.ts +16 -0
- package/dist/services/integration-api/handler/customer-config-handler.js +55 -0
- package/dist/services/integration-api/handler/file-handler.d.ts +9 -0
- package/dist/services/integration-api/handler/file-handler.js +20 -0
- package/dist/services/integration-api/handler/install-resource-handler.d.ts +33 -0
- package/dist/services/integration-api/handler/install-resource-handler.js +67 -0
- package/dist/services/integration-api/handler/module-handler.d.ts +12 -0
- package/dist/services/integration-api/handler/module-handler.js +20 -0
- package/dist/services/integration-api/handler/server-config-handler.d.ts +8 -0
- package/dist/services/integration-api/handler/server-config-handler.js +21 -0
- package/dist/services/integration-api/integration-api-model.d.ts +89 -0
- package/dist/services/integration-api/integration-api-model.js +2 -0
- package/dist/services/integration-api/integration-api-service.d.ts +21 -0
- package/dist/services/integration-api/integration-api-service.js +76 -0
- package/dist/services/integration-api/struct/customer-config-file.d.ts +10 -0
- package/dist/services/integration-api/struct/customer-config-file.js +32 -0
- package/dist/services/integration-api/struct/customer-config.d.ts +22 -0
- package/dist/services/integration-api/struct/customer-config.js +67 -0
- package/dist/services/integration-api/struct/file.d.ts +19 -0
- package/dist/services/integration-api/struct/file.js +61 -0
- package/dist/services/integration-api/struct/install-resource-file.d.ts +6 -0
- package/dist/services/integration-api/struct/install-resource-file.js +12 -0
- package/dist/services/integration-api/struct/module-file.d.ts +5 -0
- package/dist/services/integration-api/struct/module-file.js +10 -0
- package/dist/services/integration-api/struct/ro-file.d.ts +13 -0
- package/dist/services/integration-api/struct/ro-file.js +26 -0
- package/dist/services/integration-api/struct/server-config-file.d.ts +9 -0
- package/dist/services/integration-api/struct/server-config-file.js +22 -0
- package/dist/services/integration-api/struct/virtual-file.d.ts +14 -0
- package/dist/services/integration-api/struct/virtual-file.js +28 -0
- package/dist/services/integration-api/validator/customer-config-validator.d.ts +5 -0
- package/dist/services/integration-api/validator/customer-config-validator.js +23 -0
- package/dist/services/integration-api/validator/mandatory-files-validator.d.ts +7 -0
- package/dist/services/integration-api/validator/mandatory-files-validator.js +39 -0
- package/dist/services/integration-api/virtual/external-recipe.d.ts +9 -0
- package/dist/services/integration-api/virtual/external-recipe.js +19 -0
- package/dist/services/integration-api/virtual/virtual-file-handler.d.ts +7 -0
- package/dist/services/integration-api/virtual/virtual-file-handler.js +38 -0
- package/dist/services/onboarding/browser/abort-response.d.ts +5 -0
- package/dist/services/onboarding/browser/abort-response.js +10 -0
- package/dist/services/onboarding/browser/baqend-response.d.ts +12 -0
- package/dist/services/onboarding/browser/baqend-response.js +52 -0
- package/dist/services/onboarding/browser/origin-response.d.ts +8 -0
- package/dist/services/onboarding/browser/origin-response.js +20 -0
- package/dist/services/onboarding/config-renderer/install-file-recipe.d.ts +7 -0
- package/dist/services/onboarding/config-renderer/install-file-recipe.js +13 -0
- package/dist/services/onboarding/config-renderer/speed-kit-install-context.d.ts +22 -0
- package/dist/services/onboarding/config-renderer/speed-kit-install-context.js +78 -0
- package/dist/services/onboarding/dashboard/athena-service.d.ts +11 -0
- package/dist/services/onboarding/dashboard/athena-service.js +70 -0
- package/dist/services/onboarding/dashboard/frontend-dist/assets/index-87b53ed4.css +1 -0
- package/dist/services/onboarding/dashboard/frontend-dist/assets/main-274b5625.js +9 -0
- package/dist/services/onboarding/dashboard/frontend-dist/index.html +18 -0
- package/dist/services/onboarding/dashboard/index.d.ts +16 -0
- package/dist/services/onboarding/dashboard/index.js +78 -0
- package/dist/services/onboarding/dashboard/param-query-builder.d.ts +9 -0
- package/dist/services/onboarding/dashboard/param-query-builder.js +67 -0
- package/dist/services/onboarding/dashboard/request-diff-service.d.ts +11 -0
- package/dist/services/onboarding/dashboard/request-diff-service.js +59 -0
- package/dist/services/onboarding/error/vm-error.d.ts +2 -0
- package/dist/services/onboarding/error/vm-error.js +6 -0
- package/dist/services/onboarding/fetch-event-handler.d.ts +19 -0
- package/dist/services/onboarding/fetch-event-handler.js +155 -0
- package/dist/services/onboarding/fetch-events/customer-domain-document-response.d.ts +24 -0
- package/dist/services/onboarding/fetch-events/customer-domain-document-response.js +118 -0
- package/dist/services/onboarding/fetch-events/customer-service-worker-js.d.ts +14 -0
- package/dist/services/onboarding/fetch-events/customer-service-worker-js.js +30 -0
- package/dist/services/onboarding/fetch-events/dashboard-request.d.ts +15 -0
- package/dist/services/onboarding/fetch-events/dashboard-request.js +29 -0
- package/dist/services/onboarding/fetch-events/speed-kit-asset-request.d.ts +26 -0
- package/dist/services/onboarding/fetch-events/speed-kit-asset-request.js +138 -0
- package/dist/services/onboarding/fetch-events/speed-kit-install-html.d.ts +15 -0
- package/dist/services/onboarding/fetch-events/speed-kit-install-html.js +49 -0
- package/dist/services/onboarding/fetch-events/speed-kit-install-js.d.ts +22 -0
- package/dist/services/onboarding/fetch-events/speed-kit-install-js.js +62 -0
- package/dist/services/onboarding/fetch-events/speed-kit-rum-pi-request.d.ts +21 -0
- package/dist/services/onboarding/fetch-events/speed-kit-rum-pi-request.js +43 -0
- package/dist/services/onboarding/fetch-events/speed-kit-service-worker-js.d.ts +17 -0
- package/dist/services/onboarding/fetch-events/speed-kit-service-worker-js.js +27 -0
- package/dist/services/onboarding/file-events/fileWatcher.d.ts +28 -0
- package/dist/services/onboarding/file-events/fileWatcher.js +133 -0
- package/dist/services/onboarding/index.d.ts +3 -0
- package/dist/services/onboarding/index.js +8 -0
- package/dist/services/onboarding/onboarding-model.d.ts +30 -0
- package/dist/services/onboarding/onboarding-model.js +53 -0
- package/dist/services/onboarding/onboarding-service-factory.d.ts +16 -0
- package/dist/services/onboarding/onboarding-service-factory.js +163 -0
- package/dist/services/onboarding/onboarding-service.d.ts +31 -0
- package/dist/services/onboarding/onboarding-service.js +130 -0
- package/dist/services/onboarding/request-cache/cache.d.ts +15 -0
- package/dist/services/onboarding/request-cache/cache.js +32 -0
- package/dist/services/onboarding/templates/install-speed-kit-html-template.d.ts +4 -0
- package/dist/services/onboarding/templates/install-speed-kit-html-template.js +264 -0
- package/dist/services/onboarding/templates/install-speed-kit-js-template.d.ts +4 -0
- package/dist/services/onboarding/templates/install-speed-kit-js-template.js +41 -0
- package/dist/services/onboarding/todo-collector.d.ts +18 -0
- package/dist/services/onboarding/todo-collector.js +48 -0
- package/dist/services/prewarm-service.d.ts +5 -0
- package/dist/services/prewarm-service.js +57 -0
- package/dist/services/pull/index.d.ts +3 -0
- package/dist/services/pull/index.js +6 -0
- package/dist/services/pull/pull-service-factory.d.ts +12 -0
- package/dist/services/pull/pull-service-factory.js +44 -0
- package/dist/services/pull/pull-service-model.d.ts +43 -0
- package/dist/services/pull/pull-service-model.js +27 -0
- package/dist/services/pull/pull-service.d.ts +18 -0
- package/dist/services/pull/pull-service.js +106 -0
- package/dist/templates/pops.js +97 -0
- package/dist/templates/speedKit.Revalidated.js +86 -0
- package/oclif.manifest.json +700 -0
- package/package.json +128 -0
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const customer_config_legacy_error_1 = tslib_1.__importDefault(require("../customer-config-legacy-error"));
|
|
5
|
+
const core_1 = require("@oclif/core");
|
|
6
|
+
const chalk_1 = tslib_1.__importDefault(require("chalk"));
|
|
7
|
+
class CustomerConfigLegacyHandler {
|
|
8
|
+
canHandle(error) {
|
|
9
|
+
return error instanceof customer_config_legacy_error_1.default;
|
|
10
|
+
}
|
|
11
|
+
handle(error) {
|
|
12
|
+
core_1.ux.log();
|
|
13
|
+
core_1.ux.log(chalk_1.default.red(`config ${chalk_1.default.bold.white(error.context.configName)} not found`));
|
|
14
|
+
core_1.ux.log();
|
|
15
|
+
core_1.ux.log(chalk_1.default.italic("Is this still a legacy customer config format?"));
|
|
16
|
+
core_1.ux.log(chalk_1.default.italic("Make sure to export the different app configs under their config names like:"));
|
|
17
|
+
core_1.ux.log();
|
|
18
|
+
core_1.ux.log(chalk_1.default.bgBlack.hidden(" module.exports = { production, staging } "));
|
|
19
|
+
core_1.ux.log(chalk_1.default.bgBlack.white(" module.exports = { production, staging } "));
|
|
20
|
+
core_1.ux.log(chalk_1.default.bgBlack.hidden(" module.exports = { production, staging } "));
|
|
21
|
+
core_1.ux.exit(1);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.default = CustomerConfigLegacyHandler;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import ErrorHandlerInterface from "../../../error-handling/interface/error-handler-interface";
|
|
2
|
+
import OriginError from "../origin-error";
|
|
3
|
+
export default class OriginHandler implements ErrorHandlerInterface {
|
|
4
|
+
canHandle(error: Error): boolean;
|
|
5
|
+
handle(error: OriginError): void;
|
|
6
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const origin_error_1 = tslib_1.__importDefault(require("../origin-error"));
|
|
5
|
+
const core_1 = require("@oclif/core");
|
|
6
|
+
const chalk_1 = tslib_1.__importDefault(require("chalk"));
|
|
7
|
+
class OriginHandler {
|
|
8
|
+
canHandle(error) {
|
|
9
|
+
return error instanceof origin_error_1.default;
|
|
10
|
+
}
|
|
11
|
+
handle(error) {
|
|
12
|
+
core_1.ux.log();
|
|
13
|
+
core_1.ux.log(chalk_1.default.red(error.context.message));
|
|
14
|
+
core_1.ux.log();
|
|
15
|
+
core_1.ux.log(chalk_1.default.italic("Example entry:"));
|
|
16
|
+
core_1.ux.log(chalk_1.default.bgBlack.hidden(" origins: ['https://speedkit.com', 'https://baqend.com'], "));
|
|
17
|
+
core_1.ux.log(chalk_1.default.bgBlack.white(" origins: ['https://speedkit.com', 'https://baqend.com'], "));
|
|
18
|
+
core_1.ux.log(chalk_1.default.bgBlack.hidden(" origins: ['https://speedkit.com', 'https://baqend.com'], "));
|
|
19
|
+
core_1.ux.exit(1);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
exports.default = OriginHandler;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const deploy_app_error_1 = tslib_1.__importDefault(require("../../deploy/error/deploy-app-error"));
|
|
5
|
+
class LoadCustomerError extends deploy_app_error_1.default {
|
|
6
|
+
constructor(customerPath) {
|
|
7
|
+
super(`Could not resolve customer app name in ${customerPath}`);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
exports.default = LoadCustomerError;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const application_error_1 = tslib_1.__importDefault(require("../../error-handling/error/application-error"));
|
|
5
|
+
class OriginError extends application_error_1.default {
|
|
6
|
+
}
|
|
7
|
+
exports.default = OriginError;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ExternalFileReader = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const node_fetch_1 = tslib_1.__importDefault(require("node-fetch"));
|
|
6
|
+
const ro_file_1 = require("../struct/ro-file");
|
|
7
|
+
class ExternalFileReader {
|
|
8
|
+
async load(assetName) {
|
|
9
|
+
const response = await (0, node_fetch_1.default)(assetName);
|
|
10
|
+
if (!response.ok) {
|
|
11
|
+
throw new Error(`Could not retrieve asset "${assetName}". Server respond with ${response.status} ${response.statusText}`);
|
|
12
|
+
}
|
|
13
|
+
const [fileName, extension] = assetName.split('/').pop().split('.');
|
|
14
|
+
return new ro_file_1.RoFile(fileName, assetName, await response.text());
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.ExternalFileReader = ExternalFileReader;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import IntegrationApiService from "../integration-api-service";
|
|
2
|
+
import { IntegrationApiContextInterface } from "../integration-api-model";
|
|
3
|
+
import { UserCliConfig } from "../../../helpers/cli-config";
|
|
4
|
+
export default class IntegrationApiServiceFactory {
|
|
5
|
+
private context;
|
|
6
|
+
private cliConfig;
|
|
7
|
+
service?: IntegrationApiService;
|
|
8
|
+
private fileReader?;
|
|
9
|
+
constructor(context: IntegrationApiContextInterface, cliConfig: UserCliConfig);
|
|
10
|
+
buildService(): IntegrationApiService;
|
|
11
|
+
private build;
|
|
12
|
+
private getFileReader;
|
|
13
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const context_runtime_error_1 = tslib_1.__importDefault(require("../../context/error/context-runtime-error"));
|
|
5
|
+
const integration_api_service_1 = tslib_1.__importDefault(require("../integration-api-service"));
|
|
6
|
+
const file_reader_1 = tslib_1.__importDefault(require("../file-reader"));
|
|
7
|
+
const mandatory_files_validator_1 = tslib_1.__importDefault(require("../validator/mandatory-files-validator"));
|
|
8
|
+
const customer_config_handler_1 = tslib_1.__importDefault(require("../handler/customer-config-handler"));
|
|
9
|
+
const customer_config_validator_1 = tslib_1.__importDefault(require("../validator/customer-config-validator"));
|
|
10
|
+
const install_resource_handler_1 = tslib_1.__importDefault(require("../handler/install-resource-handler"));
|
|
11
|
+
const module_handler_1 = tslib_1.__importDefault(require("../handler/module-handler"));
|
|
12
|
+
const server_config_handler_1 = tslib_1.__importDefault(require("../handler/server-config-handler"));
|
|
13
|
+
const file_writer_1 = tslib_1.__importDefault(require("../file-writer"));
|
|
14
|
+
const cli_1 = require("../../cli");
|
|
15
|
+
const virtual_file_handler_1 = require("../virtual/virtual-file-handler");
|
|
16
|
+
class IntegrationApiServiceFactory {
|
|
17
|
+
context;
|
|
18
|
+
cliConfig;
|
|
19
|
+
service = undefined;
|
|
20
|
+
fileReader;
|
|
21
|
+
constructor(context, cliConfig) {
|
|
22
|
+
this.context = context;
|
|
23
|
+
this.cliConfig = cliConfig;
|
|
24
|
+
}
|
|
25
|
+
buildService() {
|
|
26
|
+
if (!(this.service instanceof integration_api_service_1.default)) {
|
|
27
|
+
this.build();
|
|
28
|
+
}
|
|
29
|
+
return this.service;
|
|
30
|
+
}
|
|
31
|
+
build() {
|
|
32
|
+
if (!this.context.basePath) {
|
|
33
|
+
throw new context_runtime_error_1.default({ message: 'basePath is undefined' });
|
|
34
|
+
}
|
|
35
|
+
if (!this.context.configName) {
|
|
36
|
+
throw new context_runtime_error_1.default({ message: 'configName is undefined' });
|
|
37
|
+
}
|
|
38
|
+
const fileReader = this.getFileReader();
|
|
39
|
+
const cli = (new cli_1.CliServiceFactory()).getService();
|
|
40
|
+
const virtualFileHandler = new virtual_file_handler_1.VirtualFileHandler(cli);
|
|
41
|
+
this.service = new integration_api_service_1.default(fileReader, virtualFileHandler, new mandatory_files_validator_1.default(), [
|
|
42
|
+
new customer_config_handler_1.default(fileReader, cli, new customer_config_validator_1.default(), this.context.configName, this.cliConfig.testApp),
|
|
43
|
+
new install_resource_handler_1.default(fileReader),
|
|
44
|
+
new server_config_handler_1.default(fileReader),
|
|
45
|
+
new module_handler_1.default(fileReader),
|
|
46
|
+
], new file_writer_1.default(this.context.basePath), this.context.whiteList.length < 1);
|
|
47
|
+
}
|
|
48
|
+
getFileReader() {
|
|
49
|
+
if (!this.fileReader) {
|
|
50
|
+
this.fileReader = new file_reader_1.default(this.context.configName, this.context.basePath, this.context.whiteList, this.context.blockedFolders);
|
|
51
|
+
}
|
|
52
|
+
return this.fileReader;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
exports.default = IntegrationApiServiceFactory;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { CustomerConfigInterface, FileInterface, FileListInterface, InstallResourceInterface, ModuleInterface, ServerConfigInterface } from "./integration-api-model";
|
|
2
|
+
import { RoFile } from "./struct/ro-file";
|
|
3
|
+
import { VirtualFile } from "./struct/virtual-file";
|
|
4
|
+
export default class FileList implements FileListInterface {
|
|
5
|
+
files: FileInterface[];
|
|
6
|
+
addFile(file: FileInterface): void;
|
|
7
|
+
hasFile(fileName: string): boolean;
|
|
8
|
+
getInstallResources(): InstallResourceInterface[];
|
|
9
|
+
getModules(): ModuleInterface[];
|
|
10
|
+
getServerConfig(): ServerConfigInterface;
|
|
11
|
+
getCustomerConfig(): CustomerConfigInterface;
|
|
12
|
+
getTypes(): any[];
|
|
13
|
+
getByType(type: any): FileInterface[];
|
|
14
|
+
getByName<T>(name: string): T;
|
|
15
|
+
filter(callback: (file: FileInterface) => boolean): void;
|
|
16
|
+
concat(fileList: FileListInterface): void;
|
|
17
|
+
replace(replaceWith: InstallResourceInterface | ModuleInterface | ServerConfigInterface | FileInterface | RoFile | VirtualFile): void;
|
|
18
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const module_file_1 = tslib_1.__importDefault(require("./struct/module-file"));
|
|
5
|
+
const server_config_file_1 = tslib_1.__importDefault(require("./struct/server-config-file"));
|
|
6
|
+
const customer_config_file_1 = tslib_1.__importDefault(require("./struct/customer-config-file"));
|
|
7
|
+
const install_resource_file_1 = tslib_1.__importDefault(require("./struct/install-resource-file"));
|
|
8
|
+
class FileList {
|
|
9
|
+
files = [];
|
|
10
|
+
addFile(file) {
|
|
11
|
+
this.files.push(file);
|
|
12
|
+
}
|
|
13
|
+
hasFile(fileName) {
|
|
14
|
+
for (let iteration = 0; iteration < this.files.length; iteration++) {
|
|
15
|
+
let file = this.files[iteration];
|
|
16
|
+
if (file.name === fileName) {
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
getInstallResources() {
|
|
23
|
+
return this.files.filter((file) => {
|
|
24
|
+
return file instanceof install_resource_file_1.default;
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
getModules() {
|
|
28
|
+
return this.files.filter((file) => {
|
|
29
|
+
return file instanceof module_file_1.default;
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
getServerConfig() {
|
|
33
|
+
const configFiles = this.files.filter((file) => {
|
|
34
|
+
return file instanceof server_config_file_1.default;
|
|
35
|
+
});
|
|
36
|
+
return configFiles.shift();
|
|
37
|
+
}
|
|
38
|
+
getCustomerConfig() {
|
|
39
|
+
const configFiles = this.files.filter((file) => {
|
|
40
|
+
return file instanceof customer_config_file_1.default;
|
|
41
|
+
});
|
|
42
|
+
return configFiles.shift();
|
|
43
|
+
}
|
|
44
|
+
getTypes() {
|
|
45
|
+
const types = this.files.map((file) => {
|
|
46
|
+
return file.type;
|
|
47
|
+
}).sort();
|
|
48
|
+
return [...new Set(types)];
|
|
49
|
+
}
|
|
50
|
+
getByType(type) {
|
|
51
|
+
return this.files.filter((file) => {
|
|
52
|
+
return file instanceof type;
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
getByName(name) {
|
|
56
|
+
const files = this.files.filter((file) => {
|
|
57
|
+
return file.name === name;
|
|
58
|
+
});
|
|
59
|
+
return files[0];
|
|
60
|
+
}
|
|
61
|
+
filter(callback) {
|
|
62
|
+
this.files = this.files.filter((file) => callback(file));
|
|
63
|
+
}
|
|
64
|
+
concat(fileList) {
|
|
65
|
+
fileList.files.forEach(file => this.files.push(file));
|
|
66
|
+
}
|
|
67
|
+
replace(replaceWith) {
|
|
68
|
+
const files = [];
|
|
69
|
+
for (const file of this.files) {
|
|
70
|
+
if (file.name === replaceWith.name) {
|
|
71
|
+
files.push(replaceWith);
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
files.push(file);
|
|
75
|
+
}
|
|
76
|
+
this.files = files;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
exports.default = FileList;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export default class FileReader {
|
|
2
|
+
readonly configName: string;
|
|
3
|
+
private readonly basePath;
|
|
4
|
+
private readonly whiteList;
|
|
5
|
+
private readonly blockedFolders;
|
|
6
|
+
allowedExtensions: string[];
|
|
7
|
+
constructor(configName: string, basePath: string, whiteList?: string[], blockedFolders?: string[]);
|
|
8
|
+
getFileList(dirName?: string): Promise<string[]>;
|
|
9
|
+
getContent(path: string): Promise<string>;
|
|
10
|
+
isAllowedFolder(folderName: string): boolean;
|
|
11
|
+
isAllowedFile(fileName: string): boolean;
|
|
12
|
+
getFileExtension(fileName: string): string;
|
|
13
|
+
isWhiteListed(fileName: string): boolean;
|
|
14
|
+
private mapEnvironment;
|
|
15
|
+
}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const fs_1 = require("fs");
|
|
5
|
+
const path_1 = tslib_1.__importDefault(require("path"));
|
|
6
|
+
const promises_1 = require("fs/promises");
|
|
7
|
+
const CUSTOMER_CONFIG_FILE = 'config_customer';
|
|
8
|
+
const DEFAULT_ENV = 'production';
|
|
9
|
+
class FileReader {
|
|
10
|
+
configName;
|
|
11
|
+
basePath;
|
|
12
|
+
whiteList;
|
|
13
|
+
blockedFolders;
|
|
14
|
+
allowedExtensions = ['js', 'es6', 'json', 'css'];
|
|
15
|
+
constructor(configName, basePath, whiteList = [], blockedFolders = []) {
|
|
16
|
+
this.configName = configName;
|
|
17
|
+
this.basePath = basePath;
|
|
18
|
+
this.whiteList = whiteList;
|
|
19
|
+
this.blockedFolders = blockedFolders;
|
|
20
|
+
}
|
|
21
|
+
async getFileList(dirName = this.basePath) {
|
|
22
|
+
let files = [];
|
|
23
|
+
const items = await fs_1.promises.readdir(dirName, { withFileTypes: true });
|
|
24
|
+
for (const item of items) {
|
|
25
|
+
if (item.isDirectory()) {
|
|
26
|
+
if (this.isAllowedFolder(item.name)) {
|
|
27
|
+
files = [
|
|
28
|
+
...files,
|
|
29
|
+
...(await this.getFileList(path_1.default.resolve(dirName, item.name))),
|
|
30
|
+
];
|
|
31
|
+
}
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
34
|
+
if (this.isAllowedFile(item.name)) {
|
|
35
|
+
files.push(path_1.default.resolve(dirName, item.name));
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return this.mapEnvironment(files);
|
|
39
|
+
}
|
|
40
|
+
async getContent(path) {
|
|
41
|
+
return (0, promises_1.readFile)(path, 'utf-8');
|
|
42
|
+
}
|
|
43
|
+
isAllowedFolder(folderName) {
|
|
44
|
+
return !this.blockedFolders.some((entry) => {
|
|
45
|
+
return folderName.includes(entry);
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
isAllowedFile(fileName) {
|
|
49
|
+
const extension = this.getFileExtension(fileName);
|
|
50
|
+
return this.allowedExtensions.indexOf(extension) !== -1 && this.isWhiteListed(fileName);
|
|
51
|
+
}
|
|
52
|
+
getFileExtension(fileName) {
|
|
53
|
+
return fileName.slice((fileName.lastIndexOf(".") - 1 >>> 0) + 2);
|
|
54
|
+
}
|
|
55
|
+
isWhiteListed(fileName) {
|
|
56
|
+
// always true if whitelist is empty
|
|
57
|
+
if (this.whiteList.length === 0) {
|
|
58
|
+
return true;
|
|
59
|
+
}
|
|
60
|
+
// customer_config is always whitelisted
|
|
61
|
+
if (fileName.includes(CUSTOMER_CONFIG_FILE)) {
|
|
62
|
+
return true;
|
|
63
|
+
}
|
|
64
|
+
return this.whiteList.some(entry => {
|
|
65
|
+
return fileName.includes(entry);
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
mapEnvironment(fileList) {
|
|
69
|
+
const envFileList = {};
|
|
70
|
+
// create mapped object with all environment versions of a file
|
|
71
|
+
for (let index = 0; index < fileList.length; index++) {
|
|
72
|
+
const shortFileName = path_1.default.basename(fileList[index]);
|
|
73
|
+
const fullFileName = fileList[index];
|
|
74
|
+
let fileName = shortFileName.split('.').slice(0, -1).join('.');
|
|
75
|
+
let env = fileName.split('.').pop();
|
|
76
|
+
if (env === fileName) {
|
|
77
|
+
env = DEFAULT_ENV;
|
|
78
|
+
}
|
|
79
|
+
const fileKey = (env === DEFAULT_ENV) ? fileName : fileName.split('.').slice(0, -1).join('.');
|
|
80
|
+
envFileList[fileKey] = { ...envFileList[fileKey], [env]: fullFileName };
|
|
81
|
+
}
|
|
82
|
+
// map object to current environment with fallback on production
|
|
83
|
+
return Array.from(Object.values(envFileList)).map((envFile) => {
|
|
84
|
+
if (this.configName in envFile) {
|
|
85
|
+
return envFile[this.configName];
|
|
86
|
+
}
|
|
87
|
+
if (DEFAULT_ENV in envFile) {
|
|
88
|
+
return envFile[DEFAULT_ENV];
|
|
89
|
+
}
|
|
90
|
+
// if no env was found return original fileName
|
|
91
|
+
for (const key in envFile) {
|
|
92
|
+
return envFile[key];
|
|
93
|
+
}
|
|
94
|
+
}).filter(value => !!value);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
exports.default = FileReader;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export default class FileWriter {
|
|
2
|
+
basePath: string;
|
|
3
|
+
constructor(basePath: string);
|
|
4
|
+
writeFile(fileName: string, extension: string, content: string): void;
|
|
5
|
+
mkdir(directoryPath: string): void;
|
|
6
|
+
hasFile(fileName: string, extension: string): boolean;
|
|
7
|
+
removeFile(fileName: string, extension: string): void;
|
|
8
|
+
private getPath;
|
|
9
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const node_fs_1 = require("node:fs");
|
|
5
|
+
const path_1 = tslib_1.__importDefault(require("path"));
|
|
6
|
+
class FileWriter {
|
|
7
|
+
basePath;
|
|
8
|
+
constructor(basePath) {
|
|
9
|
+
this.basePath = basePath;
|
|
10
|
+
}
|
|
11
|
+
writeFile(fileName, extension, content) {
|
|
12
|
+
(0, node_fs_1.writeFileSync)(this.getPath(fileName, extension), content);
|
|
13
|
+
}
|
|
14
|
+
mkdir(directoryPath) {
|
|
15
|
+
(0, node_fs_1.mkdirSync)(path_1.default.resolve(this.basePath, directoryPath), { recursive: true });
|
|
16
|
+
}
|
|
17
|
+
hasFile(fileName, extension) {
|
|
18
|
+
return (0, node_fs_1.existsSync)(this.getPath(fileName, extension));
|
|
19
|
+
}
|
|
20
|
+
removeFile(fileName, extension) {
|
|
21
|
+
(0, node_fs_1.unlinkSync)(this.getPath(fileName, extension));
|
|
22
|
+
}
|
|
23
|
+
getPath(fileName, extension) {
|
|
24
|
+
return path_1.default.resolve(this.basePath, `${fileName}.${extension}`);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.default = FileWriter;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import FileHandler from "./file-handler";
|
|
2
|
+
import FileReader from "../file-reader";
|
|
3
|
+
import CustomerConfigValidator from "../validator/customer-config-validator";
|
|
4
|
+
import { CliService } from "../../cli";
|
|
5
|
+
import { CustomerConfigInterface } from "../integration-api-model";
|
|
6
|
+
export default class CustomerConfigHandler extends FileHandler {
|
|
7
|
+
private cli;
|
|
8
|
+
private validator;
|
|
9
|
+
private configName;
|
|
10
|
+
private testApp?;
|
|
11
|
+
allowedFile: string;
|
|
12
|
+
constructor(fileReader: FileReader, cli: CliService, validator: CustomerConfigValidator, configName: string, testApp?: string);
|
|
13
|
+
canHandle(filePath: string): boolean;
|
|
14
|
+
handle(filePath: string): Promise<CustomerConfigInterface>;
|
|
15
|
+
private loadConfig;
|
|
16
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const file_handler_1 = tslib_1.__importDefault(require("./file-handler"));
|
|
5
|
+
const customer_config_file_1 = tslib_1.__importDefault(require("../struct/customer-config-file"));
|
|
6
|
+
const customer_config_1 = tslib_1.__importDefault(require("../struct/customer-config"));
|
|
7
|
+
const customer_config_legacy_error_1 = tslib_1.__importDefault(require("../error/customer-config-legacy-error"));
|
|
8
|
+
const vm = tslib_1.__importStar(require("vm"));
|
|
9
|
+
const customer_config_error_1 = tslib_1.__importDefault(require("../error/customer-config-error"));
|
|
10
|
+
class CustomerConfigHandler extends file_handler_1.default {
|
|
11
|
+
cli;
|
|
12
|
+
validator;
|
|
13
|
+
configName;
|
|
14
|
+
testApp;
|
|
15
|
+
allowedFile = 'config_customer';
|
|
16
|
+
constructor(fileReader, cli, validator, configName, testApp) {
|
|
17
|
+
super(fileReader);
|
|
18
|
+
this.cli = cli;
|
|
19
|
+
this.validator = validator;
|
|
20
|
+
this.configName = configName;
|
|
21
|
+
this.testApp = testApp;
|
|
22
|
+
}
|
|
23
|
+
canHandle(filePath) {
|
|
24
|
+
return this.allowedFile === this.getFileName(filePath);
|
|
25
|
+
}
|
|
26
|
+
async handle(filePath) {
|
|
27
|
+
const fileContent = await this.fileReader.getContent(filePath);
|
|
28
|
+
const config = await this.loadConfig(fileContent);
|
|
29
|
+
this.validator.validate(config);
|
|
30
|
+
return new customer_config_file_1.default(this.getFileName(filePath), filePath, fileContent, config, this.configName);
|
|
31
|
+
}
|
|
32
|
+
async loadConfig(fileContent) {
|
|
33
|
+
if (fileContent.includes('process.env.TEST_APP') && (this.testApp === null) || this.testApp.length === 0) {
|
|
34
|
+
throw new customer_config_error_1.default('please specify env TEST_APP in your .env or configFile file');
|
|
35
|
+
}
|
|
36
|
+
const customerConfigContext = {
|
|
37
|
+
module: { exports: {} },
|
|
38
|
+
process: {
|
|
39
|
+
env: { TEST_APP: this.testApp } // make TEST_APP available for vm
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
vm.runInNewContext(fileContent, customerConfigContext);
|
|
43
|
+
const configs = customerConfigContext?.module?.exports;
|
|
44
|
+
if (Array.isArray(configs) || typeof configs === 'string' || 'origins' in configs || 'name' in configs) {
|
|
45
|
+
throw new customer_config_legacy_error_1.default({ configName: this.configName });
|
|
46
|
+
}
|
|
47
|
+
if (this.configName in configs) {
|
|
48
|
+
return customer_config_1.default.createFrom(configs[this.configName], this.configName);
|
|
49
|
+
}
|
|
50
|
+
this.cli.writeWarning(`config: ${this.configName} does not exist.`);
|
|
51
|
+
const selectedConfig = await this.cli.select('please select config: ', Object.keys(configs).map(option => ({ name: option, value: option })));
|
|
52
|
+
return customer_config_1.default.createFrom(configs[selectedConfig], selectedConfig);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
exports.default = CustomerConfigHandler;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import FileReader from "../file-reader";
|
|
2
|
+
import { FileInterface, IntegrationApiHandler } from "../integration-api-model";
|
|
3
|
+
export default abstract class FileHandler implements IntegrationApiHandler {
|
|
4
|
+
protected fileReader: FileReader;
|
|
5
|
+
constructor(fileReader: FileReader);
|
|
6
|
+
canHandle(filePath: string): boolean;
|
|
7
|
+
abstract handle(filePath: string): Promise<FileInterface>;
|
|
8
|
+
protected getFileName(path: string): string;
|
|
9
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
class FileHandler {
|
|
4
|
+
fileReader;
|
|
5
|
+
constructor(fileReader) {
|
|
6
|
+
this.fileReader = fileReader;
|
|
7
|
+
}
|
|
8
|
+
canHandle(filePath) {
|
|
9
|
+
return false;
|
|
10
|
+
}
|
|
11
|
+
getFileName(path) {
|
|
12
|
+
let fileName = path.replace(/^.*[\\\/]/, '').split('.').slice(0, -1).join('.');
|
|
13
|
+
// remove environmentName for internal references
|
|
14
|
+
if (fileName.split('.').pop() === this.fileReader.configName) {
|
|
15
|
+
fileName = fileName.split('.').slice(0, -1).join('.');
|
|
16
|
+
}
|
|
17
|
+
return fileName;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.default = FileHandler;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import FileHandler from "./file-handler";
|
|
2
|
+
import { InstallResourceInterface } from "../integration-api-model";
|
|
3
|
+
export default class InstallResourceHandler extends FileHandler {
|
|
4
|
+
allowedFiles: string[];
|
|
5
|
+
readonly remoteKeyMapping: {
|
|
6
|
+
config_SpeedKit: string;
|
|
7
|
+
config_documentHandler: string;
|
|
8
|
+
config_dynamicBlocks: string;
|
|
9
|
+
config_loadHandler: string;
|
|
10
|
+
custom_loader: string;
|
|
11
|
+
custom_sw: string;
|
|
12
|
+
custom_documentHandler: string;
|
|
13
|
+
custom_dynamicFetcher: string;
|
|
14
|
+
config_dynamicStyles: string;
|
|
15
|
+
};
|
|
16
|
+
canHandle(filePath: string): boolean;
|
|
17
|
+
handle(filePath: string): Promise<InstallResourceInterface>;
|
|
18
|
+
private getRemoteKey;
|
|
19
|
+
/**
|
|
20
|
+
*
|
|
21
|
+
* @param fileName
|
|
22
|
+
* @param filePath
|
|
23
|
+
* @private
|
|
24
|
+
*/
|
|
25
|
+
private getFileContent;
|
|
26
|
+
/**
|
|
27
|
+
*
|
|
28
|
+
*
|
|
29
|
+
* @param content
|
|
30
|
+
* @private
|
|
31
|
+
*/
|
|
32
|
+
private replaceWithDebugPackage;
|
|
33
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const file_handler_1 = tslib_1.__importDefault(require("./file-handler"));
|
|
5
|
+
const install_resource_file_1 = tslib_1.__importDefault(require("../struct/install-resource-file"));
|
|
6
|
+
const application_error_1 = tslib_1.__importDefault(require("../../error-handling/error/application-error"));
|
|
7
|
+
const PREDICTIVE_PRELOADING = 'predictive-preloading';
|
|
8
|
+
class InstallResourceHandler extends file_handler_1.default {
|
|
9
|
+
allowedFiles = [
|
|
10
|
+
'config_SpeedKit',
|
|
11
|
+
'config_documentHandler',
|
|
12
|
+
'config_dynamicBlocks',
|
|
13
|
+
'config_loadHandler',
|
|
14
|
+
'custom_loader',
|
|
15
|
+
'custom_sw',
|
|
16
|
+
'custom_documentHandler',
|
|
17
|
+
'custom_dynamicFetcher',
|
|
18
|
+
'config_dynamicStyles',
|
|
19
|
+
];
|
|
20
|
+
remoteKeyMapping = {
|
|
21
|
+
'config_SpeedKit': 'config',
|
|
22
|
+
'config_documentHandler': 'documentHandlerConfig',
|
|
23
|
+
'config_dynamicBlocks': 'dynamicFetcherConfig',
|
|
24
|
+
'config_loadHandler': 'custom',
|
|
25
|
+
'custom_loader': 'loader',
|
|
26
|
+
'custom_sw': 'sw',
|
|
27
|
+
'custom_documentHandler': 'documentHandler',
|
|
28
|
+
'custom_dynamicFetcher': 'dynamicFetcher',
|
|
29
|
+
'config_dynamicStyles': 'customStyle',
|
|
30
|
+
};
|
|
31
|
+
canHandle(filePath) {
|
|
32
|
+
return this.allowedFiles.indexOf(this.getFileName(filePath)) !== -1;
|
|
33
|
+
}
|
|
34
|
+
async handle(filePath) {
|
|
35
|
+
const fileName = this.getFileName(filePath);
|
|
36
|
+
return new install_resource_file_1.default(fileName, filePath, await this.getFileContent(fileName, filePath), this.getRemoteKey(fileName));
|
|
37
|
+
}
|
|
38
|
+
getRemoteKey(fileName) {
|
|
39
|
+
if (!this.remoteKeyMapping[fileName]) {
|
|
40
|
+
throw new application_error_1.default({ message: `unknown fileName ${fileName}` });
|
|
41
|
+
}
|
|
42
|
+
return this.remoteKeyMapping[fileName];
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
*
|
|
46
|
+
* @param fileName
|
|
47
|
+
* @param filePath
|
|
48
|
+
* @private
|
|
49
|
+
*/
|
|
50
|
+
async getFileContent(fileName, filePath) {
|
|
51
|
+
const content = await this.fileReader.getContent(filePath);
|
|
52
|
+
if (fileName === 'config_loadHandler' && content.includes(PREDICTIVE_PRELOADING)) {
|
|
53
|
+
return this.replaceWithDebugPackage(content);
|
|
54
|
+
}
|
|
55
|
+
return content;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
*
|
|
59
|
+
*
|
|
60
|
+
* @param content
|
|
61
|
+
* @private
|
|
62
|
+
*/
|
|
63
|
+
replaceWithDebugPackage(content) {
|
|
64
|
+
return content.replace(PREDICTIVE_PRELOADING, `${PREDICTIVE_PRELOADING}.debug.min.js`);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
exports.default = InstallResourceHandler;
|