@calmlens/js-sdk 0.0.1 → 0.0.3

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 (68) hide show
  1. package/cjs/ApiKey.d.ts +31 -0
  2. package/cjs/ApiKey.js +59 -0
  3. package/cjs/Asset.d.ts +83 -3
  4. package/cjs/Asset.js +198 -28
  5. package/cjs/Auth.d.ts +95 -0
  6. package/cjs/Auth.js +2 -0
  7. package/cjs/CalmLensClient.d.ts +37 -11
  8. package/cjs/CalmLensClient.js +176 -77
  9. package/cjs/CalmLensTypes.d.ts +2 -0
  10. package/cjs/Classification.js +40 -7
  11. package/cjs/DocMetaTypes.d.ts +7 -0
  12. package/cjs/DocMetaTypes.js +7 -0
  13. package/cjs/Page.d.ts +42 -0
  14. package/cjs/Page.js +94 -0
  15. package/cjs/PublicApiSchemas.d.ts +1600 -0
  16. package/cjs/PublicApiSchemas.js +346 -0
  17. package/cjs/RequestInfo.d.ts +23 -0
  18. package/cjs/RequestInfo.js +2 -0
  19. package/cjs/Roles.d.ts +21 -0
  20. package/cjs/Roles.js +84 -0
  21. package/cjs/SharedConstants.d.ts +134 -0
  22. package/cjs/SharedConstants.js +125 -0
  23. package/cjs/SharedTypes.d.ts +6 -1
  24. package/cjs/User.d.ts +17 -0
  25. package/cjs/User.js +51 -0
  26. package/cjs/UtilTypes.d.ts +30 -0
  27. package/cjs/UtilTypes.js +4 -0
  28. package/cjs/Workflow.d.ts +58 -0
  29. package/cjs/Workflow.js +83 -0
  30. package/cjs/ZodUtils.d.ts +39 -0
  31. package/cjs/ZodUtils.js +328 -0
  32. package/cjs/index.js +4 -1
  33. package/esm/ApiKey.d.ts +31 -0
  34. package/esm/ApiKey.js +23 -0
  35. package/esm/Asset.d.ts +83 -3
  36. package/esm/Asset.js +148 -12
  37. package/esm/Auth.d.ts +95 -0
  38. package/esm/Auth.js +1 -0
  39. package/esm/CalmLensClient.d.ts +37 -11
  40. package/esm/CalmLensClient.js +134 -55
  41. package/esm/CalmLensTypes.d.ts +2 -0
  42. package/esm/Classification.js +1 -1
  43. package/esm/DocMetaTypes.d.ts +7 -0
  44. package/esm/DocMetaTypes.js +4 -0
  45. package/esm/Page.d.ts +42 -0
  46. package/esm/Page.js +55 -0
  47. package/esm/PublicApiSchemas.d.ts +1600 -0
  48. package/esm/PublicApiSchemas.js +310 -0
  49. package/esm/RequestInfo.d.ts +23 -0
  50. package/esm/RequestInfo.js +1 -0
  51. package/esm/Roles.d.ts +21 -0
  52. package/esm/Roles.js +45 -0
  53. package/esm/SharedConstants.d.ts +134 -0
  54. package/esm/SharedConstants.js +122 -0
  55. package/esm/SharedTypes.d.ts +6 -1
  56. package/esm/User.d.ts +17 -0
  57. package/esm/User.js +15 -0
  58. package/esm/UtilTypes.d.ts +30 -0
  59. package/esm/UtilTypes.js +1 -0
  60. package/esm/Workflow.d.ts +58 -0
  61. package/esm/Workflow.js +46 -0
  62. package/esm/ZodUtils.d.ts +39 -0
  63. package/esm/ZodUtils.js +266 -0
  64. package/package.json +10 -10
  65. package/cjs/SchemaUtils.d.ts +0 -11
  66. package/cjs/SchemaUtils.js +0 -63
  67. package/esm/SchemaUtils.d.ts +0 -11
  68. package/esm/SchemaUtils.js +0 -46
@@ -37,6 +37,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  var api_def_1 = require("api-def");
40
+ var SharedConstants_1 = require("shared/SharedConstants");
40
41
  var CalmLensUtils_1 = require("./CalmLensUtils");
41
42
  var createApi = function (options) {
42
43
  var api = new api_def_1.Api({
@@ -51,40 +52,57 @@ var createApi = function (options) {
51
52
  },
52
53
  },
53
54
  ],
55
+ requestBackend: options.requestBackend,
54
56
  });
55
57
  return api;
56
58
  };
57
- // API endpoint definitions
59
+ // API endpoint definitions using schemas like CalmLensApi.ts
58
60
  var createEndpoints = function (api) {
59
- var postUploadAsset = api
61
+ var getAssetsPage = api
60
62
  .endpoint()
61
- .bodyOf()
63
+ .queryOf()
62
64
  .paramsOf()
63
65
  .responseOf()
64
66
  .build({
65
- id: "postUploadAsset",
66
- method: "post",
67
- path: "/projects/:projectId/assets",
67
+ id: "getAssetsPage",
68
+ method: "get",
69
+ path: "/projects/:projectId/assets/page",
68
70
  });
69
- var getAsset = api.endpoint().paramsOf().responseOf().build({
71
+ var getAsset = api
72
+ .endpoint()
73
+ .paramsOf()
74
+ .responseOf()
75
+ .build({
70
76
  id: "getAsset",
71
77
  method: "get",
72
78
  path: "/projects/:projectId/assets/:assetId",
73
79
  });
74
- var getAssetsPage = api
80
+ var getAssetChildren = api
75
81
  .endpoint()
76
- .queryOf()
77
82
  .paramsOf()
83
+ .queryOf()
78
84
  .responseOf()
79
85
  .build({
80
- id: "getAssetsPage",
86
+ id: "getAssetChildren",
81
87
  method: "get",
82
- path: "/projects/:projectId/assets/page",
88
+ path: "/projects/:projectId/assets/:assetId/children",
89
+ });
90
+ var postUploadAsset = api
91
+ .endpoint()
92
+ .bodyOf()
93
+ .paramsOf()
94
+ .queryOf()
95
+ .responseOf()
96
+ .build({
97
+ id: "postUploadAsset",
98
+ method: "post",
99
+ path: "/projects/:projectId/assets",
83
100
  });
84
101
  return {
85
- postUploadAsset: postUploadAsset,
86
- getAsset: getAsset,
87
102
  getAssetsPage: getAssetsPage,
103
+ getAsset: getAsset,
104
+ getAssetChildren: getAssetChildren,
105
+ postUploadAsset: postUploadAsset,
88
106
  };
89
107
  };
90
108
  var CalmLensClient = /** @class */ (function () {
@@ -97,7 +115,7 @@ var CalmLensClient = /** @class */ (function () {
97
115
  if (!options.projectId) {
98
116
  throw new Error("Project ID is required");
99
117
  }
100
- this.options.baseUrl = (_a = this.options.baseUrl) !== null && _a !== void 0 ? _a : "https://api.calmlens.com";
118
+ this.options.baseUrl = (_a = this.options.baseUrl) !== null && _a !== void 0 ? _a : "https://api.".concat(SharedConstants_1.DOMAIN, "/v1");
101
119
  this.api = createApi(this.options);
102
120
  this.endpoints = createEndpoints(this.api);
103
121
  }
@@ -128,72 +146,153 @@ var CalmLensClient = /** @class */ (function () {
128
146
  });
129
147
  });
130
148
  };
131
- CalmLensClient.prototype.submitAsset = function (options) {
132
- return __awaiter(this, void 0, void 0, function () {
133
- var result;
134
- return __generator(this, function (_a) {
135
- switch (_a.label) {
136
- case 0:
137
- if (!("file" in options) && !("url" in options)) {
138
- throw new Error("Either file content or URL is required");
149
+ Object.defineProperty(CalmLensClient.prototype, "assets", {
150
+ get: function () {
151
+ var _this = this;
152
+ return {
153
+ /**
154
+ * List all assets for a project
155
+ * @param options - Pagination and filtering options
156
+ * @returns Promise with paginated assets
157
+ */
158
+ list: function (options) { return __awaiter(_this, void 0, void 0, function () {
159
+ var result;
160
+ return __generator(this, function (_a) {
161
+ switch (_a.label) {
162
+ case 0: return [4 /*yield*/, this.endpoints.getAssetsPage.submit({
163
+ params: {
164
+ projectId: this.options.projectId,
165
+ },
166
+ query: options,
167
+ })];
168
+ case 1:
169
+ result = _a.sent();
170
+ return [2 /*return*/, result.data];
139
171
  }
140
- if (!options.name) {
141
- throw new Error("Asset name is required");
172
+ });
173
+ }); },
174
+ /**
175
+ * Retrieve a specific asset by ID
176
+ * @param assetId - The asset ID
177
+ * @returns Promise with asset data
178
+ */
179
+ retrieve: function (assetId) { return __awaiter(_this, void 0, void 0, function () {
180
+ var result;
181
+ return __generator(this, function (_a) {
182
+ switch (_a.label) {
183
+ case 0:
184
+ if (!assetId) {
185
+ throw new Error("Asset ID is required");
186
+ }
187
+ return [4 /*yield*/, this.endpoints.getAsset.submit({
188
+ params: {
189
+ projectId: this.options.projectId,
190
+ assetId: assetId,
191
+ },
192
+ })];
193
+ case 1:
194
+ result = _a.sent();
195
+ return [2 /*return*/, result.data];
142
196
  }
143
- return [4 /*yield*/, this.endpoints.postUploadAsset.submit({
144
- body: options,
145
- params: {
146
- projectId: this.options.projectId,
147
- },
148
- })];
149
- case 1:
150
- result = _a.sent();
151
- return [2 /*return*/, result.data];
152
- }
153
- });
154
- });
155
- };
156
- CalmLensClient.prototype.getAsset = function (assetId) {
157
- return __awaiter(this, void 0, void 0, function () {
158
- var result;
159
- return __generator(this, function (_a) {
160
- switch (_a.label) {
161
- case 0:
162
- if (!assetId) {
163
- throw new Error("Asset ID is required");
197
+ });
198
+ }); },
199
+ /**
200
+ * Get child assets of a parent asset
201
+ * @param assetId - The parent asset ID
202
+ * @param options - Pagination options
203
+ * @returns Promise with paginated child assets
204
+ */
205
+ listChildren: function (assetId, options) { return __awaiter(_this, void 0, void 0, function () {
206
+ var result;
207
+ return __generator(this, function (_a) {
208
+ switch (_a.label) {
209
+ case 0:
210
+ if (!assetId) {
211
+ throw new Error("Asset ID is required");
212
+ }
213
+ return [4 /*yield*/, this.endpoints.getAssetChildren.submit({
214
+ params: {
215
+ projectId: this.options.projectId,
216
+ assetId: assetId,
217
+ },
218
+ query: options,
219
+ })];
220
+ case 1:
221
+ result = _a.sent();
222
+ return [2 /*return*/, result.data];
164
223
  }
165
- return [4 /*yield*/, this.endpoints.getAsset.submit({
166
- params: {
167
- projectId: this.options.projectId,
168
- assetId: assetId,
169
- },
170
- })];
171
- case 1:
172
- result = _a.sent();
173
- return [2 /*return*/, result.data];
174
- }
175
- });
176
- });
177
- };
178
- CalmLensClient.prototype.listAssets = function () {
179
- return __awaiter(this, arguments, void 0, function (options) {
180
- var result;
181
- if (options === void 0) { options = {}; }
182
- return __generator(this, function (_a) {
183
- switch (_a.label) {
184
- case 0: return [4 /*yield*/, this.endpoints.getAssetsPage.submit({
185
- params: {
186
- projectId: this.options.projectId,
187
- },
188
- query: options,
189
- })];
190
- case 1:
191
- result = _a.sent();
192
- return [2 /*return*/, result.data];
193
- }
194
- });
195
- });
196
- };
224
+ });
225
+ }); },
226
+ /**
227
+ * Submit a new asset for processing (queued asynchronously)
228
+ * The asset will be queued for classification and returned immediately.
229
+ * @param options - Asset submission options
230
+ * @returns Promise with created asset
231
+ */
232
+ create: function (options) { return __awaiter(_this, void 0, void 0, function () {
233
+ var result;
234
+ return __generator(this, function (_a) {
235
+ switch (_a.label) {
236
+ case 0:
237
+ if (!("file" in options) && !("url" in options)) {
238
+ throw new Error("Either file content or URL is required");
239
+ }
240
+ if (!options.name) {
241
+ throw new Error("Asset name is required");
242
+ }
243
+ return [4 /*yield*/, this.endpoints.postUploadAsset.submit({
244
+ body: options,
245
+ params: {
246
+ projectId: this.options.projectId,
247
+ },
248
+ query: {
249
+ queue: true, // Queue for async processing
250
+ },
251
+ })];
252
+ case 1:
253
+ result = _a.sent();
254
+ return [2 /*return*/, result.data];
255
+ }
256
+ });
257
+ }); },
258
+ /**
259
+ * Submit a new asset and analyze it synchronously
260
+ * The asset will be classified immediately before the response is returned.
261
+ * This may take longer but ensures the asset is fully processed.
262
+ * @param options - Asset submission options
263
+ * @returns Promise with created and analyzed asset
264
+ */
265
+ analyze: function (options) { return __awaiter(_this, void 0, void 0, function () {
266
+ var result;
267
+ return __generator(this, function (_a) {
268
+ switch (_a.label) {
269
+ case 0:
270
+ if (!("file" in options) && !("url" in options)) {
271
+ throw new Error("Either file content or URL is required");
272
+ }
273
+ if (!options.name) {
274
+ throw new Error("Asset name is required");
275
+ }
276
+ return [4 /*yield*/, this.endpoints.postUploadAsset.submit({
277
+ body: options,
278
+ params: {
279
+ projectId: this.options.projectId,
280
+ },
281
+ query: {
282
+ queue: false, // Process synchronously
283
+ },
284
+ })];
285
+ case 1:
286
+ result = _a.sent();
287
+ return [2 /*return*/, result.data];
288
+ }
289
+ });
290
+ }); },
291
+ };
292
+ },
293
+ enumerable: false,
294
+ configurable: true
295
+ });
197
296
  return CalmLensClient;
198
297
  }());
199
298
  exports.default = CalmLensClient;
@@ -1,5 +1,7 @@
1
+ import type { RequestBackend } from "api-def";
1
2
  export interface CalmLensClientOptions {
2
3
  apiKey: string;
3
4
  projectId: string;
4
5
  baseUrl?: string;
6
+ requestBackend?: RequestBackend;
5
7
  }
@@ -1,8 +1,41 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
36
  exports.CLASSIFICATION_REPORT_SCHEMA = exports.CLASSIFICATION_LABEL_SCHEMA = exports.CATEGORIES_SCHEMA = exports.CLASSIFICATION_CATEGORY_REPORT_SCHEMA = exports.LIKELIHOOD_SCHEMA = exports.getCategoryInfo = exports.CLASSIFICATION_CATEGORY_INFO = exports.CLASSIFICATION_CATEGORY_INFO_SCHEMA = exports.CLASSIFICATION_CATEGORY_SCHEMA = exports.CLASSIFICATION_CATEGORIES = void 0;
4
- var zod = require("zod/v4");
5
- var SchemaUtils_1 = require("./SchemaUtils");
37
+ var zod = __importStar(require("zod/v4"));
38
+ var ZodUtils_1 = require("./ZodUtils");
6
39
  // OpenAI Content Moderation Categories (Merged subcategories)
7
40
  exports.CLASSIFICATION_CATEGORIES = [
8
41
  "sexual",
@@ -18,8 +51,8 @@ exports.CLASSIFICATION_CATEGORY_SCHEMA = zod.enum(exports.CLASSIFICATION_CATEGOR
18
51
  // Type to define category information including whether it's text-only
19
52
  exports.CLASSIFICATION_CATEGORY_INFO_SCHEMA = zod.object({
20
53
  category: exports.CLASSIFICATION_CATEGORY_SCHEMA,
21
- displayName: (0, SchemaUtils_1.saneStringField)(),
22
- description: (0, SchemaUtils_1.saneStringField)(),
54
+ displayName: (0, ZodUtils_1.saneStringField)(),
55
+ description: (0, ZodUtils_1.saneStringField)(),
23
56
  textOnly: zod.boolean(),
24
57
  supportsImages: zod.boolean(),
25
58
  });
@@ -101,17 +134,17 @@ exports.CLASSIFICATION_CATEGORY_REPORT_SCHEMA = zod.object({
101
134
  });
102
135
  exports.CATEGORIES_SCHEMA = zod.partialRecord(exports.CLASSIFICATION_CATEGORY_SCHEMA, exports.CLASSIFICATION_CATEGORY_REPORT_SCHEMA);
103
136
  exports.CLASSIFICATION_LABEL_SCHEMA = zod.object({
104
- description: (0, SchemaUtils_1.saneStringField)(),
137
+ description: (0, ZodUtils_1.saneStringField)(),
105
138
  score: zod.number(),
106
139
  topicalityScore: zod.number().nullish(),
107
140
  likelihood: exports.LIKELIHOOD_SCHEMA,
108
- knowledgeBaseId: (0, SchemaUtils_1.saneStringField)().nullish(),
141
+ knowledgeBaseId: (0, ZodUtils_1.saneStringField)().nullish(),
109
142
  });
110
143
  exports.CLASSIFICATION_REPORT_SCHEMA = zod.object({
111
144
  processedAt: zod.number(),
112
145
  categories: exports.CATEGORIES_SCHEMA,
113
146
  flagged: zod.boolean(),
114
147
  score: zod.number(),
115
- notes: (0, SchemaUtils_1.saneStringField)().nullish(),
148
+ notes: (0, ZodUtils_1.saneStringField)().nullish(),
116
149
  labels: zod.array(exports.CLASSIFICATION_LABEL_SCHEMA).nullish(),
117
150
  });
@@ -0,0 +1,7 @@
1
+ export declare const docPropertyInfo: import("zod-meta").ZodMetaFactory<{
2
+ description: string;
3
+ defaultValue?: string | number | boolean;
4
+ placeholder?: string;
5
+ namedType?: string;
6
+ example?: any;
7
+ }>;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.docPropertyInfo = void 0;
4
+ var zod_meta_1 = require("zod-meta");
5
+ exports.docPropertyInfo = (0, zod_meta_1.createMetaType)({
6
+ id: "docPropertyInfo",
7
+ });
package/cjs/Page.d.ts ADDED
@@ -0,0 +1,42 @@
1
+ import * as zod from "zod/v4";
2
+ export declare const DEFAULT_PAGE_SIZE = 10;
3
+ export declare const ORDER_SCHEMA: zod.ZodObject<{
4
+ field: zod.ZodString;
5
+ direction: zod.ZodEnum<{
6
+ ASC: "ASC";
7
+ DESC: "DESC";
8
+ }>;
9
+ }, zod.z.core.$strip>;
10
+ export type Order = zod.infer<typeof ORDER_SCHEMA>;
11
+ export declare const PAGE_QUERY_SCHEMA: zod.ZodObject<{
12
+ pageIndex: zod.ZodDefault<zod.ZodNumber>;
13
+ pageSize: zod.ZodOptional<zod.ZodNumber>;
14
+ ordering: zod.ZodOptional<zod.ZodArray<zod.ZodObject<{
15
+ field: zod.ZodString;
16
+ direction: zod.ZodEnum<{
17
+ ASC: "ASC";
18
+ DESC: "DESC";
19
+ }>;
20
+ }, zod.z.core.$strip>>>;
21
+ }, zod.z.core.$strip>;
22
+ export type PageQuery = zod.infer<typeof PAGE_QUERY_SCHEMA>;
23
+ export interface Page<T> extends Required<PageQuery> {
24
+ items: T[];
25
+ total: number;
26
+ hasMore: boolean;
27
+ }
28
+ export declare const createPageSchema: <T extends zod.ZodType>(itemSchema: T) => zod.ZodIntersection<zod.ZodObject<{
29
+ pageIndex: zod.ZodNonOptional<zod.ZodDefault<zod.ZodNumber>>;
30
+ pageSize: zod.ZodNonOptional<zod.ZodOptional<zod.ZodNumber>>;
31
+ ordering: zod.ZodNonOptional<zod.ZodOptional<zod.ZodArray<zod.ZodObject<{
32
+ field: zod.ZodString;
33
+ direction: zod.ZodEnum<{
34
+ ASC: "ASC";
35
+ DESC: "DESC";
36
+ }>;
37
+ }, zod.z.core.$strip>>>>;
38
+ }, zod.z.core.$strip>, zod.ZodObject<{
39
+ items: zod.ZodArray<T>;
40
+ total: zod.ZodNumber;
41
+ hasMore: zod.ZodBoolean;
42
+ }, zod.z.core.$strip>>;
package/cjs/Page.js ADDED
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.createPageSchema = exports.PAGE_QUERY_SCHEMA = exports.ORDER_SCHEMA = exports.DEFAULT_PAGE_SIZE = void 0;
37
+ var zod = __importStar(require("zod/v4"));
38
+ var zod_meta_1 = require("zod-meta");
39
+ var DocMetaTypes_1 = require("./DocMetaTypes");
40
+ exports.DEFAULT_PAGE_SIZE = 10;
41
+ exports.ORDER_SCHEMA = zod.object({
42
+ field: zod.string().meta((0, zod_meta_1.metaStore)([
43
+ (0, DocMetaTypes_1.docPropertyInfo)({
44
+ description: "The field name to order by",
45
+ placeholder: "createdAt",
46
+ }),
47
+ ])),
48
+ direction: zod.enum(["ASC", "DESC"]).meta((0, zod_meta_1.metaStore)([
49
+ (0, DocMetaTypes_1.docPropertyInfo)({
50
+ description: "The sort direction",
51
+ defaultValue: "ASC",
52
+ }),
53
+ ])),
54
+ });
55
+ exports.PAGE_QUERY_SCHEMA = zod.object({
56
+ pageIndex: zod
57
+ .number()
58
+ .min(0)
59
+ .default(0)
60
+ .meta((0, zod_meta_1.metaStore)([
61
+ (0, DocMetaTypes_1.docPropertyInfo)({
62
+ description: "The zero-based page index",
63
+ defaultValue: "0",
64
+ }),
65
+ ])),
66
+ pageSize: zod
67
+ .number()
68
+ .min(1)
69
+ .max(100)
70
+ .optional()
71
+ .meta((0, zod_meta_1.metaStore)([
72
+ (0, DocMetaTypes_1.docPropertyInfo)({
73
+ description: "Number of items per page (1-100)",
74
+ placeholder: "10",
75
+ }),
76
+ ])),
77
+ ordering: zod
78
+ .array(exports.ORDER_SCHEMA)
79
+ .optional()
80
+ .meta((0, zod_meta_1.metaStore)([
81
+ (0, DocMetaTypes_1.docPropertyInfo)({
82
+ description: "Array of field ordering specifications",
83
+ placeholder: '[{"field": "createdAt", "direction": "DESC"}]',
84
+ }),
85
+ ])),
86
+ });
87
+ var createPageSchema = function (itemSchema) {
88
+ return exports.PAGE_QUERY_SCHEMA.required().and(zod.object({
89
+ items: zod.array(itemSchema),
90
+ total: zod.number(),
91
+ hasMore: zod.boolean(),
92
+ }));
93
+ };
94
+ exports.createPageSchema = createPageSchema;