@researchdatabox/redbox-core 0.0.1-beta.9950 → 5.0.0-RC1

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 (376) hide show
  1. package/dist/CoreController.d.ts +12 -0
  2. package/dist/CoreController.d.ts.map +1 -1
  3. package/dist/CoreController.js +91 -52
  4. package/dist/CoreService.d.ts +8 -1
  5. package/dist/CoreService.d.ts.map +1 -1
  6. package/dist/CoreService.js +8 -1
  7. package/dist/RecordsService.d.ts +2 -0
  8. package/dist/RecordsService.d.ts.map +1 -1
  9. package/dist/SearchService.d.ts +1 -1
  10. package/dist/SearchService.d.ts.map +1 -1
  11. package/dist/StorageService.d.ts +3 -1
  12. package/dist/StorageService.d.ts.map +1 -1
  13. package/dist/api-routes/groups/branding.d.ts +1 -0
  14. package/dist/api-routes/groups/branding.d.ts.map +1 -1
  15. package/dist/api-routes/groups/branding.js +19 -2
  16. package/dist/api-routes/groups/export.js +2 -2
  17. package/dist/api-routes/groups/figshare-crosswalks.d.ts +11 -0
  18. package/dist/api-routes/groups/figshare-crosswalks.d.ts.map +1 -0
  19. package/dist/api-routes/groups/figshare-crosswalks.js +171 -0
  20. package/dist/api-routes/groups/figshare-vocabulary.d.ts +12 -0
  21. package/dist/api-routes/groups/figshare-vocabulary.d.ts.map +1 -0
  22. package/dist/api-routes/groups/figshare-vocabulary.js +248 -0
  23. package/dist/api-routes/groups/search.js +4 -4
  24. package/dist/api-routes/groups/users.js +3 -3
  25. package/dist/api-routes/helpers.d.ts +4 -4
  26. package/dist/api-routes/helpers.d.ts.map +1 -1
  27. package/dist/api-routes/helpers.js +3 -4
  28. package/dist/api-routes/index.d.ts +2 -0
  29. package/dist/api-routes/index.d.ts.map +1 -1
  30. package/dist/api-routes/index.js +3 -1
  31. package/dist/api-routes/openapi.js +1 -1
  32. package/dist/api-routes/request-extraction.d.ts +2 -2
  33. package/dist/api-routes/request-extraction.d.ts.map +1 -1
  34. package/dist/api-routes/request-extraction.js +1 -1
  35. package/dist/api-routes/route-registry.d.ts.map +1 -1
  36. package/dist/api-routes/route-registry.js +5 -1
  37. package/dist/api-routes/schemas/common.d.ts +19 -19
  38. package/dist/api-routes/schemas/common.d.ts.map +1 -1
  39. package/dist/api-routes/schemas/common.js +3 -2
  40. package/dist/api-routes/schemas/responses.d.ts +352 -7032
  41. package/dist/api-routes/schemas/responses.d.ts.map +1 -1
  42. package/dist/api-routes/schemas/responses.js +2 -2
  43. package/dist/api-routes/types.d.ts +2 -2
  44. package/dist/api-routes/types.d.ts.map +1 -1
  45. package/dist/api-routes/validation.js +1 -1
  46. package/dist/bootstrap.d.ts.map +1 -1
  47. package/dist/bootstrap.js +5 -1
  48. package/dist/config/agendaQueue.config.d.ts +11 -5
  49. package/dist/config/agendaQueue.config.d.ts.map +1 -1
  50. package/dist/config/agendaQueue.config.js +27 -19
  51. package/dist/config/auth.config.d.ts.map +1 -1
  52. package/dist/config/auth.config.js +4 -1
  53. package/dist/config/brandingConfigurationDefaults.config.d.ts +1 -1
  54. package/dist/config/brandingConfigurationDefaults.config.d.ts.map +1 -1
  55. package/dist/config/brandingConfigurationDefaults.config.js +22 -227
  56. package/dist/config/dashboardtype.config.d.ts +7 -0
  57. package/dist/config/dashboardtype.config.d.ts.map +1 -1
  58. package/dist/config/dashboardtype.config.js +9 -89
  59. package/dist/config/dashboardview.config.d.ts +7 -0
  60. package/dist/config/dashboardview.config.d.ts.map +1 -1
  61. package/dist/config/dashboardview.config.js +9 -134
  62. package/dist/config/emailnotification.config.d.ts.map +1 -1
  63. package/dist/config/emailnotification.config.js +2 -1
  64. package/dist/config/http.config.d.ts +2 -0
  65. package/dist/config/http.config.d.ts.map +1 -1
  66. package/dist/config/http.config.js +47 -1
  67. package/dist/config/jsonld.config.d.ts.map +1 -1
  68. package/dist/config/jsonld.config.js +2 -21
  69. package/dist/config/record.config.d.ts.map +1 -1
  70. package/dist/config/record.config.js +2 -9
  71. package/dist/config/recordtype.config.d.ts +8 -0
  72. package/dist/config/recordtype.config.d.ts.map +1 -1
  73. package/dist/config/recordtype.config.js +10 -660
  74. package/dist/config/reusableContributorFormDefinitions.config.d.ts.map +1 -1
  75. package/dist/config/reusableContributorFormDefinitions.config.js +11 -5
  76. package/dist/config/reusableViewFormDefinitions.config.d.ts.map +1 -1
  77. package/dist/config/reusableViewFormDefinitions.config.js +15 -4
  78. package/dist/config/routes.config.d.ts.map +1 -1
  79. package/dist/config/routes.config.js +13 -3
  80. package/dist/config/solr.config.d.ts +1 -0
  81. package/dist/config/solr.config.d.ts.map +1 -1
  82. package/dist/config/solr.config.js +3 -2
  83. package/dist/config/static_assets.config.d.ts +2 -0
  84. package/dist/config/static_assets.config.d.ts.map +1 -1
  85. package/dist/config/static_assets.config.js +4 -2
  86. package/dist/config/storage.config.d.ts.map +1 -1
  87. package/dist/config/storage.config.js +7 -1
  88. package/dist/config/views.config.d.ts.map +1 -1
  89. package/dist/config/views.config.js +2 -6
  90. package/dist/config/vocab.config.d.ts +4 -0
  91. package/dist/config/vocab.config.d.ts.map +1 -1
  92. package/dist/config/vocab.config.js +1 -1
  93. package/dist/config/workflow.config.d.ts +7 -0
  94. package/dist/config/workflow.config.d.ts.map +1 -1
  95. package/dist/config/workflow.config.js +9 -194
  96. package/dist/config/workspacetype.config.d.ts +7 -0
  97. package/dist/config/workspacetype.config.d.ts.map +1 -1
  98. package/dist/config/workspacetype.config.js +9 -10
  99. package/dist/configmodels/ConfigModels.d.ts +1 -1
  100. package/dist/configmodels/ConfigModels.d.ts.map +1 -1
  101. package/dist/configmodels/ConfigModels.js +9 -1
  102. package/dist/configmodels/DoiPublishing.d.ts +1 -1
  103. package/dist/configmodels/DoiPublishing.d.ts.map +1 -1
  104. package/dist/configmodels/FigsharePublishing.d.ts +746 -217
  105. package/dist/configmodels/FigsharePublishing.d.ts.map +1 -1
  106. package/dist/configmodels/FigsharePublishing.js +181 -190
  107. package/dist/configmodels/IntegrationNotificationConfig.d.ts +133 -0
  108. package/dist/configmodels/IntegrationNotificationConfig.d.ts.map +1 -0
  109. package/dist/configmodels/IntegrationNotificationConfig.js +64 -0
  110. package/dist/constants/export.d.ts +2 -0
  111. package/dist/constants/export.d.ts.map +1 -0
  112. package/dist/constants/export.js +8 -0
  113. package/dist/controllers/AdminController.d.ts.map +1 -1
  114. package/dist/controllers/AdminController.js +1 -1
  115. package/dist/controllers/AsynchController.d.ts +4 -1
  116. package/dist/controllers/AsynchController.d.ts.map +1 -1
  117. package/dist/controllers/AsynchController.js +118 -9
  118. package/dist/controllers/BrandingAppController.d.ts +2 -0
  119. package/dist/controllers/BrandingAppController.d.ts.map +1 -1
  120. package/dist/controllers/BrandingAppController.js +40 -2
  121. package/dist/controllers/BrandingController.d.ts +8 -0
  122. package/dist/controllers/BrandingController.d.ts.map +1 -1
  123. package/dist/controllers/BrandingController.js +45 -1
  124. package/dist/controllers/ExportController.d.ts.map +1 -1
  125. package/dist/controllers/ExportController.js +6 -10
  126. package/dist/controllers/RecordAuditController.d.ts +2 -0
  127. package/dist/controllers/RecordAuditController.d.ts.map +1 -1
  128. package/dist/controllers/RecordAuditController.js +55 -1
  129. package/dist/controllers/RecordController.d.ts +5 -1
  130. package/dist/controllers/RecordController.d.ts.map +1 -1
  131. package/dist/controllers/RecordController.js +51 -21
  132. package/dist/controllers/UserController.d.ts.map +1 -1
  133. package/dist/controllers/UserController.js +3 -2
  134. package/dist/controllers/VocabularyController.js +4 -4
  135. package/dist/controllers/index.d.ts.map +1 -1
  136. package/dist/controllers/index.js +7 -1
  137. package/dist/controllers/webservice/BrandingController.d.ts +1 -0
  138. package/dist/controllers/webservice/BrandingController.d.ts.map +1 -1
  139. package/dist/controllers/webservice/BrandingController.js +69 -10
  140. package/dist/controllers/webservice/ExportController.d.ts.map +1 -1
  141. package/dist/controllers/webservice/ExportController.js +6 -10
  142. package/dist/controllers/webservice/FigshareCrosswalkController.d.ts +20 -0
  143. package/dist/controllers/webservice/FigshareCrosswalkController.d.ts.map +1 -0
  144. package/dist/controllers/webservice/FigshareCrosswalkController.js +184 -0
  145. package/dist/controllers/webservice/FigshareVocabularyController.d.ts +21 -0
  146. package/dist/controllers/webservice/FigshareVocabularyController.d.ts.map +1 -0
  147. package/dist/controllers/webservice/FigshareVocabularyController.js +223 -0
  148. package/dist/controllers/webservice/IntegrationAuditController.d.ts.map +1 -1
  149. package/dist/controllers/webservice/IntegrationAuditController.js +1 -1
  150. package/dist/controllers/webservice/RecordController.d.ts +6 -1
  151. package/dist/controllers/webservice/RecordController.d.ts.map +1 -1
  152. package/dist/controllers/webservice/RecordController.js +64 -13
  153. package/dist/controllers/webservice/UserManagementController.d.ts +5 -3
  154. package/dist/controllers/webservice/UserManagementController.d.ts.map +1 -1
  155. package/dist/controllers/webservice/UserManagementController.js +140 -9
  156. package/dist/controllers/webservice/figshare-vocabulary-errors.d.ts +14 -0
  157. package/dist/controllers/webservice/figshare-vocabulary-errors.d.ts.map +1 -0
  158. package/dist/controllers/webservice/figshare-vocabulary-errors.js +39 -0
  159. package/dist/form-config/index.d.ts +7 -0
  160. package/dist/form-config/index.d.ts.map +1 -1
  161. package/dist/form-config/index.js +8 -5
  162. package/dist/hooks/defineRedboxHook.d.ts +11 -2
  163. package/dist/hooks/defineRedboxHook.d.ts.map +1 -1
  164. package/dist/hooks/defineRedboxHook.js +36 -7
  165. package/dist/hooks/hookDiscovery.d.ts +20 -0
  166. package/dist/hooks/hookDiscovery.d.ts.map +1 -0
  167. package/dist/hooks/hookDiscovery.js +186 -0
  168. package/dist/hooks/hookResources.d.ts +23 -0
  169. package/dist/hooks/hookResources.d.ts.map +1 -0
  170. package/dist/hooks/hookResources.js +136 -0
  171. package/dist/hooks/index.d.ts +4 -0
  172. package/dist/hooks/index.d.ts.map +1 -1
  173. package/dist/hooks/index.js +14 -2
  174. package/dist/index.d.ts +6 -1
  175. package/dist/index.d.ts.map +1 -1
  176. package/dist/index.js +15 -2
  177. package/dist/loader/index.d.ts +2 -0
  178. package/dist/loader/index.d.ts.map +1 -1
  179. package/dist/loader/index.js +82 -64
  180. package/dist/model/storage/BrandingModel.d.ts +2 -0
  181. package/dist/model/storage/BrandingModel.d.ts.map +1 -1
  182. package/dist/model/storage/BrandingModel.js +3 -1
  183. package/dist/model/storage/IntegrationAuditModel.d.ts +2 -0
  184. package/dist/model/storage/IntegrationAuditModel.d.ts.map +1 -1
  185. package/dist/model/storage/IntegrationAuditModel.js +3 -1
  186. package/dist/policies/i18nLanguages.d.ts.map +1 -1
  187. package/dist/policies/i18nLanguages.js +1 -1
  188. package/dist/policies/menuResolver.d.ts.map +1 -1
  189. package/dist/policies/menuResolver.js +1 -1
  190. package/dist/policies/setLang.d.ts.map +1 -1
  191. package/dist/policies/setLang.js +1 -1
  192. package/dist/responses/badRequest.d.ts.map +1 -1
  193. package/dist/responses/badRequest.js +3 -2
  194. package/dist/responses/created.d.ts.map +1 -1
  195. package/dist/responses/created.js +3 -2
  196. package/dist/responses/forbidden.d.ts.map +1 -1
  197. package/dist/responses/forbidden.js +3 -2
  198. package/dist/responses/ok.d.ts.map +1 -1
  199. package/dist/responses/ok.js +3 -2
  200. package/dist/responses/serverError.d.ts.map +1 -1
  201. package/dist/responses/serverError.js +3 -2
  202. package/dist/responses/siteTitle.d.ts.map +1 -1
  203. package/dist/responses/siteTitle.js +1 -1
  204. package/dist/services/AgendaQueueService.d.ts +1 -0
  205. package/dist/services/AgendaQueueService.d.ts.map +1 -1
  206. package/dist/services/AgendaQueueService.js +24 -9
  207. package/dist/services/BrandingLogoService.d.ts +25 -1
  208. package/dist/services/BrandingLogoService.d.ts.map +1 -1
  209. package/dist/services/BrandingLogoService.js +56 -5
  210. package/dist/services/BrandingThemeTokens.d.ts.map +1 -1
  211. package/dist/services/BrandingThemeTokens.js +2 -1
  212. package/dist/services/DoiService.js +5 -5
  213. package/dist/services/EmailService.d.ts +12 -4
  214. package/dist/services/EmailService.d.ts.map +1 -1
  215. package/dist/services/EmailService.js +28 -19
  216. package/dist/services/FigshareService.d.ts +12 -7
  217. package/dist/services/FigshareService.d.ts.map +1 -1
  218. package/dist/services/FigshareService.js +258 -104
  219. package/dist/services/FigshareVocabularyService.d.ts +442 -0
  220. package/dist/services/FigshareVocabularyService.d.ts.map +1 -0
  221. package/dist/services/FigshareVocabularyService.js +1802 -0
  222. package/dist/services/FormVocabularyService.d.ts.map +1 -1
  223. package/dist/services/FormVocabularyService.js +28 -7
  224. package/dist/services/HarvestRunService.d.ts.map +1 -1
  225. package/dist/services/HarvestRunService.js +1 -1
  226. package/dist/services/I18nEntriesService.d.ts.map +1 -1
  227. package/dist/services/I18nEntriesService.js +26 -4
  228. package/dist/services/IntegrationAuditService.d.ts +58 -0
  229. package/dist/services/IntegrationAuditService.d.ts.map +1 -1
  230. package/dist/services/IntegrationAuditService.js +292 -15
  231. package/dist/services/IntegrationNotificationService.d.ts +55 -0
  232. package/dist/services/IntegrationNotificationService.d.ts.map +1 -0
  233. package/dist/services/IntegrationNotificationService.js +271 -0
  234. package/dist/services/NamedQueryService.d.ts.map +1 -1
  235. package/dist/services/NamedQueryService.js +3 -16
  236. package/dist/services/OniService.d.ts.map +1 -1
  237. package/dist/services/OniService.js +3 -5
  238. package/dist/services/RDMPService.d.ts +2 -0
  239. package/dist/services/RDMPService.d.ts.map +1 -1
  240. package/dist/services/RDMPService.js +49 -33
  241. package/dist/services/RecordsService.d.ts +9 -2
  242. package/dist/services/RecordsService.d.ts.map +1 -1
  243. package/dist/services/RecordsService.js +66 -46
  244. package/dist/services/ReportsService.d.ts +0 -5
  245. package/dist/services/ReportsService.d.ts.map +1 -1
  246. package/dist/services/ReportsService.js +22 -31
  247. package/dist/services/SolrSearchService.d.ts +10 -2
  248. package/dist/services/SolrSearchService.d.ts.map +1 -1
  249. package/dist/services/SolrSearchService.js +110 -52
  250. package/dist/services/StandardDatastreamService.d.ts +7 -0
  251. package/dist/services/StandardDatastreamService.d.ts.map +1 -1
  252. package/dist/services/StandardDatastreamService.js +127 -27
  253. package/dist/services/TemplateService.d.ts +0 -14
  254. package/dist/services/TemplateService.d.ts.map +1 -1
  255. package/dist/services/TemplateService.js +5 -45
  256. package/dist/services/UsersService.d.ts.map +1 -1
  257. package/dist/services/UsersService.js +19 -16
  258. package/dist/services/ViewUtilsService.d.ts +5 -1
  259. package/dist/services/ViewUtilsService.d.ts.map +1 -1
  260. package/dist/services/ViewUtilsService.js +38 -46
  261. package/dist/services/VocabularyService.d.ts +11 -2
  262. package/dist/services/VocabularyService.d.ts.map +1 -1
  263. package/dist/services/VocabularyService.js +46 -20
  264. package/dist/services/doi-v2/audit.d.ts.map +1 -1
  265. package/dist/services/doi-v2/audit.js +1 -1
  266. package/dist/services/doi-v2/bindings.d.ts.map +1 -1
  267. package/dist/services/doi-v2/bindings.js +2 -11
  268. package/dist/services/doi-v2/payload.d.ts.map +1 -1
  269. package/dist/services/doi-v2/payload.js +32 -18
  270. package/dist/services/figshare-v2/assets.d.ts +2 -1
  271. package/dist/services/figshare-v2/assets.d.ts.map +1 -1
  272. package/dist/services/figshare-v2/assets.js +144 -89
  273. package/dist/services/figshare-v2/audit.d.ts +7 -0
  274. package/dist/services/figshare-v2/audit.d.ts.map +1 -0
  275. package/dist/services/figshare-v2/audit.js +30 -0
  276. package/dist/services/figshare-v2/bindings.d.ts +28 -3
  277. package/dist/services/figshare-v2/bindings.d.ts.map +1 -1
  278. package/dist/services/figshare-v2/bindings.js +76 -17
  279. package/dist/services/figshare-v2/categories.d.ts +142 -0
  280. package/dist/services/figshare-v2/categories.d.ts.map +1 -0
  281. package/dist/services/figshare-v2/categories.js +408 -0
  282. package/dist/services/figshare-v2/config.d.ts +10 -0
  283. package/dist/services/figshare-v2/config.d.ts.map +1 -1
  284. package/dist/services/figshare-v2/config.js +64 -2
  285. package/dist/services/figshare-v2/context.d.ts +18 -1
  286. package/dist/services/figshare-v2/context.d.ts.map +1 -1
  287. package/dist/services/figshare-v2/context.js +35 -2
  288. package/dist/services/figshare-v2/embargo.d.ts.map +1 -1
  289. package/dist/services/figshare-v2/embargo.js +6 -4
  290. package/dist/services/figshare-v2/http.d.ts +20 -1
  291. package/dist/services/figshare-v2/http.d.ts.map +1 -1
  292. package/dist/services/figshare-v2/http.js +85 -9
  293. package/dist/services/figshare-v2/metadata.d.ts.map +1 -1
  294. package/dist/services/figshare-v2/metadata.js +150 -35
  295. package/dist/services/figshare-v2/observability.d.ts +1 -2
  296. package/dist/services/figshare-v2/observability.d.ts.map +1 -1
  297. package/dist/services/figshare-v2/observability.js +7 -45
  298. package/dist/services/figshare-v2/runtime.d.ts +5 -2
  299. package/dist/services/figshare-v2/runtime.d.ts.map +1 -1
  300. package/dist/services/figshare-v2/runtime.js +59 -37
  301. package/dist/services/figshare-v2/types.d.ts +18 -0
  302. package/dist/services/figshare-v2/types.d.ts.map +1 -1
  303. package/dist/services/figshare-v2/types.js +1 -1
  304. package/dist/services/figshare-v2/vocabulary-errors.d.ts +39 -0
  305. package/dist/services/figshare-v2/vocabulary-errors.d.ts.map +1 -0
  306. package/dist/services/figshare-v2/vocabulary-errors.js +68 -0
  307. package/dist/services/index.d.ts +6 -0
  308. package/dist/services/index.d.ts.map +1 -1
  309. package/dist/services/index.js +13 -2
  310. package/dist/storage/TusStorageManagerDataStore.d.ts.map +1 -1
  311. package/dist/storage/TusStorageManagerDataStore.js +14 -1
  312. package/dist/transformers/ExportJSONTransformer.d.ts +1 -1
  313. package/dist/transformers/ExportJSONTransformer.d.ts.map +1 -1
  314. package/dist/transformers/ExportJSONTransformer.js +3 -3
  315. package/dist/utilities/ContextVariableUtils.d.ts +3 -1
  316. package/dist/utilities/ContextVariableUtils.d.ts.map +1 -1
  317. package/dist/utilities/ContextVariableUtils.js +25 -7
  318. package/dist/utilities/PromiseUtils.d.ts +9 -0
  319. package/dist/utilities/PromiseUtils.d.ts.map +1 -0
  320. package/dist/utilities/PromiseUtils.js +27 -0
  321. package/dist/utilities/RedactionUtils.d.ts +3 -0
  322. package/dist/utilities/RedactionUtils.d.ts.map +1 -0
  323. package/dist/utilities/RedactionUtils.js +55 -0
  324. package/dist/visitor/client.visitor.d.ts +7 -0
  325. package/dist/visitor/client.visitor.d.ts.map +1 -1
  326. package/dist/visitor/client.visitor.js +135 -30
  327. package/dist/visitor/construct.visitor.d.ts +6 -0
  328. package/dist/visitor/construct.visitor.d.ts.map +1 -1
  329. package/dist/visitor/construct.visitor.js +152 -108
  330. package/dist/visitor/data-value.visitor.d.ts +3 -0
  331. package/dist/visitor/data-value.visitor.d.ts.map +1 -1
  332. package/dist/visitor/data-value.visitor.js +6 -1
  333. package/dist/visitor/json-type-def.visitor.d.ts +4 -0
  334. package/dist/visitor/json-type-def.visitor.d.ts.map +1 -1
  335. package/dist/visitor/json-type-def.visitor.js +25 -4
  336. package/dist/visitor/migrate-config-v4-v5.visitor.d.ts +9 -3
  337. package/dist/visitor/migrate-config-v4-v5.visitor.d.ts.map +1 -1
  338. package/dist/visitor/migrate-config-v4-v5.visitor.js +168 -104
  339. package/dist/visitor/template.visitor.d.ts +3 -0
  340. package/dist/visitor/template.visitor.d.ts.map +1 -1
  341. package/dist/visitor/template.visitor.js +6 -1
  342. package/dist/visitor/validator.visitor.d.ts +3 -1
  343. package/dist/visitor/validator.visitor.d.ts.map +1 -1
  344. package/dist/visitor/validator.visitor.js +8 -2
  345. package/dist/visitor/visitor-helpers.js +2 -2
  346. package/dist/waterline-models/BrandingConfig.d.ts +2 -0
  347. package/dist/waterline-models/BrandingConfig.d.ts.map +1 -1
  348. package/dist/waterline-models/BrandingConfig.js +6 -1
  349. package/dist/waterline-models/FigshareVocabularyCategory.d.ts +38 -0
  350. package/dist/waterline-models/FigshareVocabularyCategory.d.ts.map +1 -0
  351. package/dist/waterline-models/FigshareVocabularyCategory.js +157 -0
  352. package/dist/waterline-models/FigshareVocabularyCrosswalk.d.ts +37 -0
  353. package/dist/waterline-models/FigshareVocabularyCrosswalk.d.ts.map +1 -0
  354. package/dist/waterline-models/FigshareVocabularyCrosswalk.js +153 -0
  355. package/dist/waterline-models/FigshareVocabularyCrosswalkMapping.d.ts +37 -0
  356. package/dist/waterline-models/FigshareVocabularyCrosswalkMapping.d.ts.map +1 -0
  357. package/dist/waterline-models/FigshareVocabularyCrosswalkMapping.js +138 -0
  358. package/dist/waterline-models/FigshareVocabularySource.d.ts +45 -0
  359. package/dist/waterline-models/FigshareVocabularySource.d.ts.map +1 -0
  360. package/dist/waterline-models/FigshareVocabularySource.js +149 -0
  361. package/dist/waterline-models/FigshareVocabularySyncRun.d.ts +70 -0
  362. package/dist/waterline-models/FigshareVocabularySyncRun.d.ts.map +1 -0
  363. package/dist/waterline-models/FigshareVocabularySyncRun.js +237 -0
  364. package/dist/waterline-models/Vocabulary.d.ts +3 -1
  365. package/dist/waterline-models/Vocabulary.d.ts.map +1 -1
  366. package/dist/waterline-models/Vocabulary.js +9 -3
  367. package/dist/waterline-models/index.d.ts +10 -0
  368. package/dist/waterline-models/index.d.ts.map +1 -1
  369. package/dist/waterline-models/index.js +16 -1
  370. package/package.json +28 -31
  371. package/dist/form-config/dataRecord-1.0-draft.d.ts +0 -4
  372. package/dist/form-config/dataRecord-1.0-draft.d.ts.map +0 -1
  373. package/dist/form-config/dataRecord-1.0-draft.js +0 -1042
  374. package/dist/form-config/default-1.0-draft.d.ts +0 -4
  375. package/dist/form-config/default-1.0-draft.d.ts.map +0 -1
  376. package/dist/form-config/default-1.0-draft.js +0 -1156
@@ -0,0 +1,408 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FIGSHARE_SNAPSHOT_LIMITS = exports.FIGSHARE_NORMALIZER_VERSION = void 0;
4
+ exports.normalizeCategoryCode = normalizeCategoryCode;
5
+ exports.toSourceCodeCandidates = toSourceCodeCandidates;
6
+ exports.normalizeLabel = normalizeLabel;
7
+ exports.normalizeFigshareCategories = normalizeFigshareCategories;
8
+ exports.groupTaxonomies = groupTaxonomies;
9
+ exports.filterByTaxonomy = filterByTaxonomy;
10
+ exports.hashSnapshot = hashSnapshot;
11
+ exports.assertSnapshotWithinLimits = assertSnapshotWithinLimits;
12
+ exports.classifyChanges = classifyChanges;
13
+ exports.buildProposals = buildProposals;
14
+ exports.buildIdentityProposals = buildIdentityProposals;
15
+ const node_crypto_1 = require("node:crypto");
16
+ const vocabulary_errors_1 = require("./vocabulary-errors");
17
+ /**
18
+ * Bumped whenever normalisation or proposal rules change so that stored sync runs
19
+ * remain reproducible and comparable.
20
+ */
21
+ exports.FIGSHARE_NORMALIZER_VERSION = '1';
22
+ /** Guard rails that keep a preview inside Mongo's document size limit. */
23
+ exports.FIGSHARE_SNAPSHOT_LIMITS = {
24
+ maxCategories: 20000,
25
+ maxSnapshotBytes: 8 * 1024 * 1024
26
+ };
27
+ /**
28
+ * Trim, drop any query string and keep the final URI/hash segment so that
29
+ * `http://purl.org/au-research/vocabulary/anzsrc-for/2020/300101` and `300101`
30
+ * compare equal.
31
+ */
32
+ function normalizeCategoryCode(value) {
33
+ const rawValue = String(value ?? '').trim();
34
+ if (rawValue === '') {
35
+ return '';
36
+ }
37
+ const withoutQuery = rawValue.split('?')[0] ?? rawValue;
38
+ const delimiterIndex = Math.max(withoutQuery.lastIndexOf('/'), withoutQuery.lastIndexOf('#'));
39
+ const segment = delimiterIndex === -1 ? withoutQuery : withoutQuery.slice(delimiterIndex + 1);
40
+ return segment.trim().toLowerCase();
41
+ }
42
+ /**
43
+ * Coerce the result of a categories binding into candidate code strings: arrays are
44
+ * flattened, and object entries are reduced through their `notation` or `code` field.
45
+ * No normalisation is applied — callers pick the normaliser that suits their matcher.
46
+ */
47
+ function toSourceCodeCandidates(value) {
48
+ const items = Array.isArray(value) ? value : value != null && value !== '' ? [value] : [];
49
+ return items
50
+ .filter(Boolean)
51
+ .map((item) => {
52
+ if (typeof item === 'object' && item != null) {
53
+ const record = item;
54
+ return String(record.notation ?? record.code ?? '');
55
+ }
56
+ return String(item);
57
+ })
58
+ .map((code) => code.trim())
59
+ .filter((code) => code !== '');
60
+ }
61
+ /** Collapse internal whitespace and normalise Unicode so labels compare stably. */
62
+ function normalizeLabel(value) {
63
+ return String(value ?? '').normalize('NFC').replace(/\s+/g, ' ').trim();
64
+ }
65
+ function sha256(value) {
66
+ return `sha256:${(0, node_crypto_1.createHash)('sha256').update(value, 'utf8').digest('hex')}`;
67
+ }
68
+ function canonicalRow(row) {
69
+ return JSON.stringify([
70
+ row.sourceId,
71
+ row.categoryId,
72
+ row.taxonomyId,
73
+ row.title,
74
+ row.parentSourceId,
75
+ row.path,
76
+ row.selectable,
77
+ row.hasChildren
78
+ ]);
79
+ }
80
+ function toPositiveInteger(value) {
81
+ const parsed = Number(value);
82
+ return Number.isInteger(parsed) && parsed > 0 ? parsed : null;
83
+ }
84
+ /**
85
+ * Validate and canonicalise a raw Figshare category response.
86
+ *
87
+ * Identity is the Figshare `source_id` when present (Q-01: prefer the taxonomy code,
88
+ * keep the numeric id as the mutable publishing relationship), falling back to the
89
+ * numeric id for catalogues that omit it.
90
+ */
91
+ function normalizeFigshareCategories(raw) {
92
+ if (!Array.isArray(raw)) {
93
+ throw new vocabulary_errors_1.CatalogueInvalidError('Figshare returned a category catalogue that is not an array');
94
+ }
95
+ if (raw.length > exports.FIGSHARE_SNAPSHOT_LIMITS.maxCategories) {
96
+ throw new vocabulary_errors_1.SnapshotTooLargeError(`Figshare returned ${raw.length} categories which exceeds the supported maximum of ${exports.FIGSHARE_SNAPSHOT_LIMITS.maxCategories}`);
97
+ }
98
+ const staged = [];
99
+ const byCategoryId = new Map();
100
+ const seenSourceIds = new Set();
101
+ for (const entry of raw) {
102
+ if (entry == null || typeof entry !== 'object' || Array.isArray(entry)) {
103
+ throw new vocabulary_errors_1.CatalogueInvalidError('Figshare category catalogue contains a non-object entry');
104
+ }
105
+ const category = entry;
106
+ const categoryId = toPositiveInteger(category.id);
107
+ if (categoryId == null) {
108
+ throw new vocabulary_errors_1.CatalogueInvalidError('Figshare category is missing a positive numeric id');
109
+ }
110
+ const title = normalizeLabel(category.title);
111
+ if (title === '') {
112
+ throw new vocabulary_errors_1.CatalogueInvalidError(`Figshare category ${categoryId} is missing a title`);
113
+ }
114
+ const sourceId = String(category.source_id ?? '').trim() || String(categoryId);
115
+ if (seenSourceIds.has(sourceId)) {
116
+ throw new vocabulary_errors_1.CatalogueInvalidError(`Figshare category catalogue contains a duplicate source_id '${sourceId}'`);
117
+ }
118
+ if (byCategoryId.has(categoryId)) {
119
+ throw new vocabulary_errors_1.CatalogueInvalidError(`Figshare category catalogue contains a duplicate id '${categoryId}'`);
120
+ }
121
+ seenSourceIds.add(sourceId);
122
+ const stagedCategory = {
123
+ sourceId,
124
+ categoryId,
125
+ taxonomyId: String(toPositiveInteger(category.taxonomy_id) ?? ''),
126
+ title,
127
+ rawParentId: toPositiveInteger(category.parent_id),
128
+ selectable: category.is_selectable !== false,
129
+ hasChildren: category.has_children === true
130
+ };
131
+ staged.push(stagedCategory);
132
+ byCategoryId.set(categoryId, stagedCategory);
133
+ }
134
+ const warnings = [];
135
+ const parentBySourceId = new Map();
136
+ for (const category of staged) {
137
+ if (category.rawParentId == null) {
138
+ parentBySourceId.set(category.sourceId, null);
139
+ continue;
140
+ }
141
+ const parent = byCategoryId.get(category.rawParentId);
142
+ if (!parent) {
143
+ // Public catalogue responses can omit ancestors; promote to a root and say so.
144
+ warnings.push({
145
+ code: 'missing-parent',
146
+ sourceId: category.sourceId,
147
+ detail: `Parent category ${category.rawParentId} is not present in this catalogue; the term is promoted to a root`
148
+ });
149
+ parentBySourceId.set(category.sourceId, null);
150
+ continue;
151
+ }
152
+ parentBySourceId.set(category.sourceId, parent.sourceId);
153
+ }
154
+ const stagedBySourceId = new Map(staged.map((category) => [category.sourceId, category]));
155
+ const buildPath = (category) => {
156
+ const path = [category.sourceId];
157
+ const seen = new Set([category.sourceId]);
158
+ let cursorSourceId = parentBySourceId.get(category.sourceId) ?? null;
159
+ while (cursorSourceId != null) {
160
+ if (seen.has(cursorSourceId)) {
161
+ warnings.push({
162
+ code: 'cycle-detected',
163
+ sourceId: category.sourceId,
164
+ detail: `Ancestor cycle detected at '${cursorSourceId}'; the remaining ancestors are omitted`
165
+ });
166
+ break;
167
+ }
168
+ seen.add(cursorSourceId);
169
+ path.unshift(cursorSourceId);
170
+ cursorSourceId = parentBySourceId.get(cursorSourceId) ?? null;
171
+ }
172
+ return path;
173
+ };
174
+ const resolveTaxonomyId = (category) => {
175
+ if (category.taxonomyId !== '') {
176
+ return category.taxonomyId;
177
+ }
178
+ // Catalogues without taxonomy_id are grouped by their root ancestor instead.
179
+ const path = buildPath(category);
180
+ const rootSourceId = path[0] ?? category.sourceId;
181
+ const root = stagedBySourceId.get(rootSourceId);
182
+ if (root != null && root.taxonomyId !== '') {
183
+ return root.taxonomyId;
184
+ }
185
+ warnings.push({
186
+ code: 'missing-taxonomy',
187
+ sourceId: category.sourceId,
188
+ detail: `Figshare did not supply taxonomy_id; grouped under root term '${rootSourceId}'`
189
+ });
190
+ return `root:${rootSourceId}`;
191
+ };
192
+ const rows = staged.map((category) => {
193
+ const base = {
194
+ sourceId: category.sourceId,
195
+ categoryId: category.categoryId,
196
+ taxonomyId: resolveTaxonomyId(category),
197
+ title: category.title,
198
+ parentSourceId: parentBySourceId.get(category.sourceId) ?? null,
199
+ path: buildPath(category),
200
+ selectable: category.selectable,
201
+ hasChildren: category.hasChildren
202
+ };
203
+ return { ...base, contentHash: sha256(canonicalRow(base)) };
204
+ });
205
+ rows.sort((left, right) => left.sourceId.localeCompare(right.sourceId));
206
+ return { rows, warnings };
207
+ }
208
+ /** Group a normalized catalogue into the taxonomies an administrator can select. */
209
+ function groupTaxonomies(result) {
210
+ const missingParentSourceIds = new Set(result.warnings.filter((warning) => warning.code === 'missing-parent').map((warning) => warning.sourceId));
211
+ const summaries = new Map();
212
+ for (const row of result.rows) {
213
+ const summary = summaries.get(row.taxonomyId) ?? {
214
+ taxonomyId: row.taxonomyId,
215
+ title: `Taxonomy ${row.taxonomyId}`,
216
+ categoryCount: 0,
217
+ selectableCount: 0,
218
+ missingParentCount: 0
219
+ };
220
+ summary.categoryCount += 1;
221
+ if (row.selectable) {
222
+ summary.selectableCount += 1;
223
+ }
224
+ if (missingParentSourceIds.has(row.sourceId)) {
225
+ summary.missingParentCount += 1;
226
+ }
227
+ summaries.set(row.taxonomyId, summary);
228
+ }
229
+ return Array.from(summaries.values()).sort((left, right) => left.taxonomyId.localeCompare(right.taxonomyId));
230
+ }
231
+ /** Restrict a normalized catalogue to a single taxonomy. */
232
+ function filterByTaxonomy(result, taxonomyId) {
233
+ const normalizedTaxonomyId = String(taxonomyId ?? '').trim();
234
+ const rows = result.rows.filter((row) => row.taxonomyId === normalizedTaxonomyId);
235
+ const retained = new Set(rows.map((row) => row.sourceId));
236
+ return {
237
+ rows,
238
+ warnings: result.warnings.filter((warning) => retained.has(warning.sourceId))
239
+ };
240
+ }
241
+ /**
242
+ * Serialise the canonical ordered row set and hash it. The same Figshare content
243
+ * always produces the same hash.
244
+ */
245
+ function hashSnapshot(rows) {
246
+ const ordered = [...rows].sort((left, right) => left.sourceId.localeCompare(right.sourceId));
247
+ const serialized = JSON.stringify(ordered.map((row) => row.contentHash));
248
+ return sha256(serialized);
249
+ }
250
+ /** Reject an over-limit snapshot before any database write. */
251
+ function assertSnapshotWithinLimits(rows) {
252
+ if (rows.length > exports.FIGSHARE_SNAPSHOT_LIMITS.maxCategories) {
253
+ throw new vocabulary_errors_1.SnapshotTooLargeError(`The selected taxonomy contains ${rows.length} categories which exceeds the supported maximum of ${exports.FIGSHARE_SNAPSHOT_LIMITS.maxCategories}`);
254
+ }
255
+ const byteLength = Buffer.byteLength(JSON.stringify(rows), 'utf8');
256
+ if (byteLength > exports.FIGSHARE_SNAPSHOT_LIMITS.maxSnapshotBytes) {
257
+ throw new vocabulary_errors_1.SnapshotTooLargeError(`The normalized snapshot is ${byteLength} bytes which exceeds the supported maximum of ${exports.FIGSHARE_SNAPSHOT_LIMITS.maxSnapshotBytes}`);
258
+ }
259
+ }
260
+ /** Classify remote changes against the currently mirrored categories. */
261
+ function classifyChanges(existing, snapshot) {
262
+ const existingBySourceId = new Map(existing.map((row) => [row.sourceId, row]));
263
+ const remoteBySourceId = new Map(snapshot.map((row) => [row.sourceId, row]));
264
+ const rows = [];
265
+ const summary = { added: 0, changed: 0, removed: 0, reappeared: 0, unchanged: 0 };
266
+ for (const remote of snapshot) {
267
+ const local = existingBySourceId.get(remote.sourceId);
268
+ if (!local) {
269
+ rows.push({ changeClass: 'added', sourceId: remote.sourceId, title: remote.title, categoryId: remote.categoryId });
270
+ summary.added += 1;
271
+ continue;
272
+ }
273
+ if (local.historical) {
274
+ rows.push({
275
+ changeClass: 'reappeared',
276
+ sourceId: remote.sourceId,
277
+ title: remote.title,
278
+ categoryId: remote.categoryId,
279
+ previousCategoryId: local.categoryId,
280
+ previousTitle: local.title
281
+ });
282
+ summary.reappeared += 1;
283
+ continue;
284
+ }
285
+ if (local.contentHash !== remote.contentHash) {
286
+ rows.push({
287
+ changeClass: 'changed',
288
+ sourceId: remote.sourceId,
289
+ title: remote.title,
290
+ categoryId: remote.categoryId,
291
+ previousCategoryId: local.categoryId,
292
+ previousTitle: local.title
293
+ });
294
+ summary.changed += 1;
295
+ continue;
296
+ }
297
+ rows.push({ changeClass: 'unchanged', sourceId: remote.sourceId, title: remote.title, categoryId: remote.categoryId });
298
+ summary.unchanged += 1;
299
+ }
300
+ for (const local of existing) {
301
+ if (remoteBySourceId.has(local.sourceId) || local.historical) {
302
+ continue;
303
+ }
304
+ rows.push({
305
+ changeClass: 'removed',
306
+ sourceId: local.sourceId,
307
+ title: local.title,
308
+ previousCategoryId: local.categoryId,
309
+ previousTitle: local.title
310
+ });
311
+ summary.removed += 1;
312
+ }
313
+ rows.sort((left, right) => left.sourceId.localeCompare(right.sourceId));
314
+ return { rows, summary };
315
+ }
316
+ /**
317
+ * Deterministic proposal rules. Exact code and identity matches are preselected;
318
+ * a unique exact label match is offered but never preselected; anything ambiguous
319
+ * stays unresolved. No fuzzy matching is performed.
320
+ */
321
+ function buildProposals(localEntries, snapshot, options = {}) {
322
+ const historicalSourceIds = options.historicalSourceIds ?? new Set();
323
+ const byCode = new Map();
324
+ const byLabel = new Map();
325
+ for (const row of snapshot) {
326
+ const code = normalizeCategoryCode(row.sourceId);
327
+ if (code !== '') {
328
+ byCode.set(code, [...(byCode.get(code) ?? []), row]);
329
+ }
330
+ const label = row.title.toLowerCase();
331
+ byLabel.set(label, [...(byLabel.get(label) ?? []), row]);
332
+ }
333
+ const proposals = [];
334
+ const unresolvedLocalEntryIds = [];
335
+ const pushProposal = (entry, target, matchType, preselected, evidence) => {
336
+ proposals.push({
337
+ proposalId: `${entry.id}:${target.sourceId}`,
338
+ localEntryId: entry.id,
339
+ localLabel: entry.label,
340
+ localValue: entry.value,
341
+ localIdentifier: entry.identifier,
342
+ targetSourceId: target.sourceId,
343
+ targetCategoryId: target.categoryId,
344
+ targetTitle: target.title,
345
+ matchType,
346
+ preselected,
347
+ historical: historicalSourceIds.has(target.sourceId),
348
+ evidence: { ...evidence, normalizerVersion: exports.FIGSHARE_NORMALIZER_VERSION }
349
+ });
350
+ };
351
+ for (const entry of localEntries) {
352
+ const normalizedValue = normalizeCategoryCode(entry.value);
353
+ const exactCodeMatches = normalizedValue === '' ? [] : (byCode.get(normalizedValue) ?? []);
354
+ if (exactCodeMatches.length > 0) {
355
+ for (const target of exactCodeMatches) {
356
+ pushProposal(entry, target, 'exact-code', true, { rule: 'exact-code', normalizedValue });
357
+ }
358
+ continue;
359
+ }
360
+ const normalizedIdentifier = normalizeCategoryCode(entry.identifier);
361
+ const identityMatches = normalizedIdentifier === '' ? [] : (byCode.get(normalizedIdentifier) ?? []);
362
+ if (identityMatches.length > 0) {
363
+ for (const target of identityMatches) {
364
+ pushProposal(entry, target, 'identity', true, { rule: 'identity', normalizedIdentifier });
365
+ }
366
+ continue;
367
+ }
368
+ const labelMatches = byLabel.get(normalizeLabel(entry.label).toLowerCase()) ?? [];
369
+ if (labelMatches.length === 1) {
370
+ pushProposal(entry, labelMatches[0], 'label-suggestion', false, {
371
+ rule: 'exact-label',
372
+ normalizedLabel: normalizeLabel(entry.label)
373
+ });
374
+ continue;
375
+ }
376
+ unresolvedLocalEntryIds.push(entry.id);
377
+ }
378
+ return { proposals, unresolvedLocalEntryIds };
379
+ }
380
+ /** Identity proposals for a freshly created clone: every entry maps to its own source term. */
381
+ function buildIdentityProposals(clonedEntries, snapshot) {
382
+ const bySourceId = new Map(snapshot.map((row) => [row.sourceId, row]));
383
+ const proposals = [];
384
+ const unresolvedLocalEntryIds = [];
385
+ for (const entry of clonedEntries) {
386
+ const target = bySourceId.get(entry.sourceId);
387
+ if (!target) {
388
+ unresolvedLocalEntryIds.push(entry.id);
389
+ continue;
390
+ }
391
+ proposals.push({
392
+ proposalId: `${entry.id}:${target.sourceId}`,
393
+ localEntryId: entry.id,
394
+ localLabel: entry.label,
395
+ localValue: entry.value,
396
+ localIdentifier: entry.identifier,
397
+ targetSourceId: target.sourceId,
398
+ targetCategoryId: target.categoryId,
399
+ targetTitle: target.title,
400
+ matchType: 'identity',
401
+ preselected: true,
402
+ historical: false,
403
+ evidence: { rule: 'clone-identity', normalizerVersion: exports.FIGSHARE_NORMALIZER_VERSION }
404
+ });
405
+ }
406
+ return { proposals, unresolvedLocalEntryIds };
407
+ }
408
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcmllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9maWdzaGFyZS12Mi9jYXRlZ29yaWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQXNIQSxzREFTQztBQU9ELHdEQWFDO0FBR0Qsd0NBRUM7QUErQkQsa0VBMklDO0FBR0QsMENBMkJDO0FBR0QsNENBV0M7QUFNRCxvQ0FJQztBQUdELGdFQVlDO0FBR0QsMENBNERDO0FBT0Qsd0NBNEVDO0FBR0Qsd0RBK0JDO0FBM2pCRCw2Q0FBeUM7QUFFekMsMkRBQW1GO0FBRW5GOzs7R0FHRztBQUNVLFFBQUEsMkJBQTJCLEdBQUcsR0FBRyxDQUFDO0FBRS9DLDBFQUEwRTtBQUM3RCxRQUFBLHdCQUF3QixHQUFHO0lBQ3RDLGFBQWEsRUFBRSxLQUFLO0lBQ3BCLGdCQUFnQixFQUFFLENBQUMsR0FBRyxJQUFJLEdBQUcsSUFBSTtDQUN6QixDQUFDO0FBbUdYOzs7O0dBSUc7QUFDSCxTQUFnQixxQkFBcUIsQ0FBQyxLQUFjO0lBQ2xELE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDNUMsSUFBSSxRQUFRLEtBQUssRUFBRSxFQUFFLENBQUM7UUFDcEIsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBQ0QsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxRQUFRLENBQUM7SUFDeEQsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxFQUFFLFlBQVksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM5RixNQUFNLE9BQU8sR0FBRyxjQUFjLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENB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
@@ -8,6 +8,16 @@ export interface ResolvedFigsharePublishingConfigData extends FigsharePublishing
8
8
  }
9
9
  export declare function getBrandName(record?: RecordModel): string;
10
10
  export declare function resolveFigsharePublishingConfig(record?: RecordModel): ResolvedFigsharePublishingConfigData | null;
11
+ /**
12
+ * Resolve the brand's Figshare connection for vocabulary administration.
13
+ *
14
+ * Unlike {@link resolveFigsharePublishingConfig} this deliberately ignores the
15
+ * `enabled` flag: catalogue discovery and crosswalk maintenance are useful before
16
+ * record publishing is switched on. The token is resolved server-side and may be
17
+ * empty, because the public catalogue is anonymous; callers requiring the account
18
+ * catalogue must check for a token themselves.
19
+ */
20
+ export declare function resolveFigshareVocabularyConfig(brandName: string): ResolvedFigsharePublishingConfigData | null;
11
21
  export declare function getSyncState(config: FigsharePublishingConfigData, record: RecordModel): FigshareSyncState;
12
22
  export declare function setSyncState(config: FigsharePublishingConfigData, record: RecordModel, syncState: FigshareSyncState): void;
13
23
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/services/figshare-v2/config.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,qBAAqB,EAC1B,KAAK,4BAA4B,EAClC,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EAAE,iBAAiB,EAAkC,WAAW,EAAE,MAAM,SAAS,CAAC;AAGzF,MAAM,WAAW,oCAAqC,SAAQ,4BAA4B;IACxF,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;QACzB,QAAQ,CAAC,EAAE,qBAAqB,CAAC;KAClC,CAAC;CACH;AAED,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,MAAM,CAIzD;AAkBD,wBAAgB,+BAA+B,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,oCAAoC,GAAG,IAAI,CAkCjH;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,4BAA4B,EAAE,MAAM,EAAE,WAAW,GAAG,iBAAiB,CAEzG;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,4BAA4B,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,iBAAiB,GAAG,IAAI,CAO1H"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/services/figshare-v2/config.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,qBAAqB,EAC1B,KAAK,4BAA4B,EAClC,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EAAE,iBAAiB,EAAkC,WAAW,EAAE,MAAM,SAAS,CAAC;AAGzF,MAAM,WAAW,oCAAqC,SAAQ,4BAA4B;IACxF,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;QACzB,QAAQ,CAAC,EAAE,qBAAqB,CAAC;KAClC,CAAC;CACH;AAED,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,MAAM,CA0BzD;AAkBD,wBAAgB,+BAA+B,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,oCAAoC,GAAG,IAAI,CAkCjH;AAED;;;;;;;;GAQG;AACH,wBAAgB,+BAA+B,CAAC,SAAS,EAAE,MAAM,GAAG,oCAAoC,GAAG,IAAI,CA4B9G;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,4BAA4B,EAAE,MAAM,EAAE,WAAW,GAAG,iBAAiB,CAEzG;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,4BAA4B,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,iBAAiB,GAAG,IAAI,CAO1H"}
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.getBrandName = getBrandName;
7
7
  exports.resolveFigsharePublishingConfig = resolveFigsharePublishingConfig;
8
+ exports.resolveFigshareVocabularyConfig = resolveFigshareVocabularyConfig;
8
9
  exports.getSyncState = getSyncState;
9
10
  exports.setSyncState = setSyncState;
10
11
  const lodash_1 = __importDefault(require("lodash"));
@@ -15,7 +16,31 @@ function getBrandName(record) {
15
16
  if (record == null)
16
17
  return 'default';
17
18
  const rm = record;
18
- return rm.metaMetadata?.brandId ?? record.branding ?? 'default';
19
+ const rawBrand = String(rm.metaMetadata?.brandId ?? record.branding ?? '').trim();
20
+ if (rawBrand === '')
21
+ return 'default';
22
+ // `metaMetadata.brandId` holds the brand id, but AppConfigService keys its per-brand
23
+ // config map by brand NAME - resolve id -> name (mirrors doi-v2/config). Without this,
24
+ // id lookups silently fall through to the global brandingConfigurationDefaults and
25
+ // per-brand admin-UI overrides are ignored.
26
+ const brandingService = typeof BrandingService === 'undefined' ? undefined : BrandingService;
27
+ if (brandingService == null)
28
+ return rawBrand;
29
+ const brandById = typeof brandingService.getBrandById === 'function' ? brandingService.getBrandById(rawBrand) : undefined;
30
+ if (brandById?.name != null && String(brandById.name).trim() !== '') {
31
+ return String(brandById.name);
32
+ }
33
+ // Some callers (queue jobs, the workflow transition job) already pass a brand name.
34
+ const brandByName = typeof brandingService.getBrand === 'function' ? brandingService.getBrand(rawBrand) : undefined;
35
+ if (brandByName != null)
36
+ return rawBrand;
37
+ // Unknown brand (e.g. deleted): do NOT throw - resolveFigsharePublishingConfig must keep
38
+ // its `null -> graceful no-op` contract for lifecycle hooks (createUpdateFigshareArticle,
39
+ // uploadFilesToFigshareArticle, ...). Returning the raw value preserves the previous
40
+ // fallback semantics (AppConfigService serves the global brandingConfigurationDefaults
41
+ // for unknown keys), now with a warning instead of silence.
42
+ sails.log.warn(`FigService - unable to resolve brand id or name '${rawBrand}'; global branding configuration defaults will apply`);
43
+ return rawBrand;
19
44
  }
20
45
  function resolveFigshareDevConfig() {
21
46
  const rawConfig = sails.config?.figshareDev;
@@ -67,6 +92,43 @@ function resolveFigsharePublishingConfig(record) {
67
92
  }
68
93
  return null;
69
94
  }
95
+ /**
96
+ * Resolve the brand's Figshare connection for vocabulary administration.
97
+ *
98
+ * Unlike {@link resolveFigsharePublishingConfig} this deliberately ignores the
99
+ * `enabled` flag: catalogue discovery and crosswalk maintenance are useful before
100
+ * record publishing is switched on. The token is resolved server-side and may be
101
+ * empty, because the public catalogue is anonymous; callers requiring the account
102
+ * catalogue must check for a token themselves.
103
+ */
104
+ function resolveFigshareVocabularyConfig(brandName) {
105
+ const appConfigService = index_1.ServiceExports.AppConfigService;
106
+ const brandConfig = appConfigService?.getAppConfigurationForBrand?.(brandName)
107
+ ?? appConfigService?.getAppConfigurationForBrand?.('default');
108
+ const brandConfigRecord = brandConfig != null && typeof brandConfig === 'object' ? brandConfig : undefined;
109
+ const figsharePublishing = brandConfigRecord?.figsharePublishing;
110
+ const figsharePublishingConfig = figsharePublishing != null && typeof figsharePublishing === 'object'
111
+ ? figsharePublishing
112
+ : undefined;
113
+ if (figsharePublishingConfig == null) {
114
+ return null;
115
+ }
116
+ const resolvedConfig = lodash_1.default.merge(new FigsharePublishing_1.FigsharePublishing(), lodash_1.default.cloneDeep(figsharePublishingConfig));
117
+ const figshareDev = resolveFigshareDevConfig();
118
+ const useFixtureRuntime = shouldUseFixtureRuntime(figshareDev);
119
+ resolvedConfig.runtime = {
120
+ mode: useFixtureRuntime ? 'fixture' : 'live',
121
+ fixtures: useFixtureRuntime ? lodash_1.default.cloneDeep(figshareDev.fixtures) : undefined
122
+ };
123
+ resolvedConfig.connection = resolvedConfig.connection != null && typeof resolvedConfig.connection === 'object'
124
+ ? resolvedConfig.connection
125
+ : { ...new FigsharePublishing_1.FigsharePublishing().connection };
126
+ const connectionToken = resolvedConfig.connection.token;
127
+ resolvedConfig.connection.token = typeof connectionToken === 'string' && connectionToken.trim() !== ''
128
+ ? (0, FigsharePublishing_1.resolveFigshareConnectionToken)(connectionToken, { allowEmpty: true })
129
+ : '';
130
+ return resolvedConfig;
131
+ }
70
132
  function getSyncState(config, record) {
71
133
  return (0, types_1.getRecordField)(record, config.record.syncStatePath) ?? { status: 'idle' };
72
134
  }
@@ -78,4 +140,4 @@ function setSyncState(config, record, syncState) {
78
140
  (0, types_1.setRecordField)(record, config.record.statusPath, syncState.status);
79
141
  (0, types_1.setRecordField)(record, config.record.errorPath, syncState.lastError ?? '');
80
142
  }
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL2ZpZ3NoYXJlLXYyL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQWtCQSxvQ0FJQztBQWtCRCwwRUFrQ0M7QUFFRCxvQ0FFQztBQUVELG9DQU9DO0FBdkZELG9EQUF1QjtBQUN2Qiw4RUFLK0M7QUFFL0MsbUNBQXlGO0FBQ3pGLG9DQUEwQztBQVMxQyxTQUFnQixZQUFZLENBQUMsTUFBb0I7SUFDL0MsSUFBSSxNQUFNLElBQUksSUFBSTtRQUFFLE9BQU8sU0FBUyxDQUFDO0lBQ3JDLE1BQU0sRUFBRSxHQUFHLE1BQXFCLENBQUM7SUFDakMsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLE9BQU8sSUFBSyxNQUFrQyxDQUFDLFFBQWtCLElBQUksU0FBUyxDQUFDO0FBQ3pHLENBQUM7QUFFRCxTQUFTLHdCQUF3QjtJQUMvQixNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQztJQUM1QyxJQUFJLFNBQVMsSUFBSSxJQUFJLElBQUksT0FBTyxTQUFTLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDdkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFDRCxPQUFPLFNBQThCLENBQUM7QUFDeEMsQ0FBQztBQUVELFNBQVMsdUJBQXVCLENBQUMsV0FBOEI7SUFDN0QsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsV0FBVyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2xHLElBQUksV0FBVyxLQUFLLFlBQVksRUFBRSxDQUFDO1FBQ2pDLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUNELE9BQU8sV0FBVyxDQUFDLE9BQU8sS0FB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
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL2ZpZ3NoYXJlLXYyL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQWtCQSxvQ0EwQkM7QUFrQkQsMEVBa0NDO0FBV0QsMEVBNEJDO0FBRUQsb0NBRUM7QUFFRCxvQ0FPQztBQXBKRCxvREFBdUI7QUFDdkIsOEVBSytDO0FBRS9DLG1DQUF5RjtBQUN6RixvQ0FBMEM7QUFTMUMsU0FBZ0IsWUFBWSxDQUFDLE1BQW9CO0lBQy9DLElBQUksTUFBTSxJQUFJLElBQUk7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUNyQyxNQUFNLEVBQUUsR0FBRyxNQUFxQixDQUFDO0lBQ2pDLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLE9BQU8sSUFBSyxNQUFrQyxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMvRyxJQUFJLFFBQVEsS0FBSyxFQUFFO1FBQUUsT0FBTyxTQUFTLENBQUM7SUFFdEMscUZBQXFGO0lBQ3JGLHVGQUF1RjtJQUN2RixtRkFBbUY7SUFDbkYsNENBQTRDO0lBQzVDLE1BQU0sZUFBZSxHQUFHLE9BQU8sZUFBZSxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUM7SUFDN0YsSUFBSSxlQUFlLElBQUksSUFBSTtRQUFFLE9BQU8sUUFBUSxDQUFDO0lBQzdDLE1BQU0sU0FBUyxHQUFHLE9BQU8sZUFBZSxDQUFDLFlBQVksS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUMxSCxJQUFJLFNBQVMsRUFBRSxJQUFJLElBQUksSUFBSSxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFF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
@@ -1,4 +1,21 @@
1
1
  import { FigsharePublishingConfigData } from '../../configmodels/FigsharePublishing';
2
- import { FigshareRunContext, RecordModel } from './types';
2
+ import { AnyRecord, FigshareRunContext, RecordModel } from './types';
3
+ /**
4
+ * Ambient information a binding may need that cannot be read off its evaluation
5
+ * target. Author lookup rules, for example, evaluate against a contributor object
6
+ * rather than the record, so the brand has to be carried alongside.
7
+ */
8
+ export interface BindingContext {
9
+ brandId: string;
10
+ record: AnyRecord;
11
+ }
12
+ /**
13
+ * Resolve the brand a record belongs to. `metaMetadata.brandId` wins; `branding`
14
+ * is the fallback. Either may hold an ID or a name, so both are probed against
15
+ * BrandingService before giving up and returning the raw value.
16
+ */
17
+ export declare function resolveBrandId(record: RecordModel): string;
18
+ /** Build the binding context once per payload so BrandingService is hit only once. */
19
+ export declare function createBindingContext(record: RecordModel): BindingContext;
3
20
  export declare function createRunContext(record: RecordModel, config: FigsharePublishingConfigData, jobId?: string, triggerSource?: string): FigshareRunContext;
4
21
  //# sourceMappingURL=context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/services/figshare-v2/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAkB,MAAM,SAAS,CAAC;AAG1E,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,4BAA4B,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,aAAa,GAAE,MAAiB,GAAG,kBAAkB,CAahK"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/services/figshare-v2/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,uCAAuC,CAAC;AACrF,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,WAAW,EAAkB,MAAM,SAAS,CAAC;AAGrF;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,SAAS,CAAC;CACnB;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAW1D;AAED,sFAAsF;AACtF,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,WAAW,GAAG,cAAc,CAExE;AAYD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,4BAA4B,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,aAAa,GAAE,MAAiB,GAAG,kBAAkB,CAchK"}