@equinor/fusion-framework-cli 10.7.4 → 11.0.0-next.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 (513) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/README.md +144 -17
  3. package/bin/cli.mjs +4 -1
  4. package/dist/esm/bin/app-build.js +34 -0
  5. package/dist/esm/bin/app-build.js.map +1 -0
  6. package/dist/esm/bin/app-check.js +63 -0
  7. package/dist/esm/bin/app-check.js.map +1 -0
  8. package/dist/esm/bin/app-config-publish.js +89 -0
  9. package/dist/esm/bin/app-config-publish.js.map +1 -0
  10. package/dist/esm/bin/app-config.js +48 -0
  11. package/dist/esm/bin/app-config.js.map +1 -0
  12. package/dist/esm/bin/app-dev.js +92 -0
  13. package/dist/esm/bin/app-dev.js.map +1 -0
  14. package/dist/esm/bin/app-manifest.js +38 -0
  15. package/dist/esm/bin/app-manifest.js.map +1 -0
  16. package/dist/esm/bin/app-pack.js +51 -0
  17. package/dist/esm/bin/app-pack.js.map +1 -0
  18. package/dist/esm/bin/app-tag.js +89 -0
  19. package/dist/esm/bin/app-tag.js.map +1 -0
  20. package/dist/esm/bin/app-upload.js +109 -0
  21. package/dist/esm/bin/app-upload.js.map +1 -0
  22. package/dist/esm/bin/helpers/load-bundle-metadata.js +32 -0
  23. package/dist/esm/bin/helpers/load-bundle-metadata.js.map +1 -0
  24. package/dist/esm/bin/helpers/load-vite-config.js +55 -0
  25. package/dist/esm/bin/helpers/load-vite-config.js.map +1 -0
  26. package/dist/esm/bin/helpers/resolve-app-config.js +46 -0
  27. package/dist/esm/bin/helpers/resolve-app-config.js.map +1 -0
  28. package/dist/esm/bin/helpers/resolve-app-manifest.js +55 -0
  29. package/dist/esm/bin/helpers/resolve-app-manifest.js.map +1 -0
  30. package/dist/esm/bin/helpers/resolve-portal-manifest.js +55 -0
  31. package/dist/esm/bin/helpers/resolve-portal-manifest.js.map +1 -0
  32. package/dist/esm/bin/helpers/resolve-project-package.js +32 -0
  33. package/dist/esm/bin/helpers/resolve-project-package.js.map +1 -0
  34. package/dist/esm/bin/index.js +10 -0
  35. package/dist/esm/bin/index.js.map +1 -0
  36. package/dist/esm/bin/pack.js +70 -0
  37. package/dist/esm/bin/pack.js.map +1 -0
  38. package/dist/esm/bin/portal-build.js +40 -0
  39. package/dist/esm/bin/portal-build.js.map +1 -0
  40. package/dist/esm/bin/portal-dev.js +69 -0
  41. package/dist/esm/bin/portal-dev.js.map +1 -0
  42. package/dist/esm/bin/portal-manifest.js +38 -0
  43. package/dist/esm/bin/portal-manifest.js.map +1 -0
  44. package/dist/esm/bin/portal-pack.js +60 -0
  45. package/dist/esm/bin/portal-pack.js.map +1 -0
  46. package/dist/esm/bin/portal-tag.js +96 -0
  47. package/dist/esm/bin/portal-tag.js.map +1 -0
  48. package/dist/esm/bin/portal-upload.js +99 -0
  49. package/dist/esm/bin/portal-upload.js.map +1 -0
  50. package/dist/esm/bin/utils/ConsoleLogger.js +112 -0
  51. package/dist/esm/bin/utils/ConsoleLogger.js.map +1 -0
  52. package/dist/esm/bin/utils/create-dev-server.js +167 -0
  53. package/dist/esm/bin/utils/create-dev-server.js.map +1 -0
  54. package/dist/esm/bin/utils/format.js +47 -0
  55. package/dist/esm/bin/utils/format.js.map +1 -0
  56. package/dist/esm/bin/utils/index.js +5 -0
  57. package/dist/esm/bin/utils/index.js.map +1 -0
  58. package/dist/esm/bin/utils/spinner.js +142 -0
  59. package/dist/esm/bin/utils/spinner.js.map +1 -0
  60. package/dist/esm/cli/commands/app/alias.js +42 -0
  61. package/dist/esm/cli/commands/app/alias.js.map +1 -0
  62. package/dist/esm/cli/commands/app/build.js +46 -0
  63. package/dist/esm/cli/commands/app/build.js.map +1 -0
  64. package/dist/esm/cli/commands/app/check.js +47 -0
  65. package/dist/esm/cli/commands/app/check.js.map +1 -0
  66. package/dist/esm/cli/commands/app/config.js +91 -0
  67. package/dist/esm/cli/commands/app/config.js.map +1 -0
  68. package/dist/esm/cli/commands/app/dev.js +61 -0
  69. package/dist/esm/cli/commands/app/dev.js.map +1 -0
  70. package/dist/esm/cli/commands/app/index.js +25 -0
  71. package/dist/esm/cli/commands/app/index.js.map +1 -0
  72. package/dist/esm/cli/commands/app/manifest.js +73 -0
  73. package/dist/esm/cli/commands/app/manifest.js.map +1 -0
  74. package/dist/esm/cli/commands/app/pack.js +64 -0
  75. package/dist/esm/cli/commands/app/pack.js.map +1 -0
  76. package/dist/esm/cli/commands/app/publish.js +119 -0
  77. package/dist/esm/cli/commands/app/publish.js.map +1 -0
  78. package/dist/esm/cli/commands/app/tag.js +101 -0
  79. package/dist/esm/cli/commands/app/tag.js.map +1 -0
  80. package/dist/esm/cli/commands/app/upload.js +80 -0
  81. package/dist/esm/cli/commands/app/upload.js.map +1 -0
  82. package/dist/esm/cli/commands/auth/index.js +10 -0
  83. package/dist/esm/cli/commands/auth/index.js.map +1 -0
  84. package/dist/esm/cli/commands/auth/login.js +68 -0
  85. package/dist/esm/cli/commands/auth/login.js.map +1 -0
  86. package/dist/esm/cli/commands/auth/logout.js +55 -0
  87. package/dist/esm/cli/commands/auth/logout.js.map +1 -0
  88. package/dist/esm/cli/commands/auth/token.js +74 -0
  89. package/dist/esm/cli/commands/auth/token.js.map +1 -0
  90. package/dist/esm/cli/commands/disco/index.js +6 -0
  91. package/dist/esm/cli/commands/disco/index.js.map +1 -0
  92. package/dist/esm/cli/commands/disco/resolve.js +61 -0
  93. package/dist/esm/cli/commands/disco/resolve.js.map +1 -0
  94. package/dist/esm/cli/commands/index.js +11 -0
  95. package/dist/esm/cli/commands/index.js.map +1 -0
  96. package/dist/esm/cli/commands/portal/build.js +22 -0
  97. package/dist/esm/cli/commands/portal/build.js.map +1 -0
  98. package/dist/esm/cli/commands/portal/dev.js +24 -0
  99. package/dist/esm/cli/commands/portal/dev.js.map +1 -0
  100. package/dist/esm/cli/commands/portal/index.js +21 -0
  101. package/dist/esm/cli/commands/portal/index.js.map +1 -0
  102. package/dist/esm/cli/commands/portal/manifest.js +45 -0
  103. package/dist/esm/cli/commands/portal/manifest.js.map +1 -0
  104. package/dist/esm/cli/commands/portal/pack.js +35 -0
  105. package/dist/esm/cli/commands/portal/pack.js.map +1 -0
  106. package/dist/esm/cli/commands/portal/publish.js +73 -0
  107. package/dist/esm/cli/commands/portal/publish.js.map +1 -0
  108. package/dist/esm/cli/commands/portal/schema.js +68 -0
  109. package/dist/esm/cli/commands/portal/schema.js.map +1 -0
  110. package/dist/esm/cli/commands/portal/tag.js +69 -0
  111. package/dist/esm/cli/commands/portal/tag.js.map +1 -0
  112. package/dist/esm/cli/commands/portal/upload.js +40 -0
  113. package/dist/esm/cli/commands/portal/upload.js.map +1 -0
  114. package/dist/esm/cli/main.js +52 -0
  115. package/dist/esm/cli/main.js.map +1 -0
  116. package/dist/esm/cli/options/auth.js +96 -0
  117. package/dist/esm/cli/options/auth.js.map +1 -0
  118. package/dist/esm/cli/options/env.js +30 -0
  119. package/dist/esm/cli/options/env.js.map +1 -0
  120. package/dist/esm/lib/app/app-config.js +12 -0
  121. package/dist/esm/lib/app/app-config.js.map +1 -0
  122. package/dist/esm/lib/app/app-manifest.js +15 -0
  123. package/dist/esm/lib/app/app-manifest.js.map +1 -0
  124. package/dist/{lib → esm/lib/app}/app-package.js +30 -10
  125. package/dist/esm/lib/app/app-package.js.map +1 -0
  126. package/dist/esm/lib/app/create-app-manifest.js +72 -0
  127. package/dist/esm/lib/app/create-app-manifest.js.map +1 -0
  128. package/dist/esm/lib/app/index.js +9 -0
  129. package/dist/esm/lib/app/index.js.map +1 -0
  130. package/dist/esm/lib/app/load-app-config.js +47 -0
  131. package/dist/esm/lib/app/load-app-config.js.map +1 -0
  132. package/dist/esm/lib/app/load-app-manifest.js +61 -0
  133. package/dist/esm/lib/app/load-app-manifest.js.map +1 -0
  134. package/dist/esm/lib/app/merge-app-config.js +21 -0
  135. package/dist/esm/lib/app/merge-app-config.js.map +1 -0
  136. package/dist/esm/lib/app/merge-app-manifest.js +31 -0
  137. package/dist/esm/lib/app/merge-app-manifest.js.map +1 -0
  138. package/dist/esm/lib/app/schemas.js +28 -0
  139. package/dist/esm/lib/app/schemas.js.map +1 -0
  140. package/dist/esm/lib/dev-server.js +3 -0
  141. package/dist/esm/lib/dev-server.js.map +1 -0
  142. package/dist/esm/lib/framework.node.js +104 -0
  143. package/dist/esm/lib/framework.node.js.map +1 -0
  144. package/dist/esm/lib/index.js +5 -0
  145. package/dist/esm/lib/index.js.map +1 -0
  146. package/dist/esm/lib/legacy.js +38 -0
  147. package/dist/esm/lib/legacy.js.map +1 -0
  148. package/dist/esm/lib/load-dev-server-config.js +43 -0
  149. package/dist/esm/lib/load-dev-server-config.js.map +1 -0
  150. package/dist/esm/lib/merge-dev-server-config.js +37 -0
  151. package/dist/esm/lib/merge-dev-server-config.js.map +1 -0
  152. package/dist/esm/lib/portal/create-portal-manifest.js +93 -0
  153. package/dist/esm/lib/portal/create-portal-manifest.js.map +1 -0
  154. package/dist/esm/lib/portal/index.js +3 -0
  155. package/dist/esm/lib/portal/index.js.map +1 -0
  156. package/dist/esm/lib/portal/load-portal-manifest.js +54 -0
  157. package/dist/esm/lib/portal/load-portal-manifest.js.map +1 -0
  158. package/dist/esm/lib/portal/load-portal-schema.js +49 -0
  159. package/dist/esm/lib/portal/load-portal-schema.js.map +1 -0
  160. package/dist/esm/lib/portal/portal-manifest.js +21 -0
  161. package/dist/esm/lib/portal/portal-manifest.js.map +1 -0
  162. package/dist/esm/lib/portal/portal-manifest.schema.js +134 -0
  163. package/dist/esm/lib/portal/portal-manifest.schema.js.map +1 -0
  164. package/dist/esm/lib/static.js +20 -0
  165. package/dist/esm/lib/static.js.map +1 -0
  166. package/dist/{lib/utils → esm/lib}/types.js.map +1 -1
  167. package/dist/esm/lib/utils/assert.js +87 -0
  168. package/dist/esm/lib/utils/assert.js.map +1 -0
  169. package/dist/esm/lib/utils/expect.js.map +1 -0
  170. package/dist/{lib/plugins/app-assets/extension-filter-pattern.js → esm/lib/utils/extension-filter.js} +1 -1
  171. package/dist/esm/lib/utils/extension-filter.js.map +1 -0
  172. package/dist/esm/lib/utils/file-exists.js.map +1 -0
  173. package/dist/esm/lib/utils/index.js +6 -0
  174. package/dist/esm/lib/utils/index.js.map +1 -0
  175. package/dist/{lib → esm/lib}/utils/parse-json-request.js +3 -1
  176. package/dist/esm/lib/utils/parse-json-request.js.map +1 -0
  177. package/dist/esm/lib/utils/resolve-annotations.js +28 -0
  178. package/dist/esm/lib/utils/resolve-annotations.js.map +1 -0
  179. package/dist/esm/lib/utils/resolve-devops-annotations.js +59 -0
  180. package/dist/esm/lib/utils/resolve-devops-annotations.js.map +1 -0
  181. package/dist/esm/lib/utils/resolve-git-commit-sha.js +23 -0
  182. package/dist/esm/lib/utils/resolve-git-commit-sha.js.map +1 -0
  183. package/dist/esm/lib/utils/resolve-git-remote-url.js +24 -0
  184. package/dist/esm/lib/utils/resolve-git-remote-url.js.map +1 -0
  185. package/dist/esm/lib/utils/resolve-github-annotations.js +127 -0
  186. package/dist/esm/lib/utils/resolve-github-annotations.js.map +1 -0
  187. package/dist/esm/lib/utils/resolve-package-repo.js +14 -0
  188. package/dist/esm/lib/utils/resolve-package-repo.js.map +1 -0
  189. package/dist/esm/lib/utils/resolve-package.js +18 -0
  190. package/dist/esm/lib/utils/resolve-package.js.map +1 -0
  191. package/dist/esm/lib/utils/resolve-source-entry-point.js +39 -0
  192. package/dist/esm/lib/utils/resolve-source-entry-point.js.map +1 -0
  193. package/dist/esm/lib/utils/types.js.map +1 -0
  194. package/dist/esm/lib/utils/write-file.js +25 -0
  195. package/dist/esm/lib/utils/write-file.js.map +1 -0
  196. package/dist/esm/version.js +3 -0
  197. package/dist/esm/version.js.map +1 -0
  198. package/dist/tsconfig.tsbuildinfo +1 -0
  199. package/dist/types/bin/app-build.d.ts +52 -0
  200. package/dist/types/bin/app-check.d.ts +31 -0
  201. package/dist/types/bin/app-config-publish.d.ts +23 -0
  202. package/dist/types/bin/app-config.d.ts +52 -0
  203. package/dist/types/bin/app-dev.d.ts +45 -0
  204. package/dist/types/bin/app-manifest.d.ts +42 -0
  205. package/dist/types/bin/app-pack.d.ts +38 -0
  206. package/dist/types/bin/app-tag.d.ts +51 -0
  207. package/dist/types/bin/app-upload.d.ts +40 -0
  208. package/dist/types/bin/helpers/load-bundle-metadata.d.ts +15 -0
  209. package/dist/types/bin/helpers/load-vite-config.d.ts +12 -0
  210. package/dist/types/bin/helpers/resolve-app-config.d.ts +18 -0
  211. package/dist/types/bin/helpers/resolve-app-manifest.d.ts +17 -0
  212. package/dist/types/bin/helpers/resolve-portal-manifest.d.ts +27 -0
  213. package/dist/types/bin/helpers/resolve-project-package.d.ts +13 -0
  214. package/dist/types/bin/index.d.ts +9 -0
  215. package/dist/types/bin/pack.d.ts +36 -0
  216. package/dist/types/bin/portal-build.d.ts +54 -0
  217. package/dist/types/bin/portal-dev.d.ts +37 -0
  218. package/dist/types/bin/portal-manifest.d.ts +60 -0
  219. package/dist/types/bin/portal-pack.d.ts +54 -0
  220. package/dist/types/bin/portal-tag.d.ts +51 -0
  221. package/dist/types/bin/portal-upload.d.ts +37 -0
  222. package/dist/types/bin/utils/ConsoleLogger.d.ts +84 -0
  223. package/dist/types/bin/utils/create-dev-server.d.ts +49 -0
  224. package/dist/types/bin/utils/format.d.ts +27 -0
  225. package/dist/types/bin/utils/index.d.ts +3 -13
  226. package/dist/types/bin/utils/spinner.d.ts +75 -0
  227. package/dist/types/cli/commands/app/alias.d.ts +6 -0
  228. package/dist/types/cli/commands/app/build.d.ts +27 -0
  229. package/dist/types/cli/commands/app/check.d.ts +26 -0
  230. package/dist/types/cli/commands/app/config.d.ts +34 -0
  231. package/dist/types/cli/commands/app/dev.d.ts +29 -0
  232. package/dist/types/cli/commands/app/index.d.ts +3 -0
  233. package/dist/types/cli/commands/app/manifest.d.ts +30 -0
  234. package/dist/types/cli/commands/app/pack.d.ts +31 -0
  235. package/dist/types/cli/commands/app/publish.d.ts +31 -0
  236. package/dist/types/cli/commands/app/tag.d.ts +33 -0
  237. package/dist/types/cli/commands/app/upload.d.ts +29 -0
  238. package/dist/types/cli/commands/auth/index.d.ts +3 -0
  239. package/dist/types/cli/commands/auth/login.d.ts +2 -0
  240. package/dist/types/cli/commands/auth/logout.d.ts +12 -0
  241. package/dist/types/cli/commands/auth/token.d.ts +13 -0
  242. package/dist/types/cli/commands/disco/index.d.ts +2 -0
  243. package/dist/types/cli/commands/disco/resolve.d.ts +25 -0
  244. package/dist/types/cli/commands/portal/build.d.ts +2 -0
  245. package/dist/types/cli/commands/portal/dev.d.ts +2 -0
  246. package/dist/types/cli/commands/portal/index.d.ts +2 -0
  247. package/dist/types/cli/commands/portal/manifest.d.ts +2 -0
  248. package/dist/types/cli/commands/portal/pack.d.ts +2 -0
  249. package/dist/types/cli/commands/portal/publish.d.ts +2 -0
  250. package/dist/types/cli/commands/portal/schema.d.ts +2 -0
  251. package/dist/types/cli/commands/portal/tag.d.ts +2 -0
  252. package/dist/types/cli/commands/portal/upload.d.ts +2 -0
  253. package/dist/types/cli/main.d.ts +21 -0
  254. package/dist/types/cli/options/auth.d.ts +37 -0
  255. package/dist/types/cli/options/env.d.ts +19 -0
  256. package/dist/types/lib/app/app-config.d.ts +31 -0
  257. package/dist/types/lib/app/app-manifest.d.ts +39 -0
  258. package/dist/types/lib/{app-package.d.ts → app/app-package.d.ts} +27 -10
  259. package/dist/types/lib/app/create-app-manifest.d.ts +17 -0
  260. package/dist/types/lib/app/index.d.ts +8 -0
  261. package/dist/types/lib/app/load-app-config.d.ts +54 -0
  262. package/dist/types/lib/app/load-app-manifest.d.ts +57 -0
  263. package/dist/types/lib/app/merge-app-config.d.ts +13 -0
  264. package/dist/types/lib/app/merge-app-manifest.d.ts +25 -0
  265. package/dist/types/{schemas.d.ts → lib/app/schemas.d.ts} +10 -1
  266. package/dist/types/lib/dev-server.d.ts +2 -0
  267. package/dist/types/lib/framework.node.d.ts +77 -0
  268. package/dist/types/lib/index.d.ts +4 -3
  269. package/dist/types/lib/legacy.d.ts +24 -0
  270. package/dist/types/lib/load-dev-server-config.d.ts +40 -0
  271. package/dist/types/lib/merge-dev-server-config.d.ts +16 -0
  272. package/dist/types/lib/portal/create-portal-manifest.d.ts +22 -0
  273. package/dist/types/lib/portal/index.d.ts +2 -0
  274. package/dist/types/lib/portal/load-portal-manifest.d.ts +65 -0
  275. package/dist/types/lib/portal/load-portal-schema.d.ts +43 -0
  276. package/dist/types/lib/portal/portal-manifest.d.ts +16 -0
  277. package/dist/types/lib/portal/portal-manifest.schema.d.ts +154 -0
  278. package/dist/types/lib/static.d.ts +10 -0
  279. package/dist/types/lib/types.d.ts +34 -0
  280. package/dist/types/lib/utils/assert.d.ts +48 -0
  281. package/dist/types/lib/utils/index.d.ts +5 -0
  282. package/dist/types/lib/utils/resolve-annotations.d.ts +11 -0
  283. package/dist/types/lib/utils/resolve-devops-annotations.d.ts +30 -0
  284. package/dist/types/lib/utils/resolve-git-commit-sha.d.ts +13 -0
  285. package/dist/types/lib/utils/resolve-git-remote-url.d.ts +13 -0
  286. package/dist/types/lib/utils/resolve-github-annotations.d.ts +65 -0
  287. package/dist/types/lib/utils/resolve-package-repo.d.ts +9 -0
  288. package/dist/types/lib/utils/resolve-package.d.ts +15 -0
  289. package/dist/types/lib/utils/resolve-source-entry-point.d.ts +17 -0
  290. package/dist/types/lib/utils/types.d.ts +1 -1
  291. package/dist/types/lib/utils/write-file.d.ts +14 -0
  292. package/dist/types/version.d.ts +1 -1
  293. package/package.json +47 -68
  294. package/dist/bin/build-application.js +0 -55
  295. package/dist/bin/build-application.js.map +0 -1
  296. package/dist/bin/bundle-application.js +0 -41
  297. package/dist/bin/bundle-application.js.map +0 -1
  298. package/dist/bin/create-dev-serve.js +0 -127
  299. package/dist/bin/create-dev-serve.js.map +0 -1
  300. package/dist/bin/create-export-config.js +0 -40
  301. package/dist/bin/create-export-config.js.map +0 -1
  302. package/dist/bin/create-export-manifest.js +0 -67
  303. package/dist/bin/create-export-manifest.js.map +0 -1
  304. package/dist/bin/dev-portal/AppLoader.js +0 -80
  305. package/dist/bin/dev-portal/AppLoader.js.map +0 -1
  306. package/dist/bin/dev-portal/BookMarkSideSheet.js +0 -13
  307. package/dist/bin/dev-portal/BookMarkSideSheet.js.map +0 -1
  308. package/dist/bin/dev-portal/ContextSelector/ContextSelector.js +0 -40
  309. package/dist/bin/dev-portal/ContextSelector/ContextSelector.js.map +0 -1
  310. package/dist/bin/dev-portal/ContextSelector/index.js +0 -2
  311. package/dist/bin/dev-portal/ContextSelector/index.js.map +0 -1
  312. package/dist/bin/dev-portal/ContextSelector/useContextResolver.js +0 -216
  313. package/dist/bin/dev-portal/ContextSelector/useContextResolver.js.map +0 -1
  314. package/dist/bin/dev-portal/EquinorLoader.js +0 -14
  315. package/dist/bin/dev-portal/EquinorLoader.js.map +0 -1
  316. package/dist/bin/dev-portal/ErrorViewer.js +0 -7
  317. package/dist/bin/dev-portal/ErrorViewer.js.map +0 -1
  318. package/dist/bin/dev-portal/FusionLogo.js +0 -4
  319. package/dist/bin/dev-portal/FusionLogo.js.map +0 -1
  320. package/dist/bin/dev-portal/Header.Actions.js +0 -12
  321. package/dist/bin/dev-portal/Header.Actions.js.map +0 -1
  322. package/dist/bin/dev-portal/Header.js +0 -41
  323. package/dist/bin/dev-portal/Header.js.map +0 -1
  324. package/dist/bin/dev-portal/PersonSideSheet/index.js +0 -32
  325. package/dist/bin/dev-portal/PersonSideSheet/index.js.map +0 -1
  326. package/dist/bin/dev-portal/PersonSideSheet/sheets/FeatureSheetContent.js +0 -16
  327. package/dist/bin/dev-portal/PersonSideSheet/sheets/FeatureSheetContent.js.map +0 -1
  328. package/dist/bin/dev-portal/PersonSideSheet/sheets/FeatureTogglerApp.js +0 -15
  329. package/dist/bin/dev-portal/PersonSideSheet/sheets/FeatureTogglerApp.js.map +0 -1
  330. package/dist/bin/dev-portal/PersonSideSheet/sheets/FeatureTogglerPortal.js +0 -13
  331. package/dist/bin/dev-portal/PersonSideSheet/sheets/FeatureTogglerPortal.js.map +0 -1
  332. package/dist/bin/dev-portal/PersonSideSheet/sheets/LandingSheetContent.js +0 -19
  333. package/dist/bin/dev-portal/PersonSideSheet/sheets/LandingSheetContent.js.map +0 -1
  334. package/dist/bin/dev-portal/PersonSideSheet/sheets/Styled.js +0 -30
  335. package/dist/bin/dev-portal/PersonSideSheet/sheets/Styled.js.map +0 -1
  336. package/dist/bin/dev-portal/PersonSideSheet/sheets/index.js +0 -3
  337. package/dist/bin/dev-portal/PersonSideSheet/sheets/index.js.map +0 -1
  338. package/dist/bin/dev-portal/PersonSideSheet/sheets/types.js.map +0 -1
  339. package/dist/bin/dev-portal/Router.js +0 -59
  340. package/dist/bin/dev-portal/Router.js.map +0 -1
  341. package/dist/bin/dev-portal/config.js +0 -79
  342. package/dist/bin/dev-portal/config.js.map +0 -1
  343. package/dist/bin/dev-portal/main.js +0 -13
  344. package/dist/bin/dev-portal/main.js.map +0 -1
  345. package/dist/bin/dev-portal/resources/fallback-photo.svg.js +0 -3
  346. package/dist/bin/dev-portal/resources/fallback-photo.svg.js.map +0 -1
  347. package/dist/bin/dev-portal/useAppContextNavigation.js +0 -87
  348. package/dist/bin/dev-portal/useAppContextNavigation.js.map +0 -1
  349. package/dist/bin/main.app.js +0 -172
  350. package/dist/bin/main.app.js.map +0 -1
  351. package/dist/bin/main.js +0 -20
  352. package/dist/bin/main.js.map +0 -1
  353. package/dist/bin/public/assets/index-Cyqq53lr.js +0 -3686
  354. package/dist/bin/public/index.html +0 -37
  355. package/dist/bin/publish-application.js +0 -96
  356. package/dist/bin/publish-application.js.map +0 -1
  357. package/dist/bin/tag-application.js +0 -73
  358. package/dist/bin/tag-application.js.map +0 -1
  359. package/dist/bin/upload-application.js +0 -63
  360. package/dist/bin/upload-application.js.map +0 -1
  361. package/dist/bin/upload-export-config.js +0 -78
  362. package/dist/bin/upload-export-config.js.map +0 -1
  363. package/dist/bin/utils/execute-command.js +0 -14
  364. package/dist/bin/utils/execute-command.js.map +0 -1
  365. package/dist/bin/utils/format.js +0 -16
  366. package/dist/bin/utils/format.js.map +0 -1
  367. package/dist/bin/utils/getEndpointUrl.js +0 -40
  368. package/dist/bin/utils/getEndpointUrl.js.map +0 -1
  369. package/dist/bin/utils/index.js +0 -14
  370. package/dist/bin/utils/index.js.map +0 -1
  371. package/dist/bin/utils/isAppRegistered.js +0 -26
  372. package/dist/bin/utils/isAppRegistered.js.map +0 -1
  373. package/dist/bin/utils/load-app-config.js +0 -26
  374. package/dist/bin/utils/load-app-config.js.map +0 -1
  375. package/dist/bin/utils/load-manifest.js +0 -31
  376. package/dist/bin/utils/load-manifest.js.map +0 -1
  377. package/dist/bin/utils/load-package.js +0 -18
  378. package/dist/bin/utils/load-package.js.map +0 -1
  379. package/dist/bin/utils/load-vite-config.js +0 -45
  380. package/dist/bin/utils/load-vite-config.js.map +0 -1
  381. package/dist/bin/utils/proxy-request-logger.js +0 -33
  382. package/dist/bin/utils/proxy-request-logger.js.map +0 -1
  383. package/dist/bin/utils/publishAppConfig.js +0 -29
  384. package/dist/bin/utils/publishAppConfig.js.map +0 -1
  385. package/dist/bin/utils/requireToken.js +0 -9
  386. package/dist/bin/utils/requireToken.js.map +0 -1
  387. package/dist/bin/utils/spinner.js +0 -65
  388. package/dist/bin/utils/spinner.js.map +0 -1
  389. package/dist/bin/utils/tagAppBundle.js +0 -26
  390. package/dist/bin/utils/tagAppBundle.js.map +0 -1
  391. package/dist/bin/utils/uploadAppBundle.js +0 -45
  392. package/dist/bin/utils/uploadAppBundle.js.map +0 -1
  393. package/dist/lib/app-config.js +0 -32
  394. package/dist/lib/app-config.js.map +0 -1
  395. package/dist/lib/app-manifest.js +0 -142
  396. package/dist/lib/app-manifest.js.map +0 -1
  397. package/dist/lib/app-package.js.map +0 -1
  398. package/dist/lib/index.js +0 -4
  399. package/dist/lib/index.js.map +0 -1
  400. package/dist/lib/plugins/app-assets/app-asset-plugin.js +0 -96
  401. package/dist/lib/plugins/app-assets/app-asset-plugin.js.map +0 -1
  402. package/dist/lib/plugins/app-assets/emit-asset.js +0 -46
  403. package/dist/lib/plugins/app-assets/emit-asset.js.map +0 -1
  404. package/dist/lib/plugins/app-assets/extension-filter-pattern.js.map +0 -1
  405. package/dist/lib/plugins/app-assets/index.js +0 -4
  406. package/dist/lib/plugins/app-assets/index.js.map +0 -1
  407. package/dist/lib/plugins/app-assets/read-asset-content.js +0 -34
  408. package/dist/lib/plugins/app-assets/read-asset-content.js.map +0 -1
  409. package/dist/lib/plugins/app-assets/resolve-asset-id.js +0 -54
  410. package/dist/lib/plugins/app-assets/resolve-asset-id.js.map +0 -1
  411. package/dist/lib/plugins/app-assets/static.js +0 -15
  412. package/dist/lib/plugins/app-assets/static.js.map +0 -1
  413. package/dist/lib/plugins/app-proxy/app-proxy-plugin.js +0 -125
  414. package/dist/lib/plugins/app-proxy/app-proxy-plugin.js.map +0 -1
  415. package/dist/lib/plugins/app-proxy/index.js +0 -2
  416. package/dist/lib/plugins/app-proxy/index.js.map +0 -1
  417. package/dist/lib/plugins/app-settings/index.js +0 -36
  418. package/dist/lib/plugins/app-settings/index.js.map +0 -1
  419. package/dist/lib/plugins/external-public/external-public-plugin.js +0 -101
  420. package/dist/lib/plugins/external-public/external-public-plugin.js.map +0 -1
  421. package/dist/lib/plugins/external-public/index.js +0 -2
  422. package/dist/lib/plugins/external-public/index.js.map +0 -1
  423. package/dist/lib/plugins/help-proxy/help-proxy-plugin.js +0 -78
  424. package/dist/lib/plugins/help-proxy/help-proxy-plugin.js.map +0 -1
  425. package/dist/lib/plugins/help-proxy/index.js +0 -2
  426. package/dist/lib/plugins/help-proxy/index.js.map +0 -1
  427. package/dist/lib/utils/assert.js +0 -28
  428. package/dist/lib/utils/assert.js.map +0 -1
  429. package/dist/lib/utils/config.js +0 -67
  430. package/dist/lib/utils/config.js.map +0 -1
  431. package/dist/lib/utils/expect.js.map +0 -1
  432. package/dist/lib/utils/file-exists.js.map +0 -1
  433. package/dist/lib/utils/parse-json-request.js.map +0 -1
  434. package/dist/lib/utils/ts-transpile.js +0 -45
  435. package/dist/lib/utils/ts-transpile.js.map +0 -1
  436. package/dist/lib/vite-config.js +0 -76
  437. package/dist/lib/vite-config.js.map +0 -1
  438. package/dist/lib/vite-logger.js +0 -21
  439. package/dist/lib/vite-logger.js.map +0 -1
  440. package/dist/schemas.js +0 -14
  441. package/dist/schemas.js.map +0 -1
  442. package/dist/types/bin/build-application.d.ts +0 -13
  443. package/dist/types/bin/bundle-application.d.ts +0 -4
  444. package/dist/types/bin/create-dev-serve.d.ts +0 -12
  445. package/dist/types/bin/create-export-config.d.ts +0 -13
  446. package/dist/types/bin/create-export-manifest.d.ts +0 -16
  447. package/dist/types/bin/dev-portal/AppLoader.d.ts +0 -11
  448. package/dist/types/bin/dev-portal/BookMarkSideSheet.d.ts +0 -6
  449. package/dist/types/bin/dev-portal/ContextSelector/ContextSelector.d.ts +0 -8
  450. package/dist/types/bin/dev-portal/ContextSelector/index.d.ts +0 -1
  451. package/dist/types/bin/dev-portal/ContextSelector/useContextResolver.d.ts +0 -15
  452. package/dist/types/bin/dev-portal/EquinorLoader.d.ts +0 -5
  453. package/dist/types/bin/dev-portal/ErrorViewer.d.ts +0 -4
  454. package/dist/types/bin/dev-portal/FusionLogo.d.ts +0 -6
  455. package/dist/types/bin/dev-portal/Header.Actions.d.ts +0 -7
  456. package/dist/types/bin/dev-portal/Header.d.ts +0 -2
  457. package/dist/types/bin/dev-portal/PersonSideSheet/index.d.ts +0 -11
  458. package/dist/types/bin/dev-portal/PersonSideSheet/sheets/FeatureSheetContent.d.ts +0 -6
  459. package/dist/types/bin/dev-portal/PersonSideSheet/sheets/FeatureTogglerApp.d.ts +0 -5
  460. package/dist/types/bin/dev-portal/PersonSideSheet/sheets/FeatureTogglerPortal.d.ts +0 -5
  461. package/dist/types/bin/dev-portal/PersonSideSheet/sheets/LandingSheetContent.d.ts +0 -5
  462. package/dist/types/bin/dev-portal/PersonSideSheet/sheets/Styled.d.ts +0 -6
  463. package/dist/types/bin/dev-portal/PersonSideSheet/sheets/index.d.ts +0 -2
  464. package/dist/types/bin/dev-portal/PersonSideSheet/sheets/types.d.ts +0 -5
  465. package/dist/types/bin/dev-portal/Router.d.ts +0 -1
  466. package/dist/types/bin/dev-portal/config.d.ts +0 -3
  467. package/dist/types/bin/dev-portal/main.d.ts +0 -1
  468. package/dist/types/bin/dev-portal/resources/fallback-photo.svg.d.ts +0 -2
  469. package/dist/types/bin/dev-portal/useAppContextNavigation.d.ts +0 -5
  470. package/dist/types/bin/main.d.ts +0 -1
  471. package/dist/types/bin/publish-application.d.ts +0 -6
  472. package/dist/types/bin/tag-application.d.ts +0 -12
  473. package/dist/types/bin/upload-application.d.ts +0 -6
  474. package/dist/types/bin/upload-export-config.d.ts +0 -10
  475. package/dist/types/bin/utils/execute-command.d.ts +0 -8
  476. package/dist/types/bin/utils/getEndpointUrl.d.ts +0 -10
  477. package/dist/types/bin/utils/isAppRegistered.d.ts +0 -5
  478. package/dist/types/bin/utils/load-app-config.d.ts +0 -10
  479. package/dist/types/bin/utils/load-manifest.d.ts +0 -10
  480. package/dist/types/bin/utils/load-package.d.ts +0 -5
  481. package/dist/types/bin/utils/load-vite-config.d.ts +0 -10
  482. package/dist/types/bin/utils/proxy-request-logger.d.ts +0 -15
  483. package/dist/types/bin/utils/publishAppConfig.d.ts +0 -9
  484. package/dist/types/bin/utils/requireToken.d.ts +0 -4
  485. package/dist/types/bin/utils/tagAppBundle.d.ts +0 -7
  486. package/dist/types/bin/utils/uploadAppBundle.d.ts +0 -7
  487. package/dist/types/lib/app-config.d.ts +0 -27
  488. package/dist/types/lib/app-manifest.d.ts +0 -52
  489. package/dist/types/lib/plugins/app-assets/app-asset-plugin.d.ts +0 -36
  490. package/dist/types/lib/plugins/app-assets/emit-asset.d.ts +0 -18
  491. package/dist/types/lib/plugins/app-assets/index.d.ts +0 -3
  492. package/dist/types/lib/plugins/app-assets/read-asset-content.d.ts +0 -14
  493. package/dist/types/lib/plugins/app-assets/resolve-asset-id.d.ts +0 -16
  494. package/dist/types/lib/plugins/app-assets/static.d.ts +0 -5
  495. package/dist/types/lib/plugins/app-proxy/app-proxy-plugin.d.ts +0 -89
  496. package/dist/types/lib/plugins/app-proxy/index.d.ts +0 -1
  497. package/dist/types/lib/plugins/app-settings/index.d.ts +0 -32
  498. package/dist/types/lib/plugins/external-public/external-public-plugin.d.ts +0 -30
  499. package/dist/types/lib/plugins/external-public/index.d.ts +0 -1
  500. package/dist/types/lib/plugins/help-proxy/help-proxy-plugin.d.ts +0 -42
  501. package/dist/types/lib/plugins/help-proxy/index.d.ts +0 -1
  502. package/dist/types/lib/utils/config.d.ts +0 -32
  503. package/dist/types/lib/utils/ts-transpile.d.ts +0 -2
  504. package/dist/types/lib/vite-config.d.ts +0 -17
  505. package/dist/types/lib/vite-logger.d.ts +0 -2
  506. package/dist/version.js +0 -3
  507. package/dist/version.js.map +0 -1
  508. /package/dist/{bin/dev-portal/PersonSideSheet/sheets → esm/lib}/types.js +0 -0
  509. /package/dist/{lib → esm/lib}/utils/expect.js +0 -0
  510. /package/dist/{lib → esm/lib}/utils/file-exists.js +0 -0
  511. /package/dist/{lib → esm/lib}/utils/types.js +0 -0
  512. /package/dist/types/{bin/main.app.d.ts → cli/commands/index.d.ts} +0 -0
  513. /package/dist/types/lib/{plugins/app-assets/extension-filter-pattern.d.ts → utils/extension-filter.d.ts} +0 -0
@@ -0,0 +1,61 @@
1
+ import { importConfig } from '@equinor/fusion-imports';
2
+ import mergeAppManifests from './merge-app-manifest.js';
3
+ /**
4
+ * Loads an application manifest file and processes its contents.
5
+ *
6
+ * This function attempts to load a configuration file (defaulting to `app.manifest`) and resolves
7
+ * its contents using a provided script resolver. The manifest can either be a static object
8
+ * or a function that dynamically generates the manifest based on the runtime environment.
9
+ *
10
+ * If the specified file is not found and the runtime environment includes an `environment` property,
11
+ * the function will attempt to load a manifest file specific to that environment (e.g., `app.manifest.<environment>`).
12
+ *
13
+ * @param env - The runtime environment object, containing information such as the root directory and environment name.
14
+ * @param options - Optional parameters for loading the manifest.
15
+ * @returns A promise that resolves to an object containing the loaded manifest, the file path, and the file extension.
16
+ * @throws {FileNotFoundError} If the manifest file cannot be found and no fallback is available.
17
+ * @public
18
+ */
19
+ export const loadAppManifest = async (env, options) => {
20
+ // Suggest config filenames based on environment
21
+ const suggestions = options?.file ?? [
22
+ `app.manifest.${env.environment}`,
23
+ 'app.manifest',
24
+ 'app.manifest.config',
25
+ ];
26
+ // Use importConfig to dynamically import and resolve the manifest
27
+ const importResult = await importConfig(suggestions, {
28
+ baseDir: env.root,
29
+ extensions: options?.extensions,
30
+ script: {
31
+ /**
32
+ * Custom resolver for the imported manifest module.
33
+ *
34
+ * This function determines if the imported module's default export is a function or an object.
35
+ * If it's a function, it is invoked with the runtime environment and the base manifest, allowing
36
+ * for dynamic manifest generation. If it's an object, it is used directly as the manifest.
37
+ *
38
+ * @param module - The imported module containing the manifest export (either function or object).
39
+ * @returns The resolved manifest of type T.
40
+ */
41
+ resolve: async (module) => {
42
+ const base = options?.base ?? {}; // Use provided base or fallback to empty object
43
+ // If the module's default export is a function, invoke it with the environment and base manifest
44
+ if (typeof module.default === 'function') {
45
+ const result = await module.default(env, { base });
46
+ return mergeAppManifests(base, result ?? {}); // Merge and cast to Record<string, unknown>
47
+ }
48
+ // If the module's default export is not a function, treat it as a manifest object
49
+ return mergeAppManifests(base, module.default ?? {});
50
+ },
51
+ },
52
+ });
53
+ // Return the loaded manifest, file path, and extension for further use
54
+ // Maintainers: This return structure is used by downstream consumers to access the manifest and its metadata
55
+ return {
56
+ manifest: importResult.config,
57
+ path: importResult.path,
58
+ extension: importResult.extension,
59
+ };
60
+ };
61
+ //# sourceMappingURL=load-app-manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-app-manifest.js","sourceRoot":"","sources":["../../../../src/lib/app/load-app-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAMvD,OAAO,iBAAiB,MAAM,yBAAyB,CAAC;AAyCxD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAClC,GAAe,EACf,OAAgC,EACA,EAAE;IAClC,gDAAgD;IAChD,MAAM,WAAW,GAAG,OAAO,EAAE,IAAI,IAAI;QACnC,gBAAgB,GAAG,CAAC,WAAW,EAAE;QACjC,cAAc;QACd,qBAAqB;KACtB,CAAC;IACF,kEAAkE;IAClE,MAAM,YAAY,GAAG,MAAM,YAAY,CACrC,WAAW,EACX;QACE,OAAO,EAAE,GAAG,CAAC,IAAI;QACjB,UAAU,EAAE,OAAO,EAAE,UAAU;QAC/B,MAAM,EAAE;YACN;;;;;;;;;eASG;YACH,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBACxB,MAAM,IAAI,GAAgB,OAAO,EAAE,IAAI,IAAK,EAAkB,CAAC,CAAC,gDAAgD;gBAChH,iGAAiG;gBACjG,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;oBACzC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;oBACnD,OAAO,iBAAiB,CAAC,IAAI,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,4CAA4C;gBAC5F,CAAC;gBACD,kFAAkF;gBAClF,OAAO,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;YACvD,CAAC;SACF;KACF,CACF,CAAC;IACF,uEAAuE;IACvE,6GAA6G;IAC7G,OAAO;QACL,QAAQ,EAAE,YAAY,CAAC,MAAM;QAC7B,IAAI,EAAE,YAAY,CAAC,IAAI;QACvB,SAAS,EAAE,YAAY,CAAC,SAAS;KAClC,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,21 @@
1
+ import mergeWith from 'lodash.mergewith';
2
+ /**
3
+ * Merges a base application configuration object with an overrides object,
4
+ * returning a new configuration object. If the `scopes` property is present
5
+ * in the overrides, it will replace the corresponding property in the base
6
+ * configuration instead of merging deeply.
7
+ *
8
+ * @typeParam T - The type of the application configuration object, extending `AppConfig`.
9
+ * @param base - The base configuration object to merge into.
10
+ * @param overrides - An object containing properties to override in the base configuration.
11
+ * @returns A new configuration object resulting from merging `base` and `overrides`.
12
+ */
13
+ export const mergeAppConfig = (base, overrides) => {
14
+ // if scopes are provided in overrides, use the new scopes
15
+ return mergeWith(base, overrides, (_, value, key) => {
16
+ if (key === 'scopes') {
17
+ return value;
18
+ }
19
+ });
20
+ };
21
+ //# sourceMappingURL=merge-app-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge-app-config.js","sourceRoot":"","sources":["../../../../src/lib/app/merge-app-config.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,kBAAkB,CAAC;AAGzC;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAsB,IAAO,EAAE,SAAqB,EAAK,EAAE;IACvF,0DAA0D;IAC1D,OAAO,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QAClD,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YACrB,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC,CAAM,CAAC;AACV,CAAC,CAAC"}
@@ -0,0 +1,31 @@
1
+ import mergeWith from 'lodash.mergewith';
2
+ /**
3
+ * Deeply merges two application manifests using lodash's mergeWith.
4
+ *
5
+ * This utility is intended for combining a base manifest with an override manifest,
6
+ * supporting recursive merging of nested properties. It is commonly used in scenarios
7
+ * where environment-specific or user-specific manifest customizations are required.
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * export default defineAppManifest(base => mergeAppManifests(base, { prop: value }));
12
+ * ```
13
+ *
14
+ * @param base - The base manifest to merge with. Typically the default or environment-agnostic manifest.
15
+ * @param overrides - The manifest containing properties to override or extend the base manifest.
16
+ * @returns The deeply merged manifest object.
17
+ *
18
+ * @remarks
19
+ * - Maintainers: This function does not perform schema validation. Ensure validation is handled elsewhere.
20
+ * - Future: Consider adding assertions or schema checks after merging for safety.
21
+ */
22
+ export const mergeAppManifests = (base, // The base manifest (may be partial)
23
+ overrides) => {
24
+ // Use lodash.mergeWith for deep merging of manifest objects
25
+ const manifest = mergeWith(base, overrides);
26
+ // TODO: Add assertions or schema validation here if needed
27
+ return manifest;
28
+ };
29
+ // Export as default for convenience in import statements
30
+ export default mergeAppManifests;
31
+ //# sourceMappingURL=merge-app-manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge-app-manifest.js","sourceRoot":"","sources":["../../../../src/lib/app/merge-app-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,kBAAkB,CAAC;AAIzC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,IAAmC,EAAE,qCAAqC;AAC1E,SAAwC,EAC3B,EAAE;IACf,4DAA4D;IAC5D,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,EAAE,SAAS,CAAgB,CAAC;IAC3D,2DAA2D;IAC3D,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEF,yDAAyD;AACzD,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Zod schema for validating the API application configuration object.
4
+ *
5
+ * This schema defines the structure and types for the app config used in the Fusion Framework CLI.
6
+ * It ensures that the configuration adheres to expected types and provides sensible defaults.
7
+ */
8
+ export const ApiAppConfigSchema = z
9
+ .object({
10
+ environment: z
11
+ .record(z.any())
12
+ .describe('Key-value map of environment-specific variables for the application. Defaults to an empty object if not provided.')
13
+ .optional()
14
+ .default({}), // Arbitrary environment variables, default empty
15
+ endpoints: z
16
+ .record(z.object({
17
+ url: z.string().describe('The endpoint URL. This field is required.'),
18
+ scopes: z
19
+ .array(z.string())
20
+ .optional()
21
+ .default([])
22
+ .describe('List of scopes required for accessing this endpoint. Defaults to an empty array.'),
23
+ }))
24
+ .describe('A mapping of endpoint names to their configuration objects. Each endpoint must specify a URL and may specify scopes.')
25
+ .optional(), // Endpoints are optional
26
+ })
27
+ .describe('The API application configuration schema, defining environment variables and endpoints for the application.');
28
+ //# sourceMappingURL=schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../../../src/lib/app/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC;KAChC,MAAM,CAAC;IACN,WAAW,EAAE,CAAC;SACX,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;SACf,QAAQ,CACP,mHAAmH,CACpH;SACA,QAAQ,EAAE;SACV,OAAO,CAAC,EAAE,CAAC,EAAE,iDAAiD;IACjE,SAAS,EAAE,CAAC;SACT,MAAM,CACL,CAAC,CAAC,MAAM,CAAC;QACP,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;QACrE,MAAM,EAAE,CAAC;aACN,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;aACjB,QAAQ,EAAE;aACV,OAAO,CAAC,EAAE,CAAC;aACX,QAAQ,CACP,kFAAkF,CACnF;KACJ,CAAC,CACH;SACA,QAAQ,CACP,sHAAsH,CACvH;SACA,QAAQ,EAAE,EAAE,yBAAyB;CACzC,CAAC;KACD,QAAQ,CACP,6GAA6G,CAC9G,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { loadDevServerConfig, defineDevServerConfig, } from './load-dev-server-config.js';
2
+ export { mergeDevServerConfig } from './merge-dev-server-config.js';
3
+ //# sourceMappingURL=dev-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev-server.js","sourceRoot":"","sources":["../../../src/lib/dev-server.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,qBAAqB,GAGtB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC"}
@@ -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"}