@researchdatabox/redbox-core 5.0.3 → 5.0.4-beta.12498

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 (546) hide show
  1. package/dist/AttachmentStagingIdentity.d.ts +3 -0
  2. package/dist/AttachmentStagingIdentity.d.ts.map +1 -0
  3. package/dist/AttachmentStagingIdentity.js +10 -0
  4. package/dist/CoreController.d.ts +7 -3
  5. package/dist/CoreController.d.ts.map +1 -1
  6. package/dist/CoreController.js +85 -3
  7. package/dist/DatastreamService.d.ts +4 -0
  8. package/dist/DatastreamService.d.ts.map +1 -1
  9. package/dist/HarvestRunService.d.ts +4 -3
  10. package/dist/HarvestRunService.d.ts.map +1 -1
  11. package/dist/HarvestRunService.js +1 -1
  12. package/dist/RecordConcurrencyObservability.d.ts +51 -0
  13. package/dist/RecordConcurrencyObservability.d.ts.map +1 -0
  14. package/dist/RecordConcurrencyObservability.js +136 -0
  15. package/dist/RecordEntityTag.d.ts +31 -0
  16. package/dist/RecordEntityTag.d.ts.map +1 -0
  17. package/dist/RecordEntityTag.js +101 -0
  18. package/dist/RecordFormFingerprint.d.ts +7 -0
  19. package/dist/RecordFormFingerprint.d.ts.map +1 -0
  20. package/dist/RecordFormFingerprint.js +106 -0
  21. package/dist/RecordHttpConcurrency.d.ts +60 -0
  22. package/dist/RecordHttpConcurrency.d.ts.map +1 -0
  23. package/dist/RecordHttpConcurrency.js +181 -0
  24. package/dist/RecordSaveResponse.d.ts +219 -0
  25. package/dist/RecordSaveResponse.d.ts.map +1 -0
  26. package/dist/RecordSaveResponse.js +639 -0
  27. package/dist/RecordStorageConcurrency.d.ts +48 -0
  28. package/dist/RecordStorageConcurrency.d.ts.map +1 -0
  29. package/dist/RecordStorageConcurrency.js +103 -0
  30. package/dist/RecordWriteClassification.d.ts +12 -0
  31. package/dist/RecordWriteClassification.d.ts.map +1 -0
  32. package/dist/RecordWriteClassification.js +70 -0
  33. package/dist/RecordsService.d.ts +105 -12
  34. package/dist/RecordsService.d.ts.map +1 -1
  35. package/dist/RecordsService.js +44 -1
  36. package/dist/SearchService.d.ts +2 -1
  37. package/dist/SearchService.d.ts.map +1 -1
  38. package/dist/StorageService.d.ts +48 -8
  39. package/dist/StorageService.d.ts.map +1 -1
  40. package/dist/StorageService.js +19 -1
  41. package/dist/StorageServiceResponse.d.ts +22 -1
  42. package/dist/StorageServiceResponse.d.ts.map +1 -1
  43. package/dist/StorageServiceResponse.js +22 -4
  44. package/dist/action-execution/audit.d.ts +41 -0
  45. package/dist/action-execution/audit.d.ts.map +1 -0
  46. package/dist/action-execution/audit.js +122 -0
  47. package/dist/action-execution/executor.d.ts +24 -0
  48. package/dist/action-execution/executor.d.ts.map +1 -0
  49. package/dist/action-execution/executor.js +435 -0
  50. package/dist/action-execution/failure.d.ts +49 -0
  51. package/dist/action-execution/failure.d.ts.map +1 -0
  52. package/dist/action-execution/failure.js +129 -0
  53. package/dist/action-execution/index.d.ts +7 -0
  54. package/dist/action-execution/index.d.ts.map +1 -0
  55. package/dist/action-execution/index.js +23 -0
  56. package/dist/action-execution/legacy-result.d.ts +21 -0
  57. package/dist/action-execution/legacy-result.d.ts.map +1 -0
  58. package/dist/action-execution/legacy-result.js +70 -0
  59. package/dist/action-execution/policy.d.ts +12 -0
  60. package/dist/action-execution/policy.d.ts.map +1 -0
  61. package/dist/action-execution/policy.js +138 -0
  62. package/dist/action-execution/types.d.ts +121 -0
  63. package/dist/action-execution/types.d.ts.map +1 -0
  64. package/dist/action-execution/types.js +22 -0
  65. package/dist/api-routes/groups/branding.d.ts +8 -0
  66. package/dist/api-routes/groups/branding.d.ts.map +1 -1
  67. package/dist/api-routes/groups/branding.js +86 -11
  68. package/dist/api-routes/groups/dashboard-config.d.ts +12 -9
  69. package/dist/api-routes/groups/dashboard-config.d.ts.map +1 -1
  70. package/dist/api-routes/groups/dashboard-config.js +136 -73
  71. package/dist/api-routes/groups/forms.d.ts.map +1 -1
  72. package/dist/api-routes/groups/forms.js +10 -2
  73. package/dist/api-routes/groups/record-schemas.d.ts +5 -0
  74. package/dist/api-routes/groups/record-schemas.d.ts.map +1 -0
  75. package/dist/api-routes/groups/record-schemas.js +181 -0
  76. package/dist/api-routes/groups/records.d.ts +1 -0
  77. package/dist/api-routes/groups/records.d.ts.map +1 -1
  78. package/dist/api-routes/groups/records.js +141 -26
  79. package/dist/api-routes/index.d.ts +3 -0
  80. package/dist/api-routes/index.d.ts.map +1 -1
  81. package/dist/api-routes/index.js +4 -1
  82. package/dist/api-routes/openapi.d.ts.map +1 -1
  83. package/dist/api-routes/openapi.js +7 -5
  84. package/dist/api-routes/record-schema-openapi.d.ts +26 -0
  85. package/dist/api-routes/record-schema-openapi.d.ts.map +1 -0
  86. package/dist/api-routes/record-schema-openapi.js +38 -0
  87. package/dist/api-routes/record-schema-response.d.ts +40 -0
  88. package/dist/api-routes/record-schema-response.d.ts.map +1 -0
  89. package/dist/api-routes/record-schema-response.js +89 -0
  90. package/dist/api-routes/request-extraction.d.ts.map +1 -1
  91. package/dist/api-routes/request-extraction.js +10 -8
  92. package/dist/api-routes/route-factory.d.ts.map +1 -1
  93. package/dist/api-routes/route-factory.js +2 -1
  94. package/dist/api-routes/route-registry.d.ts.map +1 -1
  95. package/dist/api-routes/route-registry.js +3 -1
  96. package/dist/api-routes/schemas/common.d.ts +36 -0
  97. package/dist/api-routes/schemas/common.d.ts.map +1 -1
  98. package/dist/api-routes/schemas/common.js +95 -5
  99. package/dist/api-routes/schemas/responses.d.ts +1424 -1
  100. package/dist/api-routes/schemas/responses.d.ts.map +1 -1
  101. package/dist/api-routes/schemas/responses.js +382 -60
  102. package/dist/api-routes/types.d.ts +1 -0
  103. package/dist/api-routes/types.d.ts.map +1 -1
  104. package/dist/api-routes/validation.d.ts +5 -1
  105. package/dist/api-routes/validation.d.ts.map +1 -1
  106. package/dist/api-routes/validation.js +14 -15
  107. package/dist/bootstrap.d.ts +3 -1
  108. package/dist/bootstrap.d.ts.map +1 -1
  109. package/dist/bootstrap.js +58 -41
  110. package/dist/config/agendaQueue.config.d.ts +3 -0
  111. package/dist/config/agendaQueue.config.d.ts.map +1 -1
  112. package/dist/config/agendaQueue.config.js +29 -2
  113. package/dist/config/branding.config.d.ts +13 -0
  114. package/dist/config/branding.config.d.ts.map +1 -1
  115. package/dist/config/branding.config.js +34 -2
  116. package/dist/config/brandingConfigurationDefaults.config.d.ts +4 -0
  117. package/dist/config/brandingConfigurationDefaults.config.d.ts.map +1 -1
  118. package/dist/config/brandingConfigurationDefaults.config.js +42 -3
  119. package/dist/config/index.d.ts +12 -4
  120. package/dist/config/index.d.ts.map +1 -1
  121. package/dist/config/index.js +7 -4
  122. package/dist/config/policies.config.d.ts.map +1 -1
  123. package/dist/config/policies.config.js +37 -23
  124. package/dist/config/raid.config.d.ts +7 -4
  125. package/dist/config/raid.config.d.ts.map +1 -1
  126. package/dist/config/raid.config.js +21 -35
  127. package/dist/config/record.config.d.ts +3 -0
  128. package/dist/config/record.config.d.ts.map +1 -1
  129. package/dist/config/record.config.js +37 -35
  130. package/dist/config/recordSchema.config.d.ts +68 -0
  131. package/dist/config/recordSchema.config.d.ts.map +1 -0
  132. package/dist/config/recordSchema.config.js +173 -0
  133. package/dist/config/recordValidation.config.d.ts +19 -0
  134. package/dist/config/recordValidation.config.d.ts.map +1 -0
  135. package/dist/config/recordValidation.config.js +10 -0
  136. package/dist/config/recordtype.config.d.ts +32 -9
  137. package/dist/config/recordtype.config.d.ts.map +1 -1
  138. package/dist/config/recordtype.config.js +4 -7
  139. package/dist/config/routes.config.d.ts.map +1 -1
  140. package/dist/config/routes.config.js +135 -53
  141. package/dist/config/workflow.config.d.ts +6 -0
  142. package/dist/config/workflow.config.d.ts.map +1 -1
  143. package/dist/config/workflow.config.js +1 -1
  144. package/dist/configmodels/AdminSidebarConfig.d.ts.map +1 -1
  145. package/dist/configmodels/AdminSidebarConfig.js +4 -2
  146. package/dist/configmodels/ConfigModels.d.ts +1 -1
  147. package/dist/configmodels/ConfigModels.d.ts.map +1 -1
  148. package/dist/configmodels/ConfigModels.js +26 -9
  149. package/dist/configmodels/DashboardFieldCatalogue.d.ts +67 -0
  150. package/dist/configmodels/DashboardFieldCatalogue.d.ts.map +1 -0
  151. package/dist/configmodels/DashboardFieldCatalogue.js +174 -0
  152. package/dist/configmodels/DashboardSettings.d.ts +191 -0
  153. package/dist/configmodels/DashboardSettings.d.ts.map +1 -0
  154. package/dist/configmodels/DashboardSettings.js +705 -0
  155. package/dist/configmodels/OniPublishing.d.ts +205 -0
  156. package/dist/configmodels/OniPublishing.d.ts.map +1 -0
  157. package/dist/configmodels/OniPublishing.js +335 -0
  158. package/dist/configmodels/RaidPublishing.d.ts +97 -0
  159. package/dist/configmodels/RaidPublishing.d.ts.map +1 -0
  160. package/dist/configmodels/RaidPublishing.js +35 -0
  161. package/dist/configmodels/WebAnalytics.d.ts +55 -0
  162. package/dist/configmodels/WebAnalytics.d.ts.map +1 -0
  163. package/dist/configmodels/WebAnalytics.js +61 -0
  164. package/dist/controllers/AppConfigController.d.ts.map +1 -1
  165. package/dist/controllers/AppConfigController.js +4 -1
  166. package/dist/controllers/BrandingAppController.d.ts +29 -7
  167. package/dist/controllers/BrandingAppController.d.ts.map +1 -1
  168. package/dist/controllers/BrandingAppController.js +265 -69
  169. package/dist/controllers/BrandingController.d.ts +24 -1
  170. package/dist/controllers/BrandingController.d.ts.map +1 -1
  171. package/dist/controllers/BrandingController.js +173 -43
  172. package/dist/controllers/BrandingControllerSupport.d.ts +20 -0
  173. package/dist/controllers/BrandingControllerSupport.d.ts.map +1 -0
  174. package/dist/controllers/BrandingControllerSupport.js +80 -0
  175. package/dist/controllers/DashboardConfigController.d.ts +6 -2
  176. package/dist/controllers/DashboardConfigController.d.ts.map +1 -1
  177. package/dist/controllers/DashboardConfigController.js +18 -4
  178. package/dist/controllers/DynamicAssetController.d.ts +7 -5
  179. package/dist/controllers/DynamicAssetController.d.ts.map +1 -1
  180. package/dist/controllers/DynamicAssetController.js +21 -12
  181. package/dist/controllers/RecordController.d.ts +45 -4
  182. package/dist/controllers/RecordController.d.ts.map +1 -1
  183. package/dist/controllers/RecordController.js +778 -345
  184. package/dist/controllers/index.d.ts.map +1 -1
  185. package/dist/controllers/index.js +4 -1
  186. package/dist/controllers/webservice/AdminController.d.ts.map +1 -1
  187. package/dist/controllers/webservice/AdminController.js +4 -3
  188. package/dist/controllers/webservice/BrandingController.d.ts +26 -1
  189. package/dist/controllers/webservice/BrandingController.d.ts.map +1 -1
  190. package/dist/controllers/webservice/BrandingController.js +292 -116
  191. package/dist/controllers/webservice/DashboardConfigController.d.ts +25 -17
  192. package/dist/controllers/webservice/DashboardConfigController.d.ts.map +1 -1
  193. package/dist/controllers/webservice/DashboardConfigController.js +90 -205
  194. package/dist/controllers/webservice/FormManagementController.d.ts.map +1 -1
  195. package/dist/controllers/webservice/FormManagementController.js +37 -3
  196. package/dist/controllers/webservice/RecordController.d.ts +15 -1
  197. package/dist/controllers/webservice/RecordController.d.ts.map +1 -1
  198. package/dist/controllers/webservice/RecordController.js +647 -267
  199. package/dist/controllers/webservice/RecordSchemaController.d.ts +32 -0
  200. package/dist/controllers/webservice/RecordSchemaController.d.ts.map +1 -0
  201. package/dist/controllers/webservice/RecordSchemaController.js +356 -0
  202. package/dist/controllers/webservice/RecordTypeController.d.ts +6 -1
  203. package/dist/controllers/webservice/RecordTypeController.d.ts.map +1 -1
  204. package/dist/controllers/webservice/RecordTypeController.js +21 -3
  205. package/dist/controllers/webservice/SearchController.d.ts.map +1 -1
  206. package/dist/controllers/webservice/SearchController.js +7 -3
  207. package/dist/hooks/defineRedboxHook.d.ts +3 -0
  208. package/dist/hooks/defineRedboxHook.d.ts.map +1 -1
  209. package/dist/hooks/defineRedboxHook.js +4 -1
  210. package/dist/index.d.ts +50 -23
  211. package/dist/index.d.ts.map +1 -1
  212. package/dist/index.js +90 -2
  213. package/dist/loader/bootstrapShimRuntime.d.ts +1 -1
  214. package/dist/loader/bootstrapShimRuntime.d.ts.map +1 -1
  215. package/dist/loader/bootstrapShimRuntime.js +20 -12
  216. package/dist/loader/index.d.ts +9 -0
  217. package/dist/loader/index.d.ts.map +1 -1
  218. package/dist/loader/index.js +93 -4
  219. package/dist/model/BrandingTypeface.d.ts +70 -0
  220. package/dist/model/BrandingTypeface.d.ts.map +1 -0
  221. package/dist/model/BrandingTypeface.js +116 -0
  222. package/dist/model/BuildResponse.d.ts +25 -11
  223. package/dist/model/BuildResponse.d.ts.map +1 -1
  224. package/dist/model/BuildResponse.js +4 -3
  225. package/dist/model/DashboardTypeResponseModel.d.ts +6 -0
  226. package/dist/model/DashboardTypeResponseModel.d.ts.map +1 -1
  227. package/dist/model/DashboardTypeResponseModel.js +7 -1
  228. package/dist/model/DashboardViewResponseModel.d.ts +5 -1
  229. package/dist/model/DashboardViewResponseModel.d.ts.map +1 -1
  230. package/dist/model/DashboardViewResponseModel.js +6 -3
  231. package/dist/model/RBValidationError.d.ts +17 -0
  232. package/dist/model/RBValidationError.d.ts.map +1 -1
  233. package/dist/model/RBValidationError.js +37 -1
  234. package/dist/model/RecordTypeResponseModel.d.ts +12 -4
  235. package/dist/model/RecordTypeResponseModel.d.ts.map +1 -1
  236. package/dist/model/RecordTypeResponseModel.js +11 -2
  237. package/dist/model/index.d.ts +5 -1
  238. package/dist/model/index.d.ts.map +1 -1
  239. package/dist/model/index.js +5 -2
  240. package/dist/model/record-contract.d.ts +42 -0
  241. package/dist/model/record-contract.d.ts.map +1 -0
  242. package/dist/model/record-contract.js +3 -0
  243. package/dist/model/storage/BrandingModel.d.ts +7 -0
  244. package/dist/model/storage/BrandingModel.d.ts.map +1 -1
  245. package/dist/model/storage/BrandingModel.js +7 -1
  246. package/dist/model/storage/DeletedRecordModel.d.ts +35 -0
  247. package/dist/model/storage/DeletedRecordModel.d.ts.map +1 -1
  248. package/dist/model/storage/DeletedRecordModel.js +62 -1
  249. package/dist/model/storage/IntegrationAuditModel.d.ts +16 -2
  250. package/dist/model/storage/IntegrationAuditModel.d.ts.map +1 -1
  251. package/dist/model/storage/IntegrationAuditModel.js +15 -1
  252. package/dist/model/storage/RecordAuditModel.d.ts +11 -1
  253. package/dist/model/storage/RecordAuditModel.d.ts.map +1 -1
  254. package/dist/model/storage/RecordAuditModel.js +8 -2
  255. package/dist/model/storage/RecordModel.d.ts +6 -0
  256. package/dist/model/storage/RecordModel.d.ts.map +1 -1
  257. package/dist/model/storage/RecordTypeModel.d.ts +6 -0
  258. package/dist/model/storage/RecordTypeModel.d.ts.map +1 -1
  259. package/dist/model/storage/RecordTypeModel.js +4 -1
  260. package/dist/model/storage/index.d.ts +12 -10
  261. package/dist/model/storage/index.d.ts.map +1 -1
  262. package/dist/model/storage/index.js +24 -2
  263. package/dist/model/storage/record-schema.d.ts +115 -0
  264. package/dist/model/storage/record-schema.d.ts.map +1 -0
  265. package/dist/model/storage/record-schema.js +3 -0
  266. package/dist/policies/checkAuth.d.ts +2 -6
  267. package/dist/policies/checkAuth.d.ts.map +1 -1
  268. package/dist/policies/checkAuth.js +32 -9
  269. package/dist/policies/contentSecurityPolicy.d.ts.map +1 -1
  270. package/dist/policies/contentSecurityPolicy.js +85 -2
  271. package/dist/policies/index.d.ts +3 -2
  272. package/dist/policies/index.d.ts.map +1 -1
  273. package/dist/policies/index.js +4 -2
  274. package/dist/policies/validateApiContractRequest.d.ts.map +1 -1
  275. package/dist/policies/validateApiContractRequest.js +49 -11
  276. package/dist/record-contract/ajv-error-mapper.d.ts +34 -0
  277. package/dist/record-contract/ajv-error-mapper.d.ts.map +1 -0
  278. package/dist/record-contract/ajv-error-mapper.js +153 -0
  279. package/dist/record-contract/canonical-json.d.ts +20 -0
  280. package/dist/record-contract/canonical-json.d.ts.map +1 -0
  281. package/dist/record-contract/canonical-json.js +126 -0
  282. package/dist/record-contract/codes.d.ts +36 -0
  283. package/dist/record-contract/codes.d.ts.map +1 -0
  284. package/dist/record-contract/codes.js +38 -0
  285. package/dist/record-contract/contributor-registry.d.ts +76 -0
  286. package/dist/record-contract/contributor-registry.d.ts.map +1 -0
  287. package/dist/record-contract/contributor-registry.js +126 -0
  288. package/dist/record-contract/core-contributors.d.ts +44 -0
  289. package/dist/record-contract/core-contributors.d.ts.map +1 -0
  290. package/dist/record-contract/core-contributors.js +395 -0
  291. package/dist/record-contract/deep-freeze.d.ts +3 -0
  292. package/dist/record-contract/deep-freeze.d.ts.map +1 -0
  293. package/dist/record-contract/deep-freeze.js +23 -0
  294. package/dist/record-contract/index.d.ts +13 -0
  295. package/dist/record-contract/index.d.ts.map +1 -0
  296. package/dist/record-contract/index.js +29 -0
  297. package/dist/record-contract/json-pointer.d.ts +20 -0
  298. package/dist/record-contract/json-pointer.d.ts.map +1 -0
  299. package/dist/record-contract/json-pointer.js +70 -0
  300. package/dist/record-contract/json-schema-renderer.d.ts +51 -0
  301. package/dist/record-contract/json-schema-renderer.d.ts.map +1 -0
  302. package/dist/record-contract/json-schema-renderer.js +450 -0
  303. package/dist/record-contract/record-contract-compiler.d.ts +42 -0
  304. package/dist/record-contract/record-contract-compiler.d.ts.map +1 -0
  305. package/dist/record-contract/record-contract-compiler.js +775 -0
  306. package/dist/record-contract/record-contract-context.d.ts +91 -0
  307. package/dist/record-contract/record-contract-context.d.ts.map +1 -0
  308. package/dist/record-contract/record-contract-context.js +39 -0
  309. package/dist/record-contract/record-json-schema-artifact.d.ts +74 -0
  310. package/dist/record-contract/record-json-schema-artifact.d.ts.map +1 -0
  311. package/dist/record-contract/record-json-schema-artifact.js +309 -0
  312. package/dist/record-contract/record-json-schema-etag.d.ts +15 -0
  313. package/dist/record-contract/record-json-schema-etag.d.ts.map +1 -0
  314. package/dist/record-contract/record-json-schema-etag.js +41 -0
  315. package/dist/record-contract/types.d.ts +151 -0
  316. package/dist/record-contract/types.d.ts.map +1 -0
  317. package/dist/record-contract/types.js +6 -0
  318. package/dist/services/AppConfigService.d.ts +6 -0
  319. package/dist/services/AppConfigService.d.ts.map +1 -1
  320. package/dist/services/AppConfigService.js +23 -1
  321. package/dist/services/AttachmentMetadataService.d.ts +58 -0
  322. package/dist/services/AttachmentMetadataService.d.ts.map +1 -1
  323. package/dist/services/AttachmentMetadataService.js +643 -8
  324. package/dist/services/BrandingLogoService.d.ts +6 -1
  325. package/dist/services/BrandingLogoService.d.ts.map +1 -1
  326. package/dist/services/BrandingLogoService.js +77 -9
  327. package/dist/services/BrandingService.d.ts +171 -9
  328. package/dist/services/BrandingService.d.ts.map +1 -1
  329. package/dist/services/BrandingService.js +572 -68
  330. package/dist/services/BrandingThemeCssService.d.ts +17 -1
  331. package/dist/services/BrandingThemeCssService.d.ts.map +1 -1
  332. package/dist/services/BrandingThemeCssService.js +71 -9
  333. package/dist/services/BrandingTypefaceService.d.ts +74 -0
  334. package/dist/services/BrandingTypefaceService.d.ts.map +1 -0
  335. package/dist/services/BrandingTypefaceService.js +359 -0
  336. package/dist/services/BrandingWoff2Inspector.d.ts +17 -0
  337. package/dist/services/BrandingWoff2Inspector.d.ts.map +1 -0
  338. package/dist/services/BrandingWoff2Inspector.js +402 -0
  339. package/dist/services/DashboardConfigService.d.ts +214 -54
  340. package/dist/services/DashboardConfigService.d.ts.map +1 -1
  341. package/dist/services/DashboardConfigService.js +829 -261
  342. package/dist/services/DashboardLegacyConversion.d.ts +82 -0
  343. package/dist/services/DashboardLegacyConversion.d.ts.map +1 -0
  344. package/dist/services/DashboardLegacyConversion.js +427 -0
  345. package/dist/services/DashboardTypesService.d.ts +15 -4
  346. package/dist/services/DashboardTypesService.d.ts.map +1 -1
  347. package/dist/services/DashboardTypesService.js +72 -139
  348. package/dist/services/DoiService.d.ts +1 -1
  349. package/dist/services/DoiService.d.ts.map +1 -1
  350. package/dist/services/DoiService.js +71 -45
  351. package/dist/services/FigshareService.d.ts +1 -1
  352. package/dist/services/FigshareService.d.ts.map +1 -1
  353. package/dist/services/FigshareService.js +73 -32
  354. package/dist/services/FormRecordConsistencyService.d.ts +8 -23
  355. package/dist/services/FormRecordConsistencyService.d.ts.map +1 -1
  356. package/dist/services/FormRecordConsistencyService.js +54 -70
  357. package/dist/services/FormsService.d.ts +91 -2
  358. package/dist/services/FormsService.d.ts.map +1 -1
  359. package/dist/services/FormsService.js +324 -64
  360. package/dist/services/HarvestRunService.d.ts +6 -3
  361. package/dist/services/HarvestRunService.d.ts.map +1 -1
  362. package/dist/services/HarvestRunService.js +161 -97
  363. package/dist/services/I18nEntriesService.d.ts +1 -0
  364. package/dist/services/I18nEntriesService.d.ts.map +1 -1
  365. package/dist/services/I18nEntriesService.js +26 -6
  366. package/dist/services/OniService.d.ts +19 -62
  367. package/dist/services/OniService.d.ts.map +1 -1
  368. package/dist/services/OniService.js +223 -691
  369. package/dist/services/RDMPService.d.ts +1 -1
  370. package/dist/services/RDMPService.d.ts.map +1 -1
  371. package/dist/services/RDMPService.js +5 -5
  372. package/dist/services/RaidService.d.ts +19 -61
  373. package/dist/services/RaidService.d.ts.map +1 -1
  374. package/dist/services/RaidService.js +191 -530
  375. package/dist/services/RecordSchemaService.d.ts +440 -0
  376. package/dist/services/RecordSchemaService.d.ts.map +1 -0
  377. package/dist/services/RecordSchemaService.js +3061 -0
  378. package/dist/services/RecordTypesService.d.ts +29 -0
  379. package/dist/services/RecordTypesService.d.ts.map +1 -1
  380. package/dist/services/RecordTypesService.js +106 -11
  381. package/dist/services/RecordValidationService.d.ts +340 -0
  382. package/dist/services/RecordValidationService.d.ts.map +1 -0
  383. package/dist/services/RecordValidationService.js +1898 -0
  384. package/dist/services/RecordsService.d.ts +313 -22
  385. package/dist/services/RecordsService.d.ts.map +1 -1
  386. package/dist/services/RecordsService.js +4948 -509
  387. package/dist/services/SolrSearchService.d.ts +1 -1
  388. package/dist/services/SolrSearchService.d.ts.map +1 -1
  389. package/dist/services/SolrSearchService.js +42 -12
  390. package/dist/services/StandardDatastreamService.d.ts +4 -0
  391. package/dist/services/StandardDatastreamService.d.ts.map +1 -1
  392. package/dist/services/StandardDatastreamService.js +106 -44
  393. package/dist/services/TriggerService.d.ts.map +1 -1
  394. package/dist/services/TriggerService.js +54 -30
  395. package/dist/services/UsersService.d.ts +2 -1
  396. package/dist/services/UsersService.d.ts.map +1 -1
  397. package/dist/services/UsersService.js +364 -283
  398. package/dist/services/VocabularyService.d.ts +2 -0
  399. package/dist/services/VocabularyService.d.ts.map +1 -1
  400. package/dist/services/VocabularyService.js +61 -2
  401. package/dist/services/WorkflowStepsService.d.ts +11 -0
  402. package/dist/services/WorkflowStepsService.d.ts.map +1 -1
  403. package/dist/services/WorkflowStepsService.js +32 -3
  404. package/dist/services/WorkspaceService.d.ts +2 -2
  405. package/dist/services/WorkspaceService.d.ts.map +1 -1
  406. package/dist/services/WorkspaceService.js +5 -5
  407. package/dist/services/doi-v2/bindings.d.ts.map +1 -1
  408. package/dist/services/doi-v2/bindings.js +3 -20
  409. package/dist/services/doi-v2/config.d.ts +1 -0
  410. package/dist/services/doi-v2/config.d.ts.map +1 -1
  411. package/dist/services/doi-v2/config.js +13 -5
  412. package/dist/services/doi-v2/runtime.d.ts.map +1 -1
  413. package/dist/services/doi-v2/runtime.js +14 -54
  414. package/dist/services/figshare-v2/bindings.d.ts.map +1 -1
  415. package/dist/services/figshare-v2/bindings.js +3 -20
  416. package/dist/services/figshare-v2/runtime.d.ts.map +1 -1
  417. package/dist/services/figshare-v2/runtime.js +11 -58
  418. package/dist/services/form-record-access-user.d.ts +3 -0
  419. package/dist/services/form-record-access-user.d.ts.map +1 -0
  420. package/dist/services/form-record-access-user.js +23 -0
  421. package/dist/services/index.d.ts +9 -0
  422. package/dist/services/index.d.ts.map +1 -1
  423. package/dist/services/index.js +45 -3
  424. package/dist/services/integration-v2/bindings.d.ts +3 -0
  425. package/dist/services/integration-v2/bindings.d.ts.map +1 -0
  426. package/dist/services/integration-v2/bindings.js +91 -0
  427. package/dist/services/integration-v2/runtime.d.ts +3 -0
  428. package/dist/services/integration-v2/runtime.d.ts.map +1 -0
  429. package/dist/services/integration-v2/runtime.js +50 -0
  430. package/dist/services/internal-record-schema-authorization.d.ts +8 -0
  431. package/dist/services/internal-record-schema-authorization.d.ts.map +1 -0
  432. package/dist/services/internal-record-schema-authorization.js +16 -0
  433. package/dist/services/oni-v2/audit.d.ts +19 -0
  434. package/dist/services/oni-v2/audit.d.ts.map +1 -0
  435. package/dist/services/oni-v2/audit.js +50 -0
  436. package/dist/services/oni-v2/bindings.d.ts +7 -0
  437. package/dist/services/oni-v2/bindings.d.ts.map +1 -0
  438. package/dist/services/oni-v2/bindings.js +31 -0
  439. package/dist/services/oni-v2/config.d.ts +12 -0
  440. package/dist/services/oni-v2/config.d.ts.map +1 -0
  441. package/dist/services/oni-v2/config.js +134 -0
  442. package/dist/services/oni-v2/context.d.ts +3 -0
  443. package/dist/services/oni-v2/context.d.ts.map +1 -0
  444. package/dist/services/oni-v2/context.js +17 -0
  445. package/dist/services/oni-v2/crate.d.ts +17 -0
  446. package/dist/services/oni-v2/crate.d.ts.map +1 -0
  447. package/dist/services/oni-v2/crate.js +504 -0
  448. package/dist/services/oni-v2/flydriveOcflStore.d.ts +69 -0
  449. package/dist/services/oni-v2/flydriveOcflStore.d.ts.map +1 -0
  450. package/dist/services/oni-v2/flydriveOcflStore.js +325 -0
  451. package/dist/services/oni-v2/ingestion.d.ts +37 -0
  452. package/dist/services/oni-v2/ingestion.d.ts.map +1 -0
  453. package/dist/services/oni-v2/ingestion.js +91 -0
  454. package/dist/services/oni-v2/mapping.d.ts +17 -0
  455. package/dist/services/oni-v2/mapping.d.ts.map +1 -0
  456. package/dist/services/oni-v2/mapping.js +137 -0
  457. package/dist/services/oni-v2/repository.d.ts +9 -0
  458. package/dist/services/oni-v2/repository.d.ts.map +1 -0
  459. package/dist/services/oni-v2/repository.js +180 -0
  460. package/dist/services/oni-v2/runtime.d.ts +23 -0
  461. package/dist/services/oni-v2/runtime.d.ts.map +1 -0
  462. package/dist/services/oni-v2/runtime.js +121 -0
  463. package/dist/services/oni-v2/templating.d.ts +11 -0
  464. package/dist/services/oni-v2/templating.d.ts.map +1 -0
  465. package/dist/services/oni-v2/templating.js +27 -0
  466. package/dist/services/oni-v2/types.d.ts +100 -0
  467. package/dist/services/oni-v2/types.d.ts.map +1 -0
  468. package/dist/services/oni-v2/types.js +3 -0
  469. package/dist/services/raid-v2/audit.d.ts +10 -0
  470. package/dist/services/raid-v2/audit.d.ts.map +1 -0
  471. package/dist/services/raid-v2/audit.js +29 -0
  472. package/dist/services/raid-v2/errors.d.ts +85 -0
  473. package/dist/services/raid-v2/errors.d.ts.map +1 -0
  474. package/dist/services/raid-v2/errors.js +36 -0
  475. package/dist/services/raid-v2/http.d.ts +4 -0
  476. package/dist/services/raid-v2/http.d.ts.map +1 -0
  477. package/dist/services/raid-v2/http.js +84 -0
  478. package/dist/services/raid-v2/logger.d.ts +8 -0
  479. package/dist/services/raid-v2/logger.d.ts.map +1 -0
  480. package/dist/services/raid-v2/logger.js +30 -0
  481. package/dist/services/raid-v2/mapping.d.ts +9 -0
  482. package/dist/services/raid-v2/mapping.d.ts.map +1 -0
  483. package/dist/services/raid-v2/mapping.js +168 -0
  484. package/dist/services/raid-v2/runtime.d.ts +5 -0
  485. package/dist/services/raid-v2/runtime.d.ts.map +1 -0
  486. package/dist/services/raid-v2/runtime.js +135 -0
  487. package/dist/services/raid-v2/tags.d.ts +11 -0
  488. package/dist/services/raid-v2/tags.d.ts.map +1 -0
  489. package/dist/services/raid-v2/tags.js +12 -0
  490. package/dist/services/raid-v2/types.d.ts +66 -0
  491. package/dist/services/raid-v2/types.d.ts.map +1 -0
  492. package/dist/services/raid-v2/types.js +3 -0
  493. package/dist/services/record-hooks/coordinator.d.ts +64 -0
  494. package/dist/services/record-hooks/coordinator.d.ts.map +1 -0
  495. package/dist/services/record-hooks/coordinator.js +276 -0
  496. package/dist/visitor/client.visitor.d.ts +6 -0
  497. package/dist/visitor/client.visitor.d.ts.map +1 -1
  498. package/dist/visitor/client.visitor.js +59 -14
  499. package/dist/visitor/construct.visitor.d.ts +27 -1
  500. package/dist/visitor/construct.visitor.d.ts.map +1 -1
  501. package/dist/visitor/construct.visitor.js +265 -177
  502. package/dist/visitor/context-variables.visitor.d.ts +3 -1
  503. package/dist/visitor/context-variables.visitor.d.ts.map +1 -1
  504. package/dist/visitor/context-variables.visitor.js +15 -1
  505. package/dist/visitor/data-value.visitor.d.ts +6 -0
  506. package/dist/visitor/data-value.visitor.d.ts.map +1 -1
  507. package/dist/visitor/data-value.visitor.js +10 -1
  508. package/dist/visitor/json-type-def.visitor.d.ts +6 -0
  509. package/dist/visitor/json-type-def.visitor.d.ts.map +1 -1
  510. package/dist/visitor/json-type-def.visitor.js +10 -1
  511. package/dist/visitor/migrate-config-v4-v5.visitor.d.ts +11 -0
  512. package/dist/visitor/migrate-config-v4-v5.visitor.d.ts.map +1 -1
  513. package/dist/visitor/migrate-config-v4-v5.visitor.js +228 -133
  514. package/dist/visitor/related-object-data-inline.visitor.d.ts +31 -0
  515. package/dist/visitor/related-object-data-inline.visitor.d.ts.map +1 -0
  516. package/dist/visitor/related-object-data-inline.visitor.js +96 -0
  517. package/dist/visitor/template.visitor.d.ts +17 -2
  518. package/dist/visitor/template.visitor.d.ts.map +1 -1
  519. package/dist/visitor/template.visitor.js +60 -22
  520. package/dist/visitor/validator.visitor.d.ts +49 -7
  521. package/dist/visitor/validator.visitor.d.ts.map +1 -1
  522. package/dist/visitor/validator.visitor.js +275 -178
  523. package/dist/waterline-models/AttachmentMetadata.d.ts +22 -0
  524. package/dist/waterline-models/AttachmentMetadata.d.ts.map +1 -1
  525. package/dist/waterline-models/AttachmentMetadata.js +147 -3
  526. package/dist/waterline-models/BrandingConfig.d.ts +7 -0
  527. package/dist/waterline-models/BrandingConfig.d.ts.map +1 -1
  528. package/dist/waterline-models/BrandingConfig.js +16 -1
  529. package/dist/waterline-models/BrandingConfigHistory.d.ts +11 -2
  530. package/dist/waterline-models/BrandingConfigHistory.d.ts.map +1 -1
  531. package/dist/waterline-models/BrandingConfigHistory.js +21 -1
  532. package/dist/waterline-models/DashboardConfiguration.d.ts +29 -0
  533. package/dist/waterline-models/DashboardConfiguration.d.ts.map +1 -0
  534. package/dist/waterline-models/DashboardConfiguration.js +52 -0
  535. package/dist/waterline-models/RecordType.d.ts +9 -0
  536. package/dist/waterline-models/RecordType.d.ts.map +1 -1
  537. package/dist/waterline-models/RecordType.js +16 -1
  538. package/dist/waterline-models/User.d.ts.map +1 -1
  539. package/dist/waterline-models/User.js +10 -15
  540. package/dist/waterline-models/index.d.ts +2 -0
  541. package/dist/waterline-models/index.d.ts.map +1 -1
  542. package/dist/waterline-models/index.js +4 -1
  543. package/package.json +60 -47
  544. package/dist/config/datapubs.config.d.ts +0 -72
  545. package/dist/config/datapubs.config.d.ts.map +0 -1
  546. package/dist/config/datapubs.config.js +0 -74
@@ -0,0 +1 @@
1
+ {"version":3,"file":"record-schema-openapi.d.ts","sourceRoot":"","sources":["../../src/api-routes/record-schema-openapi.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,wCAAwC,EAAG,iCAA0C,CAAC;AAEnG,mGAAmG;AACnG,wBAAgB,oCAAoC,CAAC,UAAU,EAAE,QAAQ,GAAG,QAAQ;;;;;;;;;;;;;;;;;;;;;;EA8BnF"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RECORD_SCHEMA_RESOLVER_OPENAPI_EXTENSION = void 0;
4
+ exports.recordSchemaResolverOpenApiExtension = recordSchemaResolverOpenApiExtension;
5
+ const record_schema_response_1 = require("./record-schema-response");
6
+ const common_1 = require("./schemas/common");
7
+ exports.RECORD_SCHEMA_RESOLVER_OPENAPI_EXTENSION = 'x-redbox-record-schema-resolver';
8
+ /** Static resolver metadata only; caller-effective form schemas stay behind the resolver route. */
9
+ function recordSchemaResolverOpenApiExtension(schemaKind) {
10
+ const routeTemplate = schemaKind === 'create'
11
+ ? record_schema_response_1.RECORD_SCHEMA_CREATE_RESOLVER_ROUTE_TEMPLATE
12
+ : record_schema_response_1.RECORD_SCHEMA_UPDATE_RESOLVER_ROUTE_TEMPLATE;
13
+ const etag = {
14
+ format: '"sha256:<64-lowercase-hex>"',
15
+ responseHeader: record_schema_response_1.RECORD_SCHEMA_ETAG_RESPONSE_HEADER,
16
+ revalidationRequestHeader: record_schema_response_1.RECORD_SCHEMA_REVALIDATION_REQUEST_HEADER,
17
+ notModifiedStatus: 304,
18
+ authorizationRequiredForRevalidation: true,
19
+ ...(schemaKind === 'update'
20
+ ? {
21
+ recordWritePreconditionRequestHeader: common_1.RECORD_SCHEMA_WRITE_PRECONDITION_HEADER,
22
+ recordWritePreconditionRequired: false,
23
+ preconditionFailedStatus: 412,
24
+ comparison: 'current-resolved-full-document',
25
+ }
26
+ : {}),
27
+ };
28
+ return {
29
+ [exports.RECORD_SCHEMA_RESOLVER_OPENAPI_EXTENSION]: {
30
+ routeTemplate,
31
+ schemaKind,
32
+ operationParameter: { name: 'operation', in: 'query', required: false },
33
+ mediaType: record_schema_response_1.RECORD_SCHEMA_RESPONSE_MEDIA_TYPE,
34
+ etag,
35
+ },
36
+ };
37
+ }
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkLXNjaGVtYS1vcGVuYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwaS1yb3V0ZXMvcmVjb3JkLXNjaGVtYS1vcGVuYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQVlBLG9GQThCQztBQTFDRCxxRUFNa0M7QUFDbEMsNkNBQTJFO0FBRTlELFFBQUEsd0NBQXdDLEdBQUcsaUNBQTBDLENBQUM7QUFFbkcsbUdBQW1HO0FBQ25HLFNBQWdCLG9DQUFvQyxDQUFDLFVBQStCO0lBQ2xGLE1BQU0sYUFBYSxHQUNqQixVQUFVLEtBQUssUUFBUTtRQUNyQixDQUFDLENBQUMscUVBQTRDO1FBQzlDLENBQUMsQ0FBQyxxRUFBNEMsQ0FBQztJQUNuRCxNQUFNLElBQUksR0FBRztRQUNYLE1BQU0sRUFBRSw2QkFBNkI7UUFDckMsY0FBYyxFQUFFLDJEQUFrQztRQUNsRCx5QkFBeUIsRUFBRSxrRUFBeUM7UUFDcEUsaUJBQWlCLEVBQUUsR0FBRztRQUN0QixvQ0FBb0MsRUFBRSxJQUFJO1FBQzFDLEdBQUcsQ0FBQyxVQUFVLEtBQUssUUFBUTtZQUN6QixDQUFDLENBQUM7Z0JBQ0Usb0NBQW9DLEVBQUUsZ0RBQXVDO2dCQUM3RSwrQkFBK0IsRUFBRSxLQUFLO2dCQUN0Qyx3QkFBd0IsRUFBRSxHQUFHO2dCQUM3QixVQUFVLEVBQUUsZ0NBQXlDO2FBQ3REO1lBQ0gsQ0FBQyxDQUFDLEVBQUUsQ0FBQztLQUNDLENBQUM7SUFFWCxPQUFPO1FBQ0wsQ0FBQyxnREFBd0MsQ0FBQyxFQUFFO1lBQzFDLGFBQWE7WUFDYixVQUFVO1lBQ1Ysa0JBQWtCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRTtZQUN2RSxTQUFTLEVBQUUsMERBQWlDO1lBQzVDLElBQUk7U0FDTDtLQUNPLENBQUM7QUFDYixDQUFDIn0=
@@ -0,0 +1,40 @@
1
+ import type { RecordSchemaProblem } from '../model/record-contract';
2
+ import { type RecordSchemaProblemCode } from '../record-contract/codes';
3
+ export declare const RECORD_SCHEMA_RESPONSE_MEDIA_TYPE: "application/schema+json";
4
+ export declare const RECORD_SCHEMA_PROBLEM_MEDIA_TYPE: "application/problem+json";
5
+ export declare const RECORD_SCHEMA_RESPONSE_CACHE_CONTROL: "private, no-cache";
6
+ export declare const RECORD_SCHEMA_RESPONSE_VARY: "Authorization";
7
+ export declare const RECORD_SCHEMA_ETAG_RESPONSE_HEADER: "ETag";
8
+ export declare const RECORD_SCHEMA_REVALIDATION_REQUEST_HEADER: "If-None-Match";
9
+ export declare const RECORD_SCHEMA_CREATE_ROUTE_PATH: "/:branding/:portal/api/records/schemas/create/:recordType";
10
+ export declare const RECORD_SCHEMA_UPDATE_ROUTE_PATH: "/:branding/:portal/api/records/schemas/update/:oid";
11
+ export declare const RECORD_SCHEMA_IMMUTABLE_ROUTE_PATH: "/:branding/:portal/api/records/schemas/:digest";
12
+ /**
13
+ * `rootContext` follows `BrandingService.getRootContext()`: it is either empty
14
+ * or starts with `/`, so substituting it keeps the template origin-relative in
15
+ * both root-mounted and sub-path deployments.
16
+ */
17
+ export declare const RECORD_SCHEMA_CREATE_RESOLVER_ROUTE_TEMPLATE: "{rootContext}/{branding}/{portal}/api/records/schemas/create/{recordType}";
18
+ export declare const RECORD_SCHEMA_UPDATE_RESOLVER_ROUTE_TEMPLATE: "{rootContext}/{branding}/{portal}/api/records/schemas/update/{oid}";
19
+ export declare const RECORD_SCHEMA_INVALID_REQUEST_PROBLEM_DESCRIPTOR: {
20
+ readonly type: "https://redboxresearchdata.com/problems/record-schema-invalid-request";
21
+ readonly title: "Record schema request is invalid";
22
+ readonly status: 400;
23
+ readonly detail: "The record schema request is malformed.";
24
+ readonly code: "record-schema.invalid-request";
25
+ };
26
+ export declare const RECORD_SCHEMA_FORBIDDEN_PROBLEM_DESCRIPTOR: {
27
+ readonly type: "https://redboxresearchdata.com/problems/record-schema-forbidden";
28
+ readonly title: "Record schema request is not authorized";
29
+ readonly status: 403;
30
+ readonly detail: "The record schema request is not authorized.";
31
+ readonly code: "record-schema.forbidden";
32
+ };
33
+ export declare function buildRecordSchemaInvalidRequestProblem(instance: string, code?: RecordSchemaProblemCode): RecordSchemaProblem;
34
+ export declare function buildRecordSchemaForbiddenProblem(instance: string): RecordSchemaProblem;
35
+ export declare function recordSchemaCanonicalLink(canonicalUrl: string): string;
36
+ export declare function recordSchemaDescribedByLink(immutableUrl: string): string;
37
+ export declare function recordSchemaImmutableUrl(branding: string, portal: string, digest: string, rootContext?: string): string;
38
+ export declare function recordSchemaCreateResolverUrl(branding: string, portal: string, recordType: string, rootContext?: string): string;
39
+ export declare function recordSchemaUpdateResolverUrl(branding: string, portal: string, oid: string, rootContext?: string): string;
40
+ //# sourceMappingURL=record-schema-response.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"record-schema-response.d.ts","sourceRoot":"","sources":["../../src/api-routes/record-schema-response.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAA+B,KAAK,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAErG,eAAO,MAAM,iCAAiC,EAAG,yBAAkC,CAAC;AACpF,eAAO,MAAM,gCAAgC,EAAG,0BAAmC,CAAC;AACpF,eAAO,MAAM,oCAAoC,EAAG,mBAA4B,CAAC;AACjF,eAAO,MAAM,2BAA2B,EAAG,eAAwB,CAAC;AACpE,eAAO,MAAM,kCAAkC,EAAG,MAAe,CAAC;AAClE,eAAO,MAAM,yCAAyC,EAAG,eAAwB,CAAC;AAMlF,eAAO,MAAM,+BAA+B,6DAAmE,CAAC;AAChH,eAAO,MAAM,+BAA+B,sDAA4D,CAAC;AACzG,eAAO,MAAM,kCAAkC,kDAAwD,CAAC;AAExG;;;;GAIG;AACH,eAAO,MAAM,4CAA4C,6EACoB,CAAC;AAC9E,eAAO,MAAM,4CAA4C,sEACa,CAAC;AAIvE,eAAO,MAAM,gDAAgD;;;;;;CAMX,CAAC;AAEnD,eAAO,MAAM,0CAA0C;;;;;;CAML,CAAC;AAEnD,wBAAgB,sCAAsC,CACpD,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,uBAA+E,GACpF,mBAAmB,CAMrB;AAED,wBAAgB,iCAAiC,CAAC,QAAQ,EAAE,MAAM,GAAG,mBAAmB,CAKvF;AAED,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAEtE;AAED,wBAAgB,2BAA2B,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAExE;AAsBD,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,SAAK,GAAG,MAAM,CAEnH;AAED,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,WAAW,SAAK,GACf,MAAM,CAER;AAED,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,SAAK,GAAG,MAAM,CAErH"}
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RECORD_SCHEMA_FORBIDDEN_PROBLEM_DESCRIPTOR = exports.RECORD_SCHEMA_INVALID_REQUEST_PROBLEM_DESCRIPTOR = exports.RECORD_SCHEMA_UPDATE_RESOLVER_ROUTE_TEMPLATE = exports.RECORD_SCHEMA_CREATE_RESOLVER_ROUTE_TEMPLATE = exports.RECORD_SCHEMA_IMMUTABLE_ROUTE_PATH = exports.RECORD_SCHEMA_UPDATE_ROUTE_PATH = exports.RECORD_SCHEMA_CREATE_ROUTE_PATH = exports.RECORD_SCHEMA_REVALIDATION_REQUEST_HEADER = exports.RECORD_SCHEMA_ETAG_RESPONSE_HEADER = exports.RECORD_SCHEMA_RESPONSE_VARY = exports.RECORD_SCHEMA_RESPONSE_CACHE_CONTROL = exports.RECORD_SCHEMA_PROBLEM_MEDIA_TYPE = exports.RECORD_SCHEMA_RESPONSE_MEDIA_TYPE = void 0;
4
+ exports.buildRecordSchemaInvalidRequestProblem = buildRecordSchemaInvalidRequestProblem;
5
+ exports.buildRecordSchemaForbiddenProblem = buildRecordSchemaForbiddenProblem;
6
+ exports.recordSchemaCanonicalLink = recordSchemaCanonicalLink;
7
+ exports.recordSchemaDescribedByLink = recordSchemaDescribedByLink;
8
+ exports.recordSchemaImmutableUrl = recordSchemaImmutableUrl;
9
+ exports.recordSchemaCreateResolverUrl = recordSchemaCreateResolverUrl;
10
+ exports.recordSchemaUpdateResolverUrl = recordSchemaUpdateResolverUrl;
11
+ const codes_1 = require("../record-contract/codes");
12
+ exports.RECORD_SCHEMA_RESPONSE_MEDIA_TYPE = 'application/schema+json';
13
+ exports.RECORD_SCHEMA_PROBLEM_MEDIA_TYPE = 'application/problem+json';
14
+ exports.RECORD_SCHEMA_RESPONSE_CACHE_CONTROL = 'private, no-cache';
15
+ exports.RECORD_SCHEMA_RESPONSE_VARY = 'Authorization';
16
+ exports.RECORD_SCHEMA_ETAG_RESPONSE_HEADER = 'ETag';
17
+ exports.RECORD_SCHEMA_REVALIDATION_REQUEST_HEADER = 'If-None-Match';
18
+ const RECORD_SCHEMA_API_PATH = '/api/records/schemas';
19
+ const RECORD_SCHEMA_TYPED_ROUTE_SCOPE = `/:branding/:portal${RECORD_SCHEMA_API_PATH}`;
20
+ const RECORD_SCHEMA_PUBLIC_ROUTE_TEMPLATE_SCOPE = `{rootContext}/{branding}/{portal}${RECORD_SCHEMA_API_PATH}`;
21
+ exports.RECORD_SCHEMA_CREATE_ROUTE_PATH = `${RECORD_SCHEMA_TYPED_ROUTE_SCOPE}/create/:recordType`;
22
+ exports.RECORD_SCHEMA_UPDATE_ROUTE_PATH = `${RECORD_SCHEMA_TYPED_ROUTE_SCOPE}/update/:oid`;
23
+ exports.RECORD_SCHEMA_IMMUTABLE_ROUTE_PATH = `${RECORD_SCHEMA_TYPED_ROUTE_SCOPE}/:digest`;
24
+ /**
25
+ * `rootContext` follows `BrandingService.getRootContext()`: it is either empty
26
+ * or starts with `/`, so substituting it keeps the template origin-relative in
27
+ * both root-mounted and sub-path deployments.
28
+ */
29
+ exports.RECORD_SCHEMA_CREATE_RESOLVER_ROUTE_TEMPLATE = `${RECORD_SCHEMA_PUBLIC_ROUTE_TEMPLATE_SCOPE}/create/{recordType}`;
30
+ exports.RECORD_SCHEMA_UPDATE_RESOLVER_ROUTE_TEMPLATE = `${RECORD_SCHEMA_PUBLIC_ROUTE_TEMPLATE_SCOPE}/update/{oid}`;
31
+ exports.RECORD_SCHEMA_INVALID_REQUEST_PROBLEM_DESCRIPTOR = {
32
+ type: 'https://redboxresearchdata.com/problems/record-schema-invalid-request',
33
+ title: 'Record schema request is invalid',
34
+ status: 400,
35
+ detail: 'The record schema request is malformed.',
36
+ code: codes_1.RECORD_SCHEMA_PROBLEM_CODES.INVALID_REQUEST,
37
+ };
38
+ exports.RECORD_SCHEMA_FORBIDDEN_PROBLEM_DESCRIPTOR = {
39
+ type: 'https://redboxresearchdata.com/problems/record-schema-forbidden',
40
+ title: 'Record schema request is not authorized',
41
+ status: 403,
42
+ detail: 'The record schema request is not authorized.',
43
+ code: codes_1.RECORD_SCHEMA_PROBLEM_CODES.FORBIDDEN,
44
+ };
45
+ function buildRecordSchemaInvalidRequestProblem(instance, code = exports.RECORD_SCHEMA_INVALID_REQUEST_PROBLEM_DESCRIPTOR.code) {
46
+ return {
47
+ ...exports.RECORD_SCHEMA_INVALID_REQUEST_PROBLEM_DESCRIPTOR,
48
+ instance,
49
+ code,
50
+ };
51
+ }
52
+ function buildRecordSchemaForbiddenProblem(instance) {
53
+ return {
54
+ ...exports.RECORD_SCHEMA_FORBIDDEN_PROBLEM_DESCRIPTOR,
55
+ instance,
56
+ };
57
+ }
58
+ function recordSchemaCanonicalLink(canonicalUrl) {
59
+ return `<${canonicalUrl}>; rel="canonical"; type="${exports.RECORD_SCHEMA_RESPONSE_MEDIA_TYPE}"`;
60
+ }
61
+ function recordSchemaDescribedByLink(immutableUrl) {
62
+ return `<${immutableUrl}>; rel="describedby"; type="${exports.RECORD_SCHEMA_RESPONSE_MEDIA_TYPE}"`;
63
+ }
64
+ function trimOuterSlashes(value) {
65
+ let start = 0;
66
+ let end = value.length;
67
+ while (start < end && value[start] === '/') {
68
+ start += 1;
69
+ }
70
+ while (end > start && value[end - 1] === '/') {
71
+ end -= 1;
72
+ }
73
+ return value.slice(start, end);
74
+ }
75
+ function recordSchemaScopeUrl(branding, portal, rootContext) {
76
+ const normalizedRootContext = trimOuterSlashes(rootContext.trim());
77
+ const rootContextPrefix = normalizedRootContext ? `/${normalizedRootContext}` : '';
78
+ return `${rootContextPrefix}/${encodeURIComponent(branding)}/${encodeURIComponent(portal)}${RECORD_SCHEMA_API_PATH}`;
79
+ }
80
+ function recordSchemaImmutableUrl(branding, portal, digest, rootContext = '') {
81
+ return `${recordSchemaScopeUrl(branding, portal, rootContext)}/${encodeURIComponent(digest)}`;
82
+ }
83
+ function recordSchemaCreateResolverUrl(branding, portal, recordType, rootContext = '') {
84
+ return `${recordSchemaScopeUrl(branding, portal, rootContext)}/create/${encodeURIComponent(recordType)}`;
85
+ }
86
+ function recordSchemaUpdateResolverUrl(branding, portal, oid, rootContext = '') {
87
+ return `${recordSchemaScopeUrl(branding, portal, rootContext)}/update/${encodeURIComponent(oid)}`;
88
+ }
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkLXNjaGVtYS1yZXNwb25zZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcGktcm91dGVzL3JlY29yZC1zY2hlbWEtcmVzcG9uc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBOENBLHdGQVNDO0FBRUQsOEVBS0M7QUFFRCw4REFFQztBQUVELGtFQUVDO0FBc0JELDREQUVDO0FBRUQsc0VBT0M7QUFFRCxzRUFFQztBQTFHRCxvREFBcUc7QUFFeEYsUUFBQSxpQ0FBaUMsR0FBRyx5QkFBa0MsQ0FBQztBQUN2RSxRQUFBLGdDQUFnQyxHQUFHLDBCQUFtQyxDQUFDO0FBQ3ZFLFFBQUEsb0NBQW9DLEdBQUcsbUJBQTRCLENBQUM7QUFDcEUsUUFBQSwyQkFBMkIsR0FBRyxlQUF3QixDQUFDO0FBQ3ZELFFBQUEsa0NBQWtDLEdBQUcsTUFBZSxDQUFDO0FBQ3JELFFBQUEseUNBQXlDLEdBQUcsZUFBd0IsQ0FBQztBQUVsRixNQUFNLHNCQUFzQixHQUFHLHNCQUErQixDQUFDO0FBQy9ELE1BQU0sK0JBQStCLEdBQUcscUJBQXFCLHNCQUFzQixFQUFXLENBQUM7QUFDL0YsTUFBTSx5Q0FBeUMsR0FBRyxvQ0FBb0Msc0JBQXNCLEVBQVcsQ0FBQztBQUUzRyxRQUFBLCtCQUErQixHQUFHLEdBQUcsK0JBQStCLHFCQUE4QixDQUFDO0FBQ25HLFFBQUEsK0JBQStCLEdBQUcsR0FBRywrQkFBK0IsY0FBdUIsQ0FBQztBQUM1RixRQUFBLGtDQUFrQyxHQUFHLEdBQUcsK0JBQStCLFVBQW1CLENBQUM7QUFFeEc7Ozs7R0FJRztBQUNVLFFBQUEsNENBQTRDLEdBQ3ZELEdBQUcseUNBQXlDLHNCQUErQixDQUFDO0FBQ2pFLFFBQUEsNENBQTRDLEdBQ3ZELEdBQUcseUNBQXlDLGVBQXdCLENBQUM7QUFJMUQsUUFBQSxnREFBZ0QsR0FBRztJQUM5RCxJQUFJLEVBQUUsdUVBQXVFO0lBQzdFLEtBQUssRUFBRSxrQ0FBa0M7SUFDekMs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
@@ -1 +1 @@
1
- {"version":3,"file":"request-extraction.d.ts","sourceRoot":"","sources":["../../src/api-routes/request-extraction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAE9B,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAGjE,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IACjC,GAAG,EAAE,OAAO,CAAC;CACd;AAqDD,wBAAgB,eAAe,CAC7B,GAAG,EAAE,KAAK,CAAC,GAAG,EACd,OAAO,EAAE,oBAAoB,GAAG,SAAS,EACzC,MAAM,EAAE,gBAAgB,EACxB,GAAG,EAAE,MAAM,GACV,OAAO,CAiBT;AAED,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,KAAK,CAAC,GAAG,EACd,OAAO,EAAE,oBAAoB,GAAG,SAAS,EACzC,MAAM,EAAE,gBAAgB,EACxB,MAAM,CAAC,EAAE,OAAO,GACf,OAAO,CAoBT;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,oBAAoB,CAatG"}
1
+ {"version":3,"file":"request-extraction.d.ts","sourceRoot":"","sources":["../../src/api-routes/request-extraction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAE9B,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AASjE,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IACjC,GAAG,EAAE,OAAO,CAAC;CACd;AAuDD,wBAAgB,eAAe,CAC7B,GAAG,EAAE,KAAK,CAAC,GAAG,EACd,OAAO,EAAE,oBAAoB,GAAG,SAAS,EACzC,MAAM,EAAE,gBAAgB,EACxB,GAAG,EAAE,MAAM,GACV,OAAO,CAsBT;AAED,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,KAAK,CAAC,GAAG,EACd,OAAO,EAAE,oBAAoB,GAAG,SAAS,EACzC,MAAM,EAAE,gBAAgB,EACxB,MAAM,CAAC,EAAE,OAAO,GACf,OAAO,CAoBT;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,oBAAoB,CAatG"}
@@ -34,23 +34,25 @@ function getLegacyFallbackSources(request, key) {
34
34
  }
35
35
  function getHeaderValue(req, name) {
36
36
  const headers = req.headers;
37
- const value = headers == null
37
+ return headers == null
38
38
  ? undefined
39
39
  : Object.entries(headers).find(([key]) => key.toLowerCase() === name.toLowerCase())?.[1];
40
- if (Array.isArray(value)) {
41
- return value[0];
42
- }
43
- return value;
44
40
  }
45
41
  function getBodyContentTypeForExtraction(req, contentTypes) {
46
- const requestContentType = getHeaderValue(req, 'content-type')?.split(';')[0]?.trim().toLowerCase();
42
+ const contentTypeHeader = getHeaderValue(req, 'content-type');
43
+ const requestContentType = typeof contentTypeHeader === 'string' ? contentTypeHeader.split(';')[0]?.trim().toLowerCase() : undefined;
47
44
  if (!requestContentType) {
48
45
  return contentTypes[0];
49
46
  }
50
47
  return contentTypes.find(contentType => contentType.toLowerCase() === requestContentType) ?? contentTypes[0];
51
48
  }
52
49
  function getRequestValue(req, request, source, key) {
53
- const primaryValue = getFieldValue(getRequestSourceValue(req, request, source), key);
50
+ const sourceValue = getRequestSourceValue(req, request, source);
51
+ let primaryValue = getFieldValue(sourceValue, key);
52
+ if (primaryValue === undefined && source === 'headers' && (0, helpers_1.isRecord)(sourceValue)) {
53
+ const match = Object.keys(sourceValue).find(headerName => headerName.toLowerCase() === key.toLowerCase());
54
+ primaryValue = match === undefined ? undefined : getFieldValue(sourceValue, match);
55
+ }
54
56
  if (primaryValue !== undefined) {
55
57
  return primaryValue;
56
58
  }
@@ -97,4 +99,4 @@ function extractApiRequest(req, request) {
97
99
  raw: req,
98
100
  };
99
101
  }
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1leHRyYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwaS1yb3V0ZXMvcmVxdWVzdC1leHRyYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBaUVBLDBDQXNCQztBQUVELDBEQXlCQztBQUVELDhDQWFDO0FBOUhELHVDQUE2SDtBQVc3SCxTQUFTLHFCQUFxQixDQUFDLEdBQWMsRUFBRSxPQUF5QyxFQUFFLE1BQXdCO0lBQ2hILE1BQU0sYUFBYSxHQUFHLEdBQXlDLENBQUM7SUFDaEUsUUFBUSxNQUFNLEVBQUUsQ0FBQztRQUNmLEtBQUssUUFBUTtZQUNYLE9BQU8sYUFBYSxDQUFDLE1BQU0sQ0FBQztRQUM5QixLQUFLLE9BQU87WUFDVixPQUFPLE9BQU8sRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7UUFDckYsS0FBSyxTQUFTO1lBQ1osT0FBTyxhQUFhLENBQUMsT0FBTyxDQUFDO1FBQy9CLEtBQUssTUFBTTtZQUNULE9BQU8sT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztRQUMxRTtZQUNFLE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxhQUFhLENBQUMsV0FBb0IsRUFBRSxHQUFXO0lBQ3RELElBQUksQ0FBQyxJQUFBLGtCQUFRLEVBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztRQUMzQixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBQ0QsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDM0QsT0FBTyxXQUFXLENBQUMs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
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1leHRyYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwaS1yb3V0ZXMvcmVxdWVzdC1leHRyYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBeUVBLDBDQTJCQztBQUVELDBEQXlCQztBQUVELDhDQWFDO0FBM0lELHVDQU1tQjtBQVduQixTQUFTLHFCQUFxQixDQUM1QixHQUFjLEVBQ2QsT0FBeUMsRUFDekMsTUFBd0I7SUFFeEIsTUFBTSxhQUFhLEdBQUcsR0FBeUMsQ0FBQztJQUNoRSxRQUFRLE1BQU0sRUFBRSxDQUFDO1FBQ2YsS0FBSyxRQUFRO1lBQ1gsT0FBTyxhQUFhLENBQUMsTUFBTSxDQUFDO1FBQzlCLEtBQUssT0FBTztZQUNWLE9BQU8sT0FBTyxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztRQUNyRixLQUFLLFNBQVM7WUFDWixPQUFPLGFBQWEsQ0FBQyxPQUFPLENBQUM7UUFDL0IsS0FBSyxNQUFNO1lBQ1QsT0FBTyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO1FBQzFFO1lBQ0UsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFTLGFBQWEsQ0FBQyxXQUFvQixFQUFFLEdBQVc7SUFDdEQsSUFBSSxDQUFDLElBQUEsa0JBQVEsRUFBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1FBQzNCLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFDRCxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUMzRCxPQUFPLFdBQVcsQ0FB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
@@ -1 +1 @@
1
- {"version":3,"file":"route-factory.d.ts","sourceRoot":"","sources":["../../src/api-routes/route-factory.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE/E,wBAAgB,QAAQ,CACtB,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,oBAAoB,EAC9B,QAAQ,GAAE,kBAAuB,wCAyBlC"}
1
+ {"version":3,"file":"route-factory.d.ts","sourceRoot":"","sources":["../../src/api-routes/route-factory.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE/E,wBAAgB,QAAQ,CACtB,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,oBAAoB,EAC9B,QAAQ,GAAE,kBAAuB,wCA0BlC"}
@@ -22,9 +22,10 @@ function apiRoute(method, path, controller, action, request, metadata = {}) {
22
22
  description: metadata.description,
23
23
  operationId: metadata.operationId,
24
24
  responses: metadata.responses,
25
+ includeDefaultResponses: metadata.includeDefaultResponses,
25
26
  security: metadata.security ?? [{ bearerAuth: [] }],
26
27
  extensions,
27
28
  csrf: false,
28
29
  });
29
30
  }
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUtZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcGktcm91dGVzL3JvdXRlLWZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFJQSw0QkErQkM7QUFuQ0QscUNBQTBDO0FBQzFDLHVDQUFtRDtBQUduRCxTQUFnQixRQUFRLENBQ3RCLE1BQWtCLEVBQ2xCLElBQVksRUFDWixVQUFrQixFQUNsQixNQUFjLEVBQ2QsT0FBOEIsRUFDOUIsV0FBK0IsRUFBRTtJQUVqQyxNQUFNLG1CQUFtQixHQUFHLElBQUEsZ0NBQXNCLEVBQUMsSUFBSSxDQUFDLENBQUM7SUFDekQsTUFBTSxVQUFVLEdBQUcsbUJBQW1CLElBQUksUUFBUSxDQUFDLFVBQVU7UUFDM0QsQ0FBQyxDQUFDO1lBQ0EsR0FBRyxDQUFDLFFBQVEsQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDO1lBQzlCLEdBQUcsQ0FBQyxtQkFBbUIsSUFBSSxFQUFFLENBQUM7U0FDL0I7UUFDRCxDQUFDLENBQUMsU0FBUyxDQUFDO0lBRWQsT0FBTyxJQUFBLHVCQUFjLEVBQUM7UUFDcEIsTUFBTTtRQUNOLElBQUk7UUFDSixVQUFVO1FBQ1YsTUFBTTtRQUNOLE9BQU87UUFDUCxJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUk7UUFDbkIsT0FBTyxFQUFFLFFBQVEsQ0FBQyxPQUFPLElBQUksR0FBRyxVQUFVLElBQUksTUFBTSxFQUFFO1FBQ3RELFdBQVcsRUFBRSxRQUFRLENBQUMsV0FBVztRQUNqQyxXQUFXLEVBQUUsUUFBUSxDQUFDLFdBQVc7UUFDakMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxTQUFTO1FBQzdCLFFBQVEsRUFBRSxRQUFRLENBQUMsUUFBUSxJQUFJLENBQUMsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLENBQUM7UUFDbkQsVUFBVTtRQUNWLElBQUksRUFBRSxLQUFLO0tBQ1osQ0FBQyxDQUFDO0FBQ0wsQ0FBQyJ9
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUtZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcGktcm91dGVzL3JvdXRlLWZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFJQSw0QkFnQ0M7QUFwQ0QscUNBQTBDO0FBQzFDLHVDQUFtRDtBQUduRCxTQUFnQixRQUFRLENBQ3RCLE1BQWtCLEVBQ2xCLElBQVksRUFDWixVQUFrQixFQUNsQixNQUFjLEVBQ2QsT0FBOEIsRUFDOUIsV0FBK0IsRUFBRTtJQUVqQyxNQUFNLG1CQUFtQixHQUFHLElBQUEsZ0NBQXNCLEVBQUMsSUFBSSxDQUFDLENBQUM7SUFDekQsTUFBTSxVQUFVLEdBQUcsbUJBQW1CLElBQUksUUFBUSxDQUFDLFVBQVU7UUFDM0QsQ0FBQyxDQUFDO1lBQ0EsR0FBRyxDQUFDLFFBQVEsQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDO1lBQzlCLEdBQUcsQ0FBQyxtQkFBbUIsSUFBSSxFQUFFLENBQUM7U0FDL0I7UUFDRCxDQUFDLENBQUMsU0FBUyxDQUFDO0lBRWQsT0FBTyxJQUFBLHVCQUFjLEVBQUM7UUFDcEIsTUFBTTtRQUNOLElBQUk7UUFDSixVQUFVO1FBQ1YsTUFBTTtRQUNOLE9BQU87UUFDUCxJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUk7UUFDbkIsT0FBTyxFQUFFLFFBQVEsQ0FBQyxPQUFPLElBQUksR0FBRyxVQUFVLElBQUksTUFBTSxFQUFFO1FBQ3RELFdBQVcsRUFBRSxRQUFRLENBQUMsV0FBVztRQUNqQyxXQUFXLEVBQUUsUUFBUSxDQUFDLFdBQVc7UUFDakMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxTQUFTO1FBQzdCLHVCQUF1QixFQUFFLFFBQVEsQ0FBQyx1QkFBdUI7UUFDekQsUUFBUSxFQUFFLFFBQVEsQ0FBQyxRQUFRLElBQUksQ0FBQyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUNuRCxVQUFVO1FBQ1YsSUFBSSxFQUFFLEtBQUs7S0FDWixDQUFDLENBQUM7QUFDTCxDQUFDIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"route-registry.d.ts","sourceRoot":"","sources":["../../src/api-routes/route-registry.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAyB,MAAM,SAAS,CAAC;AAiDpE,wBAAgB,qBAAqB,IAAI,kBAAkB,EAAE,CAE5D;AAED,wBAAgB,qBAAqB,IAAI,kBAAkB,EAAE,CAiB5D;AASD,wBAAgB,kBAAkB,IAAI,kBAAkB,EAAE,CAOzD;AAED,wBAAgB,kBAAkB,4CAEjC;AAED,wBAAgB,uBAAuB,kCAEtC;AAED,wBAAgB,yBAAyB,kCAExC;AAgBD,wBAAgB,2BAA2B,CAAC,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,uCAE/F;AAED,wBAAgB,6BAA6B,CAAC,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,uCAEjG;AAED,wBAAgB,qBAAqB,CAAC,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,UAEzF;AAED,wBAAgB,uBAAuB,CAAC,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,UAE3F"}
1
+ {"version":3,"file":"route-registry.d.ts","sourceRoot":"","sources":["../../src/api-routes/route-registry.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAyB,MAAM,SAAS,CAAC;AAmDpE,wBAAgB,qBAAqB,IAAI,kBAAkB,EAAE,CAE5D;AAED,wBAAgB,qBAAqB,IAAI,kBAAkB,EAAE,CAiB5D;AASD,wBAAgB,kBAAkB,IAAI,kBAAkB,EAAE,CAOzD;AAED,wBAAgB,kBAAkB,4CAEjC;AAED,wBAAgB,uBAAuB,kCAEtC;AAED,wBAAgB,yBAAyB,kCAExC;AAgBD,wBAAgB,2BAA2B,CAAC,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,uCAE/F;AAED,wBAAgB,6BAA6B,CAAC,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,uCAEjG;AAED,wBAAgB,qBAAqB,CAAC,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,UAEzF;AAED,wBAAgB,uBAAuB,CAAC,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,UAE3F"}
@@ -25,6 +25,7 @@ const harvest_runs_1 = require("./groups/harvest-runs");
25
25
  const integration_audit_1 = require("./groups/integration-audit");
26
26
  const notifications_1 = require("./groups/notifications");
27
27
  const records_1 = require("./groups/records");
28
+ const record_schemas_1 = require("./groups/record-schemas");
28
29
  const recordtypes_1 = require("./groups/recordtypes");
29
30
  const reports_1 = require("./groups/reports");
30
31
  const search_1 = require("./groups/search");
@@ -39,6 +40,7 @@ const apiDocumentInfo = {
39
40
  };
40
41
  const coreApiRouteGroups = [
41
42
  records_1.recordApiRoutes,
43
+ record_schemas_1.recordSchemaApiRoutes,
42
44
  users_1.userApiRoutes,
43
45
  search_1.searchApiRoutes,
44
46
  forms_1.formApiRoutes,
@@ -118,4 +120,4 @@ function buildCoreApiBlueprint(options = {}) {
118
120
  function buildMergedApiBlueprint(options = {}) {
119
121
  return buildApiBlueprintForRoutes(getMergedApiRoutes(), options);
120
122
  }
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUtcmVnaXN0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXBpLXJvdXRlcy9yb3V0ZS1yZWdpc3RyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQW9EQSxzREFFQztBQUVELHNEQWlCQztBQVNELGdEQU9DO0FBRUQsZ0RBRUM7QUFFRCwwREFFQztBQUVELDhEQUVDO0FBZ0JELGtFQUVDO0FBRUQsc0VBRUM7QUFFRCxzREFFQztBQUVELDBEQUVDO0FBbklELGlDQUEyQztBQUMzQyx1Q0FBaUQ7QUFDakQsdUNBQTRIO0FBRTVILGtEQUF3RDtBQUN4RCwwQ0FBZ0Q7QUFDaEQsZ0RBQXNEO0FBQ3RELGdFQUFxRTtBQUNyRSw0Q0FBa0Q7QUFDbEQsc0VBQTBFO0FBQzFFLHNFQUEyRTtBQUMzRSwwQ0FBK0M7QUFDL0Msd0RBQTREO0FBQzVELGtFQUF1RTtBQUN2RSwwREFBK0Q7QUFDL0QsOENBQW1EO0FBQ25ELHNEQUEyRDtBQUMzRCw4Q0FBb0Q7QUFDcEQsNENBQWtEO0FBQ2xELHNEQUE0RDtBQUM1RCwwQ0FBK0M7QUFDL0Msb0RBQTBEO0FBQzFELHNEQUEyRDtBQUUzRCxNQUFNLGVBQWUsR0FBRztJQUN0QixLQUFLLEVBQUUsbUJBQW1CO0lBQzFCLE9BQU8sRUFBRSxPQUFPO0lBQ2hCLFdBQVcsRUFBRSxpREFBaUQ7Q0FDdEQsQ0FBQztBQUVYLE1BQU0sa0JBQWtCLEdBQUc7SUFDekIseUJBQWU7SUFDZixxQkFBYTtJQUNiLHdCQUFlO0lBQ2YscUJBQWE7SUFDYixrQ0FBbUI7SUFDbkIsZ0NBQW1CO0lBQ25CLGlEQUEyQjtJQUMzQixnREFBMEI7SUFDMUIsaUNBQW1CO0lBQ25CLHNCQUFjO0lBQ2QsOEJBQWtCO0lBQ2xCLDRCQUFpQjtJQUNqQiwyQ0FBd0I7SUFDeEIsa0NBQW9CO0lBQ3BCLDBCQUFnQjtJQUNoQiw2Q0FBeUI7SUFDekIsd0JBQWU7SUFDZixxQ0FBcUI7SUFDckIsaUNBQW1CO0NBQ1gsQ0FBQztB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
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUtcmVnaXN0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXBpLXJvdXRlcy9yb3V0ZS1yZWdpc3RyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXNEQSxzREFFQztBQUVELHNEQWlCQztBQVNELGdEQU9DO0FBRUQsZ0RBRUM7QUFFRCwwREFFQztBQUVELDhEQUVDO0FBZ0JELGtFQUVDO0FBRUQsc0VBRUM7QUFFRCxzREFFQztBQUVELDBEQUVDO0FBcklELGlDQUEyQztBQUMzQyx1Q0FBaUQ7QUFDakQsdUNBQTRIO0FBRTVILGtEQUF3RDtBQUN4RCwwQ0FBZ0Q7QUFDaEQsZ0RBQXNEO0FBQ3RELGdFQUFxRTtBQUNyRSw0Q0FBa0Q7QUFDbEQsc0VBQTBFO0FBQzFFLHNFQUEyRTtBQUMzRSwwQ0FBK0M7QUFDL0Msd0RBQTREO0FBQzVELGtFQUF1RTtBQUN2RSwwREFBK0Q7QUFDL0QsOENBQW1EO0FBQ25ELDREQUFnRTtBQUNoRSxzREFBMkQ7QUFDM0QsOENBQW9EO0FBQ3BELDRDQUFrRDtBQUNsRCxzREFBNEQ7QUFDNUQsMENBQStDO0FBQy9DLG9EQUEwRDtBQUMxRCxzREFBMkQ7QUFFM0QsTUFBTSxlQUFlLEdBQUc7SUFDdEIsS0FBSyxFQUFFLG1CQUFtQjtJQUMxQixPQUFPLEVBQUUsT0FBTztJQUNoQixXQUFXLEVBQUUsaURBQWlEO0NBQ3RELENBQUM7QUFFWCxNQUFNLGtCQUFrQixHQUFHO0lBQ3pCLHlCQUFlO0lBQ2Ysc0NBQXFCO0lBQ3JCLHFCQUFhO0lBQ2Isd0JBQWU7SUFDZixxQkFBYTtJQUNiLGtDQUFtQjtJQUNuQixnQ0FBbUI7SUFDbkIsaURBQTJCO0lBQzNCLGdEQUEwQjtJQUMxQixpQ0FBbUI7SUFDbkIsc0JBQWM7SUFDZCw4QkFBa0I7SUFDbEIsNEJBQWlCO0lBQ2pCLDJDQUF3QjtJQUN4QixrQ0FBb0I7SUFDcEIsMEJBQWdCO0lBQ2hCLDZDQUF5QjtJQUN6Qix3QkFBZTtJQUNmLHFDQUFx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
@@ -6,6 +6,23 @@ export declare const integerField: (description?: string) => ApiSchemaField;
6
6
  export declare const booleanField: (description?: string) => ApiSchemaField;
7
7
  export declare const binaryField: (description?: string) => ApiSchemaField;
8
8
  export declare const anyField: (description?: string) => ApiSchemaField;
9
+ export declare const validationOperationQueryField: ApiSchemaField;
10
+ /**
11
+ * Keep semantic header parsing in RecordHttpConcurrency so weak, wildcard,
12
+ * list, and wrong-record tags receive the same bounded controller error. The
13
+ * OpenAPI pattern still describes the strong entity tags clients must send.
14
+ */
15
+ export declare const recordIfMatchHeaderField: ApiSchemaField;
16
+ /**
17
+ * Record revisions already use the standard `If-Match` header, so schema
18
+ * writes retain a distinct precondition header at the HTTP boundary.
19
+ */
20
+ export declare const RECORD_SCHEMA_WRITE_PRECONDITION_HEADER: "X-ReDBox-Record-Schema-If-Match";
21
+ /**
22
+ * Keep semantic parsing in RecordSchemaService so stale and malformed schema
23
+ * preconditions use the existing typed save-failure representation.
24
+ */
25
+ export declare const recordSchemaWritePreconditionHeaderField: ApiSchemaField;
9
26
  export declare function objectField(properties: Record<string, ApiSchemaField>, required?: readonly string[], description?: string, additionalProperties?: boolean | ApiSchemaField): ApiSchemaField;
10
27
  export declare function arrayField(items: ApiSchemaField, description?: string): ApiSchemaField;
11
28
  export declare function responseField(schema: ApiSchemaField, description: string): {
@@ -16,6 +33,17 @@ export declare function responseField(schema: ApiSchemaField, description: strin
16
33
  };
17
34
  export declare const brandPortalParams: ApiSchemaField;
18
35
  export declare const oidParams: ApiSchemaField;
36
+ /**
37
+ * Public API mutations are form-independent, so they never carry the browser
38
+ * form fingerprint; only the browser routes bind to a generated form.
39
+ */
40
+ export declare const recordMutationHeaderFields: {
41
+ 'If-Match': ApiSchemaField;
42
+ 'X-ReDBox-Save-Request-Id': ApiSchemaField;
43
+ 'X-ReDBox-Concurrency-Resolution': ApiSchemaField;
44
+ 'X-ReDBox-Resolution-Of-Request-Id': ApiSchemaField;
45
+ };
46
+ export declare const recordMutationHeaders: ApiSchemaField;
19
47
  export declare const idParams: ApiSchemaField;
20
48
  export declare const recordTypeParams: ApiSchemaField;
21
49
  export declare const targetStepParams: ApiSchemaField;
@@ -25,10 +53,18 @@ export declare const recordSearchQuery: ApiSchemaField;
25
53
  export declare const recordListQuery: ApiSchemaField;
26
54
  export declare const recordAuditQuery: ApiSchemaField;
27
55
  export declare const recordUpdateQuery: ApiSchemaField;
56
+ export declare const legacyRecordUpdateQuery: ApiSchemaField;
57
+ export declare const recordOperationQuery: ApiSchemaField;
58
+ export declare const recordDeleteQuery: ApiSchemaField;
28
59
  export declare const recordHarvestQuery: ApiSchemaField;
29
60
  export declare const recordDownloadQuery: ApiSchemaField;
30
61
  export declare const brandingDraftBody: ApiSchemaField;
62
+ export declare const brandingExpectedRevisionBody: ApiSchemaField;
31
63
  export declare const brandingPublishBody: ApiSchemaField;
64
+ export declare const brandingRestoreBody: ApiSchemaField;
65
+ export declare const brandingFaceUploadBody: ApiSchemaField;
66
+ export declare const brandingVersionIdParams: ApiSchemaField;
67
+ export declare const brandingSlotParams: ApiSchemaField;
32
68
  export declare const logoUploadBody: ApiSchemaField;
33
69
  export declare const faviconUploadBody: ApiSchemaField;
34
70
  export declare const datastreamUploadBody: ApiSchemaField;
@@ -1 +1 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/api-routes/schemas/common.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,cAAc,aAAa,CAAC;AAa5B,eAAO,MAAM,WAAW,GAAI,cAAc,MAAM,KAAG,cAA0D,CAAC;AAC9G,eAAO,MAAM,WAAW,GAAI,cAAc,MAAM,KAAG,cAA0D,CAAC;AAC9G,eAAO,MAAM,YAAY,GAAI,cAAc,MAAM,KAAG,cAAgE,CAAC;AACrH,eAAO,MAAM,YAAY,GAAI,cAAc,MAAM,KAAG,cAA2D,CAAC;AAChH,eAAO,MAAM,WAAW,GAAI,cAAc,MAAM,KAAG,cACyB,CAAC;AAC7E,eAAO,MAAM,QAAQ,GAAI,cAAc,MAAM,KAAG,cACW,CAAC;AAE5D,wBAAgB,WAAW,CACzB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,EAC1C,QAAQ,GAAE,SAAS,MAAM,EAAO,EAChC,WAAW,CAAC,EAAE,MAAM,EACpB,oBAAoB,GAAE,OAAO,GAAG,cAAsB,GACrD,cAAc,CAchB;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,cAAc,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,cAAc,CAEtF;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,MAAM,GAClB;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,cAAc,CAAA;KAAE,CAAC,CAAA;CAAE,CAO9E;AAED,eAAO,MAAM,iBAAiB,gBAM7B,CAAC;AAEF,eAAO,MAAM,SAAS,gBAKrB,CAAC;AAEF,eAAO,MAAM,QAAQ,gBAKpB,CAAC;AAEF,eAAO,MAAM,gBAAgB,gBAK5B,CAAC;AAEF,eAAO,MAAM,gBAAgB,gBAK5B,CAAC;AAEF,eAAO,MAAM,gBAAgB,gBAM5B,CAAC;AAEF,eAAO,MAAM,eAAe,gBAM1B,CAAC;AAEH,eAAO,MAAM,iBAAiB,gBAS5B,CAAC;AAEH,eAAO,MAAM,eAAe,gBAU1B,CAAC;AAEH,eAAO,MAAM,gBAAgB,gBAG3B,CAAC;AAEH,eAAO,MAAM,iBAAiB,gBAG5B,CAAC;AAEH,eAAO,MAAM,kBAAkB,gBAE7B,CAAC;AAEH,eAAO,MAAM,mBAAmB,gBAE9B,CAAC;AAEH,eAAO,MAAM,iBAAiB,gBAE5B,CAAC;AAEH,eAAO,MAAM,mBAAmB,gBAE9B,CAAC;AAEH,eAAO,MAAM,cAAc,gBAA0D,CAAC;AAEtF,eAAO,MAAM,iBAAiB,gBAA6D,CAAC;AAE5F,eAAO,MAAM,oBAAoB,gBAAgE,CAAC;AAElG,eAAO,MAAM,gBAAgB,gBAY5B,CAAC"}
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/api-routes/schemas/common.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAS1C,cAAc,aAAa,CAAC;AAa5B,eAAO,MAAM,WAAW,GAAI,cAAc,MAAM,KAAG,cAA0D,CAAC;AAC9G,eAAO,MAAM,WAAW,GAAI,cAAc,MAAM,KAAG,cAA0D,CAAC;AAC9G,eAAO,MAAM,YAAY,GAAI,cAAc,MAAM,KAAG,cAAgE,CAAC;AACrH,eAAO,MAAM,YAAY,GAAI,cAAc,MAAM,KAAG,cAA2D,CAAC;AAChH,eAAO,MAAM,WAAW,GAAI,cAAc,MAAM,KAAG,cACyB,CAAC;AAC7E,eAAO,MAAM,QAAQ,GAAI,cAAc,MAAM,KAAG,cACW,CAAC;AAE5D,eAAO,MAAM,6BAA6B,EAAE,cAU3C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,EAAE,cAOtC,CAAC;AAIF;;;GAGG;AACH,eAAO,MAAM,uCAAuC,EAAG,iCAA0C,CAAC;AAElG;;;GAGG;AACH,eAAO,MAAM,wCAAwC,EAAE,cAOtD,CAAC;AAiBF,wBAAgB,WAAW,CACzB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,EAC1C,QAAQ,GAAE,SAAS,MAAM,EAAO,EAChC,WAAW,CAAC,EAAE,MAAM,EACpB,oBAAoB,GAAE,OAAO,GAAG,cAAsB,GACrD,cAAc,CAiBhB;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,cAAc,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,cAAc,CAEtF;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,MAAM,GAClB;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,cAAc,CAAA;KAAE,CAAC,CAAA;CAAE,CAO9E;AAED,eAAO,MAAM,iBAAiB,gBAM7B,CAAC;AAEF,eAAO,MAAM,SAAS,gBAKrB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,0BAA0B;;;;;CAKtC,CAAC;AAEF,eAAO,MAAM,qBAAqB,gBAA0C,CAAC;AAE7E,eAAO,MAAM,QAAQ,gBAKpB,CAAC;AAEF,eAAO,MAAM,gBAAgB,gBAK5B,CAAC;AAEF,eAAO,MAAM,gBAAgB,gBAK5B,CAAC;AAEF,eAAO,MAAM,gBAAgB,gBAM5B,CAAC;AAEF,eAAO,MAAM,eAAe,gBAM1B,CAAC;AAEH,eAAO,MAAM,iBAAiB,gBAS5B,CAAC;AAEH,eAAO,MAAM,eAAe,gBAU1B,CAAC;AAEH,eAAO,MAAM,gBAAgB,gBAG3B,CAAC;AAOH,eAAO,MAAM,iBAAiB,gBAG5B,CAAC;AAEH,eAAO,MAAM,uBAAuB,gBAAoD,CAAC;AAEzF,eAAO,MAAM,oBAAoB,gBAE/B,CAAC;AAEH,eAAO,MAAM,iBAAiB,gBAI5B,CAAC;AAEH,eAAO,MAAM,kBAAkB,gBAE7B,CAAC;AAEH,eAAO,MAAM,mBAAmB,gBAE9B,CAAC;AAEH,eAAO,MAAM,iBAAiB,gBAM7B,CAAC;AAEF,eAAO,MAAM,4BAA4B,gBAKxC,CAAC;AAEF,eAAO,MAAM,mBAAmB,gBAM/B,CAAC;AAEF,eAAO,MAAM,mBAAmB,gBAM/B,CAAC;AAEF,eAAO,MAAM,sBAAsB,gBAKlC,CAAC;AAEF,eAAO,MAAM,uBAAuB,gBAOnC,CAAC;AAEF,eAAO,MAAM,kBAAkB,gBAO9B,CAAC;AAEF,eAAO,MAAM,cAAc,gBAA0D,CAAC;AAEtF,eAAO,MAAM,iBAAiB,gBAA6D,CAAC;AAE5F,eAAO,MAAM,oBAAoB,gBAAgE,CAAC;AAElG,eAAO,MAAM,gBAAgB,gBAY5B,CAAC"}
@@ -14,11 +14,12 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.notificationBody = exports.datastreamUploadBody = exports.faviconUploadBody = exports.logoUploadBody = exports.brandingPublishBody = exports.brandingDraftBody = exports.recordDownloadQuery = exports.recordHarvestQuery = exports.recordUpdateQuery = exports.recordAuditQuery = exports.recordListQuery = exports.recordSearchQuery = exports.userSearchQuery = exports.datastreamParams = exports.targetStepParams = exports.recordTypeParams = exports.idParams = exports.oidParams = exports.brandPortalParams = exports.anyField = exports.binaryField = exports.booleanField = exports.integerField = exports.numberField = exports.stringField = void 0;
17
+ exports.notificationBody = exports.datastreamUploadBody = exports.faviconUploadBody = exports.logoUploadBody = exports.brandingSlotParams = exports.brandingVersionIdParams = exports.brandingFaceUploadBody = exports.brandingRestoreBody = exports.brandingPublishBody = exports.brandingExpectedRevisionBody = exports.brandingDraftBody = exports.recordDownloadQuery = exports.recordHarvestQuery = exports.recordDeleteQuery = exports.recordOperationQuery = exports.legacyRecordUpdateQuery = exports.recordUpdateQuery = exports.recordAuditQuery = exports.recordListQuery = exports.recordSearchQuery = exports.userSearchQuery = exports.datastreamParams = exports.targetStepParams = exports.recordTypeParams = exports.idParams = exports.recordMutationHeaders = exports.recordMutationHeaderFields = exports.oidParams = exports.brandPortalParams = exports.recordSchemaWritePreconditionHeaderField = exports.RECORD_SCHEMA_WRITE_PRECONDITION_HEADER = exports.recordIfMatchHeaderField = exports.validationOperationQueryField = exports.anyField = exports.binaryField = exports.booleanField = exports.integerField = exports.numberField = exports.stringField = void 0;
18
18
  exports.objectField = objectField;
19
19
  exports.arrayField = arrayField;
20
20
  exports.responseField = responseField;
21
21
  const zod_openapi_1 = require("../zod-openapi");
22
+ const sails_ng_common_1 = require("@researchdatabox/sails-ng-common");
22
23
  __exportStar(require("./responses"), exports);
23
24
  function withOpenApi(schema, metadata) {
24
25
  return schema.openapi(metadata);
@@ -41,6 +42,51 @@ const binaryField = (description) => withOpenApi(zod_openapi_1.z.string(), { typ
41
42
  exports.binaryField = binaryField;
42
43
  const anyField = (description) => withOpenApi(zod_openapi_1.z.unknown(), { type: 'object', description });
43
44
  exports.anyField = anyField;
45
+ exports.validationOperationQueryField = withOpenApi(zod_openapi_1.z
46
+ .string({ error: 'record-validation-operation-invalid' })
47
+ .trim()
48
+ .max(sails_ng_common_1.VALIDATION_OPERATION_NAME_MAX_LENGTH, { error: 'record-validation-operation-invalid' })
49
+ .regex(sails_ng_common_1.VALIDATION_OPERATION_NAME_PATTERN, { error: 'record-validation-operation-invalid' }), {
50
+ description: 'Case-sensitive server validation operation identifier',
51
+ example: 'submit',
52
+ });
53
+ /**
54
+ * Keep semantic header parsing in RecordHttpConcurrency so weak, wildcard,
55
+ * list, and wrong-record tags receive the same bounded controller error. The
56
+ * OpenAPI pattern still describes the strong entity tags clients must send.
57
+ */
58
+ exports.recordIfMatchHeaderField = withOpenApi(zod_openapi_1.z.string().max(sails_ng_common_1.RECORD_ENTITY_TAG_MAX_LENGTH, { error: 'record-if-match-invalid' }), {
59
+ description: 'Exact strong ETag returned by the latest authorized individual record read',
60
+ pattern: sails_ng_common_1.RECORD_ENTITY_TAG_PATTERN.source,
61
+ example: '"rb-record-v1.7.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"',
62
+ });
63
+ const RECORD_SCHEMA_ETAG_PATTERN = /^"sha256:[0-9a-f]{64}"$/;
64
+ /**
65
+ * Record revisions already use the standard `If-Match` header, so schema
66
+ * writes retain a distinct precondition header at the HTTP boundary.
67
+ */
68
+ exports.RECORD_SCHEMA_WRITE_PRECONDITION_HEADER = 'X-ReDBox-Record-Schema-If-Match';
69
+ /**
70
+ * Keep semantic parsing in RecordSchemaService so stale and malformed schema
71
+ * preconditions use the existing typed save-failure representation.
72
+ */
73
+ exports.recordSchemaWritePreconditionHeaderField = withOpenApi(zod_openapi_1.z.string({ error: 'record-schema-if-match-invalid' }), {
74
+ description: 'Strong record-schema ETag for conditional updates',
75
+ pattern: RECORD_SCHEMA_ETAG_PATTERN.source,
76
+ example: `"sha256:${'a'.repeat(64)}"`,
77
+ });
78
+ const recordResolutionField = withOpenApi(zod_openapi_1.z.string().max(64), {
79
+ description: 'Diagnostic resolution label; never authorization or a precondition bypass',
80
+ enum: ['direct', 'client-auto-merged', 'client-manually-resolved'],
81
+ });
82
+ const recordResolutionRequestIdField = withOpenApi(zod_openapi_1.z.string().max(sails_ng_common_1.RECORD_SAVE_REQUEST_ID_MAX_LENGTH), {
83
+ description: 'Canonical UUID of the conflict response this resolution follows',
84
+ format: 'uuid',
85
+ });
86
+ const recordSaveRequestIdField = withOpenApi(zod_openapi_1.z.string().max(sails_ng_common_1.RECORD_SAVE_REQUEST_ID_MAX_LENGTH), {
87
+ description: 'Optional canonical UUID used to correlate this save attempt',
88
+ format: 'uuid',
89
+ });
44
90
  function objectField(properties, required = [], description, additionalProperties = false) {
45
91
  const requiredSet = new Set(required);
46
92
  const shape = Object.entries(properties).reduce((acc, [key, schema]) => {
@@ -70,6 +116,17 @@ exports.brandPortalParams = objectField({
70
116
  exports.oidParams = objectField({
71
117
  oid: (0, exports.stringField)('Record OID'),
72
118
  }, ['oid']);
119
+ /**
120
+ * Public API mutations are form-independent, so they never carry the browser
121
+ * form fingerprint; only the browser routes bind to a generated form.
122
+ */
123
+ exports.recordMutationHeaderFields = {
124
+ 'If-Match': exports.recordIfMatchHeaderField,
125
+ 'X-ReDBox-Save-Request-Id': recordSaveRequestIdField,
126
+ 'X-ReDBox-Concurrency-Resolution': recordResolutionField,
127
+ 'X-ReDBox-Resolution-Of-Request-Id': recordResolutionRequestIdField,
128
+ };
129
+ exports.recordMutationHeaders = objectField(exports.recordMutationHeaderFields);
73
130
  exports.idParams = objectField({
74
131
  id: (0, exports.stringField)('Identifier'),
75
132
  }, ['id']);
@@ -115,9 +172,22 @@ exports.recordAuditQuery = objectField({
115
172
  dateFrom: (0, exports.stringField)('Start date filter'),
116
173
  dateTo: (0, exports.stringField)('End date filter'),
117
174
  });
118
- exports.recordUpdateQuery = objectField({
175
+ const recordUpdateCompatibilityQueryFields = {
119
176
  merge: (0, exports.booleanField)('Merge arrays instead of replacing them'),
120
177
  datastreams: (0, exports.booleanField)('Process datastream metadata updates'),
178
+ };
179
+ exports.recordUpdateQuery = objectField({
180
+ ...recordUpdateCompatibilityQueryFields,
181
+ operation: exports.validationOperationQueryField,
182
+ });
183
+ exports.legacyRecordUpdateQuery = objectField(recordUpdateCompatibilityQueryFields);
184
+ exports.recordOperationQuery = objectField({
185
+ operation: exports.validationOperationQueryField,
186
+ });
187
+ exports.recordDeleteQuery = objectField({
188
+ permanent: withOpenApi(zod_openapi_1.z.enum(['true', 'false']), {
189
+ description: 'Permanently purge the record and its datastreams instead of retaining a tombstone',
190
+ }),
121
191
  });
122
192
  exports.recordHarvestQuery = objectField({
123
193
  updateMode: (0, exports.stringField)('Harvest update mode'),
@@ -127,10 +197,30 @@ exports.recordDownloadQuery = objectField({
127
197
  });
128
198
  exports.brandingDraftBody = objectField({
129
199
  variables: objectField({}, [], 'Branding variables', true),
130
- });
200
+ expectedDraftRevision: (0, exports.integerField)('Expected draft revision (optimistic concurrency)'),
201
+ }, ['expectedDraftRevision']);
202
+ exports.brandingExpectedRevisionBody = objectField({
203
+ expectedDraftRevision: (0, exports.integerField)('Expected draft revision (optimistic concurrency)'),
204
+ }, ['expectedDraftRevision']);
131
205
  exports.brandingPublishBody = objectField({
132
206
  expectedVersion: (0, exports.integerField)('Expected version'),
133
- });
207
+ expectedDraftRevision: (0, exports.integerField)('Expected draft revision (optimistic concurrency)'),
208
+ }, ['expectedVersion', 'expectedDraftRevision']);
209
+ exports.brandingRestoreBody = objectField({
210
+ expectedVersion: (0, exports.integerField)('Expected version'),
211
+ expectedDraftRevision: (0, exports.integerField)('Expected draft revision (optimistic concurrency)'),
212
+ }, ['expectedVersion', 'expectedDraftRevision']);
213
+ exports.brandingFaceUploadBody = objectField({}, [], 'Multipart typeface face upload body (face file plus expectedDraftRevision field)', true);
214
+ exports.brandingVersionIdParams = objectField({
215
+ branding: (0, exports.stringField)('Branding identifier'),
216
+ portal: (0, exports.stringField)('Portal identifier'),
217
+ versionId: (0, exports.stringField)('Retained branding version row ID'),
218
+ }, ['branding', 'portal', 'versionId']);
219
+ exports.brandingSlotParams = objectField({
220
+ branding: (0, exports.stringField)('Branding identifier'),
221
+ portal: (0, exports.stringField)('Portal identifier'),
222
+ slot: (0, exports.stringField)('Typeface face slot (regular, bold, italic, boldItalic)'),
223
+ }, ['branding', 'portal', 'slot']);
134
224
  exports.logoUploadBody = objectField({}, [], 'Multipart logo upload body', true);
135
225
  exports.faviconUploadBody = objectField({}, [], 'Multipart favicon upload body', true);
136
226
  exports.datastreamUploadBody = objectField({}, [], 'Multipart datastream upload body', true);
@@ -144,4 +234,4 @@ exports.notificationBody = objectField({
144
234
  format: (0, exports.stringField)('Email format'),
145
235
  data: (0, exports.anyField)('Template data'),
146
236
  }, []);
147
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS1yb3V0ZXMvc2NoZW1hcy9jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUEyQkEsa0NBbUJDO0FBRUQsZ0NBRUM7QUFFRCxzQ0FVQztBQTlERCxnREFBbUM7QUFLbkMsOENBQTRCO0FBRTVCLFNBQVMsV0FBVyxDQUFvQixNQUFTLEVBQUUsUUFBaUM7SUFDbEYsT0FBUSxNQUEyRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUN4RyxDQUFDO0FBRUQsU0FBUyxlQUFlLENBQW9CLE1BQVMsRUFBRSxXQUFvQjtJQUN6RSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDakIsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUNELE9BQU8sV0FBVyxDQUFDLE1BQU0sRUFBRSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7QUFDOUMsQ0FBQztBQUVNLE1BQU0sV0FBVyxHQUFHLENBQUMsV0FBb0IsRUFBa0IsRUFBRSxDQUFDLGVBQWUsQ0FBQyxlQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFBakcsUUFBQSxXQUFXLGVBQXNGO0FBQ3ZHLE1BQU0sV0FBVyxHQUFHLENBQUMsV0FBb0IsRUFBa0IsRUFBRSxDQUFDLGVBQWUsQ0FBQyxlQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFBakcsUUFBQSxXQUFXLGVBQXNGO0FBQ3ZHLE1BQU0sWUFBWSxHQUFHLENBQUMsV0FBb0IsRUFBa0IsRUFBRSxDQUFDLGVBQWUsQ0FBQyxlQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFBeEcsUUFBQSxZQUFZLGdCQUE0RjtBQUM5RyxNQUFNLFlBQVksR0FBRyxDQUFDLFdBQW9CLEVBQWtCLEVBQUUsQ0FBQyxlQUFlLENBQUMs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
237
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS1yb3V0ZXMvc2NoZW1hcy9jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFnR0Esa0NBc0JDO0FBRUQsZ0NBRUM7QUFFRCxzQ0FVQztBQXRJRCxnREFBbUM7QUFJbkMsc0VBTTBDO0FBRTFDLDhDQUE0QjtBQUU1QixTQUFTLFdBQVcsQ0FBb0IsTUFBUyxFQUFFLFFBQWlDO0lBQ2xGLE9BQVEsTUFBMkUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDeEcsQ0FBQztBQUVELFNBQVMsZUFBZSxDQUFvQixNQUFTLEVBQUUsV0FBb0I7SUFDekUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2pCLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFDRCxPQUFPLFdBQVcsQ0FBQyxNQUFNLEVBQUUsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0FBQzlDLENBQUM7QUFFTSxNQUFNLFdBQVcsR0FBRyxDQUFDLFdBQW9CLEVBQWtCLEVBQUUsQ0FBQyxlQUFlLENBQUMsZUFBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBQWpHLFFBQUEsV0FBVyxlQUFzRjtBQUN2RyxNQUFNLFdBQVcsR0FBRyxDQUFDLFdBQW9CLEVBQWtCLEVBQUUsQ0FBQyxlQUFlLENBQUMsZUFBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBQWpHLFFBQUEsV0FBVyxlQUFzRjtBQUN2RyxNQUFNLFlBQVksR0FBRyxDQUFDLFdBQW9CLEVBQWtCLEVBQUUsQ0FBQyxlQUFlLENBQUMsZUFBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBQXhHLFFBQUEsWUFBWSxnQkFBNEY7QUFDOUcsTUFBTSxZQUFZLEdBQUcsQ0FBQyxXQUFvQixFQUFrQixFQUFFLENB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