@rindo/core 1.8.12 → 2.5.2

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 (608) hide show
  1. package/LICENSE.md +27 -27
  2. package/bin/cli.ts +20 -0
  3. package/bin/rindo +51 -22
  4. package/cli/index.cjs +1263 -0
  5. package/cli/index.d.ts +15 -0
  6. package/cli/index.js +1237 -0
  7. package/cli/package.json +14 -0
  8. package/compiler/lib.d.ts +24 -0
  9. package/compiler/lib.dom.d.ts +20230 -0
  10. package/compiler/lib.dom.iterable.d.ts +351 -0
  11. package/compiler/lib.es2015.collection.d.ts +89 -0
  12. package/compiler/lib.es2015.core.d.ts +517 -0
  13. package/compiler/lib.es2015.d.ts +30 -0
  14. package/compiler/lib.es2015.generator.d.ts +79 -0
  15. package/compiler/lib.es2015.iterable.d.ts +505 -0
  16. package/compiler/lib.es2015.promise.d.ts +150 -0
  17. package/compiler/lib.es2015.proxy.d.ts +41 -0
  18. package/compiler/lib.es2015.reflect.d.ts +123 -0
  19. package/compiler/lib.es2015.symbol.d.ts +48 -0
  20. package/compiler/lib.es2015.symbol.wellknown.d.ts +324 -0
  21. package/compiler/lib.es2016.array.include.d.ts +118 -0
  22. package/compiler/lib.es2016.d.ts +22 -0
  23. package/compiler/lib.es2016.full.d.ts +25 -0
  24. package/compiler/lib.es2017.d.ts +26 -0
  25. package/compiler/lib.es2017.full.d.ts +25 -0
  26. package/compiler/lib.es2017.intl.d.ts +32 -0
  27. package/compiler/lib.es2017.object.d.ts +51 -0
  28. package/compiler/lib.es2017.sharedmemory.d.ts +137 -0
  29. package/compiler/lib.es2017.string.d.ts +47 -0
  30. package/compiler/lib.es2017.typedarrays.d.ts +55 -0
  31. package/compiler/lib.es2018.asyncgenerator.d.ts +79 -0
  32. package/compiler/lib.es2018.asynciterable.d.ts +45 -0
  33. package/compiler/lib.es2018.d.ts +26 -0
  34. package/compiler/lib.es2018.full.d.ts +25 -0
  35. package/compiler/lib.es2018.intl.d.ts +61 -0
  36. package/compiler/lib.es2018.promise.d.ts +32 -0
  37. package/compiler/lib.es2018.regexp.d.ts +39 -0
  38. package/compiler/lib.es2019.array.d.ts +85 -0
  39. package/compiler/lib.es2019.d.ts +25 -0
  40. package/compiler/lib.es2019.full.d.ts +25 -0
  41. package/compiler/lib.es2019.object.d.ts +35 -0
  42. package/compiler/lib.es2019.string.d.ts +33 -0
  43. package/compiler/lib.es2019.symbol.d.ts +26 -0
  44. package/compiler/lib.es2020.bigint.d.ts +728 -0
  45. package/compiler/lib.es2020.d.ts +27 -0
  46. package/compiler/lib.es2020.full.d.ts +25 -0
  47. package/compiler/lib.es2020.intl.d.ts +310 -0
  48. package/compiler/lib.es2020.promise.d.ts +50 -0
  49. package/compiler/lib.es2020.sharedmemory.d.ts +99 -0
  50. package/compiler/lib.es2020.string.d.ts +30 -0
  51. package/compiler/lib.es2020.symbol.wellknown.d.ts +39 -0
  52. package/compiler/lib.es5.d.ts +4435 -0
  53. package/compiler/lib.es6.d.ts +25 -0
  54. package/compiler/lib.esnext.d.ts +25 -0
  55. package/compiler/lib.esnext.full.d.ts +25 -0
  56. package/compiler/lib.esnext.intl.d.ts +32 -0
  57. package/compiler/lib.esnext.promise.d.ts +43 -0
  58. package/compiler/lib.esnext.string.d.ts +35 -0
  59. package/compiler/lib.esnext.weakref.d.ts +75 -0
  60. package/compiler/lib.scripthost.d.ts +327 -0
  61. package/compiler/lib.webworker.d.ts +6042 -0
  62. package/compiler/lib.webworker.importscripts.d.ts +26 -0
  63. package/compiler/lib.webworker.iterable.d.ts +166 -0
  64. package/compiler/package.json +8 -6
  65. package/compiler/rindo.d.ts +95 -0
  66. package/compiler/rindo.js +65051 -6657
  67. package/compiler/rindo.min.js +4 -0
  68. package/dependencies.json +103 -0
  69. package/dev-server/client/app-error.d.ts +18 -0
  70. package/dev-server/client/events.d.ts +6 -0
  71. package/dev-server/client/hmr-components.d.ts +1 -0
  72. package/dev-server/client/hmr-external-styles.d.ts +1 -0
  73. package/dev-server/client/hmr-images.d.ts +1 -0
  74. package/dev-server/client/hmr-inline-styles.d.ts +1 -0
  75. package/dev-server/client/hmr-util.d.ts +9 -0
  76. package/dev-server/client/hmr-window.d.ts +10 -0
  77. package/dev-server/client/index.d.ts +6 -0
  78. package/dev-server/client/index.js +808 -0
  79. package/dev-server/client/logger.d.ts +5 -0
  80. package/dev-server/client/package.json +8 -0
  81. package/dev-server/client/progress.d.ts +3 -0
  82. package/dev-server/client/status.d.ts +4 -0
  83. package/dev-server/connector.html +6 -0
  84. package/dev-server/index.d.ts +3 -0
  85. package/dev-server/index.js +264 -0
  86. package/dev-server/open-in-editor-api.js +1 -0
  87. package/dev-server/package.json +8 -0
  88. package/dev-server/server-process.js +1738 -0
  89. package/dev-server/server-worker-thread.js +39 -0
  90. package/{dist/dev-server → dev-server}/templates/directory-index.html +132 -132
  91. package/{dist/dev-server → dev-server}/templates/initial-load.html +160 -160
  92. package/dev-server/ws.js +1 -0
  93. package/internal/app-data/index.cjs +90 -0
  94. package/internal/app-data/index.d.ts +4 -0
  95. package/internal/{client/build-conditionals.mjs → app-data/index.js} +25 -21
  96. package/internal/app-data/package.json +15 -0
  97. package/internal/client/css-shim.js +4 -0
  98. package/internal/client/{dom.rindo-client.mjs → dom.js} +73 -137
  99. package/{dist/client/index.mjs → internal/client/index.js} +863 -789
  100. package/internal/client/package.json +8 -0
  101. package/internal/client/patch-browser.js +120 -0
  102. package/internal/client/patch-esm.js +23 -0
  103. package/internal/client/polyfills/core-js.js +11 -10
  104. package/internal/client/polyfills/css-shim.js +1 -656
  105. package/internal/client/polyfills/dom.js +79 -146
  106. package/internal/client/polyfills/es5-html-element.js +1 -18
  107. package/internal/client/polyfills/index.js +34 -35
  108. package/internal/client/{shadow-css.rindo-client.mjs → shadow-css.js} +20 -17
  109. package/internal/hydrate/index.js +1097 -0
  110. package/internal/hydrate/package.json +7 -0
  111. package/internal/hydrate/runner.d.ts +217 -0
  112. package/internal/hydrate/runner.js +777 -0
  113. package/internal/hydrate/shadow-css.js +146 -0
  114. package/internal/index.d.ts +4 -18
  115. package/internal/index.js +1 -1
  116. package/internal/package.json +9 -6
  117. package/internal/rindo-core/index.cjs +1 -0
  118. package/internal/rindo-core/index.d.ts +51 -0
  119. package/internal/rindo-core/index.js +15 -0
  120. package/internal/rindo-ext-modules.d.ts +41 -0
  121. package/internal/rindo-private.d.ts +2128 -0
  122. package/internal/rindo-public-compiler.d.ts +2170 -0
  123. package/{dist/declarations/docs.d.ts → internal/rindo-public-docs.d.ts} +13 -1
  124. package/internal/rindo-public-runtime.d.ts +1555 -0
  125. package/internal/testing/index.js +1055 -0
  126. package/internal/testing/package.json +7 -0
  127. package/internal/testing/shadow-css.js +146 -0
  128. package/mock-doc/index.cjs +4610 -0
  129. package/mock-doc/index.d.ts +916 -0
  130. package/mock-doc/index.js +4574 -2
  131. package/mock-doc/package.json +15 -10
  132. package/package.json +132 -186
  133. package/readme.md +21 -174
  134. package/screenshot/compare/build/app.css +1 -1
  135. package/screenshot/compare/build/app.esm.js +1 -1
  136. package/screenshot/compare/build/app.js +33 -818
  137. package/screenshot/compare/build/{p-113f7459.js → p-081b0641.js} +1 -1
  138. package/screenshot/compare/build/p-227a1e18.entry.js +1 -0
  139. package/screenshot/compare/build/p-2c298727.entry.js +1 -0
  140. package/screenshot/compare/build/p-5479268c.entry.js +1 -0
  141. package/screenshot/compare/build/p-573ec8a4.entry.js +1 -0
  142. package/screenshot/compare/build/p-6ba08604.entry.js +1 -0
  143. package/screenshot/compare/build/p-6bc63295.entry.js +1 -0
  144. package/screenshot/compare/build/p-7a3759fd.entry.js +1 -0
  145. package/screenshot/compare/build/{p-ejpsp3kx.js → p-7b4e3ba7.js} +1 -1
  146. package/screenshot/compare/build/p-988eb362.css +1 -0
  147. package/screenshot/compare/build/p-9b6a9315.js +1 -0
  148. package/screenshot/compare/build/p-b4cc611c.entry.js +1 -0
  149. package/screenshot/compare/build/p-d1bf53f5.entry.js +1 -0
  150. package/screenshot/compare/build/{p-efb0eac6.js → p-e2efe0df.js} +1 -1
  151. package/screenshot/compare/build/p-e8ca6d97.entry.js +1 -0
  152. package/screenshot/compare/build/p-ec2f13e0.entry.js +1 -0
  153. package/screenshot/compare/build/p-f0b99977.entry.js +1 -0
  154. package/screenshot/compare/build/p-f4745c2f.entry.js +1 -0
  155. package/screenshot/compare/build/p-fbbae598.js +1 -0
  156. package/screenshot/compare/host.config.json +14 -14
  157. package/screenshot/compare/index.html +1 -1
  158. package/{dist/screenshot → screenshot}/connector-base.d.ts +1 -1
  159. package/{dist/screenshot → screenshot}/connector-local.d.ts +1 -1
  160. package/screenshot/connector.js +2 -3
  161. package/{dist/screenshot → screenshot}/index.d.ts +1 -1
  162. package/screenshot/index.js +659 -2
  163. package/screenshot/local-connector.js +2 -3
  164. package/screenshot/package.json +15 -13
  165. package/screenshot/pixel-match.js +62 -49
  166. package/screenshot/screenshot-compare.d.ts +3 -0
  167. package/{dist/screenshot → screenshot}/screenshot-fs.d.ts +1 -1
  168. package/sys/deno/index.js +1785 -0
  169. package/sys/deno/node-compat.js +2654 -0
  170. package/sys/deno/worker.js +44 -0
  171. package/sys/node/autoprefixer.js +8 -0
  172. package/sys/node/glob.js +1 -0
  173. package/sys/node/graceful-fs.js +1 -0
  174. package/sys/node/index.d.ts +18 -0
  175. package/sys/node/index.js +1386 -2
  176. package/sys/node/node-fetch.js +1 -0
  177. package/sys/node/package.json +8 -5
  178. package/sys/node/prompts.js +1 -0
  179. package/sys/node/worker.js +52 -0
  180. package/{dist/testing → testing}/index.d.ts +5 -6
  181. package/testing/index.js +4017 -2
  182. package/testing/jest/jest-config.d.ts +5 -0
  183. package/{dist/testing → testing}/jest/jest-environment.d.ts +4 -2
  184. package/{dist/testing → testing}/jest/jest-preprocessor.d.ts +1 -0
  185. package/{dist/testing → testing}/jest/jest-runner.d.ts +1 -1
  186. package/{dist/testing → testing}/jest/jest-screenshot.d.ts +1 -1
  187. package/{dist/testing → testing}/jest/jest-serializer.d.ts +1 -1
  188. package/testing/jest-environment.js +3 -3
  189. package/testing/jest-preprocessor.js +3 -3
  190. package/testing/jest-preset.js +32 -40
  191. package/testing/jest-runner.js +3 -3
  192. package/testing/jest-setuptestframework.js +3 -3
  193. package/{dist/testing → testing}/matchers/events.d.ts +9 -1
  194. package/{dist/testing → testing}/matchers/index.d.ts +3 -1
  195. package/{dist/testing → testing}/matchers/screenshot.d.ts +1 -1
  196. package/testing/mock-fetch.d.ts +11 -0
  197. package/testing/mocks.d.ts +14 -0
  198. package/testing/package.json +8 -6
  199. package/testing/puppeteer/index.d.ts +2 -0
  200. package/{dist/testing → testing}/puppeteer/puppeteer-browser.d.ts +3 -3
  201. package/{dist/testing → testing}/puppeteer/puppeteer-declarations.d.ts +18 -18
  202. package/{dist/testing → testing}/puppeteer/puppeteer-element.d.ts +7 -5
  203. package/testing/puppeteer/puppeteer-emulate.d.ts +2 -0
  204. package/{dist/testing → testing}/puppeteer/puppeteer-events.d.ts +9 -9
  205. package/testing/puppeteer/puppeteer-page.d.ts +2 -0
  206. package/testing/puppeteer/puppeteer-screenshot.d.ts +4 -0
  207. package/testing/reset-build-conditionals.d.ts +2 -0
  208. package/testing/spec-page.d.ts +2 -0
  209. package/testing/test-transpile.d.ts +2 -0
  210. package/{dist/testing → testing}/testing-logger.d.ts +10 -8
  211. package/testing/testing-sys.d.ts +1 -0
  212. package/{dist/testing → testing}/testing-utils.d.ts +3 -2
  213. package/testing/testing.d.ts +2 -0
  214. package/build-conditionals/index.d.ts +0 -2
  215. package/build-conditionals/index.mjs +0 -66
  216. package/build-conditionals/package.json +0 -6
  217. package/compiler/index.js +0 -2
  218. package/dist/cli/index.js +0 -6068
  219. package/dist/client/css-shim-14a9812e.js +0 -656
  220. package/dist/client/css-shim-69821662.js +0 -658
  221. package/dist/client/declarations/rindo.core.d.ts +0 -1347
  222. package/dist/client/dom-68c8fe31.js +0 -139
  223. package/dist/client/dom-af01458a.js +0 -137
  224. package/dist/client/index.js +0 -2937
  225. package/dist/client/polyfills/core-js.js +0 -10
  226. package/dist/client/polyfills/css-shim.js +0 -656
  227. package/dist/client/polyfills/dom.js +0 -146
  228. package/dist/client/polyfills/es5-html-element.js +0 -18
  229. package/dist/client/polyfills/index.js +0 -35
  230. package/dist/client/polyfills/promise.js +0 -9
  231. package/dist/client/polyfills/system.js +0 -6
  232. package/dist/client/shadow-css-6ef31c68.js +0 -386
  233. package/dist/client/shadow-css-8fd1a9e4.js +0 -388
  234. package/dist/compiler/app-core/app-es5-disabled.d.ts +0 -2
  235. package/dist/compiler/app-core/app-polyfills.d.ts +0 -3
  236. package/dist/compiler/app-core/build-conditionals.d.ts +0 -6
  237. package/dist/compiler/app-core/bundle-app-core.d.ts +0 -6
  238. package/dist/compiler/app-core/component-styles.d.ts +0 -4
  239. package/dist/compiler/app-core/format-component-runtime-meta.d.ts +0 -4
  240. package/dist/compiler/app-core/optimize-module.d.ts +0 -7
  241. package/dist/compiler/browser/build-conditionals-client.d.ts +0 -3
  242. package/dist/compiler/browser/compile-options.d.ts +0 -12
  243. package/dist/compiler/browser/compile.d.ts +0 -2
  244. package/dist/compiler/browser/create-compiler.d.ts +0 -14
  245. package/dist/compiler/browser/index.d.ts +0 -11
  246. package/dist/compiler/build/build-ctx.d.ts +0 -74
  247. package/dist/compiler/build/build-finish.d.ts +0 -3
  248. package/dist/compiler/build/build-hmr.d.ts +0 -2
  249. package/dist/compiler/build/build-results.d.ts +0 -2
  250. package/dist/compiler/build/build-stats.d.ts +0 -3
  251. package/dist/compiler/build/build.d.ts +0 -2
  252. package/dist/compiler/build/cache-stats.d.ts +0 -4
  253. package/dist/compiler/build/compiler-build-id.d.ts +0 -6
  254. package/dist/compiler/build/compiler-ctx.d.ts +0 -44
  255. package/dist/compiler/build/init-index-html.d.ts +0 -2
  256. package/dist/compiler/build/validate-files.d.ts +0 -2
  257. package/dist/compiler/build/write-build.d.ts +0 -2
  258. package/dist/compiler/cache.d.ts +0 -22
  259. package/dist/compiler/compiler.d.ts +0 -27
  260. package/dist/compiler/component-hydrate/bundle-hydrate-factory.d.ts +0 -3
  261. package/dist/compiler/component-hydrate/generate-hydrate-app.d.ts +0 -2
  262. package/dist/compiler/component-hydrate/hydrate-factory-closure.d.ts +0 -2
  263. package/dist/compiler/component-hydrate/update-to-hydrate-components.d.ts +0 -2
  264. package/dist/compiler/component-hydrate/write-hydrate-outputs.d.ts +0 -3
  265. package/dist/compiler/component-lazy/generate-cjs.d.ts +0 -3
  266. package/dist/compiler/component-lazy/generate-esm-browser.d.ts +0 -3
  267. package/dist/compiler/component-lazy/generate-esm.d.ts +0 -3
  268. package/dist/compiler/component-lazy/generate-lazy-app.d.ts +0 -3
  269. package/dist/compiler/component-lazy/generate-lazy-module.d.ts +0 -4
  270. package/dist/compiler/component-lazy/generate-system.d.ts +0 -3
  271. package/dist/compiler/component-lazy/update-to-lazy-component.d.ts +0 -2
  272. package/dist/compiler/component-lazy/write-lazy-entry-module.d.ts +0 -2
  273. package/dist/compiler/component-native/update-to-native-component.d.ts +0 -2
  274. package/dist/compiler/config/config-reload.d.ts +0 -3
  275. package/dist/compiler/config/config-utils.d.ts +0 -4
  276. package/dist/compiler/config/validate-config.d.ts +0 -4
  277. package/dist/compiler/config/validate-copy.d.ts +0 -2
  278. package/dist/compiler/config/validate-dev-server.d.ts +0 -2
  279. package/dist/compiler/config/validate-docs.d.ts +0 -2
  280. package/dist/compiler/config/validate-namespace.d.ts +0 -3
  281. package/dist/compiler/config/validate-output-stats.d.ts +0 -2
  282. package/dist/compiler/config/validate-outputs-angular.d.ts +0 -2
  283. package/dist/compiler/config/validate-outputs-custom.d.ts +0 -2
  284. package/dist/compiler/config/validate-outputs-dist-module.d.ts +0 -2
  285. package/dist/compiler/config/validate-outputs-dist.d.ts +0 -2
  286. package/dist/compiler/config/validate-outputs-hydrate-script.d.ts +0 -2
  287. package/dist/compiler/config/validate-outputs-www.d.ts +0 -2
  288. package/dist/compiler/config/validate-outputs.d.ts +0 -2
  289. package/dist/compiler/config/validate-paths.d.ts +0 -2
  290. package/dist/compiler/config/validate-plugins.d.ts +0 -2
  291. package/dist/compiler/config/validate-prerender.d.ts +0 -2
  292. package/dist/compiler/config/validate-rollup-config.d.ts +0 -2
  293. package/dist/compiler/config/validate-service-worker.d.ts +0 -2
  294. package/dist/compiler/config/validate-testing.d.ts +0 -2
  295. package/dist/compiler/config/validate-workers.d.ts +0 -2
  296. package/dist/compiler/copy/assets-copy-tasks.d.ts +0 -3
  297. package/dist/compiler/copy/hashed-copy.d.ts +0 -2
  298. package/dist/compiler/copy/local-copy-tasks.d.ts +0 -3
  299. package/dist/compiler/docs/constants.d.ts +0 -2
  300. package/dist/compiler/docs/custom/index.d.ts +0 -2
  301. package/dist/compiler/docs/docs.d.ts +0 -2
  302. package/dist/compiler/docs/generate-doc-data.d.ts +0 -3
  303. package/dist/compiler/docs/json/index.d.ts +0 -3
  304. package/dist/compiler/docs/readme/docs-util.d.ts +0 -13
  305. package/dist/compiler/docs/readme/index.d.ts +0 -3
  306. package/dist/compiler/docs/readme/markdown-css-props.d.ts +0 -2
  307. package/dist/compiler/docs/readme/markdown-dependencies.d.ts +0 -2
  308. package/dist/compiler/docs/readme/markdown-events.d.ts +0 -2
  309. package/dist/compiler/docs/readme/markdown-methods.d.ts +0 -2
  310. package/dist/compiler/docs/readme/markdown-props.d.ts +0 -2
  311. package/dist/compiler/docs/readme/markdown-slots.d.ts +0 -2
  312. package/dist/compiler/docs/readme/markdown-usage.d.ts +0 -6
  313. package/dist/compiler/docs/readme/output-docs.d.ts +0 -3
  314. package/dist/compiler/docs/style-docs.d.ts +0 -2
  315. package/dist/compiler/docs/vscode/index.d.ts +0 -2
  316. package/dist/compiler/entries/component-bundles.d.ts +0 -3
  317. package/dist/compiler/entries/component-graph.d.ts +0 -2
  318. package/dist/compiler/entries/default-bundles.d.ts +0 -3
  319. package/dist/compiler/entries/entry-modules.d.ts +0 -6
  320. package/dist/compiler/entries/resolve-component-dependencies.d.ts +0 -2
  321. package/dist/compiler/events.d.ts +0 -15
  322. package/dist/compiler/fs-watch/fs-watch-init.d.ts +0 -2
  323. package/dist/compiler/fs-watch/fs-watch-log.d.ts +0 -2
  324. package/dist/compiler/fs-watch/fs-watch-rebuild.d.ts +0 -7
  325. package/dist/compiler/html/inject-module-preloads.d.ts +0 -3
  326. package/dist/compiler/html/inject-sw-script.d.ts +0 -4
  327. package/dist/compiler/html/inline-esm-import.d.ts +0 -2
  328. package/dist/compiler/html/inline-style-sheets.d.ts +0 -2
  329. package/dist/compiler/html/update-global-styles-link.d.ts +0 -2
  330. package/dist/compiler/html/used-components.d.ts +0 -2
  331. package/dist/compiler/html/utils.d.ts +0 -2
  332. package/dist/compiler/html/validate-manifest-json.d.ts +0 -2
  333. package/dist/compiler/index.d.ts +0 -10
  334. package/dist/compiler/index.js +0 -18008
  335. package/dist/compiler/output-targets/empty-dir.d.ts +0 -6
  336. package/dist/compiler/output-targets/index.d.ts +0 -2
  337. package/dist/compiler/output-targets/output-angular.d.ts +0 -4
  338. package/dist/compiler/output-targets/output-app.d.ts +0 -4
  339. package/dist/compiler/output-targets/output-collection.d.ts +0 -3
  340. package/dist/compiler/output-targets/output-copy.d.ts +0 -2
  341. package/dist/compiler/output-targets/output-custom.d.ts +0 -2
  342. package/dist/compiler/output-targets/output-docs.d.ts +0 -2
  343. package/dist/compiler/output-targets/output-hydrate.d.ts +0 -2
  344. package/dist/compiler/output-targets/output-lazy-loader.d.ts +0 -2
  345. package/dist/compiler/output-targets/output-module.d.ts +0 -4
  346. package/dist/compiler/output-targets/output-prerender.d.ts +0 -2
  347. package/dist/compiler/output-targets/output-service-workers.d.ts +0 -2
  348. package/dist/compiler/output-targets/output-types.d.ts +0 -2
  349. package/dist/compiler/output-targets/output-utils.d.ts +0 -54
  350. package/dist/compiler/output-targets/output-www.d.ts +0 -2
  351. package/dist/compiler/plugin/plugin.d.ts +0 -6
  352. package/dist/compiler/prerender/crawl-urls.d.ts +0 -3
  353. package/dist/compiler/prerender/host-config.d.ts +0 -12
  354. package/dist/compiler/prerender/prerender-config.d.ts +0 -2
  355. package/dist/compiler/prerender/prerender-main.d.ts +0 -2
  356. package/dist/compiler/prerender/prerender-queue.d.ts +0 -3
  357. package/dist/compiler/prerender/prerender-template-html.d.ts +0 -2
  358. package/dist/compiler/prerender/prerendered-write-path.d.ts +0 -2
  359. package/dist/compiler/prerender/robots-txt.d.ts +0 -2
  360. package/dist/compiler/prerender/sitemap-xml.d.ts +0 -3
  361. package/dist/compiler/rollup-plugins/component-entry.d.ts +0 -3
  362. package/dist/compiler/rollup-plugins/css-transformer.d.ts +0 -3
  363. package/dist/compiler/rollup-plugins/global-scripts.d.ts +0 -4
  364. package/dist/compiler/rollup-plugins/image-plugin.d.ts +0 -3
  365. package/dist/compiler/rollup-plugins/in-memory-fs-read.d.ts +0 -3
  366. package/dist/compiler/rollup-plugins/loader.d.ts +0 -4
  367. package/dist/compiler/rollup-plugins/plugin-helper.d.ts +0 -5
  368. package/dist/compiler/rollup-plugins/rindo-build-conditionals.d.ts +0 -7
  369. package/dist/compiler/rollup-plugins/rindo-client.d.ts +0 -3
  370. package/dist/compiler/rollup-plugins/rindo-external-runtime.d.ts +0 -2
  371. package/dist/compiler/rollup-plugins/rindo-hydrate.d.ts +0 -3
  372. package/dist/compiler/rollup-plugins/rindo-public-plugin.d.ts +0 -2
  373. package/dist/compiler/service-worker/generate-sw.d.ts +0 -7
  374. package/dist/compiler/service-worker/service-worker-util.d.ts +0 -2
  375. package/dist/compiler/style/cached-styles.d.ts +0 -5
  376. package/dist/compiler/style/component-styles.d.ts +0 -2
  377. package/dist/compiler/style/css-imports.d.ts +0 -9
  378. package/dist/compiler/style/css-to-esm.d.ts +0 -5
  379. package/dist/compiler/style/generate-styles.d.ts +0 -2
  380. package/dist/compiler/style/global-styles.d.ts +0 -3
  381. package/dist/compiler/style/normalize-styles.d.ts +0 -2
  382. package/dist/compiler/style/optimize-css.d.ts +0 -2
  383. package/dist/compiler/style/scope-css.d.ts +0 -3
  384. package/dist/compiler/style/style-utils.d.ts +0 -10
  385. package/dist/compiler/transformers/add-component-meta-proxy.d.ts +0 -3
  386. package/dist/compiler/transformers/add-component-meta-static.d.ts +0 -4
  387. package/dist/compiler/transformers/add-imports.d.ts +0 -3
  388. package/dist/compiler/transformers/collections/add-external-import.d.ts +0 -2
  389. package/dist/compiler/transformers/collections/parse-collection-components.d.ts +0 -2
  390. package/dist/compiler/transformers/collections/parse-collection-deprecated.d.ts +0 -2
  391. package/dist/compiler/transformers/collections/parse-collection-manifest.d.ts +0 -7
  392. package/dist/compiler/transformers/collections/parse-collection-module.d.ts +0 -2
  393. package/dist/compiler/transformers/component-build-conditionals.d.ts +0 -2
  394. package/dist/compiler/transformers/component-hydrate/hydrate-component.d.ts +0 -3
  395. package/dist/compiler/transformers/component-hydrate/hydrate-runtime-cmp-meta.d.ts +0 -3
  396. package/dist/compiler/transformers/component-hydrate/tranform-to-hydrate-component.d.ts +0 -2
  397. package/dist/compiler/transformers/component-lazy/lazy-component.d.ts +0 -3
  398. package/dist/compiler/transformers/component-lazy/lazy-constructor.d.ts +0 -3
  399. package/dist/compiler/transformers/component-lazy/lazy-element-getter.d.ts +0 -3
  400. package/dist/compiler/transformers/component-lazy/transform-lazy-component.d.ts +0 -4
  401. package/dist/compiler/transformers/component-native/native-component.d.ts +0 -3
  402. package/dist/compiler/transformers/component-native/native-connected-callback.d.ts +0 -3
  403. package/dist/compiler/transformers/component-native/native-constructor.d.ts +0 -3
  404. package/dist/compiler/transformers/component-native/native-element-getter.d.ts +0 -3
  405. package/dist/compiler/transformers/component-native/native-static-style.d.ts +0 -3
  406. package/dist/compiler/transformers/component-native/tranform-to-native-component.d.ts +0 -4
  407. package/dist/compiler/transformers/core-runtime-apis.d.ts +0 -30
  408. package/dist/compiler/transformers/create-event.d.ts +0 -3
  409. package/dist/compiler/transformers/decorators-to-static/component-decorator.d.ts +0 -3
  410. package/dist/compiler/transformers/decorators-to-static/convert-decorators.d.ts +0 -3
  411. package/dist/compiler/transformers/decorators-to-static/decorator-utils.d.ts +0 -10
  412. package/dist/compiler/transformers/decorators-to-static/element-decorator.d.ts +0 -3
  413. package/dist/compiler/transformers/decorators-to-static/event-decorator.d.ts +0 -4
  414. package/dist/compiler/transformers/decorators-to-static/listen-decorator.d.ts +0 -6
  415. package/dist/compiler/transformers/decorators-to-static/method-decorator.d.ts +0 -3
  416. package/dist/compiler/transformers/decorators-to-static/prop-decorator.d.ts +0 -4
  417. package/dist/compiler/transformers/decorators-to-static/state-decorator.d.ts +0 -3
  418. package/dist/compiler/transformers/decorators-to-static/style-to-static.d.ts +0 -3
  419. package/dist/compiler/transformers/decorators-to-static/watch-decorator.d.ts +0 -3
  420. package/dist/compiler/transformers/define-custom-element.d.ts +0 -3
  421. package/dist/compiler/transformers/host-data-transform.d.ts +0 -3
  422. package/dist/compiler/transformers/legacy-props.d.ts +0 -3
  423. package/dist/compiler/transformers/remove-static-meta-properties.d.ts +0 -2
  424. package/dist/compiler/transformers/reserved-public-members.d.ts +0 -3
  425. package/dist/compiler/transformers/rindo-import-path.d.ts +0 -3
  426. package/dist/compiler/transformers/static-to-meta/call-expression.d.ts +0 -3
  427. package/dist/compiler/transformers/static-to-meta/class-methods.d.ts +0 -3
  428. package/dist/compiler/transformers/static-to-meta/component.d.ts +0 -3
  429. package/dist/compiler/transformers/static-to-meta/element-ref.d.ts +0 -2
  430. package/dist/compiler/transformers/static-to-meta/encapsulation.d.ts +0 -3
  431. package/dist/compiler/transformers/static-to-meta/events.d.ts +0 -3
  432. package/dist/compiler/transformers/static-to-meta/import.d.ts +0 -3
  433. package/dist/compiler/transformers/static-to-meta/listeners.d.ts +0 -3
  434. package/dist/compiler/transformers/static-to-meta/methods.d.ts +0 -3
  435. package/dist/compiler/transformers/static-to-meta/props.d.ts +0 -3
  436. package/dist/compiler/transformers/static-to-meta/states.d.ts +0 -3
  437. package/dist/compiler/transformers/static-to-meta/string-literal.d.ts +0 -3
  438. package/dist/compiler/transformers/static-to-meta/styles.d.ts +0 -3
  439. package/dist/compiler/transformers/static-to-meta/vdom.d.ts +0 -3
  440. package/dist/compiler/transformers/static-to-meta/visitor.d.ts +0 -3
  441. package/dist/compiler/transformers/static-to-meta/watchers.d.ts +0 -3
  442. package/dist/compiler/transformers/style-imports.d.ts +0 -3
  443. package/dist/compiler/transformers/transform-utils.d.ts +0 -31
  444. package/dist/compiler/transformers/update-component-class.d.ts +0 -3
  445. package/dist/compiler/transformers/update-rindo-core-import.d.ts +0 -3
  446. package/dist/compiler/transformers/watcher-meta-transform.d.ts +0 -3
  447. package/dist/compiler/transpile/compiler-options.d.ts +0 -4
  448. package/dist/compiler/transpile/transpile-app.d.ts +0 -2
  449. package/dist/compiler/transpile/transpile-module.d.ts +0 -5
  450. package/dist/compiler/transpile/transpile-service.d.ts +0 -3
  451. package/dist/compiler/transpile/transpile-to-es5-main.d.ts +0 -2
  452. package/dist/compiler/transpile/validate-types-main.d.ts +0 -2
  453. package/dist/compiler/types/generate-app-types.d.ts +0 -2
  454. package/dist/compiler/types/generate-component-types.d.ts +0 -8
  455. package/dist/compiler/types/generate-event-types.d.ts +0 -2
  456. package/dist/compiler/types/generate-method-types.d.ts +0 -2
  457. package/dist/compiler/types/generate-prop-types.d.ts +0 -2
  458. package/dist/compiler/types/generate-types.d.ts +0 -2
  459. package/dist/compiler/types/rindo-types.d.ts +0 -3
  460. package/dist/compiler/types/types-utils.d.ts +0 -4
  461. package/dist/compiler/types/update-import-refs.d.ts +0 -11
  462. package/dist/compiler/types/validate-package-json.d.ts +0 -9
  463. package/dist/declarations/assets.d.ts +0 -17
  464. package/dist/declarations/browser-compile.d.ts +0 -47
  465. package/dist/declarations/build-conditionals.d.ts +0 -91
  466. package/dist/declarations/build-events.d.ts +0 -19
  467. package/dist/declarations/build.d.ts +0 -247
  468. package/dist/declarations/cache.d.ts +0 -11
  469. package/dist/declarations/collection-manifest.d.ts +0 -106
  470. package/dist/declarations/collection.d.ts +0 -139
  471. package/dist/declarations/compiler.d.ts +0 -53
  472. package/dist/declarations/component-compiler-meta.d.ts +0 -198
  473. package/dist/declarations/component-constructor.d.ts +0 -61
  474. package/dist/declarations/component-interfaces.d.ts +0 -123
  475. package/dist/declarations/config.d.ts +0 -409
  476. package/dist/declarations/css-var-shim.d.ts +0 -9
  477. package/dist/declarations/decorators.d.ts +0 -150
  478. package/dist/declarations/dev-server.d.ts +0 -135
  479. package/dist/declarations/diagnostics.d.ts +0 -21
  480. package/dist/declarations/entry.d.ts +0 -28
  481. package/dist/declarations/events.d.ts +0 -13
  482. package/dist/declarations/file-system.d.ts +0 -91
  483. package/dist/declarations/fs-watch.d.ts +0 -15
  484. package/dist/declarations/host-element.d.ts +0 -53
  485. package/dist/declarations/hydrate.d.ts +0 -99
  486. package/dist/declarations/in-memory-fs.d.ts +0 -59
  487. package/dist/declarations/index.d.ts +0 -45
  488. package/dist/declarations/jsdoc.d.ts +0 -16
  489. package/dist/declarations/jsx.d.ts +0 -1050
  490. package/dist/declarations/logger.d.ts +0 -25
  491. package/dist/declarations/minify-js.d.ts +0 -11
  492. package/dist/declarations/module.d.ts +0 -35
  493. package/dist/declarations/optimize-css.d.ts +0 -12
  494. package/dist/declarations/output-targets.d.ts +0 -189
  495. package/dist/declarations/plugin.d.ts +0 -23
  496. package/dist/declarations/prerender.d.ts +0 -79
  497. package/dist/declarations/render.d.ts +0 -62
  498. package/dist/declarations/runtime.d.ts +0 -92
  499. package/dist/declarations/screenshots.d.ts +0 -192
  500. package/dist/declarations/server.d.ts +0 -19
  501. package/dist/declarations/style.d.ts +0 -35
  502. package/dist/declarations/system.d.ts +0 -174
  503. package/dist/declarations/testing.d.ts +0 -523
  504. package/dist/declarations/transpile.d.ts +0 -24
  505. package/dist/declarations/types.d.ts +0 -24
  506. package/dist/declarations/vdom.d.ts +0 -55
  507. package/dist/declarations/worker.d.ts +0 -33
  508. package/dist/dev-server/content-type-db.json +0 -1
  509. package/dist/dev-server/index.js +0 -887
  510. package/dist/dev-server/static/app-error.css +0 -257
  511. package/dist/dev-server/static/dev-server-client.html +0 -13
  512. package/dist/hydrate/index.d.ts +0 -101
  513. package/dist/hydrate/index.mjs +0 -1281
  514. package/dist/hydrate/platform.mjs +0 -347
  515. package/dist/index.d.ts +0 -99
  516. package/dist/index.js +0 -1
  517. package/dist/mock-doc/index.d.ts +0 -851
  518. package/dist/mock-doc/index.js +0 -3982
  519. package/dist/mock-doc/index.mjs +0 -3954
  520. package/dist/runtime/index.js +0 -2576
  521. package/dist/runtime/index.mjs +0 -2521
  522. package/dist/runtime/shadow-css-6ef31c68.js +0 -386
  523. package/dist/runtime/shadow-css-8fd1a9e4.js +0 -388
  524. package/dist/screenshot/index.js +0 -520
  525. package/dist/sys/node/graceful-fs.js +0 -975
  526. package/dist/sys/node/index.js +0 -33545
  527. package/dist/sys/node/node-fetch.js +0 -1779
  528. package/dist/sys/node/open-in-editor.js +0 -734
  529. package/dist/sys/node/sys-worker.js +0 -67035
  530. package/dist/sys/node/websocket.js +0 -3728
  531. package/dist/testing/build-conditionals.d.ts +0 -4
  532. package/dist/testing/build-conditionals.js +0 -43
  533. package/dist/testing/core.d.ts +0 -35
  534. package/dist/testing/core.js +0 -52
  535. package/dist/testing/index.js +0 -40511
  536. package/dist/testing/jest/jest-config.d.ts +0 -4
  537. package/dist/testing/mock-fetch.d.ts +0 -46
  538. package/dist/testing/mocks.d.ts +0 -12
  539. package/dist/testing/platform.d.ts +0 -23
  540. package/dist/testing/platform.js +0 -321
  541. package/dist/testing/puppeteer/puppeteer-emulate.d.ts +0 -2
  542. package/dist/testing/puppeteer/puppeteer-find.d.ts +0 -5
  543. package/dist/testing/puppeteer/puppeteer-page.d.ts +0 -2
  544. package/dist/testing/puppeteer/puppeteer-screenshot.d.ts +0 -4
  545. package/dist/testing/spec-page.d.ts +0 -5
  546. package/dist/testing/task-queue.d.ts +0 -15
  547. package/dist/testing/test-transpile.d.ts +0 -5
  548. package/dist/testing/testing-fs.d.ts +0 -31
  549. package/dist/testing/testing-sys.d.ts +0 -19
  550. package/dist/testing/testing.d.ts +0 -12
  551. package/dist/utils/index.js +0 -1575
  552. package/dist/utils/index.mjs +0 -1511
  553. package/internal/client/css-shim.rindo-client.mjs +0 -656
  554. package/internal/client/index.mjs +0 -2859
  555. package/internal/client/polyfills/promise.js +0 -9
  556. package/internal/images.d.ts +0 -5
  557. package/runtime/package.json +0 -5
  558. package/screenshot/compare/build/p-020f8d73.js +0 -1
  559. package/screenshot/compare/build/p-09qdknbg.system.entry.js +0 -1
  560. package/screenshot/compare/build/p-0a13mpsc.system.entry.js +0 -1
  561. package/screenshot/compare/build/p-168ec2c4.system.js +0 -1
  562. package/screenshot/compare/build/p-2ab1fdf1.system.js +0 -1
  563. package/screenshot/compare/build/p-2pxcsgrj.entry.js +0 -1
  564. package/screenshot/compare/build/p-42fb7034.system.js +0 -1
  565. package/screenshot/compare/build/p-54d9d7c2.system.js +0 -1
  566. package/screenshot/compare/build/p-67c1f911.js +0 -1
  567. package/screenshot/compare/build/p-68613371.system.js +0 -1
  568. package/screenshot/compare/build/p-7dvsjpu0.entry.js +0 -1
  569. package/screenshot/compare/build/p-aa67fb06.js +0 -1
  570. package/screenshot/compare/build/p-aeb3cec1.system.js +0 -1
  571. package/screenshot/compare/build/p-b6e44a24.js +0 -1
  572. package/screenshot/compare/build/p-c1c25b8a.js +0 -1
  573. package/screenshot/compare/build/p-c9bopbjy.system.entry.js +0 -1
  574. package/screenshot/compare/build/p-c9iqz1pp.system.entry.js +0 -1
  575. package/screenshot/compare/build/p-dizjz8rg.entry.js +0 -1
  576. package/screenshot/compare/build/p-dnta0rwp.system.entry.js +0 -1
  577. package/screenshot/compare/build/p-e9670d22.system.js +0 -1
  578. package/screenshot/compare/build/p-ei9jkpd0.system.entry.js +0 -1
  579. package/screenshot/compare/build/p-ejwcppol.entry.js +0 -1
  580. package/screenshot/compare/build/p-f6612d5d.system.js +0 -1
  581. package/screenshot/compare/build/p-foiivsfc.css +0 -1
  582. package/screenshot/compare/build/p-gpjjyogx.entry.js +0 -1
  583. package/screenshot/compare/build/p-howklem2.system.entry.js +0 -1
  584. package/screenshot/compare/build/p-knv9wvoc.entry.js +0 -1
  585. package/screenshot/compare/build/p-nsqsfhhy.entry.js +0 -1
  586. package/screenshot/compare/build/p-ojt278pp.entry.js +0 -1
  587. package/screenshot/compare/build/p-oywass99.entry.js +0 -1
  588. package/screenshot/compare/build/p-q3ujhub6.entry.js +0 -1
  589. package/screenshot/compare/build/p-qw4xnmxv.entry.js +0 -1
  590. package/screenshot/compare/build/p-t1wvevhc.system.entry.js +0 -1
  591. package/screenshot/compare/build/p-tnjarrex.system.entry.js +0 -1
  592. package/screenshot/compare/build/p-vhfpd6kk.system.entry.js +0 -1
  593. package/screenshot/compare/build/p-vk6rhemd.system.entry.js +0 -1
  594. package/screenshot/compare/build/p-w6bnm16k.entry.js +0 -1
  595. package/screenshot/compare/build/p-xje6d7zl.system.entry.js +0 -1
  596. package/screenshot/compare/build/p-y5jlrcha.system.entry.js +0 -1
  597. package/screenshot/compare/build/p-yh170wkt.entry.js +0 -1
  598. package/testing/jest.preprocessor.js +0 -7
  599. /package/{dist/dev-server → dev-server}/static/favicon.ico +0 -0
  600. /package/{dist/sys/node → dev-server}/visualstudio.vbs +0 -0
  601. /package/{dist/sys/node → dev-server}/xdg-open +0 -0
  602. /package/{dist/compiler/polyfills.d.ts → screenshot/compare/build/index.esm.js} +0 -0
  603. /package/{dist/screenshot → screenshot}/pixel-match.d.ts +0 -0
  604. /package/{dist/testing → testing}/jest/jest-setup-test-framework.d.ts +0 -0
  605. /package/{dist/testing → testing}/matchers/attributes.d.ts +0 -0
  606. /package/{dist/testing → testing}/matchers/class-list.d.ts +0 -0
  607. /package/{dist/testing → testing}/matchers/html.d.ts +0 -0
  608. /package/{dist/testing → testing}/matchers/text.d.ts +0 -0
package/cli/index.cjs ADDED
@@ -0,0 +1,1263 @@
1
+ /*!
2
+ Rindo CLI (CommonJS) v2.5.2 | MIT Licensed | https://rindojs.web.app
3
+ */
4
+ 'use strict';
5
+
6
+ Object.defineProperty(exports, '__esModule', { value: true });
7
+
8
+ function _interopNamespace(e) {
9
+ if (e && e.__esModule) return e;
10
+ var n = Object.create(null);
11
+ if (e) {
12
+ Object.keys(e).forEach(function (k) {
13
+ if (k !== 'default') {
14
+ var d = Object.getOwnPropertyDescriptor(e, k);
15
+ Object.defineProperty(n, k, d.get ? d : {
16
+ enumerable: true,
17
+ get: function () {
18
+ return e[k];
19
+ }
20
+ });
21
+ }
22
+ });
23
+ }
24
+ n['default'] = e;
25
+ return Object.freeze(n);
26
+ }
27
+
28
+ const toLowerCase = (str) => str.toLowerCase();
29
+ const dashToPascalCase = (str) => toLowerCase(str)
30
+ .split('-')
31
+ .map(segment => segment.charAt(0).toUpperCase() + segment.slice(1))
32
+ .join('');
33
+ const isFunction = (v) => typeof v === 'function';
34
+ const isString = (v) => typeof v === 'string';
35
+
36
+ const buildError = (diagnostics) => {
37
+ const diagnostic = {
38
+ level: 'error',
39
+ type: 'build',
40
+ header: 'Build Error',
41
+ messageText: 'build error',
42
+ relFilePath: null,
43
+ absFilePath: null,
44
+ lines: [],
45
+ };
46
+ if (diagnostics) {
47
+ diagnostics.push(diagnostic);
48
+ }
49
+ return diagnostic;
50
+ };
51
+ const catchError = (diagnostics, err, msg) => {
52
+ const diagnostic = {
53
+ level: 'error',
54
+ type: 'build',
55
+ header: 'Build Error',
56
+ messageText: 'build error',
57
+ relFilePath: null,
58
+ absFilePath: null,
59
+ lines: [],
60
+ };
61
+ if (isString(msg)) {
62
+ diagnostic.messageText = msg;
63
+ }
64
+ else if (err != null) {
65
+ if (err.stack != null) {
66
+ diagnostic.messageText = err.stack.toString();
67
+ }
68
+ else {
69
+ if (err.message != null) {
70
+ diagnostic.messageText = err.message.toString();
71
+ }
72
+ else {
73
+ diagnostic.messageText = err.toString();
74
+ }
75
+ }
76
+ }
77
+ if (diagnostics != null && !shouldIgnoreError(diagnostic.messageText)) {
78
+ diagnostics.push(diagnostic);
79
+ }
80
+ return diagnostic;
81
+ };
82
+ const hasError = (diagnostics) => {
83
+ if (diagnostics == null || diagnostics.length === 0) {
84
+ return false;
85
+ }
86
+ return diagnostics.some(d => d.level === 'error' && d.type !== 'runtime');
87
+ };
88
+ const shouldIgnoreError = (msg) => {
89
+ return msg === TASK_CANCELED_MSG;
90
+ };
91
+ const TASK_CANCELED_MSG = `task canceled`;
92
+
93
+ /**
94
+ * Convert Windows backslash paths to slash paths: foo\\bar ➔ foo/bar
95
+ * Forward-slash paths can be used in Windows as long as they're not
96
+ * extended-length paths and don't contain any non-ascii characters.
97
+ * This was created since the path methods in Node.js outputs \\ paths on Windows.
98
+ */
99
+ const normalizePath = (path) => {
100
+ if (typeof path !== 'string') {
101
+ throw new Error(`invalid path to normalize`);
102
+ }
103
+ path = normalizeSlashes(path.trim());
104
+ const components = pathComponents(path, getRootLength(path));
105
+ const reducedComponents = reducePathComponents(components);
106
+ const rootPart = reducedComponents[0];
107
+ const secondPart = reducedComponents[1];
108
+ const normalized = rootPart + reducedComponents.slice(1).join('/');
109
+ if (normalized === '') {
110
+ return '.';
111
+ }
112
+ if (rootPart === '' &&
113
+ secondPart &&
114
+ path.includes('/') &&
115
+ !secondPart.startsWith('.') &&
116
+ !secondPart.startsWith('@')) {
117
+ return './' + normalized;
118
+ }
119
+ return normalized;
120
+ };
121
+ const normalizeSlashes = (path) => path.replace(backslashRegExp, '/');
122
+ const altDirectorySeparator = '\\';
123
+ const urlSchemeSeparator = '://';
124
+ const backslashRegExp = /\\/g;
125
+ const reducePathComponents = (components) => {
126
+ if (!Array.isArray(components) || components.length === 0) {
127
+ return [];
128
+ }
129
+ const reduced = [components[0]];
130
+ for (let i = 1; i < components.length; i++) {
131
+ const component = components[i];
132
+ if (!component)
133
+ continue;
134
+ if (component === '.')
135
+ continue;
136
+ if (component === '..') {
137
+ if (reduced.length > 1) {
138
+ if (reduced[reduced.length - 1] !== '..') {
139
+ reduced.pop();
140
+ continue;
141
+ }
142
+ }
143
+ else if (reduced[0])
144
+ continue;
145
+ }
146
+ reduced.push(component);
147
+ }
148
+ return reduced;
149
+ };
150
+ const getRootLength = (path) => {
151
+ const rootLength = getEncodedRootLength(path);
152
+ return rootLength < 0 ? ~rootLength : rootLength;
153
+ };
154
+ const getEncodedRootLength = (path) => {
155
+ if (!path)
156
+ return 0;
157
+ const ch0 = path.charCodeAt(0);
158
+ // POSIX or UNC
159
+ if (ch0 === 47 /* slash */ || ch0 === 92 /* backslash */) {
160
+ if (path.charCodeAt(1) !== ch0)
161
+ return 1; // POSIX: "/" (or non-normalized "\")
162
+ const p1 = path.indexOf(ch0 === 47 /* slash */ ? '/' : altDirectorySeparator, 2);
163
+ if (p1 < 0)
164
+ return path.length; // UNC: "//server" or "\\server"
165
+ return p1 + 1; // UNC: "//server/" or "\\server\"
166
+ }
167
+ // DOS
168
+ if (isVolumeCharacter(ch0) && path.charCodeAt(1) === 58 /* colon */) {
169
+ const ch2 = path.charCodeAt(2);
170
+ if (ch2 === 47 /* slash */ || ch2 === 92 /* backslash */)
171
+ return 3; // DOS: "c:/" or "c:\"
172
+ if (path.length === 2)
173
+ return 2; // DOS: "c:" (but not "c:d")
174
+ }
175
+ // URL
176
+ const schemeEnd = path.indexOf(urlSchemeSeparator);
177
+ if (schemeEnd !== -1) {
178
+ const authorityStart = schemeEnd + urlSchemeSeparator.length;
179
+ const authorityEnd = path.indexOf('/', authorityStart);
180
+ if (authorityEnd !== -1) {
181
+ // URL: "file:///", "file://server/", "file://server/path"
182
+ // For local "file" URLs, include the leading DOS volume (if present).
183
+ // Per https://www.ietf.org/rfc/rfc1738.txt, a host of "" or "localhost" is a
184
+ // special case interpreted as "the machine from which the URL is being interpreted".
185
+ const scheme = path.slice(0, schemeEnd);
186
+ const authority = path.slice(authorityStart, authorityEnd);
187
+ if (scheme === 'file' &&
188
+ (authority === '' || authority === 'localhost') &&
189
+ isVolumeCharacter(path.charCodeAt(authorityEnd + 1))) {
190
+ const volumeSeparatorEnd = getFileUrlVolumeSeparatorEnd(path, authorityEnd + 2);
191
+ if (volumeSeparatorEnd !== -1) {
192
+ if (path.charCodeAt(volumeSeparatorEnd) === 47 /* slash */) {
193
+ // URL: "file:///c:/", "file://localhost/c:/", "file:///c%3a/", "file://localhost/c%3a/"
194
+ return ~(volumeSeparatorEnd + 1);
195
+ }
196
+ if (volumeSeparatorEnd === path.length) {
197
+ // URL: "file:///c:", "file://localhost/c:", "file:///c$3a", "file://localhost/c%3a"
198
+ // but not "file:///c:d" or "file:///c%3ad"
199
+ return ~volumeSeparatorEnd;
200
+ }
201
+ }
202
+ }
203
+ return ~(authorityEnd + 1); // URL: "file://server/", "http://server/"
204
+ }
205
+ return ~path.length; // URL: "file://server", "http://server"
206
+ }
207
+ // relative
208
+ return 0;
209
+ };
210
+ const isVolumeCharacter = (charCode) => (charCode >= 97 /* a */ && charCode <= 122 /* z */) ||
211
+ (charCode >= 65 /* A */ && charCode <= 90 /* Z */);
212
+ const getFileUrlVolumeSeparatorEnd = (url, start) => {
213
+ const ch0 = url.charCodeAt(start);
214
+ if (ch0 === 58 /* colon */)
215
+ return start + 1;
216
+ if (ch0 === 37 /* percent */ && url.charCodeAt(start + 1) === 51 /* _3 */) {
217
+ const ch2 = url.charCodeAt(start + 2);
218
+ if (ch2 === 97 /* a */ || ch2 === 65 /* A */)
219
+ return start + 3;
220
+ }
221
+ return -1;
222
+ };
223
+ const pathComponents = (path, rootLength) => {
224
+ const root = path.substring(0, rootLength);
225
+ const rest = path.substring(rootLength).split('/');
226
+ const restLen = rest.length;
227
+ if (restLen > 0 && !rest[restLen - 1]) {
228
+ rest.pop();
229
+ }
230
+ return [root, ...rest];
231
+ };
232
+
233
+ const validateComponentTag = (tag) => {
234
+ if (tag !== tag.trim()) {
235
+ return `Tag can not contain white spaces`;
236
+ }
237
+ if (tag !== tag.toLowerCase()) {
238
+ return `Tag can not contain upper case characters`;
239
+ }
240
+ if (typeof tag !== 'string') {
241
+ return `Tag "${tag}" must be a string type`;
242
+ }
243
+ if (tag.length === 0) {
244
+ return `Received empty tag value`;
245
+ }
246
+ if (tag.indexOf(' ') > -1) {
247
+ return `"${tag}" tag cannot contain a space`;
248
+ }
249
+ if (tag.indexOf(',') > -1) {
250
+ return `"${tag}" tag cannot be used for multiple tags`;
251
+ }
252
+ const invalidChars = tag.replace(/\w|-/g, '');
253
+ if (invalidChars !== '') {
254
+ return `"${tag}" tag contains invalid characters: ${invalidChars}`;
255
+ }
256
+ if (tag.indexOf('-') === -1) {
257
+ return `"${tag}" tag must contain a dash (-) to work as a valid web component`;
258
+ }
259
+ if (tag.indexOf('--') > -1) {
260
+ return `"${tag}" tag cannot contain multiple dashes (--) next to each other`;
261
+ }
262
+ if (tag.indexOf('-') === 0) {
263
+ return `"${tag}" tag cannot start with a dash (-)`;
264
+ }
265
+ if (tag.lastIndexOf('-') === tag.length - 1) {
266
+ return `"${tag}" tag cannot end with a dash (-)`;
267
+ }
268
+ return undefined;
269
+ };
270
+
271
+ const parseFlags = (args, sys) => {
272
+ const flags = {
273
+ task: null,
274
+ args: [],
275
+ knownArgs: [],
276
+ unknownArgs: null,
277
+ };
278
+ // cmd line has more priority over npm scripts cmd
279
+ flags.args = args.slice();
280
+ if (flags.args.length > 0 && flags.args[0] && !flags.args[0].startsWith('-')) {
281
+ flags.task = flags.args[0];
282
+ }
283
+ parseArgs(flags, flags.args, flags.knownArgs);
284
+ if (sys && sys.name === 'node') {
285
+ const envArgs = getNpmConfigEnvArgs(sys);
286
+ parseArgs(flags, envArgs, flags.knownArgs);
287
+ envArgs.forEach(envArg => {
288
+ if (!flags.args.includes(envArg)) {
289
+ flags.args.push(envArg);
290
+ }
291
+ });
292
+ }
293
+ if (flags.task != null) {
294
+ const i = flags.args.indexOf(flags.task);
295
+ if (i > -1) {
296
+ flags.args.splice(i, 1);
297
+ }
298
+ }
299
+ flags.unknownArgs = flags.args.filter((arg) => {
300
+ return !flags.knownArgs.includes(arg);
301
+ });
302
+ return flags;
303
+ };
304
+ const parseArgs = (flags, args, knownArgs) => {
305
+ ARG_OPTS.boolean.forEach(booleanName => {
306
+ const alias = ARG_OPTS.alias[booleanName];
307
+ const flagKey = configCase(booleanName);
308
+ if (typeof flags[flagKey] !== 'boolean') {
309
+ flags[flagKey] = null;
310
+ }
311
+ args.forEach(cmdArg => {
312
+ if (cmdArg === `--${booleanName}`) {
313
+ flags[flagKey] = true;
314
+ knownArgs.push(cmdArg);
315
+ }
316
+ else if (cmdArg === `--${flagKey}`) {
317
+ flags[flagKey] = true;
318
+ knownArgs.push(cmdArg);
319
+ }
320
+ else if (cmdArg === `--no-${booleanName}`) {
321
+ flags[flagKey] = false;
322
+ knownArgs.push(cmdArg);
323
+ }
324
+ else if (cmdArg === `--no${dashToPascalCase(booleanName)}`) {
325
+ flags[flagKey] = false;
326
+ knownArgs.push(cmdArg);
327
+ }
328
+ else if (alias && cmdArg === `-${alias}`) {
329
+ flags[flagKey] = true;
330
+ knownArgs.push(cmdArg);
331
+ }
332
+ });
333
+ });
334
+ ARG_OPTS.string.forEach(stringName => {
335
+ const alias = ARG_OPTS.alias[stringName];
336
+ const flagKey = configCase(stringName);
337
+ if (typeof flags[flagKey] !== 'string') {
338
+ flags[flagKey] = null;
339
+ }
340
+ for (let i = 0; i < args.length; i++) {
341
+ const cmdArg = args[i];
342
+ if (cmdArg.startsWith(`--${stringName}=`)) {
343
+ const values = cmdArg.split('=');
344
+ values.shift();
345
+ flags[flagKey] = values.join('=');
346
+ knownArgs.push(cmdArg);
347
+ }
348
+ else if (cmdArg === `--${stringName}`) {
349
+ flags[flagKey] = args[i + 1];
350
+ knownArgs.push(cmdArg);
351
+ knownArgs.push(args[i + 1]);
352
+ }
353
+ else if (cmdArg === `--${flagKey}`) {
354
+ flags[flagKey] = args[i + 1];
355
+ knownArgs.push(cmdArg);
356
+ knownArgs.push(args[i + 1]);
357
+ }
358
+ else if (cmdArg.startsWith(`--${flagKey}=`)) {
359
+ const values = cmdArg.split('=');
360
+ values.shift();
361
+ flags[flagKey] = values.join('=');
362
+ knownArgs.push(cmdArg);
363
+ }
364
+ else if (alias) {
365
+ if (cmdArg.startsWith(`-${alias}=`)) {
366
+ const values = cmdArg.split('=');
367
+ values.shift();
368
+ flags[flagKey] = values.join('=');
369
+ knownArgs.push(cmdArg);
370
+ }
371
+ else if (cmdArg === `-${alias}`) {
372
+ flags[flagKey] = args[i + 1];
373
+ knownArgs.push(args[i + 1]);
374
+ }
375
+ }
376
+ }
377
+ });
378
+ ARG_OPTS.number.forEach(numberName => {
379
+ const alias = ARG_OPTS.alias[numberName];
380
+ const flagKey = configCase(numberName);
381
+ if (typeof flags[flagKey] !== 'number') {
382
+ flags[flagKey] = null;
383
+ }
384
+ for (let i = 0; i < args.length; i++) {
385
+ const cmdArg = args[i];
386
+ if (cmdArg.startsWith(`--${numberName}=`)) {
387
+ const values = cmdArg.split('=');
388
+ values.shift();
389
+ flags[flagKey] = parseInt(values.join(''), 10);
390
+ knownArgs.push(cmdArg);
391
+ }
392
+ else if (cmdArg === `--${numberName}`) {
393
+ flags[flagKey] = parseInt(args[i + 1], 10);
394
+ knownArgs.push(args[i + 1]);
395
+ }
396
+ else if (cmdArg.startsWith(`--${flagKey}=`)) {
397
+ const values = cmdArg.split('=');
398
+ values.shift();
399
+ flags[flagKey] = parseInt(values.join(''), 10);
400
+ knownArgs.push(cmdArg);
401
+ }
402
+ else if (cmdArg === `--${flagKey}`) {
403
+ flags[flagKey] = parseInt(args[i + 1], 10);
404
+ knownArgs.push(args[i + 1]);
405
+ }
406
+ else if (alias) {
407
+ if (cmdArg.startsWith(`-${alias}=`)) {
408
+ const values = cmdArg.split('=');
409
+ values.shift();
410
+ flags[flagKey] = parseInt(values.join(''), 10);
411
+ knownArgs.push(cmdArg);
412
+ }
413
+ else if (cmdArg === `-${alias}`) {
414
+ flags[flagKey] = parseInt(args[i + 1], 10);
415
+ knownArgs.push(args[i + 1]);
416
+ }
417
+ }
418
+ }
419
+ });
420
+ };
421
+ const configCase = (prop) => {
422
+ prop = dashToPascalCase(prop);
423
+ return prop.charAt(0).toLowerCase() + prop.substr(1);
424
+ };
425
+ const ARG_OPTS = {
426
+ boolean: [
427
+ 'build',
428
+ 'cache',
429
+ 'check-version',
430
+ 'ci',
431
+ 'compare',
432
+ 'debug',
433
+ 'dev',
434
+ 'devtools',
435
+ 'docs',
436
+ 'e2e',
437
+ 'es5',
438
+ 'esm',
439
+ 'headless',
440
+ 'help',
441
+ 'log',
442
+ 'open',
443
+ 'prerender',
444
+ 'prerender-external',
445
+ 'prod',
446
+ 'profile',
447
+ 'service-worker',
448
+ 'screenshot',
449
+ 'serve',
450
+ 'skip-node-check',
451
+ 'spec',
452
+ 'ssr',
453
+ 'stats',
454
+ 'update-screenshot',
455
+ 'verbose',
456
+ 'version',
457
+ 'watch',
458
+ ],
459
+ number: ['max-workers', 'port'],
460
+ string: ['address', 'config', 'docs-json', 'emulate', 'log-level', 'root', 'screenshot-connector'],
461
+ alias: {
462
+ config: 'c',
463
+ help: 'h',
464
+ port: 'p',
465
+ version: 'v',
466
+ },
467
+ };
468
+ const getNpmConfigEnvArgs = (sys) => {
469
+ // process.env.npm_config_argv
470
+ // {"remain":["4444"],"cooked":["run","serve","--port","4444"],"original":["run","serve","--port","4444"]}
471
+ let args = [];
472
+ try {
473
+ const npmConfigArgs = sys.getEnvironmentVar('npm_config_argv');
474
+ if (npmConfigArgs) {
475
+ args = JSON.parse(npmConfigArgs).original;
476
+ if (args[0] === 'run') {
477
+ args = args.slice(2);
478
+ }
479
+ }
480
+ }
481
+ catch (e) { }
482
+ return args;
483
+ };
484
+
485
+ const dependencies = [
486
+ {
487
+ name: "@rindo/core",
488
+ version: "2.5.2",
489
+ main: "compiler/rindo.js",
490
+ resources: [
491
+ "package.json",
492
+ "compiler/lib.d.ts",
493
+ "compiler/lib.dom.d.ts",
494
+ "compiler/lib.dom.iterable.d.ts",
495
+ "compiler/lib.es2015.collection.d.ts",
496
+ "compiler/lib.es2015.core.d.ts",
497
+ "compiler/lib.es2015.d.ts",
498
+ "compiler/lib.es2015.generator.d.ts",
499
+ "compiler/lib.es2015.iterable.d.ts",
500
+ "compiler/lib.es2015.promise.d.ts",
501
+ "compiler/lib.es2015.proxy.d.ts",
502
+ "compiler/lib.es2015.reflect.d.ts",
503
+ "compiler/lib.es2015.symbol.d.ts",
504
+ "compiler/lib.es2015.symbol.wellknown.d.ts",
505
+ "compiler/lib.es2016.array.include.d.ts",
506
+ "compiler/lib.es2016.d.ts",
507
+ "compiler/lib.es2016.full.d.ts",
508
+ "compiler/lib.es2017.d.ts",
509
+ "compiler/lib.es2017.full.d.ts",
510
+ "compiler/lib.es2017.intl.d.ts",
511
+ "compiler/lib.es2017.object.d.ts",
512
+ "compiler/lib.es2017.sharedmemory.d.ts",
513
+ "compiler/lib.es2017.string.d.ts",
514
+ "compiler/lib.es2017.typedarrays.d.ts",
515
+ "compiler/lib.es2018.asyncgenerator.d.ts",
516
+ "compiler/lib.es2018.asynciterable.d.ts",
517
+ "compiler/lib.es2018.d.ts",
518
+ "compiler/lib.es2018.full.d.ts",
519
+ "compiler/lib.es2018.intl.d.ts",
520
+ "compiler/lib.es2018.promise.d.ts",
521
+ "compiler/lib.es2018.regexp.d.ts",
522
+ "compiler/lib.es2019.array.d.ts",
523
+ "compiler/lib.es2019.d.ts",
524
+ "compiler/lib.es2019.full.d.ts",
525
+ "compiler/lib.es2019.object.d.ts",
526
+ "compiler/lib.es2019.string.d.ts",
527
+ "compiler/lib.es2019.symbol.d.ts",
528
+ "compiler/lib.es2020.bigint.d.ts",
529
+ "compiler/lib.es2020.d.ts",
530
+ "compiler/lib.es2020.full.d.ts",
531
+ "compiler/lib.es2020.intl.d.ts",
532
+ "compiler/lib.es2020.promise.d.ts",
533
+ "compiler/lib.es2020.sharedmemory.d.ts",
534
+ "compiler/lib.es2020.string.d.ts",
535
+ "compiler/lib.es2020.symbol.wellknown.d.ts",
536
+ "compiler/lib.es5.d.ts",
537
+ "compiler/lib.es6.d.ts",
538
+ "compiler/lib.esnext.d.ts",
539
+ "compiler/lib.esnext.full.d.ts",
540
+ "compiler/lib.esnext.intl.d.ts",
541
+ "compiler/lib.esnext.promise.d.ts",
542
+ "compiler/lib.esnext.string.d.ts",
543
+ "compiler/lib.esnext.weakref.d.ts",
544
+ "compiler/lib.scripthost.d.ts",
545
+ "compiler/lib.webworker.d.ts",
546
+ "compiler/lib.webworker.importscripts.d.ts",
547
+ "compiler/lib.webworker.iterable.d.ts",
548
+ "internal/index.d.ts",
549
+ "internal/index.js",
550
+ "internal/package.json",
551
+ "internal/rindo-ext-modules.d.ts",
552
+ "internal/rindo-private.d.ts",
553
+ "internal/rindo-public-compiler.d.ts",
554
+ "internal/rindo-public-docs.d.ts",
555
+ "internal/rindo-public-runtime.d.ts",
556
+ "mock-doc/index.js",
557
+ "mock-doc/package.json",
558
+ "internal/client/css-shim.js",
559
+ "internal/client/dom.js",
560
+ "internal/client/index.js",
561
+ "internal/client/package.json",
562
+ "internal/client/patch-browser.js",
563
+ "internal/client/patch-esm.js",
564
+ "internal/client/shadow-css.js",
565
+ "internal/hydrate/index.js",
566
+ "internal/hydrate/package.json",
567
+ "internal/hydrate/runner.js",
568
+ "internal/hydrate/shadow-css.js",
569
+ "internal/rindo-core/index.d.ts",
570
+ "internal/rindo-core/index.js"
571
+ ]
572
+ },
573
+ {
574
+ name: "rollup",
575
+ version: "2.42.3",
576
+ main: "dist/es/rollup.browser.js"
577
+ },
578
+ {
579
+ name: "terser",
580
+ version: "5.6.1",
581
+ main: "dist/bundle.min.js"
582
+ },
583
+ {
584
+ name: "typescript",
585
+ version: "4.2.3",
586
+ main: "lib/typescript.js"
587
+ }
588
+ ];
589
+
590
+ const findConfig = async (opts) => {
591
+ const sys = opts.sys;
592
+ const cwd = sys.getCurrentDirectory();
593
+ const results = {
594
+ configPath: null,
595
+ rootDir: normalizePath(cwd),
596
+ diagnostics: [],
597
+ };
598
+ let configPath = opts.configPath;
599
+ if (isString(configPath)) {
600
+ if (!sys.platformPath.isAbsolute(configPath)) {
601
+ // passed in a custom rindo config location
602
+ // but it's relative, so prefix the cwd
603
+ configPath = normalizePath(sys.platformPath.join(cwd, configPath));
604
+ }
605
+ else {
606
+ // config path already an absolute path, we're good here
607
+ configPath = normalizePath(opts.configPath);
608
+ }
609
+ }
610
+ else {
611
+ // nothing was passed in, use the current working directory
612
+ configPath = results.rootDir;
613
+ }
614
+ const stat = await sys.stat(configPath);
615
+ if (stat.error) {
616
+ const diagnostic = buildError(results.diagnostics);
617
+ diagnostic.absFilePath = configPath;
618
+ diagnostic.header = `Invalid config path`;
619
+ diagnostic.messageText = `Config path "${configPath}" not found`;
620
+ return results;
621
+ }
622
+ if (stat.isFile) {
623
+ results.configPath = configPath;
624
+ results.rootDir = sys.platformPath.dirname(configPath);
625
+ }
626
+ else if (stat.isDirectory) {
627
+ // this is only a directory, so let's make some assumptions
628
+ for (const configName of ['rindo.config.ts', 'rindo.config.js']) {
629
+ const testConfigFilePath = sys.platformPath.join(configPath, configName);
630
+ const stat = await sys.stat(testConfigFilePath);
631
+ if (stat.isFile) {
632
+ results.configPath = testConfigFilePath;
633
+ results.rootDir = sys.platformPath.dirname(testConfigFilePath);
634
+ break;
635
+ }
636
+ }
637
+ }
638
+ return results;
639
+ };
640
+
641
+ const loadCoreCompiler = async (sys) => {
642
+ await sys.dynamicImport(sys.getCompilerExecutingPath());
643
+ return globalThis.rindo;
644
+ };
645
+
646
+ const startupLog = (logger, task) => {
647
+ if (task === 'info' || task === 'serve' || task === 'version') {
648
+ return;
649
+ }
650
+ logger.info(logger.cyan(`@rindo/core`));
651
+ };
652
+ const startupLogVersion = (logger, task, coreCompiler) => {
653
+ if (task === 'info' || task === 'serve' || task === 'version') {
654
+ return;
655
+ }
656
+ const isDevBuild = coreCompiler.version.includes('-dev.');
657
+ let startupMsg;
658
+ if (isDevBuild) {
659
+ startupMsg = logger.yellow('[LOCAL DEV]');
660
+ }
661
+ else {
662
+ startupMsg = logger.cyan(`v${coreCompiler.version}`);
663
+ }
664
+ startupMsg += logger.emoji(' ' + coreCompiler.vermoji);
665
+ logger.info(startupMsg);
666
+ };
667
+ const loadedCompilerLog = (sys, logger, flags, coreCompiler) => {
668
+ const sysDetails = sys.details;
669
+ const runtimeInfo = `${sys.name} ${sys.version}`;
670
+ const platformInfo = `${sysDetails.platform}, ${sysDetails.cpuModel}`;
671
+ const statsInfo = `cpus: ${sys.hardwareConcurrency}, freemem: ${Math.round(sysDetails.freemem() / 1000000)}MB, totalmem: ${Math.round(sysDetails.totalmem / 1000000)}MB`;
672
+ if (logger.getLevel() === 'debug') {
673
+ logger.debug(runtimeInfo);
674
+ logger.debug(platformInfo);
675
+ logger.debug(statsInfo);
676
+ logger.debug(`compiler: ${sys.getCompilerExecutingPath()}`);
677
+ logger.debug(`build: ${coreCompiler.buildId}`);
678
+ }
679
+ else if (flags.ci) {
680
+ logger.info(runtimeInfo);
681
+ logger.info(platformInfo);
682
+ logger.info(statsInfo);
683
+ }
684
+ };
685
+ const startupCompilerLog = (coreCompiler, config) => {
686
+ if (config.suppressLogs === true) {
687
+ return;
688
+ }
689
+ const { logger } = config;
690
+ const isDebug = logger.getLevel() === 'debug';
691
+ const isPrerelease = coreCompiler.version.includes('-');
692
+ const isDevBuild = coreCompiler.version.includes('-dev.');
693
+ if (isPrerelease && !isDevBuild) {
694
+ logger.warn(logger.yellow(`This is a prerelease build, undocumented changes might happen at any time. Technical support is not available for prereleases, but any assistance testing is appreciated.`));
695
+ }
696
+ if (config.devMode && !isDebug) {
697
+ if (config.buildEs5) {
698
+ logger.warn(`Generating ES5 during development is a very task expensive, initial and incremental builds will be much slower. Drop the '--es5' flag and use a modern browser for development.`);
699
+ }
700
+ if (!config.enableCache) {
701
+ logger.warn(`Disabling cache during development will slow down incremental builds.`);
702
+ }
703
+ }
704
+ };
705
+
706
+ const taskPrerender = async (coreCompiler, config) => {
707
+ startupCompilerLog(coreCompiler, config);
708
+ const hydrateAppFilePath = config.flags.unknownArgs[0];
709
+ if (typeof hydrateAppFilePath !== 'string') {
710
+ config.logger.error(`Missing hydrate app script path`);
711
+ return config.sys.exit(1);
712
+ }
713
+ const srcIndexHtmlPath = config.srcIndexHtml;
714
+ const diagnostics = await runPrerenderTask(coreCompiler, config, hydrateAppFilePath, null, srcIndexHtmlPath);
715
+ config.logger.printDiagnostics(diagnostics);
716
+ if (diagnostics.some(d => d.level === 'error')) {
717
+ return config.sys.exit(1);
718
+ }
719
+ };
720
+ const runPrerenderTask = async (coreCompiler, config, hydrateAppFilePath, componentGraph, srcIndexHtmlPath) => {
721
+ const diagnostics = [];
722
+ try {
723
+ const prerenderer = await coreCompiler.createPrerenderer(config);
724
+ const results = await prerenderer.start({
725
+ hydrateAppFilePath,
726
+ componentGraph,
727
+ srcIndexHtmlPath,
728
+ });
729
+ diagnostics.push(...results.diagnostics);
730
+ }
731
+ catch (e) {
732
+ catchError(diagnostics, e);
733
+ }
734
+ return diagnostics;
735
+ };
736
+
737
+ const startCheckVersion = async (config, currentVersion) => {
738
+ if (config.devMode && !config.flags.ci && !currentVersion.includes('-dev.') && isFunction(config.sys.checkVersion)) {
739
+ return config.sys.checkVersion(config.logger, currentVersion);
740
+ }
741
+ return null;
742
+ };
743
+ const printCheckVersionResults = async (versionChecker) => {
744
+ if (versionChecker) {
745
+ const checkVersionResults = await versionChecker;
746
+ if (isFunction(checkVersionResults)) {
747
+ checkVersionResults();
748
+ }
749
+ }
750
+ };
751
+
752
+ const taskWatch = async (coreCompiler, config) => {
753
+ let devServer = null;
754
+ let exitCode = 0;
755
+ try {
756
+ startupCompilerLog(coreCompiler, config);
757
+ const versionChecker = startCheckVersion(config, coreCompiler.version);
758
+ const compiler = await coreCompiler.createCompiler(config);
759
+ const watcher = await compiler.createWatcher();
760
+ if (config.flags.serve) {
761
+ const devServerPath = config.sys.getDevServerExecutingPath();
762
+ const { start } = await config.sys.dynamicImport(devServerPath);
763
+ devServer = await start(config.devServer, config.logger, watcher);
764
+ }
765
+ config.sys.onProcessInterrupt(() => {
766
+ config.logger.debug(`close watch`);
767
+ compiler && compiler.destroy();
768
+ });
769
+ const rmVersionCheckerLog = watcher.on('buildFinish', async () => {
770
+ // log the version check one time
771
+ rmVersionCheckerLog();
772
+ printCheckVersionResults(versionChecker);
773
+ });
774
+ if (devServer) {
775
+ const rmDevServerLog = watcher.on('buildFinish', () => {
776
+ // log the dev server url one time
777
+ rmDevServerLog();
778
+ config.logger.info(`${config.logger.cyan(devServer.browserUrl)}\n`);
779
+ });
780
+ }
781
+ const closeResults = await watcher.start();
782
+ if (closeResults.exitCode > 0) {
783
+ exitCode = closeResults.exitCode;
784
+ }
785
+ }
786
+ catch (e) {
787
+ exitCode = 1;
788
+ config.logger.error(e);
789
+ }
790
+ if (devServer) {
791
+ await devServer.close();
792
+ }
793
+ if (exitCode > 0) {
794
+ return config.sys.exit(exitCode);
795
+ }
796
+ };
797
+
798
+ const taskBuild = async (coreCompiler, config) => {
799
+ if (config.flags.watch) {
800
+ // watch build
801
+ await taskWatch(coreCompiler, config);
802
+ return;
803
+ }
804
+ // one-time build
805
+ let exitCode = 0;
806
+ try {
807
+ startupCompilerLog(coreCompiler, config);
808
+ const versionChecker = startCheckVersion(config, coreCompiler.version);
809
+ const compiler = await coreCompiler.createCompiler(config);
810
+ const results = await compiler.build();
811
+ await compiler.destroy();
812
+ if (results.hasError) {
813
+ exitCode = 1;
814
+ }
815
+ else if (config.flags.prerender) {
816
+ const prerenderDiagnostics = await runPrerenderTask(coreCompiler, config, results.hydrateAppFilePath, results.componentGraph, null);
817
+ config.logger.printDiagnostics(prerenderDiagnostics);
818
+ if (prerenderDiagnostics.some(d => d.level === 'error')) {
819
+ exitCode = 1;
820
+ }
821
+ }
822
+ await printCheckVersionResults(versionChecker);
823
+ }
824
+ catch (e) {
825
+ exitCode = 1;
826
+ config.logger.error(e);
827
+ }
828
+ if (exitCode > 0) {
829
+ return config.sys.exit(exitCode);
830
+ }
831
+ };
832
+
833
+ const isOutputTargetDocs = (o) => o.type === DOCS_README || o.type === DOCS_JSON || o.type === DOCS_CUSTOM || o.type === DOCS_VSCODE;
834
+ const DOCS_CUSTOM = 'docs-custom';
835
+ const DOCS_JSON = `docs-json`;
836
+ const DOCS_README = `docs-readme`;
837
+ const DOCS_VSCODE = `docs-vscode`;
838
+
839
+ const taskDocs = async (coreCompiler, config) => {
840
+ config.devServer = null;
841
+ config.outputTargets = config.outputTargets.filter(isOutputTargetDocs);
842
+ config.devMode = true;
843
+ startupCompilerLog(coreCompiler, config);
844
+ const compiler = await coreCompiler.createCompiler(config);
845
+ await compiler.build();
846
+ await compiler.destroy();
847
+ };
848
+
849
+ const IS_DENO_ENV = typeof Deno !== 'undefined';
850
+ const IS_NODE_ENV = !IS_DENO_ENV &&
851
+ typeof global !== 'undefined' &&
852
+ typeof require === 'function' &&
853
+ !!global.process &&
854
+ typeof __filename === 'string' &&
855
+ (!global.origin || typeof global.origin !== 'string');
856
+
857
+ /**
858
+ * Task to generate component boilerplate.
859
+ */
860
+ const taskGenerate = async (coreCompiler, config) => {
861
+ if (!IS_NODE_ENV) {
862
+ config.logger.error(`"generate" command is currently only implemented for a NodeJS environment`);
863
+ return config.sys.exit(1);
864
+ }
865
+ const path = coreCompiler.path;
866
+ if (!config.configPath) {
867
+ config.logger.error('Please run this command in your root directory (i. e. the one containing rindo.config.ts).');
868
+ return config.sys.exit(1);
869
+ }
870
+ const absoluteSrcDir = config.srcDir;
871
+ if (!absoluteSrcDir) {
872
+ config.logger.error(`Rindo's srcDir was not specified.`);
873
+ return config.sys.exit(1);
874
+ }
875
+ const { prompt } = await Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require('../sys/node/prompts.js')); });
876
+ const input = config.flags.unknownArgs.find(arg => !arg.startsWith('-')) ||
877
+ (await prompt({ name: 'tagName', type: 'text', message: 'Component tag name (dash-case):' })).tagName;
878
+ const { dir, base: componentName } = path.parse(input);
879
+ const tagError = validateComponentTag(componentName);
880
+ if (tagError) {
881
+ config.logger.error(tagError);
882
+ return config.sys.exit(1);
883
+ }
884
+ const extensionsToGenerate = ['tsx', ...(await chooseFilesToGenerate())];
885
+ const testFolder = extensionsToGenerate.some(isTest) ? 'test' : '';
886
+ const outDir = path.join(absoluteSrcDir, 'components', dir, componentName);
887
+ await config.sys.createDir(path.join(outDir, testFolder), { recursive: true });
888
+ const writtenFiles = await Promise.all(extensionsToGenerate.map(extension => writeFileByExtension(coreCompiler, config, outDir, componentName, extension, extensionsToGenerate.includes('css')))).catch(error => config.logger.error(error));
889
+ if (!writtenFiles) {
890
+ return config.sys.exit(1);
891
+ }
892
+ console.log();
893
+ console.log(`${config.logger.gray('$')} rindo generate ${input}`);
894
+ console.log();
895
+ console.log(config.logger.bold('The following files have been generated:'));
896
+ const absoluteRootDir = config.rootDir;
897
+ writtenFiles.map(file => console.log(` - ${path.relative(absoluteRootDir, file)}`));
898
+ };
899
+ /**
900
+ * Show a checkbox prompt to select the files to be generated.
901
+ */
902
+ const chooseFilesToGenerate = async () => {
903
+ const { prompt } = await Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require('../sys/node/prompts.js')); });
904
+ return (await prompt({
905
+ name: 'filesToGenerate',
906
+ type: 'multiselect',
907
+ message: 'Which additional files do you want to generate?',
908
+ choices: [
909
+ { value: 'css', title: 'Stylesheet (.css)', selected: true },
910
+ { value: 'spec.tsx', title: 'Spec Test (.spec.tsx)', selected: true },
911
+ { value: 'e2e.ts', title: 'E2E Test (.e2e.ts)', selected: true },
912
+ ],
913
+ })).filesToGenerate;
914
+ };
915
+ /**
916
+ * Get a file's boilerplate by its extension and write it to disk.
917
+ */
918
+ const writeFileByExtension = async (coreCompiler, config, path, name, extension, withCss) => {
919
+ if (isTest(extension)) {
920
+ path = coreCompiler.path.join(path, 'test');
921
+ }
922
+ const outFile = coreCompiler.path.join(path, `${name}.${extension}`);
923
+ const boilerplate = getBoilerplateByExtension(name, extension, withCss);
924
+ await config.sys.writeFile(outFile, boilerplate);
925
+ return outFile;
926
+ };
927
+ const isTest = (extension) => {
928
+ return extension === 'e2e.ts' || extension === 'spec.tsx';
929
+ };
930
+ /**
931
+ * Get the boilerplate for a file by its extension.
932
+ */
933
+ const getBoilerplateByExtension = (tagName, extension, withCss) => {
934
+ switch (extension) {
935
+ case 'tsx':
936
+ return getComponentBoilerplate(tagName, withCss);
937
+ case 'css':
938
+ return getStyleUrlBoilerplate();
939
+ case 'spec.tsx':
940
+ return getSpecTestBoilerplate(tagName);
941
+ case 'e2e.ts':
942
+ return getE2eTestBoilerplate(tagName);
943
+ default:
944
+ throw new Error(`Unkown extension "${extension}".`);
945
+ }
946
+ };
947
+ /**
948
+ * Get the boilerplate for a component.
949
+ */
950
+ const getComponentBoilerplate = (tagName, hasStyle) => {
951
+ const decorator = [`{`];
952
+ decorator.push(` tag: '${tagName}',`);
953
+ if (hasStyle) {
954
+ decorator.push(` styleUrl: '${tagName}.css',`);
955
+ }
956
+ decorator.push(` shadow: true,`);
957
+ decorator.push(`}`);
958
+ return `import { Component, Host, h } from '@rindo/core';
959
+
960
+ @Component(${decorator.join('\n')})
961
+ export class ${toPascalCase(tagName)} {
962
+
963
+ render() {
964
+ return (
965
+ <Host>
966
+ <slot></slot>
967
+ </Host>
968
+ );
969
+ }
970
+
971
+ }
972
+ `;
973
+ };
974
+ /**
975
+ * Get the boilerplate for style.
976
+ */
977
+ const getStyleUrlBoilerplate = () => `:host {
978
+ display: block;
979
+ }
980
+ `;
981
+ /**
982
+ * Get the boilerplate for a spec test.
983
+ */
984
+ const getSpecTestBoilerplate = (tagName) => `import { newSpecPage } from '@rindo/core/testing';
985
+ import { ${toPascalCase(tagName)} } from '../${tagName}';
986
+
987
+ describe('${tagName}', () => {
988
+ it('renders', async () => {
989
+ const page = await newSpecPage({
990
+ components: [${toPascalCase(tagName)}],
991
+ html: \`<${tagName}></${tagName}>\`,
992
+ });
993
+ expect(page.root).toEqualHtml(\`
994
+ <${tagName}>
995
+ <mock:shadow-root>
996
+ <slot></slot>
997
+ </mock:shadow-root>
998
+ </${tagName}>
999
+ \`);
1000
+ });
1001
+ });
1002
+ `;
1003
+ /**
1004
+ * Get the boilerplate for an E2E test.
1005
+ */
1006
+ const getE2eTestBoilerplate = (name) => `import { newE2EPage } from '@rindo/core/testing';
1007
+
1008
+ describe('${name}', () => {
1009
+ it('renders', async () => {
1010
+ const page = await newE2EPage();
1011
+ await page.setContent('<${name}></${name}>');
1012
+
1013
+ const element = await page.find('${name}');
1014
+ expect(element).toHaveClass('hydrated');
1015
+ });
1016
+ });
1017
+ `;
1018
+ /**
1019
+ * Convert a dash case string to pascal case.
1020
+ */
1021
+ const toPascalCase = (str) => str.split('-').reduce((res, part) => res + part[0].toUpperCase() + part.substr(1), '');
1022
+
1023
+ const taskHelp = (sys, logger) => {
1024
+ const p = logger.dim(sys.details.platform === 'windows' ? '>' : '$');
1025
+ console.log(`
1026
+ ${logger.bold('Build:')} ${logger.dim('Build components for development or production.')}
1027
+
1028
+ ${p} ${logger.green('rindo build [--dev] [--watch] [--prerender] [--debug]')}
1029
+
1030
+ ${logger.cyan('--dev')} ${logger.dim('.............')} Development build
1031
+ ${logger.cyan('--watch')} ${logger.dim('...........')} Rebuild when files update
1032
+ ${logger.cyan('--serve')} ${logger.dim('...........')} Start the dev-server
1033
+ ${logger.cyan('--prerender')} ${logger.dim('.......')} Prerender the application
1034
+ ${logger.cyan('--docs')} ${logger.dim('............')} Generate component readme.md docs
1035
+ ${logger.cyan('--config')} ${logger.dim('..........')} Set rindo config file
1036
+ ${logger.cyan('--stats')} ${logger.dim('...........')} Write rindo-stats.json file
1037
+ ${logger.cyan('--log')} ${logger.dim('.............')} Write rindo-build.log file
1038
+ ${logger.cyan('--debug')} ${logger.dim('...........')} Set the log level to debug
1039
+
1040
+
1041
+ ${logger.bold('Test:')} ${logger.dim('Run unit and end-to-end tests.')}
1042
+
1043
+ ${p} ${logger.green('rindo test [--spec] [--e2e]')}
1044
+
1045
+ ${logger.cyan('--spec')} ${logger.dim('............')} Run unit tests with Jest
1046
+ ${logger.cyan('--e2e')} ${logger.dim('.............')} Run e2e tests with Puppeteer
1047
+
1048
+
1049
+ ${logger.bold('Generate:')} ${logger.dim('Bootstrap components.')}
1050
+
1051
+ ${p} ${logger.green('rindo generate')} or ${logger.green('rindo g')}
1052
+
1053
+
1054
+ ${logger.bold('Examples:')}
1055
+
1056
+ ${p} ${logger.green('rindo build --dev --watch --serve')}
1057
+ ${p} ${logger.green('rindo build --prerender')}
1058
+ ${p} ${logger.green('rindo test --spec --e2e')}
1059
+ ${p} ${logger.green('rindo generate')}
1060
+ ${p} ${logger.green('rindo g my-component')}
1061
+
1062
+ `);
1063
+ };
1064
+
1065
+ const taskInfo = (coreCompiler, sys, logger) => {
1066
+ const details = sys.details;
1067
+ const versions = coreCompiler.versions;
1068
+ console.log(``);
1069
+ console.log(`${logger.cyan(' System:')} ${sys.name} ${sys.version}`);
1070
+ console.log(`${logger.cyan(' Plaform:')} ${details.platform} (${details.release})`);
1071
+ console.log(`${logger.cyan(' CPU Model:')} ${details.cpuModel} (${sys.hardwareConcurrency} cpu${sys.hardwareConcurrency !== 1 ? 's' : ''})`);
1072
+ console.log(`${logger.cyan(' Compiler:')} ${sys.getCompilerExecutingPath()}`);
1073
+ console.log(`${logger.cyan(' Build:')} ${coreCompiler.buildId}`);
1074
+ console.log(`${logger.cyan(' Rindo:')} ${coreCompiler.version}${logger.emoji(' ' + coreCompiler.vermoji)}`);
1075
+ console.log(`${logger.cyan(' TypeScript:')} ${versions.typescript}`);
1076
+ console.log(`${logger.cyan(' Rollup:')} ${versions.rollup}`);
1077
+ console.log(`${logger.cyan(' Parse5:')} ${versions.parse5}`);
1078
+ console.log(`${logger.cyan(' Sizzle:')} ${versions.sizzle}`);
1079
+ console.log(`${logger.cyan(' Terser:')} ${versions.terser}`);
1080
+ console.log(``);
1081
+ };
1082
+
1083
+ const taskServe = async (config) => {
1084
+ config.suppressLogs = true;
1085
+ config.flags.serve = true;
1086
+ config.devServer.openBrowser = config.flags.open;
1087
+ config.devServer.reloadStrategy = null;
1088
+ config.devServer.initialLoadUrl = '/';
1089
+ config.devServer.websocket = false;
1090
+ config.maxConcurrentWorkers = 1;
1091
+ config.devServer.root = isString(config.flags.root) ? config.flags.root : config.sys.getCurrentDirectory();
1092
+ const devServerPath = config.sys.getDevServerExecutingPath();
1093
+ const { start } = await config.sys.dynamicImport(devServerPath);
1094
+ const devServer = await start(config.devServer, config.logger);
1095
+ console.log(`${config.logger.cyan(' Root:')} ${devServer.root}`);
1096
+ console.log(`${config.logger.cyan(' Address:')} ${devServer.address}`);
1097
+ console.log(`${config.logger.cyan(' Port:')} ${devServer.port}`);
1098
+ console.log(`${config.logger.cyan(' Server:')} ${devServer.browserUrl}`);
1099
+ console.log(``);
1100
+ config.sys.onProcessInterrupt(() => {
1101
+ if (devServer) {
1102
+ config.logger.debug(`dev server close: ${devServer.browserUrl}`);
1103
+ devServer.close();
1104
+ }
1105
+ });
1106
+ };
1107
+
1108
+ const taskTest = async (config) => {
1109
+ if (!IS_NODE_ENV) {
1110
+ config.logger.error(`"test" command is currently only implemented for a NodeJS environment`);
1111
+ return config.sys.exit(1);
1112
+ }
1113
+ try {
1114
+ config.buildDocs = false;
1115
+ const testingRunOpts = {
1116
+ e2e: !!config.flags.e2e,
1117
+ screenshot: !!config.flags.screenshot,
1118
+ spec: !!config.flags.spec,
1119
+ updateScreenshot: !!config.flags.updateScreenshot,
1120
+ };
1121
+ // always ensure we have jest modules installed
1122
+ const ensureModuleIds = ['@types/jest', 'jest', 'jest-cli'];
1123
+ if (testingRunOpts.e2e) {
1124
+ // if it's an e2e test, also make sure we're got
1125
+ // puppeteer modules installed and if browserExecutablePath is provided don't download Chromium use only puppeteer-core instead
1126
+ const puppeteer = config.testing.browserExecutablePath ? 'puppeteer-core' : 'puppeteer';
1127
+ ensureModuleIds.push('@types/puppeteer', puppeteer);
1128
+ if (testingRunOpts.screenshot) {
1129
+ // ensure we've got pixelmatch for screenshots
1130
+ config.logger.warn(config.logger.yellow(`EXPERIMENTAL: screenshot visual diff testing is currently under heavy development and has not reached a stable status. However, any assistance testing would be appreciated.`));
1131
+ }
1132
+ }
1133
+ // ensure we've got the required modules installed
1134
+ const diagnostics = await config.sys.lazyRequire.ensure(config.rootDir, ensureModuleIds);
1135
+ if (diagnostics.length > 0) {
1136
+ config.logger.printDiagnostics(diagnostics);
1137
+ return config.sys.exit(1);
1138
+ }
1139
+ // let's test!
1140
+ const { createTesting } = await Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require('../testing/index.js')); });
1141
+ const testing = await createTesting(config);
1142
+ const passed = await testing.run(testingRunOpts);
1143
+ await testing.destroy();
1144
+ if (!passed) {
1145
+ return config.sys.exit(1);
1146
+ }
1147
+ }
1148
+ catch (e) {
1149
+ config.logger.error(e);
1150
+ return config.sys.exit(1);
1151
+ }
1152
+ };
1153
+
1154
+ const run = async (init) => {
1155
+ const { args, logger, sys } = init;
1156
+ try {
1157
+ const flags = parseFlags(args, sys);
1158
+ const task = flags.task;
1159
+ if (flags.debug || flags.verbose) {
1160
+ logger.setLevel('debug');
1161
+ }
1162
+ if (flags.ci) {
1163
+ logger.enableColors(false);
1164
+ }
1165
+ if (isFunction(sys.applyGlobalPatch)) {
1166
+ sys.applyGlobalPatch(sys.getCurrentDirectory());
1167
+ }
1168
+ if (task === 'help' || flags.help) {
1169
+ taskHelp(sys, logger);
1170
+ return;
1171
+ }
1172
+ startupLog(logger, task);
1173
+ const findConfigResults = await findConfig({ sys, configPath: flags.config });
1174
+ if (hasError(findConfigResults.diagnostics)) {
1175
+ logger.printDiagnostics(findConfigResults.diagnostics);
1176
+ return sys.exit(1);
1177
+ }
1178
+ const ensureDepsResults = await sys.ensureDependencies({
1179
+ rootDir: findConfigResults.rootDir,
1180
+ logger,
1181
+ dependencies: dependencies,
1182
+ });
1183
+ if (hasError(ensureDepsResults.diagnostics)) {
1184
+ logger.printDiagnostics(ensureDepsResults.diagnostics);
1185
+ return sys.exit(1);
1186
+ }
1187
+ const coreCompiler = await loadCoreCompiler(sys);
1188
+ if (task === 'version' || flags.version) {
1189
+ console.log(coreCompiler.version);
1190
+ return;
1191
+ }
1192
+ startupLogVersion(logger, task, coreCompiler);
1193
+ loadedCompilerLog(sys, logger, flags, coreCompiler);
1194
+ if (task === 'info') {
1195
+ taskInfo(coreCompiler, sys, logger);
1196
+ return;
1197
+ }
1198
+ const validated = await coreCompiler.loadConfig({
1199
+ config: {
1200
+ flags,
1201
+ },
1202
+ configPath: findConfigResults.configPath,
1203
+ logger,
1204
+ sys,
1205
+ });
1206
+ if (validated.diagnostics.length > 0) {
1207
+ logger.printDiagnostics(validated.diagnostics);
1208
+ if (hasError(validated.diagnostics)) {
1209
+ return sys.exit(1);
1210
+ }
1211
+ }
1212
+ if (isFunction(sys.applyGlobalPatch)) {
1213
+ sys.applyGlobalPatch(validated.config.rootDir);
1214
+ }
1215
+ await sys.ensureResources({ rootDir: validated.config.rootDir, logger, dependencies: dependencies });
1216
+ await runTask(coreCompiler, validated.config, task);
1217
+ }
1218
+ catch (e) {
1219
+ if (!shouldIgnoreError(e)) {
1220
+ logger.error(`uncaught cli error: ${e}${logger.getLevel() === 'debug' ? e.stack : ''}`);
1221
+ return sys.exit(1);
1222
+ }
1223
+ }
1224
+ };
1225
+ const runTask = async (coreCompiler, config, task) => {
1226
+ config.flags = config.flags || {};
1227
+ config.outputTargets = config.outputTargets || [];
1228
+ switch (task) {
1229
+ case 'build':
1230
+ await taskBuild(coreCompiler, config);
1231
+ break;
1232
+ case 'docs':
1233
+ await taskDocs(coreCompiler, config);
1234
+ break;
1235
+ case 'help':
1236
+ taskHelp(config.sys, config.logger);
1237
+ break;
1238
+ case 'generate':
1239
+ case 'g':
1240
+ await taskGenerate(coreCompiler, config);
1241
+ break;
1242
+ case 'prerender':
1243
+ await taskPrerender(coreCompiler, config);
1244
+ break;
1245
+ case 'serve':
1246
+ await taskServe(config);
1247
+ break;
1248
+ case 'test':
1249
+ await taskTest(config);
1250
+ break;
1251
+ case 'version':
1252
+ console.log(coreCompiler.version);
1253
+ break;
1254
+ default:
1255
+ config.logger.error(`${config.logger.emoji('❌ ')}Invalid rindo command, please see the options below:`);
1256
+ taskHelp(config.sys, config.logger);
1257
+ return config.sys.exit(1);
1258
+ }
1259
+ };
1260
+
1261
+ exports.parseFlags = parseFlags;
1262
+ exports.run = run;
1263
+ exports.runTask = runTask;