@researchdatabox/redbox-core 0.0.1-beta.9700 → 0.0.1-beta.9909

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 (141) hide show
  1. package/dist/HarvestRunService.d.ts +49 -0
  2. package/dist/HarvestRunService.d.ts.map +1 -0
  3. package/dist/HarvestRunService.js +13 -0
  4. package/dist/api-routes/groups/harvest-runs.d.ts +5 -0
  5. package/dist/api-routes/groups/harvest-runs.d.ts.map +1 -0
  6. package/dist/api-routes/groups/harvest-runs.js +79 -0
  7. package/dist/api-routes/groups/named-query.d.ts +8 -0
  8. package/dist/api-routes/groups/named-query.d.ts.map +1 -0
  9. package/dist/api-routes/groups/named-query.js +54 -0
  10. package/dist/api-routes/groups/records.d.ts.map +1 -1
  11. package/dist/api-routes/groups/records.js +6 -2
  12. package/dist/api-routes/groups/reports.d.ts +6 -0
  13. package/dist/api-routes/groups/reports.d.ts.map +1 -1
  14. package/dist/api-routes/groups/reports.js +45 -2
  15. package/dist/api-routes/groups/users.js +3 -3
  16. package/dist/api-routes/index.d.ts +2 -0
  17. package/dist/api-routes/index.d.ts.map +1 -1
  18. package/dist/api-routes/index.js +3 -1
  19. package/dist/api-routes/openapi.d.ts +0 -1
  20. package/dist/api-routes/openapi.d.ts.map +1 -1
  21. package/dist/api-routes/openapi.js +27 -8
  22. package/dist/api-routes/route-registry.d.ts.map +1 -1
  23. package/dist/api-routes/route-registry.js +5 -1
  24. package/dist/api-routes/route-resolution.d.ts.map +1 -1
  25. package/dist/api-routes/route-resolution.js +15 -1
  26. package/dist/api-routes/schemas/common.d.ts +1 -2
  27. package/dist/api-routes/schemas/common.d.ts.map +1 -1
  28. package/dist/api-routes/schemas/common.js +10 -11
  29. package/dist/api-routes/schemas/responses.d.ts +6635 -1887
  30. package/dist/api-routes/schemas/responses.d.ts.map +1 -1
  31. package/dist/api-routes/schemas/responses.js +364 -269
  32. package/dist/api-routes/zod-openapi.d.ts +3 -0
  33. package/dist/api-routes/zod-openapi.d.ts.map +1 -0
  34. package/dist/api-routes/zod-openapi.js +8 -0
  35. package/dist/bootstrap.js +3 -3
  36. package/dist/config/auth.config.d.ts.map +1 -1
  37. package/dist/config/auth.config.js +8 -1
  38. package/dist/config/brandingConfigurationDefaults.config.d.ts.map +1 -1
  39. package/dist/config/brandingConfigurationDefaults.config.js +4 -2
  40. package/dist/config/harvestRuns.config.d.ts +9 -0
  41. package/dist/config/harvestRuns.config.d.ts.map +1 -0
  42. package/dist/config/harvestRuns.config.js +11 -0
  43. package/dist/config/index.d.ts +4 -3
  44. package/dist/config/index.d.ts.map +1 -1
  45. package/dist/config/index.js +4 -3
  46. package/dist/config/namedQuery.config.d.ts +16 -2
  47. package/dist/config/namedQuery.config.d.ts.map +1 -1
  48. package/dist/config/namedQuery.config.js +7 -350
  49. package/dist/config/report.config.d.ts +2 -11
  50. package/dist/config/report.config.d.ts.map +1 -1
  51. package/dist/config/report.config.js +3 -49
  52. package/dist/config/reusableContributorFormDefinitions.config.d.ts.map +1 -1
  53. package/dist/config/reusableContributorFormDefinitions.config.js +10 -4
  54. package/dist/config/routes.config.d.ts.map +1 -1
  55. package/dist/config/routes.config.js +15 -1
  56. package/dist/configmodels/AdminSidebarConfig.d.ts.map +1 -1
  57. package/dist/configmodels/AdminSidebarConfig.js +2 -1
  58. package/dist/controllers/AdminController.d.ts +1 -0
  59. package/dist/controllers/AdminController.d.ts.map +1 -1
  60. package/dist/controllers/AdminController.js +5 -1
  61. package/dist/controllers/NamedQueryController.d.ts +8 -0
  62. package/dist/controllers/NamedQueryController.d.ts.map +1 -0
  63. package/dist/controllers/NamedQueryController.js +17 -0
  64. package/dist/controllers/ReportController.d.ts +7 -0
  65. package/dist/controllers/ReportController.d.ts.map +1 -1
  66. package/dist/controllers/ReportController.js +75 -2
  67. package/dist/controllers/ReportsController.d.ts +1 -0
  68. package/dist/controllers/ReportsController.d.ts.map +1 -1
  69. package/dist/controllers/ReportsController.js +12 -2
  70. package/dist/controllers/index.d.ts.map +1 -1
  71. package/dist/controllers/index.js +10 -1
  72. package/dist/controllers/webservice/HarvestRunController.d.ts +13 -0
  73. package/dist/controllers/webservice/HarvestRunController.d.ts.map +1 -0
  74. package/dist/controllers/webservice/HarvestRunController.js +148 -0
  75. package/dist/controllers/webservice/NamedQueryController.d.ts +17 -0
  76. package/dist/controllers/webservice/NamedQueryController.d.ts.map +1 -0
  77. package/dist/controllers/webservice/NamedQueryController.js +127 -0
  78. package/dist/controllers/webservice/RecordController.d.ts.map +1 -1
  79. package/dist/controllers/webservice/RecordController.js +30 -74
  80. package/dist/controllers/webservice/ReportController.d.ts +7 -0
  81. package/dist/controllers/webservice/ReportController.d.ts.map +1 -1
  82. package/dist/controllers/webservice/ReportController.js +111 -3
  83. package/dist/form-config/dataRecord-1.0-draft.js +3 -3
  84. package/dist/form-config/default-1.0-draft.js +2 -2
  85. package/dist/index.d.ts +4 -1
  86. package/dist/index.d.ts.map +1 -1
  87. package/dist/index.js +5 -2
  88. package/dist/loader/MigrationRunner.d.ts +19 -0
  89. package/dist/loader/MigrationRunner.d.ts.map +1 -0
  90. package/dist/loader/MigrationRunner.js +108 -0
  91. package/dist/loader/bootstrapShimRuntime.d.ts +2 -1
  92. package/dist/loader/bootstrapShimRuntime.d.ts.map +1 -1
  93. package/dist/loader/bootstrapShimRuntime.js +7 -2
  94. package/dist/loader/index.d.ts +9 -0
  95. package/dist/loader/index.d.ts.map +1 -1
  96. package/dist/loader/index.js +100 -3
  97. package/dist/model/config/ReportConfig.d.ts +1 -1
  98. package/dist/model/config/ReportConfig.d.ts.map +1 -1
  99. package/dist/model/config/ReportConfig.js +2 -2
  100. package/dist/model/storage/HarvestRunModel.d.ts +140 -0
  101. package/dist/model/storage/HarvestRunModel.d.ts.map +1 -0
  102. package/dist/model/storage/HarvestRunModel.js +110 -0
  103. package/dist/model/storage/ReportModel.d.ts +1 -0
  104. package/dist/model/storage/ReportModel.d.ts.map +1 -1
  105. package/dist/model/storage/index.d.ts +1 -0
  106. package/dist/model/storage/index.d.ts.map +1 -1
  107. package/dist/model/storage/index.js +10 -2
  108. package/dist/services/HarvestRunService.d.ts +73 -0
  109. package/dist/services/HarvestRunService.d.ts.map +1 -0
  110. package/dist/services/HarvestRunService.js +1317 -0
  111. package/dist/services/NamedQueryService.d.ts +25 -4
  112. package/dist/services/NamedQueryService.d.ts.map +1 -1
  113. package/dist/services/NamedQueryService.js +444 -115
  114. package/dist/services/ReportsService.d.ts +57 -1
  115. package/dist/services/ReportsService.d.ts.map +1 -1
  116. package/dist/services/ReportsService.js +252 -34
  117. package/dist/services/index.d.ts +3 -0
  118. package/dist/services/index.d.ts.map +1 -1
  119. package/dist/services/index.js +7 -2
  120. package/dist/visitor/construct.visitor.d.ts.map +1 -1
  121. package/dist/visitor/construct.visitor.js +8 -3
  122. package/dist/visitor/template.visitor.d.ts +2 -2
  123. package/dist/visitor/template.visitor.d.ts.map +1 -1
  124. package/dist/visitor/template.visitor.js +22 -3
  125. package/dist/waterline-models/HarvestRecordEvent.d.ts +43 -0
  126. package/dist/waterline-models/HarvestRecordEvent.d.ts.map +1 -0
  127. package/dist/waterline-models/HarvestRecordEvent.js +107 -0
  128. package/dist/waterline-models/HarvestRun.d.ts +51 -0
  129. package/dist/waterline-models/HarvestRun.d.ts.map +1 -0
  130. package/dist/waterline-models/HarvestRun.js +125 -0
  131. package/dist/waterline-models/HarvestRunChunk.d.ts +57 -0
  132. package/dist/waterline-models/HarvestRunChunk.d.ts.map +1 -0
  133. package/dist/waterline-models/HarvestRunChunk.js +140 -0
  134. package/dist/waterline-models/Migration.d.ts +24 -0
  135. package/dist/waterline-models/Migration.d.ts.map +1 -0
  136. package/dist/waterline-models/Migration.js +52 -0
  137. package/dist/waterline-models/index.d.ts +8 -0
  138. package/dist/waterline-models/index.d.ts.map +1 -1
  139. package/dist/waterline-models/index.js +13 -1
  140. package/package.json +28 -27
  141. package/redbox-loader-templates/bootstrap-shim.js.hbs +14 -1
@@ -1,60 +1,59 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.recordListItemSchema = 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.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.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 = void 0;
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;
5
5
  exports.listApiResponseSchema = listApiResponseSchema;
6
- require("zod-to-openapi");
7
- const zod_1 = require("zod");
6
+ const zod_openapi_1 = require("../zod-openapi");
8
7
  function withOpenApi(schema, metadata) {
9
8
  return schema.openapi(metadata);
10
9
  }
11
- const metaResponseItemV2Schema = withOpenApi(zod_1.z.object({}).passthrough(), {
10
+ const metaResponseItemV2Schema = withOpenApi(zod_openapi_1.z.object({}).passthrough(), {
12
11
  description: 'Non-standard response metadata',
13
12
  });
14
- exports.errorResponseItemV2Schema = withOpenApi(zod_1.z.object({
15
- id: zod_1.z.string().optional(),
16
- status: zod_1.z.string().optional(),
17
- code: zod_1.z.string().optional(),
18
- title: zod_1.z.string().optional(),
19
- detail: zod_1.z.string().optional(),
20
- source: zod_1.z
13
+ exports.errorResponseItemV2Schema = withOpenApi(zod_openapi_1.z.object({
14
+ id: zod_openapi_1.z.string().optional(),
15
+ status: zod_openapi_1.z.string().optional(),
16
+ code: zod_openapi_1.z.string().optional(),
17
+ title: zod_openapi_1.z.string().optional(),
18
+ detail: zod_openapi_1.z.string().optional(),
19
+ source: zod_openapi_1.z
21
20
  .object({
22
- pointer: zod_1.z.string().optional(),
23
- parameter: zod_1.z.string().optional(),
24
- header: zod_1.z.string().optional(),
21
+ pointer: zod_openapi_1.z.string().optional(),
22
+ parameter: zod_openapi_1.z.string().optional(),
23
+ header: zod_openapi_1.z.string().optional(),
25
24
  })
26
25
  .partial()
27
26
  .optional(),
28
- links: zod_1.z
27
+ links: zod_openapi_1.z
29
28
  .object({
30
- about: zod_1.z.string().optional(),
31
- type: zod_1.z.string().optional(),
29
+ about: zod_openapi_1.z.string().optional(),
30
+ type: zod_openapi_1.z.string().optional(),
32
31
  })
33
32
  .partial()
34
33
  .optional(),
35
34
  meta: metaResponseItemV2Schema.optional(),
36
35
  }), { description: 'JSON:API error item used for validation and display errors' });
37
- exports.errorResponseV2Schema = withOpenApi(zod_1.z.object({
38
- errors: zod_1.z.array(exports.errorResponseItemV2Schema),
36
+ exports.errorResponseV2Schema = withOpenApi(zod_openapi_1.z.object({
37
+ errors: zod_openapi_1.z.array(exports.errorResponseItemV2Schema),
39
38
  meta: metaResponseItemV2Schema,
40
39
  }), { description: 'JSON:API error response envelope' });
41
- exports.dataResponseV2Schema = withOpenApi(zod_1.z.object({
42
- data: zod_1.z.unknown(),
40
+ exports.dataResponseV2Schema = withOpenApi(zod_openapi_1.z.object({
41
+ data: zod_openapi_1.z.unknown(),
43
42
  meta: metaResponseItemV2Schema,
44
43
  }), { description: 'JSON:API success response envelope' });
45
- exports.buildResponseTypeSchema = withOpenApi(zod_1.z.object({
46
- format: zod_1.z.literal('json').optional(),
47
- data: zod_1.z.unknown().optional(),
48
- status: zod_1.z.number().int().optional(),
49
- headers: zod_1.z.record(zod_1.z.string()).optional(),
50
- errors: zod_1.z.array(zod_1.z.object({}).passthrough()).optional(),
51
- displayErrors: zod_1.z.array(exports.errorResponseItemV2Schema).optional(),
44
+ exports.buildResponseTypeSchema = withOpenApi(zod_openapi_1.z.object({
45
+ format: zod_openapi_1.z.literal('json').optional(),
46
+ data: zod_openapi_1.z.unknown().optional(),
47
+ status: zod_openapi_1.z.number().int().optional(),
48
+ headers: zod_openapi_1.z.record(zod_openapi_1.z.string()).optional(),
49
+ errors: zod_openapi_1.z.array(zod_openapi_1.z.object({}).passthrough()).optional(),
50
+ displayErrors: zod_openapi_1.z.array(exports.errorResponseItemV2Schema).optional(),
52
51
  meta: metaResponseItemV2Schema.optional(),
53
- v1: zod_1.z.unknown().optional(),
52
+ v1: zod_openapi_1.z.unknown().optional(),
54
53
  }), { description: 'Internal response envelope used by CoreController.sendResp' });
55
- const messageDetailsSchema = zod_1.z.object({
56
- message: zod_1.z.string(),
57
- details: zod_1.z.string(),
54
+ const messageDetailsSchema = zod_openapi_1.z.object({
55
+ message: zod_openapi_1.z.string(),
56
+ details: zod_openapi_1.z.string(),
58
57
  });
59
58
  exports.apiErrorResponseSchema = withOpenApi(messageDetailsSchema, {
60
59
  description: 'Legacy API error response with message and details fields',
@@ -63,355 +62,451 @@ exports.apiActionResponseSchema = withOpenApi(messageDetailsSchema, {
63
62
  description: 'Legacy API action response with message and details fields',
64
63
  });
65
64
  exports.apiObjectActionResponseSchema = withOpenApi(messageDetailsSchema.extend({
66
- oid: zod_1.z.string(),
65
+ oid: zod_openapi_1.z.string(),
67
66
  }), { description: 'Legacy API object action response with oid, message, and details fields' });
68
- exports.apiHarvestResponseSchema = withOpenApi(zod_1.z.object({
69
- harvestId: zod_1.z.string(),
70
- oid: zod_1.z.string(),
71
- message: zod_1.z.string(),
72
- details: zod_1.z.string(),
73
- status: zod_1.z.boolean(),
67
+ exports.apiHarvestResponseSchema = withOpenApi(zod_openapi_1.z.object({
68
+ harvestId: zod_openapi_1.z.string(),
69
+ oid: zod_openapi_1.z.string(),
70
+ message: zod_openapi_1.z.string(),
71
+ details: zod_openapi_1.z.string(),
72
+ status: zod_openapi_1.z.boolean(),
74
73
  }), { description: 'Legacy harvest response envelope' });
75
- exports.listApiSummarySchema = withOpenApi(zod_1.z.object({
76
- numFound: zod_1.z.number().int(),
77
- page: zod_1.z.number().int(),
78
- start: zod_1.z.number().int(),
74
+ exports.harvestRunSummarySchema = withOpenApi(zod_openapi_1.z.object({
75
+ id: zod_openapi_1.z.string().optional(),
76
+ sourceRunId: zod_openapi_1.z.string(),
77
+ brandId: zod_openapi_1.z.string().optional(),
78
+ recordType: zod_openapi_1.z.string(),
79
+ sourceName: zod_openapi_1.z.string(),
80
+ sourceUri: zod_openapi_1.z.string().optional(),
81
+ status: zod_openapi_1.z.string(),
82
+ startedAt: zod_openapi_1.z.string().optional(),
83
+ completedAt: zod_openapi_1.z.string().optional(),
84
+ startedBy: zod_openapi_1.z.string().optional(),
85
+ lastChunkAt: zod_openapi_1.z.string().optional(),
86
+ totalProcessed: zod_openapi_1.z.number().int(),
87
+ created: zod_openapi_1.z.number().int(),
88
+ updated: zod_openapi_1.z.number().int(),
89
+ deleted: zod_openapi_1.z.number().int(),
90
+ unchanged: zod_openapi_1.z.number().int(),
91
+ failed: zod_openapi_1.z.number().int(),
92
+ chunksProcessed: zod_openapi_1.z.number().int(),
93
+ duplicateChunks: zod_openapi_1.z.number().int(),
94
+ }), { description: 'Harvest run summary' });
95
+ exports.harvestRunChunkSummarySchema = withOpenApi(zod_openapi_1.z.object({
96
+ id: zod_openapi_1.z.string().optional(),
97
+ runId: zod_openapi_1.z.string().optional(),
98
+ brandId: zod_openapi_1.z.string().optional(),
99
+ recordType: zod_openapi_1.z.string().optional(),
100
+ sourceRunId: zod_openapi_1.z.string().optional(),
101
+ contentHash: zod_openapi_1.z.string(),
102
+ attempt: zod_openapi_1.z.number().int().optional(),
103
+ chunkIndex: zod_openapi_1.z.number().int().optional(),
104
+ chunkLabel: zod_openapi_1.z.string().optional(),
105
+ totalExpected: zod_openapi_1.z.number().int().optional(),
106
+ status: zod_openapi_1.z.string(),
107
+ recordCount: zod_openapi_1.z.number().int(),
108
+ totalProcessed: zod_openapi_1.z.number().int(),
109
+ created: zod_openapi_1.z.number().int(),
110
+ updated: zod_openapi_1.z.number().int(),
111
+ deleted: zod_openapi_1.z.number().int(),
112
+ unchanged: zod_openapi_1.z.number().int(),
113
+ failed: zod_openapi_1.z.number().int(),
114
+ duplicate: zod_openapi_1.z.boolean(),
115
+ submittedAt: zod_openapi_1.z.string().optional(),
116
+ completedAt: zod_openapi_1.z.string().optional(),
117
+ errorMessage: zod_openapi_1.z.string().optional(),
118
+ }), { description: 'Harvest run chunk summary' });
119
+ exports.harvestRunEventSchema = withOpenApi(zod_openapi_1.z.object({
120
+ id: zod_openapi_1.z.string().optional(),
121
+ runId: zod_openapi_1.z.string().optional(),
122
+ chunkId: zod_openapi_1.z.string().optional(),
123
+ brandId: zod_openapi_1.z.string().optional(),
124
+ recordType: zod_openapi_1.z.string().optional(),
125
+ sourceRunId: zod_openapi_1.z.string().optional(),
126
+ harvestId: zod_openapi_1.z.string(),
127
+ oid: zod_openapi_1.z.string().optional(),
128
+ operation: zod_openapi_1.z.string(),
129
+ outcome: zod_openapi_1.z.string(),
130
+ status: zod_openapi_1.z.boolean(),
131
+ message: zod_openapi_1.z.string().optional(),
132
+ details: zod_openapi_1.z.string().optional(),
133
+ errorCode: zod_openapi_1.z.string().optional(),
134
+ createdAt: zod_openapi_1.z.string(),
135
+ }), { description: 'Harvest run event row' });
136
+ exports.harvestRunAggregateCountsSchema = withOpenApi(zod_openapi_1.z.object({
137
+ totalProcessed: zod_openapi_1.z.number().int(),
138
+ created: zod_openapi_1.z.number().int(),
139
+ updated: zod_openapi_1.z.number().int(),
140
+ deleted: zod_openapi_1.z.number().int(),
141
+ unchanged: zod_openapi_1.z.number().int(),
142
+ failed: zod_openapi_1.z.number().int(),
143
+ chunksProcessed: zod_openapi_1.z.number().int(),
144
+ duplicateChunks: zod_openapi_1.z.number().int(),
145
+ }), { description: 'Harvest run aggregate counters' });
146
+ exports.harvestChunkRecordResponseSchema = withOpenApi(zod_openapi_1.z.object({
147
+ harvestId: zod_openapi_1.z.string(),
148
+ oid: zod_openapi_1.z.string(),
149
+ operation: zod_openapi_1.z.string(),
150
+ outcome: zod_openapi_1.z.string(),
151
+ status: zod_openapi_1.z.boolean(),
152
+ message: zod_openapi_1.z.string(),
153
+ details: zod_openapi_1.z.string(),
154
+ }), { description: 'Tracked harvest record response row' });
155
+ exports.enhancedHarvestChunkResponseSchema = withOpenApi(zod_openapi_1.z.object({
156
+ run: exports.harvestRunSummarySchema,
157
+ chunk: exports.harvestRunChunkSummarySchema,
158
+ records: zod_openapi_1.z.array(exports.harvestChunkRecordResponseSchema).optional(),
159
+ }), { description: 'Tracked harvest chunk response envelope' });
160
+ exports.harvestRunDetailResponseSchema = withOpenApi(zod_openapi_1.z.object({
161
+ run: exports.harvestRunSummarySchema,
162
+ chunks: zod_openapi_1.z.array(exports.harvestRunChunkSummarySchema),
163
+ events: zod_openapi_1.z.array(exports.harvestRunEventSchema),
164
+ aggregateCounts: exports.harvestRunAggregateCountsSchema,
165
+ }), { 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' });
170
+ exports.listApiSummarySchema = withOpenApi(zod_openapi_1.z.object({
171
+ numFound: zod_openapi_1.z.number().int(),
172
+ page: zod_openapi_1.z.number().int(),
173
+ start: zod_openapi_1.z.number().int(),
79
174
  }), { description: 'Legacy list response summary' });
80
175
  function listApiResponseSchema(recordSchema) {
81
- return withOpenApi(zod_1.z.object({
176
+ return withOpenApi(zod_openapi_1.z.object({
82
177
  summary: exports.listApiSummarySchema,
83
- records: zod_1.z.array(recordSchema),
178
+ records: zod_openapi_1.z.array(recordSchema),
84
179
  }), { description: 'Legacy list response envelope' });
85
180
  }
86
- exports.createUserApiResponseSchema = withOpenApi(zod_1.z.object({
87
- id: zod_1.z.string(),
88
- username: zod_1.z.string(),
89
- name: zod_1.z.string(),
90
- email: zod_1.z.string(),
91
- type: zod_1.z.string(),
92
- lastLogin: zod_1.z.string().nullable(),
181
+ exports.createUserApiResponseSchema = withOpenApi(zod_openapi_1.z.object({
182
+ id: zod_openapi_1.z.string(),
183
+ username: zod_openapi_1.z.string(),
184
+ name: zod_openapi_1.z.string(),
185
+ email: zod_openapi_1.z.string(),
186
+ type: zod_openapi_1.z.string(),
187
+ lastLogin: zod_openapi_1.z.string().nullable(),
93
188
  }), { description: 'User response returned by create and update actions' });
94
- exports.userApiTokenApiResponseSchema = withOpenApi(zod_1.z.object({
95
- id: zod_1.z.string(),
96
- username: zod_1.z.string(),
97
- token: zod_1.z.string(),
189
+ exports.userApiTokenApiResponseSchema = withOpenApi(zod_openapi_1.z.object({
190
+ id: zod_openapi_1.z.string(),
191
+ username: zod_openapi_1.z.string(),
192
+ token: zod_openapi_1.z.string(),
98
193
  }), { description: 'API token response returned by token generation actions' });
99
- exports.genericObjectSchema = withOpenApi(zod_1.z.object({}).passthrough(), {
194
+ exports.genericObjectSchema = withOpenApi(zod_openapi_1.z.object({}).passthrough(), {
100
195
  description: 'Arbitrary object payload',
101
196
  });
102
- exports.recordAuthorizationSchema = withOpenApi(zod_1.z.object({
103
- edit: zod_1.z.array(zod_1.z.string()).optional(),
104
- view: zod_1.z.array(zod_1.z.string()).optional(),
105
- editPending: zod_1.z.array(zod_1.z.string()).optional(),
106
- viewPending: zod_1.z.array(zod_1.z.string()).optional(),
107
- editRoles: zod_1.z.array(zod_1.z.string()).optional(),
108
- viewRoles: zod_1.z.array(zod_1.z.string()).optional(),
197
+ exports.recordAuthorizationSchema = withOpenApi(zod_openapi_1.z.object({
198
+ edit: zod_openapi_1.z.array(zod_openapi_1.z.string()).optional(),
199
+ view: zod_openapi_1.z.array(zod_openapi_1.z.string()).optional(),
200
+ editPending: zod_openapi_1.z.array(zod_openapi_1.z.string()).optional(),
201
+ viewPending: zod_openapi_1.z.array(zod_openapi_1.z.string()).optional(),
202
+ editRoles: zod_openapi_1.z.array(zod_openapi_1.z.string()).optional(),
203
+ viewRoles: zod_openapi_1.z.array(zod_openapi_1.z.string()).optional(),
109
204
  }), { description: 'Record authorization payload' });
110
- exports.storageServiceResponseSchema = withOpenApi(zod_1.z.object({
111
- success: zod_1.z.boolean(),
112
- oid: zod_1.z.string(),
113
- message: zod_1.z.string(),
205
+ exports.storageServiceResponseSchema = withOpenApi(zod_openapi_1.z.object({
206
+ success: zod_openapi_1.z.boolean(),
207
+ oid: zod_openapi_1.z.string(),
208
+ message: zod_openapi_1.z.string(),
114
209
  metadata: exports.genericObjectSchema.nullable(),
115
- details: zod_1.z.union([zod_1.z.string(), exports.genericObjectSchema]).optional(),
116
- totalItems: zod_1.z.number().int(),
117
- items: zod_1.z.array(exports.genericObjectSchema),
210
+ details: zod_openapi_1.z.union([zod_openapi_1.z.string(), exports.genericObjectSchema]).optional(),
211
+ totalItems: zod_openapi_1.z.number().int(),
212
+ items: zod_openapi_1.z.array(exports.genericObjectSchema),
118
213
  }), { description: 'Storage service response envelope' });
119
- exports.linkedUserSummarySchema = withOpenApi(zod_1.z.object({
120
- id: zod_1.z.string(),
121
- username: zod_1.z.string(),
122
- name: zod_1.z.string(),
123
- email: zod_1.z.string(),
124
- type: zod_1.z.string(),
125
- accountLinkState: zod_1.z.string(),
126
- linkedAt: zod_1.z.string().optional(),
214
+ exports.linkedUserSummarySchema = withOpenApi(zod_openapi_1.z.object({
215
+ id: zod_openapi_1.z.string(),
216
+ username: zod_openapi_1.z.string(),
217
+ name: zod_openapi_1.z.string(),
218
+ email: zod_openapi_1.z.string(),
219
+ type: zod_openapi_1.z.string(),
220
+ accountLinkState: zod_openapi_1.z.string(),
221
+ linkedAt: zod_openapi_1.z.string().optional(),
127
222
  }), { description: 'Linked user summary' });
128
- exports.userLinkResponseSchema = withOpenApi(zod_1.z.object({
223
+ exports.userLinkResponseSchema = withOpenApi(zod_openapi_1.z.object({
129
224
  primary: exports.linkedUserSummarySchema,
130
- linkedAccounts: zod_1.z.array(exports.linkedUserSummarySchema),
131
- impact: zod_1.z
225
+ linkedAccounts: zod_openapi_1.z.array(exports.linkedUserSummarySchema),
226
+ impact: zod_openapi_1.z
132
227
  .object({
133
- recordsRewritten: zod_1.z.number().int(),
134
- rolesMerged: zod_1.z.number().int(),
228
+ recordsRewritten: zod_openapi_1.z.number().int(),
229
+ rolesMerged: zod_openapi_1.z.number().int(),
135
230
  })
136
231
  .optional(),
137
232
  }), { description: 'Linked accounts response' });
138
- exports.userAuditActorSchema = withOpenApi(zod_1.z.object({
139
- username: zod_1.z.string(),
140
- name: zod_1.z.string().optional(),
141
- email: zod_1.z.string().optional(),
233
+ exports.userAuditActorSchema = withOpenApi(zod_openapi_1.z.object({
234
+ username: zod_openapi_1.z.string(),
235
+ name: zod_openapi_1.z.string().optional(),
236
+ email: zod_openapi_1.z.string().optional(),
142
237
  }), { description: 'Audit actor summary' });
143
- exports.userAuditRecordSchema = withOpenApi(zod_1.z.object({
144
- id: zod_1.z.string(),
145
- timestamp: zod_1.z.string().nullable(),
146
- action: zod_1.z.string(),
238
+ exports.userAuditRecordSchema = withOpenApi(zod_openapi_1.z.object({
239
+ id: zod_openapi_1.z.string(),
240
+ timestamp: zod_openapi_1.z.string().nullable(),
241
+ action: zod_openapi_1.z.string(),
147
242
  actor: exports.userAuditActorSchema,
148
- details: zod_1.z.string(),
243
+ details: zod_openapi_1.z.string(),
149
244
  parsedAdditionalContext: exports.genericObjectSchema,
150
- rawAdditionalContext: zod_1.z.string().nullable(),
151
- parseError: zod_1.z.boolean(),
245
+ rawAdditionalContext: zod_openapi_1.z.string().nullable(),
246
+ parseError: zod_openapi_1.z.boolean(),
152
247
  }), { description: 'User audit record' });
153
- exports.userAuditSummarySchema = withOpenApi(zod_1.z.object({
154
- returnedCount: zod_1.z.number().int(),
155
- truncated: zod_1.z.boolean(),
248
+ exports.userAuditSummarySchema = withOpenApi(zod_openapi_1.z.object({
249
+ returnedCount: zod_openapi_1.z.number().int(),
250
+ truncated: zod_openapi_1.z.boolean(),
156
251
  }), { description: 'User audit summary' });
157
- exports.userAuditResponseSchema = withOpenApi(zod_1.z.object({
252
+ exports.userAuditResponseSchema = withOpenApi(zod_openapi_1.z.object({
158
253
  user: exports.genericObjectSchema.nullable(),
159
- records: zod_1.z.array(exports.userAuditRecordSchema),
254
+ records: zod_openapi_1.z.array(exports.userAuditRecordSchema),
160
255
  summary: exports.userAuditSummarySchema,
161
256
  }), { description: 'User audit response' });
162
- exports.statusMessageResponseSchema = withOpenApi(zod_1.z.object({
163
- status: zod_1.z.boolean(),
164
- message: zod_1.z.string(),
257
+ exports.statusMessageResponseSchema = withOpenApi(zod_openapi_1.z.object({
258
+ status: zod_openapi_1.z.boolean(),
259
+ message: zod_openapi_1.z.string(),
165
260
  }), { description: 'Status and message response' });
166
- const dateTimeSchema = withOpenApi(zod_1.z.string(), {
261
+ const dateTimeSchema = withOpenApi(zod_openapi_1.z.string(), {
167
262
  description: 'ISO 8601 date-time string',
168
263
  format: 'date-time',
169
264
  });
170
- const jsonObjectSchema = withOpenApi(zod_1.z.object({}).passthrough(), {
265
+ const jsonObjectSchema = withOpenApi(zod_openapi_1.z.object({}).passthrough(), {
171
266
  description: 'Arbitrary JSON object',
172
267
  });
173
- const brandingReferenceSchema = withOpenApi(zod_1.z.union([zod_1.z.string(), zod_1.z.number()]), {
268
+ const brandingReferenceSchema = withOpenApi(zod_openapi_1.z.union([zod_openapi_1.z.string(), zod_openapi_1.z.number()]), {
174
269
  description: 'Branding identifier',
175
270
  });
176
- const jsonValueSchema = withOpenApi(zod_1.z.unknown(), {
271
+ const jsonValueSchema = withOpenApi(zod_openapi_1.z.unknown(), {
177
272
  description: 'Any JSON value',
178
273
  type: 'object',
179
274
  nullable: true,
180
275
  });
181
- exports.supportAgreementYearSchema = withOpenApi(zod_1.z.object({
182
- agreedSupportDays: zod_1.z.number(),
183
- usedSupportDays: zod_1.z.number(),
276
+ exports.supportAgreementYearSchema = withOpenApi(zod_openapi_1.z.object({
277
+ agreedSupportDays: zod_openapi_1.z.number(),
278
+ usedSupportDays: zod_openapi_1.z.number(),
184
279
  }), { description: 'Annual support agreement usage' });
185
- exports.roleSummarySchema = withOpenApi(zod_1.z.object({
186
- id: zod_1.z.string(),
187
- name: zod_1.z.string(),
280
+ exports.roleSummarySchema = withOpenApi(zod_openapi_1.z.object({
281
+ id: zod_openapi_1.z.string(),
282
+ name: zod_openapi_1.z.string(),
188
283
  branding: brandingReferenceSchema.optional(),
189
284
  }).passthrough(), { description: 'Role summary' });
190
- exports.brandingConfigSchema = withOpenApi(zod_1.z.object({
191
- id: zod_1.z.string(),
192
- name: zod_1.z.string(),
193
- css: zod_1.z.string(),
285
+ exports.brandingConfigSchema = withOpenApi(zod_openapi_1.z.object({
286
+ id: zod_openapi_1.z.string(),
287
+ name: zod_openapi_1.z.string(),
288
+ css: zod_openapi_1.z.string(),
194
289
  variables: jsonObjectSchema.optional(),
195
- version: zod_1.z.number().int().optional(),
196
- hash: zod_1.z.string().optional(),
290
+ version: zod_openapi_1.z.number().int().optional(),
291
+ hash: zod_openapi_1.z.string().optional(),
197
292
  logo: jsonObjectSchema.optional(),
198
- roles: zod_1.z.array(exports.roleSummarySchema).optional(),
293
+ roles: zod_openapi_1.z.array(exports.roleSummarySchema).optional(),
199
294
  supportAgreementInformation: jsonObjectSchema.optional(),
200
295
  }).passthrough(), { description: 'Branding configuration record' });
201
- exports.brandingDraftResponseSchema = withOpenApi(zod_1.z.object({
296
+ exports.brandingDraftResponseSchema = withOpenApi(zod_openapi_1.z.object({
202
297
  branding: exports.brandingConfigSchema,
203
298
  }), { description: 'Saved branding draft response' });
204
- exports.brandingPreviewResponseSchema = withOpenApi(zod_1.z.object({
205
- token: zod_1.z.string(),
206
- url: zod_1.z.string(),
207
- hash: zod_1.z.string(),
208
- previewToken: zod_1.z.string(),
209
- previewUrl: zod_1.z.string(),
299
+ exports.brandingPreviewResponseSchema = withOpenApi(zod_openapi_1.z.object({
300
+ token: zod_openapi_1.z.string(),
301
+ url: zod_openapi_1.z.string(),
302
+ hash: zod_openapi_1.z.string(),
303
+ previewToken: zod_openapi_1.z.string(),
304
+ previewUrl: zod_openapi_1.z.string(),
210
305
  branding: exports.brandingConfigSchema.optional(),
211
306
  }), { description: 'Branding preview response' });
212
- exports.brandingPublishResponseSchema = withOpenApi(zod_1.z.object({
213
- version: zod_1.z.number().int(),
214
- hash: zod_1.z.string(),
215
- idempotent: zod_1.z.boolean().optional(),
307
+ exports.brandingPublishResponseSchema = withOpenApi(zod_openapi_1.z.object({
308
+ version: zod_openapi_1.z.number().int(),
309
+ hash: zod_openapi_1.z.string(),
310
+ idempotent: zod_openapi_1.z.boolean().optional(),
216
311
  }), { description: 'Branding publish response' });
217
- exports.brandingRollbackResponseSchema = withOpenApi(zod_1.z.object({
218
- version: zod_1.z.number().int(),
219
- hash: zod_1.z.string(),
312
+ exports.brandingRollbackResponseSchema = withOpenApi(zod_openapi_1.z.object({
313
+ version: zod_openapi_1.z.number().int(),
314
+ hash: zod_openapi_1.z.string(),
220
315
  branding: exports.brandingConfigSchema.nullable(),
221
316
  }), { description: 'Branding rollback response' });
222
- exports.brandingLogoResponseSchema = withOpenApi(zod_1.z.object({
223
- hash: zod_1.z.string(),
317
+ exports.brandingLogoResponseSchema = withOpenApi(zod_openapi_1.z.object({
318
+ hash: zod_openapi_1.z.string(),
224
319
  }), { description: 'Branding logo upload response' });
225
- exports.brandingHistoryRecordSchema = withOpenApi(zod_1.z.object({
320
+ exports.brandingHistoryRecordSchema = withOpenApi(zod_openapi_1.z.object({
226
321
  branding: brandingReferenceSchema,
227
- version: zod_1.z.number().int(),
228
- hash: zod_1.z.string(),
229
- css: zod_1.z.string().optional(),
322
+ version: zod_openapi_1.z.number().int(),
323
+ hash: zod_openapi_1.z.string(),
324
+ css: zod_openapi_1.z.string().optional(),
230
325
  variables: jsonObjectSchema.optional(),
231
326
  dateCreated: dateTimeSchema.optional(),
232
327
  }).passthrough(), { description: 'Branding history entry' });
233
- exports.userRecordSchema = withOpenApi(zod_1.z.object({
234
- id: zod_1.z.string(),
235
- username: zod_1.z.string(),
236
- type: zod_1.z.string(),
237
- name: zod_1.z.string(),
238
- email: zod_1.z.string(),
328
+ exports.userRecordSchema = withOpenApi(zod_openapi_1.z.object({
329
+ id: zod_openapi_1.z.string(),
330
+ username: zod_openapi_1.z.string(),
331
+ type: zod_openapi_1.z.string(),
332
+ name: zod_openapi_1.z.string(),
333
+ email: zod_openapi_1.z.string(),
239
334
  lastLogin: dateTimeSchema.nullable().optional(),
240
335
  additionalAttributes: jsonObjectSchema.optional(),
241
- linkedPrimaryUserId: zod_1.z.string().optional(),
242
- accountLinkState: zod_1.z.string().optional(),
243
- effectivePrimaryUsername: zod_1.z.string().optional(),
244
- linkedAccountCount: zod_1.z.number().int().optional(),
245
- loginDisabled: zod_1.z.boolean().optional(),
246
- effectiveLoginDisabled: zod_1.z.boolean().optional(),
247
- disabledByPrimaryUserId: zod_1.z.string().optional(),
248
- disabledByPrimaryUsername: zod_1.z.string().optional(),
249
- workspaceApps: zod_1.z.array(jsonObjectSchema).optional(),
250
- roles: zod_1.z.array(exports.roleSummarySchema).optional(),
336
+ linkedPrimaryUserId: zod_openapi_1.z.string().optional(),
337
+ accountLinkState: zod_openapi_1.z.string().optional(),
338
+ effectivePrimaryUsername: zod_openapi_1.z.string().optional(),
339
+ linkedAccountCount: zod_openapi_1.z.number().int().optional(),
340
+ loginDisabled: zod_openapi_1.z.boolean().optional(),
341
+ effectiveLoginDisabled: zod_openapi_1.z.boolean().optional(),
342
+ disabledByPrimaryUserId: zod_openapi_1.z.string().optional(),
343
+ disabledByPrimaryUsername: zod_openapi_1.z.string().optional(),
344
+ workspaceApps: zod_openapi_1.z.array(jsonObjectSchema).optional(),
345
+ roles: zod_openapi_1.z.array(exports.roleSummarySchema).optional(),
251
346
  }).passthrough(), { description: 'User record response' });
252
- exports.searchFilterSchema = withOpenApi(zod_1.z.object({
253
- name: zod_1.z.string(),
254
- title: zod_1.z.string(),
255
- type: zod_1.z.string(),
256
- typeLabel: zod_1.z.string(),
347
+ exports.searchFilterSchema = withOpenApi(zod_openapi_1.z.object({
348
+ name: zod_openapi_1.z.string(),
349
+ title: zod_openapi_1.z.string(),
350
+ type: zod_openapi_1.z.string(),
351
+ typeLabel: zod_openapi_1.z.string(),
257
352
  }).passthrough(), { description: 'Record type search filter' });
258
- exports.relatedToSchema = withOpenApi(zod_1.z.object({
259
- recordType: zod_1.z.string(),
260
- foreignField: zod_1.z.string(),
353
+ exports.relatedToSchema = withOpenApi(zod_openapi_1.z.object({
354
+ recordType: zod_openapi_1.z.string(),
355
+ foreignField: zod_openapi_1.z.string(),
261
356
  }).passthrough(), { description: 'Record type relation mapping' });
262
- exports.recordTypeHookDeclarationSchema = withOpenApi(zod_1.z.object({
263
- function: zod_1.z.string(),
357
+ exports.recordTypeHookDeclarationSchema = withOpenApi(zod_openapi_1.z.object({
358
+ function: zod_openapi_1.z.string(),
264
359
  options: jsonObjectSchema,
265
360
  }).passthrough(), { description: 'Record type hook declaration' });
266
- exports.recordTypeHookOnEventSchema = withOpenApi(zod_1.z.object({
267
- pre: zod_1.z.array(exports.recordTypeHookDeclarationSchema),
268
- post: zod_1.z.array(exports.recordTypeHookDeclarationSchema),
269
- postSync: zod_1.z.array(exports.recordTypeHookDeclarationSchema),
361
+ exports.recordTypeHookOnEventSchema = withOpenApi(zod_openapi_1.z.object({
362
+ pre: zod_openapi_1.z.array(exports.recordTypeHookDeclarationSchema),
363
+ post: zod_openapi_1.z.array(exports.recordTypeHookDeclarationSchema),
364
+ postSync: zod_openapi_1.z.array(exports.recordTypeHookDeclarationSchema),
270
365
  }).passthrough(), { description: 'Record type hook event handlers' });
271
- exports.recordTypeHooksSchema = withOpenApi(zod_1.z.object({
366
+ exports.recordTypeHooksSchema = withOpenApi(zod_openapi_1.z.object({
272
367
  onCreate: exports.recordTypeHookOnEventSchema,
273
368
  onUpdate: exports.recordTypeHookOnEventSchema,
274
369
  onDelete: exports.recordTypeHookOnEventSchema,
275
370
  }).passthrough(), { description: 'Record type hooks configuration' });
276
- exports.recordTypeSchema = withOpenApi(zod_1.z.object({
277
- key: zod_1.z.string().optional(),
278
- name: zod_1.z.string(),
279
- branding: zod_1.z.union([zod_1.z.string(), zod_1.z.number(), exports.brandingConfigSchema]).optional(),
280
- packageType: zod_1.z.string().optional(),
281
- searchCore: zod_1.z.string().optional(),
282
- workflowSteps: zod_1.z.array(jsonObjectSchema).optional(),
283
- searchFilters: zod_1.z.array(exports.searchFilterSchema).optional(),
284
- searchable: zod_1.z.boolean().optional(),
371
+ exports.recordTypeSchema = withOpenApi(zod_openapi_1.z.object({
372
+ key: zod_openapi_1.z.string().optional(),
373
+ name: zod_openapi_1.z.string(),
374
+ branding: zod_openapi_1.z.union([zod_openapi_1.z.string(), zod_openapi_1.z.number(), exports.brandingConfigSchema]).optional(),
375
+ packageType: zod_openapi_1.z.string().optional(),
376
+ searchCore: zod_openapi_1.z.string().optional(),
377
+ workflowSteps: zod_openapi_1.z.array(jsonObjectSchema).optional(),
378
+ searchFilters: zod_openapi_1.z.array(exports.searchFilterSchema).optional(),
379
+ searchable: zod_openapi_1.z.boolean().optional(),
285
380
  transferResponsibility: jsonObjectSchema.optional(),
286
- relatedTo: zod_1.z.array(exports.relatedToSchema).optional(),
381
+ relatedTo: zod_openapi_1.z.array(exports.relatedToSchema).optional(),
287
382
  hooks: exports.recordTypeHooksSchema.optional(),
288
383
  dashboard: jsonObjectSchema.optional(),
289
384
  }).passthrough(), { description: 'Record type configuration' });
290
- exports.formSchema = withOpenApi(zod_1.z.object({
291
- id: zod_1.z.string().optional(),
292
- name: zod_1.z.string(),
293
- branding: zod_1.z.union([zod_1.z.string(), zod_1.z.number(), exports.brandingConfigSchema]).optional(),
385
+ exports.formSchema = withOpenApi(zod_openapi_1.z.object({
386
+ id: zod_openapi_1.z.string().optional(),
387
+ name: zod_openapi_1.z.string(),
388
+ branding: zod_openapi_1.z.union([zod_openapi_1.z.string(), zod_openapi_1.z.number(), exports.brandingConfigSchema]).optional(),
294
389
  configuration: jsonObjectSchema.optional(),
295
390
  }).passthrough(), { description: 'Form definition' });
296
- exports.vocabularyEntrySchema = withOpenApi(zod_1.z.object({
297
- id: zod_1.z.string().optional(),
391
+ exports.vocabularyEntrySchema = withOpenApi(zod_openapi_1.z.object({
392
+ id: zod_openapi_1.z.string().optional(),
298
393
  vocabulary: brandingReferenceSchema.optional(),
299
- label: zod_1.z.string(),
300
- labelLower: zod_1.z.string().optional(),
301
- value: zod_1.z.string(),
302
- valueLower: zod_1.z.string().optional(),
394
+ label: zod_openapi_1.z.string(),
395
+ labelLower: zod_openapi_1.z.string().optional(),
396
+ value: zod_openapi_1.z.string(),
397
+ valueLower: zod_openapi_1.z.string().optional(),
303
398
  parent: brandingReferenceSchema.nullable().optional(),
304
- identifier: zod_1.z.string().optional(),
305
- order: zod_1.z.number().int().optional(),
306
- historical: zod_1.z.boolean().optional(),
399
+ identifier: zod_openapi_1.z.string().optional(),
400
+ order: zod_openapi_1.z.number().int().optional(),
401
+ historical: zod_openapi_1.z.boolean().optional(),
307
402
  }).passthrough(), { description: 'Vocabulary entry' });
308
403
  exports.vocabularyTreeNodeSchema = withOpenApi(exports.vocabularyEntrySchema.extend({
309
- children: zod_1.z.array(exports.vocabularyEntrySchema).optional(),
404
+ children: zod_openapi_1.z.array(exports.vocabularyEntrySchema).optional(),
310
405
  }), { description: 'Vocabulary tree node' });
311
- exports.vocabularySchema = withOpenApi(zod_1.z.object({
312
- id: zod_1.z.string().optional(),
313
- branding: zod_1.z.union([zod_1.z.string(), zod_1.z.number(), exports.brandingConfigSchema]).optional(),
314
- description: zod_1.z.string().optional(),
315
- entries: zod_1.z.array(exports.vocabularyEntrySchema).optional(),
406
+ exports.vocabularySchema = withOpenApi(zod_openapi_1.z.object({
407
+ id: zod_openapi_1.z.string().optional(),
408
+ branding: zod_openapi_1.z.union([zod_openapi_1.z.string(), zod_openapi_1.z.number(), exports.brandingConfigSchema]).optional(),
409
+ description: zod_openapi_1.z.string().optional(),
410
+ entries: zod_openapi_1.z.array(exports.vocabularyEntrySchema).optional(),
316
411
  lastSyncedAt: dateTimeSchema.optional(),
317
- name: zod_1.z.string(),
318
- owner: zod_1.z.string().optional(),
319
- rvaSourceKey: zod_1.z.string().nullable().optional(),
320
- slug: zod_1.z.string(),
321
- source: zod_1.z.string().optional(),
322
- sourceId: zod_1.z.string().optional(),
323
- sourceVersionId: zod_1.z.string().optional(),
324
- type: zod_1.z.string().optional(),
412
+ name: zod_openapi_1.z.string(),
413
+ owner: zod_openapi_1.z.string().optional(),
414
+ rvaSourceKey: zod_openapi_1.z.string().nullable().optional(),
415
+ slug: zod_openapi_1.z.string(),
416
+ source: zod_openapi_1.z.string().optional(),
417
+ sourceId: zod_openapi_1.z.string().optional(),
418
+ sourceVersionId: zod_openapi_1.z.string().optional(),
419
+ type: zod_openapi_1.z.string().optional(),
325
420
  }).passthrough(), { description: 'Vocabulary record' });
326
- exports.translationEntrySchema = withOpenApi(zod_1.z.object({
327
- id: zod_1.z.string().optional(),
421
+ exports.translationEntrySchema = withOpenApi(zod_openapi_1.z.object({
422
+ id: zod_openapi_1.z.string().optional(),
328
423
  branding: brandingReferenceSchema.optional(),
329
424
  bundle: brandingReferenceSchema.optional(),
330
- category: zod_1.z.string().nullable().optional(),
331
- description: zod_1.z.string().nullable().optional(),
332
- key: zod_1.z.string(),
333
- locale: zod_1.z.string(),
334
- namespace: zod_1.z.string().optional(),
335
- uid: zod_1.z.string().optional(),
425
+ category: zod_openapi_1.z.string().nullable().optional(),
426
+ description: zod_openapi_1.z.string().nullable().optional(),
427
+ key: zod_openapi_1.z.string(),
428
+ locale: zod_openapi_1.z.string(),
429
+ namespace: zod_openapi_1.z.string().optional(),
430
+ uid: zod_openapi_1.z.string().optional(),
336
431
  value: jsonValueSchema,
337
432
  }).passthrough(), { description: 'Translation entry' });
338
- exports.translationBundleSchema = withOpenApi(zod_1.z.object({
339
- id: zod_1.z.string().optional(),
433
+ exports.translationBundleSchema = withOpenApi(zod_openapi_1.z.object({
434
+ id: zod_openapi_1.z.string().optional(),
340
435
  branding: brandingReferenceSchema.optional(),
341
436
  data: jsonObjectSchema,
342
- displayName: zod_1.z.string().optional(),
343
- enabled: zod_1.z.boolean().optional(),
344
- entries: zod_1.z.array(exports.translationEntrySchema).optional(),
345
- locale: zod_1.z.string(),
346
- namespace: zod_1.z.string().optional(),
347
- uid: zod_1.z.string().optional(),
437
+ displayName: zod_openapi_1.z.string().optional(),
438
+ enabled: zod_openapi_1.z.boolean().optional(),
439
+ entries: zod_openapi_1.z.array(exports.translationEntrySchema).optional(),
440
+ locale: zod_openapi_1.z.string(),
441
+ namespace: zod_openapi_1.z.string().optional(),
442
+ uid: zod_openapi_1.z.string().optional(),
348
443
  }).passthrough(), { description: 'Translation bundle' });
349
- exports.searchFacetValueSchema = withOpenApi(zod_1.z.object({
350
- value: zod_1.z.string(),
351
- count: zod_1.z.number().int(),
444
+ exports.searchFacetValueSchema = withOpenApi(zod_openapi_1.z.object({
445
+ value: zod_openapi_1.z.string(),
446
+ count: zod_openapi_1.z.number().int(),
352
447
  }).passthrough(), { description: 'Search facet value' });
353
- exports.searchFacetSchema = withOpenApi(zod_1.z.object({
354
- name: zod_1.z.string(),
355
- values: zod_1.z.array(exports.searchFacetValueSchema),
448
+ exports.searchFacetSchema = withOpenApi(zod_openapi_1.z.object({
449
+ name: zod_openapi_1.z.string(),
450
+ values: zod_openapi_1.z.array(exports.searchFacetValueSchema),
356
451
  }).passthrough(), { description: 'Search facet summary' });
357
- exports.searchRecordSchema = withOpenApi(zod_1.z.object({
358
- hasEditAccess: zod_1.z.boolean(),
452
+ exports.searchRecordSchema = withOpenApi(zod_openapi_1.z.object({
453
+ hasEditAccess: zod_openapi_1.z.boolean(),
359
454
  }).passthrough(), { description: 'Search result record' });
360
- exports.searchResultsSchema = withOpenApi(zod_1.z.object({
361
- records: zod_1.z.array(exports.searchRecordSchema),
362
- facets: zod_1.z.array(exports.searchFacetSchema).optional(),
363
- totalItems: zod_1.z.number().int(),
455
+ exports.searchResultsSchema = withOpenApi(zod_openapi_1.z.object({
456
+ records: zod_openapi_1.z.array(exports.searchRecordSchema),
457
+ facets: zod_openapi_1.z.array(exports.searchFacetSchema).optional(),
458
+ totalItems: zod_openapi_1.z.number().int(),
364
459
  }).passthrough(), { description: 'Search response payload' });
365
- exports.recordMetadataSchema = withOpenApi(zod_1.z.object({}).passthrough(), { description: 'Record metadata payload' });
366
- exports.objectMetadataSchema = withOpenApi(zod_1.z.object({}).passthrough(), { description: 'Object metadata payload' });
367
- exports.recordListItemSchema = withOpenApi(zod_1.z.object({
368
- oid: zod_1.z.string(),
369
- title: zod_1.z.string().optional(),
460
+ exports.recordMetadataSchema = withOpenApi(zod_openapi_1.z.object({}).passthrough(), { description: 'Record metadata payload' });
461
+ exports.objectMetadataSchema = withOpenApi(zod_openapi_1.z.object({}).passthrough(), { description: 'Object metadata payload' });
462
+ exports.recordListItemSchema = withOpenApi(zod_openapi_1.z.object({
463
+ oid: zod_openapi_1.z.string(),
464
+ title: zod_openapi_1.z.string().optional(),
370
465
  metadata: jsonObjectSchema,
371
466
  dateCreated: dateTimeSchema.optional(),
372
467
  dateModified: dateTimeSchema.optional(),
373
- hasEditAccess: zod_1.z.boolean(),
468
+ hasEditAccess: zod_openapi_1.z.boolean(),
374
469
  }).passthrough(), { description: 'Record list item' });
375
- exports.deletedRecordListItemSchema = withOpenApi(zod_1.z.object({
376
- oid: zod_1.z.string(),
377
- title: zod_1.z.string().optional(),
470
+ exports.deletedRecordListItemSchema = withOpenApi(zod_openapi_1.z.object({
471
+ oid: zod_openapi_1.z.string(),
472
+ title: zod_openapi_1.z.string().optional(),
378
473
  deletedRecord: jsonObjectSchema,
379
474
  dateCreated: dateTimeSchema.optional(),
380
475
  dateModified: dateTimeSchema.optional(),
381
476
  dateDeleted: dateTimeSchema.optional(),
382
477
  }).passthrough(), { description: 'Deleted record list item' });
383
- exports.datastreamSummarySchema = withOpenApi(zod_1.z.object({
478
+ exports.datastreamSummarySchema = withOpenApi(zod_openapi_1.z.object({
384
479
  dateUpdated: dateTimeSchema.optional(),
385
- label: zod_1.z.string().optional(),
386
- contentType: zod_1.z.string().optional(),
387
- filename: zod_1.z.string().optional(),
388
- contentLength: zod_1.z.number().optional(),
480
+ label: zod_openapi_1.z.string().optional(),
481
+ contentType: zod_openapi_1.z.string().optional(),
482
+ filename: zod_openapi_1.z.string().optional(),
483
+ contentLength: zod_openapi_1.z.number().optional(),
389
484
  lastModified: dateTimeSchema.optional(),
390
- etag: zod_1.z.string().optional(),
391
- fileId: zod_1.z.string().optional(),
392
- name: zod_1.z.string().optional(),
393
- mimeType: zod_1.z.string().optional(),
394
- size: zod_1.z.number().optional(),
485
+ etag: zod_openapi_1.z.string().optional(),
486
+ fileId: zod_openapi_1.z.string().optional(),
487
+ name: zod_openapi_1.z.string().optional(),
488
+ mimeType: zod_openapi_1.z.string().optional(),
489
+ size: zod_openapi_1.z.number().optional(),
395
490
  }).passthrough(), { description: 'Record datastream summary' });
396
- exports.datastreamUploadFileSchema = withOpenApi(zod_1.z.object({
397
- fileId: zod_1.z.string(),
491
+ exports.datastreamUploadFileSchema = withOpenApi(zod_openapi_1.z.object({
492
+ fileId: zod_openapi_1.z.string(),
398
493
  metadata: jsonObjectSchema.optional(),
399
494
  }).passthrough(), { description: 'Uploaded datastream file reference' });
400
- exports.datastreamUploadResultSchema = withOpenApi(zod_1.z.object({
401
- success: zod_1.z.boolean(),
402
- message: zod_1.z.string(),
403
- fileIds: zod_1.z.array(exports.datastreamUploadFileSchema).optional(),
495
+ exports.datastreamUploadResultSchema = withOpenApi(zod_openapi_1.z.object({
496
+ success: zod_openapi_1.z.boolean(),
497
+ message: zod_openapi_1.z.string(),
498
+ fileIds: zod_openapi_1.z.array(exports.datastreamUploadFileSchema).optional(),
404
499
  }).passthrough(), { description: 'Datastream upload result' });
405
- exports.datastreamUploadResponseSchema = withOpenApi(zod_1.z.object({
500
+ exports.datastreamUploadResponseSchema = withOpenApi(zod_openapi_1.z.object({
406
501
  message: exports.datastreamUploadResultSchema,
407
502
  }), { description: 'Datastream upload response' });
408
- exports.recordAuditEntrySchema = withOpenApi(zod_1.z.object({}).passthrough(), { description: 'Record audit entry' });
409
- exports.namedQueryResponseRecordSchema = withOpenApi(zod_1.z.object({
410
- oid: zod_1.z.string(),
411
- title: zod_1.z.string(),
503
+ exports.recordAuditEntrySchema = withOpenApi(zod_openapi_1.z.object({}).passthrough(), { description: 'Record audit entry' });
504
+ exports.namedQueryResponseRecordSchema = withOpenApi(zod_openapi_1.z.object({
505
+ oid: zod_openapi_1.z.string(),
506
+ title: zod_openapi_1.z.string(),
412
507
  metadata: jsonObjectSchema,
413
508
  lastSaveDate: dateTimeSchema.nullable(),
414
509
  dateCreated: dateTimeSchema.nullable(),
415
510
  }).passthrough(), { description: 'Named query result record' });
416
- exports.appConfigValueSchema = withOpenApi(zod_1.z.object({}).passthrough(), { description: 'Application configuration payload' });
417
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS1yb3V0ZXMvc2NoZW1hcy9yZXNwb25zZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQStHQSxzREFRQztBQXZIRCwwQkFBd0I7QUFFeEIsNkJBQXlDO0FBSXpDLFNBQVMsV0FBVyxDQUF1QixNQUFTLEVBQUUsUUFBaUM7SUFDbkYsT0FBUSxNQUEyRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUMxRyxDQUFDO0FBRUQsTUFBTSx3QkFBd0IsR0FBRyxXQUFXLENBQUMsT0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRTtJQUNyRSxXQUFXLEVBQUUsZ0NBQWdDO0NBQ2hELENBQUMsQ0FBQztBQUVVLFFBQUEseUJBQXlCLEdBQUcsV0FBVyxDQUNoRCxPQUFDLENBQUMsTUFBTSxDQUFDO0lBQ0wsRUFBRSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDekIsTUFBTSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDN0IsSUFBSSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDM0IsS0FBSyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDNUIsTUFBTSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDN0IsTUFBTSxFQUFFLE9BQUM7U0FDSixNQUFNLENBQUM7UUFDSixPQUFPLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtRQUM5QixTQUFTLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtRQUNoQyxNQUFNLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtLQUNoQyxDQUFDO1NB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
511
+ exports.appConfigValueSchema = withOpenApi(zod_openapi_1.z.object({}).passthrough(), { description: 'Application configuration payload' });
512
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS1yb3V0ZXMvc2NoZW1hcy9yZXNwb25zZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQThPQSxzREFRQztBQXRQRCxnREFBbUM7QUFLbkMsU0FBUyxXQUFXLENBQXVCLE1BQVMsRUFBRSxRQUFpQztJQUNuRixPQUFRLE1BQTJFLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQzFHLENBQUM7QUFFRCxNQUFNLHdCQUF3QixHQUFHLFdBQVcsQ0FBQyxlQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFO0lBQ3JFLFdBQVcsRUFBRSxnQ0FBZ0M7Q0FDaEQsQ0FBQyxDQUFDO0FBRVUsUUFBQSx5QkFBeUIsR0FBRyxXQUFXLENBQ2hELGVBQUMsQ0FBQyxNQUFNLENBQUM7SUFDTCxFQUFFLEVBQUUsZUFBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUN6QixNQUFNLEVBQUUsZUFBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM3QixJQUFJLEVBQUUsZUFBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUMzQixLQUFLLEVBQUUsZUFBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM1QixNQUFNLEVBQUUsZUFBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM3QixNQUFNLEVBQUUsZUFBQztTQUNKLE1BQU0sQ0FBQztRQUNKLE9BQU8sRUFBRSxlQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO1FBQzlCLFNBQVMsRUFBRSxlQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO1FBQ2hDLE1BQU0sRUFBRSxlQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0tBQ2hDLENBQUM7U0FDRCxPQUFPLEVBQUU7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