@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.
Files changed (385) hide show
  1. package/README.md +775 -0
  2. package/bin/dev +18 -0
  3. package/bin/dev.cmd +3 -0
  4. package/bin/run +4 -0
  5. package/bin/run.cmd +3 -0
  6. package/dist/commands/airports_iata.json +1 -0
  7. package/dist/commands/build-parameter-query.d.ts +15 -0
  8. package/dist/commands/build-parameter-query.js +95 -0
  9. package/dist/commands/build-prewarm-query.d.ts +15 -0
  10. package/dist/commands/build-prewarm-query.js +69 -0
  11. package/dist/commands/deploy.d.ts +17 -0
  12. package/dist/commands/deploy.js +39 -0
  13. package/dist/commands/document-handler.d.ts +16 -0
  14. package/dist/commands/document-handler.js +36 -0
  15. package/dist/commands/find-pops.d.ts +17 -0
  16. package/dist/commands/find-pops.js +84 -0
  17. package/dist/commands/generate-customer-config.d.ts +10 -0
  18. package/dist/commands/generate-customer-config.js +29 -0
  19. package/dist/commands/generate-pop-config.d.ts +27 -0
  20. package/dist/commands/generate-pop-config.js +231 -0
  21. package/dist/commands/login.d.ts +10 -0
  22. package/dist/commands/login.js +35 -0
  23. package/dist/commands/onboarding.d.ts +16 -0
  24. package/dist/commands/onboarding.js +25 -0
  25. package/dist/commands/param-diff.d.ts +16 -0
  26. package/dist/commands/param-diff.js +111 -0
  27. package/dist/commands/pop-prewarm.d.ts +17 -0
  28. package/dist/commands/pop-prewarm.js +80 -0
  29. package/dist/commands/prewarm.d.ts +40 -0
  30. package/dist/commands/prewarm.js +127 -0
  31. package/dist/commands/pull.d.ts +14 -0
  32. package/dist/commands/pull.js +24 -0
  33. package/dist/commands/wpt-launcher.d.ts +21 -0
  34. package/dist/commands/wpt-launcher.js +79 -0
  35. package/dist/helpers/CustomerConfig.d.ts +51 -0
  36. package/dist/helpers/CustomerConfig.js +150 -0
  37. package/dist/helpers/build-query-helper.d.ts +32 -0
  38. package/dist/helpers/build-query-helper.js +216 -0
  39. package/dist/helpers/cli-config.d.ts +22 -0
  40. package/dist/helpers/cli-config.js +85 -0
  41. package/dist/helpers/file-helper.d.ts +8 -0
  42. package/dist/helpers/file-helper.js +63 -0
  43. package/dist/helpers/get-parsed-config.d.ts +11 -0
  44. package/dist/helpers/get-parsed-config.js +63 -0
  45. package/dist/helpers/getChromePath.d.ts +7 -0
  46. package/dist/helpers/getChromePath.js +27 -0
  47. package/dist/helpers/isDirectory.d.ts +1 -0
  48. package/dist/helpers/isDirectory.js +17 -0
  49. package/dist/helpers/isExecutable.d.ts +1 -0
  50. package/dist/helpers/isExecutable.js +15 -0
  51. package/dist/helpers/isFile.d.ts +1 -0
  52. package/dist/helpers/isFile.js +17 -0
  53. package/dist/helpers/logging-helper.d.ts +12 -0
  54. package/dist/helpers/logging-helper.js +27 -0
  55. package/dist/helpers/normalize.d.ts +40 -0
  56. package/dist/helpers/normalize.js +112 -0
  57. package/dist/helpers/race.d.ts +1 -0
  58. package/dist/helpers/race.js +16 -0
  59. package/dist/helpers/safe.d.ts +10 -0
  60. package/dist/helpers/safe.js +34 -0
  61. package/dist/helpers/scrape.d.ts +1 -0
  62. package/dist/helpers/scrape.js +11 -0
  63. package/dist/helpers/speedKitRuleToRegExp.d.ts +1 -0
  64. package/dist/helpers/speedKitRuleToRegExp.js +10 -0
  65. package/dist/helpers/watchFiles.d.ts +1 -0
  66. package/dist/helpers/watchFiles.js +20 -0
  67. package/dist/models/cli-parameters.d.ts +73 -0
  68. package/dist/models/cli-parameters.js +82 -0
  69. package/dist/models/files.d.ts +20 -0
  70. package/dist/models/files.js +23 -0
  71. package/dist/models/install.d.ts +24 -0
  72. package/dist/models/install.js +2 -0
  73. package/dist/services/athena-service.d.ts +30 -0
  74. package/dist/services/athena-service.js +139 -0
  75. package/dist/services/bundler/bundle-service-factory.d.ts +4 -0
  76. package/dist/services/bundler/bundle-service-factory.js +10 -0
  77. package/dist/services/bundler/bundle-service.d.ts +25 -0
  78. package/dist/services/bundler/bundle-service.js +84 -0
  79. package/dist/services/bundler/index.d.ts +2 -0
  80. package/dist/services/bundler/index.js +5 -0
  81. package/dist/services/cli/cli-service-factory.d.ts +5 -0
  82. package/dist/services/cli/cli-service-factory.js +14 -0
  83. package/dist/services/cli/cli-service-model.d.ts +27 -0
  84. package/dist/services/cli/cli-service-model.js +9 -0
  85. package/dist/services/cli/cli-service.d.ts +37 -0
  86. package/dist/services/cli/cli-service.js +123 -0
  87. package/dist/services/cli/error/cli-type-error.d.ts +3 -0
  88. package/dist/services/cli/error/cli-type-error.js +7 -0
  89. package/dist/services/cli/hooks.d.ts +11 -0
  90. package/dist/services/cli/hooks.js +33 -0
  91. package/dist/services/cli/index.d.ts +3 -0
  92. package/dist/services/cli/index.js +6 -0
  93. package/dist/services/config-api/client.d.ts +16 -0
  94. package/dist/services/config-api/client.js +54 -0
  95. package/dist/services/config-api/config-api-service.d.ts +16 -0
  96. package/dist/services/config-api/config-api-service.js +56 -0
  97. package/dist/services/config-api/context/config-api-context.d.ts +5 -0
  98. package/dist/services/config-api/context/config-api-context.js +9 -0
  99. package/dist/services/config-api/error/json-response-error.d.ts +2 -0
  100. package/dist/services/config-api/error/json-response-error.js +5 -0
  101. package/dist/services/config-api/error/login-error.d.ts +5 -0
  102. package/dist/services/config-api/error/login-error.js +12 -0
  103. package/dist/services/config-api/factory/config-api-service-factory.d.ts +10 -0
  104. package/dist/services/config-api/factory/config-api-service-factory.js +38 -0
  105. package/dist/services/config-api/factory/entity-manager-factory.d.ts +5 -0
  106. package/dist/services/config-api/factory/entity-manager-factory.js +21 -0
  107. package/dist/services/config-api/interface/config-api-context-interface.d.ts +4 -0
  108. package/dist/services/config-api/interface/config-api-context-interface.js +2 -0
  109. package/dist/services/config-api/interface/request-extension-interface.d.ts +5 -0
  110. package/dist/services/config-api/interface/request-extension-interface.js +2 -0
  111. package/dist/services/config-api-service.d.ts +18 -0
  112. package/dist/services/config-api-service.js +96 -0
  113. package/dist/services/context/app-context.d.ts +1 -0
  114. package/dist/services/context/app-context.js +2 -0
  115. package/dist/services/context/error/context-runtime-error.d.ts +3 -0
  116. package/dist/services/context/error/context-runtime-error.js +7 -0
  117. package/dist/services/context/interface/context-interface.d.ts +2 -0
  118. package/dist/services/context/interface/context-interface.js +2 -0
  119. package/dist/services/customer-config/customer-config-service-context.d.ts +5 -0
  120. package/dist/services/customer-config/customer-config-service-context.js +15 -0
  121. package/dist/services/customer-config/customer-config-service-factory.d.ts +8 -0
  122. package/dist/services/customer-config/customer-config-service-factory.js +24 -0
  123. package/dist/services/customer-config/customer-config-service-model.d.ts +39 -0
  124. package/dist/services/customer-config/customer-config-service-model.js +23 -0
  125. package/dist/services/customer-config/customer-config-service.d.ts +27 -0
  126. package/dist/services/customer-config/customer-config-service.js +263 -0
  127. package/dist/services/customer-config/index.d.ts +4 -0
  128. package/dist/services/customer-config/index.js +7 -0
  129. package/dist/services/customer-config/templates/config_SpeedKit.js.hbs +351 -0
  130. package/dist/services/customer-config/templates/config_customer.js.hbs +75 -0
  131. package/dist/services/customer-config/templates/config_documentHandler.js.hbs +162 -0
  132. package/dist/services/customer-config/templates/config_dynamicBlocks.es6.hbs +263 -0
  133. package/dist/services/customer-config/templates/config_dynamicStyles.css.hbs +116 -0
  134. package/dist/services/customer-config/templates/config_loadHandler.js.hbs +394 -0
  135. package/dist/services/customer-config/templates/deploymentDetection.es6.hbs +262 -0
  136. package/dist/services/customer-config/templates/downtimeDetection.js.hbs +110 -0
  137. package/dist/services/deploy/builder/install-resource-builder.d.ts +14 -0
  138. package/dist/services/deploy/builder/install-resource-builder.js +48 -0
  139. package/dist/services/deploy/checks/post-deploy/revalidated-module-check.d.ts +11 -0
  140. package/dist/services/deploy/checks/post-deploy/revalidated-module-check.js +30 -0
  141. package/dist/services/deploy/checks/post-deploy/save-files-check.d.ts +9 -0
  142. package/dist/services/deploy/checks/post-deploy/save-files-check.js +25 -0
  143. package/dist/services/deploy/context/deploy-context.d.ts +12 -0
  144. package/dist/services/deploy/context/deploy-context.js +26 -0
  145. package/dist/services/deploy/deploy-service-factory.d.ts +15 -0
  146. package/dist/services/deploy/deploy-service-factory.js +68 -0
  147. package/dist/services/deploy/deploy-service.d.ts +17 -0
  148. package/dist/services/deploy/deploy-service.js +63 -0
  149. package/dist/services/deploy/error/create-find-temp-directory-error.d.ts +4 -0
  150. package/dist/services/deploy/error/create-find-temp-directory-error.js +10 -0
  151. package/dist/services/deploy/error/deploy-app-error.d.ts +2 -0
  152. package/dist/services/deploy/error/deploy-app-error.js +5 -0
  153. package/dist/services/deploy/error/no-active-installation-error.d.ts +4 -0
  154. package/dist/services/deploy/error/no-active-installation-error.js +10 -0
  155. package/dist/services/deploy/handler/customer-config-handler.d.ts +21 -0
  156. package/dist/services/deploy/handler/customer-config-handler.js +85 -0
  157. package/dist/services/deploy/handler/install-resource-handler.d.ts +25 -0
  158. package/dist/services/deploy/handler/install-resource-handler.js +104 -0
  159. package/dist/services/deploy/handler/install-resource-modifier/deleted-file-check.d.ts +13 -0
  160. package/dist/services/deploy/handler/install-resource-modifier/deleted-file-check.js +51 -0
  161. package/dist/services/deploy/handler/module-handler.d.ts +14 -0
  162. package/dist/services/deploy/handler/module-handler.js +81 -0
  163. package/dist/services/deploy/handler/module-modifier/deployment-detection-modifier.d.ts +9 -0
  164. package/dist/services/deploy/handler/module-modifier/deployment-detection-modifier.js +24 -0
  165. package/dist/services/deploy/handler/server-config-handler.d.ts +12 -0
  166. package/dist/services/deploy/handler/server-config-handler.js +63 -0
  167. package/dist/services/deploy/interface/deploy-handler-interface.d.ts +6 -0
  168. package/dist/services/deploy/interface/deploy-handler-interface.js +2 -0
  169. package/dist/services/deploy/interface/install-configs.d.ts +11 -0
  170. package/dist/services/deploy/interface/install-configs.js +2 -0
  171. package/dist/services/deploy/interface/install-resource-processor-interface.d.ts +5 -0
  172. package/dist/services/deploy/interface/install-resource-processor-interface.js +2 -0
  173. package/dist/services/deploy/interface/install.d.ts +14 -0
  174. package/dist/services/deploy/interface/install.js +2 -0
  175. package/dist/services/deploy/interface/post-deploy-check-interface.d.ts +3 -0
  176. package/dist/services/deploy/interface/post-deploy-check-interface.js +2 -0
  177. package/dist/services/deploy/interface/runtime-modifier.d.ts +6 -0
  178. package/dist/services/deploy/interface/runtime-modifier.js +2 -0
  179. package/dist/services/deploy/interface/validate-origins-response.d.ts +4 -0
  180. package/dist/services/deploy/interface/validate-origins-response.js +2 -0
  181. package/dist/services/diff/diff-model.d.ts +5 -0
  182. package/dist/services/diff/diff-model.js +12 -0
  183. package/dist/services/diff/diff-service-factory.d.ts +7 -0
  184. package/dist/services/diff/diff-service-factory.js +20 -0
  185. package/dist/services/diff/diff-service.d.ts +34 -0
  186. package/dist/services/diff/diff-service.js +134 -0
  187. package/dist/services/diff/index.d.ts +3 -0
  188. package/dist/services/diff/index.js +6 -0
  189. package/dist/services/diff-service.d.ts +24 -0
  190. package/dist/services/diff-service.js +112 -0
  191. package/dist/services/document-handler-runtime/context/document-handler-runtime-context.d.ts +23 -0
  192. package/dist/services/document-handler-runtime/context/document-handler-runtime-context.js +41 -0
  193. package/dist/services/document-handler-runtime/document-handler-runtime-service.d.ts +32 -0
  194. package/dist/services/document-handler-runtime/document-handler-runtime-service.js +220 -0
  195. package/dist/services/document-handler-runtime/document-handler-server.d.ts +42 -0
  196. package/dist/services/document-handler-runtime/document-handler-server.js +225 -0
  197. package/dist/services/document-handler-runtime/error/handler/required-file-not-found-handler.d.ts +6 -0
  198. package/dist/services/document-handler-runtime/error/handler/required-file-not-found-handler.js +14 -0
  199. package/dist/services/document-handler-runtime/error/required-file-not-found-error.d.ts +3 -0
  200. package/dist/services/document-handler-runtime/error/required-file-not-found-error.js +7 -0
  201. package/dist/services/document-handler-runtime/factory/document-handler-runtime-service-factory.d.ts +24 -0
  202. package/dist/services/document-handler-runtime/factory/document-handler-runtime-service-factory.js +106 -0
  203. package/dist/services/document-handler-runtime/interface/document-handler-runtime-config-interface.d.ts +3 -0
  204. package/dist/services/document-handler-runtime/interface/document-handler-runtime-config-interface.js +6 -0
  205. package/dist/services/document-handler-runtime/interface/template-context-interface.d.ts +3 -0
  206. package/dist/services/document-handler-runtime/interface/template-context-interface.js +2 -0
  207. package/dist/services/document-handler-runtime/interface/template-interface.d.ts +6 -0
  208. package/dist/services/document-handler-runtime/interface/template-interface.js +2 -0
  209. package/dist/services/document-handler-runtime/interface/template-param-interface.d.ts +4 -0
  210. package/dist/services/document-handler-runtime/interface/template-param-interface.js +2 -0
  211. package/dist/services/document-handler-runtime/templates/abstract-template.d.ts +9 -0
  212. package/dist/services/document-handler-runtime/templates/abstract-template.js +18 -0
  213. package/dist/services/document-handler-runtime/templates/database-mock.d.ts +6 -0
  214. package/dist/services/document-handler-runtime/templates/database-mock.js +111 -0
  215. package/dist/services/document-handler-runtime/templates/execute-document-handler.d.ts +6 -0
  216. package/dist/services/document-handler-runtime/templates/execute-document-handler.js +76 -0
  217. package/dist/services/document-handler-runtime/templates/orestes-mock.d.ts +9 -0
  218. package/dist/services/document-handler-runtime/templates/orestes-mock.js +168 -0
  219. package/dist/services/document-handler-runtime/templates/package-json.d.ts +8 -0
  220. package/dist/services/document-handler-runtime/templates/package-json.js +21 -0
  221. package/dist/services/document-handler-runtime/templates/test.d.ts +6 -0
  222. package/dist/services/document-handler-runtime/templates/test.js +63 -0
  223. package/dist/services/error-handling/abstract/abstract-async-error-handling-factory.d.ts +6 -0
  224. package/dist/services/error-handling/abstract/abstract-async-error-handling-factory.js +19 -0
  225. package/dist/services/error-handling/abstract/abstract-async-error-handling-service.d.ts +6 -0
  226. package/dist/services/error-handling/abstract/abstract-async-error-handling-service.js +18 -0
  227. package/dist/services/error-handling/abstract/abstract-error-handling-factory.d.ts +6 -0
  228. package/dist/services/error-handling/abstract/abstract-error-handling-factory.js +19 -0
  229. package/dist/services/error-handling/abstract/abstract-error-handling-service.d.ts +6 -0
  230. package/dist/services/error-handling/abstract/abstract-error-handling-service.js +19 -0
  231. package/dist/services/error-handling/error/application-error.d.ts +5 -0
  232. package/dist/services/error-handling/error/application-error.js +11 -0
  233. package/dist/services/error-handling/error/handler/default-error-handler.d.ts +5 -0
  234. package/dist/services/error-handling/error/handler/default-error-handler.js +13 -0
  235. package/dist/services/error-handling/error-handling-service.d.ts +7 -0
  236. package/dist/services/error-handling/error-handling-service.js +27 -0
  237. package/dist/services/error-handling/factory/error-handling-factory.d.ts +8 -0
  238. package/dist/services/error-handling/factory/error-handling-factory.js +21 -0
  239. package/dist/services/error-handling/interface/error-context-interface.d.ts +6 -0
  240. package/dist/services/error-handling/interface/error-context-interface.js +2 -0
  241. package/dist/services/error-handling/interface/error-handler-interface.d.ts +5 -0
  242. package/dist/services/error-handling/interface/error-handler-interface.js +2 -0
  243. package/dist/services/error-handling/interface/error-handling-factory-interface.d.ts +8 -0
  244. package/dist/services/error-handling/interface/error-handling-factory-interface.js +2 -0
  245. package/dist/services/error-handling/interface/error-handling-service-interface.d.ts +8 -0
  246. package/dist/services/error-handling/interface/error-handling-service-interface.js +2 -0
  247. package/dist/services/integration-api/context/integration-api-context.d.ts +9 -0
  248. package/dist/services/integration-api/context/integration-api-context.js +20 -0
  249. package/dist/services/integration-api/error/customer-config-error.d.ts +2 -0
  250. package/dist/services/integration-api/error/customer-config-error.js +5 -0
  251. package/dist/services/integration-api/error/customer-config-legacy-error.d.ts +3 -0
  252. package/dist/services/integration-api/error/customer-config-legacy-error.js +7 -0
  253. package/dist/services/integration-api/error/handler/customer-config-handler.d.ts +5 -0
  254. package/dist/services/integration-api/error/handler/customer-config-handler.js +19 -0
  255. package/dist/services/integration-api/error/handler/customer-config-legacy-handler.d.ts +6 -0
  256. package/dist/services/integration-api/error/handler/customer-config-legacy-handler.js +24 -0
  257. package/dist/services/integration-api/error/handler/origin-handler.d.ts +6 -0
  258. package/dist/services/integration-api/error/handler/origin-handler.js +22 -0
  259. package/dist/services/integration-api/error/load-customer-error.d.ts +4 -0
  260. package/dist/services/integration-api/error/load-customer-error.js +10 -0
  261. package/dist/services/integration-api/error/mandatory-file-missing-error.d.ts +3 -0
  262. package/dist/services/integration-api/error/mandatory-file-missing-error.js +8 -0
  263. package/dist/services/integration-api/error/origin-error.d.ts +3 -0
  264. package/dist/services/integration-api/error/origin-error.js +7 -0
  265. package/dist/services/integration-api/external/external-file-reader.d.ts +4 -0
  266. package/dist/services/integration-api/external/external-file-reader.js +17 -0
  267. package/dist/services/integration-api/factory/integration-api-service-factory.d.ts +13 -0
  268. package/dist/services/integration-api/factory/integration-api-service-factory.js +55 -0
  269. package/dist/services/integration-api/file-list.d.ts +18 -0
  270. package/dist/services/integration-api/file-list.js +79 -0
  271. package/dist/services/integration-api/file-reader.d.ts +15 -0
  272. package/dist/services/integration-api/file-reader.js +97 -0
  273. package/dist/services/integration-api/file-writer.d.ts +9 -0
  274. package/dist/services/integration-api/file-writer.js +27 -0
  275. package/dist/services/integration-api/handler/customer-config-handler.d.ts +16 -0
  276. package/dist/services/integration-api/handler/customer-config-handler.js +55 -0
  277. package/dist/services/integration-api/handler/file-handler.d.ts +9 -0
  278. package/dist/services/integration-api/handler/file-handler.js +20 -0
  279. package/dist/services/integration-api/handler/install-resource-handler.d.ts +33 -0
  280. package/dist/services/integration-api/handler/install-resource-handler.js +67 -0
  281. package/dist/services/integration-api/handler/module-handler.d.ts +12 -0
  282. package/dist/services/integration-api/handler/module-handler.js +20 -0
  283. package/dist/services/integration-api/handler/server-config-handler.d.ts +8 -0
  284. package/dist/services/integration-api/handler/server-config-handler.js +21 -0
  285. package/dist/services/integration-api/integration-api-model.d.ts +89 -0
  286. package/dist/services/integration-api/integration-api-model.js +2 -0
  287. package/dist/services/integration-api/integration-api-service.d.ts +21 -0
  288. package/dist/services/integration-api/integration-api-service.js +76 -0
  289. package/dist/services/integration-api/struct/customer-config-file.d.ts +10 -0
  290. package/dist/services/integration-api/struct/customer-config-file.js +32 -0
  291. package/dist/services/integration-api/struct/customer-config.d.ts +22 -0
  292. package/dist/services/integration-api/struct/customer-config.js +67 -0
  293. package/dist/services/integration-api/struct/file.d.ts +19 -0
  294. package/dist/services/integration-api/struct/file.js +61 -0
  295. package/dist/services/integration-api/struct/install-resource-file.d.ts +6 -0
  296. package/dist/services/integration-api/struct/install-resource-file.js +12 -0
  297. package/dist/services/integration-api/struct/module-file.d.ts +5 -0
  298. package/dist/services/integration-api/struct/module-file.js +10 -0
  299. package/dist/services/integration-api/struct/ro-file.d.ts +13 -0
  300. package/dist/services/integration-api/struct/ro-file.js +26 -0
  301. package/dist/services/integration-api/struct/server-config-file.d.ts +9 -0
  302. package/dist/services/integration-api/struct/server-config-file.js +22 -0
  303. package/dist/services/integration-api/struct/virtual-file.d.ts +14 -0
  304. package/dist/services/integration-api/struct/virtual-file.js +28 -0
  305. package/dist/services/integration-api/validator/customer-config-validator.d.ts +5 -0
  306. package/dist/services/integration-api/validator/customer-config-validator.js +23 -0
  307. package/dist/services/integration-api/validator/mandatory-files-validator.d.ts +7 -0
  308. package/dist/services/integration-api/validator/mandatory-files-validator.js +39 -0
  309. package/dist/services/integration-api/virtual/external-recipe.d.ts +9 -0
  310. package/dist/services/integration-api/virtual/external-recipe.js +19 -0
  311. package/dist/services/integration-api/virtual/virtual-file-handler.d.ts +7 -0
  312. package/dist/services/integration-api/virtual/virtual-file-handler.js +38 -0
  313. package/dist/services/onboarding/browser/abort-response.d.ts +5 -0
  314. package/dist/services/onboarding/browser/abort-response.js +10 -0
  315. package/dist/services/onboarding/browser/baqend-response.d.ts +12 -0
  316. package/dist/services/onboarding/browser/baqend-response.js +52 -0
  317. package/dist/services/onboarding/browser/origin-response.d.ts +8 -0
  318. package/dist/services/onboarding/browser/origin-response.js +20 -0
  319. package/dist/services/onboarding/config-renderer/install-file-recipe.d.ts +7 -0
  320. package/dist/services/onboarding/config-renderer/install-file-recipe.js +13 -0
  321. package/dist/services/onboarding/config-renderer/speed-kit-install-context.d.ts +22 -0
  322. package/dist/services/onboarding/config-renderer/speed-kit-install-context.js +78 -0
  323. package/dist/services/onboarding/dashboard/athena-service.d.ts +11 -0
  324. package/dist/services/onboarding/dashboard/athena-service.js +70 -0
  325. package/dist/services/onboarding/dashboard/frontend-dist/assets/index-87b53ed4.css +1 -0
  326. package/dist/services/onboarding/dashboard/frontend-dist/assets/main-274b5625.js +9 -0
  327. package/dist/services/onboarding/dashboard/frontend-dist/index.html +18 -0
  328. package/dist/services/onboarding/dashboard/index.d.ts +16 -0
  329. package/dist/services/onboarding/dashboard/index.js +78 -0
  330. package/dist/services/onboarding/dashboard/param-query-builder.d.ts +9 -0
  331. package/dist/services/onboarding/dashboard/param-query-builder.js +67 -0
  332. package/dist/services/onboarding/dashboard/request-diff-service.d.ts +11 -0
  333. package/dist/services/onboarding/dashboard/request-diff-service.js +59 -0
  334. package/dist/services/onboarding/error/vm-error.d.ts +2 -0
  335. package/dist/services/onboarding/error/vm-error.js +6 -0
  336. package/dist/services/onboarding/fetch-event-handler.d.ts +19 -0
  337. package/dist/services/onboarding/fetch-event-handler.js +155 -0
  338. package/dist/services/onboarding/fetch-events/customer-domain-document-response.d.ts +24 -0
  339. package/dist/services/onboarding/fetch-events/customer-domain-document-response.js +118 -0
  340. package/dist/services/onboarding/fetch-events/customer-service-worker-js.d.ts +14 -0
  341. package/dist/services/onboarding/fetch-events/customer-service-worker-js.js +30 -0
  342. package/dist/services/onboarding/fetch-events/dashboard-request.d.ts +15 -0
  343. package/dist/services/onboarding/fetch-events/dashboard-request.js +29 -0
  344. package/dist/services/onboarding/fetch-events/speed-kit-asset-request.d.ts +26 -0
  345. package/dist/services/onboarding/fetch-events/speed-kit-asset-request.js +138 -0
  346. package/dist/services/onboarding/fetch-events/speed-kit-install-html.d.ts +15 -0
  347. package/dist/services/onboarding/fetch-events/speed-kit-install-html.js +49 -0
  348. package/dist/services/onboarding/fetch-events/speed-kit-install-js.d.ts +22 -0
  349. package/dist/services/onboarding/fetch-events/speed-kit-install-js.js +62 -0
  350. package/dist/services/onboarding/fetch-events/speed-kit-rum-pi-request.d.ts +21 -0
  351. package/dist/services/onboarding/fetch-events/speed-kit-rum-pi-request.js +43 -0
  352. package/dist/services/onboarding/fetch-events/speed-kit-service-worker-js.d.ts +17 -0
  353. package/dist/services/onboarding/fetch-events/speed-kit-service-worker-js.js +27 -0
  354. package/dist/services/onboarding/file-events/fileWatcher.d.ts +28 -0
  355. package/dist/services/onboarding/file-events/fileWatcher.js +133 -0
  356. package/dist/services/onboarding/index.d.ts +3 -0
  357. package/dist/services/onboarding/index.js +8 -0
  358. package/dist/services/onboarding/onboarding-model.d.ts +30 -0
  359. package/dist/services/onboarding/onboarding-model.js +53 -0
  360. package/dist/services/onboarding/onboarding-service-factory.d.ts +16 -0
  361. package/dist/services/onboarding/onboarding-service-factory.js +163 -0
  362. package/dist/services/onboarding/onboarding-service.d.ts +31 -0
  363. package/dist/services/onboarding/onboarding-service.js +130 -0
  364. package/dist/services/onboarding/request-cache/cache.d.ts +15 -0
  365. package/dist/services/onboarding/request-cache/cache.js +32 -0
  366. package/dist/services/onboarding/templates/install-speed-kit-html-template.d.ts +4 -0
  367. package/dist/services/onboarding/templates/install-speed-kit-html-template.js +264 -0
  368. package/dist/services/onboarding/templates/install-speed-kit-js-template.d.ts +4 -0
  369. package/dist/services/onboarding/templates/install-speed-kit-js-template.js +41 -0
  370. package/dist/services/onboarding/todo-collector.d.ts +18 -0
  371. package/dist/services/onboarding/todo-collector.js +48 -0
  372. package/dist/services/prewarm-service.d.ts +5 -0
  373. package/dist/services/prewarm-service.js +57 -0
  374. package/dist/services/pull/index.d.ts +3 -0
  375. package/dist/services/pull/index.js +6 -0
  376. package/dist/services/pull/pull-service-factory.d.ts +12 -0
  377. package/dist/services/pull/pull-service-factory.js +44 -0
  378. package/dist/services/pull/pull-service-model.d.ts +43 -0
  379. package/dist/services/pull/pull-service-model.js +27 -0
  380. package/dist/services/pull/pull-service.d.ts +18 -0
  381. package/dist/services/pull/pull-service.js +106 -0
  382. package/dist/templates/pops.js +97 -0
  383. package/dist/templates/speedKit.Revalidated.js +86 -0
  384. package/oclif.manifest.json +700 -0
  385. package/package.json +128 -0
@@ -0,0 +1,163 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OnboardingServiceFactory = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const onboarding_service_1 = require("./onboarding-service");
6
+ const integration_api_context_1 = tslib_1.__importDefault(require("../integration-api/context/integration-api-context"));
7
+ const integration_api_service_factory_1 = tslib_1.__importDefault(require("../integration-api/factory/integration-api-service-factory"));
8
+ const onboarding_model_1 = require("./onboarding-model");
9
+ const fetch_event_handler_1 = require("./fetch-event-handler");
10
+ const speed_kit_install_html_1 = require("./fetch-events/speed-kit-install-html");
11
+ const customer_domain_document_response_1 = require("./fetch-events/customer-domain-document-response");
12
+ const speed_kit_install_context_1 = require("./config-renderer/speed-kit-install-context");
13
+ const install_speed_kit_js_template_1 = require("./templates/install-speed-kit-js-template");
14
+ const bundler_1 = require("../bundler");
15
+ const speed_kit_install_js_1 = require("./fetch-events/speed-kit-install-js");
16
+ const speed_kit_service_worker_js_1 = require("./fetch-events/speed-kit-service-worker-js");
17
+ const customer_service_worker_js_1 = require("./fetch-events/customer-service-worker-js");
18
+ const fileWatcher_1 = require("./file-events/fileWatcher");
19
+ const cli_1 = require("../cli");
20
+ const install_speed_kit_html_template_1 = require("./templates/install-speed-kit-html-template");
21
+ const config_api_context_1 = tslib_1.__importDefault(require("../config-api/context/config-api-context"));
22
+ const config_api_service_factory_1 = tslib_1.__importDefault(require("../config-api/factory/config-api-service-factory"));
23
+ const speed_kit_asset_request_1 = require("./fetch-events/speed-kit-asset-request");
24
+ const document_handler_runtime_service_factory_1 = tslib_1.__importDefault(require("../document-handler-runtime/factory/document-handler-runtime-service-factory"));
25
+ const cache_1 = require("./request-cache/cache");
26
+ const todo_collector_1 = require("./todo-collector");
27
+ const dashboard_request_1 = require("./fetch-events/dashboard-request");
28
+ const dashboard_1 = require("./dashboard");
29
+ const param_query_builder_1 = require("./dashboard/param-query-builder");
30
+ const athena_service_1 = require("./dashboard/athena-service");
31
+ const client_athena_1 = require("@aws-sdk/client-athena");
32
+ const diff_1 = require("../diff");
33
+ const request_diff_service_1 = require("./dashboard/request-diff-service");
34
+ const safe_1 = require("../../helpers/safe");
35
+ const vm = tslib_1.__importStar(require("vm"));
36
+ const external_recipe_1 = require("../integration-api/virtual/external-recipe");
37
+ const external_file_reader_1 = require("../integration-api/external/external-file-reader");
38
+ const virtual_file_1 = require("../integration-api/struct/virtual-file");
39
+ const install_file_recipe_1 = require("./config-renderer/install-file-recipe");
40
+ const files_1 = require("../../models/files");
41
+ const speed_kit_rum_pi_request_1 = require("./fetch-events/speed-kit-rum-pi-request");
42
+ class OnboardingServiceFactory {
43
+ context;
44
+ cliConfig;
45
+ constructor(context, cliConfig) {
46
+ this.context = context;
47
+ this.cliConfig = cliConfig;
48
+ }
49
+ async getService() {
50
+ const files = await this.getIntegrationFiles();
51
+ const cli = new cli_1.CliServiceFactory().getService();
52
+ const customerConfig = files.getCustomerConfig().config;
53
+ const domainToStart = await this.getUrlForTest(customerConfig, cli);
54
+ const cache = new cache_1.Cache(cli);
55
+ const documentHandlerContext = {
56
+ configName: this.context.configName,
57
+ customerPath: this.context.customerPath,
58
+ fileDependencies: [],
59
+ requiredFiles: [],
60
+ verboseLevel: this.context.verboseLevel
61
+ };
62
+ const documentHandler = await new document_handler_runtime_service_factory_1.default(documentHandlerContext, this.cliConfig, files).buildDocumentHandlerServer();
63
+ const bundler = new bundler_1.BundleServiceFactory().buildService();
64
+ const skTemplate = new install_speed_kit_js_template_1.InstallSpeedKitJsTemplate();
65
+ const speedKitInstallContext = new speed_kit_install_context_1.SpeedKitInstallContext(customerConfig, this.context.configName, files, bundler, skTemplate, this.context.local);
66
+ await this.buildInstallResource(speedKitInstallContext, files, cli);
67
+ const browserContext = new onboarding_model_1.BrowserContext(domainToStart, customerConfig.chromeFlags || []);
68
+ const fileWatcher = new fileWatcher_1.FileWatcher(cli, customerConfig, files, documentHandler, browserContext, cache);
69
+ const fetchHandler = await this.getFetchEventHandler(files, customerConfig, documentHandler, cache, cli, browserContext);
70
+ const fileTodoCollector = new todo_collector_1.TodoCollector(files.getInstallResources());
71
+ return new onboarding_service_1.OnboardingService(browserContext, customerConfig, fetchHandler, fileWatcher, cli, fileTodoCollector);
72
+ }
73
+ async getUrlForTest(customerConfig, cli) {
74
+ let domainToStart = customerConfig.origins[0];
75
+ if (customerConfig.origins.length > 1) {
76
+ domainToStart = await cli.select('select domain to start', customerConfig.origins.map((origin) => {
77
+ return { name: origin, value: origin };
78
+ }));
79
+ }
80
+ return domainToStart;
81
+ }
82
+ async buildInstallResource(speedKitInstallContext, files, cli) {
83
+ cli.startAction('build file install_resource');
84
+ const installResourceFile = new virtual_file_1.VirtualFile(files_1.INTEGRATION_FILES.BUILD.INSTALL, new install_file_recipe_1.InstallFileRecipe(speedKitInstallContext));
85
+ const result = await (0, safe_1.safe)(installResourceFile.buildContent());
86
+ if (result.success === true) {
87
+ files.addFile(installResourceFile);
88
+ cli.endAction(cli_1.CliActionStatus.COMPLETED);
89
+ return;
90
+ }
91
+ cli.endAction(cli_1.CliActionStatus.FAILED);
92
+ cli.writeError(result.error);
93
+ }
94
+ async getFetchEventHandler(files, customerConfig, documentHandler, cache, cli, browserContext) {
95
+ const configApi = this.getConfigApi(customerConfig.app);
96
+ const paramQueryBuilder = new param_query_builder_1.ParamQueryBuilder(customerConfig, files.getByName(files_1.INTEGRATION_FILES.CONFIG.SPEED_KIT));
97
+ const DiffService = new diff_1.DiffServiceFactory(new diff_1.DiffContext(this.cliConfig.diffExec, this.cliConfig.diffExecTemplate)).getService();
98
+ const requestDiffService = new request_diff_service_1.RequestDiffService(DiffService);
99
+ const handlers = [
100
+ new customer_domain_document_response_1.CustomerDomainDocumentResponse(customerConfig, files.getByName(files_1.INTEGRATION_FILES.CONFIG.DYNAMIC_BLOCKS), files.getByName(files_1.INTEGRATION_FILES.CONFIG.DYNAMIC_STYLES)),
101
+ new speed_kit_install_html_1.SpeedKitInstallHtml(customerConfig, browserContext, new install_speed_kit_html_template_1.InstallSpeedKitHtmlTemplate()),
102
+ new speed_kit_install_js_1.SpeedKitInstallJs(customerConfig, files.getByName(files_1.INTEGRATION_FILES.BUILD.INSTALL)),
103
+ new customer_service_worker_js_1.CustomerServiceWorkerJs(customerConfig),
104
+ new speed_kit_service_worker_js_1.SpeedKitServiceWorkerJs(customerConfig, files.getByName(files_1.INTEGRATION_FILES.CUSTOM.SW)),
105
+ ];
106
+ if (this.context.local) {
107
+ handlers.push(new speed_kit_asset_request_1.SpeedKitAssetRequest(customerConfig, documentHandler, cache, cli));
108
+ handlers.push(new speed_kit_rum_pi_request_1.SpeedKitRumPiRequest(customerConfig, cache, cli));
109
+ }
110
+ const athenaClient = await this.getAthenaClient(cli);
111
+ if (athenaClient) {
112
+ handlers.push(new dashboard_request_1.DashboardRequest(new dashboard_1.Dashboard(customerConfig, paramQueryBuilder, athenaClient, requestDiffService, cache)));
113
+ browserContext.startParameterDashboard = true;
114
+ }
115
+ return new fetch_event_handler_1.FetchEventHandler(handlers, customerConfig, cli, configApi);
116
+ }
117
+ async getIntegrationFiles() {
118
+ const integrationApiContext = new integration_api_context_1.default(this.context.customerPath, this.context.configName, []);
119
+ const integrationApi = new integration_api_service_factory_1.default(integrationApiContext, this.cliConfig).buildService();
120
+ const externalFileReader = new external_file_reader_1.ExternalFileReader();
121
+ return await integrationApi.run([
122
+ { name: files_1.INTEGRATION_FILES.CUSTOM.SW, recipe: new external_recipe_1.ExternalRecipe(this.context.DEFAULT_SW_PATH, externalFileReader) },
123
+ {
124
+ name: files_1.INTEGRATION_FILES.CUSTOM.DYNAMIC_FETCHER,
125
+ recipe: new external_recipe_1.ExternalRecipe(this.context.DEFAULT_DF_PATH, externalFileReader)
126
+ },
127
+ {
128
+ name: files_1.INTEGRATION_FILES.CUSTOM.LOADER,
129
+ recipe: new external_recipe_1.ExternalRecipe(this.context.DEFAULT_SNIPPET_PATH, externalFileReader)
130
+ },
131
+ ]);
132
+ }
133
+ getConfigApi(app) {
134
+ const configApiContext = new config_api_context_1.default(app);
135
+ return new config_api_service_factory_1.default(configApiContext).getService();
136
+ }
137
+ async getAthenaClient(cli) {
138
+ const credentials = await this.getCredentials(cli);
139
+ if (!credentials) {
140
+ return;
141
+ }
142
+ const config = {
143
+ region: 'eu-central-1',
144
+ credentials: { accessKeyId: credentials?.accessKeyId, secretAccessKey: credentials?.secretAccessKey },
145
+ };
146
+ return new athena_service_1.AthenaService(new client_athena_1.Athena(config), cli);
147
+ }
148
+ async getCredentials(cli) {
149
+ cli.startAction('fetch athena credentials');
150
+ const configApiContext = new config_api_context_1.default('onboarding');
151
+ const configApi = new config_api_service_factory_1.default(configApiContext).getService();
152
+ const credentialsResult = await (0, safe_1.safe)(configApi.getModule('credentials'));
153
+ if (credentialsResult.success === true) {
154
+ const context = { module: { exports: { AWS_ATHENA: {} } } };
155
+ vm.runInNewContext(credentialsResult.data, context);
156
+ cli.endAction(cli_1.CliActionStatus.COMPLETED);
157
+ return context.module.exports.AWS_ATHENA;
158
+ }
159
+ cli.endAction(cli_1.CliActionStatus.FAILED);
160
+ cli.writeError(credentialsResult.error);
161
+ }
162
+ }
163
+ exports.OnboardingServiceFactory = OnboardingServiceFactory;
@@ -0,0 +1,31 @@
1
+ import CustomerConfig from "../integration-api/struct/customer-config";
2
+ import { BrowserContext } from "./onboarding-model";
3
+ import { FetchEventHandler } from "./fetch-event-handler";
4
+ import { FileWatcher } from "./file-events/fileWatcher";
5
+ import { CliService } from "../cli";
6
+ import { TodoCollector } from "./todo-collector";
7
+ /**
8
+ * Represents the OnboardingService which is responsible for setting up the browser to test a config using Puppeteer.
9
+ */
10
+ export declare class OnboardingService {
11
+ private readonly browserContext;
12
+ private readonly customerConfig;
13
+ private fetchEventHandler;
14
+ private fileWatcher;
15
+ private cli;
16
+ private taskCollector;
17
+ private reinstallOnNextNavigate;
18
+ constructor(browserContext: BrowserContext, customerConfig: CustomerConfig, fetchEventHandler: FetchEventHandler, fileWatcher: FileWatcher, cli: CliService, taskCollector: TodoCollector);
19
+ /**
20
+ * prepare puppeteerBrowser, add eventListeners and start
21
+ */
22
+ run(): Promise<void>;
23
+ private prepareBrowser;
24
+ private preparePage;
25
+ private findPage;
26
+ private prepareCleanState;
27
+ private reinstallSpeedKit;
28
+ private registerFileWatcher;
29
+ private registerReinstallSpeedKitOnNavigate;
30
+ private navigate;
31
+ }
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OnboardingService = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const puppeteer_extra_1 = tslib_1.__importDefault(require("puppeteer-extra"));
6
+ const chalk_1 = tslib_1.__importDefault(require("chalk"));
7
+ const cli_1 = require("../cli");
8
+ const safe_1 = require("../../helpers/safe");
9
+ /**
10
+ * Represents the OnboardingService which is responsible for setting up the browser to test a config using Puppeteer.
11
+ */
12
+ class OnboardingService {
13
+ browserContext;
14
+ customerConfig;
15
+ fetchEventHandler;
16
+ fileWatcher;
17
+ cli;
18
+ taskCollector;
19
+ reinstallOnNextNavigate = false;
20
+ constructor(browserContext, customerConfig, fetchEventHandler, fileWatcher, cli, taskCollector) {
21
+ this.browserContext = browserContext;
22
+ this.customerConfig = customerConfig;
23
+ this.fetchEventHandler = fetchEventHandler;
24
+ this.fileWatcher = fileWatcher;
25
+ this.cli = cli;
26
+ this.taskCollector = taskCollector;
27
+ }
28
+ /**
29
+ * prepare puppeteerBrowser, add eventListeners and start
30
+ */
31
+ async run() {
32
+ this.cli.startAction('prepare browser');
33
+ const browser = await this.prepareBrowser();
34
+ const page = await this.preparePage(browser);
35
+ this.cli.endAction(cli_1.CliActionStatus.COMPLETED);
36
+ if (this.browserContext.startParameterDashboard) {
37
+ await (await browser.newPage()).goto('http://skonboarding.local/');
38
+ }
39
+ await this.navigate(page, `${this.customerConfig.scope}speed-kit-install.html?url=${this.customerConfig.scope}`);
40
+ }
41
+ async prepareBrowser() {
42
+ const browser = await puppeteer_extra_1.default.launch({
43
+ devtools: true,
44
+ defaultViewport: null,
45
+ headless: false,
46
+ executablePath: this.browserContext.chromePath,
47
+ args: this.browserContext.browserArgs,
48
+ });
49
+ for (const target of browser.targets()) {
50
+ if (target.type() === 'browser') {
51
+ await this.fetchEventHandler.handleRequestFetchEvents(target);
52
+ }
53
+ }
54
+ browser.on('disconnected', () => {
55
+ this.cli.writeError('Browser disconnected, shutting down');
56
+ process.exit(-1);
57
+ });
58
+ return browser;
59
+ }
60
+ async preparePage(browser) {
61
+ const page = await this.findPage(browser);
62
+ await this.prepareCleanState(page);
63
+ this.registerFileWatcher(page);
64
+ this.registerReinstallSpeedKitOnNavigate(page);
65
+ // inject open Todos from configFiles
66
+ page.on('framenavigated', async (frame) => {
67
+ const tasks = this.taskCollector.getOpenTasks();
68
+ await (0, safe_1.safe)(page.evaluate(`window.skOnboarding = ${JSON.stringify(tasks)}`));
69
+ });
70
+ return page;
71
+ }
72
+ async findPage(browser) {
73
+ if (!browser)
74
+ throw new Error('Please start a browser first.');
75
+ const [page] = await browser.pages();
76
+ if (page) {
77
+ return page;
78
+ }
79
+ return browser.newPage();
80
+ }
81
+ async prepareCleanState(page) {
82
+ const pageClient = await page.target().createCDPSession();
83
+ pageClient.on('ServiceWorker.workerRegistrationUpdated', ({ registrations }) => {
84
+ for (const registration of registrations) {
85
+ if (registration.isDeleted) {
86
+ this.cli.writeWarning((0, chalk_1.default) `{yellow Unregistered Service Worker} at {bold ${registration.scopeURL}} (${registration.registrationId})`);
87
+ }
88
+ }
89
+ });
90
+ // cleanUp old serviceWorkers
91
+ await pageClient.send("ServiceWorker.enable");
92
+ await pageClient.send("ServiceWorker.unregister", { scopeURL: this.browserContext.domain });
93
+ // clear storage for a clean start
94
+ await pageClient.send('Storage.clearCookies');
95
+ await pageClient.send("Storage.clearDataForOrigin", { origin: this.browserContext.domain, storageTypes: 'all' });
96
+ await pageClient.send("Emulation.clearDeviceMetricsOverride");
97
+ await pageClient.send("Emulation.clearGeolocationOverride");
98
+ }
99
+ async reinstallSpeedKit(page, pathname) {
100
+ const url = new URL(page.url());
101
+ let target = url.href;
102
+ if (!pathname.includes('/speed-kit-install.html')) {
103
+ target = `${this.customerConfig.scope}speed-kit-install.html?url=${encodeURIComponent(target)}`;
104
+ }
105
+ this.reinstallOnNextNavigate = false;
106
+ await this.navigate(page, target);
107
+ }
108
+ registerFileWatcher(page) {
109
+ this.fileWatcher.addCallbackOnFileChange(page, async () => {
110
+ this.reinstallOnNextNavigate = true;
111
+ });
112
+ }
113
+ registerReinstallSpeedKitOnNavigate(page) {
114
+ page.on('framenavigated', async (frame) => {
115
+ if (frame.parentFrame() !== null) {
116
+ return;
117
+ }
118
+ if (this.reinstallOnNextNavigate) {
119
+ const pathName = new URL(frame.url()).pathname;
120
+ await this.reinstallSpeedKit(page, pathName);
121
+ }
122
+ });
123
+ }
124
+ async navigate(page, pathname) {
125
+ const goto = new URL(pathname, `${this.browserContext.domain}`);
126
+ await page.goto(goto.toString());
127
+ await page.bringToFront();
128
+ }
129
+ }
130
+ exports.OnboardingService = OnboardingService;
@@ -0,0 +1,15 @@
1
+ import { BaqendResponse } from "../browser/baqend-response";
2
+ import { CliService } from "../../cli";
3
+ /**
4
+ * This class represents a cache for storing responses from the localDocumentHandler.
5
+ */
6
+ export declare class Cache {
7
+ private cli;
8
+ private inMemoryCache;
9
+ constructor(cli: CliService);
10
+ getAll(): IterableIterator<[string, BaqendResponse]>;
11
+ getEntry(requestUri: string): BaqendResponse | void;
12
+ addEntry(requestUri: string, response: BaqendResponse): void;
13
+ removeEntry(requestUri: string): void;
14
+ clear(): void;
15
+ }
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Cache = void 0;
4
+ /**
5
+ * This class represents a cache for storing responses from the localDocumentHandler.
6
+ */
7
+ class Cache {
8
+ cli;
9
+ inMemoryCache = new Map();
10
+ constructor(cli) {
11
+ this.cli = cli;
12
+ }
13
+ getAll() {
14
+ return this.inMemoryCache.entries();
15
+ }
16
+ getEntry(requestUri) {
17
+ if (this.inMemoryCache.has(requestUri)) {
18
+ return this.inMemoryCache.get(requestUri);
19
+ }
20
+ }
21
+ addEntry(requestUri, response) {
22
+ this.inMemoryCache.set(requestUri, response);
23
+ }
24
+ removeEntry(requestUri) {
25
+ this.inMemoryCache.delete(requestUri);
26
+ }
27
+ clear() {
28
+ this.cli.writeWarning('clear request-caches');
29
+ this.inMemoryCache.clear();
30
+ }
31
+ }
32
+ exports.Cache = Cache;
@@ -0,0 +1,4 @@
1
+ import AbstractTemplate from "../../document-handler-runtime/templates/abstract-template";
2
+ export declare class InstallSpeedKitHtmlTemplate extends AbstractTemplate {
3
+ protected getTemplate(): Handlebars.Template;
4
+ }
@@ -0,0 +1,264 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InstallSpeedKitHtmlTemplate = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const abstract_template_1 = tslib_1.__importDefault(require("../../document-handler-runtime/templates/abstract-template"));
6
+ class InstallSpeedKitHtmlTemplate extends abstract_template_1.default {
7
+ getTemplate() {
8
+ return `
9
+ <!DOCTYPE html>
10
+ <html lang="en">
11
+ <head>
12
+ <meta charset="UTF-8">
13
+ <meta name="viewport"
14
+ content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
15
+ <meta http-equiv="X-UA-Compatible" content="ie=edge">
16
+ <title>Speed Kit Install</title>
17
+ <!-- <link href="{{{domain}}}" as="fetch" crossorigin rel="preload" />-->
18
+ <style>
19
+ @keyframes speed-kit-loading {
20
+ 0% {
21
+ box-shadow:
22
+ 8px 0 #c8c8cd,
23
+ 20px 0 #dddde0,
24
+ 32px 0 #ededee;
25
+ }
26
+ 33% {
27
+ box-shadow:
28
+ 8px 0 #ededee,
29
+ 20px 0 #c8c8cd,
30
+ 32px 0 #dddde0;
31
+ }
32
+ 66% {
33
+ box-shadow:
34
+ 8px 0 #dddde0,
35
+ 20px 0 #ededee,
36
+ 32px 0 #c8c8cd;
37
+ }
38
+ }
39
+ body{
40
+ display: flex;
41
+ flex-direction: column;
42
+ align-items: center;
43
+ justify-content: center;
44
+ min-height: 100vh;
45
+ font-family: ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;
46
+ text-rendering: optimizeLegibility;
47
+ font-synthesis: none;
48
+ hyphens: auto;
49
+ opacity: 0.95;
50
+ }
51
+ aside.loader {
52
+ margin: 20px 0;
53
+ position: relative;
54
+ height: 8px;
55
+ }
56
+ aside.loader:not(.stop)::after {
57
+ content: "";
58
+ width: 8px;
59
+ height: 8px;
60
+ display: block;
61
+ position: absolute;
62
+ top: calc(50% - 4px);
63
+ left: calc(20% - 4px);
64
+ border-radius: 50%;
65
+ box-shadow:
66
+ 8px 0 #c8c8cd,
67
+ 20px 0 #dddde0,
68
+ 32px 0 #ededee;
69
+ will-change: box-shadow;
70
+ animation-name: speed-kit-loading;
71
+ animation-duration: 1.5s;
72
+ animation-iteration-count: infinite;
73
+ animation-fill-mode: both;
74
+ visibility: visible;
75
+ z-index: 1;
76
+ }
77
+ #error {
78
+ background: #ffcccc;
79
+ padding: 10px
80
+ }
81
+ #error:empty {
82
+ visibility: hidden;
83
+ }
84
+ .stages{
85
+ list-style: none;
86
+ padding: 0;
87
+ margin: 0;
88
+ }
89
+ .stages li{
90
+ list-style: none;
91
+ margin-bottom: 0.5rem;
92
+ color: #00000033;
93
+ display: flex;
94
+ align-items: center;
95
+ }
96
+
97
+ .stages li::before{
98
+ content: " ";
99
+ width: 10px;
100
+ height: 10px;
101
+ border-radius: 100%;
102
+ display: inline-block;
103
+ margin-right: 5px;
104
+ background: #E1E8F0;
105
+ }
106
+
107
+ .stages li.error,
108
+ .stages li.loaded,
109
+ .stages li.loading{
110
+ color: inherit;
111
+ }
112
+
113
+ .stages li.loaded::before{
114
+ background: #0568FD;
115
+ }
116
+
117
+ .stages li.error::before{
118
+ background: #af0606;
119
+ }
120
+
121
+ </style>
122
+ <script type="application/javascript">
123
+ function showError(e) {
124
+ if (document.readyState !== 'loading') {
125
+ var error = typeof e === 'string' ? e : e.message + (e.stack ? '\\n\\n' + e.stack : '')
126
+
127
+ document.querySelector('#error').textContent += error + '\\n';
128
+ return;
129
+ }
130
+
131
+ document.addEventListener('DOMContentLoaded', function() {
132
+ showError(e);
133
+ });
134
+ }
135
+
136
+ addEventListener('error', function(event) {
137
+ showError(event.error || event);
138
+ });
139
+
140
+ addEventListener('unhandledrejection', function(event) {
141
+ showError(event.reason || event);
142
+ });
143
+ async function retry(cb, seconds = 10) {
144
+ const retryElement = document.querySelector('[data-retry]')
145
+ retryElement.innerText = Number(retryElement.innerText) + 1
146
+ if (seconds < 0) {
147
+ throw new Error(\`Installation failed.\`);
148
+ }
149
+
150
+ const value = await cb();
151
+ if (value) {
152
+ return value;
153
+ }
154
+
155
+ await new Promise(resolve => setTimeout(resolve, 1000));
156
+ return retry(cb, seconds - 1);
157
+ }
158
+
159
+ function pingServiceWorker(registration, message) {
160
+ return new Promise((resolve, reject) => {
161
+ var msg_chan = new MessageChannel();
162
+ msg_chan.port1.onmessage = (event) => {
163
+ if (!event.data || event.data.applicationState === 'failed') {
164
+ reject(new Error(event.data ? event.data.reason : 'No active Speed Kit detected.'));
165
+ return;
166
+ }
167
+ resolve(event.data);
168
+ };
169
+ msg_chan.port1.onmessageerror = event => {
170
+ reject(new Error(\`Communication with Service Worker failed.\`));
171
+ };
172
+
173
+ registration.active.postMessage(message, [msg_chan.port2]);
174
+ });
175
+ }
176
+
177
+ function stopLoader(){
178
+ document.querySelector('aside.loader').classList.add('stop')
179
+ }
180
+ </script>
181
+ <script type="application/javascript">
182
+ const installScript = document.createElement('script');
183
+ installScript.addEventListener('load',()=>{
184
+ const step1 = document.querySelector('[data-step="1"]')
185
+ step1.classList.remove('loading')
186
+ step1.classList.add('loaded')
187
+
188
+ const step2 = document.querySelector('[data-step="2"]')
189
+ step2.classList.add('loading')
190
+
191
+ waitForInstall().catch(showError);
192
+ })
193
+ installScript.addEventListener('error',(event)=>{
194
+ const step1 = document.querySelector('[data-step="1"]')
195
+ step1.classList.remove('loading')
196
+ step1.classList.add('error')
197
+ showError(new Error('unable to load script: {{{installPath}}}' ))
198
+ })
199
+ installScript.setAttribute('src','{{{installPath}}}')
200
+ document.querySelector('head').appendChild(installScript)
201
+
202
+ // Await registration to be active
203
+ async function waitForInstall() {
204
+ const registration = await retry(async () => await navigator.serviceWorker.getRegistration());
205
+ const step2 = document.querySelector('[data-step="2"]')
206
+ step2.classList.remove('loading')
207
+ step2.classList.add('loaded')
208
+ const step3 = document.querySelector('[data-step="3"]')
209
+ step3.classList.add('loading')
210
+
211
+
212
+ await retry(async () => registration.active);
213
+
214
+ // Ping Service Worker to check whether the application is 'running'
215
+ await pingServiceWorker(registration, {
216
+ type: 'get-navigate-info',
217
+ clientURL: location.href,
218
+ });
219
+
220
+ step3.classList.remove('loading')
221
+ step3.classList.add('loaded')
222
+ const step4 = document.querySelector('[data-step="4"]')
223
+ step4.classList.add('loading')
224
+
225
+ const response = await fetch("{{{domain}}}")
226
+
227
+
228
+ location.href = new URL(location.href).searchParams.get('url') || '/';
229
+
230
+ }
231
+ </script>
232
+ </head>
233
+ <body>
234
+ <main>
235
+ <?xml version="1.0" encoding="UTF-8"?>
236
+ <header>
237
+ <svg width="10.5em" height="2em" viewBox="0 0 127 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
238
+ <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
239
+ <g id="Dark-Mode---Projects" transform="translate(-16.000000, -28.000000)">
240
+ <g id="Group" transform="translate(16.000000, 28.000000)">
241
+ <path d="M35.4096147,19.3755527 C32.9565093,19.3755527 30.7380488,18.3066946 29.4368363,16.3652992 L31.2500012,14.1185159 C32.2739061,15.5800157 33.8097634,16.3652992 35.4309461,16.3652992 C36.7321585,16.3652992 37.6920693,15.6672694 37.6920693,14.6420382 C37.6920693,13.9876353 37.2227796,13.4204861 36.2628688,12.962404 C36.0495552,12.8533369 35.5376028,12.657016 34.7056801,12.3298145 C33.8950888,12.0026131 33.2764796,11.697225 32.8498525,11.4572773 C31.1860072,10.4756729 30.3540845,9.14505363 30.3540845,7.44360603 C30.3540845,6.09117332 30.8447055,4.97868835 31.847279,4.08433769 C32.8498525,3.18998703 34.151065,2.73190498 35.729585,2.73190498 C37.7773947,2.73190498 39.5052341,3.4517482 40.9131033,4.91324806 L39.2279266,7.26909859 C38.3533412,6.30930763 36.945472,5.76397186 35.7722477,5.76397186 C34.5136979,5.76397186 33.7457693,6.37474792 33.7457693,7.31272545 C33.7457693,7.94531494 34.1723963,8.46883728 35.0256504,8.9051059 L36.582839,9.60313568 C37.4574244,9.973964 38.097365,10.2575386 38.5026606,10.4538595 C40.2944941,11.3482101 41.1904109,12.6788294 41.1904109,14.4675307 C41.1904109,15.9072172 40.6571271,17.0851424 39.5905595,18.0013065 C38.523992,18.9174706 37.1374542,19.3755527 35.4096147,19.3755527 Z M49.0474586,6.92008369 C50.6899727,6.92008369 52.0551791,7.53085976 53.143078,8.73059845 C54.230977,9.93033714 54.7642607,11.4136504 54.7642607,13.1587249 C54.7642607,14.9037994 54.2096456,16.3871127 53.1217467,17.5868513 C52.0338478,18.78659 50.6686413,19.3973661 49.0261273,19.3973661 C47.5969267,19.3973661 46.3810397,18.8520303 45.3784662,17.7395454 L45.3784662,24 L42.3707457,24 L42.3707457,7.22547172 L45.3571348,7.22547172 L45.3571348,8.68697159 C46.3597083,7.50904633 47.5755954,6.92008369 49.0474586,6.92008369 Z M48.5141748,16.5834335 C49.4740856,16.5834335 50.2420143,16.2562321 50.8392921,15.6018291 C51.4365699,14.9474262 51.7352089,14.1403293 51.7352089,13.1805383 C51.7352089,12.2207474 51.4365699,11.4136504 50.8392921,10.7592475 C50.2420143,10.1048446 49.4740856,9.77764313 48.5141748,9.77764313 C47.5755954,9.77764313 46.8076667,10.1048446 46.2103889,10.7592475 C45.6131111,11.4136504 45.3144721,12.2207474 45.3144721,13.1805383 C45.3144721,14.1403293 45.6131111,14.9474262 46.2103889,15.6018291 C46.8076667,16.2562321 47.5755954,16.5834335 48.5141748,16.5834335 Z M67.2928744,12.8969637 C67.2928744,13.3114189 67.2502117,13.769501 67.1862176,14.2493964 L58.461695,14.2493964 C58.888322,15.9290306 60.0188836,16.7797544 61.8533798,16.7797544 C63.1119295,16.7797544 64.6051241,16.2780455 65.6076976,15.5800157 L66.8022533,17.7395454 C65.3303901,18.8302169 63.6452133,19.3755527 61.7253917,19.3755527 C59.677582,19.3755527 58.1203933,18.7647766 57.0324944,17.5650379 C55.9445955,16.3652992 55.4113117,14.8819859 55.4113117,13.1587249 C55.4113117,11.3482101 55.9659269,9.86489685 57.0964885,8.68697159 C58.2270501,7.50904633 59.677582,6.92008369 61.4694155,6.92008369 C63.1545922,6.92008369 64.5624614,7.46541946 65.6503603,8.53427757 C66.7382592,9.60313568 67.2928744,11.0428221 67.2928744,12.8969637 Z M61.4694155,9.4722551 C59.9548895,9.4722551 58.8243279,10.4102326 58.461695,11.9589862 L64.3704793,11.9589862 C64.0931717,10.4102326 63.0052728,9.4722551 61.4694155,9.4722551 Z M79.757494,12.8969637 C79.757494,13.3114189 79.7148313,13.769501 79.6508372,14.2493964 L70.9263145,14.2493964 C71.3529416,15.9290306 72.4835032,16.7797544 74.3179994,16.7797544 C75.5765491,16.7797544 77.0697437,16.2780455 78.0723172,15.5800157 L79.2668729,17.7395454 C77.7950097,18.8302169 76.1098329,19.3755527 74.1900113,19.3755527 C72.1422016,19.3755527 70.5850129,18.7647766 69.497114,17.5650379 C68.4092151,16.3652992 67.8759313,14.8819859 67.8759313,13.1587249 C67.8759313,11.3482101 68.4305464,9.86489685 69.5611081,8.68697159 C70.6916697,7.50904633 72.1422016,6.92008369 73.9340351,6.92008369 C75.6192118,6.92008369 77.027081,7.46541946 78.1149799,8.53427757 C79.2028788,9.60313568 79.757494,11.0428221 79.757494,12.8969637 Z M73.9340351,9.4722551 C72.4195091,9.4722551 71.2889475,10.4102326 70.9263145,11.9589862 L76.8350988,11.9589862 C76.5577913,10.4102326 75.4698924,9.4722551 73.9340351,9.4722551 Z M89.6196887,8.59971786 L89.6196887,2.53558411 L92.6274092,2.53558411 L92.6274092,19.1137915 L89.6836828,19.1137915 L89.6836828,17.6522916 C88.7451033,18.8084035 87.5505476,19.3973661 86.0786844,19.3973661 C84.4361703,19.3973661 83.0496325,18.8084035 81.9617336,17.6304782 C80.8738347,16.4307395 80.3192195,14.9474262 80.3192195,13.1587249 C80.3192195,11.391837 80.8738347,9.90852371 81.9617336,8.70878502 C83.0709639,7.50904633 84.4361703,6.92008369 86.0786844,6.92008369 C87.4865536,6.92008369 88.6597779,7.48723289 89.6196887,8.59971786 Z M89.7690082,13.1587249 C89.7690082,12.1989339 89.4703692,11.391837 88.8730914,10.7374341 C88.2758136,10.0612177 87.5078849,9.73401627 86.5479741,9.73401627 C85.5880633,9.73401627 84.8201347,10.0612177 84.2015255,10.7374341 C83.6042476,11.391837 83.3056087,12.1989339 83.3056087,13.1587249 C83.3056087,14.1403293 83.6042476,14.9474262 84.2015255,15.6236426 C84.8201347,16.2780455 85.5880633,16.605247 86.5479741,16.605247 C87.5078849,16.605247 88.2758136,16.2780455 88.8730914,15.6236426 C89.4703692,14.9474262 89.7690082,14.1403293 89.7690082,13.1587249 Z M112.586444,19.1137915 L108.704138,19.1137915 L104.331211,12.7224563 L102.390058,15.1001202 L102.390058,19.1137915 L99.2330177,19.1137915 L99.2330177,2.99366615 L102.390058,2.99366615 L102.390058,10.6065535 L108.362836,2.99366615 L112.181148,2.99366615 L106.400352,10.3229789 L112.586444,19.1137915 Z M115.6866,5.34951668 C114.982665,6.06935989 113.745447,6.06935989 113.041512,5.34951668 C112.337578,4.62967346 112.337578,3.36449448 113.041512,2.66646469 C113.745447,1.94662147 114.982665,1.94662147 115.6866,2.66646469 C116.390535,3.36449448 116.390535,4.62967346 115.6866,5.34951668 Z M115.857251,7.22547172 L115.857251,19.1137915 L112.84953,19.1137915 L112.84953,7.22547172 L115.857251,7.22547172 Z M125.16483,15.9944709 L126.060747,18.4157617 C125.100836,19.0701646 123.970275,19.3973661 122.6264,19.3973661 C119.959981,19.3973661 118.573443,17.7831722 118.573443,14.7074785 L118.573443,9.79945656 L116.674953,9.79945656 L116.674953,7.22547172 L118.594774,7.22547172 L118.594774,3.01547958 L121.581163,3.01547958 L121.581163,7.22547172 L125.420807,7.22547172 L125.420807,9.79945656 L121.581163,9.79945656 L121.581163,14.5111576 C121.581163,15.9072172 122.135778,16.605247 123.223677,16.605247 C123.799624,16.605247 124.460896,16.4089261 125.16483,15.9944709 Z" id="Speed-Kit-Copy" fill="currentColor"></path>
242
+ <rect id="Rectangle" fill="#E1E8F0" x="2" y="2" width="18" height="18"></rect>
243
+ <path d="M2.49038912,0 L19.3005157,0 C20.6759196,0 21.7909048,1.11920716 21.7909048,2.49981917 L21.7909048,19.3735986 C21.7909048,20.7542106 20.6759196,21.8734177 19.3005157,21.8734177 L2.49038912,21.8734177 C1.11498519,21.8734177 0,20.7542106 0,19.3735986 L0,2.49981917 C0,1.11920716 1.11498519,0 2.49038912,0 Z M17.7859649,6.60953048 C18.2550343,5.21228508 18.2626588,4.1812506 17.9776112,3.89512368 C17.6910562,3.6074836 16.6640983,3.62633997 15.2605367,4.10424692 C15.4752587,4.57457757 15.8204812,5.08180796 16.2894319,5.55253439 C16.7763562,6.04130246 17.3024878,6.3961711 17.7859653,6.60953048 L17.7859649,6.60953048 Z M17.6566156,6.97255379 C17.1096155,6.72729706 16.5419911,6.33531031 16.0258,5.81716458 C15.5265784,5.31605265 15.1449122,4.76665138 14.8993393,4.2343897 C13.6794573,4.69764812 12.2193718,5.48842104 10.7294573,6.69492606 C8.61044292,8.41086441 7.16889973,10.3015425 6.40482771,12.3669604 C6.29657399,12.6595888 6.3681471,12.9887066 6.58803959,13.2094318 L8.68458295,15.3139137 C8.91147219,15.5416621 9.25247263,15.610258 9.54926822,15.4878543 C11.5438752,14.665244 13.4129635,13.2155477 15.1565332,11.1387654 C16.3947984,9.66385603 17.1945249,8.19964934 17.6566156,6.97255372 L17.6566156,6.97255379 Z M13.0328342,8.83040176 C12.4979276,8.2934697 12.4979276,7.42293082 13.0328342,6.88599876 C13.5677408,6.3490667 14.4349957,6.3490667 14.9699023,6.88599876 C15.5048089,7.42293082 15.5048089,8.2934697 14.9699023,8.83040176 C14.4349957,9.36733382 13.5677408,9.36733382 13.0328342,8.83040176 Z M6.28813396,11.7097354 C6.91706308,10.1393016 7.96807373,8.68732633 9.44116591,7.35380954 C8.83840642,7.28602653 8.06766041,7.53868501 7.12892786,8.11178496 C5.96949995,8.81962032 4.90280822,9.78714629 3.92885269,11.0143629 C3.90076223,11.0497578 3.88279104,11.0921552 3.87686326,11.1370156 C3.85881361,11.2736121 3.95449715,11.3990331 4.09057843,11.4171511 L6.28813396,11.7097354 L6.28813396,11.7097354 Z M10.1480664,15.5842838 L10.4395471,17.7901606 C10.4575967,17.9267571 10.5825445,18.022803 10.7186258,18.004685 C10.763317,17.9987347 10.8055544,17.9806955 10.8408158,17.9524987 C12.063403,16.9748552 13.0272792,15.9041244 13.7324444,14.7403062 C14.3033824,13.7980191 14.5550878,13.0243546 14.4875605,12.4193127 C13.1590741,13.8979828 11.7125761,14.9529732 10.1480664,15.5842838 L10.1480664,15.5842838 Z M7.210751,17.2945241 C7.210751,17.2945241 7.32080481,17.1991613 7.35742063,17.1624068 C8.08430269,16.4327724 8.08554776,15.2461963 7.36119708,14.5149185 L7.36026845,14.5139863 C7.35962184,14.5129092 7.35840429,14.511977 7.3573312,14.511038 C6.62910777,13.7800571 5.44413247,13.7800225 4.71596407,14.5109482 C4.69095966,14.5360473 4.66601715,14.5612224 4.64258798,14.5877646 C3.91456404,15.3617005 4.09629487,15.9209856 4.10439121,15.9443585 C4.1150671,15.9760793 4.1403673,15.9998872 4.17210605,16.0098854 C4.20377601,16.0195246 4.2381631,16.0134829 4.26474964,15.9935624 C4.27034209,15.989385 4.78571503,15.6081411 5.1488534,15.8443488 C4.95733404,16.0390377 4.67418228,16.3406756 4.48015904,16.6670536 C4.20173989,17.1361201 4.08131286,17.7997512 4.17347493,18.3577313 C4.17956266,18.3963501 4.20693338,18.427995 4.24412701,18.4398644 C4.28116932,18.4517338 4.32172668,18.4419566 4.34924185,18.4143372 C4.69179199,18.07049 5.09654706,18.0105905 5.56522675,17.9411969 C6.07143713,17.8661965 6.64514911,17.7812739 7.210751,17.2945241 Z M6.89406447,14.9760426 C7.23393124,15.3171963 7.24618105,15.8599177 6.92144279,16.1859243 C6.90434529,16.2030865 6.88710442,16.2177634 6.86996821,16.2323545 C6.58122122,16.4788884 6.30166397,16.5128126 6.03125334,16.5455981 C5.84227357,16.5685446 5.64868061,16.5920811 5.47096196,16.6828739 C5.47615222,16.4806973 5.52758256,16.273614 5.61630247,16.1195019 C5.71649815,15.945828 5.86484736,15.7908657 5.99604629,15.65917 C6.04697594,15.6080475 6.04224945,15.5205532 5.98547016,15.4635589 C5.81242625,15.2898597 5.60034068,15.2888845 5.42592226,15.3443295 C5.45631043,15.249988 5.52081038,15.1270315 5.65365977,14.9854238 C5.66644044,14.9707968 5.67769893,14.959689 5.68876608,14.9485799 C6.01353224,14.622584 6.5541977,14.6348889 6.89406447,14.9760426 Z" id="Shape" fill="#0568FD"></path>
244
+ </g>
245
+ </g>
246
+ </g>
247
+ </svg>
248
+ </header>
249
+ <aside class="loader"></aside>
250
+ <ul class="stages">
251
+ <li data-step="1" class="loading">load installScript [{{{installPath}}}]</li>
252
+ <li data-step="2">wait for serviceWorkerRegistration active retry(<span data-retry="0"></span>)</li>
253
+ <li data-step="3">ping installed serviceWorker [{{{swPath}}}]</li>
254
+ <li data-step="4">redirect to {{domain}}</li>
255
+ </ul>
256
+ <pre id="error"></pre>
257
+ </main>
258
+ </body>
259
+ </html>
260
+
261
+ `;
262
+ }
263
+ }
264
+ exports.InstallSpeedKitHtmlTemplate = InstallSpeedKitHtmlTemplate;
@@ -0,0 +1,4 @@
1
+ import AbstractTemplate from "../../document-handler-runtime/templates/abstract-template";
2
+ export declare class InstallSpeedKitJsTemplate extends AbstractTemplate {
3
+ protected getTemplate(): Handlebars.Template;
4
+ }