@researchdatabox/redbox-core 5.1.0-beta.12573 → 5.1.0-beta.13939

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 (385) hide show
  1. package/browser/redoc-library-loader.cjs +20 -0
  2. package/browser/redoc-standalone.js +143 -0
  3. package/dist/CoreBase.d.ts +43 -0
  4. package/dist/CoreBase.d.ts.map +1 -0
  5. package/dist/CoreBase.js +101 -0
  6. package/dist/CoreController.d.ts +23 -31
  7. package/dist/CoreController.d.ts.map +1 -1
  8. package/dist/CoreController.js +142 -131
  9. package/dist/CoreService.d.ts +13 -33
  10. package/dist/CoreService.d.ts.map +1 -1
  11. package/dist/CoreService.js +69 -95
  12. package/dist/HarvestRunService.d.ts +9 -1
  13. package/dist/HarvestRunService.d.ts.map +1 -1
  14. package/dist/HarvestRunService.js +1 -1
  15. package/dist/RecordRouteForm.d.ts +49 -0
  16. package/dist/RecordRouteForm.d.ts.map +1 -0
  17. package/dist/RecordRouteForm.js +188 -0
  18. package/dist/RecordSaveResponse.d.ts +4 -0
  19. package/dist/RecordSaveResponse.d.ts.map +1 -1
  20. package/dist/RecordSaveResponse.js +3 -2
  21. package/dist/action-execution/executor.d.ts +1 -1
  22. package/dist/action-execution/executor.d.ts.map +1 -1
  23. package/dist/action-execution/executor.js +19 -20
  24. package/dist/action-execution/legacy-result.d.ts +1 -1
  25. package/dist/action-execution/legacy-result.d.ts.map +1 -1
  26. package/dist/action-execution/legacy-result.js +43 -10
  27. package/dist/action-execution/types.d.ts +3 -3
  28. package/dist/action-execution/types.d.ts.map +1 -1
  29. package/dist/api-routes/groups/harvest-runs.d.ts +1 -0
  30. package/dist/api-routes/groups/harvest-runs.d.ts.map +1 -1
  31. package/dist/api-routes/groups/harvest-runs.js +24 -3
  32. package/dist/api-routes/groups/records.d.ts.map +1 -1
  33. package/dist/api-routes/groups/records.js +30 -21
  34. package/dist/api-routes/groups/reports.d.ts.map +1 -1
  35. package/dist/api-routes/groups/reports.js +3 -2
  36. package/dist/api-routes/helpers.d.ts +1 -1
  37. package/dist/api-routes/helpers.d.ts.map +1 -1
  38. package/dist/api-routes/helpers.js +10 -6
  39. package/dist/api-routes/openapi.d.ts.map +1 -1
  40. package/dist/api-routes/openapi.js +15 -1
  41. package/dist/api-routes/request-extraction.js +2 -2
  42. package/dist/api-routes/schemas/common.d.ts.map +1 -1
  43. package/dist/api-routes/schemas/common.js +7 -2
  44. package/dist/api-routes/schemas/responses.d.ts +38 -12
  45. package/dist/api-routes/schemas/responses.d.ts.map +1 -1
  46. package/dist/api-routes/schemas/responses.js +11 -1
  47. package/dist/bootstrap.d.ts.map +1 -1
  48. package/dist/bootstrap.js +13 -3
  49. package/dist/config/agendaQueue.config.d.ts +5 -0
  50. package/dist/config/agendaQueue.config.d.ts.map +1 -1
  51. package/dist/config/agendaQueue.config.js +29 -2
  52. package/dist/config/appConfigSecrets.config.d.ts +14 -0
  53. package/dist/config/appConfigSecrets.config.d.ts.map +1 -0
  54. package/dist/config/appConfigSecrets.config.js +8 -0
  55. package/dist/config/brandingConfigurationDefaults.config.d.ts +16 -3
  56. package/dist/config/brandingConfigurationDefaults.config.d.ts.map +1 -1
  57. package/dist/config/brandingConfigurationDefaults.config.js +1 -1
  58. package/dist/config/dompurify.config.d.ts.map +1 -1
  59. package/dist/config/dompurify.config.js +3 -2
  60. package/dist/config/harvestRuns.config.d.ts +7 -0
  61. package/dist/config/harvestRuns.config.d.ts.map +1 -1
  62. package/dist/config/harvestRuns.config.js +2 -1
  63. package/dist/config/http.config.d.ts +3 -2
  64. package/dist/config/http.config.d.ts.map +1 -1
  65. package/dist/config/http.config.js +108 -12
  66. package/dist/config/i18n.config.d.ts +3 -0
  67. package/dist/config/i18n.config.d.ts.map +1 -1
  68. package/dist/config/i18n.config.js +1 -1
  69. package/dist/config/index.d.ts +4 -0
  70. package/dist/config/index.d.ts.map +1 -1
  71. package/dist/config/index.js +4 -1
  72. package/dist/config/log.config.d.ts +33 -5
  73. package/dist/config/log.config.d.ts.map +1 -1
  74. package/dist/config/log.config.js +58 -54
  75. package/dist/config/record.config.d.ts +17 -0
  76. package/dist/config/record.config.d.ts.map +1 -1
  77. package/dist/config/record.config.js +7 -1
  78. package/dist/config/routes.config.d.ts.map +1 -1
  79. package/dist/config/routes.config.js +11 -2
  80. package/dist/config/session.config.d.ts +2 -2
  81. package/dist/config/session.config.d.ts.map +1 -1
  82. package/dist/config/solr.config.d.ts +8 -0
  83. package/dist/config/solr.config.d.ts.map +1 -1
  84. package/dist/config/solr.config.js +15 -2
  85. package/dist/config/storage.config.d.ts.map +1 -1
  86. package/dist/config/storage.config.js +9 -1
  87. package/dist/config/vocab.config.d.ts +1 -0
  88. package/dist/config/vocab.config.d.ts.map +1 -1
  89. package/dist/config/vocab.config.js +3 -3
  90. package/dist/config/webpack.config.d.ts.map +1 -1
  91. package/dist/config/webpack.config.js +23 -5
  92. package/dist/configmodels/ConfigModels.d.ts.map +1 -1
  93. package/dist/configmodels/ConfigModels.js +3 -2
  94. package/dist/configmodels/FigsharePublishing.d.ts +1 -1
  95. package/dist/controllers/ActionController.d.ts.map +1 -1
  96. package/dist/controllers/ActionController.js +8 -2
  97. package/dist/controllers/BrandingAppController.d.ts.map +1 -1
  98. package/dist/controllers/BrandingAppController.js +21 -2
  99. package/dist/controllers/DynamicAssetController.d.ts +9 -10
  100. package/dist/controllers/DynamicAssetController.d.ts.map +1 -1
  101. package/dist/controllers/DynamicAssetController.js +67 -53
  102. package/dist/controllers/EmailController.d.ts.map +1 -1
  103. package/dist/controllers/EmailController.js +32 -14
  104. package/dist/controllers/ExportController.d.ts +9 -0
  105. package/dist/controllers/ExportController.d.ts.map +1 -1
  106. package/dist/controllers/ExportController.js +154 -3
  107. package/dist/controllers/FormVocabularyController.d.ts.map +1 -1
  108. package/dist/controllers/FormVocabularyController.js +62 -33
  109. package/dist/controllers/RecordAuditController.d.ts.map +1 -1
  110. package/dist/controllers/RecordAuditController.js +4 -2
  111. package/dist/controllers/RecordController.d.ts +4 -1
  112. package/dist/controllers/RecordController.d.ts.map +1 -1
  113. package/dist/controllers/RecordController.js +248 -114
  114. package/dist/controllers/ReportController.d.ts +1 -0
  115. package/dist/controllers/ReportController.d.ts.map +1 -1
  116. package/dist/controllers/ReportController.js +40 -12
  117. package/dist/controllers/TranslationController.d.ts.map +1 -1
  118. package/dist/controllers/TranslationController.js +56 -16
  119. package/dist/controllers/UserController.d.ts +3 -1
  120. package/dist/controllers/UserController.d.ts.map +1 -1
  121. package/dist/controllers/UserController.js +178 -76
  122. package/dist/controllers/VocabularyController.d.ts +0 -1
  123. package/dist/controllers/VocabularyController.d.ts.map +1 -1
  124. package/dist/controllers/VocabularyController.js +18 -16
  125. package/dist/controllers/webservice/AdminController.d.ts.map +1 -1
  126. package/dist/controllers/webservice/AdminController.js +2 -5
  127. package/dist/controllers/webservice/HarvestRunController.d.ts +1 -0
  128. package/dist/controllers/webservice/HarvestRunController.d.ts.map +1 -1
  129. package/dist/controllers/webservice/HarvestRunController.js +46 -2
  130. package/dist/controllers/webservice/IntegrationAuditController.d.ts +0 -1
  131. package/dist/controllers/webservice/IntegrationAuditController.d.ts.map +1 -1
  132. package/dist/controllers/webservice/IntegrationAuditController.js +13 -6
  133. package/dist/controllers/webservice/RecordController.d.ts +1 -1
  134. package/dist/controllers/webservice/RecordController.d.ts.map +1 -1
  135. package/dist/controllers/webservice/RecordController.js +13 -4
  136. package/dist/controllers/webservice/ReportController.d.ts.map +1 -1
  137. package/dist/controllers/webservice/ReportController.js +15 -10
  138. package/dist/controllers/webservice/UserManagementController.d.ts.map +1 -1
  139. package/dist/controllers/webservice/UserManagementController.js +17 -8
  140. package/dist/controllers/webservice/VocabularyController.d.ts.map +1 -1
  141. package/dist/controllers/webservice/VocabularyController.js +19 -13
  142. package/dist/form-config/generated-view-only.d.ts.map +1 -1
  143. package/dist/form-config/generated-view-only.js +12 -1
  144. package/dist/index.d.ts +2 -1
  145. package/dist/index.d.ts.map +1 -1
  146. package/dist/index.js +1 -1
  147. package/dist/loader/index.d.ts +1 -0
  148. package/dist/loader/index.d.ts.map +1 -1
  149. package/dist/loader/index.js +56 -11
  150. package/dist/middleware/redboxSession.d.ts.map +1 -1
  151. package/dist/middleware/redboxSession.js +15 -3
  152. package/dist/middleware/requestChronicle.d.ts +14 -0
  153. package/dist/middleware/requestChronicle.d.ts.map +1 -0
  154. package/dist/middleware/requestChronicle.js +73 -0
  155. package/dist/model/BuildResponse.d.ts +7 -5
  156. package/dist/model/BuildResponse.d.ts.map +1 -1
  157. package/dist/model/RBValidationError.d.ts +18 -5
  158. package/dist/model/RBValidationError.d.ts.map +1 -1
  159. package/dist/model/RBValidationError.js +56 -17
  160. package/dist/model/storage/ExportJobModel.d.ts +33 -0
  161. package/dist/model/storage/ExportJobModel.d.ts.map +1 -0
  162. package/dist/model/storage/ExportJobModel.js +3 -0
  163. package/dist/model/storage/HarvestRunModel.d.ts +20 -0
  164. package/dist/model/storage/HarvestRunModel.d.ts.map +1 -1
  165. package/dist/model/storage/HarvestRunModel.js +2 -1
  166. package/dist/model/storage/index.d.ts +2 -1
  167. package/dist/model/storage/index.d.ts.map +1 -1
  168. package/dist/model/storage/index.js +1 -1
  169. package/dist/policies/checkAuth.d.ts.map +1 -1
  170. package/dist/policies/checkAuth.js +3 -2
  171. package/dist/policies/contentSecurityPolicy.d.ts.map +1 -1
  172. package/dist/policies/contentSecurityPolicy.js +7 -2
  173. package/dist/policies/noCache.d.ts.map +1 -1
  174. package/dist/policies/noCache.js +4 -3
  175. package/dist/record-contract/record-contract-compiler.d.ts.map +1 -1
  176. package/dist/record-contract/record-contract-compiler.js +3 -19
  177. package/dist/record-contract/record-contract-context.d.ts +2 -0
  178. package/dist/record-contract/record-contract-context.d.ts.map +1 -1
  179. package/dist/record-contract/record-contract-context.js +1 -1
  180. package/dist/responses/notFound.d.ts.map +1 -1
  181. package/dist/responses/notFound.js +6 -1
  182. package/dist/responses/serverError.d.ts.map +1 -1
  183. package/dist/responses/serverError.js +13 -3
  184. package/dist/sails.d.ts +27 -17
  185. package/dist/sails.d.ts.map +1 -1
  186. package/dist/services/AgendaQueueService.d.ts +11 -2
  187. package/dist/services/AgendaQueueService.d.ts.map +1 -1
  188. package/dist/services/AgendaQueueService.js +163 -51
  189. package/dist/services/AppConfigSecrets.d.ts +66 -0
  190. package/dist/services/AppConfigSecrets.d.ts.map +1 -0
  191. package/dist/services/AppConfigSecrets.js +396 -0
  192. package/dist/services/AppConfigService.d.ts +16 -1
  193. package/dist/services/AppConfigService.d.ts.map +1 -1
  194. package/dist/services/AppConfigService.js +283 -33
  195. package/dist/services/BrandingThemeCssService.d.ts.map +1 -1
  196. package/dist/services/BrandingThemeCssService.js +32 -3
  197. package/dist/services/BrandingThemeTokens.d.ts.map +1 -1
  198. package/dist/services/BrandingThemeTokens.js +10 -1
  199. package/dist/services/ConfigService.d.ts +1 -0
  200. package/dist/services/ConfigService.d.ts.map +1 -1
  201. package/dist/services/ConfigService.js +24 -9
  202. package/dist/services/DomSanitizerService.d.ts.map +1 -1
  203. package/dist/services/DomSanitizerService.js +19 -6
  204. package/dist/services/EmailService.d.ts +10 -2
  205. package/dist/services/EmailService.d.ts.map +1 -1
  206. package/dist/services/EmailService.js +53 -53
  207. package/dist/services/ExportService.d.ts +62 -0
  208. package/dist/services/ExportService.d.ts.map +1 -0
  209. package/dist/services/ExportService.js +609 -0
  210. package/dist/services/FormVocabularyService.d.ts.map +1 -1
  211. package/dist/services/FormVocabularyService.js +14 -4
  212. package/dist/services/FormsService.d.ts +3 -0
  213. package/dist/services/FormsService.d.ts.map +1 -1
  214. package/dist/services/FormsService.js +10 -3
  215. package/dist/services/HarvestRunService.d.ts +23 -1
  216. package/dist/services/HarvestRunService.d.ts.map +1 -1
  217. package/dist/services/HarvestRunService.js +155 -22
  218. package/dist/services/I18nEntriesService.d.ts +5 -0
  219. package/dist/services/I18nEntriesService.d.ts.map +1 -1
  220. package/dist/services/I18nEntriesService.js +55 -3
  221. package/dist/services/NamedQueryService.d.ts +1 -0
  222. package/dist/services/NamedQueryService.d.ts.map +1 -1
  223. package/dist/services/NamedQueryService.js +67 -31
  224. package/dist/services/RDMPService.d.ts.map +1 -1
  225. package/dist/services/RDMPService.js +69 -83
  226. package/dist/services/RaidService.d.ts.map +1 -1
  227. package/dist/services/RaidService.js +45 -11
  228. package/dist/services/RecordSchemaService.d.ts +3 -1
  229. package/dist/services/RecordSchemaService.d.ts.map +1 -1
  230. package/dist/services/RecordSchemaService.js +2 -1
  231. package/dist/services/RecordValidationService.d.ts +3 -0
  232. package/dist/services/RecordValidationService.d.ts.map +1 -1
  233. package/dist/services/RecordValidationService.js +25 -5
  234. package/dist/services/RecordsService.d.ts +10 -1
  235. package/dist/services/RecordsService.d.ts.map +1 -1
  236. package/dist/services/RecordsService.js +194 -93
  237. package/dist/services/ReportsService.d.ts +1 -0
  238. package/dist/services/ReportsService.d.ts.map +1 -1
  239. package/dist/services/ReportsService.js +10 -9
  240. package/dist/services/RvaImportService.d.ts.map +1 -1
  241. package/dist/services/RvaImportService.js +6 -5
  242. package/dist/services/SolrSearchService.d.ts +7 -2
  243. package/dist/services/SolrSearchService.d.ts.map +1 -1
  244. package/dist/services/SolrSearchService.js +205 -81
  245. package/dist/services/StorageManagerService.d.ts +5 -0
  246. package/dist/services/StorageManagerService.d.ts.map +1 -1
  247. package/dist/services/StorageManagerService.js +4 -1
  248. package/dist/services/TriggerService.d.ts.map +1 -1
  249. package/dist/services/TriggerService.js +64 -56
  250. package/dist/services/UsersService.d.ts +13 -1
  251. package/dist/services/UsersService.d.ts.map +1 -1
  252. package/dist/services/UsersService.js +191 -257
  253. package/dist/services/VocabularyService.d.ts +11 -1
  254. package/dist/services/VocabularyService.d.ts.map +1 -1
  255. package/dist/services/VocabularyService.js +120 -24
  256. package/dist/services/doi-v2/http.d.ts +3 -2
  257. package/dist/services/doi-v2/http.d.ts.map +1 -1
  258. package/dist/services/doi-v2/http.js +38 -4
  259. package/dist/services/doi-v2/runtime.d.ts +4 -3
  260. package/dist/services/doi-v2/runtime.d.ts.map +1 -1
  261. package/dist/services/doi-v2/runtime.js +52 -17
  262. package/dist/services/figshare-v2/assets.d.ts +1 -1
  263. package/dist/services/figshare-v2/assets.d.ts.map +1 -1
  264. package/dist/services/figshare-v2/assets.js +1 -1
  265. package/dist/services/figshare-v2/http.d.ts +3 -2
  266. package/dist/services/figshare-v2/http.d.ts.map +1 -1
  267. package/dist/services/figshare-v2/http.js +38 -4
  268. package/dist/services/figshare-v2/observability.d.ts.map +1 -1
  269. package/dist/services/figshare-v2/observability.js +3 -3
  270. package/dist/services/figshare-v2/runtime.d.ts +4 -3
  271. package/dist/services/figshare-v2/runtime.d.ts.map +1 -1
  272. package/dist/services/figshare-v2/runtime.js +48 -13
  273. package/dist/services/index.d.ts +3 -0
  274. package/dist/services/index.d.ts.map +1 -1
  275. package/dist/services/index.js +8 -3
  276. package/dist/services/integration-v2/runtime.d.ts +1 -1
  277. package/dist/services/integration-v2/runtime.d.ts.map +1 -1
  278. package/dist/services/integration-v2/runtime.js +7 -7
  279. package/dist/services/oni-v2/audit.d.ts +3 -2
  280. package/dist/services/oni-v2/audit.d.ts.map +1 -1
  281. package/dist/services/oni-v2/audit.js +38 -4
  282. package/dist/services/oni-v2/bindings.d.ts +1 -1
  283. package/dist/services/oni-v2/bindings.d.ts.map +1 -1
  284. package/dist/services/oni-v2/bindings.js +37 -4
  285. package/dist/services/oni-v2/repository.d.ts +3 -2
  286. package/dist/services/oni-v2/repository.d.ts.map +1 -1
  287. package/dist/services/oni-v2/repository.js +42 -7
  288. package/dist/services/oni-v2/runtime.d.ts +5 -4
  289. package/dist/services/oni-v2/runtime.d.ts.map +1 -1
  290. package/dist/services/oni-v2/runtime.js +57 -19
  291. package/dist/services/oni-v2/templating.d.ts +4 -2
  292. package/dist/services/oni-v2/templating.d.ts.map +1 -1
  293. package/dist/services/oni-v2/templating.js +42 -7
  294. package/dist/services/raid-v2/audit.d.ts +1 -1
  295. package/dist/services/raid-v2/audit.d.ts.map +1 -1
  296. package/dist/services/raid-v2/audit.js +39 -5
  297. package/dist/services/raid-v2/errors.d.ts +9 -9
  298. package/dist/services/raid-v2/errors.js +44 -11
  299. package/dist/services/raid-v2/http.d.ts +1 -1
  300. package/dist/services/raid-v2/http.d.ts.map +1 -1
  301. package/dist/services/raid-v2/http.js +42 -8
  302. package/dist/services/raid-v2/logger.d.ts +1 -1
  303. package/dist/services/raid-v2/logger.d.ts.map +1 -1
  304. package/dist/services/raid-v2/logger.js +42 -8
  305. package/dist/services/raid-v2/mapping.d.ts +1 -1
  306. package/dist/services/raid-v2/mapping.d.ts.map +1 -1
  307. package/dist/services/raid-v2/mapping.js +41 -7
  308. package/dist/services/raid-v2/runtime.d.ts +1 -1
  309. package/dist/services/raid-v2/runtime.d.ts.map +1 -1
  310. package/dist/services/raid-v2/runtime.js +76 -34
  311. package/dist/services/raid-v2/tags.d.ts +8 -8
  312. package/dist/services/raid-v2/tags.d.ts.map +1 -1
  313. package/dist/services/raid-v2/tags.js +42 -9
  314. package/dist/services/record-hooks/coordinator.d.ts +11 -0
  315. package/dist/services/record-hooks/coordinator.d.ts.map +1 -1
  316. package/dist/services/record-hooks/coordinator.js +70 -6
  317. package/dist/storage/GridFSDriver.d.ts +16 -9
  318. package/dist/storage/GridFSDriver.d.ts.map +1 -1
  319. package/dist/storage/GridFSDriver.js +87 -33
  320. package/dist/storage/TusStorageManagerDataStore.d.ts +11 -1
  321. package/dist/storage/TusStorageManagerDataStore.d.ts.map +1 -1
  322. package/dist/storage/TusStorageManagerDataStore.js +190 -56
  323. package/dist/utilities/HarvestHistoryRetention.d.ts +17 -0
  324. package/dist/utilities/HarvestHistoryRetention.d.ts.map +1 -0
  325. package/dist/utilities/HarvestHistoryRetention.js +141 -0
  326. package/dist/utilities/HarvestRunIndexes.d.ts +12 -0
  327. package/dist/utilities/HarvestRunIndexes.d.ts.map +1 -0
  328. package/dist/utilities/HarvestRunIndexes.js +84 -0
  329. package/dist/utilities/PinoLoggerUtils.d.ts +9 -0
  330. package/dist/utilities/PinoLoggerUtils.d.ts.map +1 -0
  331. package/dist/utilities/PinoLoggerUtils.js +17 -0
  332. package/dist/utilities/RequestChronicle.d.ts +221 -0
  333. package/dist/utilities/RequestChronicle.d.ts.map +1 -0
  334. package/dist/utilities/RequestChronicle.js +770 -0
  335. package/dist/utilities/RequestChronicleContext.d.ts +6 -0
  336. package/dist/utilities/RequestChronicleContext.d.ts.map +1 -0
  337. package/dist/utilities/RequestChronicleContext.js +19 -0
  338. package/dist/utilities/RequestChronicleSettings.d.ts +29 -0
  339. package/dist/utilities/RequestChronicleSettings.d.ts.map +1 -0
  340. package/dist/utilities/RequestChronicleSettings.js +31 -0
  341. package/dist/utilities/TransactionUtils.d.ts +2 -1
  342. package/dist/utilities/TransactionUtils.d.ts.map +1 -1
  343. package/dist/utilities/TransactionUtils.js +1 -1
  344. package/dist/utilities/TranslationHtml.d.ts.map +1 -1
  345. package/dist/utilities/TranslationHtml.js +13 -5
  346. package/dist/utilities/VocabularyAdminAccess.d.ts +10 -0
  347. package/dist/utilities/VocabularyAdminAccess.d.ts.map +1 -0
  348. package/dist/utilities/VocabularyAdminAccess.js +42 -0
  349. package/dist/visitor/construct.visitor.d.ts.map +1 -1
  350. package/dist/visitor/construct.visitor.js +7 -2
  351. package/dist/visitor/context-variables.visitor.d.ts +1 -2
  352. package/dist/visitor/context-variables.visitor.d.ts.map +1 -1
  353. package/dist/visitor/context-variables.visitor.js +1 -1
  354. package/dist/visitor/migrate-config-v4-v5.visitor.d.ts.map +1 -1
  355. package/dist/visitor/migrate-config-v4-v5.visitor.js +5 -1
  356. package/dist/visitor/related-object-data-inline.visitor.d.ts +1 -1
  357. package/dist/visitor/related-object-data-inline.visitor.d.ts.map +1 -1
  358. package/dist/visitor/related-object-data-inline.visitor.js +57 -23
  359. package/dist/visitor/validator.visitor.d.ts.map +1 -1
  360. package/dist/visitor/validator.visitor.js +4 -2
  361. package/dist/visitor/visitor-helpers.js +3 -3
  362. package/dist/visitor/vocab-inline.visitor.d.ts +1 -2
  363. package/dist/visitor/vocab-inline.visitor.d.ts.map +1 -1
  364. package/dist/visitor/vocab-inline.visitor.js +1 -1
  365. package/dist/waterline-models/ExportJob.d.ts +38 -0
  366. package/dist/waterline-models/ExportJob.d.ts.map +1 -0
  367. package/dist/waterline-models/ExportJob.js +148 -0
  368. package/dist/waterline-models/HarvestRecordEvent.d.ts.map +1 -1
  369. package/dist/waterline-models/HarvestRecordEvent.js +3 -9
  370. package/dist/waterline-models/HarvestRun.d.ts +5 -1
  371. package/dist/waterline-models/HarvestRun.d.ts.map +1 -1
  372. package/dist/waterline-models/HarvestRun.js +13 -7
  373. package/dist/waterline-models/HarvestRunChunk.d.ts.map +1 -1
  374. package/dist/waterline-models/HarvestRunChunk.js +3 -7
  375. package/dist/waterline-models/User.d.ts +2 -2
  376. package/dist/waterline-models/User.d.ts.map +1 -1
  377. package/dist/waterline-models/User.js +3 -3
  378. package/dist/waterline-models/index.d.ts +2 -0
  379. package/dist/waterline-models/index.d.ts.map +1 -1
  380. package/dist/waterline-models/index.js +4 -1
  381. package/logfmt-transport.cjs +59 -0
  382. package/package.json +76 -45
  383. package/dist/Logger.d.ts +0 -16
  384. package/dist/Logger.d.ts.map +0 -1
  385. package/dist/Logger.js +0 -3
@@ -57,6 +57,8 @@ const ConfigModels_1 = require("../configmodels/ConfigModels");
57
57
  const DashboardConfigService_1 = require("./DashboardConfigService");
58
58
  const TJS = __importStar(require("typescript-json-schema"));
59
59
  const glob_1 = require("glob");
60
+ const AppConfigSecrets_1 = require("./AppConfigSecrets");
61
+ const appConfigSecrets_config_1 = require("../config/appConfigSecrets.config");
60
62
  exports.APP_CONFIG_SECRET_MASK = '__REDACTED__';
61
63
  exports.APP_CONFIG_SECRET_CLEAR = '__CLEAR_SECRET__';
62
64
  const APP_CONFIG_PRESENT_KEYS_SYMBOL = Symbol.for('redbox.appConfig.presentKeys');
@@ -71,11 +73,14 @@ var Services;
71
73
  brandingAppConfigMap = {};
72
74
  modelSchemaMap = {};
73
75
  extraTsGlobs = new Set();
76
+ secretStore;
77
+ configWriteGates = new Map();
74
78
  _exportedMethods = [
75
79
  'bootstrap',
76
80
  'getAllConfigurationForBrand',
77
81
  'loadAppConfigurationModel',
78
82
  'getAppConfigurationForBrand',
83
+ 'getMaskedAppConfigurationForBrand',
79
84
  'createOrUpdateConfig',
80
85
  'getAppConfigForm',
81
86
  'getAppConfigByBrandAndKey',
@@ -118,13 +123,166 @@ var Services;
118
123
  }
119
124
  }
120
125
  }
121
- async refreshBrandingAppConfigMap(branding) {
122
- const appConfig = await this.loadAppConfigurationModel(branding.id);
123
- this.brandingAppConfigMap[branding.name] = appConfig;
126
+ prepareBrandingCache(branding, configKey, hydrated, fallback) {
127
+ const current = this.brandingAppConfigMap[branding.name] ?? fallback;
128
+ const next = { ...(current ?? this.createDefaultConfiguration()) };
129
+ next[configKey] = hydrated;
130
+ const presentKeys = Reflect.get(current ?? {}, APP_CONFIG_PRESENT_KEYS_SYMBOL) ?? new Set();
131
+ Object.defineProperty(next, APP_CONFIG_PRESENT_KEYS_SYMBOL, {
132
+ value: new Set([...presentKeys, configKey]), enumerable: false, configurable: true
133
+ });
134
+ return next;
135
+ }
136
+ /** Expand only own properties; wildcard matches one literal key, including punctuation. */
137
+ getSecretPaths(configKey, data, forWrite = false) {
138
+ const paths = [];
139
+ const unsafe = new Set(['__proto__', 'prototype', 'constructor']);
140
+ const visit = (value, parts, path) => {
141
+ if (parts.length === 0) {
142
+ paths.push(path);
143
+ return;
144
+ }
145
+ if (typeof value !== 'object' || value === null)
146
+ return;
147
+ const [part, ...rest] = parts;
148
+ const keys = part === '*' ? Object.keys(value) : [part];
149
+ for (const key of keys) {
150
+ if (forWrite && unsafe.has(key))
151
+ throw new Error('Unsafe AppConfig secret field key');
152
+ if (Object.prototype.hasOwnProperty.call(value, key)) {
153
+ visit(Reflect.get(value, key), rest, [...path, key]);
154
+ }
155
+ }
156
+ };
157
+ for (const field of this.getSecretFields(configKey))
158
+ visit(data, field.split('.'), []);
159
+ return paths;
160
+ }
161
+ setExistingSecretPath(data, path, value) {
162
+ let parent = data;
163
+ for (const key of path.slice(0, -1)) {
164
+ if (!Object.prototype.hasOwnProperty.call(parent, key))
165
+ return;
166
+ const next = Reflect.get(parent, key);
167
+ if (typeof next !== 'object' || next === null)
168
+ return;
169
+ parent = next;
170
+ }
171
+ const key = path[path.length - 1];
172
+ if (key !== undefined && Object.prototype.hasOwnProperty.call(parent, key)) {
173
+ Object.defineProperty(parent, key, { value, writable: true, enumerable: true, configurable: true });
174
+ }
124
175
  }
125
176
  getSecretFields(configKey) {
126
177
  return ConfigModels_1.ConfigModels.getModelInfo(configKey)?.secretFields ?? [];
127
178
  }
179
+ getSecretStore() {
180
+ return this.secretStore ??= new AppConfigSecrets_1.AppConfigSecrets({ ...appConfigSecrets_config_1.appConfigSecrets, ...sails.config.appConfigSecrets });
181
+ }
182
+ async hydrateSecretFields(configKey, configData) {
183
+ if (configData == null)
184
+ return configData;
185
+ const hydrated = _.cloneDeep(configData);
186
+ for (const field of this.getSecretPaths(configKey, hydrated)) {
187
+ const value = _.get(hydrated, field);
188
+ if ((0, AppConfigSecrets_1.isAppConfigSecretReference)(value)) {
189
+ this.setExistingSecretPath(hydrated, field, await this.getSecretStore().resolve(value));
190
+ }
191
+ }
192
+ return hydrated;
193
+ }
194
+ async storeSecretFields(brandId, configKey, incoming, existing, lease) {
195
+ const provider = sails.config.appConfigSecrets?.provider ?? 'database';
196
+ if (provider !== 'database' && provider !== 'aws-secrets-manager') {
197
+ throw new Error('Unsupported appConfigSecrets.provider');
198
+ }
199
+ const layout = sails.config.appConfigSecrets?.layout ?? 'per-field';
200
+ if (layout !== 'per-field' && layout !== 'brand-json')
201
+ throw new Error('Unsupported appConfigSecrets.layout');
202
+ const bundle = provider === 'aws-secrets-manager' && layout === 'brand-json';
203
+ const changes = new Map();
204
+ const bundledFields = [];
205
+ // References are backend-owned. Forms submit only values, masks, or clear markers.
206
+ const incomingSecretPaths = this.getSecretPaths(configKey, incoming, true);
207
+ const existingSecretPaths = this.getSecretPaths(configKey, existing);
208
+ for (const field of incomingSecretPaths) {
209
+ const value = _.get(incoming, field);
210
+ if (value != null && typeof value !== 'string') {
211
+ throw new Error(`AppConfig secret field '${field.join('.')}' must be a string`);
212
+ }
213
+ }
214
+ const hasBundledReferences = existingSecretPaths.some(field => {
215
+ const value = _.get(existing, field);
216
+ return (0, AppConfigSecrets_1.isAppConfigSecretReference)(value) && value.$appConfigSecret.key !== undefined;
217
+ });
218
+ if ((bundle && (incomingSecretPaths.length > 0 || existingSecretPaths.length > 0)) || hasBundledReferences) {
219
+ await this.getSecretStore().synchronizeBundle(brandId, 'save', lease);
220
+ }
221
+ const stored = this.mergeSecretFields(configKey, incoming, existing);
222
+ for (const field of this.getSecretPaths(configKey, stored, true)) {
223
+ const value = _.get(stored, field);
224
+ if ((0, AppConfigSecrets_1.isAppConfigSecretReference)(value)) {
225
+ if (bundle && value.$appConfigSecret.key === undefined) {
226
+ const key = JSON.stringify([configKey, ...field]);
227
+ changes.set(key, await this.getSecretStore().resolve(value));
228
+ bundledFields.push({ field, key });
229
+ }
230
+ continue;
231
+ }
232
+ if (!this.shouldMaskSecretValue(value))
233
+ continue;
234
+ const previous = _.get(existing, field);
235
+ // Bundled plaintext comparisons run under the distributed lease in
236
+ // storeBundle, so a stale local value cannot suppress a requested change.
237
+ if ((0, AppConfigSecrets_1.isAppConfigSecretReference)(previous) && !(bundle && previous.$appConfigSecret.key !== undefined)) {
238
+ let previousValue;
239
+ try {
240
+ previousValue = await this.getSecretStore().resolve(previous);
241
+ }
242
+ catch (error) {
243
+ // An explicit replacement can recover from a deleted/inaccessible old secret.
244
+ // Database mode must never turn an AWS reference into plaintext.
245
+ if (provider !== 'aws-secrets-manager')
246
+ throw error;
247
+ }
248
+ if (value === previousValue && (!bundle || previous.$appConfigSecret.key !== undefined)) {
249
+ _.set(stored, field, previous);
250
+ continue;
251
+ }
252
+ }
253
+ if (provider === 'aws-secrets-manager') {
254
+ if (bundle) {
255
+ const key = JSON.stringify([configKey, ...field]);
256
+ changes.set(key, String(value));
257
+ bundledFields.push({ field, key });
258
+ }
259
+ else {
260
+ _.set(stored, field, await this.getSecretStore().store(brandId, configKey, JSON.stringify(field), String(value)));
261
+ }
262
+ }
263
+ else if ((0, AppConfigSecrets_1.isAppConfigSecretReference)(_.get(existing, field))) {
264
+ throw new Error('Enable AWS Secrets Manager to replace an externally stored AppConfig secret');
265
+ }
266
+ }
267
+ if (bundle) {
268
+ // Remove cleared/omitted bundled fields without rewriting any other configuration key.
269
+ for (const field of this.getSecretPaths(configKey, existing)) {
270
+ const previous = _.get(existing, field);
271
+ if ((0, AppConfigSecrets_1.isAppConfigSecretReference)(previous) && previous.$appConfigSecret.key !== undefined && !this.shouldMaskSecretValue(_.get(stored, field))) {
272
+ changes.set(previous.$appConfigSecret.key, null);
273
+ }
274
+ }
275
+ if (changes.size > 0) {
276
+ const arn = await this.getSecretStore().storeBundle(brandId, changes, lease);
277
+ if (bundledFields.length > 0 && !arn)
278
+ throw new Error('AWS Secrets Manager did not return a bundle ARN');
279
+ for (const { field, key } of bundledFields) {
280
+ _.set(stored, field, { $appConfigSecret: { provider: 'aws-secrets-manager', arn: arn, key } });
281
+ }
282
+ }
283
+ }
284
+ return stored;
285
+ }
128
286
  isMaskedSecretPlaceholder(value) {
129
287
  return typeof value === 'string' && value === exports.APP_CONFIG_SECRET_MASK;
130
288
  }
@@ -140,9 +298,9 @@ var Services;
140
298
  return configData;
141
299
  }
142
300
  const masked = _.cloneDeep(configData);
143
- secretFields.forEach((fieldPath) => {
301
+ this.getSecretPaths(configKey, masked).forEach((fieldPath) => {
144
302
  if (_.has(masked, fieldPath) && this.shouldMaskSecretValue(_.get(masked, fieldPath))) {
145
- _.set(masked, fieldPath, exports.APP_CONFIG_SECRET_MASK);
303
+ this.setExistingSecretPath(masked, fieldPath, exports.APP_CONFIG_SECRET_MASK);
146
304
  }
147
305
  });
148
306
  return masked;
@@ -153,7 +311,7 @@ var Services;
153
311
  return incomingConfig;
154
312
  }
155
313
  const merged = _.cloneDeep(incomingConfig);
156
- secretFields.forEach((fieldPath) => {
314
+ this.getSecretPaths(configKey, merged, true).forEach((fieldPath) => {
157
315
  const incomingValue = _.get(merged, fieldPath);
158
316
  if (this.isMaskedSecretPlaceholder(incomingValue)) {
159
317
  if (existingConfig != null && _.has(existingConfig, fieldPath)) {
@@ -186,6 +344,16 @@ var Services;
186
344
  getAppConfigurationForBrand(brandName) {
187
345
  return _.get(this.brandingAppConfigMap, brandName, sails.config.brandingConfigurationDefaults == undefined ? {} : sails.config.brandingConfigurationDefaults);
188
346
  }
347
+ /** Safe admin view; backend consumers continue to use the hydrated cache. */
348
+ getMaskedAppConfigurationForBrand(brandName, configKey) {
349
+ const configuration = this.getAppConfigurationForBrand(brandName);
350
+ const masked = _.cloneDeep(configuration);
351
+ for (const key of new Set([...ConfigModels_1.ConfigModels.getConfigKeys(), ...Object.keys(masked)])) {
352
+ if (_.has(masked, key))
353
+ _.set(masked, key, this.maskSecretFields(key, _.get(masked, key)));
354
+ }
355
+ return configKey ? _.get(masked, configKey, null) : masked;
356
+ }
189
357
  getAllConfigurationForBrand = (brandId) => {
190
358
  return AppConfig.find({ branding: brandId });
191
359
  };
@@ -232,7 +400,7 @@ var Services;
232
400
  }
233
401
  return this.chooseLatestConfigRecord(records);
234
402
  }
235
- async loadAppConfigurationModel(brandId) {
403
+ createDefaultConfiguration() {
236
404
  const appConfiguration = {};
237
405
  const modelNames = ConfigModels_1.ConfigModels.getConfigKeys();
238
406
  for (const modelName of modelNames) {
@@ -246,13 +414,39 @@ var Services;
246
414
  }
247
415
  // grab any default branding configuration we're overriding in config
248
416
  _.merge(appConfiguration, sails.config.brandingConfigurationDefaults);
417
+ return appConfiguration;
418
+ }
419
+ async loadAppConfigurationModel(brandId) {
420
+ const appConfiguration = this.createDefaultConfiguration();
249
421
  const appConfigItems = await this.getAllConfigurationForBrand(brandId);
250
- const latestAppConfigItems = this.reduceToLatestConfigRecords(appConfigItems);
251
- if (latestAppConfigItems.length !== appConfigItems.length) {
422
+ const latestAppConfigItems = this.reduceToLatestConfigRecords(appConfigItems).filter(item => {
423
+ if (this.isSafeConfigKey(item.configKey))
424
+ return true;
425
+ sails.log.warn(`Skipping legacy AppConfig row with an unsafe configuration key for branding '${brandId}'. Review hook filenames and migrate the row explicitly.`);
426
+ return false;
427
+ });
428
+ if (this.reduceToLatestConfigRecords(appConfigItems).length !== appConfigItems.length) {
252
429
  sails.log.warn(`Duplicate appconfig records detected for branding '${brandId}'. Using the most recently updated record for each config key.`);
253
430
  }
431
+ // An explicit reload refreshes each distinct ARN once; all fields in a brand
432
+ // bundle share that request. Routine reads and saves reuse the resolved values.
433
+ const references = new Set();
434
+ let hasBundledReferences = false;
435
+ for (const item of latestAppConfigItems) {
436
+ for (const field of this.getSecretPaths(item.configKey, item.configData)) {
437
+ const value = _.get(item.configData, field);
438
+ if ((0, AppConfigSecrets_1.isAppConfigSecretReference)(value)) {
439
+ references.add(value.$appConfigSecret.arn);
440
+ hasBundledReferences ||= value.$appConfigSecret.key !== undefined;
441
+ }
442
+ }
443
+ }
444
+ for (const arn of references)
445
+ this.secretStore?.invalidate(arn);
446
+ if (hasBundledReferences)
447
+ await this.getSecretStore().synchronizeBundle(brandId, 'load');
254
448
  for (const appConfigItem of latestAppConfigItems) {
255
- _.set(appConfiguration, appConfigItem.configKey, appConfigItem.configData);
449
+ _.set(appConfiguration, appConfigItem.configKey, await this.hydrateSecretFields(appConfigItem.configKey, appConfigItem.configData));
256
450
  }
257
451
  Object.defineProperty(appConfiguration, APP_CONFIG_PRESENT_KEYS_SYMBOL, {
258
452
  value: new Set(latestAppConfigItems.map(item => item.configKey)),
@@ -262,6 +456,7 @@ var Services;
262
456
  return appConfiguration;
263
457
  }
264
458
  async getAppConfigByBrandAndKey(brandId, configKey) {
459
+ this.assertSafeConfigKey(configKey);
265
460
  const dbConfig = await this.findLatestConfigRecord(brandId, configKey);
266
461
  // If no config exists in the DB return the default settings
267
462
  if (dbConfig != null) {
@@ -283,7 +478,16 @@ var Services;
283
478
  * operations: independent dashboard settings are revision-checked and live in
284
479
  * the DashboardConfiguration model. The migration reads legacy rows directly.
285
480
  */
481
+ isSafeConfigKey(configKey) {
482
+ return typeof configKey === 'string' && configKey.length > 0 &&
483
+ !/[.[\]]/.test(configKey) && !['__proto__', 'prototype', 'constructor'].includes(configKey);
484
+ }
485
+ assertSafeConfigKey(configKey) {
486
+ if (!this.isSafeConfigKey(configKey))
487
+ throw new Error('AppConfig key must be a single safe configuration name');
488
+ }
286
489
  assertWritableConfigKey(configKey) {
490
+ this.assertSafeConfigKey(configKey);
287
491
  if (DashboardConfigService_1.RESERVED_DASHBOARD_APP_CONFIG_KEYS.includes(configKey)) {
288
492
  const error = new Error(`Config key "${configKey}" is retired. Dashboard settings are managed through the dashboard configuration editor or /api/dashboard-config.`);
289
493
  error.status = 410;
@@ -291,34 +495,80 @@ var Services;
291
495
  throw error;
292
496
  }
293
497
  }
294
- async createOrUpdateConfig(branding, configKey, configData) {
295
- this.assertWritableConfigKey(configKey);
296
- const dbConfig = await this.findLatestConfigRecord(String(branding.id), configKey);
297
- const preparedConfigData = this.prepareConfigModelForSave(configKey, configData);
298
- const mergedConfigData = this.mergeSecretFields(configKey, preparedConfigData, dbConfig?.configData);
299
- // Create if no config exists
300
- let record;
301
- if (dbConfig == null) {
302
- record = await AppConfig.create({ branding: branding.id, configKey: configKey, configData: mergedConfigData });
498
+ /** Order persistence/cache publication per key, or per brand for shared JSON bundles. */
499
+ async withConfigWriteLock(brandId, configKey, write) {
500
+ const bundle = sails.config.appConfigSecrets?.provider === 'aws-secrets-manager' && sails.config.appConfigSecrets.layout === 'brand-json';
501
+ const key = JSON.stringify([brandId, bundle ? null : configKey]);
502
+ const previous = this.configWriteGates.get(key) ?? Promise.resolve();
503
+ let release;
504
+ const gate = new Promise(resolve => { release = resolve; });
505
+ this.configWriteGates.set(key, gate);
506
+ await previous;
507
+ try {
508
+ const readAndWrite = async (lease) => write(await this.findLatestConfigRecord(brandId, configKey), lease);
509
+ // Acquire before reading the row, including saves that omit/clear every
510
+ // secret: another node may be adding one to this same key right now.
511
+ if (bundle && this.getSecretFields(configKey).length > 0) {
512
+ return await this.getSecretStore().withBundleSave(brandId, readAndWrite);
513
+ }
514
+ // Existing bundle references still require coordination after a layout
515
+ // or provider change. Re-read the row inside the lease in write().
516
+ const existing = await this.findLatestConfigRecord(brandId, configKey);
517
+ if (this.getSecretFields(configKey).length > 0) {
518
+ if (this.getSecretPaths(configKey, existing?.configData).some(field => {
519
+ const value = _.get(existing?.configData, field);
520
+ return (0, AppConfigSecrets_1.isAppConfigSecretReference)(value) && value.$appConfigSecret.key !== undefined;
521
+ }))
522
+ return await this.getSecretStore().withBundleSave(brandId, readAndWrite);
523
+ }
524
+ return await write(existing);
303
525
  }
304
- else {
305
- record = await AppConfig.updateOne({ branding: branding.id, configKey }).set({ configData: mergedConfigData });
526
+ finally {
527
+ release();
528
+ if (this.configWriteGates.get(key) === gate)
529
+ this.configWriteGates.delete(key);
306
530
  }
307
- await this.refreshBrandingAppConfigMap(branding);
308
- return this.maskSecretFields(configKey, record.configData);
531
+ }
532
+ async createOrUpdateConfig(branding, configKey, configData) {
533
+ this.assertWritableConfigKey(configKey);
534
+ return this.withConfigWriteLock(String(branding.id), configKey, async (dbConfig, lease) => {
535
+ const preparedConfigData = this.prepareConfigModelForSave(configKey, configData);
536
+ const mergedConfigData = await this.storeSecretFields(String(branding.id), configKey, preparedConfigData, dbConfig?.configData ?? _.get(this.createDefaultConfiguration(), [configKey]), lease);
537
+ const hydrated = await this.hydrateSecretFields(configKey, mergedConfigData);
538
+ const nextCache = this.prepareBrandingCache(branding, configKey, hydrated);
539
+ if (lease)
540
+ await this.getSecretStore().checkBundleSave(lease);
541
+ // Hydrate and prepare defaults before persistence; cache publication needs no AWS reads.
542
+ let record;
543
+ if (dbConfig == null) {
544
+ record = await AppConfig.create({ branding: branding.id, configKey: configKey, configData: mergedConfigData });
545
+ }
546
+ else {
547
+ record = await AppConfig.updateOne({ branding: branding.id, configKey }).set({ configData: mergedConfigData });
548
+ }
549
+ // Rebase on the current cache in case a different key was saved while the DB write awaited.
550
+ this.brandingAppConfigMap[branding.name] = this.prepareBrandingCache(branding, configKey, hydrated, nextCache);
551
+ return this.maskSecretFields(configKey, record.configData);
552
+ });
309
553
  }
310
554
  async createConfig(brandName, configKey, configData) {
311
555
  this.assertWritableConfigKey(configKey);
312
556
  const branding = BrandingService.getBrand(brandName);
313
- const dbConfig = await this.findLatestConfigRecord(String(branding.id), configKey);
314
- const preparedConfigData = this.prepareConfigModelForSave(configKey, configData);
315
- // Create if no config exists
316
- if (dbConfig == null) {
317
- const createdRecord = await AppConfig.create({ branding: branding.id, configKey: configKey, configData: this.mergeSecretFields(configKey, preparedConfigData) });
318
- await this.refreshBrandingAppConfigMap(branding);
319
- return this.maskSecretFields(configKey, createdRecord.configData);
320
- }
321
- throw Error(`Config with key ${configKey} for branding ${brandName} already exists`);
557
+ return this.withConfigWriteLock(String(branding.id), configKey, async (dbConfig, lease) => {
558
+ const preparedConfigData = this.prepareConfigModelForSave(configKey, configData);
559
+ // Create if no config exists
560
+ if (dbConfig == null) {
561
+ const stored = await this.storeSecretFields(String(branding.id), configKey, preparedConfigData, _.get(this.createDefaultConfiguration(), [configKey]), lease);
562
+ const hydrated = await this.hydrateSecretFields(configKey, stored);
563
+ const nextCache = this.prepareBrandingCache(branding, configKey, hydrated);
564
+ if (lease)
565
+ await this.getSecretStore().checkBundleSave(lease);
566
+ const createdRecord = await AppConfig.create({ branding: branding.id, configKey, configData: stored });
567
+ this.brandingAppConfigMap[branding.name] = this.prepareBrandingCache(branding, configKey, hydrated, nextCache);
568
+ return this.maskSecretFields(configKey, createdRecord.configData);
569
+ }
570
+ throw Error(`Config with key ${configKey} for branding ${brandName} already exists`);
571
+ });
322
572
  }
323
573
  async getAppConfigForm(branding, configForm) {
324
574
  const appConfig = this.getAppConfigurationForBrand(branding.name);
@@ -406,4 +656,4 @@ var Services;
406
656
  }
407
657
  Services.AppConfigs = AppConfigs;
408
658
  })(Services || (exports.Services = Services = {}));
409
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBwQ29uZmlnU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9BcHBDb25maWdTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwwRkFBMEY7QUFDMUYsRUFBRTtBQUNGLDZCQUE2QjtBQUM3QiwwQkFBMEI7QUFDMUIsRUFBRTtBQUNGLHVFQUF1RTtBQUN2RSx1RUFBdUU7QUFDdkUsb0VBQW9FO0FBQ3BFLHNDQUFzQztBQUN0QyxFQUFFO0FBQ0Ysa0VBQWtFO0FBQ2xFLGlFQUFpRTtBQUNqRSxnRUFBZ0U7QUFDaEUsK0NBQStDO0FBQy9DLEVBQUU7QUFDRiwwRUFBMEU7QUFDMUUsMEVBQTBFO0FBQzFFLDhEQUE4RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBSTlELGdEQUFzRDtBQUN0RCwrREFBK0c7QUFFL0cscUVBQThFO0FBRTlFLDREQUE4QztBQUM5QywrQkFBZ0M7QUFFbkIsUUFBQSxzQkFBc0IsR0FBRyxjQUFjLENBQUE7QUFDdkMsUUFBQSx1QkFBdUIsR0FBRyxrQkFBa0IsQ0FBQztBQUkxRCxNQUFNLDhCQUE4QixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsOEJBQThCLENBQUMsQ0FBQztBQUVsRixJQUFpQixRQUFRLENBd1l4QjtBQXhZRCxXQUFpQixRQUFRO0lBQ3ZCOzs7O09BSUc7SUFDSCxNQUFhLFVBQVcsU0FBUSxzQkFBUSxDQUFDLElBQUksQ0FBQyxPQUFPO1FBQ25ELG9CQUFvQixHQUFnSCxFQUFFLENBQUM7UUFDdkksY0FBYyxHQUE0QixFQUFFLENBQUM7UUFDckMsWUFBWSxHQUFnQixJQUFJLEdBQUcsRUFBRSxDQUFDO1FBRTNCLGdCQUFnQixHQUFhO1lBQzlDLFdBQVc7WUFDWCw2QkFBNkI7WUFDN0IsMkJBQTJCO1lBQzNCLDZCQUE2QjtZQUM3QixzQkFBc0I7WUFDdEIsa0JBQWtCO1lBQ2xCLDJCQUEyQjtZQUMzQixjQUFjO1lBQ2Qs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
659
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBwQ29uZmlnU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9BcHBDb25maWdTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwwRkFBMEY7QUFDMUYsRUFBRTtBQUNGLDZCQUE2QjtBQUM3QiwwQkFBMEI7QUFDMUIsRUFBRTtBQUNGLHVFQUF1RTtBQUN2RSx1RUFBdUU7QUFDdkUsb0VBQW9FO0FBQ3BFLHNDQUFzQztBQUN0QyxFQUFFO0FBQ0Ysa0VBQWtFO0FBQ2xFLGlFQUFpRTtBQUNqRSxnRUFBZ0U7QUFDaEUsK0NBQStDO0FBQy9DLEVBQUU7QUFDRiwwRUFBMEU7QUFDMUUsMEVBQTBFO0FBQzFFLDhEQUE4RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBSTlELGdEQUFzRDtBQUN0RCwrREFBK0c7QUFFL0cscUVBQThFO0FBRTlFLDREQUE4QztBQUM5QywrQkFBZ0M7QUFDaEMseURBQTZHO0FBQzdHLCtFQUFxRTtBQUV4RCxRQUFBLHNCQUFzQixHQUFHLGNBQWMsQ0FBQTtBQUN2QyxRQUFBLHVCQUF1QixHQUFHLGtCQUFrQixDQUFDO0FBSTFELE1BQU0sOEJBQThCLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO0FBRWxGLElBQWlCLFFBQVEsQ0ErbUJ4QjtBQS9tQkQsV0FBaUIsUUFBUTtJQUN2Qjs7OztPQUlHO0lBQ0gsTUFBYSxVQUFXLFNBQVEsc0JBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTztRQUNuRCxvQkFBb0IsR0FBZ0gsRUFBRSxDQUFDO1FBQ3ZJLGNBQWMsR0FBNEIsRUFBRSxDQUFDO1FBQ3JDLFlBQVksR0FBZ0IsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUN0QyxXQUFXLENBQW9CO1FBQy9CLGdCQUFnQixHQUFHLElBQUksR0FBRyxFQUF5QixDQUFDO1FBRXpDLGdCQUFnQixHQUFhO1lBQzlDLFdBQVc7WUFDWCw2QkFB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
@@ -1 +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;AAOtD,OAAO,EAIL,KAAK,qBAAqB,EAC3B,MAAM,2BAA2B,CAAC;AAKnC,0FAA0F;AAC1F,eAAO,MAAM,yBAAyB,0BAA0B,CAAC;AAYjE,MAAM,WAAW,uBAAuB;IACtC,iFAAiF;IACjF,QAAQ,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAC;IACxC,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,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;QAgBnC,OAAO,CAAC,YAAY;QAKpB,OAAO,CAAC,kBAAkB;QA4B1B,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;QAgBpB,OAAO,CAAC,qBAAqB;QAqB7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,uBAAuB,GAAG;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE;QAc1G;;;;;WAKG;QACH,OAAO,CAAC,gBAAgB;KAgCzB;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,IAAI,uBAAuB,EAAE,QAAQ,CAAC,gBAAgB,CAAC;CACxD"}
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;AAOtD,OAAO,EAIL,KAAK,qBAAqB,EAC3B,MAAM,2BAA2B,CAAC;AAKnC,0FAA0F;AAC1F,eAAO,MAAM,yBAAyB,0BAA0B,CAAC;AAYjE,MAAM,WAAW,uBAAuB;IACtC,iFAAiF;IACjF,QAAQ,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAC;IACxC,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,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;QAgBnC,OAAO,CAAC,YAAY;QAKpB,OAAO,CAAC,kBAAkB;QA4B1B,iBAAiB,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;QAI5E,OAAO,CAAC,gBAAgB;QAOxB,OAAO,CAAC,YAAY;QAgBpB,OAAO,CAAC,qBAAqB;QA+C7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,uBAAuB,GAAG;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE;QAc1G;;;;;WAKG;QACH,OAAO,CAAC,gBAAgB;KAgCzB;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,IAAI,uBAAuB,EAAE,QAAQ,CAAC,gBAAgB,CAAC;CACxD"}