@researchdatabox/redbox-core 5.0.4 → 5.1.0-beta.12568

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 (548) 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 +5 -1
  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 +49 -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 +109 -13
  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 +49 -9
  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/FigsharePublishing.d.ts +1 -1
  156. package/dist/configmodels/OniPublishing.d.ts +205 -0
  157. package/dist/configmodels/OniPublishing.d.ts.map +1 -0
  158. package/dist/configmodels/OniPublishing.js +335 -0
  159. package/dist/configmodels/RaidPublishing.d.ts +97 -0
  160. package/dist/configmodels/RaidPublishing.d.ts.map +1 -0
  161. package/dist/configmodels/RaidPublishing.js +35 -0
  162. package/dist/configmodels/WebAnalytics.d.ts +55 -0
  163. package/dist/configmodels/WebAnalytics.d.ts.map +1 -0
  164. package/dist/configmodels/WebAnalytics.js +61 -0
  165. package/dist/controllers/AppConfigController.d.ts.map +1 -1
  166. package/dist/controllers/AppConfigController.js +4 -1
  167. package/dist/controllers/BrandingAppController.d.ts +29 -7
  168. package/dist/controllers/BrandingAppController.d.ts.map +1 -1
  169. package/dist/controllers/BrandingAppController.js +265 -69
  170. package/dist/controllers/BrandingController.d.ts +24 -1
  171. package/dist/controllers/BrandingController.d.ts.map +1 -1
  172. package/dist/controllers/BrandingController.js +173 -43
  173. package/dist/controllers/BrandingControllerSupport.d.ts +20 -0
  174. package/dist/controllers/BrandingControllerSupport.d.ts.map +1 -0
  175. package/dist/controllers/BrandingControllerSupport.js +80 -0
  176. package/dist/controllers/DashboardConfigController.d.ts +6 -2
  177. package/dist/controllers/DashboardConfigController.d.ts.map +1 -1
  178. package/dist/controllers/DashboardConfigController.js +18 -4
  179. package/dist/controllers/DynamicAssetController.d.ts +7 -5
  180. package/dist/controllers/DynamicAssetController.d.ts.map +1 -1
  181. package/dist/controllers/DynamicAssetController.js +21 -12
  182. package/dist/controllers/RecordController.d.ts +45 -4
  183. package/dist/controllers/RecordController.d.ts.map +1 -1
  184. package/dist/controllers/RecordController.js +778 -345
  185. package/dist/controllers/index.d.ts.map +1 -1
  186. package/dist/controllers/index.js +4 -1
  187. package/dist/controllers/webservice/AdminController.d.ts.map +1 -1
  188. package/dist/controllers/webservice/AdminController.js +4 -3
  189. package/dist/controllers/webservice/BrandingController.d.ts +26 -1
  190. package/dist/controllers/webservice/BrandingController.d.ts.map +1 -1
  191. package/dist/controllers/webservice/BrandingController.js +292 -116
  192. package/dist/controllers/webservice/DashboardConfigController.d.ts +25 -17
  193. package/dist/controllers/webservice/DashboardConfigController.d.ts.map +1 -1
  194. package/dist/controllers/webservice/DashboardConfigController.js +90 -205
  195. package/dist/controllers/webservice/FormManagementController.d.ts.map +1 -1
  196. package/dist/controllers/webservice/FormManagementController.js +37 -3
  197. package/dist/controllers/webservice/RecordController.d.ts +15 -1
  198. package/dist/controllers/webservice/RecordController.d.ts.map +1 -1
  199. package/dist/controllers/webservice/RecordController.js +647 -267
  200. package/dist/controllers/webservice/RecordSchemaController.d.ts +32 -0
  201. package/dist/controllers/webservice/RecordSchemaController.d.ts.map +1 -0
  202. package/dist/controllers/webservice/RecordSchemaController.js +356 -0
  203. package/dist/controllers/webservice/RecordTypeController.d.ts +6 -1
  204. package/dist/controllers/webservice/RecordTypeController.d.ts.map +1 -1
  205. package/dist/controllers/webservice/RecordTypeController.js +21 -3
  206. package/dist/controllers/webservice/SearchController.d.ts.map +1 -1
  207. package/dist/controllers/webservice/SearchController.js +7 -3
  208. package/dist/hooks/defineRedboxHook.d.ts +3 -0
  209. package/dist/hooks/defineRedboxHook.d.ts.map +1 -1
  210. package/dist/hooks/defineRedboxHook.js +4 -1
  211. package/dist/index.d.ts +50 -23
  212. package/dist/index.d.ts.map +1 -1
  213. package/dist/index.js +90 -2
  214. package/dist/loader/bootstrapShimRuntime.d.ts +1 -1
  215. package/dist/loader/bootstrapShimRuntime.d.ts.map +1 -1
  216. package/dist/loader/bootstrapShimRuntime.js +20 -12
  217. package/dist/loader/index.d.ts +9 -0
  218. package/dist/loader/index.d.ts.map +1 -1
  219. package/dist/loader/index.js +93 -4
  220. package/dist/model/BrandingTypeface.d.ts +70 -0
  221. package/dist/model/BrandingTypeface.d.ts.map +1 -0
  222. package/dist/model/BrandingTypeface.js +116 -0
  223. package/dist/model/BuildResponse.d.ts +25 -11
  224. package/dist/model/BuildResponse.d.ts.map +1 -1
  225. package/dist/model/BuildResponse.js +4 -3
  226. package/dist/model/DashboardTypeResponseModel.d.ts +6 -0
  227. package/dist/model/DashboardTypeResponseModel.d.ts.map +1 -1
  228. package/dist/model/DashboardTypeResponseModel.js +7 -1
  229. package/dist/model/DashboardViewResponseModel.d.ts +5 -1
  230. package/dist/model/DashboardViewResponseModel.d.ts.map +1 -1
  231. package/dist/model/DashboardViewResponseModel.js +6 -3
  232. package/dist/model/RBValidationError.d.ts +17 -0
  233. package/dist/model/RBValidationError.d.ts.map +1 -1
  234. package/dist/model/RBValidationError.js +37 -1
  235. package/dist/model/RecordTypeResponseModel.d.ts +12 -4
  236. package/dist/model/RecordTypeResponseModel.d.ts.map +1 -1
  237. package/dist/model/RecordTypeResponseModel.js +11 -2
  238. package/dist/model/index.d.ts +5 -1
  239. package/dist/model/index.d.ts.map +1 -1
  240. package/dist/model/index.js +5 -2
  241. package/dist/model/record-contract.d.ts +42 -0
  242. package/dist/model/record-contract.d.ts.map +1 -0
  243. package/dist/model/record-contract.js +3 -0
  244. package/dist/model/storage/BrandingModel.d.ts +7 -0
  245. package/dist/model/storage/BrandingModel.d.ts.map +1 -1
  246. package/dist/model/storage/BrandingModel.js +7 -1
  247. package/dist/model/storage/DeletedRecordModel.d.ts +35 -0
  248. package/dist/model/storage/DeletedRecordModel.d.ts.map +1 -1
  249. package/dist/model/storage/DeletedRecordModel.js +62 -1
  250. package/dist/model/storage/IntegrationAuditModel.d.ts +16 -2
  251. package/dist/model/storage/IntegrationAuditModel.d.ts.map +1 -1
  252. package/dist/model/storage/IntegrationAuditModel.js +15 -1
  253. package/dist/model/storage/RecordAuditModel.d.ts +11 -1
  254. package/dist/model/storage/RecordAuditModel.d.ts.map +1 -1
  255. package/dist/model/storage/RecordAuditModel.js +8 -2
  256. package/dist/model/storage/RecordModel.d.ts +8 -2
  257. package/dist/model/storage/RecordModel.d.ts.map +1 -1
  258. package/dist/model/storage/RecordTypeModel.d.ts +6 -0
  259. package/dist/model/storage/RecordTypeModel.d.ts.map +1 -1
  260. package/dist/model/storage/RecordTypeModel.js +4 -1
  261. package/dist/model/storage/index.d.ts +12 -10
  262. package/dist/model/storage/index.d.ts.map +1 -1
  263. package/dist/model/storage/index.js +24 -2
  264. package/dist/model/storage/record-schema.d.ts +115 -0
  265. package/dist/model/storage/record-schema.d.ts.map +1 -0
  266. package/dist/model/storage/record-schema.js +3 -0
  267. package/dist/policies/checkAuth.d.ts +2 -6
  268. package/dist/policies/checkAuth.d.ts.map +1 -1
  269. package/dist/policies/checkAuth.js +32 -9
  270. package/dist/policies/contentSecurityPolicy.d.ts.map +1 -1
  271. package/dist/policies/contentSecurityPolicy.js +85 -2
  272. package/dist/policies/index.d.ts +3 -2
  273. package/dist/policies/index.d.ts.map +1 -1
  274. package/dist/policies/index.js +4 -2
  275. package/dist/policies/validateApiContractRequest.d.ts.map +1 -1
  276. package/dist/policies/validateApiContractRequest.js +49 -11
  277. package/dist/record-contract/ajv-error-mapper.d.ts +34 -0
  278. package/dist/record-contract/ajv-error-mapper.d.ts.map +1 -0
  279. package/dist/record-contract/ajv-error-mapper.js +153 -0
  280. package/dist/record-contract/canonical-json.d.ts +20 -0
  281. package/dist/record-contract/canonical-json.d.ts.map +1 -0
  282. package/dist/record-contract/canonical-json.js +126 -0
  283. package/dist/record-contract/codes.d.ts +36 -0
  284. package/dist/record-contract/codes.d.ts.map +1 -0
  285. package/dist/record-contract/codes.js +38 -0
  286. package/dist/record-contract/contributor-registry.d.ts +76 -0
  287. package/dist/record-contract/contributor-registry.d.ts.map +1 -0
  288. package/dist/record-contract/contributor-registry.js +126 -0
  289. package/dist/record-contract/core-contributors.d.ts +44 -0
  290. package/dist/record-contract/core-contributors.d.ts.map +1 -0
  291. package/dist/record-contract/core-contributors.js +395 -0
  292. package/dist/record-contract/deep-freeze.d.ts +3 -0
  293. package/dist/record-contract/deep-freeze.d.ts.map +1 -0
  294. package/dist/record-contract/deep-freeze.js +23 -0
  295. package/dist/record-contract/index.d.ts +13 -0
  296. package/dist/record-contract/index.d.ts.map +1 -0
  297. package/dist/record-contract/index.js +29 -0
  298. package/dist/record-contract/json-pointer.d.ts +20 -0
  299. package/dist/record-contract/json-pointer.d.ts.map +1 -0
  300. package/dist/record-contract/json-pointer.js +70 -0
  301. package/dist/record-contract/json-schema-renderer.d.ts +51 -0
  302. package/dist/record-contract/json-schema-renderer.d.ts.map +1 -0
  303. package/dist/record-contract/json-schema-renderer.js +450 -0
  304. package/dist/record-contract/record-contract-compiler.d.ts +42 -0
  305. package/dist/record-contract/record-contract-compiler.d.ts.map +1 -0
  306. package/dist/record-contract/record-contract-compiler.js +775 -0
  307. package/dist/record-contract/record-contract-context.d.ts +91 -0
  308. package/dist/record-contract/record-contract-context.d.ts.map +1 -0
  309. package/dist/record-contract/record-contract-context.js +39 -0
  310. package/dist/record-contract/record-json-schema-artifact.d.ts +74 -0
  311. package/dist/record-contract/record-json-schema-artifact.d.ts.map +1 -0
  312. package/dist/record-contract/record-json-schema-artifact.js +309 -0
  313. package/dist/record-contract/record-json-schema-etag.d.ts +15 -0
  314. package/dist/record-contract/record-json-schema-etag.d.ts.map +1 -0
  315. package/dist/record-contract/record-json-schema-etag.js +41 -0
  316. package/dist/record-contract/types.d.ts +151 -0
  317. package/dist/record-contract/types.d.ts.map +1 -0
  318. package/dist/record-contract/types.js +6 -0
  319. package/dist/services/AppConfigService.d.ts +6 -0
  320. package/dist/services/AppConfigService.d.ts.map +1 -1
  321. package/dist/services/AppConfigService.js +23 -1
  322. package/dist/services/AttachmentMetadataService.d.ts +58 -0
  323. package/dist/services/AttachmentMetadataService.d.ts.map +1 -1
  324. package/dist/services/AttachmentMetadataService.js +643 -8
  325. package/dist/services/BrandingLogoService.d.ts +6 -1
  326. package/dist/services/BrandingLogoService.d.ts.map +1 -1
  327. package/dist/services/BrandingLogoService.js +77 -9
  328. package/dist/services/BrandingService.d.ts +171 -9
  329. package/dist/services/BrandingService.d.ts.map +1 -1
  330. package/dist/services/BrandingService.js +572 -68
  331. package/dist/services/BrandingThemeCssService.d.ts +17 -1
  332. package/dist/services/BrandingThemeCssService.d.ts.map +1 -1
  333. package/dist/services/BrandingThemeCssService.js +71 -9
  334. package/dist/services/BrandingTypefaceService.d.ts +74 -0
  335. package/dist/services/BrandingTypefaceService.d.ts.map +1 -0
  336. package/dist/services/BrandingTypefaceService.js +359 -0
  337. package/dist/services/BrandingWoff2Inspector.d.ts +17 -0
  338. package/dist/services/BrandingWoff2Inspector.d.ts.map +1 -0
  339. package/dist/services/BrandingWoff2Inspector.js +402 -0
  340. package/dist/services/DashboardConfigService.d.ts +214 -54
  341. package/dist/services/DashboardConfigService.d.ts.map +1 -1
  342. package/dist/services/DashboardConfigService.js +829 -261
  343. package/dist/services/DashboardLegacyConversion.d.ts +82 -0
  344. package/dist/services/DashboardLegacyConversion.d.ts.map +1 -0
  345. package/dist/services/DashboardLegacyConversion.js +427 -0
  346. package/dist/services/DashboardTypesService.d.ts +15 -4
  347. package/dist/services/DashboardTypesService.d.ts.map +1 -1
  348. package/dist/services/DashboardTypesService.js +72 -139
  349. package/dist/services/DoiService.d.ts +1 -1
  350. package/dist/services/DoiService.d.ts.map +1 -1
  351. package/dist/services/DoiService.js +71 -45
  352. package/dist/services/FigshareService.d.ts.map +1 -1
  353. package/dist/services/FigshareService.js +8 -7
  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 +11 -11
  364. package/dist/services/I18nEntriesService.d.ts.map +1 -1
  365. package/dist/services/I18nEntriesService.js +71 -48
  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 +317 -26
  385. package/dist/services/RecordsService.d.ts.map +1 -1
  386. package/dist/services/RecordsService.js +5145 -765
  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/figshare-v2/worker.d.ts.map +1 -1
  419. package/dist/services/figshare-v2/worker.js +254 -74
  420. package/dist/services/form-record-access-user.d.ts +3 -0
  421. package/dist/services/form-record-access-user.d.ts.map +1 -0
  422. package/dist/services/form-record-access-user.js +23 -0
  423. package/dist/services/index.d.ts +9 -0
  424. package/dist/services/index.d.ts.map +1 -1
  425. package/dist/services/index.js +45 -3
  426. package/dist/services/integration-v2/bindings.d.ts +3 -0
  427. package/dist/services/integration-v2/bindings.d.ts.map +1 -0
  428. package/dist/services/integration-v2/bindings.js +91 -0
  429. package/dist/services/integration-v2/runtime.d.ts +3 -0
  430. package/dist/services/integration-v2/runtime.d.ts.map +1 -0
  431. package/dist/services/integration-v2/runtime.js +50 -0
  432. package/dist/services/internal-record-schema-authorization.d.ts +8 -0
  433. package/dist/services/internal-record-schema-authorization.d.ts.map +1 -0
  434. package/dist/services/internal-record-schema-authorization.js +16 -0
  435. package/dist/services/oni-v2/audit.d.ts +19 -0
  436. package/dist/services/oni-v2/audit.d.ts.map +1 -0
  437. package/dist/services/oni-v2/audit.js +50 -0
  438. package/dist/services/oni-v2/bindings.d.ts +7 -0
  439. package/dist/services/oni-v2/bindings.d.ts.map +1 -0
  440. package/dist/services/oni-v2/bindings.js +31 -0
  441. package/dist/services/oni-v2/config.d.ts +12 -0
  442. package/dist/services/oni-v2/config.d.ts.map +1 -0
  443. package/dist/services/oni-v2/config.js +134 -0
  444. package/dist/services/oni-v2/context.d.ts +3 -0
  445. package/dist/services/oni-v2/context.d.ts.map +1 -0
  446. package/dist/services/oni-v2/context.js +17 -0
  447. package/dist/services/oni-v2/crate.d.ts +17 -0
  448. package/dist/services/oni-v2/crate.d.ts.map +1 -0
  449. package/dist/services/oni-v2/crate.js +504 -0
  450. package/dist/services/oni-v2/flydriveOcflStore.d.ts +69 -0
  451. package/dist/services/oni-v2/flydriveOcflStore.d.ts.map +1 -0
  452. package/dist/services/oni-v2/flydriveOcflStore.js +325 -0
  453. package/dist/services/oni-v2/ingestion.d.ts +37 -0
  454. package/dist/services/oni-v2/ingestion.d.ts.map +1 -0
  455. package/dist/services/oni-v2/ingestion.js +91 -0
  456. package/dist/services/oni-v2/mapping.d.ts +17 -0
  457. package/dist/services/oni-v2/mapping.d.ts.map +1 -0
  458. package/dist/services/oni-v2/mapping.js +137 -0
  459. package/dist/services/oni-v2/repository.d.ts +9 -0
  460. package/dist/services/oni-v2/repository.d.ts.map +1 -0
  461. package/dist/services/oni-v2/repository.js +180 -0
  462. package/dist/services/oni-v2/runtime.d.ts +23 -0
  463. package/dist/services/oni-v2/runtime.d.ts.map +1 -0
  464. package/dist/services/oni-v2/runtime.js +121 -0
  465. package/dist/services/oni-v2/templating.d.ts +11 -0
  466. package/dist/services/oni-v2/templating.d.ts.map +1 -0
  467. package/dist/services/oni-v2/templating.js +27 -0
  468. package/dist/services/oni-v2/types.d.ts +100 -0
  469. package/dist/services/oni-v2/types.d.ts.map +1 -0
  470. package/dist/services/oni-v2/types.js +3 -0
  471. package/dist/services/raid-v2/audit.d.ts +10 -0
  472. package/dist/services/raid-v2/audit.d.ts.map +1 -0
  473. package/dist/services/raid-v2/audit.js +29 -0
  474. package/dist/services/raid-v2/errors.d.ts +85 -0
  475. package/dist/services/raid-v2/errors.d.ts.map +1 -0
  476. package/dist/services/raid-v2/errors.js +36 -0
  477. package/dist/services/raid-v2/http.d.ts +4 -0
  478. package/dist/services/raid-v2/http.d.ts.map +1 -0
  479. package/dist/services/raid-v2/http.js +84 -0
  480. package/dist/services/raid-v2/logger.d.ts +8 -0
  481. package/dist/services/raid-v2/logger.d.ts.map +1 -0
  482. package/dist/services/raid-v2/logger.js +30 -0
  483. package/dist/services/raid-v2/mapping.d.ts +9 -0
  484. package/dist/services/raid-v2/mapping.d.ts.map +1 -0
  485. package/dist/services/raid-v2/mapping.js +168 -0
  486. package/dist/services/raid-v2/runtime.d.ts +5 -0
  487. package/dist/services/raid-v2/runtime.d.ts.map +1 -0
  488. package/dist/services/raid-v2/runtime.js +135 -0
  489. package/dist/services/raid-v2/tags.d.ts +11 -0
  490. package/dist/services/raid-v2/tags.d.ts.map +1 -0
  491. package/dist/services/raid-v2/tags.js +12 -0
  492. package/dist/services/raid-v2/types.d.ts +66 -0
  493. package/dist/services/raid-v2/types.d.ts.map +1 -0
  494. package/dist/services/raid-v2/types.js +3 -0
  495. package/dist/services/record-hooks/coordinator.d.ts +64 -0
  496. package/dist/services/record-hooks/coordinator.d.ts.map +1 -0
  497. package/dist/services/record-hooks/coordinator.js +276 -0
  498. package/dist/visitor/client.visitor.d.ts +6 -0
  499. package/dist/visitor/client.visitor.d.ts.map +1 -1
  500. package/dist/visitor/client.visitor.js +59 -14
  501. package/dist/visitor/construct.visitor.d.ts +27 -1
  502. package/dist/visitor/construct.visitor.d.ts.map +1 -1
  503. package/dist/visitor/construct.visitor.js +265 -177
  504. package/dist/visitor/context-variables.visitor.d.ts +3 -1
  505. package/dist/visitor/context-variables.visitor.d.ts.map +1 -1
  506. package/dist/visitor/context-variables.visitor.js +15 -1
  507. package/dist/visitor/data-value.visitor.d.ts +6 -0
  508. package/dist/visitor/data-value.visitor.d.ts.map +1 -1
  509. package/dist/visitor/data-value.visitor.js +10 -1
  510. package/dist/visitor/json-type-def.visitor.d.ts +6 -0
  511. package/dist/visitor/json-type-def.visitor.d.ts.map +1 -1
  512. package/dist/visitor/json-type-def.visitor.js +10 -1
  513. package/dist/visitor/migrate-config-v4-v5.visitor.d.ts +11 -0
  514. package/dist/visitor/migrate-config-v4-v5.visitor.d.ts.map +1 -1
  515. package/dist/visitor/migrate-config-v4-v5.visitor.js +228 -133
  516. package/dist/visitor/related-object-data-inline.visitor.d.ts +31 -0
  517. package/dist/visitor/related-object-data-inline.visitor.d.ts.map +1 -0
  518. package/dist/visitor/related-object-data-inline.visitor.js +96 -0
  519. package/dist/visitor/template.visitor.d.ts +17 -2
  520. package/dist/visitor/template.visitor.d.ts.map +1 -1
  521. package/dist/visitor/template.visitor.js +60 -22
  522. package/dist/visitor/validator.visitor.d.ts +49 -7
  523. package/dist/visitor/validator.visitor.d.ts.map +1 -1
  524. package/dist/visitor/validator.visitor.js +275 -178
  525. package/dist/waterline-models/AttachmentMetadata.d.ts +22 -0
  526. package/dist/waterline-models/AttachmentMetadata.d.ts.map +1 -1
  527. package/dist/waterline-models/AttachmentMetadata.js +147 -3
  528. package/dist/waterline-models/BrandingConfig.d.ts +7 -0
  529. package/dist/waterline-models/BrandingConfig.d.ts.map +1 -1
  530. package/dist/waterline-models/BrandingConfig.js +16 -1
  531. package/dist/waterline-models/BrandingConfigHistory.d.ts +11 -2
  532. package/dist/waterline-models/BrandingConfigHistory.d.ts.map +1 -1
  533. package/dist/waterline-models/BrandingConfigHistory.js +21 -1
  534. package/dist/waterline-models/DashboardConfiguration.d.ts +29 -0
  535. package/dist/waterline-models/DashboardConfiguration.d.ts.map +1 -0
  536. package/dist/waterline-models/DashboardConfiguration.js +52 -0
  537. package/dist/waterline-models/RecordType.d.ts +9 -0
  538. package/dist/waterline-models/RecordType.d.ts.map +1 -1
  539. package/dist/waterline-models/RecordType.js +16 -1
  540. package/dist/waterline-models/User.d.ts.map +1 -1
  541. package/dist/waterline-models/User.js +10 -15
  542. package/dist/waterline-models/index.d.ts +2 -0
  543. package/dist/waterline-models/index.d.ts.map +1 -1
  544. package/dist/waterline-models/index.js +4 -1
  545. package/package.json +59 -45
  546. package/dist/config/datapubs.config.d.ts +0 -72
  547. package/dist/config/datapubs.config.d.ts.map +0 -1
  548. package/dist/config/datapubs.config.js +0 -74
@@ -41,6 +41,7 @@ const rxjs_1 = require("rxjs");
41
41
  const operators_1 = require("rxjs/operators");
42
42
  const _ = __importStar(require("lodash"));
43
43
  const node_stream_1 = require("node:stream");
44
+ const AttachmentStagingIdentity_1 = require("../AttachmentStagingIdentity");
44
45
  /**
45
46
  * StandardDatastreamService
46
47
  *
@@ -56,6 +57,8 @@ var Services;
56
57
  'addDatastreams',
57
58
  'updateDatastream',
58
59
  'removeDatastream',
60
+ 'removeStagedDatastream',
61
+ 'stagingDatastreamExists',
59
62
  'addDatastream',
60
63
  'addAndRemoveDatastreams',
61
64
  'getDatastream',
@@ -116,7 +119,9 @@ var Services;
116
119
  return this.datastreamListEntry(row.storageKey, {
117
120
  contentType: row.contentType,
118
121
  contentLength: row.contentLength,
119
- lastModified: normalizedLastModified && !Number.isNaN(normalizedLastModified.getTime()) ? normalizedLastModified : row.lastModified,
122
+ lastModified: normalizedLastModified && !Number.isNaN(normalizedLastModified.getTime())
123
+ ? normalizedLastModified
124
+ : row.lastModified,
120
125
  etag: row.etag,
121
126
  metadata: {
122
127
  fileId: row.fileId,
@@ -138,6 +143,10 @@ var Services;
138
143
  oid,
139
144
  fileId,
140
145
  storageKey,
146
+ attachmentId: typeof metadata?.attachmentId === 'string' ? metadata.attachmentId : undefined,
147
+ operation: metadata?.operation === 'finalize' ? 'finalize' : 'add',
148
+ mutationState: metadata?.mutationState === 'pending' ? 'pending' : 'applied',
149
+ generation: typeof metadata?.generation === 'string' ? metadata.generation : undefined,
141
150
  contentType: diskMetadata.contentType,
142
151
  contentLength: diskMetadata.contentLength,
143
152
  etag: diskMetadata.etag,
@@ -215,7 +224,7 @@ var Services;
215
224
  results.push(...batchResults);
216
225
  }
217
226
  const byKey = {};
218
- results.forEach((result) => {
227
+ results.forEach(result => {
219
228
  if (result.status === 'fulfilled') {
220
229
  byKey[result.value.storageKey] = {
221
230
  row: result.value,
@@ -246,16 +255,16 @@ var Services;
246
255
  const code = storageError.code?.toLowerCase() ?? '';
247
256
  const name = storageError.name?.toLowerCase() ?? '';
248
257
  const statusCode = storageError.status ?? storageError.statusCode ?? storageError.$metadata?.httpStatusCode;
249
- return code === 'enoent'
250
- || code === 'nosuchkey'
251
- || name === 'notfound'
252
- || name === 'notfoundexception'
253
- || statusCode === 404
254
- || message.includes('not found')
255
- || message.includes('no such')
256
- || message.includes('does not exist')
257
- || message.includes('enoent')
258
- || (depth < 5 && !!storageError.cause && this.isStorageNotFoundError(storageError.cause, depth + 1));
258
+ return (code === 'enoent' ||
259
+ code === 'nosuchkey' ||
260
+ name === 'notfound' ||
261
+ name === 'notfoundexception' ||
262
+ statusCode === 404 ||
263
+ message.includes('not found') ||
264
+ message.includes('no such') ||
265
+ message.includes('does not exist') ||
266
+ message.includes('enoent') ||
267
+ (depth < 5 && !!storageError.cause && this.isStorageNotFoundError(storageError.cause, depth + 1)));
259
268
  }
260
269
  isStorageAlreadyExistsError(err) {
261
270
  if (!err || typeof err !== 'object') {
@@ -263,11 +272,11 @@ var Services;
263
272
  }
264
273
  const storageError = err;
265
274
  const message = storageError.message?.toLowerCase() ?? '';
266
- return storageError.code === 'EEXIST'
267
- || storageError.status === 409
268
- || storageError.statusCode === 409
269
- || message.includes('already exists')
270
- || message.includes('eexist');
275
+ return (storageError.code === 'EEXIST' ||
276
+ storageError.status === 409 ||
277
+ storageError.statusCode === 409 ||
278
+ message.includes('already exists') ||
279
+ message.includes('eexist'));
271
280
  }
272
281
  describeStorageError(err) {
273
282
  if (err instanceof Error) {
@@ -323,8 +332,8 @@ var Services;
323
332
  }
324
333
  const existsInStaging = await stagingDisk.exists(fileId);
325
334
  if (!existsInStaging) {
326
- return await this.promoteTusPartsFromStaging(stagingDisk, primaryDisk, fileId, destKey)
327
- || (await this.checkPrimaryObject(primaryDisk, destKey)).available;
335
+ return ((await this.promoteTusPartsFromStaging(stagingDisk, primaryDisk, fileId, destKey)) ||
336
+ (await this.checkPrimaryObject(primaryDisk, destKey)).available);
328
337
  }
329
338
  const metadata = await stagingDisk.getMetaData(fileId);
330
339
  const readable = await stagingDisk.getStream(fileId);
@@ -333,7 +342,8 @@ var Services;
333
342
  }
334
343
  catch (err) {
335
344
  readable.destroy();
336
- if (!this.isStorageAlreadyExistsError(err) || !(await this.checkPrimaryObject(primaryDisk, destKey)).available) {
345
+ if (!this.isStorageAlreadyExistsError(err) ||
346
+ !(await this.checkPrimaryObject(primaryDisk, destKey)).available) {
337
347
  throw err;
338
348
  }
339
349
  }
@@ -368,12 +378,12 @@ var Services;
368
378
  try {
369
379
  await primaryDisk.putStream(destKey, readable, { contentLength });
370
380
  for (const prefix of this.tusBasePrefixes(fileId)) {
371
- await stagingDisk.deleteAll(this.tusPartsPrefix(prefix)).catch((err) => {
381
+ await stagingDisk.deleteAll(this.tusPartsPrefix(prefix)).catch(err => {
372
382
  if (!this.isStorageNotFoundError(err)) {
373
383
  throw err;
374
384
  }
375
385
  });
376
- await stagingDisk.delete(this.tusInfoKey(prefix)).catch((err) => {
386
+ await stagingDisk.delete(this.tusInfoKey(prefix)).catch(err => {
377
387
  if (!this.isStorageNotFoundError(err)) {
378
388
  throw err;
379
389
  }
@@ -395,7 +405,7 @@ var Services;
395
405
  for (const prefix of this.tusPartPrefixes(fileId)) {
396
406
  const listed = await stagingDisk.listAll(prefix, { recursive: true });
397
407
  const partKeys = _.uniq(Array.from(listed.objects)
398
- .map((object) => this.listedObjectKey(object))
408
+ .map(object => this.listedObjectKey(object))
399
409
  .filter((key) => typeof key === 'string' && key.length > 0)).sort((left, right) => left.localeCompare(right));
400
410
  if (partKeys.length) {
401
411
  populatedPrefixes.push({ prefix, partKeys });
@@ -407,7 +417,7 @@ var Services;
407
417
  const allEquivalent = (await Promise.all(otherSelections.map(async (selection) => _.isEqual(firstSignature, await this.tusPartSelectionSignature(stagingDisk, selection))))).every(Boolean);
408
418
  if (!allEquivalent) {
409
419
  throw new Error(`Ambiguous TUS upload parts for fileId '${fileId}': found parts in ${populatedPrefixes
410
- .map((selection) => `'${selection.prefix}'`)
420
+ .map(selection => `'${selection.prefix}'`)
411
421
  .join(', ')}`);
412
422
  }
413
423
  this.logger.verbose(`${this.logHeader} selectTusPartPrefix() -> Equivalent TUS part prefixes found for ${fileId}; using '${firstSelection.prefix}'`);
@@ -453,7 +463,7 @@ var Services;
453
463
  return [`.tus/${fileId}`, `tus/${fileId}`];
454
464
  }
455
465
  tusPartPrefixes(fileId) {
456
- return this.tusBasePrefixes(fileId).map((prefix) => this.tusPartsPrefix(prefix));
466
+ return this.tusBasePrefixes(fileId).map(prefix => this.tusPartsPrefix(prefix));
457
467
  }
458
468
  tusPartsPrefix(tusBasePrefix) {
459
469
  return `${tusBasePrefix}/parts/`;
@@ -502,9 +512,7 @@ var Services;
502
512
  updateDatastream(oid, record, newMetadata, stagingDisk, fileIdsAdded) {
503
513
  const typedRecord = this.coerceRecord(record);
504
514
  const typedNewMetadata = this.coerceMetadata(newMetadata);
505
- return FormsService
506
- .getFormByName(typedRecord.metaMetadata.form, true, typedRecord.metaMetadata.brandId)
507
- .pipe((0, operators_1.mergeMap)(form => {
515
+ return FormsService.getFormByName(typedRecord.metaMetadata.form, true, typedRecord.metaMetadata.brandId).pipe((0, operators_1.mergeMap)(form => {
508
516
  const reqs = [];
509
517
  const attachmentFields = _.get(form, 'configuration.attachmentFields', _.get(form, 'attachmentFields', []));
510
518
  if (attachmentFields.length > 0) {
@@ -606,9 +614,7 @@ var Services;
606
614
  await this.afterDatastreamPromoted(oid, fileId, destKey, datastream);
607
615
  return { success: true, key: destKey };
608
616
  }
609
- throw new Error(`Attachment not found in staging: ${fileId}. Checked staged object '${fileId}' and TUS part prefixes: ${this
610
- .tusPartPrefixes(fileId)
611
- .join(', ')}. Primary object '${destKey}' available=${primaryCheck.available} via=${primaryCheck.via}${primaryCheck.error ? ` error=${primaryCheck.error}` : ''}`);
617
+ throw new Error(`Attachment not found in staging: ${fileId}. Checked staged object '${fileId}' and TUS part prefixes: ${this.tusPartPrefixes(fileId).join(', ')}. Primary object '${destKey}' available=${primaryCheck.available} via=${primaryCheck.via}${primaryCheck.error ? ` error=${primaryCheck.error}` : ''}`);
612
618
  }
613
619
  await this.afterDatastreamPromoted(oid, fileId, destKey, datastream);
614
620
  this.logger.verbose(`${this.logHeader} addDatastream() -> Successfully added: ${destKey}`);
@@ -652,12 +658,8 @@ var Services;
652
658
  return Buffer.concat(chunks);
653
659
  }
654
660
  isNonRetryableStreamingWriteError(err) {
655
- const candidates = [
656
- err,
657
- _.get(err, 'cause'),
658
- _.get(err, 'cause.cause'),
659
- ];
660
- return candidates.some((candidate) => {
661
+ const candidates = [err, _.get(err, 'cause'), _.get(err, 'cause.cause')];
662
+ return candidates.some(candidate => {
661
663
  const message = String(_.get(candidate, 'message', '')).toLowerCase();
662
664
  return message.includes('non-retryable streaming request');
663
665
  });
@@ -690,14 +692,74 @@ var Services;
690
692
  await primaryDisk.delete(destKey);
691
693
  this.logger.verbose(`${this.logHeader} removeDatastream() -> Delete successful: ${destKey}`);
692
694
  }
693
- catch {
694
- // Flydrive may throw if the file doesn't exist; log and continue
695
- this.logger.verbose(`${this.logHeader} removeDatastream() -> File not found or error deleting: ${destKey}`);
695
+ catch (error) {
696
+ // A missing object is an idempotent delete; all other provider errors
697
+ // must remain visible so the attachment journal can retain an
698
+ // unresolved tombstone for the next manual save.
699
+ if (!this.isStorageNotFoundError(error)) {
700
+ throw error;
701
+ }
702
+ this.logger.verbose(`${this.logHeader} removeDatastream() -> File not found: ${destKey}`);
703
+ }
704
+ const metadataService = this.attachmentMetadataService();
705
+ if (metadataService?.markDeleted && typeof datastream.metadata?.attachmentId === 'string') {
706
+ await metadataService.markDeleted({
707
+ oid,
708
+ fileId,
709
+ storageKey: destKey,
710
+ attachmentId: datastream.metadata.attachmentId,
711
+ operation: 'delete',
712
+ mutationState: 'applied',
713
+ generation: typeof datastream.metadata.generation === 'string' ? datastream.metadata.generation : undefined,
714
+ attachmentField: typeof datastream.metadata.attachmentField === 'string' ? datastream.metadata.attachmentField : undefined,
715
+ });
716
+ // The object is confirmed absent. Retain the applied tombstone long
717
+ // enough for reconciliation, then reap the physical metadata row.
718
+ await this.safelyDeleteMetadata(destKey);
719
+ }
720
+ else {
721
+ await this.safelyDeleteMetadata(destKey);
696
722
  }
697
- await this.safelyDeleteMetadata(destKey);
698
723
  await this.safelyRecordAccess({ oid, fileId, storageKey: destKey, action: 'remove' });
699
724
  return { success: true };
700
725
  }
726
+ /** Check only staging objects; committed primary blobs are never addressed. */
727
+ async stagingDatastreamExists(fileId) {
728
+ const normalizedFileId = (0, AttachmentStagingIdentity_1.normalizeAttachmentStagingFileId)(fileId);
729
+ if (!normalizedFileId)
730
+ throw new Error('Invalid staged attachment identity.');
731
+ const stagingDisk = StorageManagerService.stagingDisk();
732
+ if (await stagingDisk.exists(normalizedFileId))
733
+ return true;
734
+ for (const prefix of this.tusBasePrefixes(normalizedFileId)) {
735
+ if (await stagingDisk.exists(this.tusInfoKey(prefix)))
736
+ return true;
737
+ }
738
+ for (const prefix of this.tusPartPrefixes(normalizedFileId)) {
739
+ const listed = await stagingDisk.listAll(prefix, { recursive: true });
740
+ for (const _entry of listed.objects)
741
+ return true;
742
+ }
743
+ return false;
744
+ }
745
+ /** Delete only staging objects; committed primary blobs are never addressed. */
746
+ async removeStagedDatastream(fileId) {
747
+ const normalizedFileId = (0, AttachmentStagingIdentity_1.normalizeAttachmentStagingFileId)(fileId);
748
+ if (!normalizedFileId)
749
+ throw new Error('Invalid staged attachment identity.');
750
+ const stagingDisk = StorageManagerService.stagingDisk();
751
+ if (await stagingDisk.exists(normalizedFileId)) {
752
+ await stagingDisk.delete(normalizedFileId);
753
+ }
754
+ for (const prefix of this.tusPartPrefixes(normalizedFileId)) {
755
+ await stagingDisk.deleteAll(prefix);
756
+ }
757
+ for (const prefix of this.tusBasePrefixes(normalizedFileId)) {
758
+ const infoKey = this.tusInfoKey(prefix);
759
+ if (await stagingDisk.exists(infoKey))
760
+ await stagingDisk.delete(infoKey);
761
+ }
762
+ }
701
763
  /**
702
764
  * Add and remove datastreams in sequence (additions first, then removals).
703
765
  */
@@ -855,7 +917,7 @@ var Services;
855
917
  // List all files under the oid prefix
856
918
  const prefix = `${this.normalizedKeyPrefix()}${oid}/`;
857
919
  const result = await primaryDisk.listAll(prefix, { recursive: true });
858
- const fileEntries = Array.from(result.objects).map((obj) => {
920
+ const fileEntries = Array.from(result.objects).map(obj => {
859
921
  const fileObj = obj;
860
922
  const key = String(fileObj['key'] ?? fileObj['name'] ?? obj);
861
923
  return {
@@ -863,7 +925,7 @@ var Services;
863
925
  fileObj,
864
926
  };
865
927
  });
866
- const metadataRows = await metadataService?.findByOid(oid) ?? [];
928
+ const metadataRows = (await metadataService?.findByOid(oid)) ?? [];
867
929
  const metadataByKey = _.keyBy(metadataRows, 'storageKey');
868
930
  const hasCompleteMetadata = fileEntries.length > 0 && fileEntries.every(({ key }) => !!metadataByKey[key]);
869
931
  if (hasCompleteMetadata) {
@@ -910,4 +972,4 @@ var Services;
910
972
  }
911
973
  Services.StandardDatastream = StandardDatastream;
912
974
  })(Services || (exports.Services = Services = {}));
913
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RhbmRhcmREYXRhc3RyZWFtU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9TdGFuZGFyZERhdGFzdHJlYW1TZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGdEQUFzRDtBQUV0RCw0RUFBeUU7QUFDekUsOENBQTJDO0FBQzNDLCtCQUFzQztBQUN0Qyw4Q0FBMEM7QUFDMUMsMENBQTRCO0FBQzVCLDZDQUF1QztBQXFDdkM7Ozs7OztHQU1HO0FBQ0gsSUFBaUIsUUFBUSxDQXNnQ3hCO0FBdGdDRCxXQUFpQixRQUFRO0lBQ3ZCLE1BQWEsa0JBQW1CLFNBQVEsc0JBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTztRQUNuRCxNQUFNLENBQUMsZUFBZSxHQUFrQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBRXZELGdCQUFnQixHQUFhO1lBQzlDLGdCQUFnQjtZQUNoQixrQkFBa0I7WUFDbEIsa0JBQWtCO1lBQ2xCLGVBQWU7WUFDZix5QkFBeUI7WUFDekIsZUFBZTtZQUNmLGlCQUFpQjtZQUNqQiwwQkFBMEI7U0FDM0IsQ0FBQztRQUVpQixTQUFTLEdBQVcsNkJBQTZCLENBQUM7UUFFckU7O1dBRUc7UUFDSyxtQkFBbUI7WUFDekIsTUFBTSxhQUFhLEdBQUcscUJBQXFCLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUNyRSxNQUFNLFNBQVMsR0FBRyxhQUFhLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQztZQUNoRCxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztnQkFDekIsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDO1lBQ0QsT0FBTyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUM7UUFDN0MsQ0FBQztRQUVEOztXQUVHO1FBQ0ssVUFBVSxDQUFDLEdB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
975
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RhbmRhcmREYXRhc3RyZWFtU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9TdGFuZGFyZERhdGFzdHJlYW1TZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGdEQUFzRDtBQUV0RCw0RUFBeUU7QUFDekUsOENBQTJDO0FBQzNDLCtCQUFzQztBQUN0Qyw4Q0FBMEM7QUFDMUMsMENBQTRCO0FBQzVCLDZDQUF1QztBQUl2Qyw0RUFBZ0Y7QUFxQmhGOzs7Ozs7R0FNRztBQUNILElBQWlCLFFBQVEsQ0F1bUN4QjtBQXZtQ0QsV0FBaUIsUUFBUTtJQUN2QixNQUFhLGtCQUFtQixTQUFRLHNCQUFRLENBQUMsSUFBSSxDQUFDLE9BQU87UUFDbkQsTUFBTSxDQUFDLGVBQWUsR0FBa0MsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUV2RCxnQkFBZ0IsR0FBYTtZQUM5QyxnQkFBZ0I7WUFDaEIsa0JBQWtCO1lBQ2xCLGtCQUFrQjtZQUNsQix3QkFBd0I7WUFDeEIseUJBQXlCO1lBQ3pCLGVBQWU7WUFDZix5QkFBeUI7WUFDekIsZUFBZTtZQUNmLGlCQUFpQjtZQUNqQiwwQkFBMEI7U0FDM0IsQ0FBQztRQUVpQixTQUFTLEdBQVcsNkJBQTZCLENBQUM7UUFFckU7O1dBRUc7UUFDSyxtQkFBbUI7WUFDekIsTUFBTSxhQUFhLEdBQUcscUJBQXFCLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUNyRSxNQUFNLFNBQVMsR0FBRyxhQUFhLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQztZQUNoRCxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztnQkFDekIsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDO1lBQ0QsT0FBTyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUM7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
@@ -1 +1 @@
1
- {"version":3,"file":"TriggerService.d.ts","sourceRoot":"","sources":["../../src/services/TriggerService.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,UAAU,EAAY,MAAM,MAAM,CAAC;AAI5C,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,QAAQ,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAMtD,yBAAiB,QAAQ,CAAC;IACxB,KAAK,UAAU,GAAG,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxD,KAAK,QAAQ,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAGjG;;;;;OAKG;IAEH,MAAM,OAAO,OAAQ,SAAQ,QAAQ,CAAC,IAAI,CAAC,OAAO;QAGhD;;;;;;;;WAQG;QACI,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;QAqB3F;;;;;;;;;;;;;WAaG;QACI,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ;QAmCxF,0BAA0B,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ;QAwBzH,OAAO,CAAC,yBAAyB;QASpB,uBAAuB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;QA4GtG;;;;;;;;;;;;;;;WAeG;QACU,2BAA2B,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;QAkE7F,0BAA0B,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;QA2I5F,2BAA2B,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ;KA2GzI;;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,IAAI,cAAc,EAAE,QAAQ,CAAC,OAAO,CAAC;CACtC"}
1
+ {"version":3,"file":"TriggerService.d.ts","sourceRoot":"","sources":["../../src/services/TriggerService.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,UAAU,EAAY,MAAM,MAAM,CAAC;AAI5C,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,QAAQ,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAMtD,yBAAiB,QAAQ,CAAC;IACxB,KAAK,UAAU,GAAG,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxD,KAAK,QAAQ,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAQjG;;;;;OAKG;IAEH,MAAM,OAAO,OAAQ,SAAQ,QAAQ,CAAC,IAAI,CAAC,OAAO;QAChD;;;;;;;;WAQG;QACI,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;QA6B3F;;;;;;;;;;;;;WAaG;QACI,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ;QAoCxF,0BAA0B,CACrC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,IAAI,EAAE,QAAQ;QAyBhB,OAAO,CAAC,yBAAyB;QASpB,uBAAuB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;QA2GtG;;;;;;;;;;;;;;;WAeG;QACU,2BAA2B,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;QA4E7F,0BAA0B,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;QAmJ5F,2BAA2B,CACtC,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,UAAU,EACzB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,IAAI,EAAE,QAAQ;KAqIjB;;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,IAAI,cAAc,EAAE,QAAQ,CAAC,OAAO,CAAC;CACtC"}