@equinor/fusion-framework-cli 10.7.5-apploader-be21a6b60eb13eee8bf869e75002d8634e9c50a9 → 11.0.0-next.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (522) hide show
  1. package/CHANGELOG.md +51 -2
  2. package/README.md +144 -17
  3. package/bin/build/bin.js +21 -0
  4. package/bin/build/cli.js +9868 -0
  5. package/bin/build/create-auth-client-7P8K_6Vu.js +89 -0
  6. package/bin/build/portal-pack-CAsnV44B.js +12069 -0
  7. package/bin/cli.mjs +4 -1
  8. package/dist/esm/bin/app-build.js +34 -0
  9. package/dist/esm/bin/app-build.js.map +1 -0
  10. package/dist/esm/bin/app-check.js +63 -0
  11. package/dist/esm/bin/app-check.js.map +1 -0
  12. package/dist/esm/bin/app-config-publish.js +89 -0
  13. package/dist/esm/bin/app-config-publish.js.map +1 -0
  14. package/dist/esm/bin/app-config.js +48 -0
  15. package/dist/esm/bin/app-config.js.map +1 -0
  16. package/dist/esm/bin/app-dev.js +92 -0
  17. package/dist/esm/bin/app-dev.js.map +1 -0
  18. package/dist/esm/bin/app-manifest.js +38 -0
  19. package/dist/esm/bin/app-manifest.js.map +1 -0
  20. package/dist/esm/bin/app-pack.js +51 -0
  21. package/dist/esm/bin/app-pack.js.map +1 -0
  22. package/dist/esm/bin/app-tag.js +89 -0
  23. package/dist/esm/bin/app-tag.js.map +1 -0
  24. package/dist/esm/bin/app-upload.js +109 -0
  25. package/dist/esm/bin/app-upload.js.map +1 -0
  26. package/dist/esm/bin/helpers/load-bundle-metadata.js +32 -0
  27. package/dist/esm/bin/helpers/load-bundle-metadata.js.map +1 -0
  28. package/dist/esm/bin/helpers/load-vite-config.js +55 -0
  29. package/dist/esm/bin/helpers/load-vite-config.js.map +1 -0
  30. package/dist/esm/bin/helpers/resolve-app-config.js +46 -0
  31. package/dist/esm/bin/helpers/resolve-app-config.js.map +1 -0
  32. package/dist/esm/bin/helpers/resolve-app-manifest.js +55 -0
  33. package/dist/esm/bin/helpers/resolve-app-manifest.js.map +1 -0
  34. package/dist/esm/bin/helpers/resolve-portal-manifest.js +55 -0
  35. package/dist/esm/bin/helpers/resolve-portal-manifest.js.map +1 -0
  36. package/dist/esm/bin/helpers/resolve-project-package.js +32 -0
  37. package/dist/esm/bin/helpers/resolve-project-package.js.map +1 -0
  38. package/dist/esm/bin/index.js +10 -0
  39. package/dist/esm/bin/index.js.map +1 -0
  40. package/dist/esm/bin/pack.js +70 -0
  41. package/dist/esm/bin/pack.js.map +1 -0
  42. package/dist/esm/bin/portal-build.js +40 -0
  43. package/dist/esm/bin/portal-build.js.map +1 -0
  44. package/dist/esm/bin/portal-dev.js +69 -0
  45. package/dist/esm/bin/portal-dev.js.map +1 -0
  46. package/dist/esm/bin/portal-manifest.js +38 -0
  47. package/dist/esm/bin/portal-manifest.js.map +1 -0
  48. package/dist/esm/bin/portal-pack.js +60 -0
  49. package/dist/esm/bin/portal-pack.js.map +1 -0
  50. package/dist/esm/bin/portal-tag.js +96 -0
  51. package/dist/esm/bin/portal-tag.js.map +1 -0
  52. package/dist/esm/bin/portal-upload.js +99 -0
  53. package/dist/esm/bin/portal-upload.js.map +1 -0
  54. package/dist/esm/bin/utils/ConsoleLogger.js +112 -0
  55. package/dist/esm/bin/utils/ConsoleLogger.js.map +1 -0
  56. package/dist/esm/bin/utils/create-dev-server.js +167 -0
  57. package/dist/esm/bin/utils/create-dev-server.js.map +1 -0
  58. package/dist/esm/bin/utils/format.js +47 -0
  59. package/dist/esm/bin/utils/format.js.map +1 -0
  60. package/dist/esm/bin/utils/index.js +5 -0
  61. package/dist/esm/bin/utils/index.js.map +1 -0
  62. package/dist/esm/bin/utils/spinner.js +142 -0
  63. package/dist/esm/bin/utils/spinner.js.map +1 -0
  64. package/dist/esm/cli/commands/app/alias.js +42 -0
  65. package/dist/esm/cli/commands/app/alias.js.map +1 -0
  66. package/dist/esm/cli/commands/app/build.js +46 -0
  67. package/dist/esm/cli/commands/app/build.js.map +1 -0
  68. package/dist/esm/cli/commands/app/check.js +47 -0
  69. package/dist/esm/cli/commands/app/check.js.map +1 -0
  70. package/dist/esm/cli/commands/app/config.js +91 -0
  71. package/dist/esm/cli/commands/app/config.js.map +1 -0
  72. package/dist/esm/cli/commands/app/dev.js +61 -0
  73. package/dist/esm/cli/commands/app/dev.js.map +1 -0
  74. package/dist/esm/cli/commands/app/index.js +25 -0
  75. package/dist/esm/cli/commands/app/index.js.map +1 -0
  76. package/dist/esm/cli/commands/app/manifest.js +73 -0
  77. package/dist/esm/cli/commands/app/manifest.js.map +1 -0
  78. package/dist/esm/cli/commands/app/pack.js +64 -0
  79. package/dist/esm/cli/commands/app/pack.js.map +1 -0
  80. package/dist/esm/cli/commands/app/publish.js +119 -0
  81. package/dist/esm/cli/commands/app/publish.js.map +1 -0
  82. package/dist/esm/cli/commands/app/tag.js +101 -0
  83. package/dist/esm/cli/commands/app/tag.js.map +1 -0
  84. package/dist/esm/cli/commands/app/upload.js +80 -0
  85. package/dist/esm/cli/commands/app/upload.js.map +1 -0
  86. package/dist/esm/cli/commands/auth/index.js +10 -0
  87. package/dist/esm/cli/commands/auth/index.js.map +1 -0
  88. package/dist/esm/cli/commands/auth/login.js +68 -0
  89. package/dist/esm/cli/commands/auth/login.js.map +1 -0
  90. package/dist/esm/cli/commands/auth/logout.js +55 -0
  91. package/dist/esm/cli/commands/auth/logout.js.map +1 -0
  92. package/dist/esm/cli/commands/auth/token.js +74 -0
  93. package/dist/esm/cli/commands/auth/token.js.map +1 -0
  94. package/dist/esm/cli/commands/disco/index.js +6 -0
  95. package/dist/esm/cli/commands/disco/index.js.map +1 -0
  96. package/dist/esm/cli/commands/disco/resolve.js +61 -0
  97. package/dist/esm/cli/commands/disco/resolve.js.map +1 -0
  98. package/dist/esm/cli/commands/index.js +11 -0
  99. package/dist/esm/cli/commands/index.js.map +1 -0
  100. package/dist/esm/cli/commands/portal/build.js +22 -0
  101. package/dist/esm/cli/commands/portal/build.js.map +1 -0
  102. package/dist/esm/cli/commands/portal/dev.js +24 -0
  103. package/dist/esm/cli/commands/portal/dev.js.map +1 -0
  104. package/dist/esm/cli/commands/portal/index.js +21 -0
  105. package/dist/esm/cli/commands/portal/index.js.map +1 -0
  106. package/dist/esm/cli/commands/portal/manifest.js +45 -0
  107. package/dist/esm/cli/commands/portal/manifest.js.map +1 -0
  108. package/dist/esm/cli/commands/portal/pack.js +35 -0
  109. package/dist/esm/cli/commands/portal/pack.js.map +1 -0
  110. package/dist/esm/cli/commands/portal/publish.js +73 -0
  111. package/dist/esm/cli/commands/portal/publish.js.map +1 -0
  112. package/dist/esm/cli/commands/portal/schema.js +68 -0
  113. package/dist/esm/cli/commands/portal/schema.js.map +1 -0
  114. package/dist/esm/cli/commands/portal/tag.js +69 -0
  115. package/dist/esm/cli/commands/portal/tag.js.map +1 -0
  116. package/dist/esm/cli/commands/portal/upload.js +40 -0
  117. package/dist/esm/cli/commands/portal/upload.js.map +1 -0
  118. package/dist/esm/cli/main.js +52 -0
  119. package/dist/esm/cli/main.js.map +1 -0
  120. package/dist/esm/cli/options/auth.js +96 -0
  121. package/dist/esm/cli/options/auth.js.map +1 -0
  122. package/dist/esm/cli/options/env.js +30 -0
  123. package/dist/esm/cli/options/env.js.map +1 -0
  124. package/dist/esm/lib/app/app-config.js +12 -0
  125. package/dist/esm/lib/app/app-config.js.map +1 -0
  126. package/dist/esm/lib/app/app-manifest.js +15 -0
  127. package/dist/esm/lib/app/app-manifest.js.map +1 -0
  128. package/dist/{lib → esm/lib/app}/app-package.js +30 -10
  129. package/dist/esm/lib/app/app-package.js.map +1 -0
  130. package/dist/esm/lib/app/create-app-manifest.js +72 -0
  131. package/dist/esm/lib/app/create-app-manifest.js.map +1 -0
  132. package/dist/esm/lib/app/index.js +9 -0
  133. package/dist/esm/lib/app/index.js.map +1 -0
  134. package/dist/esm/lib/app/load-app-config.js +47 -0
  135. package/dist/esm/lib/app/load-app-config.js.map +1 -0
  136. package/dist/esm/lib/app/load-app-manifest.js +61 -0
  137. package/dist/esm/lib/app/load-app-manifest.js.map +1 -0
  138. package/dist/esm/lib/app/merge-app-config.js +21 -0
  139. package/dist/esm/lib/app/merge-app-config.js.map +1 -0
  140. package/dist/esm/lib/app/merge-app-manifest.js +31 -0
  141. package/dist/esm/lib/app/merge-app-manifest.js.map +1 -0
  142. package/dist/esm/lib/app/schemas.js +28 -0
  143. package/dist/esm/lib/app/schemas.js.map +1 -0
  144. package/dist/esm/lib/dev-server.js +3 -0
  145. package/dist/esm/lib/dev-server.js.map +1 -0
  146. package/dist/esm/lib/framework.node.js +104 -0
  147. package/dist/esm/lib/framework.node.js.map +1 -0
  148. package/dist/esm/lib/index.js +5 -0
  149. package/dist/esm/lib/index.js.map +1 -0
  150. package/dist/esm/lib/legacy.js +38 -0
  151. package/dist/esm/lib/legacy.js.map +1 -0
  152. package/dist/esm/lib/load-dev-server-config.js +43 -0
  153. package/dist/esm/lib/load-dev-server-config.js.map +1 -0
  154. package/dist/esm/lib/merge-dev-server-config.js +37 -0
  155. package/dist/esm/lib/merge-dev-server-config.js.map +1 -0
  156. package/dist/esm/lib/portal/create-portal-manifest.js +93 -0
  157. package/dist/esm/lib/portal/create-portal-manifest.js.map +1 -0
  158. package/dist/esm/lib/portal/index.js +3 -0
  159. package/dist/esm/lib/portal/index.js.map +1 -0
  160. package/dist/esm/lib/portal/load-portal-manifest.js +54 -0
  161. package/dist/esm/lib/portal/load-portal-manifest.js.map +1 -0
  162. package/dist/esm/lib/portal/load-portal-schema.js +49 -0
  163. package/dist/esm/lib/portal/load-portal-schema.js.map +1 -0
  164. package/dist/esm/lib/portal/portal-manifest.js +21 -0
  165. package/dist/esm/lib/portal/portal-manifest.js.map +1 -0
  166. package/dist/esm/lib/portal/portal-manifest.schema.js +134 -0
  167. package/dist/esm/lib/portal/portal-manifest.schema.js.map +1 -0
  168. package/dist/esm/lib/static.js +20 -0
  169. package/dist/esm/lib/static.js.map +1 -0
  170. package/dist/{lib/utils → esm/lib}/types.js.map +1 -1
  171. package/dist/esm/lib/utils/assert.js +87 -0
  172. package/dist/esm/lib/utils/assert.js.map +1 -0
  173. package/dist/esm/lib/utils/expect.js.map +1 -0
  174. package/dist/{lib/plugins/app-assets/extension-filter-pattern.js → esm/lib/utils/extension-filter.js} +1 -1
  175. package/dist/esm/lib/utils/extension-filter.js.map +1 -0
  176. package/dist/esm/lib/utils/file-exists.js.map +1 -0
  177. package/dist/esm/lib/utils/index.js +6 -0
  178. package/dist/esm/lib/utils/index.js.map +1 -0
  179. package/dist/{lib → esm/lib}/utils/parse-json-request.js +3 -1
  180. package/dist/esm/lib/utils/parse-json-request.js.map +1 -0
  181. package/dist/esm/lib/utils/resolve-annotations.js +28 -0
  182. package/dist/esm/lib/utils/resolve-annotations.js.map +1 -0
  183. package/dist/esm/lib/utils/resolve-devops-annotations.js +59 -0
  184. package/dist/esm/lib/utils/resolve-devops-annotations.js.map +1 -0
  185. package/dist/esm/lib/utils/resolve-git-commit-sha.js +23 -0
  186. package/dist/esm/lib/utils/resolve-git-commit-sha.js.map +1 -0
  187. package/dist/esm/lib/utils/resolve-git-remote-url.js +24 -0
  188. package/dist/esm/lib/utils/resolve-git-remote-url.js.map +1 -0
  189. package/dist/esm/lib/utils/resolve-github-annotations.js +127 -0
  190. package/dist/esm/lib/utils/resolve-github-annotations.js.map +1 -0
  191. package/dist/esm/lib/utils/resolve-package-repo.js +14 -0
  192. package/dist/esm/lib/utils/resolve-package-repo.js.map +1 -0
  193. package/dist/esm/lib/utils/resolve-package.js +18 -0
  194. package/dist/esm/lib/utils/resolve-package.js.map +1 -0
  195. package/dist/esm/lib/utils/resolve-source-entry-point.js +39 -0
  196. package/dist/esm/lib/utils/resolve-source-entry-point.js.map +1 -0
  197. package/dist/esm/lib/utils/types.js.map +1 -0
  198. package/dist/esm/lib/utils/write-file.js +25 -0
  199. package/dist/esm/lib/utils/write-file.js.map +1 -0
  200. package/dist/esm/version.js +3 -0
  201. package/dist/esm/version.js.map +1 -0
  202. package/dist/tsconfig.tsbuildinfo +1 -0
  203. package/dist/types/bin/app-build.d.ts +52 -0
  204. package/dist/types/bin/app-check.d.ts +31 -0
  205. package/dist/types/bin/app-config-publish.d.ts +23 -0
  206. package/dist/types/bin/app-config.d.ts +52 -0
  207. package/dist/types/bin/app-dev.d.ts +45 -0
  208. package/dist/types/bin/app-manifest.d.ts +42 -0
  209. package/dist/types/bin/app-pack.d.ts +38 -0
  210. package/dist/types/bin/app-tag.d.ts +51 -0
  211. package/dist/types/bin/app-upload.d.ts +40 -0
  212. package/dist/types/bin/helpers/load-bundle-metadata.d.ts +15 -0
  213. package/dist/types/bin/helpers/load-vite-config.d.ts +12 -0
  214. package/dist/types/bin/helpers/resolve-app-config.d.ts +18 -0
  215. package/dist/types/bin/helpers/resolve-app-manifest.d.ts +17 -0
  216. package/dist/types/bin/helpers/resolve-portal-manifest.d.ts +27 -0
  217. package/dist/types/bin/helpers/resolve-project-package.d.ts +13 -0
  218. package/dist/types/bin/index.d.ts +9 -0
  219. package/dist/types/bin/pack.d.ts +36 -0
  220. package/dist/types/bin/portal-build.d.ts +54 -0
  221. package/dist/types/bin/portal-dev.d.ts +37 -0
  222. package/dist/types/bin/portal-manifest.d.ts +60 -0
  223. package/dist/types/bin/portal-pack.d.ts +54 -0
  224. package/dist/types/bin/portal-tag.d.ts +51 -0
  225. package/dist/types/bin/portal-upload.d.ts +37 -0
  226. package/dist/types/bin/utils/ConsoleLogger.d.ts +84 -0
  227. package/dist/types/bin/utils/create-dev-server.d.ts +49 -0
  228. package/dist/types/bin/utils/format.d.ts +27 -0
  229. package/dist/types/bin/utils/index.d.ts +3 -13
  230. package/dist/types/bin/utils/spinner.d.ts +75 -0
  231. package/dist/types/cli/commands/app/alias.d.ts +6 -0
  232. package/dist/types/cli/commands/app/build.d.ts +27 -0
  233. package/dist/types/cli/commands/app/check.d.ts +26 -0
  234. package/dist/types/cli/commands/app/config.d.ts +34 -0
  235. package/dist/types/cli/commands/app/dev.d.ts +29 -0
  236. package/dist/types/cli/commands/app/index.d.ts +3 -0
  237. package/dist/types/cli/commands/app/manifest.d.ts +30 -0
  238. package/dist/types/cli/commands/app/pack.d.ts +31 -0
  239. package/dist/types/cli/commands/app/publish.d.ts +31 -0
  240. package/dist/types/cli/commands/app/tag.d.ts +33 -0
  241. package/dist/types/cli/commands/app/upload.d.ts +29 -0
  242. package/dist/types/cli/commands/auth/index.d.ts +3 -0
  243. package/dist/types/cli/commands/auth/login.d.ts +2 -0
  244. package/dist/types/cli/commands/auth/logout.d.ts +12 -0
  245. package/dist/types/cli/commands/auth/token.d.ts +13 -0
  246. package/dist/types/cli/commands/disco/index.d.ts +2 -0
  247. package/dist/types/cli/commands/disco/resolve.d.ts +25 -0
  248. package/dist/types/cli/commands/portal/build.d.ts +2 -0
  249. package/dist/types/cli/commands/portal/dev.d.ts +2 -0
  250. package/dist/types/cli/commands/portal/index.d.ts +2 -0
  251. package/dist/types/cli/commands/portal/manifest.d.ts +2 -0
  252. package/dist/types/cli/commands/portal/pack.d.ts +2 -0
  253. package/dist/types/cli/commands/portal/publish.d.ts +2 -0
  254. package/dist/types/cli/commands/portal/schema.d.ts +2 -0
  255. package/dist/types/cli/commands/portal/tag.d.ts +2 -0
  256. package/dist/types/cli/commands/portal/upload.d.ts +2 -0
  257. package/dist/types/cli/main.d.ts +21 -0
  258. package/dist/types/cli/options/auth.d.ts +37 -0
  259. package/dist/types/cli/options/env.d.ts +19 -0
  260. package/dist/types/lib/app/app-config.d.ts +31 -0
  261. package/dist/types/lib/app/app-manifest.d.ts +39 -0
  262. package/dist/types/lib/{app-package.d.ts → app/app-package.d.ts} +27 -10
  263. package/dist/types/lib/app/create-app-manifest.d.ts +17 -0
  264. package/dist/types/lib/app/index.d.ts +8 -0
  265. package/dist/types/lib/app/load-app-config.d.ts +54 -0
  266. package/dist/types/lib/app/load-app-manifest.d.ts +57 -0
  267. package/dist/types/lib/app/merge-app-config.d.ts +13 -0
  268. package/dist/types/lib/app/merge-app-manifest.d.ts +25 -0
  269. package/dist/types/{schemas.d.ts → lib/app/schemas.d.ts} +10 -1
  270. package/dist/types/lib/dev-server.d.ts +2 -0
  271. package/dist/types/lib/framework.node.d.ts +77 -0
  272. package/dist/types/lib/index.d.ts +4 -3
  273. package/dist/types/lib/legacy.d.ts +24 -0
  274. package/dist/types/lib/load-dev-server-config.d.ts +40 -0
  275. package/dist/types/lib/merge-dev-server-config.d.ts +16 -0
  276. package/dist/types/lib/portal/create-portal-manifest.d.ts +22 -0
  277. package/dist/types/lib/portal/index.d.ts +2 -0
  278. package/dist/types/lib/portal/load-portal-manifest.d.ts +65 -0
  279. package/dist/types/lib/portal/load-portal-schema.d.ts +43 -0
  280. package/dist/types/lib/portal/portal-manifest.d.ts +16 -0
  281. package/dist/types/lib/portal/portal-manifest.schema.d.ts +154 -0
  282. package/dist/types/lib/static.d.ts +10 -0
  283. package/dist/types/lib/types.d.ts +34 -0
  284. package/dist/types/lib/utils/assert.d.ts +48 -0
  285. package/dist/types/lib/utils/index.d.ts +5 -0
  286. package/dist/types/lib/utils/resolve-annotations.d.ts +11 -0
  287. package/dist/types/lib/utils/resolve-devops-annotations.d.ts +30 -0
  288. package/dist/types/lib/utils/resolve-git-commit-sha.d.ts +13 -0
  289. package/dist/types/lib/utils/resolve-git-remote-url.d.ts +13 -0
  290. package/dist/types/lib/utils/resolve-github-annotations.d.ts +65 -0
  291. package/dist/types/lib/utils/resolve-package-repo.d.ts +9 -0
  292. package/dist/types/lib/utils/resolve-package.d.ts +15 -0
  293. package/dist/types/lib/utils/resolve-source-entry-point.d.ts +17 -0
  294. package/dist/types/lib/utils/types.d.ts +1 -1
  295. package/dist/types/lib/utils/write-file.d.ts +14 -0
  296. package/dist/types/version.d.ts +1 -1
  297. package/docs/application.md +644 -0
  298. package/docs/auth.md +190 -0
  299. package/docs/libsecret.md +97 -0
  300. package/docs/migration-v10-to-v11.md +74 -0
  301. package/docs/portal.md +278 -0
  302. package/package.json +60 -69
  303. package/dist/bin/build-application.js +0 -55
  304. package/dist/bin/build-application.js.map +0 -1
  305. package/dist/bin/bundle-application.js +0 -41
  306. package/dist/bin/bundle-application.js.map +0 -1
  307. package/dist/bin/create-dev-serve.js +0 -127
  308. package/dist/bin/create-dev-serve.js.map +0 -1
  309. package/dist/bin/create-export-config.js +0 -40
  310. package/dist/bin/create-export-config.js.map +0 -1
  311. package/dist/bin/create-export-manifest.js +0 -67
  312. package/dist/bin/create-export-manifest.js.map +0 -1
  313. package/dist/bin/dev-portal/AppLoader.js +0 -80
  314. package/dist/bin/dev-portal/AppLoader.js.map +0 -1
  315. package/dist/bin/dev-portal/BookMarkSideSheet.js +0 -13
  316. package/dist/bin/dev-portal/BookMarkSideSheet.js.map +0 -1
  317. package/dist/bin/dev-portal/ContextSelector/ContextSelector.js +0 -40
  318. package/dist/bin/dev-portal/ContextSelector/ContextSelector.js.map +0 -1
  319. package/dist/bin/dev-portal/ContextSelector/index.js +0 -2
  320. package/dist/bin/dev-portal/ContextSelector/index.js.map +0 -1
  321. package/dist/bin/dev-portal/ContextSelector/useContextResolver.js +0 -216
  322. package/dist/bin/dev-portal/ContextSelector/useContextResolver.js.map +0 -1
  323. package/dist/bin/dev-portal/EquinorLoader.js +0 -14
  324. package/dist/bin/dev-portal/EquinorLoader.js.map +0 -1
  325. package/dist/bin/dev-portal/ErrorViewer.js +0 -7
  326. package/dist/bin/dev-portal/ErrorViewer.js.map +0 -1
  327. package/dist/bin/dev-portal/FusionLogo.js +0 -4
  328. package/dist/bin/dev-portal/FusionLogo.js.map +0 -1
  329. package/dist/bin/dev-portal/Header.Actions.js +0 -12
  330. package/dist/bin/dev-portal/Header.Actions.js.map +0 -1
  331. package/dist/bin/dev-portal/Header.js +0 -41
  332. package/dist/bin/dev-portal/Header.js.map +0 -1
  333. package/dist/bin/dev-portal/PersonSideSheet/index.js +0 -32
  334. package/dist/bin/dev-portal/PersonSideSheet/index.js.map +0 -1
  335. package/dist/bin/dev-portal/PersonSideSheet/sheets/FeatureSheetContent.js +0 -16
  336. package/dist/bin/dev-portal/PersonSideSheet/sheets/FeatureSheetContent.js.map +0 -1
  337. package/dist/bin/dev-portal/PersonSideSheet/sheets/FeatureTogglerApp.js +0 -15
  338. package/dist/bin/dev-portal/PersonSideSheet/sheets/FeatureTogglerApp.js.map +0 -1
  339. package/dist/bin/dev-portal/PersonSideSheet/sheets/FeatureTogglerPortal.js +0 -13
  340. package/dist/bin/dev-portal/PersonSideSheet/sheets/FeatureTogglerPortal.js.map +0 -1
  341. package/dist/bin/dev-portal/PersonSideSheet/sheets/LandingSheetContent.js +0 -19
  342. package/dist/bin/dev-portal/PersonSideSheet/sheets/LandingSheetContent.js.map +0 -1
  343. package/dist/bin/dev-portal/PersonSideSheet/sheets/Styled.js +0 -30
  344. package/dist/bin/dev-portal/PersonSideSheet/sheets/Styled.js.map +0 -1
  345. package/dist/bin/dev-portal/PersonSideSheet/sheets/index.js +0 -3
  346. package/dist/bin/dev-portal/PersonSideSheet/sheets/index.js.map +0 -1
  347. package/dist/bin/dev-portal/PersonSideSheet/sheets/types.js.map +0 -1
  348. package/dist/bin/dev-portal/Router.js +0 -59
  349. package/dist/bin/dev-portal/Router.js.map +0 -1
  350. package/dist/bin/dev-portal/config.js +0 -79
  351. package/dist/bin/dev-portal/config.js.map +0 -1
  352. package/dist/bin/dev-portal/main.js +0 -13
  353. package/dist/bin/dev-portal/main.js.map +0 -1
  354. package/dist/bin/dev-portal/resources/fallback-photo.svg.js +0 -3
  355. package/dist/bin/dev-portal/resources/fallback-photo.svg.js.map +0 -1
  356. package/dist/bin/dev-portal/useAppContextNavigation.js +0 -87
  357. package/dist/bin/dev-portal/useAppContextNavigation.js.map +0 -1
  358. package/dist/bin/main.app.js +0 -172
  359. package/dist/bin/main.app.js.map +0 -1
  360. package/dist/bin/main.js +0 -20
  361. package/dist/bin/main.js.map +0 -1
  362. package/dist/bin/public/assets/index-B7SVn0UQ.js +0 -3686
  363. package/dist/bin/public/index.html +0 -37
  364. package/dist/bin/publish-application.js +0 -96
  365. package/dist/bin/publish-application.js.map +0 -1
  366. package/dist/bin/tag-application.js +0 -73
  367. package/dist/bin/tag-application.js.map +0 -1
  368. package/dist/bin/upload-application.js +0 -63
  369. package/dist/bin/upload-application.js.map +0 -1
  370. package/dist/bin/upload-export-config.js +0 -78
  371. package/dist/bin/upload-export-config.js.map +0 -1
  372. package/dist/bin/utils/execute-command.js +0 -14
  373. package/dist/bin/utils/execute-command.js.map +0 -1
  374. package/dist/bin/utils/format.js +0 -16
  375. package/dist/bin/utils/format.js.map +0 -1
  376. package/dist/bin/utils/getEndpointUrl.js +0 -40
  377. package/dist/bin/utils/getEndpointUrl.js.map +0 -1
  378. package/dist/bin/utils/index.js +0 -14
  379. package/dist/bin/utils/index.js.map +0 -1
  380. package/dist/bin/utils/isAppRegistered.js +0 -26
  381. package/dist/bin/utils/isAppRegistered.js.map +0 -1
  382. package/dist/bin/utils/load-app-config.js +0 -26
  383. package/dist/bin/utils/load-app-config.js.map +0 -1
  384. package/dist/bin/utils/load-manifest.js +0 -31
  385. package/dist/bin/utils/load-manifest.js.map +0 -1
  386. package/dist/bin/utils/load-package.js +0 -18
  387. package/dist/bin/utils/load-package.js.map +0 -1
  388. package/dist/bin/utils/load-vite-config.js +0 -45
  389. package/dist/bin/utils/load-vite-config.js.map +0 -1
  390. package/dist/bin/utils/proxy-request-logger.js +0 -33
  391. package/dist/bin/utils/proxy-request-logger.js.map +0 -1
  392. package/dist/bin/utils/publishAppConfig.js +0 -29
  393. package/dist/bin/utils/publishAppConfig.js.map +0 -1
  394. package/dist/bin/utils/requireToken.js +0 -9
  395. package/dist/bin/utils/requireToken.js.map +0 -1
  396. package/dist/bin/utils/spinner.js +0 -65
  397. package/dist/bin/utils/spinner.js.map +0 -1
  398. package/dist/bin/utils/tagAppBundle.js +0 -26
  399. package/dist/bin/utils/tagAppBundle.js.map +0 -1
  400. package/dist/bin/utils/uploadAppBundle.js +0 -45
  401. package/dist/bin/utils/uploadAppBundle.js.map +0 -1
  402. package/dist/lib/app-config.js +0 -32
  403. package/dist/lib/app-config.js.map +0 -1
  404. package/dist/lib/app-manifest.js +0 -142
  405. package/dist/lib/app-manifest.js.map +0 -1
  406. package/dist/lib/app-package.js.map +0 -1
  407. package/dist/lib/index.js +0 -4
  408. package/dist/lib/index.js.map +0 -1
  409. package/dist/lib/plugins/app-assets/app-asset-plugin.js +0 -96
  410. package/dist/lib/plugins/app-assets/app-asset-plugin.js.map +0 -1
  411. package/dist/lib/plugins/app-assets/emit-asset.js +0 -46
  412. package/dist/lib/plugins/app-assets/emit-asset.js.map +0 -1
  413. package/dist/lib/plugins/app-assets/extension-filter-pattern.js.map +0 -1
  414. package/dist/lib/plugins/app-assets/index.js +0 -4
  415. package/dist/lib/plugins/app-assets/index.js.map +0 -1
  416. package/dist/lib/plugins/app-assets/read-asset-content.js +0 -34
  417. package/dist/lib/plugins/app-assets/read-asset-content.js.map +0 -1
  418. package/dist/lib/plugins/app-assets/resolve-asset-id.js +0 -54
  419. package/dist/lib/plugins/app-assets/resolve-asset-id.js.map +0 -1
  420. package/dist/lib/plugins/app-assets/static.js +0 -15
  421. package/dist/lib/plugins/app-assets/static.js.map +0 -1
  422. package/dist/lib/plugins/app-proxy/app-proxy-plugin.js +0 -125
  423. package/dist/lib/plugins/app-proxy/app-proxy-plugin.js.map +0 -1
  424. package/dist/lib/plugins/app-proxy/index.js +0 -2
  425. package/dist/lib/plugins/app-proxy/index.js.map +0 -1
  426. package/dist/lib/plugins/app-settings/index.js +0 -36
  427. package/dist/lib/plugins/app-settings/index.js.map +0 -1
  428. package/dist/lib/plugins/external-public/external-public-plugin.js +0 -101
  429. package/dist/lib/plugins/external-public/external-public-plugin.js.map +0 -1
  430. package/dist/lib/plugins/external-public/index.js +0 -2
  431. package/dist/lib/plugins/external-public/index.js.map +0 -1
  432. package/dist/lib/plugins/help-proxy/help-proxy-plugin.js +0 -78
  433. package/dist/lib/plugins/help-proxy/help-proxy-plugin.js.map +0 -1
  434. package/dist/lib/plugins/help-proxy/index.js +0 -2
  435. package/dist/lib/plugins/help-proxy/index.js.map +0 -1
  436. package/dist/lib/utils/assert.js +0 -28
  437. package/dist/lib/utils/assert.js.map +0 -1
  438. package/dist/lib/utils/config.js +0 -67
  439. package/dist/lib/utils/config.js.map +0 -1
  440. package/dist/lib/utils/expect.js.map +0 -1
  441. package/dist/lib/utils/file-exists.js.map +0 -1
  442. package/dist/lib/utils/parse-json-request.js.map +0 -1
  443. package/dist/lib/utils/ts-transpile.js +0 -45
  444. package/dist/lib/utils/ts-transpile.js.map +0 -1
  445. package/dist/lib/vite-config.js +0 -76
  446. package/dist/lib/vite-config.js.map +0 -1
  447. package/dist/lib/vite-logger.js +0 -21
  448. package/dist/lib/vite-logger.js.map +0 -1
  449. package/dist/schemas.js +0 -14
  450. package/dist/schemas.js.map +0 -1
  451. package/dist/types/bin/build-application.d.ts +0 -13
  452. package/dist/types/bin/bundle-application.d.ts +0 -4
  453. package/dist/types/bin/create-dev-serve.d.ts +0 -12
  454. package/dist/types/bin/create-export-config.d.ts +0 -13
  455. package/dist/types/bin/create-export-manifest.d.ts +0 -16
  456. package/dist/types/bin/dev-portal/AppLoader.d.ts +0 -11
  457. package/dist/types/bin/dev-portal/BookMarkSideSheet.d.ts +0 -6
  458. package/dist/types/bin/dev-portal/ContextSelector/ContextSelector.d.ts +0 -8
  459. package/dist/types/bin/dev-portal/ContextSelector/index.d.ts +0 -1
  460. package/dist/types/bin/dev-portal/ContextSelector/useContextResolver.d.ts +0 -15
  461. package/dist/types/bin/dev-portal/EquinorLoader.d.ts +0 -5
  462. package/dist/types/bin/dev-portal/ErrorViewer.d.ts +0 -4
  463. package/dist/types/bin/dev-portal/FusionLogo.d.ts +0 -6
  464. package/dist/types/bin/dev-portal/Header.Actions.d.ts +0 -7
  465. package/dist/types/bin/dev-portal/Header.d.ts +0 -2
  466. package/dist/types/bin/dev-portal/PersonSideSheet/index.d.ts +0 -11
  467. package/dist/types/bin/dev-portal/PersonSideSheet/sheets/FeatureSheetContent.d.ts +0 -6
  468. package/dist/types/bin/dev-portal/PersonSideSheet/sheets/FeatureTogglerApp.d.ts +0 -5
  469. package/dist/types/bin/dev-portal/PersonSideSheet/sheets/FeatureTogglerPortal.d.ts +0 -5
  470. package/dist/types/bin/dev-portal/PersonSideSheet/sheets/LandingSheetContent.d.ts +0 -5
  471. package/dist/types/bin/dev-portal/PersonSideSheet/sheets/Styled.d.ts +0 -6
  472. package/dist/types/bin/dev-portal/PersonSideSheet/sheets/index.d.ts +0 -2
  473. package/dist/types/bin/dev-portal/PersonSideSheet/sheets/types.d.ts +0 -5
  474. package/dist/types/bin/dev-portal/Router.d.ts +0 -1
  475. package/dist/types/bin/dev-portal/config.d.ts +0 -3
  476. package/dist/types/bin/dev-portal/main.d.ts +0 -1
  477. package/dist/types/bin/dev-portal/resources/fallback-photo.svg.d.ts +0 -2
  478. package/dist/types/bin/dev-portal/useAppContextNavigation.d.ts +0 -5
  479. package/dist/types/bin/main.d.ts +0 -1
  480. package/dist/types/bin/publish-application.d.ts +0 -6
  481. package/dist/types/bin/tag-application.d.ts +0 -12
  482. package/dist/types/bin/upload-application.d.ts +0 -6
  483. package/dist/types/bin/upload-export-config.d.ts +0 -10
  484. package/dist/types/bin/utils/execute-command.d.ts +0 -8
  485. package/dist/types/bin/utils/getEndpointUrl.d.ts +0 -10
  486. package/dist/types/bin/utils/isAppRegistered.d.ts +0 -5
  487. package/dist/types/bin/utils/load-app-config.d.ts +0 -10
  488. package/dist/types/bin/utils/load-manifest.d.ts +0 -10
  489. package/dist/types/bin/utils/load-package.d.ts +0 -5
  490. package/dist/types/bin/utils/load-vite-config.d.ts +0 -10
  491. package/dist/types/bin/utils/proxy-request-logger.d.ts +0 -15
  492. package/dist/types/bin/utils/publishAppConfig.d.ts +0 -9
  493. package/dist/types/bin/utils/requireToken.d.ts +0 -4
  494. package/dist/types/bin/utils/tagAppBundle.d.ts +0 -7
  495. package/dist/types/bin/utils/uploadAppBundle.d.ts +0 -7
  496. package/dist/types/lib/app-config.d.ts +0 -27
  497. package/dist/types/lib/app-manifest.d.ts +0 -52
  498. package/dist/types/lib/plugins/app-assets/app-asset-plugin.d.ts +0 -36
  499. package/dist/types/lib/plugins/app-assets/emit-asset.d.ts +0 -18
  500. package/dist/types/lib/plugins/app-assets/index.d.ts +0 -3
  501. package/dist/types/lib/plugins/app-assets/read-asset-content.d.ts +0 -14
  502. package/dist/types/lib/plugins/app-assets/resolve-asset-id.d.ts +0 -16
  503. package/dist/types/lib/plugins/app-assets/static.d.ts +0 -5
  504. package/dist/types/lib/plugins/app-proxy/app-proxy-plugin.d.ts +0 -89
  505. package/dist/types/lib/plugins/app-proxy/index.d.ts +0 -1
  506. package/dist/types/lib/plugins/app-settings/index.d.ts +0 -32
  507. package/dist/types/lib/plugins/external-public/external-public-plugin.d.ts +0 -30
  508. package/dist/types/lib/plugins/external-public/index.d.ts +0 -1
  509. package/dist/types/lib/plugins/help-proxy/help-proxy-plugin.d.ts +0 -42
  510. package/dist/types/lib/plugins/help-proxy/index.d.ts +0 -1
  511. package/dist/types/lib/utils/config.d.ts +0 -32
  512. package/dist/types/lib/utils/ts-transpile.d.ts +0 -2
  513. package/dist/types/lib/vite-config.d.ts +0 -17
  514. package/dist/types/lib/vite-logger.d.ts +0 -2
  515. package/dist/version.js +0 -3
  516. package/dist/version.js.map +0 -1
  517. /package/dist/{bin/dev-portal/PersonSideSheet/sheets → esm/lib}/types.js +0 -0
  518. /package/dist/{lib → esm/lib}/utils/expect.js +0 -0
  519. /package/dist/{lib → esm/lib}/utils/file-exists.js +0 -0
  520. /package/dist/{lib → esm/lib}/utils/types.js +0 -0
  521. /package/dist/types/{bin/main.app.d.ts → cli/commands/index.d.ts} +0 -0
  522. /package/dist/types/lib/{plugins/app-assets/extension-filter-pattern.d.ts → utils/extension-filter.d.ts} +0 -0
@@ -0,0 +1,104 @@
1
+ import { ModulesConfigurator } from '@equinor/fusion-framework-module';
2
+ import { enableAuthModule } from '@equinor/fusion-framework-module-msal-node';
3
+ import { module as httpModule } from '@equinor/fusion-framework-module-http';
4
+ import { enableServiceDiscovery, } from '@equinor/fusion-framework-module-service-discovery';
5
+ import isContinuousIntegration from 'is-ci';
6
+ // Default scope for Fusion service discovery
7
+ const FUSION_SERVICE_SCOPE = ['5a842df8-3238-415d-b168-9f16a6a6031b/.default'];
8
+ /**
9
+ * Enum for supported Fusion environments.
10
+ * Used to select the correct environment for service discovery and authentication.
11
+ */
12
+ export var FusionEnv;
13
+ (function (FusionEnv) {
14
+ FusionEnv["ContinuesIntegration"] = "ci";
15
+ FusionEnv["QualityAssurance"] = "fqa";
16
+ FusionEnv["Training"] = "tr";
17
+ FusionEnv["Production"] = "fprd";
18
+ FusionEnv["Development"] = "dev";
19
+ })(FusionEnv || (FusionEnv = {}));
20
+ /**
21
+ * Resolves the default environment based on CI status and dev allowance.
22
+ *
23
+ * @param allowDev - If true, allows development environment when not in CI.
24
+ * @returns The resolved Fusion environment.
25
+ */
26
+ export const resolveDefaultEnv = (allowDev) => {
27
+ // If development is allowed and not running in CI, use development environment
28
+ if (allowDev && !isContinuousIntegration) {
29
+ return FusionEnv.Development;
30
+ }
31
+ // Otherwise, default to CI environment
32
+ return FusionEnv.ContinuesIntegration;
33
+ };
34
+ /**
35
+ * Initializes the Fusion Framework with the provided settings.
36
+ *
37
+ * This function configures HTTP, service discovery, and authentication modules
38
+ * based on the supplied configuration. It supports multiple authentication modes
39
+ * and allows customization of service discovery endpoints and scopes.
40
+ *
41
+ * @param config - The settings for framework initialization.
42
+ * @returns A promise resolving to the initialized Fusion Framework instance.
43
+ * @throws Will throw if required authentication parameters are missing.
44
+ */
45
+ export const initializeFramework = async (config) => {
46
+ // Create a new module configurator for the framework
47
+ const configurator = new ModulesConfigurator();
48
+ // Determine the environment to use, defaulting to CI if not specified
49
+ const env = config.env ?? FusionEnv.ContinuesIntegration;
50
+ // Configure the HTTP module for service discovery
51
+ configurator.addConfig({
52
+ module: httpModule,
53
+ configure: (builder) => {
54
+ // Use CI environment for service discovery in development, otherwise use the selected env
55
+ const serviceDiscoveryEnv = env === FusionEnv.Development ? FusionEnv.ContinuesIntegration : env;
56
+ // Determine the base URI for service discovery
57
+ const baseUri = config.serviceDiscovery?.url ??
58
+ new URL(`/service-registry/environments/${serviceDiscoveryEnv}/services`, 'https://discovery.fusion.equinor.com').toString();
59
+ // Use provided scopes or default Fusion service scope
60
+ const defaultScopes = config.serviceDiscovery?.scope ?? FUSION_SERVICE_SCOPE;
61
+ // Register the service discovery client with the HTTP module
62
+ builder.configureClient('service_discovery', {
63
+ baseUri,
64
+ defaultScopes,
65
+ });
66
+ },
67
+ });
68
+ // Enable the service discovery module
69
+ enableServiceDiscovery(configurator);
70
+ // Enable the authentication module with custom configuration logic
71
+ enableAuthModule(configurator, (builder) => {
72
+ const { auth } = config;
73
+ // Handle direct token authentication
74
+ if ('token' in auth && auth.token) {
75
+ const { token } = auth;
76
+ builder.setMode('token_only');
77
+ builder.setAccessToken(token);
78
+ return;
79
+ }
80
+ // Handle silent or interactive authentication
81
+ const { clientId, tenantId, interactive } = auth;
82
+ if (!clientId || !tenantId) {
83
+ // Both clientId and tenantId are required for these modes
84
+ throw new Error('clientId and tenantId are required for auth module');
85
+ }
86
+ // Set client configuration for authentication
87
+ builder.setClientConfig(tenantId, clientId);
88
+ // Set authentication mode based on interactive flag
89
+ builder.setMode(interactive ? 'interactive' : 'silent');
90
+ if (interactive) {
91
+ // For interactive mode, server configuration is required
92
+ const { server } = auth;
93
+ if (!server.port) {
94
+ throw new Error('server.port is required for interactive mode');
95
+ }
96
+ builder.setServerPort(server.port);
97
+ builder.setServerOnOpen(server.onOpen);
98
+ }
99
+ });
100
+ // Initialize all configured modules and return the framework instance
101
+ const instance = await configurator.initialize();
102
+ return instance;
103
+ };
104
+ //# sourceMappingURL=framework.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"framework.node.js","sourceRoot":"","sources":["../../../src/lib/framework.node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export { initializeFramework } from './framework.node.js';
2
+ // Legacy imports - these will be removed in the next major version
3
+ // @todo - remove these imports, introduced in v11
4
+ export { defineAppConfig, defineAppManifest } from './legacy.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAwB,MAAM,qBAAqB,CAAC;AAEhF,mEAAmE;AACnE,kDAAkD;AAClD,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,38 @@
1
+ import chalk from 'chalk';
2
+ import { defineAppConfig as _defineConfig } from './app/app-config.js';
3
+ import { defineAppManifest as _defineManifest } from './app/app-manifest.js';
4
+ /**
5
+ * @deprecated
6
+ * Will be removed in the next major version.
7
+ * Please use `defineAppConfig` from `@equinor/fusion-framework-cli/app` instead.
8
+ *
9
+ * Transitional wrapper for legacy defineAppConfig. This function exists only to prevent immediate breaking changes
10
+ * and should be removed as soon as possible. Consumers should migrate to the new API without delay.
11
+ *
12
+ * @param args - Arguments passed to the new defineAppConfig function.
13
+ */
14
+ export const defineAppConfig = (...args) => {
15
+ // Emit a strong warning to alert consumers that this usage is deprecated and must be fixed ASAP
16
+ console.warn(chalk.bgRed.white.bold('[DEPRECATION]'), chalk.redBright.bold('[@equinor/fusion-framework-cli] `defineAppConfig` is deprecated and will be removed in the next major version!\n' +
17
+ 'Please update your code to use `defineAppConfig` from `@equinor/fusion-framework-cli/app` as soon as possible.'));
18
+ // Forward the call to the new implementation
19
+ return _defineConfig(...args);
20
+ };
21
+ /**
22
+ * @deprecated
23
+ * Will be removed in the next major version.
24
+ * Please use `defineAppManifest` from `@equinor/fusion-framework-cli/app` instead.
25
+ *
26
+ * Transitional wrapper for legacy defineAppManifest. This function exists only to prevent immediate breaking changes
27
+ * and should be removed as soon as possible. Consumers should migrate to the new API without delay.
28
+ *
29
+ * @param args - Arguments passed to the new defineAppManifest function.
30
+ */
31
+ export const defineAppManifest = (...args) => {
32
+ // Emit a strong warning to alert consumers that this usage is deprecated and must be fixed ASAP
33
+ console.warn(chalk.bgRed.white.bold('[DEPRECATION]'), chalk.redBright.bold('[@equinor/fusion-framework-cli] `defineAppManifest` is deprecated and will be removed in the next major version!\n' +
34
+ 'Please update your code to use `defineAppManifest` from `@equinor/fusion-framework-cli/app` as soon as possible.'));
35
+ // Forward the call to the new implementation
36
+ return _defineManifest(...args);
37
+ };
38
+ //# sourceMappingURL=legacy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacy.js","sourceRoot":"","sources":["../../../src/lib/legacy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,eAAe,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,iBAAiB,IAAI,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7E;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,GAAG,IAAsC,EAAE,EAAE;IAC3E,gGAAgG;IAChG,OAAO,CAAC,IAAI,CACV,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,EACvC,KAAK,CAAC,SAAS,CAAC,IAAI,CAClB,kHAAkH;QAChH,gHAAgH,CACnH,CACF,CAAC;IACF,6CAA6C;IAC7C,OAAO,aAAa,CAAC,GAAG,IAAI,CAAC,CAAC;AAChC,CAAC,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAG,IAAwC,EAAE,EAAE;IAC/E,gGAAgG;IAChG,OAAO,CAAC,IAAI,CACV,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,EACvC,KAAK,CAAC,SAAS,CAAC,IAAI,CAClB,oHAAoH;QAClH,kHAAkH,CACrH,CACF,CAAC;IACF,6CAA6C;IAC7C,OAAO,eAAe,CAAC,GAAG,IAAI,CAAC,CAAC;AAClC,CAAC,CAAC"}
@@ -0,0 +1,43 @@
1
+ import { importConfig } from '@equinor/fusion-imports';
2
+ /**
3
+ * Helper to define a dev server config function with proper typing.
4
+ * @param fn - The configuration function to be used as the dev server config.
5
+ * @returns The same function, typed as DevServerConfigFn.
6
+ */
7
+ export const defineDevServerConfig = (fn) => fn;
8
+ /**
9
+ * Loads the dev server configuration from a file or function.
10
+ *
11
+ * @param env - The runtime environment configuration.
12
+ * @param base - The base DevServerOptions to use as defaults.
13
+ * @param options - Optional settings for file name and extensions.
14
+ * @returns A promise resolving to the imported config result.
15
+ *
16
+ * This function uses importConfig to dynamically load the configuration file.
17
+ * If the config export is a function, it is invoked with the environment and a cloned base config.
18
+ * If the config export is an object, it is merged with the base config.
19
+ *
20
+ * Inline comments are provided for maintainability and clarity.
21
+ */
22
+ export const loadDevServerConfig = async (env, base, options) => {
23
+ // Use importConfig to load the config file, defaulting to 'dev-server.config' if not specified
24
+ return importConfig(options?.file ?? 'dev-server.config', {
25
+ baseDir: env.root, // Set the base directory for config resolution
26
+ extensions: options?.extensions, // Allow custom file extensions
27
+ script: {
28
+ // Custom resolver for the config module
29
+ resolve: async (module) => {
30
+ // If the default export is a function, call it with env and a cloned base config
31
+ if (typeof module.default === 'function') {
32
+ const baseClone = { ...base }; // Clone base to avoid mutation
33
+ const result = (await module.default(env, { base: baseClone })) ?? base;
34
+ // TODO: Add zod validation of the config for type safety
35
+ return result ?? baseClone;
36
+ }
37
+ // If the default export is an object, return it or fallback to base
38
+ return module.default ?? base;
39
+ },
40
+ },
41
+ });
42
+ };
43
+ //# sourceMappingURL=load-dev-server-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-dev-server-config.js","sourceRoot":"","sources":["../../../src/lib/load-dev-server-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA2B,MAAM,yBAAyB,CAAC;AAoBhF;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,EAAqB,EAAE,EAAE,CAAC,EAAE,CAAC;AAEnE;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EACtC,GAAe,EACf,IAAsB,EACtB,OAGC,EAC8C,EAAE;IACjD,+FAA+F;IAC/F,OAAO,YAAY,CAAC,OAAO,EAAE,IAAI,IAAI,mBAAmB,EAAE;QACxD,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE,+CAA+C;QAClE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,+BAA+B;QAChE,MAAM,EAAE;YACN,wCAAwC;YACxC,OAAO,EAAE,KAAK,EAAE,MAA0C,EAA6B,EAAE;gBACvF,iFAAiF;gBACjF,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;oBACzC,MAAM,SAAS,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,+BAA+B;oBAC9D,MAAM,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC;oBACxE,yDAAyD;oBACzD,OAAO,MAAM,IAAI,SAAS,CAAC;gBAC7B,CAAC;gBACD,oEAAoE;gBACpE,OAAO,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC;YAChC,CAAC;SACF;KACF,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -0,0 +1,37 @@
1
+ import mergeWith from 'lodash.mergewith';
2
+ /**
3
+ * Customizer function for lodash.mergeWith to handle merging arrays.
4
+ *
5
+ * If the property being merged is an array, the source value replaces the object value.
6
+ * This prevents arrays from being concatenated, which is the default lodash behavior.
7
+ *
8
+ * @param objValue - The value from the base object.
9
+ * @param srcValue - The value from the overrides object.
10
+ * @returns The value to use in the merged result, or undefined to use default merging.
11
+ */
12
+ const customizer = (objValue, srcValue) => {
13
+ if (Array.isArray(objValue)) {
14
+ // Replace arrays instead of merging/concatenating them
15
+ return srcValue;
16
+ }
17
+ // For non-arrays, use default merge behavior
18
+ };
19
+ /**
20
+ * Merges a base development server configuration with an overrides object.
21
+ *
22
+ * Uses lodash.mergeWith to deeply merge properties, with custom logic for arrays.
23
+ * Arrays in the overrides object will replace arrays in the base config.
24
+ *
25
+ * @param base - The base development server configuration.
26
+ * @param overrides - A partial configuration object containing properties to override in the base configuration.
27
+ * @returns The merged development server configuration.
28
+ *
29
+ * Inline comments are provided for maintainability and clarity.
30
+ */
31
+ export const mergeDevServerConfig = (base, overrides) => {
32
+ // Use lodash.mergeWith to merge base and overrides, applying the customizer for arrays
33
+ return mergeWith(base, overrides, customizer);
34
+ };
35
+ // Export as default for convenience in imports
36
+ export default mergeDevServerConfig;
37
+ //# sourceMappingURL=merge-dev-server-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge-dev-server-config.js","sourceRoot":"","sources":["../../../src/lib/merge-dev-server-config.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,kBAAkB,CAAC;AAKzC;;;;;;;;;GASG;AACH,MAAM,UAAU,GAAG,CAAC,QAAiB,EAAE,QAAiB,EAAE,EAAE;IAC1D,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,uDAAuD;QACvD,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,6CAA6C;AAC/C,CAAC,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,IAAsB,EACtB,SAA6C,EAC3B,EAAE;IACpB,uFAAuF;IACvF,OAAO,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAqB,CAAC;AACpE,CAAC,CAAC;AAEF,+CAA+C;AAC/C,eAAe,oBAAoB,CAAC"}
@@ -0,0 +1,93 @@
1
+ import { assert, assertObject } from '../utils/assert.js';
2
+ import { resolveAnnotations } from '../utils/resolve-annotations.js';
3
+ import { resolveEntryPoint } from '../utils/resolve-source-entry-point.js';
4
+ import { resolveRepoFromPackage } from '../utils/resolve-package-repo.js';
5
+ import { resolveGitRemoteUrl } from '../utils/resolve-git-remote-url.js';
6
+ import { resolveGitCommitSha } from '../utils/resolve-git-commit-sha.js';
7
+ import { ASSET_EXTENSIONS } from '../static.js';
8
+ import { PortalManifestSchema } from './portal-manifest.schema.js';
9
+ /**
10
+ * Resolves the appropriate entry point for a portal based on the current runtime environment.
11
+ *
12
+ * - In production or preview environments, it prefers the compiled entry point specified by
13
+ * the `main` or `module` fields in the provided `package.json`, falling back to `'dist/bundle.js'` if neither is present.
14
+ * - In development, it uses the source entry point for improved debugging.
15
+ *
16
+ * @param env - The runtime environment configuration, including command and preview status.
17
+ * @param packageJson - The parsed contents of the package's `package.json` file.
18
+ * @returns The resolved entry point path as a string.
19
+ */
20
+ const resolvePortalEntryPoint = (env, packageJson) => {
21
+ // Use compiled entry point when building for production or preview environments
22
+ if (env.command === 'build' || env.isPreview) {
23
+ // Prefer 'main', then 'module', then fallback to default bundle path
24
+ return packageJson.main || packageJson.module || 'dist/bundle.js';
25
+ }
26
+ // Use source entry point during development for better debugging
27
+ return resolveEntryPoint(env.root);
28
+ };
29
+ /**
30
+ * Creates a `PortalManifest` object from the provided `package.json` data and runtime environment.
31
+ *
32
+ * This function validates the input package information, determines the appropriate entry point,
33
+ * extracts metadata such as the app key, version, and repository information, and constructs a manifest
34
+ * object suitable for use in portal deployment and development workflows.
35
+ *
36
+ * @param env - The runtime environment, containing information such as the current command (e.g., 'build', 'dev').
37
+ * @param packageJson - The parsed `package.json` object for the portal package, expected to include at least `name` and `version`.
38
+ * @returns A fully constructed `PortalManifest` object containing metadata, build information, and asset configuration.
39
+ *
40
+ * @throws Will throw an error if `packageJson` is not a valid object or is missing required fields.
41
+ *
42
+ * @remarks
43
+ * - Maintainers: This function is the canonical way to generate a portal manifest from package metadata.
44
+ * - The manifest structure is tightly coupled to the portal build and deployment pipeline.
45
+ * - If you add new fields to the manifest, update this function and its documentation accordingly.
46
+ */
47
+ export const createPortalManifestFromPackage = (env, packageJson) => {
48
+ // Validate that packageJson is a valid object and contains required fields
49
+ assertObject(packageJson, 'expected packageJson');
50
+ assert(packageJson.name, 'expected [name] in packageJson');
51
+ assert(packageJson.version, 'expected [version] in packageJson');
52
+ // Determine the entry point for the portal based on environment (prod/dev)
53
+ const entryPoint = resolvePortalEntryPoint(env, packageJson);
54
+ // Extract appKey from package name by removing the scope and leading @
55
+ // Example: '@scope/app-name' -> 'app-name'
56
+ const name = packageJson.name.replace(/^@|\w.*\//gm, '');
57
+ const version = packageJson.version;
58
+ // Only set assetPath when not building for production (used for dev/preview)
59
+ const assetPath = env.command === 'build' ? undefined : `bundles/portals/${name}/${version}`;
60
+ // Attempt to resolve GitHub repo from package, fallback to local git remote
61
+ const githubRepo = resolveRepoFromPackage(packageJson) ?? resolveGitRemoteUrl();
62
+ // Construct the portal manifest object with all required fields
63
+ const manifest = {
64
+ name,
65
+ displayName: packageJson.name,
66
+ description: packageJson.description || '',
67
+ build: {
68
+ templateEntry: entryPoint,
69
+ schemaEntry: 'portal.schema.json',
70
+ assetPath,
71
+ githubRepo,
72
+ version,
73
+ timestamp: new Date().toISOString(),
74
+ commitSha: resolveGitCommitSha(),
75
+ annotations: {
76
+ ...resolveAnnotations(),
77
+ // ...packageJson.annotations ?? {}
78
+ },
79
+ projectPage: packageJson.homepage,
80
+ allowedExtensions: ASSET_EXTENSIONS.map((ext) => `.${ext}`),
81
+ },
82
+ };
83
+ // Validate manifest against schema and throw if invalid
84
+ const parsed = PortalManifestSchema.safeParse(manifest);
85
+ if (!parsed.success) {
86
+ const details = parsed.error.issues
87
+ .map((i) => `- ${i.path.join('.')}: ${i.message}`)
88
+ .join('\n');
89
+ throw new Error(['Invalid portal manifest generated from package.json:', details].join('\n'));
90
+ }
91
+ return parsed.data;
92
+ };
93
+ //# sourceMappingURL=create-portal-manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-portal-manifest.js","sourceRoot":"","sources":["../../../../src/lib/portal/create-portal-manifest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { createPortalManifestFromPackage, definePortalManifest, loadPortalManifest, validatePortalManifest, } from './portal-manifest.js';
2
+ export { loadPortalSchema, definePortalSchema, } from './load-portal-schema.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/portal/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,+BAA+B,EAC/B,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,GAIvB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,gBAAgB,EAChB,kBAAkB,GAInB,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,54 @@
1
+ import { importConfig } from '@equinor/fusion-imports';
2
+ import { PortalManifestSchema } from './portal-manifest.schema.js';
3
+ /**
4
+ * Loads a portal manifest configuration file, merging it with optional base values and supporting multiple file extensions.
5
+ *
6
+ * @template T - The type of the portal manifest, extending Partial<PortalManifest>. Defaults to PortalManifest.
7
+ * @param env - The runtime environment containing configuration such as the root directory and environment name.
8
+ * @param options - Optional settings for loading the manifest.
9
+ * @returns A promise that resolves to a `LoadAppManifestResult<T>` containing the loaded manifest, the file path, and the file extension.
10
+ *
11
+ * This function is the main entry point for loading portal manifest files. It supports merging with a base manifest, custom file name suggestions, and extension filtering.
12
+ *
13
+ * Example usage:
14
+ * ```ts
15
+ * const result = await loadPortalManifest(env, { base: {}, file: 'custom.manifest' });
16
+ * ```
17
+ */
18
+ export const loadPortalManifest = async (env, options) => {
19
+ // Determine manifest file name suggestions, defaulting to environment-specific and generic names
20
+ const suggestions = options?.file ?? [`portal.manifest.${env.environment}`, 'portal.manifest'];
21
+ // Import the manifest configuration using the provided suggestions and options
22
+ const importResult = await importConfig(suggestions, {
23
+ baseDir: env.root, // Set the base directory for manifest resolution
24
+ extensions: options?.extensions, // Allow custom file extensions if provided
25
+ script: {
26
+ // Custom resolver for manifest modules
27
+ resolve: async (module) => {
28
+ // Use the provided base manifest or an empty object as the starting point
29
+ const base = options?.base ?? {};
30
+ // If the manifest export is a function, call it with the environment and base manifest
31
+ if (typeof module.default === 'function') {
32
+ // Await the result of the manifest function, falling back to base if undefined
33
+ const result = (await module.default(env, { base })) ?? base;
34
+ return result ?? base;
35
+ }
36
+ // If the manifest export is an object, merge or return it directly
37
+ return module.default ?? base;
38
+ },
39
+ },
40
+ });
41
+ // Return the loaded manifest, file path, and extension for downstream use
42
+ // Validate the manifest before returning using the PortalManifestSchema (Zod)
43
+ const manifest = importResult.config;
44
+ const validation = PortalManifestSchema.safeParse(manifest);
45
+ if (!validation.success) {
46
+ throw new Error(`Invalid portal manifest: ${validation.error.errors.map((e) => `${e.path.join('.')}: ${e.message}`).join('; ')}`);
47
+ }
48
+ return {
49
+ manifest,
50
+ path: importResult.path,
51
+ extension: importResult.extension,
52
+ };
53
+ };
54
+ //# sourceMappingURL=load-portal-manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-portal-manifest.js","sourceRoot":"","sources":["../../../../src/lib/portal/load-portal-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAuDnE;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EACrC,GAAe,EACf,OAAsC,EACH,EAAE;IACrC,iGAAiG;IACjG,MAAM,WAAW,GAAG,OAAO,EAAE,IAAI,IAAI,CAAC,mBAAmB,GAAG,CAAC,WAAW,EAAE,EAAE,iBAAiB,CAAC,CAAC;IAE/F,+EAA+E;IAC/E,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,WAAW,EAAE;QACnD,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE,iDAAiD;QACpE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,2CAA2C;QAC5E,MAAM,EAAE;YACN,uCAAuC;YACvC,OAAO,EAAE,KAAK,EAAE,MAA4C,EAAc,EAAE;gBAC1E,0EAA0E;gBAC1E,MAAM,IAAI,GAAM,OAAO,EAAE,IAAI,IAAK,EAAQ,CAAC;gBAC3C,uFAAuF;gBACvF,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;oBACzC,+EAA+E;oBAC/E,MAAM,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC;oBAC7D,OAAO,MAAM,IAAI,IAAI,CAAC;gBACxB,CAAC;gBACD,mEAAmE;gBACnE,OAAQ,MAAM,CAAC,OAAa,IAAI,IAAI,CAAC;YACvC,CAAC;SACF;KACF,CAAC,CAAC;IAEH,0EAA0E;IAC1E,8EAA8E;IAC9E,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAW,CAAC;IAC1C,MAAM,UAAU,GAAG,oBAAoB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC5D,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CACb,4BAA4B,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACjH,CAAC;IACJ,CAAC;IACD,OAAO;QACL,QAAQ;QACR,IAAI,EAAE,YAAY,CAAC,IAAI;QACvB,SAAS,EAAE,YAAY,CAAC,SAAS;KAClC,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,49 @@
1
+ import { importConfig } from '@equinor/fusion-imports';
2
+ /**
3
+ * Helper to define a portal schema function with type inference.
4
+ * @template T - The type of the portal schema.
5
+ * @param fn - The schema function to define.
6
+ * @returns The provided schema function.
7
+ */
8
+ export const definePortalSchema = (fn) => fn;
9
+ /**
10
+ * Loads a portal schema from configuration files or schema functions.
11
+ *
12
+ * @template T - The type of the portal schema.
13
+ * @param env - The runtime environment used to resolve the schema.
14
+ * @param options - Optional configuration for file names and extensions.
15
+ * @returns An object containing the loaded schema, file path, and extension.
16
+ *
17
+ * This function attempts to import a schema configuration file or function based on the provided environment and options.
18
+ * It supports both direct schema objects and schema factory functions. The schema is resolved and validated before returning.
19
+ */
20
+ export const loadPortalSchema = async (env, options) => {
21
+ // Determine possible schema file names based on environment and options
22
+ const suggestions = options?.file ?? [`portal.schema.${env.environment}`, 'portal.schema'];
23
+ // Attempt to import the schema configuration using the importConfig utility
24
+ const importResult = await importConfig(suggestions, {
25
+ baseDir: env.root,
26
+ extensions: options?.extensions,
27
+ script: {
28
+ // Custom resolver to handle both schema objects and schema factory functions
29
+ resolve: async (module) => {
30
+ // If the default export is a function, call it with the environment; otherwise, use the object directly
31
+ const result = typeof module.default === 'function'
32
+ ? await Promise.resolve(module.default(env))
33
+ : module.default;
34
+ // Validate that a schema was returned
35
+ if (!result) {
36
+ throw new Error('Schema function did not return a valid schema');
37
+ }
38
+ return result;
39
+ },
40
+ },
41
+ });
42
+ // Return the loaded schema, along with the file path and extension for reference
43
+ return {
44
+ schema: importResult.config,
45
+ path: importResult.path,
46
+ extension: importResult.extension,
47
+ };
48
+ };
49
+ //# sourceMappingURL=load-portal-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-portal-schema.js","sourceRoot":"","sources":["../../../../src/lib/portal/load-portal-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAsBvD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAyB,EAAqB,EAAE,EAAE,CAAC,EAAE,CAAC;AAExF;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EACnC,GAAe,EACf,OAGC,EACD,EAAE;IACF,wEAAwE;IACxE,MAAM,WAAW,GAAG,OAAO,EAAE,IAAI,IAAI,CAAC,iBAAiB,GAAG,CAAC,WAAW,EAAE,EAAE,eAAe,CAAC,CAAC;IAE3F,4EAA4E;IAC5E,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,WAAW,EAAE;QACnD,OAAO,EAAE,GAAG,CAAC,IAAI;QACjB,UAAU,EAAE,OAAO,EAAE,UAAU;QAC/B,MAAM,EAAE;YACN,6EAA6E;YAC7E,OAAO,EAAE,KAAK,EAAE,MAA0C,EAAc,EAAE;gBACxE,wGAAwG;gBACxG,MAAM,MAAM,GACV,OAAO,MAAM,CAAC,OAAO,KAAK,UAAU;oBAClC,CAAC,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBAC5C,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;gBACrB,sCAAsC;gBACtC,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;gBACnE,CAAC;gBACD,OAAO,MAAW,CAAC;YACrB,CAAC;SACF;KACF,CAAC,CAAC;IACH,iFAAiF;IACjF,OAAO;QACL,MAAM,EAAE,YAAY,CAAC,MAAW;QAChC,IAAI,EAAE,YAAY,CAAC,IAAI;QACvB,SAAS,EAAE,YAAY,CAAC,SAAS;KAClC,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { PortalManifestSchema } from './portal-manifest.schema.js';
2
+ // Re-export relevant manifest utilities and types for external use
3
+ export { loadPortalManifest, } from './load-portal-manifest.js';
4
+ export { createPortalManifestFromPackage } from './create-portal-manifest.js';
5
+ // Helper to define a typed portal manifest function
6
+ export const definePortalManifest = (fn) => fn;
7
+ export { PortalManifestSchema, PortalManifestBuildSchema, } from './portal-manifest.schema.js';
8
+ /**
9
+ * Validates a portal manifest object against the PortalManifestSchema.
10
+ *
11
+ * @param manifest - The manifest object to validate.
12
+ * @returns The validated manifest object (typed) if valid.
13
+ * @throws ZodError if validation fails.
14
+ *
15
+ * Use this utility to ensure a manifest conforms to the expected schema before further processing.
16
+ */
17
+ export function validatePortalManifest(manifest) {
18
+ // Throws if validation fails; returns typed manifest if valid
19
+ return PortalManifestSchema.parse(manifest);
20
+ }
21
+ //# sourceMappingURL=portal-manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portal-manifest.js","sourceRoot":"","sources":["../../../../src/lib/portal/portal-manifest.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,mEAAmE;AACnE,OAAO,EACL,kBAAkB,GAGnB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,+BAA+B,EAAE,MAAM,6BAA6B,CAAC;AAE9E,oDAAoD;AACpD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAqC,EAAuB,EAAE,EAAE,CAClG,EAAE,CAAC;AAEL,OAAO,EACL,oBAAoB,EACpB,yBAAyB,GAG1B,MAAM,6BAA6B,CAAC;AAErC;;;;;;;;GAQG;AACH,MAAM,UAAU,sBAAsB,CAAC,QAAiB;IACtD,8DAA8D;IAC9D,OAAO,oBAAoB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAC9C,CAAC"}
@@ -0,0 +1,134 @@
1
+ /**
2
+ * Zod schema for validating the build section of the PortalManifest object.
3
+ *
4
+ * This schema defines the structure and types for the build metadata used in the portal manifest.
5
+ *
6
+ * @remarks
7
+ * - Maintainers: Update this schema if the build contract changes.
8
+ * - This schema is the canonical source for portal build validation and structure.
9
+ */
10
+ import { z } from 'zod';
11
+ export const PortalManifestBuildSchema = z.object({
12
+ // Main entry point for the portal (required)
13
+ templateEntry: z
14
+ .string({
15
+ required_error: 'templateEntry is required in build section',
16
+ invalid_type_error: 'templateEntry must be a string',
17
+ })
18
+ .describe('Main entry point for the portal'),
19
+ // Schema file for portal validation (required)
20
+ schemaEntry: z
21
+ .string({
22
+ required_error: 'schemaEntry is required in build section',
23
+ invalid_type_error: 'schemaEntry must be a string',
24
+ })
25
+ .describe('Schema file for portal validation'),
26
+ // Asset path for dev/preview builds (optional)
27
+ assetPath: z
28
+ .string({
29
+ invalid_type_error: 'assetPath must be a string',
30
+ })
31
+ .optional()
32
+ .describe('Asset path for dev/preview builds'),
33
+ // GitHub repo URL or local git remote (optional)
34
+ githubRepo: z
35
+ .string({
36
+ invalid_type_error: 'githubRepo must be a string',
37
+ })
38
+ .optional()
39
+ .describe('GitHub repo URL or local git remote'),
40
+ // Version from package.json (required)
41
+ version: z
42
+ .string({
43
+ required_error: 'version is required in build section',
44
+ invalid_type_error: 'version must be a string',
45
+ })
46
+ .describe('Version from package.json'),
47
+ // Current build timestamp (ISO8601, required)
48
+ timestamp: z
49
+ .string({
50
+ required_error: 'timestamp is required in build section',
51
+ invalid_type_error: 'timestamp must be a string',
52
+ })
53
+ .describe('Current build timestamp (ISO8601)'),
54
+ // Current git commit SHA (required)
55
+ commitSha: z
56
+ .string({
57
+ required_error: 'commitSha is required in build section',
58
+ invalid_type_error: 'commitSha must be a string',
59
+ })
60
+ .describe('Current git commit SHA'),
61
+ // Optional build annotations (key-value pairs)
62
+ annotations: z
63
+ .record(z.string(), {
64
+ invalid_type_error: 'annotations must be a record of string values',
65
+ })
66
+ .optional()
67
+ .describe('Optional build annotations'),
68
+ // Optional project homepage
69
+ projectPage: z
70
+ .string({
71
+ invalid_type_error: 'projectPage must be a string',
72
+ })
73
+ .optional()
74
+ .describe('Optional project homepage'),
75
+ // List of allowed asset extensions (with leading dot, required)
76
+ allowedExtensions: z
77
+ .array(z.string({
78
+ invalid_type_error: 'Each allowed extension must be a string',
79
+ }), {
80
+ required_error: 'allowedExtensions is required in build section',
81
+ invalid_type_error: 'allowedExtensions must be an array of strings',
82
+ })
83
+ .describe('List of allowed asset extensions (with leading dot)'),
84
+ // Optional schema for the portal (record of unknown values)
85
+ schema: z
86
+ .record(z.unknown(), {
87
+ invalid_type_error: 'schema must be a record of unknown values',
88
+ })
89
+ .optional()
90
+ .describe('Optional schema for the portal'),
91
+ // Optional configuration for the portal (record of unknown values)
92
+ config: z
93
+ .record(z.unknown(), {
94
+ invalid_type_error: 'config must be a record of unknown values',
95
+ })
96
+ .optional()
97
+ .describe('Optional configuration for the portal'),
98
+ });
99
+ /**
100
+ * Zod schema for validating the PortalManifest object.
101
+ *
102
+ * This schema defines the structure and types for the portal manifest used in the Fusion Framework CLI.
103
+ * It ensures that the manifest adheres to expected types and provides sensible defaults for build metadata.
104
+ *
105
+ * @remarks
106
+ * - Maintainers: Update this schema if the portal manifest contract changes.
107
+ * - This schema is the canonical source for portal manifest validation and structure.
108
+ */
109
+ export const PortalManifestSchema = z.object({
110
+ // Short app key (unscoped, derived from package name, required)
111
+ name: z
112
+ .string({
113
+ required_error: 'name is required in portal manifest',
114
+ invalid_type_error: 'name must be a string',
115
+ })
116
+ .describe('Short app key (unscoped, derived from package name)'),
117
+ // Full package name, may include scope (optional)
118
+ displayName: z
119
+ .string({
120
+ invalid_type_error: 'displayName must be a string',
121
+ })
122
+ .optional()
123
+ .describe('Full package name, may include scope'),
124
+ // Description of the portal (optional)
125
+ description: z
126
+ .string({
127
+ invalid_type_error: 'description must be a string',
128
+ })
129
+ .optional()
130
+ .describe('Description of the portal'),
131
+ // Build section (required, validated by PortalManifestBuildSchema)
132
+ build: PortalManifestBuildSchema,
133
+ });
134
+ //# sourceMappingURL=portal-manifest.schema.js.map