@researchdatabox/redbox-core 5.0.2 → 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 (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 +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 +46 -5
  182. package/dist/controllers/RecordController.d.ts.map +1 -1
  183. package/dist/controllers/RecordController.js +815 -347
  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 +664 -271
  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/BrandingThemeTokens.d.ts.map +1 -1
  334. package/dist/services/BrandingThemeTokens.js +2 -1
  335. package/dist/services/BrandingTypefaceService.d.ts +74 -0
  336. package/dist/services/BrandingTypefaceService.d.ts.map +1 -0
  337. package/dist/services/BrandingTypefaceService.js +359 -0
  338. package/dist/services/BrandingWoff2Inspector.d.ts +17 -0
  339. package/dist/services/BrandingWoff2Inspector.d.ts.map +1 -0
  340. package/dist/services/BrandingWoff2Inspector.js +402 -0
  341. package/dist/services/DashboardConfigService.d.ts +214 -54
  342. package/dist/services/DashboardConfigService.d.ts.map +1 -1
  343. package/dist/services/DashboardConfigService.js +829 -261
  344. package/dist/services/DashboardLegacyConversion.d.ts +82 -0
  345. package/dist/services/DashboardLegacyConversion.d.ts.map +1 -0
  346. package/dist/services/DashboardLegacyConversion.js +427 -0
  347. package/dist/services/DashboardTypesService.d.ts +15 -4
  348. package/dist/services/DashboardTypesService.d.ts.map +1 -1
  349. package/dist/services/DashboardTypesService.js +72 -139
  350. package/dist/services/DoiService.d.ts +1 -1
  351. package/dist/services/DoiService.d.ts.map +1 -1
  352. package/dist/services/DoiService.js +71 -45
  353. package/dist/services/FigshareService.d.ts +1 -1
  354. package/dist/services/FigshareService.d.ts.map +1 -1
  355. package/dist/services/FigshareService.js +73 -32
  356. package/dist/services/FormRecordConsistencyService.d.ts +8 -23
  357. package/dist/services/FormRecordConsistencyService.d.ts.map +1 -1
  358. package/dist/services/FormRecordConsistencyService.js +54 -70
  359. package/dist/services/FormsService.d.ts +91 -2
  360. package/dist/services/FormsService.d.ts.map +1 -1
  361. package/dist/services/FormsService.js +324 -64
  362. package/dist/services/HarvestRunService.d.ts +6 -3
  363. package/dist/services/HarvestRunService.d.ts.map +1 -1
  364. package/dist/services/HarvestRunService.js +161 -97
  365. package/dist/services/I18nEntriesService.d.ts +1 -0
  366. package/dist/services/I18nEntriesService.d.ts.map +1 -1
  367. package/dist/services/I18nEntriesService.js +26 -6
  368. package/dist/services/OniService.d.ts +19 -62
  369. package/dist/services/OniService.d.ts.map +1 -1
  370. package/dist/services/OniService.js +223 -691
  371. package/dist/services/RDMPService.d.ts +1 -1
  372. package/dist/services/RDMPService.d.ts.map +1 -1
  373. package/dist/services/RDMPService.js +5 -5
  374. package/dist/services/RaidService.d.ts +19 -61
  375. package/dist/services/RaidService.d.ts.map +1 -1
  376. package/dist/services/RaidService.js +191 -530
  377. package/dist/services/RecordSchemaService.d.ts +440 -0
  378. package/dist/services/RecordSchemaService.d.ts.map +1 -0
  379. package/dist/services/RecordSchemaService.js +3061 -0
  380. package/dist/services/RecordTypesService.d.ts +29 -0
  381. package/dist/services/RecordTypesService.d.ts.map +1 -1
  382. package/dist/services/RecordTypesService.js +106 -11
  383. package/dist/services/RecordValidationService.d.ts +340 -0
  384. package/dist/services/RecordValidationService.d.ts.map +1 -0
  385. package/dist/services/RecordValidationService.js +1898 -0
  386. package/dist/services/RecordsService.d.ts +313 -22
  387. package/dist/services/RecordsService.d.ts.map +1 -1
  388. package/dist/services/RecordsService.js +4948 -509
  389. package/dist/services/SolrSearchService.d.ts +1 -1
  390. package/dist/services/SolrSearchService.d.ts.map +1 -1
  391. package/dist/services/SolrSearchService.js +42 -12
  392. package/dist/services/StandardDatastreamService.d.ts +4 -0
  393. package/dist/services/StandardDatastreamService.d.ts.map +1 -1
  394. package/dist/services/StandardDatastreamService.js +109 -45
  395. package/dist/services/TriggerService.d.ts.map +1 -1
  396. package/dist/services/TriggerService.js +54 -30
  397. package/dist/services/UsersService.d.ts +2 -1
  398. package/dist/services/UsersService.d.ts.map +1 -1
  399. package/dist/services/UsersService.js +364 -283
  400. package/dist/services/VocabularyService.d.ts +2 -0
  401. package/dist/services/VocabularyService.d.ts.map +1 -1
  402. package/dist/services/VocabularyService.js +61 -2
  403. package/dist/services/WorkflowStepsService.d.ts +11 -0
  404. package/dist/services/WorkflowStepsService.d.ts.map +1 -1
  405. package/dist/services/WorkflowStepsService.js +32 -3
  406. package/dist/services/WorkspaceService.d.ts +2 -2
  407. package/dist/services/WorkspaceService.d.ts.map +1 -1
  408. package/dist/services/WorkspaceService.js +5 -5
  409. package/dist/services/doi-v2/bindings.d.ts.map +1 -1
  410. package/dist/services/doi-v2/bindings.js +3 -20
  411. package/dist/services/doi-v2/config.d.ts +1 -0
  412. package/dist/services/doi-v2/config.d.ts.map +1 -1
  413. package/dist/services/doi-v2/config.js +13 -5
  414. package/dist/services/doi-v2/runtime.d.ts.map +1 -1
  415. package/dist/services/doi-v2/runtime.js +14 -54
  416. package/dist/services/figshare-v2/bindings.d.ts.map +1 -1
  417. package/dist/services/figshare-v2/bindings.js +3 -20
  418. package/dist/services/figshare-v2/runtime.d.ts.map +1 -1
  419. package/dist/services/figshare-v2/runtime.js +11 -58
  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 +60 -47
  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
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.translationEntrySchema = exports.vocabularySchema = exports.vocabularyTreeNodeSchema = exports.vocabularyEntrySchema = exports.formSchema = exports.recordTypeSchema = exports.recordTypeHooksSchema = exports.recordTypeHookOnEventSchema = exports.recordTypeHookDeclarationSchema = exports.relatedToSchema = exports.searchFilterSchema = exports.userRecordSchema = exports.brandingHistoryRecordSchema = exports.brandingLogoResponseSchema = exports.brandingRollbackResponseSchema = exports.brandingPublishResponseSchema = exports.brandingPreviewResponseSchema = exports.brandingDraftResponseSchema = exports.brandingConfigSchema = exports.roleSummarySchema = exports.supportAgreementYearSchema = exports.statusMessageResponseSchema = exports.userAuditResponseSchema = exports.userAuditSummarySchema = exports.userAuditRecordSchema = exports.userAuditActorSchema = exports.userLinkResponseSchema = exports.linkedUserSummarySchema = exports.storageServiceResponseSchema = exports.recordAuthorizationSchema = exports.genericObjectSchema = exports.userApiTokenApiResponseSchema = exports.createUserApiResponseSchema = exports.listApiSummarySchema = exports.harvestRouteResponseSchema = exports.harvestRunDetailResponseSchema = exports.enhancedHarvestChunkResponseSchema = exports.harvestChunkRecordResponseSchema = exports.harvestRunAggregateCountsSchema = exports.harvestRunEventSchema = exports.harvestRunChunkSummarySchema = exports.harvestRunSummarySchema = exports.apiHarvestResponseSchema = exports.apiObjectActionResponseSchema = exports.apiActionResponseSchema = exports.apiErrorResponseSchema = exports.buildResponseTypeSchema = exports.dataResponseV2Schema = exports.errorResponseV2Schema = exports.errorResponseItemV2Schema = void 0;
4
- exports.appConfigValueSchema = exports.namedQueryResponseRecordSchema = exports.recordAuditEntrySchema = exports.datastreamUploadResponseSchema = exports.datastreamUploadResultSchema = exports.datastreamUploadFileSchema = exports.datastreamSummarySchema = exports.deletedRecordListItemSchema = exports.recordListItemSchema = exports.objectMetadataSchema = exports.recordMetadataSchema = exports.searchResultsSchema = exports.searchRecordSchema = exports.searchFacetSchema = exports.searchFacetValueSchema = exports.translationBundleSchema = void 0;
3
+ exports.brandingVersionEntrySchema = exports.brandingTypefaceStateSchema = exports.brandingTypefaceFaceSchema = exports.brandingHistoryRecordSchema = exports.brandingLogoResponseSchema = exports.brandingRollbackResponseSchema = exports.brandingPublishResponseSchema = exports.brandingPreviewResponseSchema = exports.brandingDraftResponseSchema = exports.brandingConfigSchema = exports.roleSummarySchema = exports.supportAgreementYearSchema = exports.statusMessageResponseSchema = exports.userAuditResponseSchema = exports.userAuditSummarySchema = exports.userAuditRecordSchema = exports.userAuditActorSchema = exports.userLinkResponseSchema = exports.linkedUserSummarySchema = exports.recordPermissionSaveResponseSchema = exports.recordSaveFailureResponseSchema = exports.recordSaveSuccessResponseSchema = exports.storageServiceResponseSchema = exports.recordConcurrencyMetadataSchema = exports.recordConcurrentModificationConfigSchema = exports.recordFormFingerprintSchema = exports.recordEntityTagSchema = exports.recordRevisionSchema = exports.recordSaveIssueSchema = exports.recordAuthorizationSchema = exports.genericObjectSchema = exports.userApiTokenApiResponseSchema = exports.createUserApiResponseSchema = exports.listApiSummarySchema = exports.harvestRouteResponseSchema = exports.harvestRunDetailResponseSchema = exports.enhancedHarvestChunkResponseSchema = exports.harvestChunkRecordResponseSchema = exports.harvestRunAggregateCountsSchema = exports.harvestRunEventSchema = exports.harvestRunChunkSummarySchema = exports.harvestRunSummarySchema = exports.apiHarvestResponseSchema = exports.apiObjectActionResponseSchema = exports.apiActionResponseSchema = exports.apiErrorResponseSchema = exports.buildResponseTypeSchema = exports.dataResponseV2Schema = exports.errorResponseV2Schema = exports.errorResponseItemV2Schema = void 0;
4
+ exports.appConfigValueSchema = exports.namedQueryResponseRecordSchema = exports.recordAuditEntrySchema = exports.datastreamUploadResponseSchema = exports.datastreamUploadResultSchema = exports.datastreamUploadFileSchema = exports.datastreamSummarySchema = exports.deletedRecordListItemSchema = exports.recordListItemSchema = exports.recordPermissionsReadResponseSchema = exports.objectMetadataReadResponseSchema = exports.recordMetadataReadResponseSchema = exports.recordReadMetadataSchema = exports.objectMetadataSchema = exports.recordMetadataSchema = exports.searchResultsSchema = exports.searchRecordSchema = exports.searchFacetSchema = exports.searchFacetValueSchema = exports.translationBundleSchema = exports.translationEntrySchema = exports.vocabularySchema = exports.vocabularyTreeNodeSchema = exports.vocabularyEntrySchema = exports.formSchema = exports.validationOperationDiscoverySchema = exports.recordTypeSchema = exports.recordTypeHooksSchema = exports.recordTypeHookOnEventSchema = exports.recordTypeHookDeclarationSchema = exports.relatedToSchema = exports.searchFilterSchema = exports.userRecordSchema = exports.brandingPublishStateResponseSchema = exports.brandingAdminStateSchema = void 0;
5
5
  exports.listApiResponseSchema = listApiResponseSchema;
6
6
  const zod_openapi_1 = require("../zod-openapi");
7
+ const sails_ng_common_1 = require("@researchdatabox/sails-ng-common");
7
8
  function withOpenApi(schema, metadata) {
8
9
  return schema.openapi(metadata);
9
10
  }
@@ -55,8 +56,10 @@ const messageDetailsSchema = zod_openapi_1.z.object({
55
56
  message: zod_openapi_1.z.string(),
56
57
  details: zod_openapi_1.z.string(),
57
58
  });
58
- exports.apiErrorResponseSchema = withOpenApi(messageDetailsSchema, {
59
- description: 'Legacy API error response with message and details fields',
59
+ exports.apiErrorResponseSchema = withOpenApi(messageDetailsSchema.extend({
60
+ details: zod_openapi_1.z.string().optional(),
61
+ }), {
62
+ description: 'Legacy API error response with a message and optional details',
60
63
  });
61
64
  exports.apiActionResponseSchema = withOpenApi(messageDetailsSchema, {
62
65
  description: 'Legacy API action response with message and details fields',
@@ -163,10 +166,7 @@ exports.harvestRunDetailResponseSchema = withOpenApi(zod_openapi_1.z.object({
163
166
  events: zod_openapi_1.z.array(exports.harvestRunEventSchema),
164
167
  aggregateCounts: exports.harvestRunAggregateCountsSchema,
165
168
  }), { description: 'Harvest run detail response' });
166
- exports.harvestRouteResponseSchema = withOpenApi(zod_openapi_1.z.union([
167
- zod_openapi_1.z.array(exports.apiHarvestResponseSchema),
168
- exports.enhancedHarvestChunkResponseSchema,
169
- ]), { description: 'Harvest response for legacy and tracked payloads' });
169
+ exports.harvestRouteResponseSchema = withOpenApi(zod_openapi_1.z.union([zod_openapi_1.z.array(exports.apiHarvestResponseSchema), exports.enhancedHarvestChunkResponseSchema]), { description: 'Harvest response for legacy and tracked payloads' });
170
170
  exports.listApiSummarySchema = withOpenApi(zod_openapi_1.z.object({
171
171
  numFound: zod_openapi_1.z.number().int(),
172
172
  page: zod_openapi_1.z.number().int(),
@@ -202,15 +202,163 @@ exports.recordAuthorizationSchema = withOpenApi(zod_openapi_1.z.object({
202
202
  editRoles: zod_openapi_1.z.array(zod_openapi_1.z.string()).optional(),
203
203
  viewRoles: zod_openapi_1.z.array(zod_openapi_1.z.string()).optional(),
204
204
  }), { description: 'Record authorization payload' });
205
+ const recordSaveLineageSegmentSchema = zod_openapi_1.z.union([
206
+ zod_openapi_1.z.string().max(sails_ng_common_1.RECORD_SAVE_LINEAGE_LIMITS.maxSegmentLength),
207
+ zod_openapi_1.z.number().int().nonnegative(),
208
+ ]);
209
+ const recordSaveLineagePathSchema = zod_openapi_1.z.array(recordSaveLineageSegmentSchema).max(sails_ng_common_1.RECORD_SAVE_LINEAGE_LIMITS.maxSegments);
210
+ const recordSaveTargetFieldSchema = zod_openapi_1.z.object({
211
+ formConfig: recordSaveLineagePathSchema.optional(),
212
+ dataModel: recordSaveLineagePathSchema.optional(),
213
+ angularComponents: recordSaveLineagePathSchema.optional(),
214
+ layout: recordSaveLineagePathSchema.optional(),
215
+ });
216
+ const recordSaveLineagePathsSchema = recordSaveTargetFieldSchema.extend({
217
+ angularComponentsJsonPointer: zod_openapi_1.z.string().max(sails_ng_common_1.RECORD_SAVE_LINEAGE_LIMITS.maxPointerLength).optional(),
218
+ layoutJsonPointer: zod_openapi_1.z.string().max(sails_ng_common_1.RECORD_SAVE_LINEAGE_LIMITS.maxPointerLength).optional(),
219
+ });
220
+ const recordSaveValidatorParametersSchema = zod_openapi_1.z
221
+ .object({
222
+ requiredThreshold: zod_openapi_1.z.number().finite().optional(),
223
+ actualLength: zod_openapi_1.z.number().finite().optional(),
224
+ requiredLength: zod_openapi_1.z.number().finite().optional(),
225
+ required: zod_openapi_1.z.boolean().optional(),
226
+ controlCount: zod_openapi_1.z.number().finite().optional(),
227
+ valueCount: zod_openapi_1.z.number().finite().optional(),
228
+ multiSelect: zod_openapi_1.z.boolean().optional(),
229
+ sourceType: zod_openapi_1.z.enum(['static', 'vocabulary', 'query', 'service']).optional(),
230
+ })
231
+ .strict();
232
+ exports.recordSaveIssueSchema = withOpenApi(zod_openapi_1.z
233
+ .object({
234
+ code: zod_openapi_1.z
235
+ .string()
236
+ .max(sails_ng_common_1.RECORD_SAVE_PUBLIC_FIELD_LIMITS.maxCodeLength)
237
+ .regex(sails_ng_common_1.RECORD_SAVE_PUBLIC_IDENTIFIER_PATTERN)
238
+ .optional(),
239
+ message: zod_openapi_1.z.string().max(sails_ng_common_1.RECORD_SAVE_MESSAGE_MAX_LENGTH),
240
+ field: zod_openapi_1.z
241
+ .string()
242
+ .max(sails_ng_common_1.RECORD_SAVE_PUBLIC_FIELD_LIMITS.maxFieldLength)
243
+ .regex(sails_ng_common_1.RECORD_SAVE_PUBLIC_IDENTIFIER_PATTERN)
244
+ .optional(),
245
+ pointer: zod_openapi_1.z
246
+ .string()
247
+ .max(sails_ng_common_1.RECORD_SAVE_PUBLIC_FIELD_LIMITS.maxPointerLength)
248
+ .refine(sails_ng_common_1.isRecordSaveJsonPointer)
249
+ .optional(),
250
+ expected: zod_openapi_1.z
251
+ .object({
252
+ type: zod_openapi_1.z.enum(sails_ng_common_1.RECORD_SAVE_EXPECTED_JSON_TYPES),
253
+ })
254
+ .strict()
255
+ .optional(),
256
+ attachmentId: zod_openapi_1.z
257
+ .string()
258
+ .max(sails_ng_common_1.RECORD_SAVE_PUBLIC_FIELD_LIMITS.maxAttachmentIdLength)
259
+ .regex(sails_ng_common_1.RECORD_SAVE_PUBLIC_IDENTIFIER_PATTERN)
260
+ .optional(),
261
+ class: zod_openapi_1.z
262
+ .string()
263
+ .max(sails_ng_common_1.RECORD_SAVE_VALIDATOR_CLASS_MAX_LENGTH)
264
+ .regex(sails_ng_common_1.RECORD_SAVE_PUBLIC_IDENTIFIER_PATTERN)
265
+ .optional(),
266
+ params: recordSaveValidatorParametersSchema.optional(),
267
+ targetField: recordSaveTargetFieldSchema.optional(),
268
+ lineagePaths: recordSaveLineagePathsSchema.optional(),
269
+ })
270
+ .strict(), { description: 'Safe, field-addressable save issue with bounded validator metadata' });
271
+ const recordSaveProblemSchema = withOpenApi(zod_openapi_1.z.union([
272
+ zod_openapi_1.z
273
+ .object({
274
+ kind: zod_openapi_1.z.enum(sails_ng_common_1.RECORD_SAVE_PROBLEM_KINDS),
275
+ source: zod_openapi_1.z.literal('schema'),
276
+ phase: zod_openapi_1.z.literal('schema'),
277
+ issues: zod_openapi_1.z.array(exports.recordSaveIssueSchema),
278
+ })
279
+ .strict(),
280
+ zod_openapi_1.z
281
+ .object({
282
+ kind: zod_openapi_1.z.enum(sails_ng_common_1.RECORD_SAVE_PROBLEM_KINDS),
283
+ phase: zod_openapi_1.z.enum(['pre-save', 'persistence', 'attachments', 'post-save', 'response', 'transport']),
284
+ issues: zod_openapi_1.z.array(exports.recordSaveIssueSchema),
285
+ })
286
+ .strict(),
287
+ ]), { description: 'A save phase problem and its safe display issues' });
288
+ exports.recordRevisionSchema = withOpenApi(zod_openapi_1.z.number().int().min(0).max(sails_ng_common_1.RECORD_REVISION_MAX), {
289
+ description: 'Server-owned monotonic aggregate record revision',
290
+ example: 7,
291
+ });
292
+ exports.recordEntityTagSchema = withOpenApi(zod_openapi_1.z.string().max(sails_ng_common_1.RECORD_ENTITY_TAG_MAX_LENGTH).regex(sails_ng_common_1.RECORD_ENTITY_TAG_PATTERN), {
293
+ description: 'Opaque strong entity tag for one record lifecycle representation',
294
+ example: '"rb-record-v1.7.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"',
295
+ });
296
+ exports.recordFormFingerprintSchema = withOpenApi(zod_openapi_1.z.string().max(sails_ng_common_1.RECORD_FORM_FINGERPRINT_MAX_LENGTH).regex(sails_ng_common_1.RECORD_SAVE_PUBLIC_IDENTIFIER_PATTERN), { description: 'Opaque fingerprint of the authoritative generated browser-form contract' });
297
+ exports.recordConcurrentModificationConfigSchema = withOpenApi(zod_openapi_1.z
298
+ .object({
299
+ mode: zod_openapi_1.z.enum(sails_ng_common_1.RECORD_CONCURRENT_MODIFICATION_MODES),
300
+ })
301
+ .strict(), { description: 'Record-type optimistic concurrency policy' });
302
+ exports.recordConcurrencyMetadataSchema = withOpenApi(zod_openapi_1.z
303
+ .object({
304
+ mode: zod_openapi_1.z.enum(sails_ng_common_1.RECORD_CONCURRENT_MODIFICATION_MODES).optional(),
305
+ revision: exports.recordRevisionSchema.optional(),
306
+ expectedRevision: exports.recordRevisionSchema.optional(),
307
+ currentRevision: exports.recordRevisionSchema.optional(),
308
+ entityTag: exports.recordEntityTagSchema.optional(),
309
+ formFingerprint: exports.recordFormFingerprintSchema.optional(),
310
+ resolution: zod_openapi_1.z.enum(sails_ng_common_1.RECORD_CONCURRENCY_RESOLUTIONS).optional(),
311
+ resolutionOfRequestId: zod_openapi_1.z.string().regex(sails_ng_common_1.RECORD_SAVE_REQUEST_ID_PATTERN).optional(),
312
+ })
313
+ .strict(), { description: 'Bounded diagnostic concurrency facts; resolution labels are never authority' });
314
+ const recordAttachmentCompletionItemSchema = withOpenApi(zod_openapi_1.z.object({
315
+ field: zod_openapi_1.z.string(),
316
+ attachmentId: zod_openapi_1.z.string(),
317
+ fileId: zod_openapi_1.z.string().optional(),
318
+ operation: zod_openapi_1.z.enum(['add', 'finalize', 'delete']),
319
+ status: zod_openapi_1.z.enum(['completed', 'incomplete', 'unknown']),
320
+ code: zod_openapi_1.z.string().optional(),
321
+ }), { description: 'Per-attachment completion fact' });
322
+ const recordSaveCompletionSchema = withOpenApi(zod_openapi_1.z.object({
323
+ attachments: zod_openapi_1.z.object({
324
+ status: zod_openapi_1.z.enum(['not-required', 'completed', 'incomplete', 'unknown']),
325
+ items: zod_openapi_1.z.array(recordAttachmentCompletionItemSchema),
326
+ }),
327
+ }), { description: 'Item-specific completion details for a record save' });
205
328
  exports.storageServiceResponseSchema = withOpenApi(zod_openapi_1.z.object({
206
329
  success: zod_openapi_1.z.boolean(),
207
330
  oid: zod_openapi_1.z.string(),
208
331
  message: zod_openapi_1.z.string(),
332
+ data: zod_openapi_1.z.unknown().optional(),
209
333
  metadata: exports.genericObjectSchema.nullable(),
210
334
  details: zod_openapi_1.z.union([zod_openapi_1.z.string(), exports.genericObjectSchema]).optional(),
211
335
  totalItems: zod_openapi_1.z.number().int(),
212
336
  items: zod_openapi_1.z.array(exports.genericObjectSchema),
337
+ outcome: zod_openapi_1.z.enum(['saved', 'saved-with-warnings', 'not-saved', 'unknown']).optional(),
338
+ problems: zod_openapi_1.z.array(recordSaveProblemSchema).optional(),
339
+ completion: recordSaveCompletionSchema.optional(),
340
+ requestId: zod_openapi_1.z.string().uuid().optional(),
341
+ concurrency: exports.recordConcurrencyMetadataSchema.optional(),
213
342
  }), { description: 'Storage service response envelope' });
343
+ exports.recordSaveSuccessResponseSchema = withOpenApi(zod_openapi_1.z.union([
344
+ exports.storageServiceResponseSchema,
345
+ zod_openapi_1.z.object({ data: exports.storageServiceResponseSchema, meta: exports.storageServiceResponseSchema }),
346
+ ]), { description: 'Legacy v1 record-save response or the v2 {data, meta} envelope' });
347
+ exports.recordSaveFailureResponseSchema = withOpenApi(zod_openapi_1.z.union([
348
+ exports.apiErrorResponseSchema,
349
+ zod_openapi_1.z.object({
350
+ errors: zod_openapi_1.z.array(exports.errorResponseItemV2Schema),
351
+ meta: zod_openapi_1.z.union([exports.storageServiceResponseSchema, zod_openapi_1.z.object({}).strict()]),
352
+ }),
353
+ ]), {
354
+ description: 'Legacy v1 error or v2 {errors, meta}; early policy failures may use empty meta while save-boundary failures retain typed result metadata',
355
+ });
356
+ exports.recordPermissionSaveResponseSchema = withOpenApi(zod_openapi_1.z.union([
357
+ exports.recordAuthorizationSchema.nullable(),
358
+ zod_openapi_1.z.object({ data: exports.recordAuthorizationSchema.nullable(), meta: exports.storageServiceResponseSchema }),
359
+ ]), {
360
+ description: 'Legacy v1 authorization body or v2 authorization data with the authoritative typed save result in meta; data is null when the successful mutation removes current view access',
361
+ });
214
362
  exports.linkedUserSummarySchema = withOpenApi(zod_openapi_1.z.object({
215
363
  id: zod_openapi_1.z.string(),
216
364
  username: zod_openapi_1.z.string(),
@@ -277,12 +425,15 @@ exports.supportAgreementYearSchema = withOpenApi(zod_openapi_1.z.object({
277
425
  agreedSupportDays: zod_openapi_1.z.number(),
278
426
  usedSupportDays: zod_openapi_1.z.number(),
279
427
  }), { description: 'Annual support agreement usage' });
280
- exports.roleSummarySchema = withOpenApi(zod_openapi_1.z.object({
428
+ exports.roleSummarySchema = withOpenApi(zod_openapi_1.z
429
+ .object({
281
430
  id: zod_openapi_1.z.string(),
282
431
  name: zod_openapi_1.z.string(),
283
432
  branding: brandingReferenceSchema.optional(),
284
- }).passthrough(), { description: 'Role summary' });
285
- exports.brandingConfigSchema = withOpenApi(zod_openapi_1.z.object({
433
+ })
434
+ .passthrough(), { description: 'Role summary' });
435
+ exports.brandingConfigSchema = withOpenApi(zod_openapi_1.z
436
+ .object({
286
437
  id: zod_openapi_1.z.string(),
287
438
  name: zod_openapi_1.z.string(),
288
439
  css: zod_openapi_1.z.string(),
@@ -292,7 +443,8 @@ exports.brandingConfigSchema = withOpenApi(zod_openapi_1.z.object({
292
443
  logo: jsonObjectSchema.optional(),
293
444
  roles: zod_openapi_1.z.array(exports.roleSummarySchema).optional(),
294
445
  supportAgreementInformation: jsonObjectSchema.optional(),
295
- }).passthrough(), { description: 'Branding configuration record' });
446
+ })
447
+ .passthrough(), { description: 'Branding configuration record' });
296
448
  exports.brandingDraftResponseSchema = withOpenApi(zod_openapi_1.z.object({
297
449
  branding: exports.brandingConfigSchema,
298
450
  }), { description: 'Saved branding draft response' });
@@ -317,15 +469,93 @@ exports.brandingRollbackResponseSchema = withOpenApi(zod_openapi_1.z.object({
317
469
  exports.brandingLogoResponseSchema = withOpenApi(zod_openapi_1.z.object({
318
470
  hash: zod_openapi_1.z.string(),
319
471
  }), { description: 'Branding logo upload response' });
320
- exports.brandingHistoryRecordSchema = withOpenApi(zod_openapi_1.z.object({
472
+ exports.brandingHistoryRecordSchema = withOpenApi(zod_openapi_1.z
473
+ .object({
321
474
  branding: brandingReferenceSchema,
322
475
  version: zod_openapi_1.z.number().int(),
323
476
  hash: zod_openapi_1.z.string(),
324
477
  css: zod_openapi_1.z.string().optional(),
325
478
  variables: jsonObjectSchema.optional(),
479
+ typeface: jsonObjectSchema.optional(),
480
+ actorId: zod_openapi_1.z.string().optional(),
481
+ actorDisplayName: zod_openapi_1.z.string().optional(),
482
+ restoredFromVersion: zod_openapi_1.z.number().int().optional(),
326
483
  dateCreated: dateTimeSchema.optional(),
327
- }).passthrough(), { description: 'Branding history entry' });
328
- exports.userRecordSchema = withOpenApi(zod_openapi_1.z.object({
484
+ })
485
+ .passthrough(), { description: 'Branding history entry' });
486
+ exports.brandingTypefaceFaceSchema = withOpenApi(zod_openapi_1.z
487
+ .object({
488
+ slot: zod_openapi_1.z.string(),
489
+ sha256: zod_openapi_1.z.string(),
490
+ originalFilename: zod_openapi_1.z.string(),
491
+ sizeBytes: zod_openapi_1.z.number().int(),
492
+ uploadedAt: zod_openapi_1.z.string(),
493
+ inspection: jsonObjectSchema,
494
+ warnings: zod_openapi_1.z.array(zod_openapi_1.z.string()),
495
+ })
496
+ .passthrough(), { description: 'Brand typeface face metadata (no font bytes or storage keys)' });
497
+ exports.brandingTypefaceStateSchema = withOpenApi(zod_openapi_1.z
498
+ .object({
499
+ mode: zod_openapi_1.z.string(),
500
+ faces: zod_openapi_1.z.object({}).passthrough(),
501
+ })
502
+ .passthrough(), { description: 'Brand typeface state (default typography or custom faces)' });
503
+ exports.brandingVersionEntrySchema = withOpenApi(zod_openapi_1.z
504
+ .object({
505
+ id: zod_openapi_1.z.string(),
506
+ version: zod_openapi_1.z.number().int(),
507
+ hash: zod_openapi_1.z.string(),
508
+ dateCreated: zod_openapi_1.z.string().optional(),
509
+ actorId: zod_openapi_1.z.string().optional(),
510
+ actorDisplayName: zod_openapi_1.z.string().optional(),
511
+ restoredFromVersion: zod_openapi_1.z.number().int().optional(),
512
+ variables: jsonObjectSchema.optional(),
513
+ typeface: exports.brandingTypefaceStateSchema.optional(),
514
+ })
515
+ .passthrough(), { description: 'Retained branding version' });
516
+ exports.brandingAdminStateSchema = withOpenApi(zod_openapi_1.z
517
+ .object({
518
+ branding: zod_openapi_1.z.object({ id: zod_openapi_1.z.string(), name: zod_openapi_1.z.string() }).passthrough(),
519
+ active: zod_openapi_1.z
520
+ .object({
521
+ version: zod_openapi_1.z.number().int(),
522
+ hash: zod_openapi_1.z.string(),
523
+ variables: jsonObjectSchema.optional(),
524
+ typeface: exports.brandingTypefaceStateSchema.optional(),
525
+ })
526
+ .passthrough(),
527
+ draft: zod_openapi_1.z
528
+ .object({
529
+ revision: zod_openapi_1.z.number().int(),
530
+ variables: jsonObjectSchema.optional(),
531
+ typeface: exports.brandingTypefaceStateSchema.optional(),
532
+ dirty: zod_openapi_1.z.object({ colours: zod_openapi_1.z.boolean(), typeface: zod_openapi_1.z.boolean() }).passthrough(),
533
+ })
534
+ .passthrough(),
535
+ versions: zod_openapi_1.z.array(exports.brandingVersionEntrySchema),
536
+ limits: zod_openapi_1.z
537
+ .object({
538
+ faceMaxBytes: zod_openapi_1.z.number().int(),
539
+ familyMaxBytes: zod_openapi_1.z.number().int(),
540
+ historyMaxVersions: zod_openapi_1.z.number().int(),
541
+ })
542
+ .passthrough(),
543
+ healthWarnings: zod_openapi_1.z.array(jsonObjectSchema),
544
+ })
545
+ .passthrough(), { description: 'Canonical branding Admin state' });
546
+ exports.brandingPublishStateResponseSchema = withOpenApi(zod_openapi_1.z
547
+ .object({
548
+ branding: zod_openapi_1.z.object({ id: zod_openapi_1.z.string(), name: zod_openapi_1.z.string() }).passthrough(),
549
+ active: jsonObjectSchema,
550
+ draft: jsonObjectSchema,
551
+ versions: zod_openapi_1.z.array(exports.brandingVersionEntrySchema),
552
+ limits: jsonObjectSchema,
553
+ healthWarnings: zod_openapi_1.z.array(jsonObjectSchema),
554
+ idempotent: zod_openapi_1.z.boolean().optional(),
555
+ })
556
+ .passthrough(), { description: 'Branding publish/restore response (complete Admin state)' });
557
+ exports.userRecordSchema = withOpenApi(zod_openapi_1.z
558
+ .object({
329
559
  id: zod_openapi_1.z.string(),
330
560
  username: zod_openapi_1.z.string(),
331
561
  type: zod_openapi_1.z.string(),
@@ -343,32 +573,44 @@ exports.userRecordSchema = withOpenApi(zod_openapi_1.z.object({
343
573
  disabledByPrimaryUsername: zod_openapi_1.z.string().optional(),
344
574
  workspaceApps: zod_openapi_1.z.array(jsonObjectSchema).optional(),
345
575
  roles: zod_openapi_1.z.array(exports.roleSummarySchema).optional(),
346
- }).passthrough(), { description: 'User record response' });
347
- exports.searchFilterSchema = withOpenApi(zod_openapi_1.z.object({
576
+ })
577
+ .passthrough(), { description: 'User record response' });
578
+ exports.searchFilterSchema = withOpenApi(zod_openapi_1.z
579
+ .object({
348
580
  name: zod_openapi_1.z.string(),
349
581
  title: zod_openapi_1.z.string(),
350
582
  type: zod_openapi_1.z.string(),
351
583
  typeLabel: zod_openapi_1.z.string(),
352
- }).passthrough(), { description: 'Record type search filter' });
353
- exports.relatedToSchema = withOpenApi(zod_openapi_1.z.object({
584
+ })
585
+ .passthrough(), { description: 'Record type search filter' });
586
+ exports.relatedToSchema = withOpenApi(zod_openapi_1.z
587
+ .object({
354
588
  recordType: zod_openapi_1.z.string(),
355
589
  foreignField: zod_openapi_1.z.string(),
356
- }).passthrough(), { description: 'Record type relation mapping' });
357
- exports.recordTypeHookDeclarationSchema = withOpenApi(zod_openapi_1.z.object({
590
+ })
591
+ .passthrough(), { description: 'Record type relation mapping' });
592
+ exports.recordTypeHookDeclarationSchema = withOpenApi(zod_openapi_1.z
593
+ .object({
358
594
  function: zod_openapi_1.z.string(),
359
595
  options: jsonObjectSchema,
360
- }).passthrough(), { description: 'Record type hook declaration' });
361
- exports.recordTypeHookOnEventSchema = withOpenApi(zod_openapi_1.z.object({
596
+ })
597
+ .passthrough(), { description: 'Record type hook declaration' });
598
+ exports.recordTypeHookOnEventSchema = withOpenApi(zod_openapi_1.z
599
+ .object({
362
600
  pre: zod_openapi_1.z.array(exports.recordTypeHookDeclarationSchema),
363
601
  post: zod_openapi_1.z.array(exports.recordTypeHookDeclarationSchema),
364
602
  postSync: zod_openapi_1.z.array(exports.recordTypeHookDeclarationSchema),
365
- }).passthrough(), { description: 'Record type hook event handlers' });
366
- exports.recordTypeHooksSchema = withOpenApi(zod_openapi_1.z.object({
603
+ })
604
+ .passthrough(), { description: 'Record type hook event handlers' });
605
+ exports.recordTypeHooksSchema = withOpenApi(zod_openapi_1.z
606
+ .object({
367
607
  onCreate: exports.recordTypeHookOnEventSchema,
368
608
  onUpdate: exports.recordTypeHookOnEventSchema,
369
609
  onDelete: exports.recordTypeHookOnEventSchema,
370
- }).passthrough(), { description: 'Record type hooks configuration' });
371
- exports.recordTypeSchema = withOpenApi(zod_openapi_1.z.object({
610
+ })
611
+ .passthrough(), { description: 'Record type hooks configuration' });
612
+ exports.recordTypeSchema = withOpenApi(zod_openapi_1.z
613
+ .object({
372
614
  key: zod_openapi_1.z.string().optional(),
373
615
  name: zod_openapi_1.z.string(),
374
616
  branding: zod_openapi_1.z.union([zod_openapi_1.z.string(), zod_openapi_1.z.number(), exports.brandingConfigSchema]).optional(),
@@ -381,14 +623,32 @@ exports.recordTypeSchema = withOpenApi(zod_openapi_1.z.object({
381
623
  relatedTo: zod_openapi_1.z.array(exports.relatedToSchema).optional(),
382
624
  hooks: exports.recordTypeHooksSchema.optional(),
383
625
  dashboard: jsonObjectSchema.optional(),
384
- }).passthrough(), { description: 'Record type configuration' });
385
- exports.formSchema = withOpenApi(zod_openapi_1.z.object({
626
+ concurrentModification: exports.recordConcurrentModificationConfigSchema.optional(),
627
+ recordSchemaCreateResolver: zod_openapi_1.z.string().optional(),
628
+ })
629
+ .passthrough(), { description: 'Record type configuration' });
630
+ exports.validationOperationDiscoverySchema = withOpenApi(zod_openapi_1.z
631
+ .object({
632
+ name: zod_openapi_1.z.string().max(sails_ng_common_1.VALIDATION_OPERATION_NAME_MAX_LENGTH).regex(sails_ng_common_1.VALIDATION_OPERATION_NAME_PATTERN),
633
+ label: zod_openapi_1.z.string().max(sails_ng_common_1.VALIDATION_OPERATION_LABEL_MAX_LENGTH).optional(),
634
+ description: zod_openapi_1.z.string().max(sails_ng_common_1.VALIDATION_OPERATION_DESCRIPTION_MAX_LENGTH).optional(),
635
+ allowedTargetSteps: zod_openapi_1.z.array(zod_openapi_1.z.string().max(128).regex(sails_ng_common_1.RECORD_VALIDATION_REFERENCE_PATTERN)).optional(),
636
+ })
637
+ .strict(), {
638
+ description: 'Caller-authorized validation operation metadata. allowedTargetSteps are actor-authorized transition ' +
639
+ 'targets applicable to the operation; unrestricted policies include every actor-authorized target.',
640
+ });
641
+ exports.formSchema = withOpenApi(zod_openapi_1.z
642
+ .object({
386
643
  id: zod_openapi_1.z.string().optional(),
387
644
  name: zod_openapi_1.z.string(),
388
645
  branding: zod_openapi_1.z.union([zod_openapi_1.z.string(), zod_openapi_1.z.number(), exports.brandingConfigSchema]).optional(),
389
646
  configuration: jsonObjectSchema.optional(),
390
- }).passthrough(), { description: 'Form definition' });
391
- exports.vocabularyEntrySchema = withOpenApi(zod_openapi_1.z.object({
647
+ validationOperations: zod_openapi_1.z.array(exports.validationOperationDiscoverySchema).optional(),
648
+ })
649
+ .passthrough(), { description: 'Form definition' });
650
+ exports.vocabularyEntrySchema = withOpenApi(zod_openapi_1.z
651
+ .object({
392
652
  id: zod_openapi_1.z.string().optional(),
393
653
  vocabulary: brandingReferenceSchema.optional(),
394
654
  label: zod_openapi_1.z.string(),
@@ -399,11 +659,13 @@ exports.vocabularyEntrySchema = withOpenApi(zod_openapi_1.z.object({
399
659
  identifier: zod_openapi_1.z.string().optional(),
400
660
  order: zod_openapi_1.z.number().int().optional(),
401
661
  historical: zod_openapi_1.z.boolean().optional(),
402
- }).passthrough(), { description: 'Vocabulary entry' });
662
+ })
663
+ .passthrough(), { description: 'Vocabulary entry' });
403
664
  exports.vocabularyTreeNodeSchema = withOpenApi(exports.vocabularyEntrySchema.extend({
404
665
  children: zod_openapi_1.z.array(exports.vocabularyEntrySchema).optional(),
405
666
  }), { description: 'Vocabulary tree node' });
406
- exports.vocabularySchema = withOpenApi(zod_openapi_1.z.object({
667
+ exports.vocabularySchema = withOpenApi(zod_openapi_1.z
668
+ .object({
407
669
  id: zod_openapi_1.z.string().optional(),
408
670
  branding: zod_openapi_1.z.union([zod_openapi_1.z.string(), zod_openapi_1.z.number(), exports.brandingConfigSchema]).optional(),
409
671
  description: zod_openapi_1.z.string().optional(),
@@ -417,8 +679,10 @@ exports.vocabularySchema = withOpenApi(zod_openapi_1.z.object({
417
679
  sourceId: zod_openapi_1.z.string().optional(),
418
680
  sourceVersionId: zod_openapi_1.z.string().optional(),
419
681
  type: zod_openapi_1.z.string().optional(),
420
- }).passthrough(), { description: 'Vocabulary record' });
421
- exports.translationEntrySchema = withOpenApi(zod_openapi_1.z.object({
682
+ })
683
+ .passthrough(), { description: 'Vocabulary record' });
684
+ exports.translationEntrySchema = withOpenApi(zod_openapi_1.z
685
+ .object({
422
686
  id: zod_openapi_1.z.string().optional(),
423
687
  branding: brandingReferenceSchema.optional(),
424
688
  bundle: brandingReferenceSchema.optional(),
@@ -429,8 +693,10 @@ exports.translationEntrySchema = withOpenApi(zod_openapi_1.z.object({
429
693
  namespace: zod_openapi_1.z.string().optional(),
430
694
  uid: zod_openapi_1.z.string().optional(),
431
695
  value: jsonValueSchema,
432
- }).passthrough(), { description: 'Translation entry' });
433
- exports.translationBundleSchema = withOpenApi(zod_openapi_1.z.object({
696
+ })
697
+ .passthrough(), { description: 'Translation entry' });
698
+ exports.translationBundleSchema = withOpenApi(zod_openapi_1.z
699
+ .object({
434
700
  id: zod_openapi_1.z.string().optional(),
435
701
  branding: brandingReferenceSchema.optional(),
436
702
  data: jsonObjectSchema,
@@ -440,42 +706,89 @@ exports.translationBundleSchema = withOpenApi(zod_openapi_1.z.object({
440
706
  locale: zod_openapi_1.z.string(),
441
707
  namespace: zod_openapi_1.z.string().optional(),
442
708
  uid: zod_openapi_1.z.string().optional(),
443
- }).passthrough(), { description: 'Translation bundle' });
444
- exports.searchFacetValueSchema = withOpenApi(zod_openapi_1.z.object({
709
+ })
710
+ .passthrough(), { description: 'Translation bundle' });
711
+ exports.searchFacetValueSchema = withOpenApi(zod_openapi_1.z
712
+ .object({
445
713
  value: zod_openapi_1.z.string(),
446
714
  count: zod_openapi_1.z.number().int(),
447
- }).passthrough(), { description: 'Search facet value' });
448
- exports.searchFacetSchema = withOpenApi(zod_openapi_1.z.object({
715
+ })
716
+ .passthrough(), { description: 'Search facet value' });
717
+ exports.searchFacetSchema = withOpenApi(zod_openapi_1.z
718
+ .object({
449
719
  name: zod_openapi_1.z.string(),
450
720
  values: zod_openapi_1.z.array(exports.searchFacetValueSchema),
451
- }).passthrough(), { description: 'Search facet summary' });
452
- exports.searchRecordSchema = withOpenApi(zod_openapi_1.z.object({
721
+ })
722
+ .passthrough(), { description: 'Search facet summary' });
723
+ exports.searchRecordSchema = withOpenApi(zod_openapi_1.z
724
+ .object({
453
725
  hasEditAccess: zod_openapi_1.z.boolean(),
454
- }).passthrough(), { description: 'Search result record' });
455
- exports.searchResultsSchema = withOpenApi(zod_openapi_1.z.object({
726
+ })
727
+ .passthrough(), { description: 'Search result record' });
728
+ exports.searchResultsSchema = withOpenApi(zod_openapi_1.z
729
+ .object({
456
730
  records: zod_openapi_1.z.array(exports.searchRecordSchema),
457
731
  facets: zod_openapi_1.z.array(exports.searchFacetSchema).optional(),
458
732
  totalItems: zod_openapi_1.z.number().int(),
459
- }).passthrough(), { description: 'Search response payload' });
733
+ })
734
+ .passthrough(), { description: 'Search response payload' });
460
735
  exports.recordMetadataSchema = withOpenApi(zod_openapi_1.z.object({}).passthrough(), { description: 'Record metadata payload' });
461
736
  exports.objectMetadataSchema = withOpenApi(zod_openapi_1.z.object({}).passthrough(), { description: 'Object metadata payload' });
462
- exports.recordListItemSchema = withOpenApi(zod_openapi_1.z.object({
737
+ exports.recordReadMetadataSchema = withOpenApi(zod_openapi_1.z.object({
738
+ oid: zod_openapi_1.z.string(),
739
+ revision: exports.recordRevisionSchema,
740
+ entityTag: exports.recordEntityTagSchema,
741
+ }), { description: 'Typed identity and revision metadata for an individual record representation' });
742
+ exports.recordMetadataReadResponseSchema = withOpenApi(zod_openapi_1.z.union([
743
+ exports.recordMetadataSchema,
744
+ zod_openapi_1.z.object({ data: exports.recordMetadataSchema, meta: exports.recordReadMetadataSchema.passthrough() }),
745
+ ]), { description: 'Legacy v1 record metadata or v2 data with typed revision metadata' });
746
+ exports.objectMetadataReadResponseSchema = withOpenApi(zod_openapi_1.z.union([
747
+ exports.objectMetadataSchema,
748
+ zod_openapi_1.z.object({ data: exports.objectMetadataSchema, meta: exports.recordReadMetadataSchema.passthrough() }),
749
+ ]), { description: 'Legacy v1 object metadata or v2 data with typed revision metadata' });
750
+ exports.recordPermissionsReadResponseSchema = withOpenApi(zod_openapi_1.z.union([
751
+ exports.recordAuthorizationSchema,
752
+ zod_openapi_1.z.object({ data: exports.recordAuthorizationSchema, meta: exports.recordReadMetadataSchema.passthrough() }),
753
+ ]), { description: 'Legacy v1 permissions or v2 permissions with typed revision metadata' });
754
+ exports.recordListItemSchema = withOpenApi(zod_openapi_1.z
755
+ .object({
463
756
  oid: zod_openapi_1.z.string(),
757
+ revision: exports.recordRevisionSchema,
464
758
  title: zod_openapi_1.z.string().optional(),
465
759
  metadata: jsonObjectSchema,
466
760
  dateCreated: dateTimeSchema.optional(),
467
761
  dateModified: dateTimeSchema.optional(),
468
762
  hasEditAccess: zod_openapi_1.z.boolean(),
469
- }).passthrough(), { description: 'Record list item' });
470
- exports.deletedRecordListItemSchema = withOpenApi(zod_openapi_1.z.object({
763
+ })
764
+ .passthrough(), { description: 'Record list item' });
765
+ exports.deletedRecordListItemSchema = withOpenApi(zod_openapi_1.z
766
+ .object({
471
767
  oid: zod_openapi_1.z.string(),
768
+ revision: exports.recordRevisionSchema,
769
+ lifecycleState: zod_openapi_1.z.enum(['delete-pending', 'deleted', 'restore-pending', 'purge-pending', 'recovery-required']),
770
+ lifecycle: zod_openapi_1.z
771
+ .object({
772
+ kind: zod_openapi_1.z.enum(['delete', 'restore', 'purge']),
773
+ attempts: zod_openapi_1.z.number().int().nonnegative(),
774
+ startedAt: dateTimeSchema,
775
+ updatedAt: dateTimeSchema,
776
+ errorCode: zod_openapi_1.z
777
+ .string()
778
+ .max(64)
779
+ .regex(/^[a-z0-9][a-z0-9-]{0,63}$/)
780
+ .optional(),
781
+ })
782
+ .optional(),
472
783
  title: zod_openapi_1.z.string().optional(),
473
784
  deletedRecord: jsonObjectSchema,
474
785
  dateCreated: dateTimeSchema.optional(),
475
786
  dateModified: dateTimeSchema.optional(),
476
787
  dateDeleted: dateTimeSchema.optional(),
477
- }).passthrough(), { description: 'Deleted record list item' });
478
- exports.datastreamSummarySchema = withOpenApi(zod_openapi_1.z.object({
788
+ })
789
+ .passthrough(), { description: 'Deleted record list item' });
790
+ exports.datastreamSummarySchema = withOpenApi(zod_openapi_1.z
791
+ .object({
479
792
  dateUpdated: dateTimeSchema.optional(),
480
793
  label: zod_openapi_1.z.string().optional(),
481
794
  contentType: zod_openapi_1.z.string().optional(),
@@ -487,26 +800,35 @@ exports.datastreamSummarySchema = withOpenApi(zod_openapi_1.z.object({
487
800
  name: zod_openapi_1.z.string().optional(),
488
801
  mimeType: zod_openapi_1.z.string().optional(),
489
802
  size: zod_openapi_1.z.number().optional(),
490
- }).passthrough(), { description: 'Record datastream summary' });
491
- exports.datastreamUploadFileSchema = withOpenApi(zod_openapi_1.z.object({
803
+ })
804
+ .passthrough(), { description: 'Record datastream summary' });
805
+ exports.datastreamUploadFileSchema = withOpenApi(zod_openapi_1.z
806
+ .object({
492
807
  fileId: zod_openapi_1.z.string(),
493
808
  metadata: jsonObjectSchema.optional(),
494
- }).passthrough(), { description: 'Uploaded datastream file reference' });
495
- exports.datastreamUploadResultSchema = withOpenApi(zod_openapi_1.z.object({
809
+ })
810
+ .passthrough(), { description: 'Uploaded datastream file reference' });
811
+ exports.datastreamUploadResultSchema = withOpenApi(zod_openapi_1.z
812
+ .object({
496
813
  success: zod_openapi_1.z.boolean(),
497
814
  message: zod_openapi_1.z.string(),
498
815
  fileIds: zod_openapi_1.z.array(exports.datastreamUploadFileSchema).optional(),
499
- }).passthrough(), { description: 'Datastream upload result' });
816
+ })
817
+ .passthrough(), { description: 'Datastream upload result' });
500
818
  exports.datastreamUploadResponseSchema = withOpenApi(zod_openapi_1.z.object({
501
819
  message: exports.datastreamUploadResultSchema,
502
820
  }), { description: 'Datastream upload response' });
503
821
  exports.recordAuditEntrySchema = withOpenApi(zod_openapi_1.z.object({}).passthrough(), { description: 'Record audit entry' });
504
- exports.namedQueryResponseRecordSchema = withOpenApi(zod_openapi_1.z.object({
822
+ exports.namedQueryResponseRecordSchema = withOpenApi(zod_openapi_1.z
823
+ .object({
505
824
  oid: zod_openapi_1.z.string(),
506
825
  title: zod_openapi_1.z.string(),
507
826
  metadata: jsonObjectSchema,
508
827
  lastSaveDate: dateTimeSchema.nullable(),
509
828
  dateCreated: dateTimeSchema.nullable(),
510
- }).passthrough(), { description: 'Named query result record' });
511
- exports.appConfigValueSchema = withOpenApi(zod_openapi_1.z.object({}).passthrough(), { description: 'Application configuration payload' });
512
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS1yb3V0ZXMvc2NoZW1hcy9yZXNwb25zZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQThPQSxzREFRQztBQXRQRCxnREFBbUM7QUFLbkMsU0FBUyxXQUFXLENBQW9CLE1BQVMsRUFBRSxRQUFpQztJQUNoRixPQUFRLE1BQTJFLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQzFHLENBQUM7QUFFRCxNQUFNLHdCQUF3QixHQUFHLFdBQVcsQ0FBQyxlQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFO0lBQ3JFLFdBQVcsRUFBRSxnQ0FBZ0M7Q0FDaEQsQ0FBQyxDQUFDO0FBRVUsUUFBQSx5QkFBeUIsR0FBRyxXQUFXLENBQ2hELGVBQUMsQ0FBQyxNQUFNLENBQUM7SUFDTCxFQUFFLEVBQUUsZUFBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUN6QixNQUFNLEVBQUUsZUFBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM3QixJQUFJLEVBQUUsZUFBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUMzQixLQUFLLEVBQUUsZUFBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM1QixNQUFNLEVBQUUsZUFBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM3QixNQUFNLEVBQUUsZUFBQztTQUNKLE1BQU0sQ0FBQztRQUNKLE9BQU8sRUFBRSxlQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO1FBQzlCLFNBQVMsRUFBRSxlQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO1FBQ2hDLE1BQU0sRUFBRSxlQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0tBQ2hDLENBQUM7U0FDRCxPQUFPLEVBQUU7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
829
+ })
830
+ .passthrough(), { description: 'Named query result record' });
831
+ exports.appConfigValueSchema = withOpenApi(zod_openapi_1.z.object({}).passthrough(), {
832
+ description: 'Application configuration payload',
833
+ });
834
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS1yb3V0ZXMvc2NoZW1hcy9yZXNwb25zZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQXNRQSxzREFRQztBQTlRRCxnREFBbUM7QUFJbkMsc0VBcUIwQztBQUUxQyxTQUFTLFdBQVcsQ0FBb0IsTUFBUyxFQUFFLFFBQWlDO0lBQ2xGLE9BQVEsTUFBMkUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDeEcsQ0FBQztBQUVELE1BQU0sd0JBQXdCLEdBQUcsV0FBVyxDQUFDLGVBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUU7SUFDdkUsV0FBVyxFQUFFLGdDQUFnQztDQUM5QyxDQUFDLENBQUM7QUFFVSxRQUFBLHlCQUF5QixHQUFHLFdBQVcsQ0FDbEQsZUFBQyxDQUFDLE1BQU0sQ0FBQztJQUNQLEVBQUUsRUFBRSxlQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ3pCLE1BQU0sRUFBRSxlQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzdCLElBQUksRUFBRSxlQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzNCLEtBQUssRUFBRSxlQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzVCLE1BQU0sRUFBRSxlQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzdCLE1BQU0sRUFBRSxlQUFDO1NBQ04sTUFBTSxDQUFDO1FBQ04sT0FBTyxFQUFFLGVBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7UUFDOUIsU0FBUyxFQUFFLGVBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7UUFDaEMsTUFBTSxFQUFFLGVBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7S0FDOUIsQ0FBQztT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