piral-cli 1.0.0-pre.2217 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (408) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +30 -7
  3. package/lib/api.js +23 -23
  4. package/lib/api.js.map +1 -1
  5. package/lib/apps/add-piral-instance-pilet.d.ts +26 -0
  6. package/lib/apps/add-piral-instance-pilet.js +53 -0
  7. package/lib/apps/add-piral-instance-pilet.js.map +1 -0
  8. package/lib/apps/build-pilet.d.ts +33 -2
  9. package/lib/apps/build-pilet.js +159 -32
  10. package/lib/apps/build-pilet.js.map +1 -1
  11. package/lib/apps/build-piral.d.ts +18 -1
  12. package/lib/apps/build-piral.js +68 -52
  13. package/lib/apps/build-piral.js.map +1 -1
  14. package/lib/apps/debug-pilet.d.ts +38 -2
  15. package/lib/apps/debug-pilet.js +150 -108
  16. package/lib/apps/debug-pilet.js.map +1 -1
  17. package/lib/apps/debug-piral.d.ts +23 -0
  18. package/lib/apps/debug-piral.js +63 -52
  19. package/lib/apps/debug-piral.js.map +1 -1
  20. package/lib/apps/declaration-piral.js +5 -3
  21. package/lib/apps/declaration-piral.js.map +1 -1
  22. package/lib/apps/index.d.ts +3 -0
  23. package/lib/apps/index.js +8 -1
  24. package/lib/apps/index.js.map +1 -1
  25. package/lib/apps/new-pilet.d.ts +7 -3
  26. package/lib/apps/new-pilet.js +47 -52
  27. package/lib/apps/new-pilet.js.map +1 -1
  28. package/lib/apps/new-piral.d.ts +7 -3
  29. package/lib/apps/new-piral.js +33 -23
  30. package/lib/apps/new-piral.js.map +1 -1
  31. package/lib/apps/pack-pilet.d.ts +9 -0
  32. package/lib/apps/pack-pilet.js +6 -13
  33. package/lib/apps/pack-pilet.js.map +1 -1
  34. package/lib/apps/publish-pilet.d.ts +23 -3
  35. package/lib/apps/publish-pilet.js +112 -62
  36. package/lib/apps/publish-pilet.js.map +1 -1
  37. package/lib/apps/publish-piral.d.ts +6 -2
  38. package/lib/apps/publish-piral.js +30 -26
  39. package/lib/apps/publish-piral.js.map +1 -1
  40. package/lib/apps/remove-piral-instance-pilet.d.ts +22 -0
  41. package/lib/apps/remove-piral-instance-pilet.js +52 -0
  42. package/lib/apps/remove-piral-instance-pilet.js.map +1 -0
  43. package/lib/apps/run-emulator-piral.d.ts +34 -0
  44. package/lib/apps/run-emulator-piral.js +91 -0
  45. package/lib/apps/run-emulator-piral.js.map +1 -0
  46. package/lib/apps/upgrade-pilet.d.ts +6 -2
  47. package/lib/apps/upgrade-pilet.js +41 -43
  48. package/lib/apps/upgrade-pilet.js.map +1 -1
  49. package/lib/apps/upgrade-piral.d.ts +2 -2
  50. package/lib/apps/upgrade-piral.js +21 -20
  51. package/lib/apps/upgrade-piral.js.map +1 -1
  52. package/lib/apps/validate-pilet.js +30 -36
  53. package/lib/apps/validate-pilet.js.map +1 -1
  54. package/lib/apps/validate-piral.js +13 -10
  55. package/lib/apps/validate-piral.js.map +1 -1
  56. package/lib/build/bundler-calls.d.ts +3 -0
  57. package/lib/build/bundler-calls.js +117 -0
  58. package/lib/build/bundler-calls.js.map +1 -0
  59. package/lib/build/run-build-pilet.d.ts +1 -0
  60. package/lib/build/run-build-pilet.js +65 -0
  61. package/lib/build/run-build-pilet.js.map +1 -0
  62. package/lib/build/run-build-piral.d.ts +1 -0
  63. package/lib/build/run-build-piral.js +67 -0
  64. package/lib/build/run-build-piral.js.map +1 -0
  65. package/lib/build/run-debug-mono-piral.d.ts +1 -0
  66. package/lib/build/run-debug-mono-piral.js +70 -0
  67. package/lib/build/run-debug-mono-piral.js.map +1 -0
  68. package/lib/build/run-debug-pilet.d.ts +1 -0
  69. package/lib/build/run-debug-pilet.js +89 -0
  70. package/lib/build/run-debug-pilet.js.map +1 -0
  71. package/lib/build/run-debug-piral.d.ts +1 -0
  72. package/lib/build/run-debug-piral.js +85 -0
  73. package/lib/build/run-debug-piral.js.map +1 -0
  74. package/lib/bundler.js +75 -26
  75. package/lib/bundler.js.map +1 -1
  76. package/lib/cli.js +7 -4
  77. package/lib/cli.js.map +1 -1
  78. package/lib/commands.js +266 -46
  79. package/lib/commands.js.map +1 -1
  80. package/lib/common/archive.d.ts +4 -0
  81. package/lib/common/archive.js +31 -10
  82. package/lib/common/archive.js.map +1 -1
  83. package/lib/common/browser.d.ts +2 -1
  84. package/lib/common/browser.js +17 -8
  85. package/lib/common/browser.js.map +1 -1
  86. package/lib/common/clients/index.d.ts +21 -0
  87. package/lib/common/clients/index.js +48 -0
  88. package/lib/common/clients/index.js.map +1 -0
  89. package/lib/common/clients/lerna.d.ts +7 -1
  90. package/lib/common/clients/lerna.js +93 -7
  91. package/lib/common/clients/lerna.js.map +1 -1
  92. package/lib/common/clients/npm.d.ts +6 -1
  93. package/lib/common/clients/npm.js +66 -18
  94. package/lib/common/clients/npm.js.map +1 -1
  95. package/lib/common/clients/pnp.d.ts +7 -0
  96. package/lib/common/clients/pnp.js +104 -0
  97. package/lib/common/clients/pnp.js.map +1 -0
  98. package/lib/common/clients/pnpm.d.ts +5 -0
  99. package/lib/common/clients/pnpm.js +55 -6
  100. package/lib/common/clients/pnpm.js.map +1 -1
  101. package/lib/common/clients/rush.d.ts +7 -0
  102. package/lib/common/clients/rush.js +127 -0
  103. package/lib/common/clients/rush.js.map +1 -0
  104. package/lib/common/clients/yarn.d.ts +5 -0
  105. package/lib/common/clients/yarn.js +57 -6
  106. package/lib/common/clients/yarn.js.map +1 -1
  107. package/lib/common/compatibility.js +14 -9
  108. package/lib/common/compatibility.js.map +1 -1
  109. package/lib/common/config.d.ts +52 -1
  110. package/lib/common/config.js +10 -30
  111. package/lib/common/config.js.map +1 -1
  112. package/lib/common/constants.d.ts +10 -2
  113. package/lib/common/constants.js +22 -4
  114. package/lib/common/constants.js.map +1 -1
  115. package/lib/common/declaration.d.ts +2 -1
  116. package/lib/common/declaration.js +113 -56
  117. package/lib/common/declaration.js.map +1 -1
  118. package/lib/common/emoji.d.ts +8 -0
  119. package/lib/common/emoji.js +10 -1
  120. package/lib/common/emoji.js.map +1 -1
  121. package/lib/common/emulator.d.ts +2 -2
  122. package/lib/common/emulator.js +45 -32
  123. package/lib/common/emulator.js.map +1 -1
  124. package/lib/common/enums.d.ts +0 -4
  125. package/lib/common/enums.js +1 -6
  126. package/lib/common/enums.js.map +1 -1
  127. package/lib/common/envs.js +16 -5
  128. package/lib/common/envs.js.map +1 -1
  129. package/lib/common/hash.d.ts +1 -0
  130. package/lib/common/hash.js +8 -3
  131. package/lib/common/hash.js.map +1 -1
  132. package/lib/common/http.d.ts +5 -2
  133. package/lib/common/http.js +65 -23
  134. package/lib/common/http.js.map +1 -1
  135. package/lib/common/importmap.d.ts +2 -0
  136. package/lib/common/importmap.js +202 -0
  137. package/lib/common/importmap.js.map +1 -0
  138. package/lib/common/index.d.ts +10 -0
  139. package/lib/common/index.js +15 -1
  140. package/lib/common/index.js.map +1 -1
  141. package/lib/common/info.d.ts +5 -0
  142. package/lib/common/info.js +9 -2
  143. package/lib/common/info.js.map +1 -1
  144. package/lib/common/injectors.d.ts +36 -8
  145. package/lib/common/injectors.js +46 -19
  146. package/lib/common/injectors.js.map +1 -1
  147. package/lib/common/inspect.d.ts +5 -3
  148. package/lib/common/inspect.js +15 -15
  149. package/lib/common/inspect.js.map +1 -1
  150. package/lib/common/interactive.d.ts +9 -0
  151. package/lib/common/interactive.js +60 -1
  152. package/lib/common/interactive.js.map +1 -1
  153. package/lib/common/io.d.ts +9 -3
  154. package/lib/common/io.js +219 -116
  155. package/lib/common/io.js.map +1 -1
  156. package/lib/common/language.d.ts +9 -6
  157. package/lib/common/language.js +68 -12
  158. package/lib/common/language.js.map +1 -1
  159. package/lib/common/log.d.ts +5 -3
  160. package/lib/common/log.js +34 -48
  161. package/lib/common/log.js.map +1 -1
  162. package/lib/common/npm.d.ts +17 -16
  163. package/lib/common/npm.js +262 -158
  164. package/lib/common/npm.js.map +1 -1
  165. package/lib/common/pack.js +47 -26
  166. package/lib/common/pack.js.map +1 -1
  167. package/lib/common/package.d.ts +43 -20
  168. package/lib/common/package.js +377 -213
  169. package/lib/common/package.js.map +1 -1
  170. package/lib/common/parallel.d.ts +1 -0
  171. package/lib/common/parallel.js +29 -0
  172. package/lib/common/parallel.js.map +1 -0
  173. package/lib/common/patcher.js +20 -20
  174. package/lib/common/patcher.js.map +1 -1
  175. package/lib/common/platform.d.ts +13 -0
  176. package/lib/common/platform.js +29 -0
  177. package/lib/common/platform.js.map +1 -0
  178. package/lib/common/port.d.ts +1 -0
  179. package/lib/common/port.js +14 -4
  180. package/lib/common/port.js.map +1 -1
  181. package/lib/common/rules.js +4 -4
  182. package/lib/common/rules.js.map +1 -1
  183. package/lib/common/scaffold.d.ts +18 -4
  184. package/lib/common/scaffold.js +59 -36
  185. package/lib/common/scaffold.js.map +1 -1
  186. package/lib/common/scripts.js +8 -8
  187. package/lib/common/scripts.js.map +1 -1
  188. package/lib/common/shell.d.ts +2 -0
  189. package/lib/common/shell.js +33 -0
  190. package/lib/common/shell.js.map +1 -0
  191. package/lib/common/spec.d.ts +29 -0
  192. package/lib/common/spec.js +69 -0
  193. package/lib/common/spec.js.map +1 -0
  194. package/lib/common/template.d.ts +1 -2
  195. package/lib/common/template.js +23 -22
  196. package/lib/common/template.js.map +1 -1
  197. package/lib/common/url.d.ts +1 -0
  198. package/lib/common/url.js +17 -0
  199. package/lib/common/url.js.map +1 -0
  200. package/lib/common/utils.d.ts +1 -0
  201. package/lib/common/utils.js +8 -0
  202. package/lib/common/utils.js.map +1 -0
  203. package/lib/common/version.d.ts +2 -0
  204. package/lib/common/version.js +130 -0
  205. package/lib/common/version.js.map +1 -0
  206. package/lib/common/watcher.d.ts +13 -0
  207. package/lib/common/watcher.js +78 -0
  208. package/lib/common/watcher.js.map +1 -0
  209. package/lib/external/index.js +59413 -57862
  210. package/lib/helpers.d.ts +6 -6
  211. package/lib/helpers.js +10 -25
  212. package/lib/helpers.js.map +1 -1
  213. package/lib/index.js +5 -1
  214. package/lib/index.js.map +1 -1
  215. package/lib/inject.js +2 -2
  216. package/lib/inject.js.map +1 -1
  217. package/lib/injectors/pilet-injector.d.ts +75 -0
  218. package/lib/injectors/pilet-injector.js +246 -0
  219. package/lib/injectors/pilet-injector.js.map +1 -0
  220. package/lib/injectors/{piral.d.ts → piral-injector.d.ts} +10 -2
  221. package/lib/injectors/piral-injector.js +97 -0
  222. package/lib/injectors/piral-injector.js.map +1 -0
  223. package/lib/messages.d.ts +567 -47
  224. package/lib/messages.js +638 -51
  225. package/lib/messages.js.map +1 -1
  226. package/lib/pb-cli.js +1 -1
  227. package/lib/pb-cli.js.map +1 -1
  228. package/lib/pilet-cli.js +1 -1
  229. package/lib/pilet-cli.js.map +1 -1
  230. package/lib/piral-cli.js +1 -1
  231. package/lib/piral-cli.js.map +1 -1
  232. package/lib/platforms/node.d.ts +8 -0
  233. package/lib/platforms/node.js +30 -0
  234. package/lib/platforms/node.js.map +1 -0
  235. package/lib/platforms/web.d.ts +8 -0
  236. package/lib/platforms/web.js +120 -0
  237. package/lib/platforms/web.js.map +1 -0
  238. package/lib/plugin.js +36 -11
  239. package/lib/plugin.js.map +1 -1
  240. package/lib/questionnaire.d.ts +1 -1
  241. package/lib/questionnaire.js +9 -4
  242. package/lib/questionnaire.js.map +1 -1
  243. package/lib/release.d.ts +1 -1
  244. package/lib/release.js +38 -6
  245. package/lib/release.js.map +1 -1
  246. package/lib/resolvers.js +13 -13
  247. package/lib/resolvers.js.map +1 -1
  248. package/lib/rules/index.js +8 -8
  249. package/lib/rules/index.js.map +1 -1
  250. package/lib/rules/pilet-has-externals-as-peers.d.ts +1 -1
  251. package/lib/rules/pilet-has-externals-as-peers.js +9 -7
  252. package/lib/rules/pilet-has-externals-as-peers.js.map +1 -1
  253. package/lib/rules/pilet-has-no-self-reference.d.ts +1 -1
  254. package/lib/rules/pilet-has-no-self-reference.js +2 -2
  255. package/lib/rules/pilet-has-no-self-reference.js.map +1 -1
  256. package/lib/rules/pilet-has-no-third-party-dependency.d.ts +1 -1
  257. package/lib/rules/pilet-stays-small.d.ts +1 -1
  258. package/lib/rules/pilet-stays-small.js +4 -4
  259. package/lib/rules/pilet-stays-small.js.map +1 -1
  260. package/lib/rules/pilet-uses-latest-piral.d.ts +1 -1
  261. package/lib/rules/pilet-uses-latest-piral.js +18 -9
  262. package/lib/rules/pilet-uses-latest-piral.js.map +1 -1
  263. package/lib/rules/piral-depends-on-piral.d.ts +1 -1
  264. package/lib/rules/piral-entry-ends-with-html.d.ts +1 -1
  265. package/lib/rules/piral-entry-ends-with-html.js +1 -1
  266. package/lib/rules/piral-entry-ends-with-html.js.map +1 -1
  267. package/lib/rules/piral-has-valid-devDependencies.d.ts +1 -1
  268. package/lib/rules/piral-has-valid-externals.d.ts +1 -1
  269. package/lib/rules/piral-has-valid-externals.js +10 -24
  270. package/lib/rules/piral-has-valid-externals.js.map +1 -1
  271. package/lib/rules/piral-has-valid-files.d.ts +1 -1
  272. package/lib/rules/piral-has-valid-files.js +5 -5
  273. package/lib/rules/piral-has-valid-files.js.map +1 -1
  274. package/lib/rules/piral-has-valid-scripts.d.ts +1 -1
  275. package/lib/runner.js +1 -1
  276. package/lib/runner.js.map +1 -1
  277. package/lib/select.js +6 -6
  278. package/lib/select.js.map +1 -1
  279. package/lib/types/common.d.ts +88 -8
  280. package/lib/types/common.js.map +1 -1
  281. package/lib/types/index.js +5 -1
  282. package/lib/types/index.js.map +1 -1
  283. package/lib/types/internal.d.ts +12 -13
  284. package/lib/types/public.d.ts +89 -23
  285. package/package.json +19 -16
  286. package/src/apps/add-piral-instance-pilet.ts +98 -0
  287. package/src/apps/build-pilet.ts +286 -38
  288. package/src/apps/build-piral.test.ts +20 -7
  289. package/src/apps/build-piral.ts +90 -39
  290. package/src/apps/debug-pilet.ts +229 -123
  291. package/src/apps/debug-piral.ts +121 -68
  292. package/src/apps/declaration-piral.ts +4 -2
  293. package/src/apps/index.ts +3 -0
  294. package/src/apps/new-pilet.test.ts +28 -11
  295. package/src/apps/new-pilet.ts +60 -48
  296. package/src/apps/new-piral.test.ts +25 -13
  297. package/src/apps/new-piral.ts +43 -19
  298. package/src/apps/pack-pilet.test.ts +2 -2
  299. package/src/apps/pack-pilet.ts +12 -10
  300. package/src/apps/publish-pilet.ts +148 -43
  301. package/src/apps/publish-piral.ts +38 -11
  302. package/src/apps/remove-piral-instance-pilet.ts +92 -0
  303. package/src/apps/run-emulator-piral.ts +154 -0
  304. package/src/apps/upgrade-pilet.ts +37 -31
  305. package/src/apps/upgrade-piral.ts +9 -7
  306. package/src/apps/validate-pilet.ts +30 -22
  307. package/src/apps/validate-piral.ts +5 -2
  308. package/src/build/bundler-calls.ts +133 -0
  309. package/src/build/run-build-pilet.ts +91 -0
  310. package/src/build/run-build-piral.ts +93 -0
  311. package/src/build/run-debug-mono-piral.ts +86 -0
  312. package/src/build/run-debug-pilet.ts +116 -0
  313. package/src/build/run-debug-piral.ts +105 -0
  314. package/src/bundler.test.ts +86 -68
  315. package/src/bundler.ts +74 -19
  316. package/src/cli.ts +6 -2
  317. package/src/commands.ts +273 -44
  318. package/src/common/archive.test.ts +51 -45
  319. package/src/common/archive.ts +28 -1
  320. package/src/common/browser.test.ts +20 -10
  321. package/src/common/browser.ts +13 -6
  322. package/src/common/clients/index.ts +41 -0
  323. package/src/common/clients/lerna.ts +85 -1
  324. package/src/common/clients/npm.ts +56 -14
  325. package/src/common/clients/pnp.ts +84 -0
  326. package/src/common/clients/pnpm.ts +45 -1
  327. package/src/common/clients/rush.ts +118 -0
  328. package/src/common/clients/yarn.ts +49 -3
  329. package/src/common/compatibility.ts +8 -1
  330. package/src/common/config.ts +57 -22
  331. package/src/common/constants.ts +21 -3
  332. package/src/common/declaration.ts +124 -50
  333. package/src/common/emoji.ts +9 -0
  334. package/src/common/emulator.ts +43 -23
  335. package/src/common/enums.ts +0 -5
  336. package/src/common/envs.ts +15 -3
  337. package/src/common/hash.ts +5 -0
  338. package/src/common/http.test.ts +76 -64
  339. package/src/common/http.ts +88 -24
  340. package/src/common/importmap.ts +242 -0
  341. package/src/common/index.ts +10 -0
  342. package/src/common/info.ts +9 -1
  343. package/src/common/injectors.ts +49 -22
  344. package/src/common/inspect.ts +13 -14
  345. package/src/common/interactive.test.ts +6 -0
  346. package/src/common/interactive.ts +69 -1
  347. package/src/common/io.ts +199 -82
  348. package/src/common/language.ts +87 -10
  349. package/src/common/log.ts +32 -46
  350. package/src/common/npm.test.ts +187 -166
  351. package/src/common/npm.ts +263 -119
  352. package/src/common/pack.test.ts +11 -13
  353. package/src/common/pack.ts +60 -21
  354. package/src/common/package.test.ts +59 -49
  355. package/src/common/package.ts +406 -167
  356. package/src/common/parallel.test.ts +28 -0
  357. package/src/common/parallel.ts +21 -0
  358. package/src/common/platform.ts +31 -0
  359. package/src/common/port.test.ts +4 -1
  360. package/src/common/port.ts +10 -0
  361. package/src/common/rules.test.ts +3 -3
  362. package/src/common/scaffold.ts +69 -41
  363. package/src/common/scripts.ts +5 -4
  364. package/src/common/shell.ts +34 -0
  365. package/src/common/spec.ts +69 -0
  366. package/src/common/template.ts +20 -18
  367. package/src/common/url.test.ts +28 -0
  368. package/src/common/url.ts +15 -0
  369. package/src/common/utils.ts +3 -0
  370. package/src/common/version.test.ts +233 -0
  371. package/src/common/version.ts +142 -0
  372. package/src/common/watcher.ts +89 -0
  373. package/src/external/index.test.ts +2 -2
  374. package/src/external/index.ts +7 -3
  375. package/src/external/resolve.ts +29 -0
  376. package/src/helpers.test.ts +2 -22
  377. package/src/helpers.ts +21 -30
  378. package/src/injectors/{pilet.test.ts → pilet-injector.test.ts} +13 -4
  379. package/src/injectors/pilet-injector.ts +346 -0
  380. package/src/injectors/{piral.test.ts → piral-injector.test.ts} +14 -5
  381. package/src/injectors/piral-injector.ts +130 -0
  382. package/src/messages.ts +649 -63
  383. package/src/platforms/node.ts +16 -0
  384. package/src/platforms/web.ts +148 -0
  385. package/src/plugin.ts +34 -5
  386. package/src/questionnaire.ts +17 -3
  387. package/src/release.ts +47 -5
  388. package/src/rules/index.ts +1 -1
  389. package/src/rules/pilet-has-externals-as-peers.test.ts +3 -2
  390. package/src/rules/pilet-has-externals-as-peers.ts +9 -7
  391. package/src/rules/pilet-has-no-self-reference.ts +1 -1
  392. package/src/rules/pilet-stays-small.ts +1 -1
  393. package/src/rules/pilet-uses-latest-piral.ts +22 -12
  394. package/src/rules/piral-has-valid-externals.ts +10 -29
  395. package/src/types/common.ts +99 -9
  396. package/src/types/internal.ts +14 -14
  397. package/src/types/public.ts +93 -27
  398. package/lib/external/child.js +0 -144
  399. package/lib/external/classes.trie +0 -0
  400. package/lib/external/xdg-open +0 -1066
  401. package/lib/injectors/pilet.d.ts +0 -47
  402. package/lib/injectors/pilet.js +0 -187
  403. package/lib/injectors/pilet.js.map +0 -1
  404. package/lib/injectors/piral.js +0 -62
  405. package/lib/injectors/piral.js.map +0 -1
  406. package/src/injectors/pilet.ts +0 -219
  407. package/src/injectors/piral.ts +0 -76
  408. package/templates/piral-index.js.ejs +0 -16
package/lib/helpers.d.ts CHANGED
@@ -1,9 +1,12 @@
1
- import { ForceOverwrite, SourceLanguage } from './common/enums';
2
- import { Framework, NpmClientType, PiletSchemaVersion, PiletPublishSource, PiralBuildType } from './types';
1
+ import { ForceOverwrite } from './common/enums';
2
+ import type { Framework, NpmClientType, PiletSchemaVersion, PiletPublishSource, PiralBuildType, PiletBuildType, PiletPublishScheme, SourceLanguage } from './types';
3
3
  export declare const schemaKeys: Array<PiletSchemaVersion>;
4
+ export declare const publishModeKeys: Array<PiletPublishScheme>;
4
5
  export declare const fromKeys: Array<PiletPublishSource>;
5
- export declare const buildTypeKeys: Array<PiralBuildType>;
6
+ export declare const piralBuildTypeKeys: Array<PiralBuildType>;
7
+ export declare const piletBuildTypeKeys: Array<PiletBuildType>;
6
8
  export declare const clientTypeKeys: Array<NpmClientType>;
9
+ export declare const sourceLanguageKeys: Array<SourceLanguage>;
7
10
  export declare const bundlerKeys: Array<string>;
8
11
  export declare const availableBundlers: Array<string>;
9
12
  export declare const availableReleaseProviders: Array<string>;
@@ -11,6 +14,3 @@ export declare const frameworkKeys: Array<Framework>;
11
14
  export declare const forceOverwriteKeys: string[];
12
15
  export declare function valueOfForceOverwrite(key: string): ForceOverwrite;
13
16
  export declare function keyOfForceOverwrite(value: ForceOverwrite): string;
14
- export declare const piletLanguageKeys: string[];
15
- export declare function valueOfPiletLanguage(key: string): SourceLanguage;
16
- export declare function keyOfPiletLanguage(value: SourceLanguage): string;
package/lib/helpers.js CHANGED
@@ -1,15 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.keyOfPiletLanguage = exports.valueOfPiletLanguage = exports.piletLanguageKeys = exports.keyOfForceOverwrite = exports.valueOfForceOverwrite = exports.forceOverwriteKeys = exports.frameworkKeys = exports.availableReleaseProviders = exports.availableBundlers = exports.bundlerKeys = exports.clientTypeKeys = exports.buildTypeKeys = exports.fromKeys = exports.schemaKeys = void 0;
3
+ exports.keyOfForceOverwrite = exports.valueOfForceOverwrite = exports.forceOverwriteKeys = exports.frameworkKeys = exports.availableReleaseProviders = exports.availableBundlers = exports.bundlerKeys = exports.sourceLanguageKeys = exports.clientTypeKeys = exports.piletBuildTypeKeys = exports.piralBuildTypeKeys = exports.fromKeys = exports.publishModeKeys = exports.schemaKeys = void 0;
4
4
  const enums_1 = require("./common/enums");
5
- exports.schemaKeys = ['v0', 'v1', 'none'];
5
+ const constants_1 = require("./common/constants");
6
+ exports.schemaKeys = ['v0', 'v1', 'v2', 'none'];
7
+ exports.publishModeKeys = ['none', 'basic', 'bearer', 'digest'];
6
8
  exports.fromKeys = ['local', 'remote', 'npm'];
7
- exports.buildTypeKeys = ['all', 'release', 'emulator', 'emulator-sources'];
8
- exports.clientTypeKeys = ['npm', 'pnpm', 'yarn'];
9
- exports.bundlerKeys = ['none', 'parcel', 'webpack', 'webpack5'];
9
+ exports.piralBuildTypeKeys = ['all', 'release', 'emulator', 'emulator-sources'];
10
+ exports.piletBuildTypeKeys = ['default', 'standalone', 'manifest'];
11
+ exports.clientTypeKeys = ['npm', 'pnpm', 'pnp', 'yarn', 'lerna', 'rush'];
12
+ exports.sourceLanguageKeys = ['ts', 'js'];
13
+ exports.bundlerKeys = ['none', ...constants_1.bundlerNames];
10
14
  exports.availableBundlers = [];
11
15
  exports.availableReleaseProviders = [];
12
- exports.frameworkKeys = ['piral', 'piral-core', 'piral-base'];
16
+ exports.frameworkKeys = [...constants_1.frameworkLibs];
13
17
  exports.forceOverwriteKeys = Object.keys(enums_1.ForceOverwrite).filter((m) => typeof enums_1.ForceOverwrite[m] === 'number');
14
18
  function valueOfForceOverwrite(key) {
15
19
  for (const forceOverwriteKey of exports.forceOverwriteKeys) {
@@ -29,23 +33,4 @@ function keyOfForceOverwrite(value) {
29
33
  return exports.forceOverwriteKeys[0];
30
34
  }
31
35
  exports.keyOfForceOverwrite = keyOfForceOverwrite;
32
- exports.piletLanguageKeys = Object.keys(enums_1.SourceLanguage).filter((m) => typeof enums_1.SourceLanguage[m] === 'number');
33
- function valueOfPiletLanguage(key) {
34
- for (const piletLanguageKey of exports.piletLanguageKeys) {
35
- if (piletLanguageKey === key) {
36
- return enums_1.SourceLanguage[piletLanguageKey];
37
- }
38
- }
39
- return enums_1.SourceLanguage.ts;
40
- }
41
- exports.valueOfPiletLanguage = valueOfPiletLanguage;
42
- function keyOfPiletLanguage(value) {
43
- for (const piletLanguageKey of exports.piletLanguageKeys) {
44
- if (enums_1.SourceLanguage[piletLanguageKey] === value) {
45
- return piletLanguageKey;
46
- }
47
- }
48
- return exports.piletLanguageKeys[0];
49
- }
50
- exports.keyOfPiletLanguage = keyOfPiletLanguage;
51
36
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":";;;AAAA,0CAAgE;AAGnD,QAAA,UAAU,GAA8B,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AAC7D,QAAA,QAAQ,GAA8B,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AACjE,QAAA,aAAa,GAA0B,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,kBAAkB,CAAC,CAAC;AAC1F,QAAA,cAAc,GAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAC/D,QAAA,WAAW,GAAkB,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AACvE,QAAA,iBAAiB,GAAkB,EAAE,CAAC;AACtC,QAAA,yBAAyB,GAAkB,EAAE,CAAC;AAC9C,QAAA,aAAa,GAAqB,CAAC,OAAO,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;AACxE,QAAA,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,sBAAc,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,sBAAc,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC;AAEnH,SAAgB,qBAAqB,CAAC,GAAW;IAC/C,KAAK,MAAM,iBAAiB,IAAI,0BAAkB,EAAE;QAClD,IAAI,iBAAiB,KAAK,GAAG,EAAE;YAC7B,OAAO,sBAAc,CAAC,iBAAiB,CAAC,CAAC;SAC1C;KACF;IAED,OAAO,sBAAc,CAAC,EAAE,CAAC;AAC3B,CAAC;AARD,sDAQC;AAED,SAAgB,mBAAmB,CAAC,KAAqB;IACvD,KAAK,MAAM,iBAAiB,IAAI,0BAAkB,EAAE;QAClD,IAAI,sBAAc,CAAC,iBAAiB,CAAC,KAAK,KAAK,EAAE;YAC/C,OAAO,iBAAiB,CAAC;SAC1B;KACF;IAED,OAAO,0BAAkB,CAAC,CAAC,CAAC,CAAC;AAC/B,CAAC;AARD,kDAQC;AAEY,QAAA,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,sBAAc,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,sBAAc,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC;AAElH,SAAgB,oBAAoB,CAAC,GAAW;IAC9C,KAAK,MAAM,gBAAgB,IAAI,yBAAiB,EAAE;QAChD,IAAI,gBAAgB,KAAK,GAAG,EAAE;YAC5B,OAAO,sBAAc,CAAC,gBAAgB,CAAC,CAAC;SACzC;KACF;IAED,OAAO,sBAAc,CAAC,EAAE,CAAC;AAC3B,CAAC;AARD,oDAQC;AAED,SAAgB,kBAAkB,CAAC,KAAqB;IACtD,KAAK,MAAM,gBAAgB,IAAI,yBAAiB,EAAE;QAChD,IAAI,sBAAc,CAAC,gBAAgB,CAAC,KAAK,KAAK,EAAE;YAC9C,OAAO,gBAAgB,CAAC;SACzB;KACF;IAED,OAAO,yBAAiB,CAAC,CAAC,CAAC,CAAC;AAC9B,CAAC;AARD,gDAQC"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":";;;AAAA,0CAAgD;AAChD,kDAAiE;AAYpD,QAAA,UAAU,GAA8B,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AACnE,QAAA,eAAe,GAA8B,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AACnF,QAAA,QAAQ,GAA8B,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AACjE,QAAA,kBAAkB,GAA0B,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,kBAAkB,CAAC,CAAC;AAC/F,QAAA,kBAAkB,GAA0B,CAAC,SAAS,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;AAClF,QAAA,cAAc,GAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AACvF,QAAA,kBAAkB,GAA0B,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACzD,QAAA,WAAW,GAAkB,CAAC,MAAM,EAAE,GAAG,wBAAY,CAAC,CAAC;AACvD,QAAA,iBAAiB,GAAkB,EAAE,CAAC;AACtC,QAAA,yBAAyB,GAAkB,EAAE,CAAC;AAC9C,QAAA,aAAa,GAAqB,CAAC,GAAG,yBAAa,CAAC,CAAC;AACrD,QAAA,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,sBAAc,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,sBAAc,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC;AAEnH,SAAgB,qBAAqB,CAAC,GAAW;IAC/C,KAAK,MAAM,iBAAiB,IAAI,0BAAkB,EAAE;QAClD,IAAI,iBAAiB,KAAK,GAAG,EAAE;YAC7B,OAAO,sBAAc,CAAC,iBAAiB,CAAC,CAAC;SAC1C;KACF;IAED,OAAO,sBAAc,CAAC,EAAE,CAAC;AAC3B,CAAC;AARD,sDAQC;AAED,SAAgB,mBAAmB,CAAC,KAAqB;IACvD,KAAK,MAAM,iBAAiB,IAAI,0BAAkB,EAAE;QAClD,IAAI,sBAAc,CAAC,iBAAiB,CAAC,KAAK,KAAK,EAAE;YAC/C,OAAO,iBAAiB,CAAC;SAC1B;KACF;IAED,OAAO,0BAAkB,CAAC,CAAC,CAAC,CAAC;AAC/B,CAAC;AARD,kDAQC"}
package/lib/index.js CHANGED
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4CAA0B;AAC1B,6CAA2B;AAC3B,kDAAgC;AAChC,iDAA+B;AAC/B,iDAA+B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,6CAA2B;AAC3B,kDAAgC;AAChC,iDAA+B;AAC/B,iDAA+B"}
package/lib/inject.js CHANGED
@@ -10,11 +10,11 @@ function inject(pluginPath) {
10
10
  plugin(api);
11
11
  }
12
12
  else {
13
- common_1.log('generalDebug_0003', `Skipping plugin from "${pluginPath}". Did not export a function.`);
13
+ (0, common_1.log)('generalDebug_0003', `Skipping plugin from "${pluginPath}". Did not export a function.`);
14
14
  }
15
15
  }
16
16
  catch (ex) {
17
- common_1.log('pluginCouldNotBeLoaded_0205', pluginPath, ex);
17
+ (0, common_1.log)('pluginCouldNotBeLoaded_0205', pluginPath, ex);
18
18
  }
19
19
  }
20
20
  exports.inject = inject;
package/lib/inject.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"inject.js","sourceRoot":"","sources":["../src/inject.ts"],"names":[],"mappings":";;;AAAA,6BAA6B;AAC7B,qCAA+B;AAG/B,SAAgB,MAAM,CAAC,UAAkB;IACvC,IAAI;QACF,MAAM,MAAM,GAAc,OAAO,CAAC,UAAU,CAAC,CAAC;QAE9C,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE;YAChC,MAAM,CAAC,GAAG,CAAC,CAAC;SACb;aAAM;YACL,YAAG,CAAC,mBAAmB,EAAE,yBAAyB,UAAU,+BAA+B,CAAC,CAAC;SAC9F;KACF;IAAC,OAAO,EAAE,EAAE;QACX,YAAG,CAAC,6BAA6B,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;KACpD;AACH,CAAC;AAZD,wBAYC"}
1
+ {"version":3,"file":"inject.js","sourceRoot":"","sources":["../src/inject.ts"],"names":[],"mappings":";;;AAAA,6BAA6B;AAC7B,qCAA+B;AAG/B,SAAgB,MAAM,CAAC,UAAkB;IACvC,IAAI;QACF,MAAM,MAAM,GAAc,OAAO,CAAC,UAAU,CAAC,CAAC;QAE9C,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE;YAChC,MAAM,CAAC,GAAG,CAAC,CAAC;SACb;aAAM;YACL,IAAA,YAAG,EAAC,mBAAmB,EAAE,yBAAyB,UAAU,+BAA+B,CAAC,CAAC;SAC9F;KACF;IAAC,OAAO,EAAE,EAAE;QACX,IAAA,YAAG,EAAC,6BAA6B,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;KACpD;AACH,CAAC;AAZD,wBAYC"}
@@ -0,0 +1,75 @@
1
+ /// <reference types="node" />
2
+ /// <reference types="node" />
3
+ import { EventEmitter } from 'events';
4
+ import { KrasInjector, KrasResponse, KrasRequest, KrasInjectorConfig, KrasConfiguration, KrasResult } from 'kras';
5
+ import { Bundler } from '../types';
6
+ interface Pilet {
7
+ bundler: Bundler;
8
+ root: string;
9
+ getMeta(basePath: string): PiletMetadata;
10
+ }
11
+ export interface PiletInjectorConfig extends KrasInjectorConfig {
12
+ /**
13
+ * The pilets to serve.
14
+ */
15
+ pilets: Array<Pilet>;
16
+ /**
17
+ * The base URL for the app shell / portal to be used.
18
+ */
19
+ publicUrl: string;
20
+ /**
21
+ * The base URL for the pilet assets to be used.
22
+ */
23
+ assetUrl?: string;
24
+ /**
25
+ * Defines if properties from the feed (if given) meta response should be taken over to local pilets.
26
+ */
27
+ mergeConfig?: boolean;
28
+ /**
29
+ * The additional metadata file to consider for the pilets.
30
+ */
31
+ meta: string;
32
+ /**
33
+ * The API path - usually somethin like `/$pilet-api`.
34
+ */
35
+ api: string;
36
+ /**
37
+ * The directory of the app (usually Piral instance emulator) to serve.
38
+ */
39
+ app?: string;
40
+ /**
41
+ * The remote feed to merge into.
42
+ */
43
+ feed?: string;
44
+ /**
45
+ * The additional headers to include.
46
+ */
47
+ headers?: Record<string, string>;
48
+ }
49
+ interface PiletMetadata {
50
+ name?: string;
51
+ config?: Record<string, any>;
52
+ [key: string]: unknown;
53
+ }
54
+ export default class PiletInjector implements KrasInjector {
55
+ config: PiletInjectorConfig;
56
+ private serverConfig;
57
+ private indexPath;
58
+ constructor(config: PiletInjectorConfig, serverConfig: KrasConfiguration, core: EventEmitter);
59
+ get active(): boolean;
60
+ set active(value: boolean);
61
+ get name(): string;
62
+ getOptions(): {};
63
+ setOptions(): void;
64
+ getPiletApi(baseUrl: string): string;
65
+ getPiletMeta(baseUrl: string, pilet: Pilet): string;
66
+ getIndexMeta(baseUrl: string): Promise<string>;
67
+ loadRemoteFeed(feed?: string | Array<string>): Promise<Array<Array<PiletMetadata>>>;
68
+ mergePilets(localPilets: Array<PiletMetadata>, remoteFeeds: Array<Array<PiletMetadata>>): PiletMetadata[];
69
+ sendContent(content: Buffer | string, type: string, url: string): KrasResponse;
70
+ sendFile(target: string, url: string): KrasResponse;
71
+ sendResponse(path: string, url: string, baseUrl: string): Promise<KrasResult>;
72
+ sendIndexFile(target: string, url: string, baseUrl: string): KrasResponse;
73
+ handle(req: KrasRequest): KrasResponse;
74
+ }
75
+ export {};
@@ -0,0 +1,246 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const url_1 = require("url");
13
+ const path_1 = require("path");
14
+ const fs_1 = require("fs");
15
+ const log_1 = require("../common/log");
16
+ const spec_1 = require("../common/spec");
17
+ const config_1 = require("../common/config");
18
+ const external_1 = require("../external");
19
+ function getMetaOverride(root, metaFile) {
20
+ if (metaFile) {
21
+ const metaPath = (0, path_1.join)(root, metaFile);
22
+ if ((0, fs_1.existsSync)(metaPath)) {
23
+ return external_1.jju.parse((0, fs_1.readFileSync)(metaPath, 'utf8'));
24
+ }
25
+ }
26
+ return undefined;
27
+ }
28
+ function fillPiletMeta(pilet, metaFile, subPath) {
29
+ const { root, bundler } = pilet;
30
+ const packagePath = (0, path_1.join)(root, 'package.json');
31
+ const def = external_1.jju.parse((0, fs_1.readFileSync)(packagePath, 'utf8'));
32
+ const file = bundler.bundle.name.replace(/^[\/\\]/, '');
33
+ const target = (0, path_1.join)(bundler.bundle.dir, file);
34
+ const metaOverride = getMetaOverride(root, metaFile);
35
+ pilet.getMeta = (parentPath) => {
36
+ const basePath = `${parentPath}${subPath}`;
37
+ const url = new url_1.URL(file, basePath);
38
+ return Object.assign(Object.assign(Object.assign({ custom: def.custom, config: def.piletConfig }, metaOverride), { name: def.name, version: def.version, link: `${url.href}?updated=${Date.now()}` }), (0, spec_1.getPiletSpecMeta)(target, basePath));
39
+ };
40
+ }
41
+ function loadFeed(feed) {
42
+ var _a;
43
+ return __awaiter(this, void 0, void 0, function* () {
44
+ try {
45
+ const response = yield external_1.axios.default.get(feed);
46
+ if (Array.isArray(response.data)) {
47
+ return response.data;
48
+ }
49
+ else if (Array.isArray((_a = response.data) === null || _a === void 0 ? void 0 : _a.items)) {
50
+ return response.data.items;
51
+ }
52
+ else {
53
+ return [response.data];
54
+ }
55
+ }
56
+ catch (e) {
57
+ (0, log_1.log)('generalWarning_0001', `Couldn't load feed at ${feed}.`);
58
+ }
59
+ });
60
+ }
61
+ class PiletInjector {
62
+ constructor(config, serverConfig, core) {
63
+ this.config = config;
64
+ this.serverConfig = serverConfig;
65
+ if (this.config.active) {
66
+ const { pilets, api, publicUrl, assetUrl } = config;
67
+ this.indexPath = `${publicUrl}index.html`;
68
+ const cbs = {};
69
+ core.on('user-connected', (e) => {
70
+ const baseUrl = assetUrl || e.req.headers.origin;
71
+ if (e.target === '*' && e.url === api.substring(1)) {
72
+ cbs[e.id] = {
73
+ baseUrl,
74
+ notify: (msg) => e.ws.send(msg),
75
+ };
76
+ }
77
+ });
78
+ core.on('user-disconnected', (e) => {
79
+ delete cbs[e.id];
80
+ });
81
+ pilets.forEach((p, i) => p.bundler.on(() => {
82
+ fillPiletMeta(p, config.meta, `/${i}/`);
83
+ for (const id of Object.keys(cbs)) {
84
+ const { baseUrl, notify } = cbs[id];
85
+ const meta = this.getPiletMeta(baseUrl, p);
86
+ notify(meta);
87
+ }
88
+ }));
89
+ }
90
+ }
91
+ get active() {
92
+ return this.config.active;
93
+ }
94
+ set active(value) {
95
+ this.config.active = value;
96
+ }
97
+ get name() {
98
+ return 'pilet-injector';
99
+ }
100
+ getOptions() {
101
+ return {};
102
+ }
103
+ setOptions() { }
104
+ getPiletApi(baseUrl) {
105
+ const { api } = this.config;
106
+ if (/^https?:/.test(api)) {
107
+ return api;
108
+ }
109
+ else if (baseUrl) {
110
+ return `${baseUrl}${api}`;
111
+ }
112
+ else {
113
+ const { ssl, port } = this.serverConfig;
114
+ const { host } = config_1.config;
115
+ return `${ssl ? 'https' : 'http'}://${host}:${port}${api}`;
116
+ }
117
+ }
118
+ getPiletMeta(baseUrl, pilet) {
119
+ const basePath = this.getPiletApi(baseUrl);
120
+ return JSON.stringify(pilet.getMeta(basePath));
121
+ }
122
+ getIndexMeta(baseUrl) {
123
+ return __awaiter(this, void 0, void 0, function* () {
124
+ const { pilets, feed } = this.config;
125
+ const basePath = this.getPiletApi(baseUrl);
126
+ const localPilets = pilets.map((pilet) => { var _a; return (_a = pilet.getMeta) === null || _a === void 0 ? void 0 : _a.call(pilet, basePath); }).filter(Boolean);
127
+ const mergedPilets = this.mergePilets(localPilets, yield this.loadRemoteFeed(feed));
128
+ return JSON.stringify(mergedPilets);
129
+ });
130
+ }
131
+ loadRemoteFeed(feed) {
132
+ return __awaiter(this, void 0, void 0, function* () {
133
+ if (feed) {
134
+ const feeds = Array.isArray(feed) ? feed : [feed];
135
+ return yield Promise.all(feeds.map(loadFeed));
136
+ }
137
+ });
138
+ }
139
+ mergePilets(localPilets, remoteFeeds) {
140
+ if (!remoteFeeds || !Array.isArray(remoteFeeds)) {
141
+ return localPilets;
142
+ }
143
+ const { mergeConfig = false } = this.config;
144
+ const names = localPilets.map((pilet) => pilet.name);
145
+ const merged = [...localPilets];
146
+ for (const remotePilets of remoteFeeds) {
147
+ if (!Array.isArray(remotePilets)) {
148
+ continue;
149
+ }
150
+ const newPilets = remotePilets.filter((pilet) => {
151
+ if (!pilet || typeof pilet !== 'object') {
152
+ return false;
153
+ }
154
+ const name = pilet.name;
155
+ const isNew = name !== undefined && !names.includes(name);
156
+ if (!isNew && mergeConfig) {
157
+ const existing = merged.find((m) => m.name === name);
158
+ if (existing.config === undefined) {
159
+ existing.config = pilet.config;
160
+ }
161
+ else if (pilet.config !== undefined) {
162
+ Object.assign(existing.config, pilet.config);
163
+ }
164
+ }
165
+ return isNew;
166
+ });
167
+ names.push(...newPilets.map((p) => p.name));
168
+ merged.push(...newPilets);
169
+ }
170
+ return merged;
171
+ }
172
+ sendContent(content, type, url) {
173
+ const { headers } = this.config;
174
+ return {
175
+ injector: { name: this.name },
176
+ headers: Object.assign(Object.assign({}, headers), { 'content-type': type, 'cache-control': 'no-cache, no-store, must-revalidate', pragma: 'no-cache', expires: '0' }),
177
+ status: { code: 200 },
178
+ url,
179
+ content,
180
+ };
181
+ }
182
+ sendFile(target, url) {
183
+ var _a;
184
+ const content = (0, fs_1.readFileSync)(target);
185
+ const type = (_a = external_1.mime.getType(target)) !== null && _a !== void 0 ? _a : 'application/octet-stream';
186
+ return this.sendContent(content, type, url);
187
+ }
188
+ sendResponse(path, url, baseUrl) {
189
+ return __awaiter(this, void 0, void 0, function* () {
190
+ const { pilets } = this.config;
191
+ const [index, ...rest] = path.split('/');
192
+ const pilet = pilets[+index];
193
+ const bundler = pilet === null || pilet === void 0 ? void 0 : pilet.bundler;
194
+ if (!path) {
195
+ yield (bundler === null || bundler === void 0 ? void 0 : bundler.ready());
196
+ const content = yield this.getIndexMeta(baseUrl);
197
+ return this.sendContent(content, 'application/json', url);
198
+ }
199
+ else {
200
+ return bundler === null || bundler === void 0 ? void 0 : bundler.ready().then(() => {
201
+ const target = (0, path_1.join)(bundler.bundle.dir, rest.join('/'));
202
+ if ((0, fs_1.existsSync)(target) && (0, fs_1.statSync)(target).isFile()) {
203
+ return this.sendFile(target, url);
204
+ }
205
+ });
206
+ }
207
+ });
208
+ }
209
+ sendIndexFile(target, url, baseUrl) {
210
+ const indexHtml = (0, fs_1.readFileSync)(target, 'utf8');
211
+ // mechanism to inject server side debug piletApi config into piral emulator
212
+ const windowInjectionScript = `window['dbg:pilet-api'] = '${this.getPiletApi(baseUrl)}';`;
213
+ const findStr = `<script`;
214
+ const replaceStr = `<script>/* Pilet Debugging Emulator Config Injection */${windowInjectionScript}</script><script`;
215
+ const content = indexHtml.replace(`${findStr}`, `${replaceStr}`);
216
+ return this.sendContent(content, external_1.mime.getType(target), url);
217
+ }
218
+ handle(req) {
219
+ const { app, api, publicUrl, assetUrl } = this.config;
220
+ const baseUrl = assetUrl || (req.headers.host ? `${req.encrypted ? 'https' : 'http'}://${req.headers.host}` : undefined);
221
+ if (!req.target) {
222
+ if (req.url.startsWith(publicUrl)) {
223
+ const path = req.url.substring(publicUrl.length).split('?')[0];
224
+ if (app) {
225
+ const target = (0, path_1.join)(app, path);
226
+ if ((0, fs_1.existsSync)(target) && (0, fs_1.statSync)(target).isFile()) {
227
+ if (req.url === this.indexPath) {
228
+ return this.sendIndexFile(target, req.url, baseUrl);
229
+ }
230
+ return this.sendFile(target, req.url);
231
+ }
232
+ }
233
+ if (req.url !== this.indexPath) {
234
+ return this.handle(Object.assign(Object.assign({}, req), { url: this.indexPath }));
235
+ }
236
+ }
237
+ return undefined;
238
+ }
239
+ else if (req.target === api) {
240
+ const path = req.url.substring(1).split('?')[0];
241
+ return this.sendResponse(path, req.url, baseUrl);
242
+ }
243
+ }
244
+ }
245
+ exports.default = PiletInjector;
246
+ //# sourceMappingURL=pilet-injector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pilet-injector.js","sourceRoot":"","sources":["../../src/injectors/pilet-injector.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,6BAA0B;AAC1B,+BAA4B;AAE5B,2BAAwD;AAExD,uCAAoC;AACpC,yCAAkD;AAClD,6CAA0D;AAC1D,0CAA+C;AAsD/C,SAAS,eAAe,CAAC,IAAY,EAAE,QAAgB;IACrD,IAAI,QAAQ,EAAE;QACZ,MAAM,QAAQ,GAAG,IAAA,WAAI,EAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAEtC,IAAI,IAAA,eAAU,EAAC,QAAQ,CAAC,EAAE;YACxB,OAAO,cAAG,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;SAClD;KACF;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,aAAa,CAAC,KAAY,EAAE,QAAgB,EAAE,OAAe;IACpE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAChC,MAAM,WAAW,GAAG,IAAA,WAAI,EAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IAC/C,MAAM,GAAG,GAAG,cAAG,CAAC,KAAK,CAAC,IAAA,iBAAY,EAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;IACzD,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IACxD,MAAM,MAAM,GAAG,IAAA,WAAI,EAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC9C,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAErD,KAAK,CAAC,OAAO,GAAG,CAAC,UAAU,EAAE,EAAE;QAC7B,MAAM,QAAQ,GAAG,GAAG,UAAU,GAAG,OAAO,EAAE,CAAC;QAC3C,MAAM,GAAG,GAAG,IAAI,SAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAEpC,mDACE,MAAM,EAAE,GAAG,CAAC,MAAM,EAClB,MAAM,EAAE,GAAG,CAAC,WAAW,IACpB,YAAY,KACf,IAAI,EAAE,GAAG,CAAC,IAAI,EACd,OAAO,EAAE,GAAG,CAAC,OAAO,EACpB,IAAI,EAAE,GAAG,GAAG,CAAC,IAAI,YAAY,IAAI,CAAC,GAAG,EAAE,EAAE,KACtC,IAAA,uBAAgB,EAAC,MAAM,EAAE,QAAQ,CAAC,EACrC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED,SAAe,QAAQ,CAAC,IAAY;;;QAClC,IAAI;YACF,MAAM,QAAQ,GAAG,MAAM,gBAAK,CAAC,OAAO,CAAC,GAAG,CACtC,IAAI,CACL,CAAC;YAEF,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;gBAChC,OAAO,QAAQ,CAAC,IAAI,CAAC;aACtB;iBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAA,QAAQ,CAAC,IAAI,0CAAE,KAAK,CAAC,EAAE;gBAC9C,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;aAC5B;iBAAM;gBACL,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;aACxB;SACF;QAAC,OAAO,CAAC,EAAE;YACV,IAAA,SAAG,EAAC,qBAAqB,EAAE,yBAAyB,IAAI,GAAG,CAAC,CAAC;SAC9D;;CACF;AAED,MAAqB,aAAa;IAKhC,YAAY,MAA2B,EAAE,YAA+B,EAAE,IAAkB;QAC1F,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QAEjC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YACtB,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;YACpD,IAAI,CAAC,SAAS,GAAG,GAAG,SAAS,YAAY,CAAC;YAC1C,MAAM,GAAG,GAAG,EAAE,CAAC;YAEf,IAAI,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,CAAC,EAAE,EAAE;gBAC9B,MAAM,OAAO,GAAG,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;gBAEjD,IAAI,CAAC,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;oBAClD,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG;wBACV,OAAO;wBACP,MAAM,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;qBACxC,CAAC;iBACH;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,CAAC,EAAE,EAAE;gBACjC,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACnB,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACtB,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE;gBAChB,aAAa,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;gBAExC,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;oBACjC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;oBACpC,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;oBAC3C,MAAM,CAAC,IAAI,CAAC,CAAC;iBACd;YACH,CAAC,CAAC,CACH,CAAC;SACH;IACH,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC5B,CAAC;IAED,IAAI,MAAM,CAAC,KAAK;QACd,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC;IAC7B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED,UAAU;QACR,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,UAAU,KAAI,CAAC;IAEf,WAAW,CAAC,OAAe;QACzB,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QAE5B,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YACxB,OAAO,GAAG,CAAC;SACZ;aAAM,IAAI,OAAO,EAAE;YAClB,OAAO,GAAG,OAAO,GAAG,GAAG,EAAE,CAAC;SAC3B;aAAM;YACL,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC;YACxC,MAAM,EAAE,IAAI,EAAE,GAAG,eAAY,CAAC;YAC9B,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,MAAM,IAAI,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC;SAC5D;IACH,CAAC;IAED,YAAY,CAAC,OAAe,EAAE,KAAY;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjD,CAAC;IAEK,YAAY,CAAC,OAAe;;YAChC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;YACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAC3C,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,WAAC,OAAA,MAAA,KAAK,CAAC,OAAO,sDAAG,QAAQ,CAAC,CAAA,EAAA,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACrF,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;YACpF,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QACtC,CAAC;KAAA;IAEK,cAAc,CAAC,IAA6B;;YAChD,IAAI,IAAI,EAAE;gBACR,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAClD,OAAO,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;aAC/C;QACH,CAAC;KAAA;IAED,WAAW,CAAC,WAAiC,EAAE,WAAwC;QACrF,IAAI,CAAC,WAAW,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;YAC/C,OAAO,WAAW,CAAC;SACpB;QAED,MAAM,EAAE,WAAW,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QAC5C,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC;QAEhC,KAAK,MAAM,YAAY,IAAI,WAAW,EAAE;YACtC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;gBAChC,SAAS;aACV;YAED,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC9C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;oBACvC,OAAO,KAAK,CAAC;iBACd;gBAED,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;gBACxB,MAAM,KAAK,GAAG,IAAI,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAE1D,IAAI,CAAC,KAAK,IAAI,WAAW,EAAE;oBACzB,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;oBAErD,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE;wBACjC,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;qBAChC;yBAAM,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE;wBACrC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;qBAC9C;iBACF;gBAED,OAAO,KAAK,CAAC;YACf,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAC5C,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;SAC3B;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,WAAW,CAAC,OAAwB,EAAE,IAAY,EAAE,GAAW;QAC7D,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QAEhC,OAAO;YACL,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;YAC7B,OAAO,kCACF,OAAO,KACV,cAAc,EAAE,IAAI,EACpB,eAAe,EAAE,qCAAqC,EACtD,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,GAAG,GACb;YACD,MAAM,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE;YACrB,GAAG;YACH,OAAO;SACR,CAAC;IACJ,CAAC;IAED,QAAQ,CAAC,MAAc,EAAE,GAAW;;QAClC,MAAM,OAAO,GAAG,IAAA,iBAAY,EAAC,MAAM,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,MAAA,eAAI,CAAC,OAAO,CAAC,MAAM,CAAC,mCAAI,0BAA0B,CAAC;QAChE,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IAC9C,CAAC;IAEK,YAAY,CAAC,IAAY,EAAE,GAAW,EAAE,OAAe;;YAC3D,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;YAC/B,MAAM,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACzC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC;YAC7B,MAAM,OAAO,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,CAAC;YAE/B,IAAI,CAAC,IAAI,EAAE;gBACT,MAAM,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,EAAE,CAAA,CAAC;gBACvB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;gBACjD,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,kBAAkB,EAAE,GAAG,CAAC,CAAC;aAC3D;iBAAM;gBACL,OAAO,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE;oBAChC,MAAM,MAAM,GAAG,IAAA,WAAI,EAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;oBAExD,IAAI,IAAA,eAAU,EAAC,MAAM,CAAC,IAAI,IAAA,aAAQ,EAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;wBACnD,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;qBACnC;gBACH,CAAC,CAAC,CAAC;aACJ;QACH,CAAC;KAAA;IAED,aAAa,CAAC,MAAc,EAAE,GAAW,EAAE,OAAe;QACxD,MAAM,SAAS,GAAG,IAAA,iBAAY,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAE/C,4EAA4E;QAC5E,MAAM,qBAAqB,GAAG,8BAA8B,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;QAC1F,MAAM,OAAO,GAAG,SAAS,CAAC;QAC1B,MAAM,UAAU,GAAG,0DAA0D,qBAAqB,kBAAkB,CAAC;QACrH,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,OAAO,EAAE,EAAE,GAAG,UAAU,EAAE,CAAC,CAAC;QAEjE,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,eAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,CAAC,GAAgB;QACrB,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QACtD,MAAM,OAAO,GACX,QAAQ,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAE3G,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;YACf,IAAI,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;gBACjC,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAE/D,IAAI,GAAG,EAAE;oBACP,MAAM,MAAM,GAAG,IAAA,WAAI,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC;oBAE/B,IAAI,IAAA,eAAU,EAAC,MAAM,CAAC,IAAI,IAAA,aAAQ,EAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;wBACnD,IAAI,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC,SAAS,EAAE;4BAC9B,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;yBACrD;wBAED,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;qBACvC;iBACF;gBAED,IAAI,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC,SAAS,EAAE;oBAC9B,OAAO,IAAI,CAAC,MAAM,iCACb,GAAG,KACN,GAAG,EAAE,IAAI,CAAC,SAAS,IACnB,CAAC;iBACJ;aACF;YAED,OAAO,SAAS,CAAC;SAClB;aAAM,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE;YAC7B,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAChD,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;SAClD;IACH,CAAC;CACF;AArOD,gCAqOC"}
@@ -1,16 +1,24 @@
1
- import { KrasInjector, KrasResponse, KrasRequest, KrasInjectorConfig } from 'kras';
1
+ /// <reference types="node" />
2
+ /// <reference types="node" />
3
+ import { EventEmitter } from 'events';
4
+ import { KrasInjector, KrasResponse, KrasRequest, KrasInjectorConfig, KrasConfiguration } from 'kras';
2
5
  import { Bundler } from '../types';
3
6
  export interface PiralInjectorConfig extends KrasInjectorConfig {
4
7
  bundler: Bundler;
8
+ publicUrl: string;
9
+ feed?: string;
10
+ headers?: Record<string, string>;
5
11
  }
6
12
  export default class PiralInjector implements KrasInjector {
7
13
  config: PiralInjectorConfig;
8
- constructor(options: PiralInjectorConfig);
14
+ constructor(options: PiralInjectorConfig, _config: KrasConfiguration, core: EventEmitter);
9
15
  get active(): boolean;
10
16
  set active(value: boolean);
11
17
  get name(): string;
12
18
  getOptions(): {};
13
19
  setOptions(): void;
20
+ sendContent(content: Buffer | string, type: string, url: string): KrasResponse;
21
+ sendIndexFile(target: string, url: string): KrasResponse;
14
22
  sendResponse(path: string, target: string, dir: string, url: string, recursionDepth?: number): KrasResponse;
15
23
  handle(req: KrasRequest): KrasResponse;
16
24
  }
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const path_1 = require("path");
4
+ const fs_1 = require("fs");
5
+ const external_1 = require("../external");
6
+ /**
7
+ * The maximum amount of retries when sending a response
8
+ */
9
+ const maxRetrySendResponse = 4;
10
+ class PiralInjector {
11
+ constructor(options, _config, core) {
12
+ this.config = options;
13
+ if (this.config.active) {
14
+ const api = '/$events';
15
+ const cbs = {};
16
+ core.on('user-connected', (e) => {
17
+ if (e.target === '*' && e.url === api.substring(1)) {
18
+ cbs[e.id] = (msg) => e.ws.send(msg);
19
+ }
20
+ });
21
+ core.on('user-disconnected', (e) => {
22
+ delete cbs[e.id];
23
+ });
24
+ this.config.bundler.on((args) => {
25
+ for (const id of Object.keys(cbs)) {
26
+ cbs[id](JSON.stringify(args));
27
+ }
28
+ });
29
+ }
30
+ }
31
+ get active() {
32
+ return this.config.active;
33
+ }
34
+ set active(value) {
35
+ this.config.active = value;
36
+ }
37
+ get name() {
38
+ return 'piral-injector';
39
+ }
40
+ getOptions() {
41
+ return {};
42
+ }
43
+ setOptions() { }
44
+ sendContent(content, type, url) {
45
+ const { headers } = this.config;
46
+ return {
47
+ injector: { name: this.name },
48
+ headers: Object.assign(Object.assign({}, headers), { 'content-type': type, 'cache-control': 'no-cache, no-store, must-revalidate', pragma: 'no-cache', expires: '0' }),
49
+ status: { code: 200 },
50
+ url,
51
+ content,
52
+ };
53
+ }
54
+ sendIndexFile(target, url) {
55
+ const indexHtml = (0, fs_1.readFileSync)(target, 'utf8');
56
+ const { feed } = this.config;
57
+ if (feed) {
58
+ // mechanism to inject server side debug piletApi config into piral emulator
59
+ const windowInjectionScript = `window['dbg:pilet-api'] = '${feed}';`;
60
+ const findStr = `<script`;
61
+ const replaceStr = `<script>/* Pilet Debugging Emulator Config Injection */${windowInjectionScript}</script><script`;
62
+ const content = indexHtml.replace(`${findStr}`, `${replaceStr}`);
63
+ return this.sendContent(content, external_1.mime.getType(target), url);
64
+ }
65
+ return this.sendContent(indexHtml, external_1.mime.getType(target), url);
66
+ }
67
+ sendResponse(path, target, dir, url, recursionDepth = 0) {
68
+ var _a;
69
+ if (recursionDepth > maxRetrySendResponse) {
70
+ return undefined;
71
+ }
72
+ const { bundler } = this.config;
73
+ const newTarget = (0, path_1.join)(bundler.bundle.dir, bundler.bundle.name);
74
+ if (!path || !(0, fs_1.existsSync)(target) || !(0, fs_1.statSync)(target).isFile()) {
75
+ return this.sendResponse(bundler.bundle.name, newTarget, dir, url, recursionDepth + 1);
76
+ }
77
+ else if (target === newTarget) {
78
+ return this.sendIndexFile(target, url);
79
+ }
80
+ const type = (_a = external_1.mime.getType(target)) !== null && _a !== void 0 ? _a : 'application/octet-stream';
81
+ return this.sendContent((0, fs_1.readFileSync)(target), type, url);
82
+ }
83
+ handle(req) {
84
+ if (!req.target) {
85
+ const { bundler, publicUrl } = this.config;
86
+ if (req.url.startsWith(publicUrl) || `${req.url}/` === publicUrl) {
87
+ const pathLength = publicUrl.length || 1;
88
+ const path = req.url.substring(pathLength);
89
+ const dir = bundler.bundle.dir;
90
+ const target = (0, path_1.join)(dir, path.split('?')[0]);
91
+ return bundler.ready().then(() => this.sendResponse(path, target, dir, req.url));
92
+ }
93
+ }
94
+ }
95
+ }
96
+ exports.default = PiralInjector;
97
+ //# sourceMappingURL=piral-injector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"piral-injector.js","sourceRoot":"","sources":["../../src/injectors/piral-injector.ts"],"names":[],"mappings":"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"}