@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,127 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const core_1 = require("@oclif/core");
|
|
5
|
+
const core_2 = require("@oclif/core");
|
|
6
|
+
const cli_1 = require("baqend/cli");
|
|
7
|
+
const cli_parameters_1 = require("../models/cli-parameters");
|
|
8
|
+
const logging_helper_1 = require("../helpers/logging-helper");
|
|
9
|
+
const prewarm_service_1 = tslib_1.__importDefault(require("../services/prewarm-service"));
|
|
10
|
+
const { URL } = require('url');
|
|
11
|
+
const fs = require('fs');
|
|
12
|
+
class Prewarm extends core_1.Command {
|
|
13
|
+
static description = 'Pre-warm Fastly';
|
|
14
|
+
static args = {
|
|
15
|
+
[cli_parameters_1.CLIParameters.AppName]: core_1.Args.string({
|
|
16
|
+
name: cli_parameters_1.CLIParameters.AppName,
|
|
17
|
+
required: true,
|
|
18
|
+
description: 'The customer app name', // help description
|
|
19
|
+
}),
|
|
20
|
+
[cli_parameters_1.CLIParameters.Path]: core_1.Args.string({
|
|
21
|
+
name: cli_parameters_1.CLIParameters.Path,
|
|
22
|
+
required: true,
|
|
23
|
+
description: 'path to prewarmFile', // help description
|
|
24
|
+
}),
|
|
25
|
+
};
|
|
26
|
+
static flags = {
|
|
27
|
+
[cli_parameters_1.CLIParameters.Variation]: core_1.Flags.string({ char: cli_parameters_1.CLIParametersChar.Variation, default: 'DEFAULT' }),
|
|
28
|
+
[cli_parameters_1.CLIParameters.VariationPath]: core_1.Flags.string({ char: cli_parameters_1.CLIParametersChar.VariationPath, exclusive: [cli_parameters_1.CLIParameters.Variation] }),
|
|
29
|
+
[cli_parameters_1.CLIParameters.Delay]: core_1.Flags.integer({ char: cli_parameters_1.CLIParametersChar.Delay, default: 0, description: 'Request delay in ms' }),
|
|
30
|
+
[cli_parameters_1.CLIParameters.KeepParameterSorting]: core_1.Flags.boolean({ char: cli_parameters_1.CLIParametersChar.KeepParameterSorting, default: false, description: 'Prevents alphabetical sorting of the URL parameters' }),
|
|
31
|
+
};
|
|
32
|
+
static examples = [
|
|
33
|
+
"for a single variation:",
|
|
34
|
+
`$ sk prewarm <${cli_parameters_1.CLIParameters.AppName}> <${cli_parameters_1.CLIParameters.Path}> -${cli_parameters_1.CLIParametersChar.Variation} <${cli_parameters_1.CLIParameters.Variation}> -${cli_parameters_1.CLIParametersChar.Delay} <${cli_parameters_1.CLIParameters.Delay}> -${cli_parameters_1.CLIParametersChar.KeepParameterSorting}`,
|
|
35
|
+
`$ sk prewarm ${cli_parameters_1.CLIParametersExample.AppName} ${cli_parameters_1.CLIParametersExample.Path} -${cli_parameters_1.CLIParametersChar.Variation} ${cli_parameters_1.CLIParametersExample.Variation} -${cli_parameters_1.CLIParametersChar.Delay} ${cli_parameters_1.CLIParametersExample.Delay} -${cli_parameters_1.CLIParametersChar.KeepParameterSorting}`,
|
|
36
|
+
"",
|
|
37
|
+
"for a list of variations:",
|
|
38
|
+
`$ sk prewarm <${cli_parameters_1.CLIParameters.AppName}> <${cli_parameters_1.CLIParameters.Path}> -${cli_parameters_1.CLIParametersChar.Path} <${cli_parameters_1.CLIParameters.VariationPath}> -${cli_parameters_1.CLIParametersChar.Delay} <${cli_parameters_1.CLIParameters.Delay}> -${cli_parameters_1.CLIParametersChar.KeepParameterSorting}`,
|
|
39
|
+
`$ sk prewarm ${cli_parameters_1.CLIParametersExample.AppName} ${cli_parameters_1.CLIParametersExample.Path} -${cli_parameters_1.CLIParametersChar.Path} ${cli_parameters_1.CLIParametersExample.VariationPath} -${cli_parameters_1.CLIParametersChar.Delay} ${cli_parameters_1.CLIParametersExample.Delay} -${cli_parameters_1.CLIParametersChar.KeepParameterSorting}`,
|
|
40
|
+
];
|
|
41
|
+
async run() {
|
|
42
|
+
const { args: { app, path }, flags: { variation, variationPath, delay, keepParameterSorting } } = await this.parse(Prewarm);
|
|
43
|
+
const sortParameters = !keepParameterSorting;
|
|
44
|
+
const db = await cli_1.account.login({ app });
|
|
45
|
+
const urls = this.loadAssets(path);
|
|
46
|
+
const variations = variationPath ? this.loadVariations(variationPath) : [variation];
|
|
47
|
+
await this.prewarmVariations(variations, urls, app, db.token, delay, sortParameters);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Pre-warms a list of URLs with the given variations.
|
|
51
|
+
*
|
|
52
|
+
* @param variations - Variations to be prewarmed.
|
|
53
|
+
* @param urls - The URLs to be prewarmed.
|
|
54
|
+
* @param app - The baqend app to prewarm on.
|
|
55
|
+
* @param token - The baqend token to authorize the user.
|
|
56
|
+
* @param delay - The delay between requests in ms.
|
|
57
|
+
* @param sortParameters - Activates alphabetical sorting of the URL parameters.
|
|
58
|
+
*/
|
|
59
|
+
async prewarmVariations(variations, urls, app, token, delay, sortParameters) {
|
|
60
|
+
const progress = core_2.ux.progress();
|
|
61
|
+
const chunks = prewarm_service_1.default.chunk(urls, 5);
|
|
62
|
+
let fetches = [];
|
|
63
|
+
progress.start(urls.length * variations.length, 0);
|
|
64
|
+
for (const chunk of chunks) {
|
|
65
|
+
for (const entry of chunk) {
|
|
66
|
+
if (delay)
|
|
67
|
+
await this.sleep(delay);
|
|
68
|
+
for (const variation of variations) {
|
|
69
|
+
try {
|
|
70
|
+
if (entry) {
|
|
71
|
+
fetches.push(prewarm_service_1.default.fetchURL(entry.url, entry.origin, variation, app, token, sortParameters));
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
(0, logging_helper_1.logError)(error);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
try {
|
|
80
|
+
// eslint-disable-next-line no-await-in-loop
|
|
81
|
+
await Promise.all(fetches);
|
|
82
|
+
}
|
|
83
|
+
catch (error) {
|
|
84
|
+
(0, logging_helper_1.logWarning)(error);
|
|
85
|
+
}
|
|
86
|
+
progress.increment(fetches.length);
|
|
87
|
+
fetches = [];
|
|
88
|
+
}
|
|
89
|
+
progress.stop();
|
|
90
|
+
}
|
|
91
|
+
loadAssets(path, origin = '') {
|
|
92
|
+
const data = fs.readFileSync(path, 'utf8');
|
|
93
|
+
const entries = data.split(/\r?\n/);
|
|
94
|
+
return entries.map(entry => {
|
|
95
|
+
entry = /^"[^"]+"/.test(entry) ? entry.slice(1, -1) : entry;
|
|
96
|
+
try {
|
|
97
|
+
return {
|
|
98
|
+
url: entry,
|
|
99
|
+
origin: origin || new URL(entry).origin,
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
catch (error) {
|
|
103
|
+
(0, logging_helper_1.logWarning)(`Error loading asset for URL: ${entry}`, error);
|
|
104
|
+
}
|
|
105
|
+
return null;
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Extracts variations line by line from a given file.
|
|
110
|
+
* @param path - path to the csv containing variations
|
|
111
|
+
*/
|
|
112
|
+
loadVariations(path) {
|
|
113
|
+
let variations = [];
|
|
114
|
+
const data = fs.readFileSync(path, 'utf8');
|
|
115
|
+
const entries = data.split(/\r?\n/);
|
|
116
|
+
entries.forEach(entry => {
|
|
117
|
+
if (entry !== "") {
|
|
118
|
+
variations.push(entry);
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
return variations;
|
|
122
|
+
}
|
|
123
|
+
async sleep(ms) {
|
|
124
|
+
return new Promise(res => setTimeout(res, ms));
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
exports.default = Prewarm;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Command } from '@oclif/core';
|
|
2
|
+
export default class Pull extends Command {
|
|
3
|
+
static description: string;
|
|
4
|
+
static args: {
|
|
5
|
+
customerPath: import("@oclif/core/lib/interfaces").Arg<string, {
|
|
6
|
+
exists?: boolean;
|
|
7
|
+
}>;
|
|
8
|
+
};
|
|
9
|
+
static flags: {
|
|
10
|
+
configName: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
11
|
+
};
|
|
12
|
+
static examples: string[];
|
|
13
|
+
run(): Promise<void>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const core_1 = require("@oclif/core");
|
|
4
|
+
const cli_parameters_1 = require("../models/cli-parameters");
|
|
5
|
+
const pull_1 = require("../services/pull");
|
|
6
|
+
const cli_config_1 = require("../helpers/cli-config");
|
|
7
|
+
class Pull extends core_1.Command {
|
|
8
|
+
static description = 'Pull the specified customer config from orestes';
|
|
9
|
+
static args = cli_parameters_1.CLI_CUSTOMER_CONFIG;
|
|
10
|
+
static flags = {
|
|
11
|
+
...cli_parameters_1.CLI_CONFIG_NAME,
|
|
12
|
+
};
|
|
13
|
+
static examples = [
|
|
14
|
+
`$ sk pull <${cli_parameters_1.CLIParameters.CustomerPath}>`,
|
|
15
|
+
`$ sk pull ${cli_parameters_1.CLIParametersExample.CustomerPath} -${cli_parameters_1.CLIParametersChar.ConfigName} ${cli_parameters_1.CLIParametersExample.ConfigName}`,
|
|
16
|
+
];
|
|
17
|
+
async run() {
|
|
18
|
+
const { args: { customerPath }, flags: { configName } } = await this.parse(Pull);
|
|
19
|
+
const pullContext = new pull_1.PullContext(customerPath, configName);
|
|
20
|
+
const pullService = await new pull_1.PullServiceFactory(pullContext, new cli_config_1.CliConfig(this.config).load()).buildService();
|
|
21
|
+
await pullService.run();
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.default = Pull;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Command } from '@oclif/core';
|
|
2
|
+
export default class WptLauncher extends Command {
|
|
3
|
+
static description: string;
|
|
4
|
+
static args: {
|
|
5
|
+
urls: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
|
|
6
|
+
testId: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
|
|
7
|
+
};
|
|
8
|
+
static flags: {
|
|
9
|
+
cookies: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
10
|
+
mobile: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
11
|
+
group: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
12
|
+
};
|
|
13
|
+
static examples: string[];
|
|
14
|
+
static localhostUrl: string;
|
|
15
|
+
run(): Promise<void>;
|
|
16
|
+
isMobile(mobile: string): boolean;
|
|
17
|
+
getViewPortSize(isMobile: boolean): string;
|
|
18
|
+
allResourceUrls(urls: string): Array<string>;
|
|
19
|
+
getResourceOrigin(urlsArr: Array<string>): string;
|
|
20
|
+
postScript(script: string): Promise<{}>;
|
|
21
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const core_1 = require("@oclif/core");
|
|
4
|
+
const core_2 = require("@oclif/core");
|
|
5
|
+
const cli_parameters_1 = require("../models/cli-parameters");
|
|
6
|
+
const logging_helper_1 = require("../helpers/logging-helper");
|
|
7
|
+
const fetch = require('node-fetch');
|
|
8
|
+
class WptLauncher extends core_1.Command {
|
|
9
|
+
static description = 'Analyze the performance impact that Speed Kit has compared to the original version.';
|
|
10
|
+
static args = {
|
|
11
|
+
[cli_parameters_1.CLIParameters.Urls]: core_1.Args.string({
|
|
12
|
+
name: cli_parameters_1.CLIParameters.Urls,
|
|
13
|
+
required: true, // make the arg required with `required: true`
|
|
14
|
+
}),
|
|
15
|
+
[cli_parameters_1.CLIParameters.TestId]: core_1.Args.string({
|
|
16
|
+
name: cli_parameters_1.CLIParameters.TestId,
|
|
17
|
+
required: true, // make the arg required with `required: true`
|
|
18
|
+
}),
|
|
19
|
+
};
|
|
20
|
+
static flags = {
|
|
21
|
+
[cli_parameters_1.CLIParameters.Cookies]: core_1.Flags.string({ default: '', char: cli_parameters_1.CLIParametersChar.Cookies }),
|
|
22
|
+
[cli_parameters_1.CLIParameters.Mobile]: core_1.Flags.string({ default: 'no', char: cli_parameters_1.CLIParametersChar.Mobile }),
|
|
23
|
+
[cli_parameters_1.CLIParameters.Group]: core_1.Flags.string({ default: 'A', char: cli_parameters_1.CLIParametersChar.Group }),
|
|
24
|
+
};
|
|
25
|
+
static examples = [
|
|
26
|
+
`$ sk wpt-launcher <${cli_parameters_1.CLIParameters.Urls}> <${cli_parameters_1.CLIParameters.TestId}> -${cli_parameters_1.CLIParametersChar.Group} <${cli_parameters_1.CLIParameters.Group}> -${cli_parameters_1.CLIParametersChar.Mobile} <${cli_parameters_1.CLIParameters.Mobile}> -${cli_parameters_1.CLIParametersChar.Cookies} <${cli_parameters_1.CLIParameters.Cookies}>`,
|
|
27
|
+
`$ sk wpt-launcher ${cli_parameters_1.CLIParametersExample.Urls} ${cli_parameters_1.CLIParametersExample.TestId} -${cli_parameters_1.CLIParametersChar.Group} ${cli_parameters_1.CLIParametersExample.Group} -${cli_parameters_1.CLIParametersChar.Mobile} ${cli_parameters_1.CLIParametersExample.Mobile} -${cli_parameters_1.CLIParametersChar.Cookies} ${cli_parameters_1.CLIParametersExample.Cookies}`,
|
|
28
|
+
];
|
|
29
|
+
static localhostUrl = 'http://localhost:8888/orange.html';
|
|
30
|
+
async run() {
|
|
31
|
+
const { args: { urls, testId }, flags: { group, mobile, cookies } } = await this.parse(WptLauncher);
|
|
32
|
+
const resourceOrigin = this.getResourceOrigin(this.allResourceUrls(urls));
|
|
33
|
+
let script = `setViewportSize ${this.getViewPortSize(this.isMobile(mobile))}
|
|
34
|
+
navigate ${resourceOrigin}/wrapper-sw.js
|
|
35
|
+
setCookie ${resourceOrigin}/ ${cookies}
|
|
36
|
+
exec localStorage.setItem('baqend-speedkit-ab-test-info', encodeURIComponent(JSON.stringify({group:${group},testId:${testId})));
|
|
37
|
+
navigate ${resourceOrigin}
|
|
38
|
+
navigate ${WptLauncher.localhostUrl}`;
|
|
39
|
+
this.allResourceUrls(urls).forEach(url => {
|
|
40
|
+
script += `\n navigate ${url}`;
|
|
41
|
+
});
|
|
42
|
+
const postscript = await this.postScript(script);
|
|
43
|
+
const currentTestIdUrl = `http://wpt.baqend.com/results.php?test=${postscript.wptTestId}`;
|
|
44
|
+
if (!currentTestIdUrl) {
|
|
45
|
+
(0, logging_helper_1.logError)('Getting testId failed, ' + currentTestIdUrl);
|
|
46
|
+
core_2.ux.exit(1);
|
|
47
|
+
}
|
|
48
|
+
this.log('testUrl: ', currentTestIdUrl);
|
|
49
|
+
core_2.ux.exit(0);
|
|
50
|
+
}
|
|
51
|
+
// ---------------------- services----------------
|
|
52
|
+
isMobile(mobile) {
|
|
53
|
+
return mobile === 'y' || mobile === 'Y' || mobile === 'yes' || mobile === 'Yes' || mobile === 'YES';
|
|
54
|
+
}
|
|
55
|
+
getViewPortSize(isMobile) {
|
|
56
|
+
if (isMobile) {
|
|
57
|
+
return '375 667'; // mobile
|
|
58
|
+
}
|
|
59
|
+
return '1500 1300'; // desktop
|
|
60
|
+
}
|
|
61
|
+
allResourceUrls(urls) {
|
|
62
|
+
const urlsArr = urls.split(',');
|
|
63
|
+
if (urlsArr.length > 0) {
|
|
64
|
+
return urlsArr;
|
|
65
|
+
}
|
|
66
|
+
// eslint-disable-next-line unicorn/error-message
|
|
67
|
+
throw new Error('urls must not be null');
|
|
68
|
+
}
|
|
69
|
+
getResourceOrigin(urlsArr) {
|
|
70
|
+
return new URL(urlsArr[0]).origin;
|
|
71
|
+
}
|
|
72
|
+
// ---------------- wpt launcher --------------------------
|
|
73
|
+
async postScript(script) {
|
|
74
|
+
const urlPath = 'https://makefast.app.baqend.com/v1/code/testAPI';
|
|
75
|
+
const res = await fetch(urlPath, { body: JSON.stringify({ script }), method: 'POST' });
|
|
76
|
+
return res.json();
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
exports.default = WptLauncher;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { InstallConfigs } from '../models/install';
|
|
2
|
+
export declare const SPEED_KIT_INSTALL_PATH: string;
|
|
3
|
+
export declare const INSTALLATION_PROPERTIES: InstallConfigs<string>;
|
|
4
|
+
type Params = {
|
|
5
|
+
[param: string]: any;
|
|
6
|
+
};
|
|
7
|
+
type MultiConfigParams = {
|
|
8
|
+
[configName: string]: Params;
|
|
9
|
+
};
|
|
10
|
+
export declare class CustomerConfig implements InstallConfigs<ConfigFile | null> {
|
|
11
|
+
readonly name: string;
|
|
12
|
+
readonly domain: string;
|
|
13
|
+
readonly config: ConfigFile | null;
|
|
14
|
+
readonly app?: string;
|
|
15
|
+
readonly appDomain: string;
|
|
16
|
+
readonly dynamicFetcher: ConfigFile | null;
|
|
17
|
+
readonly dynamicFetcherConfig: ConfigFile | null;
|
|
18
|
+
readonly customStyle: ConfigFile | null;
|
|
19
|
+
readonly custom: ConfigFile | null;
|
|
20
|
+
readonly sw: ConfigFile | null;
|
|
21
|
+
readonly loader: ConfigFile | null;
|
|
22
|
+
readonly documentHandler: ConfigFile | null;
|
|
23
|
+
readonly documentHandlerConfig: ConfigFile | null;
|
|
24
|
+
readonly popConfig: ConfigFile | null;
|
|
25
|
+
readonly installPath: string;
|
|
26
|
+
readonly installParams?: string;
|
|
27
|
+
readonly forceInstall: boolean;
|
|
28
|
+
readonly bypassDeactivation: boolean;
|
|
29
|
+
readonly scope: string;
|
|
30
|
+
readonly swPath: string;
|
|
31
|
+
readonly origins?: string[];
|
|
32
|
+
readonly chromeFlags: string[];
|
|
33
|
+
readonly globalWhitelist: ConfigFile;
|
|
34
|
+
readonly globalBlacklist: ConfigFile;
|
|
35
|
+
static loadConfig(dir: string): Promise<MultiConfigParams | Params>;
|
|
36
|
+
static loadCustomer(dir: string, configName: string): Promise<CustomerConfig>;
|
|
37
|
+
constructor(params: Params, configFiles: InstallConfigs<ConfigFile | null> & {
|
|
38
|
+
globalWhitelist: any;
|
|
39
|
+
globalBlacklist: any;
|
|
40
|
+
popConfig: any;
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
export declare class ConfigFile {
|
|
44
|
+
readonly filePath: string;
|
|
45
|
+
readonly name: string;
|
|
46
|
+
static loadFile(basePath: string, ...alternativeFileNames: string[]): Promise<ConfigFile | null>;
|
|
47
|
+
static isConfigFile(value: unknown): value is ConfigFile;
|
|
48
|
+
constructor(filePath: string, name: string);
|
|
49
|
+
readContent(): Promise<string>;
|
|
50
|
+
}
|
|
51
|
+
export {};
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ConfigFile = exports.CustomerConfig = exports.INSTALLATION_PROPERTIES = exports.SPEED_KIT_INSTALL_PATH = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const path_1 = tslib_1.__importDefault(require("path"));
|
|
6
|
+
const isFile_1 = require("./isFile");
|
|
7
|
+
const promises_1 = require("fs/promises");
|
|
8
|
+
const logging_helper_1 = require("./logging-helper");
|
|
9
|
+
exports.SPEED_KIT_INSTALL_PATH = '/speed-kit-install.js';
|
|
10
|
+
const CUSTOMER_CONFIG_BASENAME = 'config_customer.js';
|
|
11
|
+
const SK_CONFIG = 'config_SpeedKit.js';
|
|
12
|
+
const RUM_CONFIG = 'config_loadHandler.js';
|
|
13
|
+
const DF_CONFIG = 'config_dynamicBlocks.js';
|
|
14
|
+
const DF_STYLES_BASENAME = 'config_dynamicStyles.css';
|
|
15
|
+
const DOCUMENT_HANDLER_CONFIG = 'config_documentHandler.js';
|
|
16
|
+
const CUSTOM_LOADER = 'custom_loader.js';
|
|
17
|
+
const CUSTOM_SERVICE_WORKER = 'custom_sw.js';
|
|
18
|
+
const CUSTOM_DOCUMENT_HANDLER = 'custom_documentHandler.js';
|
|
19
|
+
const CUSTOM_DYNAMIC_FETCHER = 'custom_dynamicFetcher.js';
|
|
20
|
+
exports.INSTALLATION_PROPERTIES = {
|
|
21
|
+
config: SK_CONFIG,
|
|
22
|
+
custom: RUM_CONFIG,
|
|
23
|
+
sw: CUSTOM_SERVICE_WORKER,
|
|
24
|
+
loader: CUSTOM_LOADER,
|
|
25
|
+
dynamicFetcher: CUSTOM_DYNAMIC_FETCHER,
|
|
26
|
+
dynamicFetcherConfig: DF_CONFIG,
|
|
27
|
+
documentHandler: CUSTOM_DOCUMENT_HANDLER,
|
|
28
|
+
documentHandlerConfig: DOCUMENT_HANDLER_CONFIG,
|
|
29
|
+
customStyle: DF_STYLES_BASENAME,
|
|
30
|
+
};
|
|
31
|
+
function required(check, params, name) {
|
|
32
|
+
if (check(params[name])) {
|
|
33
|
+
return params[name];
|
|
34
|
+
}
|
|
35
|
+
throw new TypeError(`Please provide a ${check.name.substring(2)} "${name}" property.`);
|
|
36
|
+
}
|
|
37
|
+
function optional(check, params, name, defaultValue = null) {
|
|
38
|
+
if (check(params[name])) {
|
|
39
|
+
return params[name];
|
|
40
|
+
}
|
|
41
|
+
if (typeof params[name] === 'undefined' || params[name] === null) {
|
|
42
|
+
return defaultValue;
|
|
43
|
+
}
|
|
44
|
+
throw new TypeError(`Property "${name}" must be a ${check.name.substring(2)}.`);
|
|
45
|
+
}
|
|
46
|
+
function isString(value) {
|
|
47
|
+
return typeof value === 'string';
|
|
48
|
+
}
|
|
49
|
+
function isBoolean(value) {
|
|
50
|
+
return typeof value === 'boolean';
|
|
51
|
+
}
|
|
52
|
+
class CustomerConfig {
|
|
53
|
+
name;
|
|
54
|
+
domain;
|
|
55
|
+
config;
|
|
56
|
+
app;
|
|
57
|
+
appDomain;
|
|
58
|
+
dynamicFetcher;
|
|
59
|
+
dynamicFetcherConfig;
|
|
60
|
+
customStyle;
|
|
61
|
+
custom;
|
|
62
|
+
sw;
|
|
63
|
+
loader;
|
|
64
|
+
documentHandler;
|
|
65
|
+
documentHandlerConfig;
|
|
66
|
+
popConfig;
|
|
67
|
+
installPath;
|
|
68
|
+
installParams;
|
|
69
|
+
forceInstall;
|
|
70
|
+
bypassDeactivation;
|
|
71
|
+
scope;
|
|
72
|
+
swPath;
|
|
73
|
+
origins;
|
|
74
|
+
chromeFlags;
|
|
75
|
+
globalWhitelist;
|
|
76
|
+
globalBlacklist;
|
|
77
|
+
static async loadConfig(dir) {
|
|
78
|
+
const mainConfig = await ConfigFile.loadFile(dir, CUSTOMER_CONFIG_BASENAME);
|
|
79
|
+
if (!mainConfig) {
|
|
80
|
+
throw new Error(`Could not find customer config file "${CUSTOMER_CONFIG_BASENAME}".`);
|
|
81
|
+
}
|
|
82
|
+
return require(mainConfig.filePath);
|
|
83
|
+
}
|
|
84
|
+
static async loadCustomer(dir, configName) {
|
|
85
|
+
const customerConfig = await this.loadConfig(dir);
|
|
86
|
+
let params;
|
|
87
|
+
if (configName in customerConfig) {
|
|
88
|
+
params = customerConfig[configName];
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
(0, logging_helper_1.logWarning)('Use legacy customer config loading format.');
|
|
92
|
+
(0, logging_helper_1.logWarning)('Make sure to export the different app configs under their config names like:');
|
|
93
|
+
(0, logging_helper_1.logWarning)('module.exports = { production, staging }');
|
|
94
|
+
params = customerConfig;
|
|
95
|
+
}
|
|
96
|
+
const configs = {};
|
|
97
|
+
for (const [key, path] of Object.entries(exports.INSTALLATION_PROPERTIES)) {
|
|
98
|
+
configs[key] = await ConfigFile.loadFile(dir, path, path.replace('.js', '.es6'));
|
|
99
|
+
}
|
|
100
|
+
// Parse config
|
|
101
|
+
return new CustomerConfig({ name: configName, ...params }, {
|
|
102
|
+
...configs,
|
|
103
|
+
popConfig: await ConfigFile.loadFile(dir, 'config_pops.js'),
|
|
104
|
+
globalWhitelist: await ConfigFile.loadFile(dir, '../../rules/global-whitelist.js'),
|
|
105
|
+
globalBlacklist: await ConfigFile.loadFile(dir, '../../rules/global-blacklist.js'),
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
constructor(params, configFiles) {
|
|
109
|
+
this.domain = required(isString, params, 'domain');
|
|
110
|
+
this.name = optional(isString, params, 'name');
|
|
111
|
+
this.swPath = optional(isString, params, 'swPath', '/wrapper-sw.js');
|
|
112
|
+
this.app = optional(isString, params, 'app');
|
|
113
|
+
this.appDomain = optional(isString, params, 'appDomain', '*.app.baqend.com');
|
|
114
|
+
this.chromeFlags = optional(Array.isArray, params, 'chromeFlags', []);
|
|
115
|
+
this.installPath = optional(isString, params, 'installPath', exports.SPEED_KIT_INSTALL_PATH);
|
|
116
|
+
const scope = optional(isString, params, 'scope', '/');
|
|
117
|
+
this.scope = scope + (scope.endsWith('/') ? '' : '/');
|
|
118
|
+
this.origins = optional(Array.isArray, params, 'origins', []);
|
|
119
|
+
this.installParams = optional(isString, params, 'installParams', 'async crossorigin="anonymous"');
|
|
120
|
+
this.forceInstall = optional(isBoolean, params, 'forceInstall', false);
|
|
121
|
+
this.bypassDeactivation = optional(isBoolean, params, 'bypassDeactivation', true);
|
|
122
|
+
// Assign Config Files
|
|
123
|
+
Object.assign(this, configFiles);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
exports.CustomerConfig = CustomerConfig;
|
|
127
|
+
class ConfigFile {
|
|
128
|
+
filePath;
|
|
129
|
+
name;
|
|
130
|
+
static async loadFile(basePath, ...alternativeFileNames) {
|
|
131
|
+
for (const fileName of alternativeFileNames) {
|
|
132
|
+
const filePath = path_1.default.resolve(basePath, fileName);
|
|
133
|
+
if (await (0, isFile_1.isFile)(filePath)) {
|
|
134
|
+
return new ConfigFile(filePath, fileName);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
return null;
|
|
138
|
+
}
|
|
139
|
+
static isConfigFile(value) {
|
|
140
|
+
return value instanceof ConfigFile;
|
|
141
|
+
}
|
|
142
|
+
constructor(filePath, name) {
|
|
143
|
+
this.filePath = filePath;
|
|
144
|
+
this.name = name;
|
|
145
|
+
}
|
|
146
|
+
async readContent() {
|
|
147
|
+
return (0, promises_1.readFile)(this.filePath, 'utf-8');
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
exports.ConfigFile = ConfigFile;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns the whitelisted filter as a sql query string.
|
|
3
|
+
*
|
|
4
|
+
* @param parsedConfig - The speed kit config parsed as an object.
|
|
5
|
+
*/
|
|
6
|
+
export declare function getWhitelistedFilter(parsedConfig: any): string;
|
|
7
|
+
/**
|
|
8
|
+
* Returns the blacklisted filter as a SQL query string.
|
|
9
|
+
*
|
|
10
|
+
* @param parsedConfig - The speed kit config parsed as an object.
|
|
11
|
+
*/
|
|
12
|
+
export declare function getBlacklistedFilter(parsedConfig: any): string;
|
|
13
|
+
/**
|
|
14
|
+
* Returns the parameter filter as a SQL query string.
|
|
15
|
+
*
|
|
16
|
+
* @param params - The stripped parameters that are named within the speed kit config.
|
|
17
|
+
* @param skConfigVersion - The Speed Kit config ruleset version.
|
|
18
|
+
*/
|
|
19
|
+
export declare function getParameterFilter(params: (string | RegExp)[], skConfigVersion?: number): string;
|
|
20
|
+
/**
|
|
21
|
+
* Returns the parameter replace (regexp_replace) as a SQL query string.
|
|
22
|
+
*
|
|
23
|
+
* @param params - The stripped parameters that are named within the speed kit config.
|
|
24
|
+
* @param skConfigVersion - The Speed Kit config ruleset version.
|
|
25
|
+
*/
|
|
26
|
+
export declare function getParameterReplaceFilter(params: (string | RegExp)[], skConfigVersion?: number): string;
|
|
27
|
+
/**
|
|
28
|
+
* Returns the stripped parameters that are named within the speed kit config.
|
|
29
|
+
*
|
|
30
|
+
* @param parsedConfig - The speed kit config parsed as an object.
|
|
31
|
+
*/
|
|
32
|
+
export declare function getStrippedParams(parsedConfig: any): (string | RegExp)[];
|