@researchdatabox/redbox-core 0.0.0-bootstrap.0 → 0.0.1-beta.10213

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 (656) hide show
  1. package/dist/CoreController.d.ts +4 -0
  2. package/dist/CoreController.d.ts.map +1 -1
  3. package/dist/CoreController.js +68 -23
  4. package/dist/CoreService.d.ts +1 -1
  5. package/dist/CoreService.d.ts.map +1 -1
  6. package/dist/CoreService.js +1 -1
  7. package/dist/DatastreamService.d.ts +5 -2
  8. package/dist/DatastreamService.d.ts.map +1 -1
  9. package/dist/HarvestRunService.d.ts +49 -0
  10. package/dist/HarvestRunService.d.ts.map +1 -0
  11. package/dist/HarvestRunService.js +13 -0
  12. package/dist/IntegrationAuditParams.d.ts +11 -0
  13. package/dist/IntegrationAuditParams.js +14 -0
  14. package/dist/QueueService.d.ts +1 -1
  15. package/dist/QueueService.d.ts.map +1 -1
  16. package/dist/RecordAuditParams.d.ts +2 -0
  17. package/dist/RecordAuditParams.d.ts.map +1 -1
  18. package/dist/RecordAuditParams.js +3 -1
  19. package/dist/RecordsService.d.ts +52 -2
  20. package/dist/RecordsService.d.ts.map +1 -1
  21. package/dist/StorageService.d.ts +6 -2
  22. package/dist/StorageService.d.ts.map +1 -1
  23. package/dist/api-routes/apib.d.ts +7 -0
  24. package/dist/api-routes/apib.d.ts.map +1 -0
  25. package/dist/api-routes/apib.js +43 -0
  26. package/dist/api-routes/define.d.ts +4 -0
  27. package/dist/api-routes/define.d.ts.map +1 -0
  28. package/dist/api-routes/define.js +29 -0
  29. package/dist/api-routes/groups/admin.d.ts +6 -0
  30. package/dist/api-routes/groups/admin.d.ts.map +1 -0
  31. package/dist/api-routes/groups/admin.js +53 -0
  32. package/dist/api-routes/groups/appconfig.d.ts +4 -0
  33. package/dist/api-routes/groups/appconfig.d.ts.map +1 -0
  34. package/dist/api-routes/groups/appconfig.js +33 -0
  35. package/dist/api-routes/groups/branding.d.ts +8 -0
  36. package/dist/api-routes/groups/branding.d.ts.map +1 -0
  37. package/dist/api-routes/groups/branding.js +61 -0
  38. package/dist/api-routes/groups/dashboard-config.d.ts +11 -0
  39. package/dist/api-routes/groups/dashboard-config.d.ts.map +1 -0
  40. package/dist/api-routes/groups/dashboard-config.js +90 -0
  41. package/dist/api-routes/groups/export.d.ts +3 -0
  42. package/dist/api-routes/groups/export.d.ts.map +1 -0
  43. package/dist/api-routes/groups/export.js +30 -0
  44. package/dist/api-routes/groups/forms.d.ts +4 -0
  45. package/dist/api-routes/groups/forms.d.ts.map +1 -0
  46. package/dist/api-routes/groups/forms.js +29 -0
  47. package/dist/api-routes/groups/harvest-runs.d.ts +5 -0
  48. package/dist/api-routes/groups/harvest-runs.d.ts.map +1 -0
  49. package/dist/api-routes/groups/harvest-runs.js +79 -0
  50. package/dist/api-routes/groups/integration-audit.d.ts +3 -0
  51. package/dist/api-routes/groups/integration-audit.d.ts.map +1 -0
  52. package/dist/api-routes/groups/integration-audit.js +35 -0
  53. package/dist/api-routes/groups/named-query.d.ts +8 -0
  54. package/dist/api-routes/groups/named-query.d.ts.map +1 -0
  55. package/dist/api-routes/groups/named-query.js +54 -0
  56. package/dist/api-routes/groups/notifications.d.ts +3 -0
  57. package/dist/api-routes/groups/notifications.d.ts.map +1 -0
  58. package/dist/api-routes/groups/notifications.js +20 -0
  59. package/dist/api-routes/groups/records.d.ts +28 -0
  60. package/dist/api-routes/groups/records.d.ts.map +1 -0
  61. package/dist/api-routes/groups/records.js +353 -0
  62. package/dist/api-routes/groups/recordtypes.d.ts +4 -0
  63. package/dist/api-routes/groups/recordtypes.d.ts.map +1 -0
  64. package/dist/api-routes/groups/recordtypes.js +27 -0
  65. package/dist/api-routes/groups/reports.d.ts +9 -0
  66. package/dist/api-routes/groups/reports.d.ts.map +1 -0
  67. package/dist/api-routes/groups/reports.js +63 -0
  68. package/dist/api-routes/groups/search-query.d.ts +4 -0
  69. package/dist/api-routes/groups/search-query.d.ts.map +1 -0
  70. package/dist/api-routes/groups/search-query.js +51 -0
  71. package/dist/api-routes/groups/search.d.ts +6 -0
  72. package/dist/api-routes/groups/search.d.ts.map +1 -0
  73. package/dist/api-routes/groups/search.js +31 -0
  74. package/dist/api-routes/groups/translation.d.ts +8 -0
  75. package/dist/api-routes/groups/translation.d.ts.map +1 -0
  76. package/dist/api-routes/groups/translation.js +82 -0
  77. package/dist/api-routes/groups/users.d.ts +17 -0
  78. package/dist/api-routes/groups/users.d.ts.map +1 -0
  79. package/dist/api-routes/groups/users.js +149 -0
  80. package/dist/api-routes/groups/vocabulary.d.ts +10 -0
  81. package/dist/api-routes/groups/vocabulary.d.ts.map +1 -0
  82. package/dist/api-routes/groups/vocabulary.js +97 -0
  83. package/dist/api-routes/helpers.d.ts +29 -0
  84. package/dist/api-routes/helpers.d.ts.map +1 -0
  85. package/dist/api-routes/helpers.js +485 -0
  86. package/dist/api-routes/index.d.ts +27 -0
  87. package/dist/api-routes/index.d.ts.map +1 -0
  88. package/dist/api-routes/index.js +43 -0
  89. package/dist/api-routes/openapi.d.ts +26 -0
  90. package/dist/api-routes/openapi.d.ts.map +1 -0
  91. package/dist/api-routes/openapi.js +292 -0
  92. package/dist/api-routes/request-extraction.d.ts +14 -0
  93. package/dist/api-routes/request-extraction.d.ts.map +1 -0
  94. package/dist/api-routes/request-extraction.js +100 -0
  95. package/dist/api-routes/route-factory.d.ts +3 -0
  96. package/dist/api-routes/route-factory.d.ts.map +1 -0
  97. package/dist/api-routes/route-factory.js +30 -0
  98. package/dist/api-routes/route-registry.d.ts +24 -0
  99. package/dist/api-routes/route-registry.d.ts.map +1 -0
  100. package/dist/api-routes/route-registry.js +117 -0
  101. package/dist/api-routes/route-resolution.d.ts +4 -0
  102. package/dist/api-routes/route-resolution.d.ts.map +1 -0
  103. package/dist/api-routes/route-resolution.js +71 -0
  104. package/dist/api-routes/schemas/common.d.ts +35 -0
  105. package/dist/api-routes/schemas/common.d.ts.map +1 -0
  106. package/dist/api-routes/schemas/common.js +146 -0
  107. package/dist/api-routes/schemas/responses.d.ts +972 -0
  108. package/dist/api-routes/schemas/responses.d.ts.map +1 -0
  109. package/dist/api-routes/schemas/responses.js +512 -0
  110. package/dist/api-routes/types.d.ts +70 -0
  111. package/dist/api-routes/types.d.ts.map +1 -0
  112. package/dist/api-routes/types.js +3 -0
  113. package/dist/api-routes/validation.d.ts +32 -0
  114. package/dist/api-routes/validation.d.ts.map +1 -0
  115. package/dist/api-routes/validation.js +142 -0
  116. package/dist/api-routes/zod-openapi.d.ts +3 -0
  117. package/dist/api-routes/zod-openapi.d.ts.map +1 -0
  118. package/dist/api-routes/zod-openapi.js +8 -0
  119. package/dist/bootstrap.d.ts.map +1 -1
  120. package/dist/bootstrap.js +12 -12
  121. package/dist/config/agendaQueue.config.d.ts +33 -6
  122. package/dist/config/agendaQueue.config.d.ts.map +1 -1
  123. package/dist/config/agendaQueue.config.js +40 -18
  124. package/dist/config/auth.config.d.ts.map +1 -1
  125. package/dist/config/auth.config.js +29 -2
  126. package/dist/config/branding.config.d.ts +2 -1
  127. package/dist/config/branding.config.d.ts.map +1 -1
  128. package/dist/config/branding.config.js +5 -95
  129. package/dist/config/brandingConfigurationDefaults.config.d.ts +3 -0
  130. package/dist/config/brandingConfigurationDefaults.config.d.ts.map +1 -1
  131. package/dist/config/brandingConfigurationDefaults.config.js +161 -5
  132. package/dist/config/custom.config.d.ts +6 -0
  133. package/dist/config/custom.config.d.ts.map +1 -1
  134. package/dist/config/custom.config.js +10 -1
  135. package/dist/config/dashboardtype.config.d.ts +5 -0
  136. package/dist/config/dashboardtype.config.d.ts.map +1 -1
  137. package/dist/config/dashboardtype.config.js +1 -1
  138. package/dist/config/dashboardview.config.d.ts +24 -0
  139. package/dist/config/dashboardview.config.d.ts.map +1 -0
  140. package/dist/config/dashboardview.config.js +137 -0
  141. package/dist/config/dompurify.config.d.ts +1 -0
  142. package/dist/config/dompurify.config.d.ts.map +1 -1
  143. package/dist/config/dompurify.config.js +5 -4
  144. package/dist/config/emailnotification.config.d.ts.map +1 -1
  145. package/dist/config/emailnotification.config.js +2 -1
  146. package/dist/config/figshareDev.config.d.ts +12 -0
  147. package/dist/config/figshareDev.config.js +9 -0
  148. package/dist/config/form.config.d.ts +4 -0
  149. package/dist/config/form.config.d.ts.map +1 -1
  150. package/dist/config/form.config.js +1 -1
  151. package/dist/config/harvestRuns.config.d.ts +9 -0
  152. package/dist/config/harvestRuns.config.d.ts.map +1 -0
  153. package/dist/config/harvestRuns.config.js +11 -0
  154. package/dist/config/http.config.d.ts +13 -1
  155. package/dist/config/http.config.d.ts.map +1 -1
  156. package/dist/config/http.config.js +201 -38
  157. package/dist/config/index.d.ts +14 -19
  158. package/dist/config/index.d.ts.map +1 -1
  159. package/dist/config/index.js +10 -15
  160. package/dist/config/namedQuery.config.d.ts +26 -4
  161. package/dist/config/namedQuery.config.d.ts.map +1 -1
  162. package/dist/config/namedQuery.config.js +7 -350
  163. package/dist/config/policies.config.d.ts +3 -0
  164. package/dist/config/policies.config.d.ts.map +1 -1
  165. package/dist/config/policies.config.js +35 -1
  166. package/dist/config/record.config.d.ts.map +1 -1
  167. package/dist/config/record.config.js +2 -1
  168. package/dist/config/recordtype.config.d.ts +28 -0
  169. package/dist/config/recordtype.config.d.ts.map +1 -1
  170. package/dist/config/recordtype.config.js +105 -13
  171. package/dist/config/redboxSession.config.d.ts +3 -0
  172. package/dist/config/redboxSession.config.d.ts.map +1 -1
  173. package/dist/config/redboxSession.config.js +1 -1
  174. package/dist/config/report.config.d.ts +2 -11
  175. package/dist/config/report.config.d.ts.map +1 -1
  176. package/dist/config/report.config.js +3 -49
  177. package/dist/config/reusableContributorFormDefinitions.config.d.ts +1 -1
  178. package/dist/config/reusableContributorFormDefinitions.config.d.ts.map +1 -1
  179. package/dist/config/reusableContributorFormDefinitions.config.js +371 -206
  180. package/dist/config/reusableViewFormDefinitions.config.js +3 -3
  181. package/dist/config/routes.config.d.ts +5 -2
  182. package/dist/config/routes.config.d.ts.map +1 -1
  183. package/dist/config/routes.config.js +55 -117
  184. package/dist/config/storage.config.d.ts +20 -2
  185. package/dist/config/storage.config.d.ts.map +1 -1
  186. package/dist/config/storage.config.js +2 -1
  187. package/dist/config/validators.config.d.ts +6 -4
  188. package/dist/config/validators.config.d.ts.map +1 -1
  189. package/dist/config/validators.config.js +5 -3
  190. package/dist/config/vocab.config.d.ts +30 -0
  191. package/dist/config/vocab.config.d.ts.map +1 -1
  192. package/dist/config/vocab.config.js +21 -1
  193. package/dist/config/webpack.config.d.ts.map +1 -1
  194. package/dist/config/webpack.config.js +18 -12
  195. package/dist/config/workflow.config.d.ts +0 -1
  196. package/dist/config/workflow.config.d.ts.map +1 -1
  197. package/dist/config/workflow.config.js +1 -137
  198. package/dist/configmodels/AdminSidebarConfig.d.ts.map +1 -1
  199. package/dist/configmodels/AdminSidebarConfig.js +4 -3
  200. package/dist/configmodels/AuthorizedDomainsEmails.d.ts +48 -0
  201. package/dist/configmodels/AuthorizedDomainsEmails.d.ts.map +1 -1
  202. package/dist/configmodels/AuthorizedDomainsEmails.js +50 -2
  203. package/dist/configmodels/ConfigModels.d.ts +7 -1
  204. package/dist/configmodels/ConfigModels.d.ts.map +1 -1
  205. package/dist/configmodels/ConfigModels.js +41 -1
  206. package/dist/configmodels/DashboardTableOverrideConfig.d.ts +1011 -0
  207. package/dist/configmodels/DashboardTableOverrideConfig.d.ts.map +1 -0
  208. package/dist/configmodels/DashboardTableOverrideConfig.js +138 -0
  209. package/dist/configmodels/DoiPublishing.d.ts +4711 -0
  210. package/dist/configmodels/DoiPublishing.js +639 -0
  211. package/dist/configmodels/FigsharePublishing.d.ts +1376 -0
  212. package/dist/configmodels/FigsharePublishing.js +630 -0
  213. package/dist/configmodels/IntegrationNotificationConfig.d.ts +133 -0
  214. package/dist/configmodels/IntegrationNotificationConfig.d.ts.map +1 -0
  215. package/dist/configmodels/IntegrationNotificationConfig.js +64 -0
  216. package/dist/configmodels/SystemMessage.d.ts +32 -0
  217. package/dist/configmodels/SystemMessage.d.ts.map +1 -1
  218. package/dist/configmodels/SystemMessage.js +34 -2
  219. package/dist/controllers/AdminController.d.ts +1 -1
  220. package/dist/controllers/AdminController.d.ts.map +1 -1
  221. package/dist/controllers/AdminController.js +6 -32
  222. package/dist/controllers/AppConfigController.js +3 -3
  223. package/dist/controllers/BrandingAppController.d.ts.map +1 -1
  224. package/dist/controllers/BrandingAppController.js +11 -10
  225. package/dist/controllers/BrandingController.d.ts +11 -5
  226. package/dist/controllers/BrandingController.d.ts.map +1 -1
  227. package/dist/controllers/BrandingController.js +116 -48
  228. package/dist/controllers/DashboardConfigController.d.ts +8 -0
  229. package/dist/controllers/DashboardConfigController.d.ts.map +1 -0
  230. package/dist/controllers/DashboardConfigController.js +17 -0
  231. package/dist/controllers/DynamicAssetController.d.ts +1 -21
  232. package/dist/controllers/DynamicAssetController.d.ts.map +1 -1
  233. package/dist/controllers/DynamicAssetController.js +19 -41
  234. package/dist/controllers/EmailController.d.ts.map +1 -1
  235. package/dist/controllers/EmailController.js +16 -12
  236. package/dist/controllers/ExportController.d.ts.map +1 -1
  237. package/dist/controllers/ExportController.js +3 -8
  238. package/dist/controllers/FormVocabularyController.d.ts +3 -0
  239. package/dist/controllers/FormVocabularyController.d.ts.map +1 -1
  240. package/dist/controllers/FormVocabularyController.js +154 -4
  241. package/dist/controllers/NamedQueryController.d.ts +8 -0
  242. package/dist/controllers/NamedQueryController.d.ts.map +1 -0
  243. package/dist/controllers/NamedQueryController.js +17 -0
  244. package/dist/controllers/RecordAuditController.d.ts +31 -14
  245. package/dist/controllers/RecordAuditController.d.ts.map +1 -1
  246. package/dist/controllers/RecordAuditController.js +509 -57
  247. package/dist/controllers/RecordController.d.ts +18 -16
  248. package/dist/controllers/RecordController.d.ts.map +1 -1
  249. package/dist/controllers/RecordController.js +314 -167
  250. package/dist/controllers/RenderViewController.d.ts.map +1 -1
  251. package/dist/controllers/RenderViewController.js +4 -2
  252. package/dist/controllers/ReportController.d.ts +7 -0
  253. package/dist/controllers/ReportController.d.ts.map +1 -1
  254. package/dist/controllers/ReportController.js +75 -2
  255. package/dist/controllers/ReportsController.d.ts +1 -0
  256. package/dist/controllers/ReportsController.d.ts.map +1 -1
  257. package/dist/controllers/ReportsController.js +12 -2
  258. package/dist/controllers/TranslationController.d.ts.map +1 -1
  259. package/dist/controllers/TranslationController.js +14 -12
  260. package/dist/controllers/WorkspaceTypesController.d.ts +3 -2
  261. package/dist/controllers/WorkspaceTypesController.d.ts.map +1 -1
  262. package/dist/controllers/WorkspaceTypesController.js +120 -31
  263. package/dist/controllers/index.d.ts.map +1 -1
  264. package/dist/controllers/index.js +19 -4
  265. package/dist/controllers/webservice/AdminController.d.ts.map +1 -1
  266. package/dist/controllers/webservice/AdminController.js +16 -17
  267. package/dist/controllers/webservice/AppConfigController.d.ts.map +1 -1
  268. package/dist/controllers/webservice/AppConfigController.js +17 -18
  269. package/dist/controllers/webservice/BrandingController.d.ts.map +1 -1
  270. package/dist/controllers/webservice/BrandingController.js +102 -48
  271. package/dist/controllers/webservice/DashboardConfigController.d.ts +26 -0
  272. package/dist/controllers/webservice/DashboardConfigController.d.ts.map +1 -0
  273. package/dist/controllers/webservice/DashboardConfigController.js +241 -0
  274. package/dist/controllers/webservice/ExportController.d.ts.map +1 -1
  275. package/dist/controllers/webservice/ExportController.js +13 -18
  276. package/dist/controllers/webservice/FormManagementController.d.ts.map +1 -1
  277. package/dist/controllers/webservice/FormManagementController.js +11 -13
  278. package/dist/controllers/webservice/HarvestRunController.d.ts +13 -0
  279. package/dist/controllers/webservice/HarvestRunController.d.ts.map +1 -0
  280. package/dist/controllers/webservice/HarvestRunController.js +148 -0
  281. package/dist/controllers/webservice/IntegrationAuditController.d.ts +10 -0
  282. package/dist/controllers/webservice/IntegrationAuditController.d.ts.map +1 -1
  283. package/dist/controllers/webservice/IntegrationAuditController.js +98 -0
  284. package/dist/controllers/webservice/NamedQueryController.d.ts +17 -0
  285. package/dist/controllers/webservice/NamedQueryController.d.ts.map +1 -0
  286. package/dist/controllers/webservice/NamedQueryController.js +127 -0
  287. package/dist/controllers/webservice/RecordController.d.ts +4 -0
  288. package/dist/controllers/webservice/RecordController.d.ts.map +1 -1
  289. package/dist/controllers/webservice/RecordController.js +441 -314
  290. package/dist/controllers/webservice/RecordTypeController.d.ts.map +1 -1
  291. package/dist/controllers/webservice/RecordTypeController.js +9 -10
  292. package/dist/controllers/webservice/ReportController.d.ts +7 -0
  293. package/dist/controllers/webservice/ReportController.d.ts.map +1 -1
  294. package/dist/controllers/webservice/ReportController.js +125 -19
  295. package/dist/controllers/webservice/SearchController.d.ts.map +1 -1
  296. package/dist/controllers/webservice/SearchController.js +28 -35
  297. package/dist/controllers/webservice/TranslationController.d.ts.map +1 -1
  298. package/dist/controllers/webservice/TranslationController.js +65 -43
  299. package/dist/controllers/webservice/UserManagementController.d.ts +1 -1
  300. package/dist/controllers/webservice/UserManagementController.d.ts.map +1 -1
  301. package/dist/controllers/webservice/UserManagementController.js +114 -101
  302. package/dist/controllers/webservice/VocabularyController.d.ts.map +1 -1
  303. package/dist/controllers/webservice/VocabularyController.js +76 -28
  304. package/dist/form-config/dataRecord-1.0-draft.js +3 -3
  305. package/dist/form-config/default-1.0-draft.d.ts.map +1 -1
  306. package/dist/form-config/default-1.0-draft.js +27 -3
  307. package/dist/form-config/index.d.ts.map +1 -1
  308. package/dist/form-config/index.js +1 -1
  309. package/dist/hooks/defineRedboxHook.d.ts +3 -0
  310. package/dist/hooks/defineRedboxHook.d.ts.map +1 -1
  311. package/dist/hooks/defineRedboxHook.js +4 -1
  312. package/dist/hooks/webpack.d.ts.map +1 -1
  313. package/dist/hooks/webpack.js +17 -7
  314. package/dist/index.d.ts +12 -2
  315. package/dist/index.d.ts.map +1 -1
  316. package/dist/index.js +17 -2
  317. package/dist/loader/MigrationRunner.d.ts +19 -0
  318. package/dist/loader/MigrationRunner.d.ts.map +1 -0
  319. package/dist/loader/MigrationRunner.js +108 -0
  320. package/dist/loader/bootstrapShimRuntime.d.ts +2 -1
  321. package/dist/loader/bootstrapShimRuntime.d.ts.map +1 -1
  322. package/dist/loader/bootstrapShimRuntime.js +7 -2
  323. package/dist/loader/index.d.ts +17 -0
  324. package/dist/loader/index.d.ts.map +1 -1
  325. package/dist/loader/index.js +216 -13
  326. package/dist/middleware/redboxSession.d.ts +5 -0
  327. package/dist/middleware/redboxSession.d.ts.map +1 -1
  328. package/dist/middleware/redboxSession.js +19 -6
  329. package/dist/model/BuildResponse.d.ts +4 -0
  330. package/dist/model/BuildResponse.d.ts.map +1 -1
  331. package/dist/model/DashboardTypeResponseModel.d.ts +13 -1
  332. package/dist/model/DashboardTypeResponseModel.d.ts.map +1 -1
  333. package/dist/model/DashboardTypeResponseModel.js +12 -4
  334. package/dist/model/DashboardViewResponseModel.d.ts +20 -0
  335. package/dist/model/DashboardViewResponseModel.d.ts.map +1 -0
  336. package/dist/model/DashboardViewResponseModel.js +38 -0
  337. package/dist/model/RecordTypeResponseModel.d.ts +3 -1
  338. package/dist/model/RecordTypeResponseModel.d.ts.map +1 -1
  339. package/dist/model/RecordTypeResponseModel.js +4 -2
  340. package/dist/model/RequestDetails.d.ts +1 -1
  341. package/dist/model/RequestDetails.d.ts.map +1 -1
  342. package/dist/model/RequestDetails.js +1 -1
  343. package/dist/model/config/ReportConfig.d.ts +1 -1
  344. package/dist/model/config/ReportConfig.d.ts.map +1 -1
  345. package/dist/model/config/ReportConfig.js +2 -2
  346. package/dist/model/index.d.ts +1 -0
  347. package/dist/model/index.d.ts.map +1 -1
  348. package/dist/model/index.js +5 -2
  349. package/dist/model/storage/BrandingModel.d.ts +0 -16
  350. package/dist/model/storage/BrandingModel.d.ts.map +1 -1
  351. package/dist/model/storage/BrandingModel.js +2 -51
  352. package/dist/model/storage/DashboardTypeModel.d.ts +4 -0
  353. package/dist/model/storage/DashboardTypeModel.d.ts.map +1 -1
  354. package/dist/model/storage/HarvestRunModel.d.ts +140 -0
  355. package/dist/model/storage/HarvestRunModel.d.ts.map +1 -0
  356. package/dist/model/storage/HarvestRunModel.js +110 -0
  357. package/dist/model/storage/IntegrationAuditModel.d.ts +49 -0
  358. package/dist/model/storage/IntegrationAuditModel.d.ts.map +1 -1
  359. package/dist/model/storage/IntegrationAuditModel.js +106 -0
  360. package/dist/model/storage/RecordTypeModel.d.ts +16 -0
  361. package/dist/model/storage/RecordTypeModel.d.ts.map +1 -1
  362. package/dist/model/storage/RecordTypeModel.js +9 -1
  363. package/dist/model/storage/ReportModel.d.ts +1 -0
  364. package/dist/model/storage/ReportModel.d.ts.map +1 -1
  365. package/dist/model/storage/index.d.ts +2 -0
  366. package/dist/model/storage/index.d.ts.map +1 -1
  367. package/dist/model/storage/index.js +15 -2
  368. package/dist/policies/contentSecurityPolicy.d.ts.map +1 -1
  369. package/dist/policies/contentSecurityPolicy.js +23 -2
  370. package/dist/policies/i18nLanguages.d.ts.map +1 -1
  371. package/dist/policies/i18nLanguages.js +1 -1
  372. package/dist/policies/index.d.ts +3 -0
  373. package/dist/policies/index.d.ts.map +1 -1
  374. package/dist/policies/index.js +6 -2
  375. package/dist/policies/menuResolver.d.ts.map +1 -1
  376. package/dist/policies/menuResolver.js +1 -1
  377. package/dist/policies/setLang.d.ts.map +1 -1
  378. package/dist/policies/setLang.js +1 -1
  379. package/dist/policies/validateApiContractRequest.d.ts +3 -0
  380. package/dist/policies/validateApiContractRequest.d.ts.map +1 -0
  381. package/dist/policies/validateApiContractRequest.js +74 -0
  382. package/dist/responses/badRequest.d.ts.map +1 -1
  383. package/dist/responses/badRequest.js +7 -4
  384. package/dist/responses/created.d.ts.map +1 -1
  385. package/dist/responses/created.js +7 -4
  386. package/dist/responses/forbidden.d.ts.map +1 -1
  387. package/dist/responses/forbidden.js +7 -4
  388. package/dist/responses/ok.d.ts.map +1 -1
  389. package/dist/responses/ok.js +7 -4
  390. package/dist/responses/serverError.d.ts.map +1 -1
  391. package/dist/responses/serverError.js +7 -4
  392. package/dist/responses/siteTitle.d.ts +6 -0
  393. package/dist/responses/siteTitle.d.ts.map +1 -0
  394. package/dist/responses/siteTitle.js +28 -0
  395. package/dist/sails.d.ts +9 -0
  396. package/dist/sails.d.ts.map +1 -1
  397. package/dist/services/AgendaQueueService.d.ts +39 -17
  398. package/dist/services/AgendaQueueService.d.ts.map +1 -1
  399. package/dist/services/AgendaQueueService.js +328 -87
  400. package/dist/services/AppConfigService.d.ts +20 -2
  401. package/dist/services/AppConfigService.d.ts.map +1 -1
  402. package/dist/services/AppConfigService.js +129 -15
  403. package/dist/services/AttachmentMetadataService.d.ts +34 -0
  404. package/dist/services/AttachmentMetadataService.d.ts.map +1 -0
  405. package/dist/services/AttachmentMetadataService.js +133 -0
  406. package/dist/services/BrandingLogoService.d.ts +11 -8
  407. package/dist/services/BrandingLogoService.d.ts.map +1 -1
  408. package/dist/services/BrandingLogoService.js +71 -72
  409. package/dist/services/BrandingService.d.ts.map +1 -1
  410. package/dist/services/BrandingService.js +4 -32
  411. package/dist/services/BrandingThemeCssService.d.ts +21 -0
  412. package/dist/services/BrandingThemeCssService.d.ts.map +1 -0
  413. package/dist/services/BrandingThemeCssService.js +113 -0
  414. package/dist/services/BrandingThemeTokens.d.ts +16 -0
  415. package/dist/services/BrandingThemeTokens.d.ts.map +1 -0
  416. package/dist/services/BrandingThemeTokens.js +82 -0
  417. package/dist/services/CacheService.d.ts.map +1 -1
  418. package/dist/services/CacheService.js +37 -29
  419. package/dist/services/DashboardConfigService.d.ts +71 -0
  420. package/dist/services/DashboardConfigService.d.ts.map +1 -0
  421. package/dist/services/DashboardConfigService.js +315 -0
  422. package/dist/services/DashboardTypesService.d.ts +61 -63
  423. package/dist/services/DashboardTypesService.d.ts.map +1 -1
  424. package/dist/services/DashboardTypesService.js +361 -198
  425. package/dist/services/DoiService.d.ts +30 -25
  426. package/dist/services/DoiService.d.ts.map +1 -1
  427. package/dist/services/DoiService.js +448 -393
  428. package/dist/services/EmailService.d.ts +17 -3
  429. package/dist/services/EmailService.d.ts.map +1 -1
  430. package/dist/services/EmailService.js +44 -17
  431. package/dist/services/FigshareService.d.ts +40 -65
  432. package/dist/services/FigshareService.d.ts.map +1 -1
  433. package/dist/services/FigshareService.js +616 -2038
  434. package/dist/services/FormPayloadPrehydrateService.d.ts +35 -0
  435. package/dist/services/FormPayloadPrehydrateService.d.ts.map +1 -0
  436. package/dist/services/FormPayloadPrehydrateService.js +200 -0
  437. package/dist/services/FormRecordConsistencyService.d.ts +3 -3
  438. package/dist/services/FormRecordConsistencyService.d.ts.map +1 -1
  439. package/dist/services/FormRecordConsistencyService.js +21 -19
  440. package/dist/services/FormVocabularyService.d.ts +45 -0
  441. package/dist/services/FormVocabularyService.d.ts.map +1 -0
  442. package/dist/services/FormVocabularyService.js +326 -0
  443. package/dist/services/FormsService.d.ts.map +1 -1
  444. package/dist/services/FormsService.js +8 -6
  445. package/dist/services/HarvestRunService.d.ts +73 -0
  446. package/dist/services/HarvestRunService.d.ts.map +1 -0
  447. package/dist/services/HarvestRunService.js +1317 -0
  448. package/dist/services/I18nEntriesService.d.ts +9 -4
  449. package/dist/services/I18nEntriesService.d.ts.map +1 -1
  450. package/dist/services/I18nEntriesService.js +96 -18
  451. package/dist/services/IntegrationAuditService.d.ts +158 -0
  452. package/dist/services/IntegrationAuditService.d.ts.map +1 -1
  453. package/dist/services/IntegrationAuditService.js +838 -0
  454. package/dist/services/IntegrationNotificationService.d.ts +55 -0
  455. package/dist/services/IntegrationNotificationService.d.ts.map +1 -0
  456. package/dist/services/IntegrationNotificationService.js +271 -0
  457. package/dist/services/NamedQueryService.d.ts +51 -12
  458. package/dist/services/NamedQueryService.d.ts.map +1 -1
  459. package/dist/services/NamedQueryService.js +622 -125
  460. package/dist/services/OniService.d.ts.map +1 -1
  461. package/dist/services/OniService.js +4 -6
  462. package/dist/services/RDMPService.d.ts.map +1 -1
  463. package/dist/services/RDMPService.js +3 -2
  464. package/dist/services/RecordsService.d.ts +25 -3
  465. package/dist/services/RecordsService.d.ts.map +1 -1
  466. package/dist/services/RecordsService.js +119 -19
  467. package/dist/services/ReportsService.d.ts +57 -1
  468. package/dist/services/ReportsService.d.ts.map +1 -1
  469. package/dist/services/ReportsService.js +258 -34
  470. package/dist/services/SassCompilerService.d.ts +4 -10
  471. package/dist/services/SassCompilerService.d.ts.map +1 -1
  472. package/dist/services/SassCompilerService.js +9 -173
  473. package/dist/services/SolrSearchService.d.ts +1 -0
  474. package/dist/services/SolrSearchService.d.ts.map +1 -1
  475. package/dist/services/SolrSearchService.js +14 -3
  476. package/dist/services/StandardDatastreamService.d.ts +37 -5
  477. package/dist/services/StandardDatastreamService.d.ts.map +1 -1
  478. package/dist/services/StandardDatastreamService.js +535 -38
  479. package/dist/services/StorageManagerService.d.ts +13 -1
  480. package/dist/services/StorageManagerService.d.ts.map +1 -1
  481. package/dist/services/StorageManagerService.js +94 -11
  482. package/dist/services/TemplateService.d.ts +2 -18
  483. package/dist/services/TemplateService.d.ts.map +1 -1
  484. package/dist/services/TemplateService.js +9 -53
  485. package/dist/services/VocabularyService.d.ts +13 -0
  486. package/dist/services/VocabularyService.d.ts.map +1 -1
  487. package/dist/services/VocabularyService.js +204 -14
  488. package/dist/services/doi-v2/audit.d.ts +7 -0
  489. package/dist/services/doi-v2/audit.d.ts.map +1 -1
  490. package/dist/services/doi-v2/audit.js +30 -0
  491. package/dist/services/doi-v2/bindings.d.ts +8 -0
  492. package/dist/services/doi-v2/bindings.d.ts.map +1 -1
  493. package/dist/services/doi-v2/bindings.js +79 -0
  494. package/dist/services/doi-v2/config.d.ts +7 -0
  495. package/dist/services/doi-v2/config.js +51 -0
  496. package/dist/services/doi-v2/context.d.ts +18 -0
  497. package/dist/services/doi-v2/context.js +41 -0
  498. package/dist/services/doi-v2/http.d.ts +21 -0
  499. package/dist/services/doi-v2/http.js +88 -0
  500. package/dist/services/doi-v2/payload.d.ts +4 -0
  501. package/dist/services/doi-v2/payload.d.ts.map +1 -1
  502. package/dist/services/doi-v2/payload.js +305 -0
  503. package/dist/services/doi-v2/profiles.d.ts +5 -0
  504. package/dist/services/doi-v2/profiles.js +31 -0
  505. package/dist/services/doi-v2/runtime.d.ts +16 -0
  506. package/dist/services/doi-v2/runtime.js +173 -0
  507. package/dist/services/doi-v2/types.d.ts +49 -0
  508. package/dist/services/doi-v2/types.js +3 -0
  509. package/dist/services/figshare-v2/assets.d.ts +5 -0
  510. package/dist/services/figshare-v2/assets.js +297 -0
  511. package/dist/services/figshare-v2/audit.d.ts +7 -0
  512. package/dist/services/figshare-v2/audit.d.ts.map +1 -0
  513. package/dist/services/figshare-v2/audit.js +30 -0
  514. package/dist/services/figshare-v2/bindings.d.ts +6 -0
  515. package/dist/services/figshare-v2/bindings.d.ts.map +1 -1
  516. package/dist/services/figshare-v2/bindings.js +58 -0
  517. package/dist/services/figshare-v2/config.d.ts +13 -0
  518. package/dist/services/figshare-v2/config.d.ts.map +1 -1
  519. package/dist/services/figshare-v2/config.js +105 -0
  520. package/dist/services/figshare-v2/context.d.ts +4 -0
  521. package/dist/services/figshare-v2/context.d.ts.map +1 -1
  522. package/dist/services/figshare-v2/context.js +21 -0
  523. package/dist/services/figshare-v2/embargo.d.ts +5 -0
  524. package/dist/services/figshare-v2/embargo.js +36 -0
  525. package/dist/services/figshare-v2/http.d.ts +42 -0
  526. package/dist/services/figshare-v2/http.d.ts.map +1 -1
  527. package/dist/services/figshare-v2/http.js +324 -0
  528. package/dist/services/figshare-v2/metadata.d.ts +6 -0
  529. package/dist/services/figshare-v2/metadata.d.ts.map +1 -1
  530. package/dist/services/figshare-v2/metadata.js +280 -0
  531. package/dist/services/figshare-v2/observability.d.ts +7 -0
  532. package/dist/services/figshare-v2/observability.d.ts.map +1 -1
  533. package/dist/services/figshare-v2/observability.js +87 -0
  534. package/dist/services/figshare-v2/plan.d.ts +5 -0
  535. package/dist/services/figshare-v2/plan.js +51 -0
  536. package/dist/services/figshare-v2/publish.d.ts +5 -0
  537. package/dist/services/figshare-v2/publish.js +20 -0
  538. package/dist/services/figshare-v2/queue.d.ts +4 -0
  539. package/dist/services/figshare-v2/queue.js +11 -0
  540. package/dist/services/figshare-v2/runtime.d.ts +14 -0
  541. package/dist/services/figshare-v2/runtime.d.ts.map +1 -1
  542. package/dist/services/figshare-v2/runtime.js +88 -0
  543. package/dist/services/figshare-v2/types.d.ts +198 -0
  544. package/dist/services/figshare-v2/types.d.ts.map +1 -1
  545. package/dist/services/figshare-v2/types.js +59 -0
  546. package/dist/services/figshare-v2/workflow.d.ts +3 -0
  547. package/dist/services/figshare-v2/workflow.js +7 -0
  548. package/dist/services/figshare-v2/writeback.d.ts +5 -0
  549. package/dist/services/figshare-v2/writeback.js +45 -0
  550. package/dist/services/index.d.ts +24 -3
  551. package/dist/services/index.d.ts.map +1 -1
  552. package/dist/services/index.js +43 -7
  553. package/dist/shims/momentShim.d.ts.map +1 -1
  554. package/dist/shims/momentShim.js +1 -6
  555. package/dist/storage/GridFSDriver.d.ts +101 -0
  556. package/dist/storage/GridFSDriver.d.ts.map +1 -0
  557. package/dist/storage/GridFSDriver.js +291 -0
  558. package/dist/storage/TusStorageManagerDataStore.d.ts +49 -0
  559. package/dist/storage/TusStorageManagerDataStore.d.ts.map +1 -0
  560. package/dist/storage/TusStorageManagerDataStore.js +300 -0
  561. package/dist/transformers/ExportJSONTransformer.d.ts +1 -1
  562. package/dist/transformers/ExportJSONTransformer.d.ts.map +1 -1
  563. package/dist/transformers/ExportJSONTransformer.js +3 -3
  564. package/dist/utilities/RequestParamUtils.d.ts +3 -0
  565. package/dist/utilities/RequestParamUtils.d.ts.map +1 -0
  566. package/dist/utilities/RequestParamUtils.js +13 -0
  567. package/dist/visitor/attachment-fields.visitor.d.ts +17 -17
  568. package/dist/visitor/attachment-fields.visitor.d.ts.map +1 -1
  569. package/dist/visitor/attachment-fields.visitor.js +44 -34
  570. package/dist/visitor/client.visitor.d.ts +145 -97
  571. package/dist/visitor/client.visitor.d.ts.map +1 -1
  572. package/dist/visitor/client.visitor.js +366 -273
  573. package/dist/visitor/construct.visitor.d.ts +99 -93
  574. package/dist/visitor/construct.visitor.d.ts.map +1 -1
  575. package/dist/visitor/construct.visitor.js +304 -227
  576. package/dist/visitor/context-variables.visitor.d.ts +35 -35
  577. package/dist/visitor/context-variables.visitor.d.ts.map +1 -1
  578. package/dist/visitor/context-variables.visitor.js +85 -75
  579. package/dist/visitor/data-value.visitor.d.ts +99 -93
  580. package/dist/visitor/data-value.visitor.d.ts.map +1 -1
  581. package/dist/visitor/data-value.visitor.js +157 -148
  582. package/dist/visitor/json-type-def.visitor.d.ts +96 -90
  583. package/dist/visitor/json-type-def.visitor.d.ts.map +1 -1
  584. package/dist/visitor/json-type-def.visitor.js +158 -149
  585. package/dist/visitor/migrate-config-v4-v5.visitor.d.ts +101 -94
  586. package/dist/visitor/migrate-config-v4-v5.visitor.d.ts.map +1 -1
  587. package/dist/visitor/migrate-config-v4-v5.visitor.js +356 -295
  588. package/dist/visitor/template.visitor.d.ts +100 -92
  589. package/dist/visitor/template.visitor.d.ts.map +1 -1
  590. package/dist/visitor/template.visitor.js +245 -156
  591. package/dist/visitor/validator.visitor.d.ts +95 -91
  592. package/dist/visitor/validator.visitor.d.ts.map +1 -1
  593. package/dist/visitor/validator.visitor.js +184 -152
  594. package/dist/visitor/visitor-helpers.js +9 -9
  595. package/dist/visitor/vocab-inline.visitor.d.ts +34 -19
  596. package/dist/visitor/vocab-inline.visitor.d.ts.map +1 -1
  597. package/dist/visitor/vocab-inline.visitor.js +157 -48
  598. package/dist/waterline-models/AttachmentAccessAudit.d.ts +26 -0
  599. package/dist/waterline-models/AttachmentAccessAudit.d.ts.map +1 -0
  600. package/dist/waterline-models/AttachmentAccessAudit.js +63 -0
  601. package/dist/waterline-models/AttachmentMetadata.d.ts +40 -0
  602. package/dist/waterline-models/AttachmentMetadata.d.ts.map +1 -0
  603. package/dist/waterline-models/AttachmentMetadata.js +147 -0
  604. package/dist/waterline-models/BrandingConfig.d.ts +0 -2
  605. package/dist/waterline-models/BrandingConfig.d.ts.map +1 -1
  606. package/dist/waterline-models/BrandingConfig.js +5 -9
  607. package/dist/waterline-models/DashboardType.d.ts +7 -0
  608. package/dist/waterline-models/DashboardType.d.ts.map +1 -1
  609. package/dist/waterline-models/DashboardType.js +16 -1
  610. package/dist/waterline-models/HarvestRecordEvent.d.ts +43 -0
  611. package/dist/waterline-models/HarvestRecordEvent.d.ts.map +1 -0
  612. package/dist/waterline-models/HarvestRecordEvent.js +107 -0
  613. package/dist/waterline-models/HarvestRun.d.ts +51 -0
  614. package/dist/waterline-models/HarvestRun.d.ts.map +1 -0
  615. package/dist/waterline-models/HarvestRun.js +125 -0
  616. package/dist/waterline-models/HarvestRunChunk.d.ts +57 -0
  617. package/dist/waterline-models/HarvestRunChunk.d.ts.map +1 -0
  618. package/dist/waterline-models/HarvestRunChunk.js +140 -0
  619. package/dist/waterline-models/I18nTranslation.d.ts +2 -0
  620. package/dist/waterline-models/I18nTranslation.d.ts.map +1 -1
  621. package/dist/waterline-models/I18nTranslation.js +6 -1
  622. package/dist/waterline-models/Migration.d.ts +24 -0
  623. package/dist/waterline-models/Migration.d.ts.map +1 -0
  624. package/dist/waterline-models/Migration.js +52 -0
  625. package/dist/waterline-models/NamedQuery.d.ts +6 -0
  626. package/dist/waterline-models/NamedQuery.d.ts.map +1 -1
  627. package/dist/waterline-models/NamedQuery.js +16 -1
  628. package/dist/waterline-models/index.d.ts +12 -0
  629. package/dist/waterline-models/index.d.ts.map +1 -1
  630. package/dist/waterline-models/index.js +19 -1
  631. package/package.json +78 -52
  632. package/redbox-loader-templates/bootstrap-shim.js.hbs +14 -1
  633. package/dist/config/datacite.config.d.ts +0 -51
  634. package/dist/config/datacite.config.d.ts.map +0 -1
  635. package/dist/config/datacite.config.js +0 -44
  636. package/dist/config/figshareAPI.config.d.ts +0 -116
  637. package/dist/config/figshareAPI.config.d.ts.map +0 -1
  638. package/dist/config/figshareAPI.config.js +0 -857
  639. package/dist/config/figshareAPIEnv.config.d.ts +0 -11
  640. package/dist/config/figshareAPIEnv.config.d.ts.map +0 -1
  641. package/dist/config/figshareAPIEnv.config.js +0 -13
  642. package/dist/config/figshareRedboxFORMapping.config.d.ts +0 -15
  643. package/dist/config/figshareRedboxFORMapping.config.d.ts.map +0 -1
  644. package/dist/config/figshareRedboxFORMapping.config.js +0 -7458
  645. package/dist/config/relatedObjectsFormDefinition.config.d.ts.map +0 -1
  646. package/dist/controllers/VocabController.d.ts +0 -43
  647. package/dist/controllers/VocabController.d.ts.map +0 -1
  648. package/dist/controllers/VocabController.js +0 -190
  649. package/dist/form-config/dataPublication-1.0-draft.d.ts.map +0 -1
  650. package/dist/form-config/dataPublication-1.0-embargoed.d.ts.map +0 -1
  651. package/dist/form-config/dataPublication-1.0-published.d.ts.map +0 -1
  652. package/dist/form-config/dataPublication-1.0-queued.d.ts.map +0 -1
  653. package/dist/form-config/dataPublication-1.0-retired.d.ts.map +0 -1
  654. package/dist/services/VocabService.d.ts +0 -81
  655. package/dist/services/VocabService.d.ts.map +0 -1
  656. package/dist/services/VocabService.js +0 -424
@@ -14,18 +14,18 @@ const CoreService_1 = require("../CoreService");
14
14
  const PopulateExportedMethods_decorator_1 = require("../decorator/PopulateExportedMethods.decorator");
15
15
  const crypto_1 = __importDefault(require("crypto"));
16
16
  const mongodb_1 = require("mongodb");
17
- // Using skipper-gridfs adapter pattern like BrandingController
18
- // We'll lazily require to avoid circular load issues.
17
+ /**
18
+ * BrandingLogoService
19
+ * - sanitizeAndValidate(fileBuf, contentType)
20
+ * - putLogo({branding, portal, fileBuf, contentType}) -> storage key `${branding}/${portal}/images/logo.(ext)`
21
+ */
19
22
  var Services;
20
23
  (function (Services) {
21
24
  let BrandingLogo = class BrandingLogo extends CoreService_1.Services.Core.Service {
22
- /** Cached GridFS bucket to avoid repeated initialization. */
23
- cachedBucket = null;
24
- /** In-memory placeholder storage keyed by gridFsId. */
25
+ /** In-memory placeholder storage keyed by storage identifier. */
25
26
  _binaryById = {};
26
27
  getCacheTtlMs() {
27
28
  const DEFAULT_LOGO_CACHE_TTL_MS = 24 * 60 * 60 * 1000;
28
- // defaults to 1 day
29
29
  const configured = _.get(sails, 'config.branding.logoCacheTtlMs', DEFAULT_LOGO_CACHE_TTL_MS);
30
30
  if (typeof configured === 'number' && configured > 0) {
31
31
  return configured;
@@ -54,25 +54,24 @@ var Services;
54
54
  }
55
55
  return entry.buffer;
56
56
  }
57
- /** Lazily create a GridFS bucket using the configured 'mongodb' datastore. */
58
- getBucket() {
59
- // Return cached bucket if already initialized
60
- if (this.cachedBucket) {
61
- return this.cachedBucket;
62
- }
63
- try {
64
- const ds = sails
65
- .getDatastore?.('mongodb') ?? null;
66
- const db = ds?.manager; // sails-mongo exposes native Db as manager
67
- if (!db)
68
- return null;
69
- // Create and cache the bucket for subsequent calls
70
- this.cachedBucket = new mongodb_1.GridFSBucket(db, { bucketName: 'fs' });
71
- return this.cachedBucket;
72
- }
73
- catch (_e) {
74
- return null;
75
- }
57
+ isStorageNotFoundError(err) {
58
+ if (!err || typeof err !== 'object') {
59
+ return false;
60
+ }
61
+ const storageError = err;
62
+ const message = storageError.message?.toLowerCase() ?? '';
63
+ return storageError.code === 'ENOENT'
64
+ || storageError.status === 404
65
+ || storageError.statusCode === 404
66
+ || message.includes('not found')
67
+ || message.includes('enoent');
68
+ }
69
+ isLegacyGridFsObjectId(id) {
70
+ return /^[0-9a-fA-F]{24}$/.test(id);
71
+ }
72
+ logoStorageKey(branding, portal, contentType) {
73
+ const ext = contentType === 'image/png' ? 'png' : contentType === 'image/jpeg' ? 'jpg' : 'svg';
74
+ return `${branding}/${portal}/images/logo.${ext}`;
76
75
  }
77
76
  getMaxBytes() {
78
77
  return _.get(sails, 'config.branding.logoMaxBytes', 512 * 1024);
@@ -113,7 +112,6 @@ var Services;
113
112
  let outBuffer = fileBuf;
114
113
  let finalCt = contentType;
115
114
  if (this.isSvg(fileBuf, contentType)) {
116
- // Sanitize SVG using existing service
117
115
  const svg = fileBuf.toString('utf8');
118
116
  const result = await DomSanitizerService.sanitize(svg);
119
117
  if (!result.safe) {
@@ -129,7 +127,6 @@ var Services;
129
127
  const sha256 = crypto_1.default.createHash('sha256').update(outBuffer).digest('hex');
130
128
  return { ok: true, sha256, sanitizedBuffer: outBuffer, warnings, finalContentType: finalCt };
131
129
  }
132
- /** Write logo to storage (GridFS) and update BrandingConfig.logo metadata */
133
130
  async putLogo(opts) {
134
131
  const brand = await BrandingConfig.findOne({ name: opts.branding });
135
132
  if (!brand)
@@ -139,69 +136,71 @@ var Services;
139
136
  if (!ok)
140
137
  throw new Error('logo-invalid: ' + errorList.join(','));
141
138
  const resolvedContentType = finalContentType ?? opts.contentType;
142
- // Generate a deterministic filename-like id for traceability across storage layers
143
- const ext = resolvedContentType === 'image/png' ? 'png' : resolvedContentType === 'image/jpeg' ? 'jpg' : 'svg';
144
- const gridFsId = `${opts.branding}/${opts.portal}/images/logo.${ext}`;
145
- // Persist to GridFS (if available). Keep in-memory cache for immediate serving.
146
- try {
147
- const bucket = this.getBucket();
148
- if (bucket) {
149
- // Delete any previous versions with same filename
150
- const existing = await bucket.find({ filename: gridFsId }).toArray();
151
- for (const f of existing) {
152
- try {
153
- await bucket.delete(f._id);
154
- }
155
- catch (_e) { /* noop */ }
156
- }
157
- await new Promise((resolve, reject) => {
158
- const up = bucket.openUploadStream(gridFsId, { metadata: { contentType: finalContentType } });
159
- up.on('error', reject);
160
- up.on('finish', () => resolve());
161
- up.end(sanitizedBuffer);
162
- });
163
- }
164
- }
165
- catch (e) {
166
- sails.log.warn('BrandingLogoService.putLogo GridFS write failed:', e);
167
- }
168
- // Update in-memory cache and config metadata
169
- this.setCache(gridFsId, sanitizedBuffer);
170
- const meta = { gridFsId, sha256, contentType: resolvedContentType, updatedAt: new Date().toISOString() };
139
+ const storageKey = this.logoStorageKey(opts.branding, opts.portal, resolvedContentType);
140
+ await StorageManagerService.primaryDisk().put(storageKey, sanitizedBuffer, { contentType: resolvedContentType });
141
+ this.setCache(storageKey, sanitizedBuffer);
142
+ const meta = {
143
+ gridFsId: storageKey,
144
+ storageKey,
145
+ sha256,
146
+ contentType: resolvedContentType,
147
+ updatedAt: new Date().toISOString(),
148
+ };
171
149
  await BrandingConfig.update({ id: brand.id }, { logo: meta });
172
- return { hash: sha256, gridFsId, contentType: resolvedContentType, updatedAt: meta.updatedAt };
150
+ return { hash: sha256, gridFsId: storageKey, storageKey, contentType: resolvedContentType, updatedAt: meta.updatedAt };
173
151
  }
174
- /** Retrieve stored binary (interim). */
175
152
  getBinary(id) {
176
153
  return this.getFromCache(id);
177
154
  }
178
- /** Retrieve stored binary from persistent storage (GridFS) if available. */
179
155
  async getBinaryAsync(id) {
180
- // Prefer in-memory cache first
181
156
  const mem = this.getFromCache(id);
182
157
  if (mem)
183
158
  return mem;
184
159
  try {
185
- const bucket = this.getBucket();
186
- if (!bucket)
187
- return null;
160
+ const bytes = await StorageManagerService.primaryDisk().getBytes(id);
161
+ const buf = Buffer.from(bytes);
162
+ this.setCache(id, buf);
163
+ return buf;
164
+ }
165
+ catch (error) {
166
+ if (!this.isStorageNotFoundError(error)) {
167
+ sails.log.warn('BrandingLogoService.getBinaryAsync storage read failed:', error);
168
+ }
169
+ if (this.isLegacyGridFsObjectId(id)) {
170
+ return this.getLegacyGridFsBinary(id);
171
+ }
172
+ return null;
173
+ }
174
+ }
175
+ async getLegacyGridFsBinary(id) {
176
+ const datastores = sails.config?.datastores;
177
+ const url = datastores?.mongodb?.url;
178
+ if (!url) {
179
+ return null;
180
+ }
181
+ const client = await mongodb_1.MongoClient.connect(url, {});
182
+ try {
183
+ const bucket = new mongodb_1.GridFSBucket(client.db(), { bucketName: 'fs' });
188
184
  const chunks = [];
189
185
  await new Promise((resolve, reject) => {
190
- const dl = bucket.openDownloadStreamByName(id, { revision: -1 }); // latest
191
- dl.on('data', (d) => chunks.push(d));
192
- dl.on('error', reject);
193
- dl.on('end', () => resolve());
186
+ bucket.openDownloadStream(new mongodb_1.ObjectId(id))
187
+ .on('data', (chunk) => chunks.push(Buffer.from(chunk)))
188
+ .on('error', reject)
189
+ .on('end', resolve);
194
190
  });
195
- if (chunks.length === 0)
196
- return null;
197
191
  const buf = Buffer.concat(chunks);
198
- // Populate cache for subsequent reads
199
192
  this.setCache(id, buf);
200
193
  return buf;
201
194
  }
202
- catch (_e) {
195
+ catch (error) {
196
+ if (!this.isStorageNotFoundError(error)) {
197
+ sails.log.warn('BrandingLogoService.getLegacyGridFsBinary read failed:', error);
198
+ }
203
199
  return null;
204
200
  }
201
+ finally {
202
+ await client.close();
203
+ }
205
204
  }
206
205
  };
207
206
  BrandingLogo = __decorate([
@@ -209,4 +208,4 @@ var Services;
209
208
  ], BrandingLogo);
210
209
  Services.BrandingLogo = BrandingLogo;
211
210
  })(Services || (exports.Services = Services = {}));
212
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQnJhbmRpbmdMb2dvU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9CcmFuZGluZ0xvZ29TZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLGdEQUEwRDtBQUMxRCxzR0FBeUY7QUFDekYsb0RBQTRCO0FBQzVCLHFDQUEyQztBQWlCM0MsK0RBQStEO0FBQy9ELHNEQUFzRDtBQUl0RCxJQUFpQixRQUFRLENBME14QjtBQTFNRCxXQUFpQixRQUFRO0lBRXZCLElBQWEsWUFBWSxHQUF6QixNQUFhLFlBQWEsU0FBUSxzQkFBWSxDQUFDLElBQUksQ0FBQyxPQUFPO1FBRXpELDZEQUE2RDtRQUNyRCxZQUFZLEdBQXdCLElBQUksQ0FBQztRQUVqRCx1REFBdUQ7UUFDL0MsV0FBVyxHQUF5RCxFQUFFLENBQUM7UUFFdkUsYUFBYTtZQUNuQixNQUFNLHlCQUF5QixHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQztZQUN0RCxvQkFBb0I7WUFDcEIsTUFBTSxVQUFVLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsZ0NBQWdDLEVBQUcseUJBQXlCLENBQUMsQ0FBQztZQUM5RixJQUFJLE9BQU8sVUFBVSxLQUFLLFFBQVEsSUFBSSxVQUFVLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3JELE9BQU8sVUFBVSxDQUFDO1lBQ3BCLENBQUM7WUFDRCxPQUFPLHlCQUF5QixDQUFDO1FBQ25DLENBQUM7UUFFTyxtQkFBbUIsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUMxQyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDakMsS0FBSyxNQUFNLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7Z0JB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
211
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQnJhbmRpbmdMb2dvU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9CcmFuZGluZ0xvZ29TZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLGdEQUEwRDtBQUMxRCxzR0FBeUY7QUFDekYsb0RBQTRCO0FBQzVCLHFDQUE4RDtBQUU5RDs7OztHQUlHO0FBRUgsSUFBaUIsUUFBUSxDQWdOeEI7QUFoTkQsV0FBaUIsUUFBUTtJQUV2QixJQUFhLFlBQVksR0FBekIsTUFBYSxZQUFhLFNBQVEsc0JBQVksQ0FBQyxJQUFJLENBQUMsT0FBTztRQUN6RCxpRUFBaUU7UUFDekQsV0FBVyxHQUF5RCxFQUFFLENBQUM7UUFFdkUsYUFBYTtZQUNuQixNQUFNLHlCQUF5QixHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQztZQUN0RCxNQUFNLFVBQVUsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxnQ0FBZ0MsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDO1lBQzdGLElBQUksT0FBTyxVQUFVLEtBQUssUUFBUSxJQUFJLFVBQVUsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDckQsT0FBTyxVQUFVLENBQUM7WUFDcEIsQ0FBQztZQUNELE9BQU8seUJBQXlCLENBQUM7UUFDbkMsQ0FBQztRQUVPLG1CQUFtQixDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQzFDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNqQyxLQUFLLE1BQU0sQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztnQkFDM0QsSUFBSSxHQUFHLEdBQUcsS0FBSyxDQUFDLFFBQVEsR0FBRyxHQUFHLEVBQUUsQ0FBQztvQkFDL0IsT0FBTyxJ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
@@ -1 +1 @@
1
- {"version":3,"file":"BrandingService.d.ts","sourceRoot":"","sources":["../../src/services/BrandingService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BrandingService.d.ts","sourceRoot":"","sources":["../../src/services/BrandingService.ts"],"names":[],"mappings":"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"}
@@ -205,35 +205,7 @@ var Services;
205
205
  }
206
206
  /** Save draft variables after whitelist + contrast validation */
207
207
  async saveDraft(input) {
208
- const whitelist = _.get(sails, 'config.branding.variableAllowList', []) || [];
209
- const normalized = {};
210
- for (const [k, v] of Object.entries(input.variables || {})) {
211
- const norm = k.startsWith('$') ? k.slice(1) : k;
212
- if (!whitelist.includes(norm)) {
213
- throw new Error('Invalid variable key: ' + norm);
214
- }
215
- normalized[norm] = v;
216
- }
217
- // Contrast validation: only enforce on pairs where both fg/bg provided in this input.
218
- const colorKeysInInput = new Set(Object.keys(normalized));
219
- const contrastPairKeyMap = {
220
- 'primary-text-on-primary-bg': ['primary-text-color', 'primary-color'],
221
- 'secondary-text-on-secondary-bg': ['secondary-text-color', 'secondary-color'],
222
- 'accent-text-on-accent-bg': ['accent-text-color', 'accent-color'],
223
- 'body-text-on-surface': ['body-text-color', 'surface-color'],
224
- 'heading-text-on-surface': ['heading-text-color', 'surface-color']
225
- };
226
- const relevantPairProvided = Object.values(contrastPairKeyMap).some(([a, b]) => colorKeysInInput.has(a) && colorKeysInInput.has(b));
227
- if (relevantPairProvided) {
228
- const contrast = await ContrastService.validate(normalized);
229
- const filteredViolations = contrast.violations.filter(v => {
230
- const keys = contrastPairKeyMap[v.pair];
231
- return keys && keys.every(k => colorKeysInInput.has(k));
232
- });
233
- if (filteredViolations.length) {
234
- throw new Error('contrast-violation: ' + filteredViolations.map(v => v.pair).join(','));
235
- }
236
- }
208
+ const normalized = BrandingThemeCssService.validateVariables(input.variables || {});
237
209
  const brand = await BrandingConfig.findOne({ name: input.branding });
238
210
  if (!brand)
239
211
  throw new Error('branding-not-found');
@@ -246,7 +218,7 @@ var Services;
246
218
  const brand = await BrandingConfig.findOne({ name: branding });
247
219
  if (!brand)
248
220
  throw new Error('branding-not-found');
249
- const { css, hash } = await SassCompilerService.compile(brand.variables || {});
221
+ const { css, hash } = BrandingThemeCssService.generate(brand.variables || {});
250
222
  const token = crypto.randomBytes(16).toString('hex');
251
223
  const name = `branding-preview:${token}`;
252
224
  const ts = Math.floor(Date.now() / 1000);
@@ -278,7 +250,7 @@ var Services;
278
250
  if (opts?.expectedVersion != null && brand.version != null && opts.expectedVersion !== brand.version) {
279
251
  throw new Error('publish-conflict');
280
252
  }
281
- const { css, hash } = await SassCompilerService.compile(brand.variables || {});
253
+ const { css, hash } = BrandingThemeCssService.generate(brand.variables || {});
282
254
  // Idempotency: if hash unchanged from last published, do not create new history/version
283
255
  if (brand.hash && brand.hash === hash) {
284
256
  return { version: brand.version || 0, hash: brand.hash, idempotent: true };
@@ -329,4 +301,4 @@ var Services;
329
301
  }
330
302
  Services.Branding = Branding;
331
303
  })(Services || (exports.Services = Services = {}));
332
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQnJhbmRpbmdTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL0JyYW5kaW5nU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsMEZBQTBGO0FBQzFGLEVBQUU7QUFDRiw2QkFBNkI7QUFDN0IsMEJBQTBCO0FBQzFCLEVBQUU7QUFDRix1RUFBdUU7QUFDdkUsdUVBQXVFO0FBQ3ZFLG9FQUFvRTtBQUNwRSxzQ0FBc0M7QUFDdEMsRUFBRTtBQUNGLGtFQUFrRTtBQUNsRSxpRUFBaUU7QUFDakUsZ0VBQWdFO0FBQ2hFLCtDQUErQztBQUMvQyxFQUFFO0FBQ0YsMEVBQTBFO0FBQzFFLDBFQUEwRTtBQUMxRSw4REFBOEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUU5RCwrQkFBa0Q7QUFDbEQsOENBQXFEO0FBQ3JELGdEQUFzRDtBQUd0RCwrQ0FBaUM7QUFHakMsSUFBaUIsUUFBUSxDQWtTeEI7QUFsU0QsV0FBaUIsUUFBUTtJQUN2Qjs7OztPQUlHO0lBQ0gsTUFBYSxRQUFTLFNBQVEsc0JBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTztRQUU5QixnQkFBZ0IsR0FBYTtZQUM5QyxXQUFXO1lBQ1gscUJBQXFCO1lBQ3JCLFlBQVk7WUFDWixVQUFVO1lBQ1YsY0FBYztZQUNkLHVCQUF1QjtZQUN2QixxQkFBcUI7WUFDckIsaUJBQWlCO1lBQ2pCLGtCQUFrQjtZQUNsQixhQUFhO1lBQ2IsZ0JBQWdCO1lBQ2hCLGNBQWM7WUFDZCxtQkFBbUI7WUFDbkIsV0FBVztZQUNYLFNBQVM7WUFDVCxjQUFjO1lBQ2QsU0FBUztZQUNULFVBQVU7WUFDVixzQkFBc0I7U0FDdkIsQ0FBQztRQUVRLGtCQUFrQixHQUFhLEVBQUUsQ0FBQTtRQUNqQyxTQUFTLEdBQW9CLEVBQUUsQ0FBQTtRQUMvQixNQUFNLEdBQUcsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7UUFFaEMsU0FBUyxHQUFH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
304
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQnJhbmRpbmdTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NlcnZpY2VzL0JyYW5kaW5nU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsMEZBQTBGO0FBQzFGLEVBQUU7QUFDRiw2QkFBNkI7QUFDN0IsMEJBQTBCO0FBQzFCLEVBQUU7QUFDRix1RUFBdUU7QUFDdkUsdUVBQXVFO0FBQ3ZFLG9FQUFvRTtBQUNwRSxzQ0FBc0M7QUFDdEMsRUFBRTtBQUNGLGtFQUFrRTtBQUNsRSxpRUFBaUU7QUFDakUsZ0VBQWdFO0FBQ2hFLCtDQUErQztBQUMvQyxFQUFFO0FBQ0YsMEVBQTBFO0FBQzFFLDBFQUEwRTtBQUMxRSw4REFBOEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUU5RCwrQkFBa0Q7QUFDbEQsOENBQXFEO0FBQ3JELGdEQUFzRDtBQUd0RCwrQ0FBaUM7QUFLakMsSUFBaUIsUUFBUSxDQXNReEI7QUF0UUQsV0FBaUIsUUFBUTtJQUN2Qjs7OztPQUlHO0lBQ0gsTUFBYSxRQUFTLFNBQVEsc0JBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTztRQUU5QixnQkFBZ0IsR0FBYTtZQUM5QyxXQUFXO1lBQ1gscUJBQXFCO1lBQ3JCLFlBQVk7WUFDWixVQUFVO1lBQ1YsY0FBYztZQUNkLHVCQUF1QjtZQUN2QixxQkFBcUI7WUFDckIsaUJBQWlCO1lBQ2pCLGtCQUFrQjtZQUNsQixhQUFhO1lBQ2IsZ0JBQWdCO1lBQ2hCLGNBQWM7WUFDZCxtQkFBbUI7WUFDbkIsV0FBVztZQUNYLFNBQVM7WUFDVCxjQUFjO1lBQ2QsU0FBUztZQUNULFVBQVU7WUFDVixzQkFBc0I7U0FDdkIsQ0FBQztRQUVRLGtCQUFrQixHQUFhLEVBQUUsQ0FBQTtRQUNqQyxTQUFTLEdBQW9CLEVBQUUsQ0FBQTtRQUMvQixNQUFNLEdBQUcsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7UUFFaEMsU0FBUyxHQUFH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
@@ -0,0 +1,21 @@
1
+ import { Services as services } from '../CoreService';
2
+ export declare namespace Services {
3
+ class BrandingThemeCss extends services.Core.Service {
4
+ getAllowedVariableKeys(): string[];
5
+ normalizeHex(value: string): string;
6
+ private resolveToken;
7
+ private normalizeVariables;
8
+ validateVariables(variables: Record<string, string>): Record<string, string>;
9
+ private getVariableValue;
10
+ private buildRootCss;
11
+ private buildCompatibilityCss;
12
+ generate(variables: Record<string, string>): {
13
+ css: string;
14
+ hash: string;
15
+ };
16
+ }
17
+ }
18
+ declare global {
19
+ let BrandingThemeCssService: Services.BrandingThemeCss;
20
+ }
21
+ //# sourceMappingURL=BrandingThemeCssService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BrandingThemeCssService.d.ts","sourceRoot":"","sources":["../../src/services/BrandingThemeCssService.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAWtD,yBAAiB,QAAQ,CAAC;IACxB,MACa,gBAAiB,SAAQ,QAAQ,CAAC,IAAI,CAAC,OAAO;QACzD,sBAAsB,IAAI,MAAM,EAAE;QAIlC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;QAanC,OAAO,CAAC,YAAY;QAKpB,OAAO,CAAC,kBAAkB;QAyB1B,iBAAiB,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;QAI5E,OAAO,CAAC,gBAAgB;QAIxB,OAAO,CAAC,YAAY;QAapB,OAAO,CAAC,qBAAqB;QAmB7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE;KAM3E;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,IAAI,uBAAuB,EAAE,QAAQ,CAAC,gBAAgB,CAAC;CACxD"}
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.Services = void 0;
13
+ const crypto_1 = __importDefault(require("crypto"));
14
+ const PopulateExportedMethods_decorator_1 = require("../decorator/PopulateExportedMethods.decorator");
15
+ const CoreService_1 = require("../CoreService");
16
+ const BrandingThemeTokens_1 = require("./BrandingThemeTokens");
17
+ const compatTokenKeys = ['primary', 'secondary', 'success', 'info', 'warning', 'danger', 'light', 'dark'];
18
+ const compatTokens = BrandingThemeTokens_1.brandingThemeTokens.filter(token => compatTokenKeys.includes(token.key));
19
+ var Services;
20
+ (function (Services) {
21
+ let BrandingThemeCss = class BrandingThemeCss extends CoreService_1.Services.Core.Service {
22
+ getAllowedVariableKeys() {
23
+ return Array.from(BrandingThemeTokens_1.brandingThemeEditableTokenMap.keys());
24
+ }
25
+ normalizeHex(value) {
26
+ const trimmed = value.trim();
27
+ const match = /^#([0-9a-f]{3}|[0-9a-f]{6})$/i.exec(trimmed);
28
+ if (!match) {
29
+ return trimmed;
30
+ }
31
+ const hex = match[1].toLowerCase();
32
+ if (hex.length === 3) {
33
+ return `#${hex.split('').map(char => char + char).join('')}`;
34
+ }
35
+ return `#${hex}`;
36
+ }
37
+ resolveToken(rawKey) {
38
+ const key = rawKey.startsWith('$') ? rawKey.slice(1) : rawKey;
39
+ return BrandingThemeTokens_1.brandingThemeEditableTokenMap.get(key) || BrandingThemeTokens_1.brandingThemeEditableAliasMap.get(key);
40
+ }
41
+ normalizeVariables(variables, opts) {
42
+ const normalized = {};
43
+ for (const [rawKey, rawValue] of Object.entries(variables || {})) {
44
+ const token = this.resolveToken(rawKey);
45
+ if (!token) {
46
+ if (opts?.ignoreUnknownKeys) {
47
+ continue;
48
+ }
49
+ throw new Error(`Invalid variable key: ${rawKey.startsWith('$') ? rawKey.slice(1) : rawKey}`);
50
+ }
51
+ if (typeof rawValue !== 'string') {
52
+ throw new Error(`Invalid variable value: ${token.key}`);
53
+ }
54
+ const value = this.normalizeHex(rawValue);
55
+ if (!/^#[0-9a-f]{6}$/.test(value)) {
56
+ if (opts?.ignoreUnknownKeys) {
57
+ continue;
58
+ }
59
+ throw new Error(`Invalid variable value: ${token.key}`);
60
+ }
61
+ normalized[token.key] = value;
62
+ }
63
+ return normalized;
64
+ }
65
+ validateVariables(variables) {
66
+ return this.normalizeVariables(variables);
67
+ }
68
+ getVariableValue(normalized, token) {
69
+ return normalized[token.key] || token.defaultValue;
70
+ }
71
+ buildRootCss(normalized) {
72
+ const variableLines = BrandingThemeTokens_1.brandingThemeTokens.map(token => {
73
+ const value = this.getVariableValue(normalized, token);
74
+ return ` ${token.cssVar}: ${value};`;
75
+ });
76
+ const lines = [':root {'];
77
+ lines.push(...variableLines);
78
+ lines.push('}', '', ':host {');
79
+ lines.push(...variableLines);
80
+ lines.push('}');
81
+ return lines.join('\n');
82
+ }
83
+ buildCompatibilityCss() {
84
+ return compatTokens.flatMap(token => [
85
+ `.btn-${token.key} {`,
86
+ ` --bs-btn-bg: var(--rb-${token.key});`,
87
+ ` --bs-btn-border-color: var(--rb-${token.key});`,
88
+ ` --bs-btn-hover-bg: var(--rb-${token.key});`,
89
+ ` --bs-btn-hover-border-color: var(--rb-${token.key});`,
90
+ ` --bs-btn-active-bg: var(--rb-${token.key});`,
91
+ ` --bs-btn-active-border-color: var(--rb-${token.key});`,
92
+ '}',
93
+ `.text-${token.key} {`,
94
+ ` color: var(--rb-${token.key}) !important;`,
95
+ '}',
96
+ `.bg-${token.key} {`,
97
+ ` background-color: var(--rb-${token.key}) !important;`,
98
+ '}',
99
+ ]).join('\n');
100
+ }
101
+ generate(variables) {
102
+ const normalized = this.normalizeVariables(variables || {}, { ignoreUnknownKeys: true });
103
+ const css = [this.buildRootCss(normalized), this.buildCompatibilityCss()].join('\n\n');
104
+ const hash = crypto_1.default.createHash('sha256').update(css).digest('hex').slice(0, 32);
105
+ return { css, hash };
106
+ }
107
+ };
108
+ BrandingThemeCss = __decorate([
109
+ PopulateExportedMethods_decorator_1.PopulateExportedMethods
110
+ ], BrandingThemeCss);
111
+ Services.BrandingThemeCss = BrandingThemeCss;
112
+ })(Services || (exports.Services = Services = {}));
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQnJhbmRpbmdUaGVtZUNzc1NlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZXMvQnJhbmRpbmdUaGVtZUNzc1NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsb0RBQTRCO0FBQzVCLHNHQUF5RjtBQUN6RixnREFBc0Q7QUFDdEQsK0RBSytCO0FBRS9CLE1BQU0sZUFBZSxHQUFHLENBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQzFHLE1BQU0sWUFBWSxHQUFHLHlDQUFtQixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFFOUYsSUFBaUIsUUFBUSxDQWlHeEI7QUFqR0QsV0FBaUIsUUFBUTtJQUV2QixJQUFhLGdCQUFnQixHQUE3QixNQUFhLGdCQUFpQixTQUFRLHNCQUFRLENBQUMsSUFBSSxDQUFDLE9BQU87UUFDekQsc0JBQXNCO1lBQ3BCLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxtREFBNkIsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzFELENBQUM7UUFFRCxZQUFZLENBQUMsS0FBYTtZQUN4QixNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDN0IsTUFBTSxLQUFLLEdBQUcsK0JBQStCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzVELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDWCxPQUFPLE9BQU8sQ0FBQztZQUNqQixDQUFDO1lBQ0QsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ25DLElBQUksR0FBRyxDQUFDLE1B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
@@ -0,0 +1,16 @@
1
+ export interface BrandingThemeToken {
2
+ key: string;
3
+ cssVar: string;
4
+ defaultValue: string;
5
+ aliases?: string[];
6
+ exposed?: boolean;
7
+ }
8
+ export declare const brandingThemeTokens: BrandingThemeToken[];
9
+ export declare const brandingThemeAllowedVariableKeys: string[];
10
+ export declare const brandingThemeAllowedVariableNames: string[];
11
+ export declare const brandingThemeEditableTokens: BrandingThemeToken[];
12
+ export declare const brandingThemeEditableTokenMap: Map<string, BrandingThemeToken>;
13
+ export declare const brandingThemeEditableAliasMap: Map<string, BrandingThemeToken>;
14
+ export declare const brandingThemeTokenMap: Map<string, BrandingThemeToken>;
15
+ export declare const brandingThemeAliasMap: Map<string, BrandingThemeToken>;
16
+ //# sourceMappingURL=BrandingThemeTokens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BrandingThemeTokens.d.ts","sourceRoot":"","sources":["../../src/services/BrandingThemeTokens.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,eAAO,MAAM,mBAAmB,EAAE,kBAAkB,EAkEnD,CAAC;AAEF,eAAO,MAAM,gCAAgC,UAEnB,CAAC;AAE3B,eAAO,MAAM,iCAAiC,UAEY,CAAC;AAE3D,eAAO,MAAM,2BAA2B,sBAA+D,CAAC;AAExG,eAAO,MAAM,6BAA6B,iCAAwE,CAAC;AACnH,eAAO,MAAM,6BAA6B,iCAEzC,CAAC;AAEF,eAAO,MAAM,qBAAqB,iCAAgE,CAAC;AACnG,eAAO,MAAM,qBAAqB,iCAEjC,CAAC"}