@speedkit/cli 3.43.2 → 4.0.0
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/CHANGELOG.md +31 -0
- package/README.md +6 -6
- package/bin/dev +2 -15
- package/bin/run +2 -2
- package/dist/commands/build-parameter-query.d.ts +3 -3
- package/dist/commands/build-parameter-query.js +12 -15
- package/dist/commands/build-prewarm-query.d.ts +4 -4
- package/dist/commands/build-prewarm-query.js +13 -16
- package/dist/commands/config/edit.js +7 -11
- package/dist/commands/deploy.d.ts +3 -5
- package/dist/commands/deploy.js +12 -16
- package/dist/commands/diff-url-parameters.d.ts +3 -3
- package/dist/commands/diff-url-parameters.js +27 -30
- package/dist/commands/document-handler.d.ts +4 -4
- package/dist/commands/document-handler.js +13 -17
- package/dist/commands/find-pops.d.ts +2 -2
- package/dist/commands/find-pops.js +22 -24
- package/dist/commands/generate-customer-config.d.ts +2 -2
- package/dist/commands/generate-customer-config.js +13 -16
- package/dist/commands/generate-pop-config.d.ts +7 -7
- package/dist/commands/generate-pop-config.js +32 -41
- package/dist/commands/login.d.ts +1 -1
- package/dist/commands/login.js +13 -17
- package/dist/commands/onboarding.d.ts +3 -5
- package/dist/commands/onboarding.js +10 -13
- package/dist/commands/prewarm.d.ts +9 -9
- package/dist/commands/prewarm.js +25 -28
- package/dist/commands/pull.d.ts +3 -3
- package/dist/commands/pull.js +11 -14
- package/dist/commands/wpt-launcher.d.ts +7 -7
- package/dist/commands/wpt-launcher.js +21 -26
- package/dist/helpers/array-helper.js +1 -4
- package/dist/helpers/build-query-helper.js +5 -12
- package/dist/helpers/cli-config.d.ts +3 -3
- package/dist/helpers/cli-config.js +11 -16
- package/dist/helpers/customer-config.d.ts +4 -8
- package/dist/helpers/customer-config.js +18 -23
- package/dist/helpers/evaluate-speed-kit-config.d.ts +1 -1
- package/dist/helpers/evaluate-speed-kit-config.js +42 -26
- package/dist/helpers/file-helper.js +8 -13
- package/dist/helpers/get-parsed-config.d.ts +1 -1
- package/dist/helpers/get-parsed-config.js +6 -10
- package/dist/helpers/html-format-helper.js +3 -6
- package/dist/helpers/is-directory.js +3 -6
- package/dist/helpers/is-file.js +3 -6
- package/dist/helpers/logging-helper.js +7 -13
- package/dist/helpers/normalize.js +10 -17
- package/dist/helpers/race.d.ts +1 -1
- package/dist/helpers/race.js +3 -9
- package/dist/helpers/safe.js +1 -4
- package/dist/helpers/scrape.d.ts +1 -1
- package/dist/helpers/scrape.js +3 -7
- package/dist/helpers/site-analyzer.js +5 -9
- package/dist/helpers/speed-kit-rule-to-reg-exp.js +1 -4
- package/dist/models/cli-parameters.d.ts +4 -4
- package/dist/models/cli-parameters.js +13 -16
- package/dist/models/files.js +1 -4
- package/dist/models/install.js +1 -2
- package/dist/models/os.js +1 -4
- package/dist/services/athena/athena-service-factory.d.ts +1 -1
- package/dist/services/athena/athena-service-factory.js +15 -19
- package/dist/services/athena/athena-service-model.js +2 -5
- package/dist/services/athena/athena-service.d.ts +1 -1
- package/dist/services/athena/athena-service.js +18 -23
- package/dist/services/athena/error/athena-query-error.d.ts +1 -1
- package/dist/services/athena/error/athena-query-error.js +2 -7
- package/dist/services/athena/error/fetch-credentials-error.d.ts +1 -1
- package/dist/services/athena/error/fetch-credentials-error.js +2 -7
- package/dist/services/athena/index.d.ts +4 -4
- package/dist/services/athena/index.js +4 -7
- package/dist/services/bundler/bundle-service-factory.d.ts +3 -1
- package/dist/services/bundler/bundle-service-factory.js +7 -7
- package/dist/services/bundler/bundle-service.d.ts +9 -12
- package/dist/services/bundler/bundle-service.js +42 -32
- package/dist/services/bundler/error/bundle-fetch-error.d.ts +1 -1
- package/dist/services/bundler/error/bundle-fetch-error.js +2 -7
- package/dist/services/bundler/error/bundle-resolve-error.d.ts +1 -1
- package/dist/services/bundler/error/bundle-resolve-error.js +2 -7
- package/dist/services/bundler/index.d.ts +2 -2
- package/dist/services/bundler/index.js +2 -5
- package/dist/services/cli/cli-service-factory.d.ts +2 -2
- package/dist/services/cli/cli-service-factory.js +6 -10
- package/dist/services/cli/cli-service-model.d.ts +21 -6
- package/dist/services/cli/cli-service-model.js +3 -7
- package/dist/services/cli/cli-service.d.ts +10 -8
- package/dist/services/cli/cli-service.js +64 -61
- package/dist/services/cli/error/cli-type-error.js +1 -4
- package/dist/services/cli/index.d.ts +3 -3
- package/dist/services/cli/index.js +3 -6
- package/dist/services/config-api/client.d.ts +2 -2
- package/dist/services/config-api/client.js +29 -34
- package/dist/services/config-api/config-api-factory.d.ts +2 -2
- package/dist/services/config-api/config-api-factory.js +15 -20
- package/dist/services/config-api/config-api-model.d.ts +2 -2
- package/dist/services/config-api/config-api-model.js +1 -5
- package/dist/services/config-api/config-api-service.d.ts +2 -2
- package/dist/services/config-api/config-api-service.js +1 -5
- package/dist/services/config-api/entity-manager-factory.js +3 -7
- package/dist/services/config-api/error/json-response-error.d.ts +1 -1
- package/dist/services/config-api/error/json-response-error.js +2 -7
- package/dist/services/config-api/error/login-error.d.ts +1 -1
- package/dist/services/config-api/error/login-error.js +2 -7
- package/dist/services/config-api/error/orestes-api-error.d.ts +1 -1
- package/dist/services/config-api/error/orestes-api-error.js +2 -7
- package/dist/services/config-api/index.d.ts +3 -3
- package/dist/services/config-api/index.js +3 -6
- package/dist/services/config-api-service.d.ts +1 -1
- package/dist/services/config-api-service.js +6 -11
- package/dist/services/customer-config/customer-config-service-context.js +3 -7
- package/dist/services/customer-config/customer-config-service-factory.d.ts +1 -1
- package/dist/services/customer-config/customer-config-service-factory.js +6 -10
- package/dist/services/customer-config/customer-config-service-model.js +6 -9
- package/dist/services/customer-config/customer-config-service.d.ts +3 -3
- package/dist/services/customer-config/customer-config-service.js +55 -55
- package/dist/services/customer-config/index.d.ts +4 -4
- package/dist/services/customer-config/index.js +4 -7
- package/dist/services/deploy/builder/install-resource-builder.d.ts +2 -2
- package/dist/services/deploy/builder/install-resource-builder.js +3 -7
- package/dist/services/deploy/checks/post-deploy/deprecated-deployment-detection-check.d.ts +4 -4
- package/dist/services/deploy/checks/post-deploy/deprecated-deployment-detection-check.js +19 -24
- package/dist/services/deploy/checks/post-deploy/revalidated-module-check.d.ts +3 -3
- package/dist/services/deploy/checks/post-deploy/revalidated-module-check.js +10 -14
- package/dist/services/deploy/checks/post-deploy/save-files-check.d.ts +3 -3
- package/dist/services/deploy/checks/post-deploy/save-files-check.js +8 -12
- package/dist/services/deploy/checks/pre-deploy/device-detection-changed-check.d.ts +3 -3
- package/dist/services/deploy/checks/pre-deploy/device-detection-changed-check.js +14 -20
- package/dist/services/deploy/checks/pre-deploy/split-change-check.d.ts +3 -3
- package/dist/services/deploy/checks/pre-deploy/split-change-check.js +19 -20
- package/dist/services/deploy/context/deploy-context.d.ts +2 -2
- package/dist/services/deploy/context/deploy-context.js +10 -14
- package/dist/services/deploy/deploy-service-factory.d.ts +3 -3
- package/dist/services/deploy/deploy-service-factory.js +36 -40
- package/dist/services/deploy/deploy-service-model.d.ts +10 -10
- package/dist/services/deploy/deploy-service-model.js +1 -2
- package/dist/services/deploy/deploy-service.d.ts +4 -4
- package/dist/services/deploy/deploy-service.js +10 -15
- package/dist/services/deploy/error/check-module-file-error.d.ts +1 -1
- package/dist/services/deploy/error/check-module-file-error.js +2 -7
- package/dist/services/deploy/error/deploy-install-resource-error.d.ts +1 -1
- package/dist/services/deploy/error/deploy-install-resource-error.js +2 -7
- package/dist/services/deploy/error/deploy-module-file-error.d.ts +1 -1
- package/dist/services/deploy/error/deploy-module-file-error.js +2 -7
- package/dist/services/deploy/error/deploy-server-config-error.d.ts +1 -1
- package/dist/services/deploy/error/deploy-server-config-error.js +2 -7
- package/dist/services/deploy/error/evaluate-sk-config-error.d.ts +1 -1
- package/dist/services/deploy/error/evaluate-sk-config-error.js +2 -7
- package/dist/services/deploy/error/file-handler-error.d.ts +1 -1
- package/dist/services/deploy/error/file-handler-error.js +2 -7
- package/dist/services/deploy/error/post-deploy-deployment-detection-error.d.ts +1 -1
- package/dist/services/deploy/error/post-deploy-deployment-detection-error.js +2 -7
- package/dist/services/deploy/error/safe-file-error.d.ts +1 -1
- package/dist/services/deploy/error/safe-file-error.js +2 -7
- package/dist/services/deploy/handler/customer-config-handler.d.ts +6 -6
- package/dist/services/deploy/handler/customer-config-handler.js +6 -10
- package/dist/services/deploy/handler/install-resource-handler.d.ts +7 -7
- package/dist/services/deploy/handler/install-resource-handler.js +22 -27
- package/dist/services/deploy/handler/install-resource-modifier/deleted-file-check.d.ts +4 -4
- package/dist/services/deploy/handler/install-resource-modifier/deleted-file-check.js +1 -4
- package/dist/services/deploy/handler/module-handler.d.ts +6 -6
- package/dist/services/deploy/handler/module-handler.js +12 -18
- package/dist/services/deploy/handler/server-config-handler.d.ts +5 -5
- package/dist/services/deploy/handler/server-config-handler.js +10 -14
- package/dist/services/deploy/interface/deploy-handler-interface.d.ts +1 -1
- package/dist/services/deploy/interface/deploy-handler-interface.js +1 -2
- package/dist/services/deploy/interface/install-configs.js +1 -2
- package/dist/services/deploy/interface/install-resource-processor-interface.d.ts +1 -1
- package/dist/services/deploy/interface/install-resource-processor-interface.js +1 -2
- package/dist/services/deploy/interface/install.d.ts +1 -1
- package/dist/services/deploy/interface/install.js +1 -2
- package/dist/services/deploy/interface/runtime-modifier.d.ts +1 -1
- package/dist/services/deploy/interface/runtime-modifier.js +1 -2
- package/dist/services/deploy/interface/validate-origins-response.js +1 -2
- package/dist/services/diff/diff-model.js +1 -5
- package/dist/services/diff/diff-service-factory.d.ts +1 -1
- package/dist/services/diff/diff-service-factory.js +6 -10
- package/dist/services/diff/diff-service.d.ts +1 -1
- package/dist/services/diff/diff-service.js +19 -24
- package/dist/services/diff/index.d.ts +3 -3
- package/dist/services/diff/index.js +3 -6
- package/dist/services/diff-service.d.ts +1 -1
- package/dist/services/diff-service.js +16 -21
- package/dist/services/document-handler-runtime/context/document-handler-runtime-context.js +30 -34
- package/dist/services/document-handler-runtime/document-handler-runtime-service.d.ts +3 -3
- package/dist/services/document-handler-runtime/document-handler-runtime-service.js +38 -42
- package/dist/services/document-handler-runtime/document-handler-server.d.ts +7 -11
- package/dist/services/document-handler-runtime/document-handler-server.js +77 -59
- package/dist/services/document-handler-runtime/error/required-file-not-found-error.js +1 -4
- package/dist/services/document-handler-runtime/factory/document-handler-runtime-service-factory.d.ts +5 -5
- package/dist/services/document-handler-runtime/factory/document-handler-runtime-service-factory.js +42 -46
- package/dist/services/document-handler-runtime/interface/document-handler-runtime-config-interface.js +1 -4
- package/dist/services/document-handler-runtime/interface/template-context-interface.d.ts +2 -3
- package/dist/services/document-handler-runtime/interface/template-context-interface.js +1 -2
- package/dist/services/document-handler-runtime/interface/template-interface.d.ts +2 -2
- package/dist/services/document-handler-runtime/interface/template-interface.js +1 -2
- package/dist/services/document-handler-runtime/interface/template-parameter-interface.js +1 -2
- package/dist/services/document-handler-runtime/server/document-handler-response.d.ts +1 -3
- package/dist/services/document-handler-runtime/server/document-handler-response.js +1 -5
- package/dist/services/document-handler-runtime/server/request.d.ts +4 -10
- package/dist/services/document-handler-runtime/server/request.js +1 -5
- package/dist/services/document-handler-runtime/templates/abstract-template.d.ts +3 -3
- package/dist/services/document-handler-runtime/templates/abstract-template.js +3 -7
- package/dist/services/document-handler-runtime/templates/database-mock.d.ts +2 -2
- package/dist/services/document-handler-runtime/templates/database-mock.js +2 -6
- package/dist/services/document-handler-runtime/templates/execute-document-handler.d.ts +2 -2
- package/dist/services/document-handler-runtime/templates/execute-document-handler.js +2 -6
- package/dist/services/document-handler-runtime/templates/orestes-mock.d.ts +2 -2
- package/dist/services/document-handler-runtime/templates/orestes-mock.js +2 -6
- package/dist/services/document-handler-runtime/templates/package-json.d.ts +3 -5
- package/dist/services/document-handler-runtime/templates/package-json.js +2 -6
- package/dist/services/document-handler-runtime/templates/test.d.ts +2 -2
- package/dist/services/document-handler-runtime/templates/test.js +2 -6
- package/dist/services/error-handling/error/application-error.d.ts +1 -1
- package/dist/services/error-handling/error/application-error.js +1 -5
- package/dist/services/error-handling/error/config-file-error.d.ts +1 -1
- package/dist/services/error-handling/error/config-file-error.js +2 -7
- package/dist/services/error-handling/error/connection-error.d.ts +1 -1
- package/dist/services/error-handling/error/connection-error.js +2 -7
- package/dist/services/integration-api/error/customer-config-error.d.ts +1 -1
- package/dist/services/integration-api/error/customer-config-error.js +2 -5
- package/dist/services/integration-api/error/customer-config-legacy-error.d.ts +1 -1
- package/dist/services/integration-api/error/customer-config-legacy-error.js +2 -6
- package/dist/services/integration-api/error/invalid-config-format-error.d.ts +1 -1
- package/dist/services/integration-api/error/invalid-config-format-error.js +4 -7
- package/dist/services/integration-api/error/mandatory-file-missing-error.d.ts +1 -1
- package/dist/services/integration-api/error/mandatory-file-missing-error.js +2 -6
- package/dist/services/integration-api/error/origin-error.d.ts +1 -1
- package/dist/services/integration-api/error/origin-error.js +2 -5
- package/dist/services/integration-api/error/read-files-error.d.ts +1 -1
- package/dist/services/integration-api/error/read-files-error.js +2 -7
- package/dist/services/integration-api/external/external-file-reader.d.ts +1 -1
- package/dist/services/integration-api/external/external-file-reader.js +9 -14
- package/dist/services/integration-api/file-list.d.ts +1 -1
- package/dist/services/integration-api/file-list.js +8 -11
- package/dist/services/integration-api/file-reader.js +11 -15
- package/dist/services/integration-api/file-writer.js +4 -8
- package/dist/services/integration-api/handler/customer-config-handler.d.ts +5 -5
- package/dist/services/integration-api/handler/customer-config-handler.js +17 -21
- package/dist/services/integration-api/handler/file-handler.d.ts +2 -2
- package/dist/services/integration-api/handler/file-handler.js +1 -4
- package/dist/services/integration-api/handler/install-resource-handler.d.ts +2 -2
- package/dist/services/integration-api/handler/install-resource-handler.js +6 -10
- package/dist/services/integration-api/handler/module-handler.d.ts +2 -2
- package/dist/services/integration-api/handler/module-handler.js +4 -8
- package/dist/services/integration-api/handler/server-config-handler.d.ts +2 -2
- package/dist/services/integration-api/handler/server-config-handler.js +4 -8
- package/dist/services/integration-api/index.d.ts +3 -3
- package/dist/services/integration-api/index.js +3 -6
- package/dist/services/integration-api/integration-api-factory.d.ts +3 -3
- package/dist/services/integration-api/integration-api-factory.js +23 -28
- package/dist/services/integration-api/integration-api-model.d.ts +17 -19
- package/dist/services/integration-api/integration-api-model.js +16 -21
- package/dist/services/integration-api/integration-api-service.d.ts +5 -5
- package/dist/services/integration-api/integration-api-service.js +6 -12
- package/dist/services/integration-api/spec/customer-config-validator.spec.js +29 -32
- package/dist/services/integration-api/spec/file-list.spec.js +107 -110
- package/dist/services/integration-api/spec/file-reader.spec.js +27 -30
- package/dist/services/integration-api/spec/file-writer.spec.js +34 -37
- package/dist/services/integration-api/spec/integration-api-service.spec.js +42 -45
- package/dist/services/integration-api/spec/mandatory-files-validator.spec.js +48 -51
- package/dist/services/integration-api/struct/customer-config-file.d.ts +1 -1
- package/dist/services/integration-api/struct/customer-config-file.js +10 -15
- package/dist/services/integration-api/struct/customer-config.d.ts +4 -8
- package/dist/services/integration-api/struct/customer-config.js +5 -10
- package/dist/services/integration-api/struct/file.d.ts +1 -1
- package/dist/services/integration-api/struct/file.js +9 -13
- package/dist/services/integration-api/struct/install-resource-file.d.ts +2 -2
- package/dist/services/integration-api/struct/install-resource-file.js +4 -8
- package/dist/services/integration-api/struct/module-file.d.ts +2 -2
- package/dist/services/integration-api/struct/module-file.js +4 -8
- package/dist/services/integration-api/struct/ro-file.d.ts +1 -1
- package/dist/services/integration-api/struct/ro-file.js +1 -5
- package/dist/services/integration-api/struct/server-config-file.d.ts +2 -2
- package/dist/services/integration-api/struct/server-config-file.js +4 -8
- package/dist/services/integration-api/struct/virtual-file.d.ts +1 -1
- package/dist/services/integration-api/struct/virtual-file.js +3 -7
- package/dist/services/integration-api/validator/customer-config-validator.d.ts +1 -1
- package/dist/services/integration-api/validator/customer-config-validator.js +8 -12
- package/dist/services/integration-api/validator/mandatory-files-validator.d.ts +2 -2
- package/dist/services/integration-api/validator/mandatory-files-validator.js +4 -8
- package/dist/services/integration-api/virtual/external-recipe.d.ts +2 -2
- package/dist/services/integration-api/virtual/external-recipe.js +1 -5
- package/dist/services/integration-api/virtual/static-recipe.d.ts +1 -1
- package/dist/services/integration-api/virtual/static-recipe.js +1 -5
- package/dist/services/integration-api/virtual/virtual-file-handler.d.ts +2 -2
- package/dist/services/integration-api/virtual/virtual-file-handler.js +8 -13
- package/dist/services/onboarding/browser/abort-response.js +1 -5
- package/dist/services/onboarding/browser/baqend-response.d.ts +1 -1
- package/dist/services/onboarding/browser/baqend-response.js +1 -5
- package/dist/services/onboarding/browser/config/browser-config.d.ts +1 -1
- package/dist/services/onboarding/browser/config/browser-config.js +15 -20
- package/dist/services/onboarding/browser/executable/executable-validator.d.ts +2 -2
- package/dist/services/onboarding/browser/executable/executable-validator.js +12 -17
- package/dist/services/onboarding/browser/extension/devtools-extension-api.d.ts +1 -1
- package/dist/services/onboarding/browser/extension/devtools-extension-api.js +1 -5
- package/dist/services/onboarding/browser/extension/extension-downloader.d.ts +2 -2
- package/dist/services/onboarding/browser/extension/extension-downloader.js +24 -30
- package/dist/services/onboarding/browser/extension/extension-validator.d.ts +3 -3
- package/dist/services/onboarding/browser/extension/extension-validator.js +18 -23
- package/dist/services/onboarding/browser/origin-response.d.ts +1 -1
- package/dist/services/onboarding/browser/origin-response.js +1 -5
- package/dist/services/onboarding/config-renderer/install-file-recipe.d.ts +2 -2
- package/dist/services/onboarding/config-renderer/install-file-recipe.js +1 -5
- package/dist/services/onboarding/config-renderer/speed-kit-install-context.d.ts +3 -3
- package/dist/services/onboarding/config-renderer/speed-kit-install-context.js +8 -11
- package/dist/services/onboarding/dashboard/diff-against-current-page.d.ts +4 -4
- package/dist/services/onboarding/dashboard/diff-against-current-page.js +9 -14
- package/dist/services/onboarding/dashboard/index.d.ts +7 -7
- package/dist/services/onboarding/dashboard/index.js +8 -13
- package/dist/services/onboarding/dashboard/parameter-query-builder.d.ts +1 -1
- package/dist/services/onboarding/dashboard/parameter-query-builder.js +9 -13
- package/dist/services/onboarding/dashboard/request-diff-service.d.ts +3 -3
- package/dist/services/onboarding/dashboard/request-diff-service.js +14 -19
- package/dist/services/onboarding/error/browser-extension-error.d.ts +1 -1
- package/dist/services/onboarding/error/browser-extension-error.js +1 -5
- package/dist/services/onboarding/error/document-handler-transform-error.js +1 -5
- package/dist/services/onboarding/error/unsupported-encoding-error.d.ts +1 -1
- package/dist/services/onboarding/error/unsupported-encoding-error.js +2 -7
- package/dist/services/onboarding/error/validate-extension-error.d.ts +1 -1
- package/dist/services/onboarding/error/validate-extension-error.js +2 -7
- package/dist/services/onboarding/error/vm-empty-response-error.d.ts +1 -1
- package/dist/services/onboarding/error/vm-empty-response-error.js +2 -7
- package/dist/services/onboarding/error/vm-error.d.ts +1 -1
- package/dist/services/onboarding/error/vm-error.js +2 -7
- package/dist/services/onboarding/fetch-event-handler.d.ts +4 -4
- package/dist/services/onboarding/fetch-event-handler.js +19 -25
- package/dist/services/onboarding/fetch-events/customer-domain-document-response.d.ts +4 -4
- package/dist/services/onboarding/fetch-events/customer-domain-document-response.js +15 -20
- package/dist/services/onboarding/fetch-events/customer-service-worker-js.d.ts +3 -3
- package/dist/services/onboarding/fetch-events/customer-service-worker-js.js +4 -8
- package/dist/services/onboarding/fetch-events/dashboard-request.d.ts +3 -3
- package/dist/services/onboarding/fetch-events/dashboard-request.js +1 -5
- package/dist/services/onboarding/fetch-events/speed-kit-asset-request.d.ts +5 -5
- package/dist/services/onboarding/fetch-events/speed-kit-asset-request.js +1 -5
- package/dist/services/onboarding/fetch-events/speed-kit-install-html.d.ts +4 -4
- package/dist/services/onboarding/fetch-events/speed-kit-install-html.js +3 -7
- package/dist/services/onboarding/fetch-events/speed-kit-install-js.d.ts +5 -5
- package/dist/services/onboarding/fetch-events/speed-kit-install-js.js +7 -11
- package/dist/services/onboarding/fetch-events/speed-kit-rum-pi-request.d.ts +6 -6
- package/dist/services/onboarding/fetch-events/speed-kit-rum-pi-request.js +4 -8
- package/dist/services/onboarding/fetch-events/speed-kit-service-worker-js.d.ts +3 -3
- package/dist/services/onboarding/fetch-events/speed-kit-service-worker-js.js +3 -7
- package/dist/services/onboarding/file-events/file-watcher.d.ts +5 -5
- package/dist/services/onboarding/file-events/file-watcher.js +24 -28
- package/dist/services/onboarding/index.d.ts +3 -3
- package/dist/services/onboarding/index.js +3 -8
- package/dist/services/onboarding/onboarding-model.d.ts +21 -23
- package/dist/services/onboarding/onboarding-model.js +22 -27
- package/dist/services/onboarding/onboarding-service-factory.d.ts +3 -3
- package/dist/services/onboarding/onboarding-service-factory.js +102 -108
- package/dist/services/onboarding/onboarding-service.d.ts +6 -6
- package/dist/services/onboarding/onboarding-service.js +12 -18
- package/dist/services/onboarding/request-cache/cache.d.ts +3 -3
- package/dist/services/onboarding/request-cache/cache.js +1 -5
- package/dist/services/onboarding/server-config/index.d.ts +3 -3
- package/dist/services/onboarding/server-config/index.js +6 -11
- package/dist/services/onboarding/templates/install-speed-kit-html-template.d.ts +1 -1
- package/dist/services/onboarding/templates/install-speed-kit-html-template.js +2 -7
- package/dist/services/onboarding/templates/install-speed-kit-js-template.d.ts +1 -1
- package/dist/services/onboarding/templates/install-speed-kit-js-template.js +2 -7
- package/dist/services/onboarding/todo-collector.d.ts +3 -3
- package/dist/services/onboarding/todo-collector.js +3 -7
- package/dist/services/onboarding/virtual-orestes-app/crawler.d.ts +2 -2
- package/dist/services/onboarding/virtual-orestes-app/crawler.js +12 -16
- package/dist/services/onboarding/virtual-orestes-app/index.d.ts +7 -7
- package/dist/services/onboarding/virtual-orestes-app/index.js +25 -32
- package/dist/services/pop-config/index.d.ts +3 -3
- package/dist/services/pop-config/index.js +3 -6
- package/dist/services/pop-config/pop-config-factory.d.ts +1 -1
- package/dist/services/pop-config/pop-config-factory.js +5 -9
- package/dist/services/pop-config/pop-config-model.d.ts +2 -2
- package/dist/services/pop-config/pop-config-model.js +1 -2
- package/dist/services/pop-config/pop-config-service.d.ts +2 -2
- package/dist/services/pop-config/pop-config-service.js +1 -5
- package/dist/services/prewarm/assets/asset-api-client.d.ts +2 -2
- package/dist/services/prewarm/assets/asset-api-client.js +18 -23
- package/dist/services/prewarm/assets/asset-item.d.ts +1 -1
- package/dist/services/prewarm/assets/asset-item.js +6 -10
- package/dist/services/prewarm/assets/asset-list.d.ts +2 -2
- package/dist/services/prewarm/assets/asset-list.js +6 -10
- package/dist/services/prewarm/csv-reader.js +6 -11
- package/dist/services/prewarm/error/invalid-origin-error.d.ts +1 -1
- package/dist/services/prewarm/error/invalid-origin-error.js +2 -7
- package/dist/services/prewarm/error/read-csv-error.d.ts +1 -1
- package/dist/services/prewarm/error/read-csv-error.js +2 -7
- package/dist/services/prewarm/index.d.ts +3 -3
- package/dist/services/prewarm/index.js +3 -6
- package/dist/services/prewarm/pre-warm-factory.d.ts +1 -1
- package/dist/services/prewarm/pre-warm-factory.js +13 -17
- package/dist/services/prewarm/pre-warm-model.js +16 -20
- package/dist/services/prewarm/pre-warm-service.d.ts +3 -3
- package/dist/services/prewarm/pre-warm-service.js +18 -22
- package/dist/services/pull/index.d.ts +3 -3
- package/dist/services/pull/index.js +3 -6
- package/dist/services/pull/pull-service-factory.d.ts +2 -2
- package/dist/services/pull/pull-service-factory.js +12 -16
- package/dist/services/pull/pull-service-model.js +4 -9
- package/dist/services/pull/pull-service.d.ts +3 -3
- package/dist/services/pull/pull-service.js +14 -19
- package/dist/services/query-builder/error/parse-config-speed-kit-error.d.ts +1 -1
- package/dist/services/query-builder/error/parse-config-speed-kit-error.js +2 -6
- package/dist/services/query-builder/query/parameter.js +1 -5
- package/dist/services/query-builder/query/prewarm.js +1 -5
- package/dist/services/query-builder/query-builder-factory.d.ts +3 -3
- package/dist/services/query-builder/query-builder-factory.js +16 -20
- package/dist/services/query-builder/query-builder-model.d.ts +6 -6
- package/dist/services/query-builder/query-builder-model.js +2 -5
- package/dist/services/query-builder/query-builder-service.d.ts +2 -2
- package/dist/services/query-builder/query-builder-service.js +24 -30
- package/oclif.manifest.json +15 -15
- package/package.json +63 -54
- package/dist/dummy.spec.d.ts +0 -1
- package/dist/dummy.spec.js +0 -18
|
@@ -1,36 +1,33 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
exports.TEST_FILE_NAME_PREFIX = "document";
|
|
16
|
-
exports.TEST_RUNTIME_FILE_NAME = "runtime";
|
|
17
|
-
exports.TEST_PACKAGE_JSON = "package";
|
|
1
|
+
export const CUSTOMER_CONFIG = "config_customer";
|
|
2
|
+
export const LOCAL_DOCUMENT_HANDLER = "custom_documentHandler";
|
|
3
|
+
export const LOCAL_DOCUMENT_HANDLER_CONFIG = "config_documentHandler";
|
|
4
|
+
export const LOCAL_DYNAMIC_FETCHER = "custom_dynamicFetcher";
|
|
5
|
+
export const LOCAL_DYNAMIC_FETCHER_CONFIG = "config_dynamicBlocks";
|
|
6
|
+
export const LOCAL_STYLES = "config_dynamicStyles";
|
|
7
|
+
export const LATEST_DOCUMENT_HANDLER_URL = "https://www.baqend.com/speed-kit-handler/latest/DocumentHandler.js";
|
|
8
|
+
export const LATEST_DYNAMIC_FETCHER_URL = "https://www.baqend.com/speed-kit/latest/dynamic-fetcher.js";
|
|
9
|
+
export const TEST_DOCUMENT_HANDLER_FILE_NAME = "testDocumentHandler";
|
|
10
|
+
export const TEST_DATABASE_MOCK_FILE_NAME = "database-mock";
|
|
11
|
+
export const TEST_ORESTES_MOCK_FILE_NAME = "orestes-mock";
|
|
12
|
+
export const TEST_FILE_NAME_PREFIX = "document";
|
|
13
|
+
export const TEST_RUNTIME_FILE_NAME = "runtime";
|
|
14
|
+
export const TEST_PACKAGE_JSON = "package";
|
|
18
15
|
const FILE_DEPENDENCIES = [
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
16
|
+
LOCAL_DOCUMENT_HANDLER_CONFIG,
|
|
17
|
+
LOCAL_DYNAMIC_FETCHER_CONFIG,
|
|
18
|
+
LOCAL_STYLES,
|
|
19
|
+
TEST_DATABASE_MOCK_FILE_NAME,
|
|
20
|
+
TEST_ORESTES_MOCK_FILE_NAME,
|
|
21
|
+
TEST_DOCUMENT_HANDLER_FILE_NAME,
|
|
22
|
+
TEST_PACKAGE_JSON,
|
|
23
|
+
TEST_RUNTIME_FILE_NAME,
|
|
27
24
|
];
|
|
28
|
-
class DocumentHandlerRuntimeContext {
|
|
25
|
+
export default class DocumentHandlerRuntimeContext {
|
|
29
26
|
verboseLevel;
|
|
30
27
|
fileDependencies = [
|
|
31
28
|
...FILE_DEPENDENCIES,
|
|
32
|
-
|
|
33
|
-
|
|
29
|
+
LOCAL_DOCUMENT_HANDLER,
|
|
30
|
+
LOCAL_DYNAMIC_FETCHER,
|
|
34
31
|
];
|
|
35
32
|
customerPath;
|
|
36
33
|
configName;
|
|
@@ -46,17 +43,16 @@ class DocumentHandlerRuntimeContext {
|
|
|
46
43
|
for (const testName of this.testNames) {
|
|
47
44
|
dependencies = [
|
|
48
45
|
...dependencies,
|
|
49
|
-
`${
|
|
46
|
+
`${TEST_FILE_NAME_PREFIX}-${testName}`,
|
|
50
47
|
];
|
|
51
48
|
}
|
|
52
49
|
this.fileDependencies = [...this.fileDependencies, ...dependencies];
|
|
53
50
|
}
|
|
54
51
|
this.requiredFiles = [
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
52
|
+
CUSTOMER_CONFIG,
|
|
53
|
+
LOCAL_DOCUMENT_HANDLER_CONFIG,
|
|
54
|
+
LOCAL_DYNAMIC_FETCHER_CONFIG,
|
|
55
|
+
LOCAL_STYLES,
|
|
59
56
|
];
|
|
60
57
|
}
|
|
61
58
|
}
|
|
62
|
-
exports.default = DocumentHandlerRuntimeContext;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import DocumentHandlerRuntimeConfigInterface from "./interface/document-handler-runtime-config-interface";
|
|
2
|
-
import { CliService } from "../cli";
|
|
3
|
-
import { FileListInterface, CustomerConfig } from "../integration-api";
|
|
1
|
+
import DocumentHandlerRuntimeConfigInterface from "./interface/document-handler-runtime-config-interface.js";
|
|
2
|
+
import { CliService } from "../cli/index.js";
|
|
3
|
+
import { FileListInterface, CustomerConfig } from "../integration-api/index.js";
|
|
4
4
|
export default class DocumentHandlerRuntimeService {
|
|
5
5
|
private files;
|
|
6
6
|
private readonly customerConfig;
|
|
@@ -1,15 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const node_fetch_1 = tslib_1.__importDefault(require("node-fetch"));
|
|
11
|
-
const required_file_not_found_error_1 = tslib_1.__importDefault(require("./error/required-file-not-found-error"));
|
|
12
|
-
class DocumentHandlerRuntimeService {
|
|
1
|
+
import { LOCAL_DOCUMENT_HANDLER, LOCAL_DYNAMIC_FETCHER, LATEST_DOCUMENT_HANDLER_URL, LATEST_DYNAMIC_FETCHER_URL, LOCAL_DOCUMENT_HANDLER_CONFIG, LOCAL_DYNAMIC_FETCHER_CONFIG, LOCAL_STYLES, TEST_DOCUMENT_HANDLER_FILE_NAME, TEST_DATABASE_MOCK_FILE_NAME, TEST_FILE_NAME_PREFIX, TEST_ORESTES_MOCK_FILE_NAME, TEST_PACKAGE_JSON, TEST_RUNTIME_FILE_NAME, } from "./context/document-handler-runtime-context.js";
|
|
2
|
+
import DatabaseMock from "./templates/database-mock.js";
|
|
3
|
+
import Test from "./templates/test.js";
|
|
4
|
+
import OrestesMock from "./templates/orestes-mock.js";
|
|
5
|
+
import PackageJson from "./templates/package-json.js";
|
|
6
|
+
import ExecuteDocumentHandler from "./templates/execute-document-handler.js";
|
|
7
|
+
import fetch from "node-fetch";
|
|
8
|
+
import RequiredFileNotFoundError from "./error/required-file-not-found-error.js";
|
|
9
|
+
export default class DocumentHandlerRuntimeService {
|
|
13
10
|
files;
|
|
14
11
|
customerConfig;
|
|
15
12
|
cli;
|
|
@@ -80,14 +77,14 @@ class DocumentHandlerRuntimeService {
|
|
|
80
77
|
this.cli.writeSuccess(`${isNew ? "created" : "updated"} documentHandler from config`);
|
|
81
78
|
}
|
|
82
79
|
async createDataBaseMockFile() {
|
|
83
|
-
const file = this.files.getByName(
|
|
80
|
+
const file = this.files.getByName(TEST_DATABASE_MOCK_FILE_NAME);
|
|
84
81
|
if (file.getContent().length > 0) {
|
|
85
|
-
const response = await this.cli.confirm(`override file ${
|
|
82
|
+
const response = await this.cli.confirm(`override file ${TEST_DATABASE_MOCK_FILE_NAME}.js?`, false);
|
|
86
83
|
if (!response) {
|
|
87
84
|
return;
|
|
88
85
|
}
|
|
89
86
|
}
|
|
90
|
-
const dataBaseMock = new
|
|
87
|
+
const dataBaseMock = new DatabaseMock();
|
|
91
88
|
file.setContent(dataBaseMock.render(dataBaseMock.buildContext(this.customerConfig.origins[0], this.customerConfig.app)));
|
|
92
89
|
await file.updateFile();
|
|
93
90
|
this.cli.writeSuccess("created db-mock file");
|
|
@@ -96,36 +93,36 @@ class DocumentHandlerRuntimeService {
|
|
|
96
93
|
names.map(async (name) => this.createTestCase(name));
|
|
97
94
|
}
|
|
98
95
|
async createTestCase(name) {
|
|
99
|
-
const file = this.files.getByName(`${
|
|
100
|
-
const test = new
|
|
96
|
+
const file = this.files.getByName(`${TEST_FILE_NAME_PREFIX}-${name}`);
|
|
97
|
+
const test = new Test();
|
|
101
98
|
if (file.getContent().length > 0) {
|
|
102
|
-
const response = await this.cli.confirm(`override file ${
|
|
99
|
+
const response = await this.cli.confirm(`override file ${TEST_FILE_NAME_PREFIX}-${name}.js?`);
|
|
103
100
|
if (!response) {
|
|
104
101
|
return;
|
|
105
102
|
}
|
|
106
103
|
}
|
|
107
104
|
file.setContent(test.render(test.buildContext(this.customerConfig.origins[0], name)));
|
|
108
105
|
await file.updateFile();
|
|
109
|
-
this.cli.writeSuccess(`created testCase file: ${
|
|
106
|
+
this.cli.writeSuccess(`created testCase file: ${TEST_FILE_NAME_PREFIX}-${name}`);
|
|
110
107
|
}
|
|
111
108
|
async createLocalRuntime() {
|
|
112
|
-
const file = this.files.getByName(
|
|
113
|
-
const runtime = new
|
|
109
|
+
const file = this.files.getByName(TEST_RUNTIME_FILE_NAME);
|
|
110
|
+
const runtime = new ExecuteDocumentHandler();
|
|
114
111
|
if (file.getContent().length > 0) {
|
|
115
|
-
const response = await this.cli.confirm(`override file ${
|
|
112
|
+
const response = await this.cli.confirm(`override file ${TEST_RUNTIME_FILE_NAME}.js?`, false);
|
|
116
113
|
if (!response) {
|
|
117
114
|
return;
|
|
118
115
|
}
|
|
119
116
|
}
|
|
120
117
|
file.setContent(runtime.render(runtime.buildContext(this.customerConfig.origins[0], "test")));
|
|
121
118
|
await file.updateFile();
|
|
122
|
-
this.cli.writeSuccess(`created runtime file: ${
|
|
119
|
+
this.cli.writeSuccess(`created runtime file: ${TEST_RUNTIME_FILE_NAME}`);
|
|
123
120
|
}
|
|
124
121
|
async createOrestesMockFile() {
|
|
125
|
-
const file = this.files.getByName(
|
|
126
|
-
const orestesMock = new
|
|
122
|
+
const file = this.files.getByName(TEST_ORESTES_MOCK_FILE_NAME);
|
|
123
|
+
const orestesMock = new OrestesMock();
|
|
127
124
|
if (file.getContent().length > 0) {
|
|
128
|
-
const response = await this.cli.confirm(`override file ${
|
|
125
|
+
const response = await this.cli.confirm(`override file ${TEST_ORESTES_MOCK_FILE_NAME}.js?`, false);
|
|
129
126
|
if (!response) {
|
|
130
127
|
return;
|
|
131
128
|
}
|
|
@@ -137,54 +134,54 @@ class DocumentHandlerRuntimeService {
|
|
|
137
134
|
if (!this.customerConfig.dependencies) {
|
|
138
135
|
return;
|
|
139
136
|
}
|
|
140
|
-
const file = this.files.getByName(`${
|
|
137
|
+
const file = this.files.getByName(`${TEST_PACKAGE_JSON}`);
|
|
141
138
|
if (file.getContent().length > 0) {
|
|
142
|
-
const shouldUpdateFile = await this.cli.confirm(`override file ${
|
|
139
|
+
const shouldUpdateFile = await this.cli.confirm(`override file ${TEST_PACKAGE_JSON}.json?`, false);
|
|
143
140
|
if (!shouldUpdateFile) {
|
|
144
141
|
return;
|
|
145
142
|
}
|
|
146
143
|
}
|
|
147
|
-
const packageJson = new
|
|
144
|
+
const packageJson = new PackageJson();
|
|
148
145
|
const context = packageJson.buildContext(this.customerConfig.dependencies);
|
|
149
146
|
file.setContent(packageJson.render(context));
|
|
150
147
|
await file.updateFile();
|
|
151
|
-
this.cli.writeSuccess(`created testCase file: ${
|
|
148
|
+
this.cli.writeSuccess(`created testCase file: ${TEST_PACKAGE_JSON}.json`);
|
|
152
149
|
}
|
|
153
150
|
async getDocumentHandler() {
|
|
154
|
-
if (!this.files.hasFile(
|
|
155
|
-
const response = await (
|
|
151
|
+
if (!this.files.hasFile(LOCAL_DOCUMENT_HANDLER)) {
|
|
152
|
+
const response = await fetch(LATEST_DOCUMENT_HANDLER_URL);
|
|
156
153
|
return await response.text();
|
|
157
154
|
}
|
|
158
155
|
return this.files
|
|
159
|
-
.getByName(
|
|
156
|
+
.getByName(LOCAL_DOCUMENT_HANDLER)
|
|
160
157
|
.getContent();
|
|
161
158
|
}
|
|
162
159
|
async getDynamicFetcher() {
|
|
163
|
-
if (!this.files.hasFile(
|
|
164
|
-
const response = await (
|
|
160
|
+
if (!this.files.hasFile(LOCAL_DYNAMIC_FETCHER)) {
|
|
161
|
+
const response = await fetch(LATEST_DYNAMIC_FETCHER_URL);
|
|
165
162
|
return this.escapeFileContent2(await response.text());
|
|
166
163
|
}
|
|
167
164
|
return this.escapeFileContent(this.files
|
|
168
|
-
.getByName(
|
|
165
|
+
.getByName(LOCAL_DYNAMIC_FETCHER)
|
|
169
166
|
.getContent());
|
|
170
167
|
}
|
|
171
168
|
getDynamicFetcherConfig() {
|
|
172
169
|
return this.escapeFileContent(this.files
|
|
173
|
-
.getByName(
|
|
170
|
+
.getByName(LOCAL_DYNAMIC_FETCHER_CONFIG)
|
|
174
171
|
.getContent());
|
|
175
172
|
}
|
|
176
173
|
getStyles() {
|
|
177
|
-
return this.escapeFileContent(this.files.getByName(
|
|
174
|
+
return this.escapeFileContent(this.files.getByName(LOCAL_STYLES).getContent());
|
|
178
175
|
}
|
|
179
176
|
getDocumentHandlerConfig() {
|
|
180
|
-
const documentHandlerFile = this.files.getByName(
|
|
177
|
+
const documentHandlerFile = this.files.getByName(LOCAL_DOCUMENT_HANDLER_CONFIG);
|
|
181
178
|
if (!documentHandlerFile) {
|
|
182
|
-
throw new
|
|
179
|
+
throw new RequiredFileNotFoundError(`file ${LOCAL_DOCUMENT_HANDLER_CONFIG} not found`);
|
|
183
180
|
}
|
|
184
181
|
return documentHandlerFile.getContent();
|
|
185
182
|
}
|
|
186
183
|
getTestDocHandlerFile() {
|
|
187
|
-
return this.files.getByName(
|
|
184
|
+
return this.files.getByName(TEST_DOCUMENT_HANDLER_FILE_NAME);
|
|
188
185
|
}
|
|
189
186
|
escapeFileContent(content) {
|
|
190
187
|
const escapedContent = content
|
|
@@ -223,4 +220,3 @@ module.exports = documentHandler
|
|
|
223
220
|
`;
|
|
224
221
|
}
|
|
225
222
|
}
|
|
226
|
-
exports.default = DocumentHandlerRuntimeService;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { BundleService } from "../bundler";
|
|
2
|
-
import { CliService } from "../cli";
|
|
3
|
-
import { CustomerConfig, FileListInterface } from "../integration-api";
|
|
1
|
+
import { BundleService } from "../bundler/index.js";
|
|
2
|
+
import { CliService } from "../cli/index.js";
|
|
3
|
+
import { CustomerConfig, FileListInterface } from "../integration-api/index.js";
|
|
4
4
|
import { EntityManager } from "baqend";
|
|
5
|
-
import { DocumentHandlerResponse } from "./server/document-handler-response";
|
|
5
|
+
import { DocumentHandlerResponse } from "./server/document-handler-response.js";
|
|
6
6
|
export declare class DocumentHandlerServer {
|
|
7
7
|
private customerConfig;
|
|
8
8
|
private files;
|
|
@@ -15,12 +15,9 @@ export declare class DocumentHandlerServer {
|
|
|
15
15
|
private documentHandlerConfigCode;
|
|
16
16
|
private database;
|
|
17
17
|
constructor(customerConfig: CustomerConfig, files: FileListInterface, bundler: BundleService, cli: CliService, nodeModulesPath: string, verboseLevel?: boolean, entityManager?: EntityManager);
|
|
18
|
-
transform(contentType: string, html: string, variation: string, url: string, headers:
|
|
19
|
-
[name: string]: string;
|
|
20
|
-
}): Promise<DocumentHandlerResponse>;
|
|
18
|
+
transform(contentType: string, html: string, variation: string, url: string, headers: Record<string, string>): Promise<DocumentHandlerResponse>;
|
|
21
19
|
private getTransformFunctionWrapper;
|
|
22
20
|
buildDocumentHandler(): Promise<void>;
|
|
23
|
-
private createDocumentHandlerConfigFile;
|
|
24
21
|
private deactivateReleaseAndDeploymentDetection;
|
|
25
22
|
private getDocumentHandler;
|
|
26
23
|
private getDynamicFetcher;
|
|
@@ -38,7 +35,6 @@ export declare class DocumentHandlerServer {
|
|
|
38
35
|
* downloaded and cached, otherwise the fetcher id returned from cache. The resulting module gets minified afterwards.
|
|
39
36
|
*
|
|
40
37
|
*/
|
|
41
|
-
bundleDynamicFetcher(basePaths:
|
|
42
|
-
|
|
43
|
-
}, dynamicFetcher: string): Promise<string>;
|
|
38
|
+
bundleDynamicFetcher(basePaths: Record<string, string>, dynamicFetcher: string): Promise<string>;
|
|
39
|
+
bundleDocumentHandlerCode(name: string, code: string): Promise<string>;
|
|
44
40
|
}
|
|
@@ -1,22 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const database_mock_1 = tslib_1.__importDefault(require("./templates/database-mock"));
|
|
8
|
-
const vm = tslib_1.__importStar(require("node:vm"));
|
|
9
|
-
const cli_1 = require("../cli");
|
|
10
|
-
const node_path_1 = tslib_1.__importStar(require("node:path"));
|
|
11
|
-
const files_1 = require("../../models/files");
|
|
1
|
+
import { LATEST_DYNAMIC_FETCHER_URL, LOCAL_DOCUMENT_HANDLER, LOCAL_DOCUMENT_HANDLER_CONFIG, LOCAL_DYNAMIC_FETCHER, LOCAL_DYNAMIC_FETCHER_CONFIG, LOCAL_STYLES, } from "./context/document-handler-runtime-context.js";
|
|
2
|
+
import RequiredFileNotFoundError from "./error/required-file-not-found-error.js";
|
|
3
|
+
import DatabaseMock from "./templates/database-mock.js";
|
|
4
|
+
import * as vm from "node:vm";
|
|
5
|
+
import path, { resolve } from "node:path";
|
|
6
|
+
import { INTEGRATION_FILES } from "../../models/files.js";
|
|
12
7
|
// documentHandlerDependencies
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
8
|
+
import fetch from "node-fetch";
|
|
9
|
+
import { Request } from "./server/request.js";
|
|
10
|
+
import { DocumentHandlerResponse } from "./server/document-handler-response.js";
|
|
11
|
+
import { safe } from "../../helpers/safe.js";
|
|
12
|
+
import { VmEmptyResponseError } from "../onboarding/error/vm-empty-response-error.js";
|
|
13
|
+
import { DocumentHandlerTransformError } from "../onboarding/error/document-handler-transform-error.js";
|
|
14
|
+
import { createRequire } from "node:module";
|
|
15
|
+
export class DocumentHandlerServer {
|
|
20
16
|
customerConfig;
|
|
21
17
|
files;
|
|
22
18
|
bundler;
|
|
@@ -37,13 +33,13 @@ class DocumentHandlerServer {
|
|
|
37
33
|
this.entityManager = entityManager;
|
|
38
34
|
}
|
|
39
35
|
async transform(contentType, html, variation, url, headers) {
|
|
40
|
-
if (!this.documentHandlerCode) {
|
|
36
|
+
if (!this.documentHandlerCode || !this.documentHandlerConfigCode) {
|
|
41
37
|
await this.buildDocumentHandler();
|
|
42
38
|
}
|
|
43
|
-
const skInternalRequest = new
|
|
39
|
+
const skInternalRequest = new Request(url, html, variation, headers, {
|
|
44
40
|
"content-type": contentType,
|
|
45
41
|
});
|
|
46
|
-
const skInternalResponse = new
|
|
42
|
+
const skInternalResponse = new DocumentHandlerResponse();
|
|
47
43
|
const vmContext = {
|
|
48
44
|
db: await this.createDataBaseMock(),
|
|
49
45
|
skInternalRequest,
|
|
@@ -59,7 +55,7 @@ class DocumentHandlerServer {
|
|
|
59
55
|
...this.createNodeVmContext(),
|
|
60
56
|
skErrorContext: {},
|
|
61
57
|
};
|
|
62
|
-
const customDocumentHandlerFile = this.files.getByName(
|
|
58
|
+
const customDocumentHandlerFile = this.files.getByName(INTEGRATION_FILES.CUSTOM.DOCUMENT_HANDLER);
|
|
63
59
|
if (customDocumentHandlerFile.path) {
|
|
64
60
|
vm.runInNewContext(this.documentHandlerCode, vmContext, {
|
|
65
61
|
filename: customDocumentHandlerFile.path,
|
|
@@ -72,7 +68,7 @@ class DocumentHandlerServer {
|
|
|
72
68
|
const script = new vm.Script(this.documentHandlerConfigCode + this.getTransformFunctionWrapper(), {
|
|
73
69
|
filename: this.files.getByName("config_documentHandler").path,
|
|
74
70
|
});
|
|
75
|
-
const vmResponse = await
|
|
71
|
+
const vmResponse = await safe(new Promise((resolve, reject) => {
|
|
76
72
|
vmContext.skInternalResponse.resolve = resolve;
|
|
77
73
|
// @ts-expect-error reject is unknown
|
|
78
74
|
vmContext.reject = reject;
|
|
@@ -81,58 +77,54 @@ class DocumentHandlerServer {
|
|
|
81
77
|
}));
|
|
82
78
|
if (vmResponse.success === true) {
|
|
83
79
|
if (!vmResponse.data.body || vmResponse.data.body?.length === 0) {
|
|
84
|
-
throw new
|
|
80
|
+
throw new VmEmptyResponseError(`documentHandlerResponse is empty for url: ${url}`);
|
|
85
81
|
}
|
|
86
82
|
return vmResponse.data;
|
|
87
83
|
}
|
|
88
|
-
throw new
|
|
84
|
+
throw new DocumentHandlerTransformError(vmResponse.errorObj);
|
|
89
85
|
}
|
|
90
86
|
getTransformFunctionWrapper() {
|
|
91
87
|
return `\n\npost(db, skInternalRequest, skInternalResponse).catch((error)=>reject(error));`;
|
|
92
88
|
}
|
|
93
89
|
async buildDocumentHandler() {
|
|
94
|
-
this.
|
|
95
|
-
this.
|
|
96
|
-
|
|
97
|
-
this.cli.
|
|
90
|
+
this.cli.startAction("DOCUMENTHANDLER:BUILD", "rebuild documentHandler");
|
|
91
|
+
this.documentHandlerCode = await this.bundleDocumentHandlerCode("custom_documentHandler.js", await this.getDocumentHandler());
|
|
92
|
+
this.documentHandlerConfigCode = await this.bundleDocumentHandlerCode("config_documentHandler.js", this.deactivateReleaseAndDeploymentDetection());
|
|
93
|
+
this.cli.successAction("DOCUMENTHANDLER:BUILD");
|
|
98
94
|
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
return this.deactivateReleaseAndDeploymentDetection(config);
|
|
102
|
-
}
|
|
103
|
-
deactivateReleaseAndDeploymentDetection(documentHandlerConfig) {
|
|
104
|
-
return documentHandlerConfig.replace("const documentHandler =", (selected) => {
|
|
95
|
+
deactivateReleaseAndDeploymentDetection() {
|
|
96
|
+
return this.getDocumentHandlerConfig().replace("const documentHandler =", (selected) => {
|
|
105
97
|
return (`config["executeDeploymentDetection"] = false;config["executeReleaseDetection"] = false;\n` +
|
|
106
98
|
selected);
|
|
107
99
|
});
|
|
108
100
|
}
|
|
109
101
|
async getDocumentHandler() {
|
|
110
102
|
return this.files
|
|
111
|
-
.getByName(
|
|
103
|
+
.getByName(LOCAL_DOCUMENT_HANDLER)
|
|
112
104
|
.getContent();
|
|
113
105
|
}
|
|
114
106
|
async getDynamicFetcher() {
|
|
115
107
|
// todo use fetchRemoteFile from integration api
|
|
116
|
-
if (!this.files.hasFile(
|
|
117
|
-
const response = await (
|
|
108
|
+
if (!this.files.hasFile(LOCAL_DYNAMIC_FETCHER)) {
|
|
109
|
+
const response = await fetch(LATEST_DYNAMIC_FETCHER_URL);
|
|
118
110
|
return await this.bundleDynamicFetcher({ "dynamic-fetcher": "https://www.baqend.com/speed-kit/latest/" }, await response.text());
|
|
119
111
|
}
|
|
120
112
|
return this.files
|
|
121
|
-
.getByName(
|
|
113
|
+
.getByName(INTEGRATION_FILES.CUSTOM.DYNAMIC_FETCHER)
|
|
122
114
|
.getContent();
|
|
123
115
|
}
|
|
124
116
|
async getDynamicFetcherConfig() {
|
|
125
117
|
return this.files
|
|
126
|
-
.getByName(
|
|
118
|
+
.getByName(LOCAL_DYNAMIC_FETCHER_CONFIG)
|
|
127
119
|
.getContent();
|
|
128
120
|
}
|
|
129
121
|
getStyles() {
|
|
130
|
-
return this.files.getByName(
|
|
122
|
+
return this.files.getByName(LOCAL_STYLES).getContent();
|
|
131
123
|
}
|
|
132
124
|
getDocumentHandlerConfig() {
|
|
133
|
-
const documentHandlerFile = this.files.getByName(
|
|
125
|
+
const documentHandlerFile = this.files.getByName(LOCAL_DOCUMENT_HANDLER_CONFIG);
|
|
134
126
|
if (!documentHandlerFile) {
|
|
135
|
-
throw new
|
|
127
|
+
throw new RequiredFileNotFoundError(`file ${LOCAL_DOCUMENT_HANDLER_CONFIG} not found`);
|
|
136
128
|
}
|
|
137
129
|
return documentHandlerFile.getContent();
|
|
138
130
|
}
|
|
@@ -146,26 +138,29 @@ class DocumentHandlerServer {
|
|
|
146
138
|
async createDataBaseMock() {
|
|
147
139
|
const vmConsole = {
|
|
148
140
|
log: (...logArguments) => {
|
|
141
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-expressions
|
|
149
142
|
this.verboseLevel
|
|
150
143
|
? this.cli.write(`[documentHandler.dbLog]: ${JSON.stringify(logArguments)}`)
|
|
151
144
|
: "";
|
|
152
145
|
},
|
|
153
146
|
info: (...logArguments) => {
|
|
147
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-expressions
|
|
154
148
|
this.verboseLevel
|
|
155
149
|
? this.cli.writeWarning(`[documentHandler.dbLog]: ${JSON.stringify(logArguments)}`)
|
|
156
150
|
: "";
|
|
157
151
|
},
|
|
158
152
|
error: (...logArguments) => {
|
|
153
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-expressions
|
|
159
154
|
this.verboseLevel
|
|
160
155
|
? this.cli.writeError(`[documentHandler.dbLog]: ${JSON.stringify(logArguments)}`)
|
|
161
156
|
: "";
|
|
162
157
|
},
|
|
163
158
|
};
|
|
164
159
|
if (!this.database) {
|
|
165
|
-
const dataBaseMock = new
|
|
160
|
+
const dataBaseMock = new DatabaseMock();
|
|
166
161
|
const databaseCode = dataBaseMock.render(dataBaseMock.buildContext(this.customerConfig.origins[0], this.customerConfig.app));
|
|
167
162
|
const vmContext = { console: vmConsole, module: { exports: {} } };
|
|
168
|
-
vm.runInNewContext(databaseCode, vmContext);
|
|
163
|
+
vm.runInNewContext(databaseCode, vmContext, { displayErrors: true });
|
|
169
164
|
this.database = vmContext.module.exports;
|
|
170
165
|
if (this.entityManager) {
|
|
171
166
|
this.database.token = this.entityManager.token;
|
|
@@ -176,11 +171,20 @@ class DocumentHandlerServer {
|
|
|
176
171
|
createNodeVmContext() {
|
|
177
172
|
const context = {
|
|
178
173
|
process: this.createProcessPartial(),
|
|
179
|
-
require:
|
|
180
|
-
URL
|
|
174
|
+
require: createRequire(import.meta.url),
|
|
175
|
+
URL,
|
|
176
|
+
URLSearchParams,
|
|
181
177
|
fetch: this.createFetchMock(),
|
|
182
178
|
Buffer: Buffer,
|
|
183
179
|
Blob: Blob,
|
|
180
|
+
setTimeout,
|
|
181
|
+
setImmediate,
|
|
182
|
+
clearTimeout,
|
|
183
|
+
clearImmediate,
|
|
184
|
+
global,
|
|
185
|
+
TextEncoder,
|
|
186
|
+
TextDecoder,
|
|
187
|
+
module: { exports: {} },
|
|
184
188
|
};
|
|
185
189
|
if (this.verboseLevel) {
|
|
186
190
|
context["console"] = console;
|
|
@@ -195,8 +199,8 @@ class DocumentHandlerServer {
|
|
|
195
199
|
if (module.toLowerCase().includes("fetch")) {
|
|
196
200
|
return this.createFetchMock();
|
|
197
201
|
}
|
|
198
|
-
const fileExtension =
|
|
199
|
-
const moduleFileName =
|
|
202
|
+
const fileExtension = path.extname(module);
|
|
203
|
+
const moduleFileName = path.basename(module, fileExtension);
|
|
200
204
|
if (this.files.hasFile(moduleFileName)) {
|
|
201
205
|
const vmContext = {
|
|
202
206
|
module: { exports: {} },
|
|
@@ -205,19 +209,18 @@ class DocumentHandlerServer {
|
|
|
205
209
|
};
|
|
206
210
|
vm.runInNewContext(this.files
|
|
207
211
|
.getByName(moduleFileName)
|
|
208
|
-
.getContent(), vmContext);
|
|
212
|
+
.getContent(), vmContext, { displayErrors: true });
|
|
209
213
|
return { ...vmContext.module.exports, ...vmContext.exports };
|
|
210
214
|
}
|
|
211
215
|
try {
|
|
212
|
-
|
|
213
|
-
return require(module);
|
|
216
|
+
return import(module);
|
|
214
217
|
}
|
|
215
218
|
catch {
|
|
216
219
|
// do nothing
|
|
217
220
|
}
|
|
218
221
|
try {
|
|
219
|
-
const additional =
|
|
220
|
-
return
|
|
222
|
+
const additional = resolve(this.nodeModulesPath, "node_modules", module);
|
|
223
|
+
return import(additional);
|
|
221
224
|
}
|
|
222
225
|
catch {
|
|
223
226
|
// do nothing
|
|
@@ -228,14 +231,14 @@ class DocumentHandlerServer {
|
|
|
228
231
|
createFetchMock() {
|
|
229
232
|
return async (url, options) => {
|
|
230
233
|
if (this.verboseLevel) {
|
|
231
|
-
this.cli.startAction(this.cli.style.yellow(`[documentHandler.fetch]: ${url}`));
|
|
234
|
+
this.cli.startAction("ONBOARDING:DOCUMENT_HANDLER:FETCH", this.cli.style.yellow(`[documentHandler.fetch]: ${url}`));
|
|
232
235
|
}
|
|
233
|
-
const result = await
|
|
236
|
+
const result = await safe(fetch(url, options));
|
|
234
237
|
if (result.success === true) {
|
|
235
|
-
this.cli.
|
|
238
|
+
this.cli.successAction("ONBOARDING:DOCUMENT_HANDLER:FETCH");
|
|
236
239
|
return result.data;
|
|
237
240
|
}
|
|
238
|
-
this.cli.
|
|
241
|
+
this.cli.failAction("ONBOARDING:DOCUMENT_HANDLER:FETCH");
|
|
239
242
|
if (result.errorObj) {
|
|
240
243
|
throw result.errorObj;
|
|
241
244
|
}
|
|
@@ -245,6 +248,10 @@ class DocumentHandlerServer {
|
|
|
245
248
|
createProcessPartial() {
|
|
246
249
|
return {
|
|
247
250
|
hrtime: process.hrtime,
|
|
251
|
+
env: {
|
|
252
|
+
// disable warning of node-fetch-native
|
|
253
|
+
DISABLE_NODE_FETCH_NATIVE_WARN: "1",
|
|
254
|
+
},
|
|
248
255
|
};
|
|
249
256
|
}
|
|
250
257
|
/**
|
|
@@ -261,5 +268,16 @@ class DocumentHandlerServer {
|
|
|
261
268
|
platform: "browser",
|
|
262
269
|
});
|
|
263
270
|
}
|
|
271
|
+
async bundleDocumentHandlerCode(name, code) {
|
|
272
|
+
return this.bundler.bundle({
|
|
273
|
+
entryPoints: {
|
|
274
|
+
[name]: code,
|
|
275
|
+
},
|
|
276
|
+
minify: false,
|
|
277
|
+
target: "ES2020",
|
|
278
|
+
platform: "node",
|
|
279
|
+
logLevel: "silent",
|
|
280
|
+
alias: { "node-fetch": "node-fetch-native" },
|
|
281
|
+
});
|
|
282
|
+
}
|
|
264
283
|
}
|
|
265
|
-
exports.DocumentHandlerServer = DocumentHandlerServer;
|
package/dist/services/document-handler-runtime/factory/document-handler-runtime-service-factory.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { FileListInterface } from "../../integration-api";
|
|
2
|
-
import DocumentHandlerRuntimeContext from "../context/document-handler-runtime-context";
|
|
3
|
-
import DocumentHandlerRuntimeService from "../document-handler-runtime-service";
|
|
4
|
-
import { DocumentHandlerServer } from "../document-handler-server";
|
|
5
|
-
import { UserCliConfig } from "../../../helpers/cli-config";
|
|
1
|
+
import { FileListInterface } from "../../integration-api/index.js";
|
|
2
|
+
import DocumentHandlerRuntimeContext from "../context/document-handler-runtime-context.js";
|
|
3
|
+
import DocumentHandlerRuntimeService from "../document-handler-runtime-service.js";
|
|
4
|
+
import { DocumentHandlerServer } from "../document-handler-server.js";
|
|
5
|
+
import { UserCliConfig } from "../../../helpers/cli-config.js";
|
|
6
6
|
export default class DocumentHandlerRuntimeServiceFactory {
|
|
7
7
|
private readonly context;
|
|
8
8
|
private cliConfig;
|