@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,7 @@
|
|
|
1
|
+
import FileList from "../file-list";
|
|
2
|
+
import { MandatoryFilesConfigInterface } from "../integration-api-model";
|
|
3
|
+
export default class MandatoryFilesValidator {
|
|
4
|
+
mandatoryFilesConfig: MandatoryFilesConfigInterface;
|
|
5
|
+
validate(files: FileList): void;
|
|
6
|
+
private validateConditionally;
|
|
7
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const mandatory_file_missing_error_1 = tslib_1.__importDefault(require("../error/mandatory-file-missing-error"));
|
|
5
|
+
class MandatoryFilesValidator {
|
|
6
|
+
mandatoryFilesConfig = {
|
|
7
|
+
required: ['config_customer', 'config_SpeedKit'],
|
|
8
|
+
conditionallyRequired: {
|
|
9
|
+
this: ['config_documentHandler', 'config_dynamicBlocks', 'config_dynamicStyles'],
|
|
10
|
+
or: ['speedKit.Asset'],
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
validate(files) {
|
|
14
|
+
this.mandatoryFilesConfig.required.forEach((fileName) => {
|
|
15
|
+
if (!files.hasFile(fileName)) {
|
|
16
|
+
throw new mandatory_file_missing_error_1.default(fileName);
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
this.validateConditionally(files);
|
|
20
|
+
}
|
|
21
|
+
validateConditionally(files) {
|
|
22
|
+
let hasRequiredFiles = true;
|
|
23
|
+
this.mandatoryFilesConfig.conditionallyRequired.this.forEach((fileName) => {
|
|
24
|
+
if (!files.hasFile(fileName)) {
|
|
25
|
+
hasRequiredFiles = false;
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
let hasConditionallyRequiredFiles = true;
|
|
29
|
+
this.mandatoryFilesConfig.conditionallyRequired.or.forEach((fileName) => {
|
|
30
|
+
if (!files.hasFile(fileName)) {
|
|
31
|
+
hasConditionallyRequiredFiles = false;
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
if (!hasRequiredFiles && !hasConditionallyRequiredFiles) {
|
|
35
|
+
throw new Error(`Please implement ${this.mandatoryFilesConfig.conditionallyRequired.this.join(', ')} or ${this.mandatoryFilesConfig.conditionallyRequired.or.join(', ')}`);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
exports.default = MandatoryFilesValidator;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ExternalFileReader } from "../external/external-file-reader";
|
|
2
|
+
import { VirtualFileRecipe } from "../integration-api-model";
|
|
3
|
+
export declare class ExternalRecipe implements VirtualFileRecipe {
|
|
4
|
+
private filePath;
|
|
5
|
+
private externalFileReader;
|
|
6
|
+
private content;
|
|
7
|
+
constructor(filePath: string, externalFileReader: ExternalFileReader);
|
|
8
|
+
createContent(): Promise<string>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ExternalRecipe = void 0;
|
|
4
|
+
class ExternalRecipe {
|
|
5
|
+
filePath;
|
|
6
|
+
externalFileReader;
|
|
7
|
+
content;
|
|
8
|
+
constructor(filePath, externalFileReader) {
|
|
9
|
+
this.filePath = filePath;
|
|
10
|
+
this.externalFileReader = externalFileReader;
|
|
11
|
+
}
|
|
12
|
+
async createContent() {
|
|
13
|
+
if (!this.content) {
|
|
14
|
+
this.content = (await this.externalFileReader.load(this.filePath)).getContent();
|
|
15
|
+
}
|
|
16
|
+
return this.content;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.ExternalRecipe = ExternalRecipe;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { FileListInterface, VirtualFileConfig } from "../integration-api-model";
|
|
2
|
+
import { CliService } from "../../cli";
|
|
3
|
+
export declare class VirtualFileHandler {
|
|
4
|
+
private cli;
|
|
5
|
+
constructor(cli: CliService);
|
|
6
|
+
processFiles(fileList: FileListInterface, virtualFiles: VirtualFileConfig[]): Promise<void>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.VirtualFileHandler = void 0;
|
|
4
|
+
const virtual_file_1 = require("../struct/virtual-file");
|
|
5
|
+
const cli_1 = require("../../cli");
|
|
6
|
+
const safe_1 = require("../../../helpers/safe");
|
|
7
|
+
class VirtualFileHandler {
|
|
8
|
+
cli;
|
|
9
|
+
constructor(cli) {
|
|
10
|
+
this.cli = cli;
|
|
11
|
+
}
|
|
12
|
+
async processFiles(fileList, virtualFiles) {
|
|
13
|
+
for (const fileConfig of virtualFiles) {
|
|
14
|
+
const [fileName, extension] = fileConfig.name.split('/').pop().split('.');
|
|
15
|
+
if (!fileConfig.overrideLocalFile && fileList.hasFile(fileName)) {
|
|
16
|
+
this.cli.write(`use localFile for ${fileName}`);
|
|
17
|
+
continue;
|
|
18
|
+
}
|
|
19
|
+
this.cli.startAction(`get remote file ${fileName}`);
|
|
20
|
+
const virtualFile = new virtual_file_1.VirtualFile(fileName, fileConfig.recipe);
|
|
21
|
+
const result = await (0, safe_1.safe)(virtualFile.buildContent());
|
|
22
|
+
if (result.success === true) {
|
|
23
|
+
if (fileList.hasFile(fileName) && fileConfig.overrideLocalFile) {
|
|
24
|
+
this.cli.write(`use remoteFile for ${fileName}`);
|
|
25
|
+
fileList.replace(virtualFile);
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
fileList.addFile(virtualFile);
|
|
29
|
+
}
|
|
30
|
+
this.cli.endAction(cli_1.CliActionStatus.COMPLETED);
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
this.cli.endAction(cli_1.CliActionStatus.FAILED);
|
|
34
|
+
this.cli.writeError(result.error);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.VirtualFileHandler = VirtualFileHandler;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AbortResponse = void 0;
|
|
4
|
+
class AbortResponse {
|
|
5
|
+
errorReason;
|
|
6
|
+
constructor(errorReason = 'Aborted') {
|
|
7
|
+
this.errorReason = errorReason;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
exports.AbortResponse = AbortResponse;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import Protocol from 'devtools-protocol';
|
|
2
|
+
export declare class BaqendResponse implements Partial<Protocol.Fetch.FulfillRequestRequest> {
|
|
3
|
+
readonly requestId?: string;
|
|
4
|
+
readonly responseCode: number;
|
|
5
|
+
readonly body: string;
|
|
6
|
+
responseHeaders: Protocol.Fetch.HeaderEntry[];
|
|
7
|
+
private contentType;
|
|
8
|
+
private contentLength;
|
|
9
|
+
constructor(body: string, contentType?: string, headers?: Protocol.Fetch.HeaderEntry[], status?: number);
|
|
10
|
+
setHeader(name: string, value: string): void;
|
|
11
|
+
protected addCustomHeaders(headers?: Protocol.Fetch.HeaderEntry[]): Protocol.Fetch.HeaderEntry[];
|
|
12
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BaqendResponse = void 0;
|
|
4
|
+
const DEFAULT_HEADERS = [
|
|
5
|
+
{ name: 'Date', value: new Date().toUTCString() },
|
|
6
|
+
{ name: 'Content-Encoding', value: 'identity' }
|
|
7
|
+
];
|
|
8
|
+
const DEFAULT_CONTENT_TYPE = 'text/html; charset=utf-8';
|
|
9
|
+
const DEFAULT_STATUS = 200;
|
|
10
|
+
class BaqendResponse {
|
|
11
|
+
requestId;
|
|
12
|
+
responseCode;
|
|
13
|
+
body;
|
|
14
|
+
responseHeaders;
|
|
15
|
+
contentType;
|
|
16
|
+
contentLength;
|
|
17
|
+
constructor(body, contentType, headers, status) {
|
|
18
|
+
this.responseCode = status || DEFAULT_STATUS;
|
|
19
|
+
this.contentType = contentType || DEFAULT_CONTENT_TYPE;
|
|
20
|
+
this.responseHeaders = this.addCustomHeaders([...DEFAULT_HEADERS, ...headers || []]);
|
|
21
|
+
this.contentLength = body.length;
|
|
22
|
+
this.body = Buffer.from(body).toString('base64');
|
|
23
|
+
}
|
|
24
|
+
setHeader(name, value) {
|
|
25
|
+
for (const header of this.responseHeaders) {
|
|
26
|
+
if (header.name === name) {
|
|
27
|
+
header.value = value;
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
this.responseHeaders.push({ name, value });
|
|
32
|
+
}
|
|
33
|
+
addCustomHeaders(headers) {
|
|
34
|
+
if (!headers?.find((o) => o.name === 'Cache-Control')) {
|
|
35
|
+
headers.push({ name: 'Cache-Control', value: 'max-age=0, nocache, nostore' });
|
|
36
|
+
}
|
|
37
|
+
const origin = headers?.find((o) => o.name.toLowerCase() === 'origin')?.value;
|
|
38
|
+
if (origin) {
|
|
39
|
+
headers.push({ name: 'Access-Control-Allow-Origin', value: origin });
|
|
40
|
+
}
|
|
41
|
+
if (!headers?.find((o) => o.name === 'Content-Length')) {
|
|
42
|
+
headers.push({ name: 'Content-Length', value: String(this.contentLength) });
|
|
43
|
+
}
|
|
44
|
+
if (!headers?.find((o) => o.name === 'Content-Type')) {
|
|
45
|
+
headers.push({ name: 'Content-Type', value: String(this.contentType) });
|
|
46
|
+
}
|
|
47
|
+
headers.push({ name: 'via', value: 'sk-onboarding' });
|
|
48
|
+
headers.push({ name: 'Service-Worker-Allowed', value: '/' });
|
|
49
|
+
return headers;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.BaqendResponse = BaqendResponse;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import Protocol from 'devtools-protocol';
|
|
2
|
+
export declare class OriginResponse implements Partial<Protocol.Fetch.FulfillRequestRequest> {
|
|
3
|
+
readonly body: string;
|
|
4
|
+
readonly responseCode: number;
|
|
5
|
+
readonly responseHeaders: Protocol.Fetch.HeaderEntry[];
|
|
6
|
+
constructor(body: string, headers: Protocol.Fetch.HeaderEntry[], responseCode: number);
|
|
7
|
+
private addCustomHeaders;
|
|
8
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OriginResponse = void 0;
|
|
4
|
+
class OriginResponse {
|
|
5
|
+
body;
|
|
6
|
+
responseCode;
|
|
7
|
+
responseHeaders;
|
|
8
|
+
constructor(body, headers, responseCode) {
|
|
9
|
+
this.body = body;
|
|
10
|
+
this.responseCode = responseCode;
|
|
11
|
+
this.responseHeaders = this.addCustomHeaders(headers);
|
|
12
|
+
this.body = Buffer.from(body).toString('base64');
|
|
13
|
+
}
|
|
14
|
+
addCustomHeaders(headers) {
|
|
15
|
+
headers.push({ name: 'x-served-via', value: 'sk-onboarding' });
|
|
16
|
+
headers.push({ name: 'Service-Worker-Allowed', value: '/' });
|
|
17
|
+
return headers;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.OriginResponse = OriginResponse;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { VirtualFileRecipe } from "../../integration-api/integration-api-model";
|
|
2
|
+
import { SpeedKitInstallContext } from "./speed-kit-install-context";
|
|
3
|
+
export declare class InstallFileRecipe implements VirtualFileRecipe {
|
|
4
|
+
private installContext;
|
|
5
|
+
constructor(installContext: SpeedKitInstallContext);
|
|
6
|
+
createContent(): Promise<string>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InstallFileRecipe = void 0;
|
|
4
|
+
class InstallFileRecipe {
|
|
5
|
+
installContext;
|
|
6
|
+
constructor(installContext) {
|
|
7
|
+
this.installContext = installContext;
|
|
8
|
+
}
|
|
9
|
+
async createContent() {
|
|
10
|
+
return this.installContext.getSpeedKitInstallJs();
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.InstallFileRecipe = InstallFileRecipe;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { InstallSpeedKitJsTemplate } from '../templates/install-speed-kit-js-template';
|
|
2
|
+
import CustomerConfig from "../../integration-api/struct/customer-config";
|
|
3
|
+
import { BundleService } from "../../bundler";
|
|
4
|
+
import { FileListInterface } from "../../integration-api/integration-api-model";
|
|
5
|
+
export declare class SpeedKitInstallContext {
|
|
6
|
+
private customerConfig;
|
|
7
|
+
private configName;
|
|
8
|
+
private files;
|
|
9
|
+
private bundler;
|
|
10
|
+
private skTemplate;
|
|
11
|
+
private isLocalRuntime;
|
|
12
|
+
constructor(customerConfig: CustomerConfig, configName: string, files: FileListInterface, bundler: BundleService, skTemplate: InstallSpeedKitJsTemplate, isLocalRuntime?: boolean);
|
|
13
|
+
getSpeedKitInstallJs(): Promise<string>;
|
|
14
|
+
private getConfigSpeedKit;
|
|
15
|
+
/**
|
|
16
|
+
* Fetches and returns the latest dynamic fetcher from the code repository. If a new version is available online it is
|
|
17
|
+
* downloaded and cached, otherwise the fetcher id returned from cache. The resulting module gets minified afterwards.
|
|
18
|
+
*
|
|
19
|
+
* @returns {Promise<string>} a Promise which resolves to the latest dynamic fetcher
|
|
20
|
+
*/
|
|
21
|
+
bundleDynamicFetcher(): Promise<string>;
|
|
22
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SpeedKitInstallContext = void 0;
|
|
4
|
+
const files_1 = require("../../../models/files");
|
|
5
|
+
const IMPORT_PATHS = {
|
|
6
|
+
rum: 'https://www.baqend.com/rum/latest/',
|
|
7
|
+
'speed-kit': 'https://www.baqend.com/speed-kit/latest/',
|
|
8
|
+
'predictive-preloading': 'https://www.baqend.com/speed-kit-predictive-preloading/latest/',
|
|
9
|
+
};
|
|
10
|
+
class SpeedKitInstallContext {
|
|
11
|
+
customerConfig;
|
|
12
|
+
configName;
|
|
13
|
+
files;
|
|
14
|
+
bundler;
|
|
15
|
+
skTemplate;
|
|
16
|
+
isLocalRuntime;
|
|
17
|
+
constructor(customerConfig, configName, files, bundler, skTemplate, isLocalRuntime = false) {
|
|
18
|
+
this.customerConfig = customerConfig;
|
|
19
|
+
this.configName = configName;
|
|
20
|
+
this.files = files;
|
|
21
|
+
this.bundler = bundler;
|
|
22
|
+
this.skTemplate = skTemplate;
|
|
23
|
+
this.isLocalRuntime = isLocalRuntime;
|
|
24
|
+
}
|
|
25
|
+
async getSpeedKitInstallJs() {
|
|
26
|
+
const configJs = this.skTemplate.render({
|
|
27
|
+
config: this.getConfigSpeedKit(),
|
|
28
|
+
forceInstall: this.customerConfig.forceInstall,
|
|
29
|
+
installPath: this.customerConfig.installPath,
|
|
30
|
+
installParams: this.customerConfig.installParams,
|
|
31
|
+
domain: this.customerConfig.domain,
|
|
32
|
+
df: this.files.getByName(files_1.INTEGRATION_FILES.CUSTOM.DYNAMIC_FETCHER).getContent(),
|
|
33
|
+
});
|
|
34
|
+
return this.bundler.bundle({
|
|
35
|
+
basePaths: IMPORT_PATHS,
|
|
36
|
+
entryPoints: {
|
|
37
|
+
'rum.js': this.files.getByName(files_1.INTEGRATION_FILES.CONFIG.LOAD_HANDLER).getContent(),
|
|
38
|
+
'config.js': configJs,
|
|
39
|
+
'loader.js': this.files.getByName(files_1.INTEGRATION_FILES.CUSTOM.LOADER).getContent(),
|
|
40
|
+
},
|
|
41
|
+
logLevel: 'error',
|
|
42
|
+
define: {
|
|
43
|
+
APP: JSON.stringify(this.customerConfig.app),
|
|
44
|
+
},
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
getConfigSpeedKit() {
|
|
48
|
+
const configString = this.files.getByName(files_1.INTEGRATION_FILES.CONFIG.SPEED_KIT).getContent();
|
|
49
|
+
if (!this.isLocalRuntime) {
|
|
50
|
+
return configString;
|
|
51
|
+
}
|
|
52
|
+
if (configString.includes('delayRacedOrigin')) {
|
|
53
|
+
return configString.replace(/delayRacedOrigin:[^,|\d](\d*)[^,]*,/, (config, value) => {
|
|
54
|
+
return config.replace(value, '100');
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
return configString.replace(/window\.speedKit[^{]*=[^{]*{/, (configOpenTag) => {
|
|
58
|
+
return configOpenTag + `\n delayRacedOrigin: 100,\n`;
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Fetches and returns the latest dynamic fetcher from the code repository. If a new version is available online it is
|
|
63
|
+
* downloaded and cached, otherwise the fetcher id returned from cache. The resulting module gets minified afterwards.
|
|
64
|
+
*
|
|
65
|
+
* @returns {Promise<string>} a Promise which resolves to the latest dynamic fetcher
|
|
66
|
+
*/
|
|
67
|
+
async bundleDynamicFetcher() {
|
|
68
|
+
return this.bundler.bundle({
|
|
69
|
+
basePaths: {},
|
|
70
|
+
entryPoints: { "dynamicFetcher.js": this.files.getByName(files_1.INTEGRATION_FILES.CUSTOM.DYNAMIC_FETCHER).getContent() },
|
|
71
|
+
target: "es6",
|
|
72
|
+
logLevel: 'verbose',
|
|
73
|
+
minify: false,
|
|
74
|
+
platform: "browser",
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
exports.SpeedKitInstallContext = SpeedKitInstallContext;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Athena } from "@aws-sdk/client-athena";
|
|
2
|
+
import { CliService } from "../../cli";
|
|
3
|
+
export declare class AthenaService {
|
|
4
|
+
private athena;
|
|
5
|
+
private cli;
|
|
6
|
+
private lastQueryResult;
|
|
7
|
+
constructor(athena: Athena, cli: CliService);
|
|
8
|
+
executeQuery(queryString: string): Promise<any[]>;
|
|
9
|
+
private fetchResult;
|
|
10
|
+
getLastQueryResult(): any[];
|
|
11
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AthenaService = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const util_1 = tslib_1.__importDefault(require("util"));
|
|
6
|
+
const cli_1 = require("../../cli");
|
|
7
|
+
const safe_1 = require("../../../helpers/safe");
|
|
8
|
+
const sleep = util_1.default.promisify(setTimeout);
|
|
9
|
+
class AthenaService {
|
|
10
|
+
athena;
|
|
11
|
+
cli;
|
|
12
|
+
lastQueryResult = [];
|
|
13
|
+
constructor(athena, cli) {
|
|
14
|
+
this.athena = athena;
|
|
15
|
+
this.cli = cli;
|
|
16
|
+
}
|
|
17
|
+
async executeQuery(queryString) {
|
|
18
|
+
if (this.lastQueryResult.length > 0) {
|
|
19
|
+
return this.lastQueryResult;
|
|
20
|
+
}
|
|
21
|
+
let params = {
|
|
22
|
+
QueryString: queryString,
|
|
23
|
+
QueryExecutionContext: {
|
|
24
|
+
Database: "rum.pi"
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
this.cli.startAction('[athena-query]: fetch result');
|
|
28
|
+
const result = await (0, safe_1.safe)(this.fetchResult(params));
|
|
29
|
+
if (result.success === true) {
|
|
30
|
+
this.lastQueryResult = result.data;
|
|
31
|
+
this.cli.endAction(cli_1.CliActionStatus.COMPLETED);
|
|
32
|
+
return result.data;
|
|
33
|
+
}
|
|
34
|
+
this.cli.endAction(cli_1.CliActionStatus.COMPLETED);
|
|
35
|
+
this.cli.writeError(result.error);
|
|
36
|
+
}
|
|
37
|
+
async fetchResult(params) {
|
|
38
|
+
let request = await this.athena.startQueryExecution(params);
|
|
39
|
+
let queryStatus = await this.athena.getQueryExecution({ QueryExecutionId: request.QueryExecutionId });
|
|
40
|
+
while (queryStatus.QueryExecution.Status.State === "QUEUED" || queryStatus.QueryExecution.Status.State === "RUNNING") {
|
|
41
|
+
await sleep(2000);
|
|
42
|
+
queryStatus = await this.athena.getQueryExecution({ QueryExecutionId: request.QueryExecutionId });
|
|
43
|
+
}
|
|
44
|
+
const queryParams = {
|
|
45
|
+
QueryExecutionId: request.QueryExecutionId,
|
|
46
|
+
// MaxResults: 10
|
|
47
|
+
};
|
|
48
|
+
let queryResult = await this.athena.getQueryResults(queryParams);
|
|
49
|
+
// transform result and return it
|
|
50
|
+
let dataArray = [];
|
|
51
|
+
queryResult.ResultSet.Rows.forEach(recordRow => {
|
|
52
|
+
let object = {
|
|
53
|
+
params: recordRow.Data[0].VarCharValue,
|
|
54
|
+
potentialGain: recordRow.Data[1].VarCharValue,
|
|
55
|
+
cachedUrls: recordRow.Data[2].VarCharValue,
|
|
56
|
+
PIs: recordRow.Data[3].VarCharValue,
|
|
57
|
+
example1: recordRow.Data[4].VarCharValue,
|
|
58
|
+
example2: recordRow.Data[5].VarCharValue,
|
|
59
|
+
example3: recordRow.Data[6].VarCharValue
|
|
60
|
+
};
|
|
61
|
+
// into an array....
|
|
62
|
+
dataArray.push(object);
|
|
63
|
+
});
|
|
64
|
+
return dataArray;
|
|
65
|
+
}
|
|
66
|
+
getLastQueryResult() {
|
|
67
|
+
return this.lastQueryResult;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
exports.AthenaService = AthenaService;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Poppins-Regular;font-feature-settings:normal}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}:root{--red: #ff4c3f;--red-dimmed: #bb382e;--green: #10af80;--greenOpacity: RGBA(12, 217, 149, .16);--blue: #0568fd;--blue-dimmed: #034cb9;--disabled: #6b7c96;--disabled-dimmed: #525f73;--fontPrimary: #282c39;--fontSecondary: #6b7c96;--backgroundPrimary: #fff;--backgroundSecondary: #eef2f7;--borderPrimary: #d8e1ed;--borderSecondary: #d8e1ed;--whiteOpacity: RGBA(255, 255, 255, .6);--tableFontPrimary: var(--fontPrimary);--tableFontSecondary: var(--fontSecondary);--tableBackgroundPrimary: var(--backgroundPrimary);--tableBackgroundSecondary: #f7f8fb;--tableBackgroundTernary: var(--backgroundSecondary);--tableBorder: #d8e1ed;--hover: var(--backgroundSecondary);--input-background: var(--backgroundPrimary);font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;font-weight:400;color-scheme:light dark;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity));--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity))}@media (prefers-contrast: more){:root{--fontSecondary: #282c39;--backgroundPrimary: #fff;--backgroundSecondary: #d8e1ed;--borderPrimary: #6b7c96;--borderSecondary: #6b7c96;--buttonPrimary: #0568fd;--buttonSecondary: #282c39;--whiteOpacity: RGBA(255, 255, 255, 1)}}@font-face{font-family:Lato;font-style:normal;font-weight:400;src:local("Lato Regular"),local("Lato-Regular"),url(/fonts/Lato-Regular.ttf) format("truetype")}@font-face{font-family:Lato-Bold;font-style:normal;font-weight:700;src:local("Lato Bold"),local("Lato-Bold"),url(/fonts/Lato-Bold.ttf) format("truetype")}@font-face{font-family:Poppins-Regular;font-style:normal;font-weight:400;src:local("Poppins Regular"),local("Poppins-Regular"),url(/fonts/Poppins-Regular.ttf) format("truetype")}@font-face{font-family:Poppins-SemiBold;font-style:normal;font-weight:600;src:local("Poppins SemiBold"),local("Poppins-SemiBold"),url(/fonts/Poppins-SemiBold.ttf) format("truetype")}a{font-weight:500;text-decoration:inherit}a:hover{color:var(--blue-dimmed)}body{margin:0;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.pointer-events-none{pointer-events:none}.visible{visibility:visible}.collapse{visibility:collapse}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-y-\[0\.185rem\]{top:.185rem;bottom:.185rem}.left-1\/2-2{left:calc(50% - 2px)}.left-\[2px\]{left:2px}.top-\[0\]{top:0}.m-1{margin:.25rem}.m-2{margin:.5rem}.mx-auto{margin-left:auto;margin-right:auto}.-ml-8{margin-left:-2rem}.mb-0{margin-bottom:0}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.ml-1{margin-left:.25rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-4{margin-right:1rem}.mr-auto{margin-right:auto}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.hidden{display:none}.min-h-screen{min-height:100vh}.w-1\/12{width:8.333333%}.w-1\/2{width:50%}.w-2\/12{width:16.666667%}.w-7\/12{width:58.333333%}.w-full{width:100%}.w-sidebar{width:clamp(60px,80px,130px)}.min-w-full{min-width:100%}.max-w-full{max-width:100%}.flex-auto{flex:1 1 auto}.flex-grow{flex-grow:1}.border-collapse{border-collapse:collapse}.scale-110{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.content-between{align-content:space-between}.content-evenly{align-content:space-evenly}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-evenly{justify-content:space-evenly}.overflow-hidden{overflow:hidden}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-bq-blue{border-color:var(--blue)}.border-bq-sec-border{border-color:var(--borderSecondary)}.border-bq-table-border{border-color:var(--tableBorder)}.border-b-bq-table-border{border-bottom-color:var(--tableBorder)}.bg-bq-blue{background-color:var(--blue)}.bg-bq-grey-light{--tw-bg-opacity: 1;background-color:rgb(242 244 246 / var(--tw-bg-opacity))}.bg-bq-prim-background{background-color:var(--backgroundPrimary)}.bg-bq-sec-background{background-color:var(--backgroundSecondary)}.bg-bq-table-background-prim{background-color:var(--tableBackgroundPrimary)}.bg-bq-table-background-sec{background-color:var(--tableBackgroundSecondary)}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-\[0\.185rem\]{padding:.185rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.pl-4{padding-left:1rem}.pt-5{padding-top:1.25rem}.text-left{text-align:left}.text-center{text-align:center}.font-bold{font-family:Poppins-SemiBold}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-clamp font-size{-d-e-f-a-u-l-t:clamp(.8rem,.425rem + 3vw,2rem);s:clamp(.3rem,.3438rem + 1.25vw,.8rem);m:clamp(.5rem,.3438rem + 1.25vw,1rem);xl:clamp(1rem,.6875rem + 2.5vw,2rem)}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.font-bold{font-weight:700}.capitalize{text-transform:capitalize}.text-bq-blue{color:var(--blue)}.text-bq-prim-font{color:var(--fontPrimary)}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.opacity-60{opacity:.6}.shadow{--tw-shadow: 0px 1px 4px 0px #282C3914;--tw-shadow-colored: 0px 1px 4px 0px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-150{transition-duration:.15s}*:disabled{cursor:default}*:disabled:disabled{opacity:.5}.\[key\:string\]{key:string}@media (prefers-color-scheme: dark){html{--fontPrimary: #e1e8f0;--fontSecondary: #8493ad;--backgroundPrimary: #282c39;--backgroundSecondary: #121212;--borderPrimary: #2e373e;--borderSecondary: #4a5a65;--buttonPrimary: #0568fd;--buttonSecondary: #d8e1ed;--whiteOpacity: RGBA(255, 255, 255, .06);--hover: #393f51;--tableFontPrimary: #d8e1ed;--tableFontSecondary: rgba(216 225 237, .6);--tableBackgroundPrimary: var(--backgroundPrimary);--tableBackgroundSecondary: #21242d;--tableBackgroundTernary: #1d1f26;--tableBorder: #333a4b;--input-background: var(--backgroundSecondary);color-scheme:dark}}.g-input:focus-within{margin:-1px;border-width:2px;border-color:var(--blue)}.g-content-divider{margin-top:1.25rem;margin-bottom:1.25rem;border-width:1px;border-left-width:0px;border-right-width:0px;border-bottom-width:0px;border-color:var(--borderPrimary)}#app{height:100%;width:100%}.tabs-component{margin-bottom:1rem;display:flex;flex-direction:column;padding-left:.5rem;padding-right:.5rem}.tabs-component-tabs{margin-bottom:-.5rem;display:flex}.tabs-component-tabs .tabs-component-tab-a{display:block;background-color:var(--backgroundSecondary);padding:.5rem .75rem;color:var(--fontSecondary)}.tabs-component-tabs .tabs-component-tab-a.is-active,.tabs-component-tabs .tabs-component-tab-a:hover{background-color:var(--backgroundPrimary);color:var(--fontPrimary)}.tabs-component-panels{padding:.5rem;color:var(--fontPrimary)}.router-link-exact-active{background-color:var(--tableBackgroundSecondary)}.hover\:scale-95:hover{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:bg-blue-200:hover{--tw-bg-opacity: 1;background-color:rgb(191 219 254 / var(--tw-bg-opacity))}.hover\:outline:hover{outline-style:solid}.hover\:outline-bq-blue-dimmed:hover{outline-color:var(--blue-dimmed)}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.datatable{border-collapse:collapse;table-layout:fixed}.data-table th{text-align:left}.datatable tr:nth-child(odd) textarea,.datatable tr:nth-child(odd) input,.datatable tr:nth-child(odd){background-color:var(--tableBackgroundPrimary)}.datatable tr:nth-child(2n) textarea,.datatable tr:nth-child(2n) input,.datatable tr:nth-child(2n){background-color:var(--tableBackgroundSecondary)}.datatable td{padding:.25rem}
|