@calmlens/js-sdk 0.0.1 → 0.0.2

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 +28 -11
  8. package/cjs/CalmLensClient.js +138 -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 +1593 -0
  16. package/cjs/PublicApiSchemas.js +334 -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 +28 -11
  40. package/esm/CalmLensClient.js +104 -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 +1593 -0
  48. package/esm/PublicApiSchemas.js +298 -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,56 @@ 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
+ .responseOf()
95
+ .build({
96
+ id: "postUploadAsset",
97
+ method: "post",
98
+ path: "/projects/:projectId/assets",
83
99
  });
84
100
  return {
85
- postUploadAsset: postUploadAsset,
86
- getAsset: getAsset,
87
101
  getAssetsPage: getAssetsPage,
102
+ getAsset: getAsset,
103
+ getAssetChildren: getAssetChildren,
104
+ postUploadAsset: postUploadAsset,
88
105
  };
89
106
  };
90
107
  var CalmLensClient = /** @class */ (function () {
@@ -97,7 +114,7 @@ var CalmLensClient = /** @class */ (function () {
97
114
  if (!options.projectId) {
98
115
  throw new Error("Project ID is required");
99
116
  }
100
- this.options.baseUrl = (_a = this.options.baseUrl) !== null && _a !== void 0 ? _a : "https://api.calmlens.com";
117
+ this.options.baseUrl = (_a = this.options.baseUrl) !== null && _a !== void 0 ? _a : "https://api.".concat(SharedConstants_1.DOMAIN, "/v1");
101
118
  this.api = createApi(this.options);
102
119
  this.endpoints = createEndpoints(this.api);
103
120
  }
@@ -128,72 +145,116 @@ var CalmLensClient = /** @class */ (function () {
128
145
  });
129
146
  });
130
147
  };
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");
148
+ Object.defineProperty(CalmLensClient.prototype, "assets", {
149
+ get: function () {
150
+ var _this = this;
151
+ return {
152
+ /**
153
+ * List all assets for a project
154
+ * @param options - Pagination and filtering options
155
+ * @returns Promise with paginated assets
156
+ */
157
+ list: function (options) { return __awaiter(_this, void 0, void 0, function () {
158
+ var result;
159
+ return __generator(this, function (_a) {
160
+ switch (_a.label) {
161
+ case 0: return [4 /*yield*/, this.endpoints.getAssetsPage.submit({
162
+ params: {
163
+ projectId: this.options.projectId,
164
+ },
165
+ query: options,
166
+ })];
167
+ case 1:
168
+ result = _a.sent();
169
+ return [2 /*return*/, result.data];
139
170
  }
140
- if (!options.name) {
141
- throw new Error("Asset name is required");
171
+ });
172
+ }); },
173
+ /**
174
+ * Retrieve a specific asset by ID
175
+ * @param assetId - The asset ID
176
+ * @returns Promise with asset data
177
+ */
178
+ retrieve: function (assetId) { return __awaiter(_this, void 0, void 0, function () {
179
+ var result;
180
+ return __generator(this, function (_a) {
181
+ switch (_a.label) {
182
+ case 0:
183
+ if (!assetId) {
184
+ throw new Error("Asset ID is required");
185
+ }
186
+ return [4 /*yield*/, this.endpoints.getAsset.submit({
187
+ params: {
188
+ projectId: this.options.projectId,
189
+ assetId: assetId,
190
+ },
191
+ })];
192
+ case 1:
193
+ result = _a.sent();
194
+ return [2 /*return*/, result.data];
142
195
  }
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");
196
+ });
197
+ }); },
198
+ /**
199
+ * Get child assets of a parent asset
200
+ * @param assetId - The parent asset ID
201
+ * @param options - Pagination options
202
+ * @returns Promise with paginated child assets
203
+ */
204
+ listChildren: function (assetId, options) { return __awaiter(_this, void 0, void 0, function () {
205
+ var result;
206
+ return __generator(this, function (_a) {
207
+ switch (_a.label) {
208
+ case 0:
209
+ if (!assetId) {
210
+ throw new Error("Asset ID is required");
211
+ }
212
+ return [4 /*yield*/, this.endpoints.getAssetChildren.submit({
213
+ params: {
214
+ projectId: this.options.projectId,
215
+ assetId: assetId,
216
+ },
217
+ query: options,
218
+ })];
219
+ case 1:
220
+ result = _a.sent();
221
+ return [2 /*return*/, result.data];
164
222
  }
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
- };
223
+ });
224
+ }); },
225
+ /**
226
+ * Submit a new asset for processing
227
+ * @param options - Asset submission options
228
+ * @returns Promise with created asset
229
+ */
230
+ create: function (options) { return __awaiter(_this, void 0, void 0, function () {
231
+ var result;
232
+ return __generator(this, function (_a) {
233
+ switch (_a.label) {
234
+ case 0:
235
+ if (!("file" in options) && !("url" in options)) {
236
+ throw new Error("Either file content or URL is required");
237
+ }
238
+ if (!options.name) {
239
+ throw new Error("Asset name is required");
240
+ }
241
+ return [4 /*yield*/, this.endpoints.postUploadAsset.submit({
242
+ body: options,
243
+ params: {
244
+ projectId: this.options.projectId,
245
+ },
246
+ })];
247
+ case 1:
248
+ result = _a.sent();
249
+ return [2 /*return*/, result.data];
250
+ }
251
+ });
252
+ }); },
253
+ };
254
+ },
255
+ enumerable: false,
256
+ configurable: true
257
+ });
197
258
  return CalmLensClient;
198
259
  }());
199
260
  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;