@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
@@ -0,0 +1,31 @@
1
+ import * as zod from "zod/v4";
2
+ export declare const API_KEY_STATUS_SCHEMA: zod.ZodEnum<{
3
+ active: "active";
4
+ revoked: "revoked";
5
+ expired: "expired";
6
+ }>;
7
+ export type ApiKeyStatus = zod.infer<typeof API_KEY_STATUS_SCHEMA>;
8
+ export declare const API_KEY_SCHEMA: zod.ZodObject<{
9
+ id: zod.ZodString;
10
+ projectId: zod.ZodOptional<zod.ZodNullable<zod.ZodString>>;
11
+ userId: zod.ZodOptional<zod.ZodNullable<zod.ZodPipe<zod.ZodString, zod.ZodTransform<string, string>>>>;
12
+ createdAt: zod.ZodNumber;
13
+ updatedAt: zod.ZodOptional<zod.ZodNumber>;
14
+ name: zod.ZodPipe<zod.ZodString, zod.ZodTransform<string, string>>;
15
+ description: zod.ZodOptional<zod.ZodNullable<zod.ZodPipe<zod.ZodString, zod.ZodTransform<string, string>>>>;
16
+ keyHash: zod.ZodPipe<zod.ZodString, zod.ZodTransform<string, string>>;
17
+ keyPrefix: zod.ZodPipe<zod.ZodString, zod.ZodTransform<string, string>>;
18
+ roles: zod.ZodOptional<zod.ZodNullable<zod.ZodArray<zod.ZodEnum<{
19
+ "system:super-admin": "system:super-admin";
20
+ "system:banned": "system:banned";
21
+ "assets:view-all": "assets:view-all";
22
+ }>>>>;
23
+ status: zod.ZodEnum<{
24
+ active: "active";
25
+ revoked: "revoked";
26
+ expired: "expired";
27
+ }>;
28
+ expiresAt: zod.ZodOptional<zod.ZodNullable<zod.ZodNumber>>;
29
+ lastUsedAt: zod.ZodOptional<zod.ZodNullable<zod.ZodNumber>>;
30
+ }, zod.z.core.$strip>;
31
+ export type ApiKey = zod.infer<typeof API_KEY_SCHEMA>;
package/cjs/ApiKey.js ADDED
@@ -0,0 +1,59 @@
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.API_KEY_SCHEMA = exports.API_KEY_STATUS_SCHEMA = void 0;
37
+ var zod = __importStar(require("zod/v4"));
38
+ var Roles_1 = require("./Roles");
39
+ var ZodUtils_1 = require("./ZodUtils");
40
+ exports.API_KEY_STATUS_SCHEMA = zod.enum(["active", "revoked", "expired"]);
41
+ exports.API_KEY_SCHEMA = zod.object({
42
+ id: (0, ZodUtils_1.primaryUuidField)(),
43
+ projectId: (0, ZodUtils_1.uuidField)().nullish(),
44
+ userId: (0, ZodUtils_1.saneStringField)().nullish(),
45
+ createdAt: (0, ZodUtils_1.createdAtField)(),
46
+ updatedAt: (0, ZodUtils_1.updatedAtField)(),
47
+ name: (0, ZodUtils_1.saneStringField)({
48
+ type: "medium",
49
+ }),
50
+ description: (0, ZodUtils_1.saneStringField)({
51
+ type: "large",
52
+ }).nullish(),
53
+ keyHash: (0, ZodUtils_1.saneStringField)(), // Store hashed version of the key for security
54
+ keyPrefix: (0, ZodUtils_1.saneStringField)(), // Store first few characters for identification
55
+ roles: zod.array(Roles_1.ROLE_SCHEMA).nullish(),
56
+ status: exports.API_KEY_STATUS_SCHEMA,
57
+ expiresAt: zod.number().nullish(), // Unix timestamp
58
+ lastUsedAt: zod.number().nullish(), // Unix timestamp
59
+ });
package/cjs/Asset.d.ts CHANGED
@@ -7,18 +7,56 @@ export declare const ASSET_STATUS_SCHEMA: zod.ZodEnum<{
7
7
  }>;
8
8
  export type AssetStatus = zod.infer<typeof ASSET_STATUS_SCHEMA>;
9
9
  export declare const ASSET_TYPE_SCHEMA: zod.ZodEnum<{
10
+ file: "file";
10
11
  image: "image";
11
12
  video: "video";
12
13
  audio: "audio";
13
- document: "document";
14
+ "plaintext-document": "plaintext-document";
15
+ "multimedia-document": "multimedia-document";
14
16
  website: "website";
15
17
  }>;
16
18
  export type AssetType = zod.infer<typeof ASSET_TYPE_SCHEMA>;
19
+ /**
20
+ * MIME types that are considered multimedia documents
21
+ * (documents that contain both text and embedded images/media)
22
+ */
23
+ export declare const MULTIMEDIA_DOCUMENT_MIME_TYPES: readonly ["application/pdf", "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "application/msword", "application/rtf", "application/vnd.oasis.opendocument.text"];
24
+ /**
25
+ * Checks if a MIME type is a multimedia document
26
+ */
27
+ export declare const isMultimediaDocumentMimeType: (mimeType: string) => boolean;
17
28
  export declare const ASSET_VISIBILITY_SCHEMA: zod.ZodEnum<{
18
29
  public: "public";
19
30
  private: "private";
20
31
  }>;
21
32
  export type AssetVisibility = zod.infer<typeof ASSET_VISIBILITY_SCHEMA>;
33
+ export interface CheckSums {
34
+ readonly md5?: string;
35
+ readonly sha1?: string;
36
+ readonly sha256?: string;
37
+ readonly sha384?: string;
38
+ readonly sha512?: string;
39
+ }
40
+ export declare const CHECKSUMS_SCHEMA: zod.ZodObject<{
41
+ md5: zod.ZodOptional<zod.ZodNullable<zod.ZodString>>;
42
+ sha1: zod.ZodOptional<zod.ZodNullable<zod.ZodString>>;
43
+ sha256: zod.ZodOptional<zod.ZodNullable<zod.ZodString>>;
44
+ sha384: zod.ZodOptional<zod.ZodNullable<zod.ZodString>>;
45
+ sha512: zod.ZodOptional<zod.ZodNullable<zod.ZodString>>;
46
+ }, zod.z.core.$strip>;
47
+ export declare const IMAGE_DATA_SCHEMA: zod.ZodObject<{
48
+ perceptualHash: zod.ZodOptional<zod.ZodNullable<zod.ZodString>>;
49
+ }, zod.z.core.$strip>;
50
+ export type ImageData = zod.infer<typeof IMAGE_DATA_SCHEMA>;
51
+ export declare const DOCUMENT_DATA_SCHEMA: zod.ZodObject<{}, zod.z.core.$strip>;
52
+ export type DocumentData = zod.infer<typeof DOCUMENT_DATA_SCHEMA>;
53
+ export declare const PROCESSING_OPTIONS_SCHEMA: zod.ZodOptional<zod.ZodNullable<zod.ZodObject<{
54
+ keepAfterProcessing: zod.ZodOptional<zod.ZodNullable<zod.ZodBoolean>>;
55
+ image: zod.ZodOptional<zod.ZodNullable<zod.ZodObject<{
56
+ ocrEnabled: zod.ZodOptional<zod.ZodNullable<zod.ZodBoolean>>;
57
+ }, zod.z.core.$strip>>>;
58
+ }, zod.z.core.$strip>>>;
59
+ export type ProcessingOptions = zod.infer<typeof PROCESSING_OPTIONS_SCHEMA>;
22
60
  export declare const ASSET_SCHEMA: zod.ZodObject<{
23
61
  id: zod.ZodString;
24
62
  projectId: zod.ZodString;
@@ -27,6 +65,17 @@ export declare const ASSET_SCHEMA: zod.ZodObject<{
27
65
  parentId: zod.ZodOptional<zod.ZodNullable<zod.ZodString>>;
28
66
  createdAt: zod.ZodNumber;
29
67
  updatedAt: zod.ZodOptional<zod.ZodNumber>;
68
+ checksums: zod.ZodOptional<zod.ZodNullable<zod.ZodObject<{
69
+ md5: zod.ZodOptional<zod.ZodNullable<zod.ZodString>>;
70
+ sha1: zod.ZodOptional<zod.ZodNullable<zod.ZodString>>;
71
+ sha256: zod.ZodOptional<zod.ZodNullable<zod.ZodString>>;
72
+ sha384: zod.ZodOptional<zod.ZodNullable<zod.ZodString>>;
73
+ sha512: zod.ZodOptional<zod.ZodNullable<zod.ZodString>>;
74
+ }, zod.z.core.$strip>>>;
75
+ imageData: zod.ZodOptional<zod.ZodNullable<zod.ZodObject<{
76
+ perceptualHash: zod.ZodOptional<zod.ZodNullable<zod.ZodString>>;
77
+ }, zod.z.core.$strip>>>;
78
+ documentData: zod.ZodOptional<zod.ZodNullable<zod.ZodObject<{}, zod.z.core.$strip>>>;
30
79
  name: zod.ZodPipe<zod.ZodString, zod.ZodTransform<string, string>>;
31
80
  fileFormat: zod.ZodOptional<zod.ZodNullable<zod.ZodPipe<zod.ZodString, zod.ZodTransform<string, string>>>>;
32
81
  fileExtension: zod.ZodOptional<zod.ZodNullable<zod.ZodPipe<zod.ZodString, zod.ZodTransform<string, string>>>>;
@@ -37,10 +86,12 @@ export declare const ASSET_SCHEMA: zod.ZodObject<{
37
86
  storageId: zod.ZodOptional<zod.ZodNullable<zod.ZodPipe<zod.ZodString, zod.ZodTransform<string, string>>>>;
38
87
  averageColor: zod.ZodOptional<zod.ZodNullable<zod.ZodPipe<zod.ZodString, zod.ZodTransform<string, string>>>>;
39
88
  type: zod.ZodEnum<{
89
+ file: "file";
40
90
  image: "image";
41
91
  video: "video";
42
92
  audio: "audio";
43
- document: "document";
93
+ "plaintext-document": "plaintext-document";
94
+ "multimedia-document": "multimedia-document";
44
95
  website: "website";
45
96
  }>;
46
97
  previewHash: zod.ZodOptional<zod.ZodNullable<zod.ZodPipe<zod.ZodString, zod.ZodTransform<string, string>>>>;
@@ -100,10 +151,39 @@ export declare const ASSET_SCHEMA: zod.ZodObject<{
100
151
  approved: "approved";
101
152
  rejected: "rejected";
102
153
  }>;
103
- keepAfterProcessing: zod.ZodOptional<zod.ZodNullable<zod.ZodBoolean>>;
154
+ extractedTextId: zod.ZodOptional<zod.ZodNullable<zod.ZodPipe<zod.ZodString, zod.ZodTransform<string, string>>>>;
155
+ processingOptions: zod.ZodOptional<zod.ZodNullable<zod.ZodObject<{
156
+ keepAfterProcessing: zod.ZodOptional<zod.ZodNullable<zod.ZodBoolean>>;
157
+ image: zod.ZodOptional<zod.ZodNullable<zod.ZodObject<{
158
+ ocrEnabled: zod.ZodOptional<zod.ZodNullable<zod.ZodBoolean>>;
159
+ }, zod.z.core.$strip>>>;
160
+ }, zod.z.core.$strip>>>;
104
161
  visibility: zod.ZodOptional<zod.ZodNullable<zod.ZodEnum<{
105
162
  public: "public";
106
163
  private: "private";
107
164
  }>>>;
165
+ storageDeletedAt: zod.ZodOptional<zod.ZodNullable<zod.ZodNumber>>;
166
+ classificationWorkflow: zod.ZodOptional<zod.ZodNullable<zod.ZodObject<{
167
+ id: zod.ZodString;
168
+ name: zod.ZodString;
169
+ steps: zod.ZodArray<zod.ZodObject<{
170
+ id: zod.ZodString;
171
+ label: zod.ZodString;
172
+ status: zod.ZodEnum<{
173
+ error: "error";
174
+ pending: "pending";
175
+ in_progress: "in_progress";
176
+ completed: "completed";
177
+ skipped: "skipped";
178
+ }>;
179
+ optional: zod.ZodOptional<zod.ZodBoolean>;
180
+ startedAt: zod.ZodOptional<zod.ZodNullable<zod.ZodString>>;
181
+ completedAt: zod.ZodOptional<zod.ZodNullable<zod.ZodString>>;
182
+ error: zod.ZodOptional<zod.ZodNullable<zod.ZodString>>;
183
+ }, zod.z.core.$strip>>;
184
+ createdAt: zod.ZodString;
185
+ updatedAt: zod.ZodString;
186
+ }, zod.z.core.$strip>>>;
108
187
  }, zod.z.core.$strip>;
109
188
  export type Asset = zod.infer<typeof ASSET_SCHEMA>;
189
+ export type AssetInput = Omit<zod.input<typeof ASSET_SCHEMA>, "createdAt" | "status">;
package/cjs/Asset.js CHANGED
@@ -1,39 +1,209 @@
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
- exports.ASSET_SCHEMA = exports.ASSET_VISIBILITY_SCHEMA = exports.ASSET_TYPE_SCHEMA = exports.ASSET_STATUS_SCHEMA = void 0;
4
- var zod = require("zod/v4");
36
+ exports.ASSET_SCHEMA = exports.PROCESSING_OPTIONS_SCHEMA = exports.DOCUMENT_DATA_SCHEMA = exports.IMAGE_DATA_SCHEMA = exports.CHECKSUMS_SCHEMA = exports.ASSET_VISIBILITY_SCHEMA = exports.isMultimediaDocumentMimeType = exports.MULTIMEDIA_DOCUMENT_MIME_TYPES = exports.ASSET_TYPE_SCHEMA = exports.ASSET_STATUS_SCHEMA = void 0;
37
+ var zod = __importStar(require("zod/v4"));
38
+ var zod_meta_1 = require("zod-meta");
5
39
  var Classification_1 = require("./Classification");
6
- var SchemaUtils_1 = require("./SchemaUtils");
40
+ var DocMetaTypes_1 = require("./DocMetaTypes");
41
+ var Workflow_1 = require("./Workflow");
42
+ var ZodUtils_1 = require("./ZodUtils");
7
43
  exports.ASSET_STATUS_SCHEMA = zod.enum(["pending", "approved", "rejected", "error"]);
8
- exports.ASSET_TYPE_SCHEMA = zod.enum(["image", "video", "audio", "document", "website"]);
44
+ exports.ASSET_TYPE_SCHEMA = zod.enum([
45
+ "image",
46
+ "video",
47
+ "audio",
48
+ "plaintext-document",
49
+ "multimedia-document",
50
+ "website",
51
+ "file",
52
+ ]);
53
+ /**
54
+ * MIME types that are considered multimedia documents
55
+ * (documents that contain both text and embedded images/media)
56
+ */
57
+ exports.MULTIMEDIA_DOCUMENT_MIME_TYPES = [
58
+ "application/pdf",
59
+ "application/vnd.openxmlformats-officedocument.wordprocessingml.document", // DOCX
60
+ "application/msword", // DOC
61
+ "application/rtf", // RTF
62
+ "application/vnd.oasis.opendocument.text", // ODT
63
+ ];
64
+ /**
65
+ * Checks if a MIME type is a multimedia document
66
+ */
67
+ var isMultimediaDocumentMimeType = function (mimeType) {
68
+ return exports.MULTIMEDIA_DOCUMENT_MIME_TYPES.includes(mimeType);
69
+ };
70
+ exports.isMultimediaDocumentMimeType = isMultimediaDocumentMimeType;
9
71
  exports.ASSET_VISIBILITY_SCHEMA = zod.enum(["public", "private"]);
10
- exports.ASSET_SCHEMA = zod.object({
11
- id: (0, SchemaUtils_1.primaryUuidField)(),
12
- projectId: (0, SchemaUtils_1.uuidField)(),
72
+ exports.CHECKSUMS_SCHEMA = zod.object({
73
+ md5: zod.string().nullish(),
74
+ sha1: zod.string().nullish(),
75
+ sha256: zod.string().nullish(),
76
+ sha384: zod.string().nullish(),
77
+ sha512: zod.string().nullish(),
78
+ });
79
+ exports.IMAGE_DATA_SCHEMA = zod.object({
80
+ perceptualHash: zod.string().nullish(),
81
+ });
82
+ exports.DOCUMENT_DATA_SCHEMA = zod.object({});
83
+ exports.PROCESSING_OPTIONS_SCHEMA = zod
84
+ .object({
85
+ keepAfterProcessing: zod
86
+ .boolean()
87
+ .nullish()
88
+ .meta((0, zod_meta_1.metaStore)([
89
+ (0, DocMetaTypes_1.docPropertyInfo)({
90
+ description: "Whether to keep the asset after processing",
91
+ defaultValue: false,
92
+ }),
93
+ ])),
94
+ image: zod
95
+ .object({
96
+ ocrEnabled: zod
97
+ .boolean()
98
+ .nullish()
99
+ .meta((0, zod_meta_1.metaStore)([
100
+ (0, DocMetaTypes_1.docPropertyInfo)({
101
+ description: "Whether to perform OCR on image assets or images extracted from multimedia documents and websites",
102
+ defaultValue: false,
103
+ }),
104
+ ])),
105
+ })
106
+ .nullish(),
107
+ })
108
+ .nullish();
109
+ exports.ASSET_SCHEMA = zod
110
+ .object({
111
+ id: (0, ZodUtils_1.primaryUuidField)(),
112
+ projectId: (0, ZodUtils_1.uuidField)(),
13
113
  sizeInBytes: zod.number().nullish(),
14
- userId: (0, SchemaUtils_1.saneStringField)().nullish(),
15
- parentId: (0, SchemaUtils_1.uuidField)().nullish(),
16
- createdAt: (0, SchemaUtils_1.createdAtField)(),
17
- updatedAt: (0, SchemaUtils_1.updatedAtField)(),
18
- name: (0, SchemaUtils_1.saneStringField)({
114
+ userId: (0, ZodUtils_1.saneStringField)().nullish(),
115
+ parentId: (0, ZodUtils_1.uuidField)().nullish(),
116
+ createdAt: (0, ZodUtils_1.createdAtField)(),
117
+ updatedAt: (0, ZodUtils_1.updatedAtField)(),
118
+ checksums: exports.CHECKSUMS_SCHEMA.nullish(),
119
+ imageData: exports.IMAGE_DATA_SCHEMA.nullish(),
120
+ documentData: exports.DOCUMENT_DATA_SCHEMA.nullish(),
121
+ name: (0, ZodUtils_1.saneStringField)({
19
122
  type: "large",
20
- }),
21
- fileFormat: (0, SchemaUtils_1.saneStringField)().nullish(),
22
- fileExtension: (0, SchemaUtils_1.saneStringField)().nullish(),
23
- description: (0, SchemaUtils_1.saneStringField)({
123
+ }).meta((0, zod_meta_1.metaStore)([
124
+ (0, DocMetaTypes_1.docPropertyInfo)({
125
+ description: "Name of the asset",
126
+ placeholder: "my-image.jpg",
127
+ }),
128
+ ])),
129
+ fileFormat: (0, ZodUtils_1.saneStringField)().nullish(),
130
+ fileExtension: (0, ZodUtils_1.saneStringField)().nullish(),
131
+ description: (0, ZodUtils_1.saneStringField)({
24
132
  type: "large",
25
- }).nullish(),
26
- externalId: (0, SchemaUtils_1.saneStringField)().nullish(),
27
- externalUrl: zod.string().url().nullish(),
28
- previewImageId: (0, SchemaUtils_1.saneStringField)().nullish(),
29
- storageId: (0, SchemaUtils_1.saneStringField)().nullish(),
30
- averageColor: (0, SchemaUtils_1.saneStringField)().nullish(),
133
+ })
134
+ .nullish()
135
+ .meta((0, zod_meta_1.metaStore)([
136
+ (0, DocMetaTypes_1.docPropertyInfo)({
137
+ description: "Optional description of the asset",
138
+ placeholder: "A beautiful landscape image",
139
+ }),
140
+ ])),
141
+ externalId: (0, ZodUtils_1.saneStringField)()
142
+ .nullish()
143
+ .meta((0, zod_meta_1.metaStore)([
144
+ (0, DocMetaTypes_1.docPropertyInfo)({
145
+ description: "External identifier for the asset",
146
+ placeholder: "ext-12345",
147
+ }),
148
+ ])),
149
+ externalUrl: zod
150
+ .string()
151
+ .url()
152
+ .nullish()
153
+ .meta((0, zod_meta_1.metaStore)([
154
+ (0, DocMetaTypes_1.docPropertyInfo)({
155
+ description: "External URL associated with the asset",
156
+ placeholder: "https://example.com/asset",
157
+ }),
158
+ ])),
159
+ previewImageId: (0, ZodUtils_1.saneStringField)().nullish(),
160
+ storageId: (0, ZodUtils_1.saneStringField)().nullish(),
161
+ averageColor: (0, ZodUtils_1.saneStringField)().nullish(),
31
162
  type: exports.ASSET_TYPE_SCHEMA,
32
- previewHash: (0, SchemaUtils_1.saneStringField)().nullish(),
33
- metadata: zod.any().nullish(),
34
- tags: zod.array((0, SchemaUtils_1.saneStringField)()).nullish(),
163
+ previewHash: (0, ZodUtils_1.saneStringField)().nullish(),
164
+ metadata: zod
165
+ .any()
166
+ .nullish()
167
+ .meta((0, zod_meta_1.metaStore)([
168
+ (0, DocMetaTypes_1.docPropertyInfo)({
169
+ description: "Custom metadata for the asset",
170
+ }),
171
+ ])),
172
+ tags: zod
173
+ .array((0, ZodUtils_1.saneStringField)())
174
+ .nullish()
175
+ .meta((0, zod_meta_1.metaStore)([
176
+ (0, DocMetaTypes_1.docPropertyInfo)({
177
+ description: "Array of tags for the asset",
178
+ placeholder: '["tag1", "tag2"]',
179
+ }),
180
+ ])),
35
181
  report: Classification_1.CLASSIFICATION_REPORT_SCHEMA.nullish(),
36
182
  status: exports.ASSET_STATUS_SCHEMA,
37
- keepAfterProcessing: zod.boolean().nullish(),
38
- visibility: exports.ASSET_VISIBILITY_SCHEMA.nullish(),
39
- });
183
+ extractedTextId: (0, ZodUtils_1.saneStringField)()
184
+ .nullish()
185
+ .meta((0, zod_meta_1.metaStore)([
186
+ (0, DocMetaTypes_1.docPropertyInfo)({
187
+ description: "ID of the extracted text content stored in R2 (e.g., from OCR or text extraction)",
188
+ }),
189
+ ])),
190
+ processingOptions: exports.PROCESSING_OPTIONS_SCHEMA,
191
+ visibility: exports.ASSET_VISIBILITY_SCHEMA.nullish().meta((0, zod_meta_1.metaStore)([
192
+ (0, DocMetaTypes_1.docPropertyInfo)({
193
+ description: "Visibility level of the asset",
194
+ defaultValue: "private",
195
+ }),
196
+ ])),
197
+ storageDeletedAt: zod.number().nullish(),
198
+ classificationWorkflow: Workflow_1.WORKFLOW_SCHEMA.nullish().meta((0, zod_meta_1.metaStore)([
199
+ (0, DocMetaTypes_1.docPropertyInfo)({
200
+ description: "Workflow tracking the classification process for this asset",
201
+ }),
202
+ ])),
203
+ })
204
+ .meta((0, zod_meta_1.metaStore)([
205
+ (0, DocMetaTypes_1.docPropertyInfo)({
206
+ description: "An asset in the system",
207
+ namedType: "Asset",
208
+ }),
209
+ ]));
package/cjs/Auth.d.ts ADDED
@@ -0,0 +1,95 @@
1
+ import type { ApiKey } from "./ApiKey";
2
+ import type { Role } from "./Roles";
3
+ import type { User } from "./User";
4
+ export interface UserToken {
5
+ /**
6
+ * Always set to https://securetoken.google.com/GOOGLE_CLOUD_PROJECT
7
+ */
8
+ iss: string;
9
+ /**
10
+ * Always set to GOOGLE_CLOUD_PROJECT
11
+ */
12
+ aud: string;
13
+ /**
14
+ * The user's unique ID
15
+ */
16
+ sub: string;
17
+ /**
18
+ * The token issue time, in seconds since epoch
19
+ */
20
+ iat: number;
21
+ /**
22
+ * The token expiry time, normally 'iat' + 3600
23
+ */
24
+ exp: number;
25
+ /**
26
+ * The user's unique ID. Must be equal to 'sub'
27
+ */
28
+ user_id: string;
29
+ /**
30
+ * The time the user authenticated, normally 'iat'
31
+ */
32
+ auth_time: number;
33
+ /**
34
+ * The sign in provider, only set when the provider is 'anonymous'
35
+ */
36
+ provider_id?: "anonymous";
37
+ /**
38
+ * The user's primary email
39
+ */
40
+ email?: string;
41
+ /**
42
+ * The user's email verification status
43
+ */
44
+ email_verified?: boolean;
45
+ /**
46
+ * The user's primary phone number
47
+ */
48
+ phone_number?: string;
49
+ /**
50
+ * The user's display name
51
+ */
52
+ name?: string;
53
+ /**
54
+ * The user's profile photo URL
55
+ */
56
+ picture?: string;
57
+ /**
58
+ * Information on all identities linked to this user
59
+ */
60
+ firebase: any;
61
+ /**
62
+ * Custom claims set by the developer
63
+ */
64
+ [claim: string]: unknown;
65
+ /**
66
+ * @deprecated use `sub` instead
67
+ */
68
+ uid?: never;
69
+ }
70
+ export interface BaseAuth {
71
+ type: "apiKey" | "user";
72
+ roles: Role[];
73
+ }
74
+ export interface ApiKeyAuth extends BaseAuth {
75
+ type: "apiKey";
76
+ apiKey: ApiKey;
77
+ userId: string | undefined;
78
+ originalUserId: string | undefined;
79
+ getUser: () => Promise<User | undefined>;
80
+ getOriginalUser: () => Promise<User | undefined>;
81
+ }
82
+ export interface UserAuth extends BaseAuth {
83
+ type: "user";
84
+ token: Token;
85
+ idTokenExpiresAt: number;
86
+ provider: string;
87
+ userId: string;
88
+ originalUserId: string;
89
+ getUser: () => Promise<User>;
90
+ getOriginalUser: () => Promise<User>;
91
+ }
92
+ export type Auth = ApiKeyAuth | UserAuth;
93
+ export interface Token extends UserToken {
94
+ roles: Role[];
95
+ }
package/cjs/Auth.js ADDED
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,4 +1,5 @@
1
1
  import type { Asset } from "./Asset";
2
+ import type { GetAssetChildrenQuery, GetAssetChildrenResponse, GetAssetResponse, GetAssetsPageQuery, GetAssetsPageResponse } from "./PublicApiSchemas";
2
3
  import type { SubmitAssetOptions } from "./SharedTypes";
3
4
  import type { CalmLensClientOptions } from "./CalmLensTypes";
4
5
  export default class CalmLensClient {
@@ -27,15 +28,40 @@ export default class CalmLensClient {
27
28
  */
28
29
  static verifyWebhookSignature(payload: string | object, signatureHex: string, secret: string): Promise<boolean>;
29
30
  constructor(options: CalmLensClientOptions);
30
- submitAsset(options: SubmitAssetOptions): Promise<Asset>;
31
- getAsset(assetId: string): Promise<Asset>;
32
- listAssets(options?: {
33
- pageIndex?: number;
34
- pageSize?: number;
35
- }): Promise<{
36
- items: Asset[];
37
- total: number;
38
- pageIndex: number;
39
- pageSize: number;
40
- }>;
31
+ get assets(): {
32
+ /**
33
+ * List all assets for a project
34
+ * @param options - Pagination and filtering options
35
+ * @returns Promise with paginated assets
36
+ */
37
+ list: (options: GetAssetsPageQuery) => Promise<GetAssetsPageResponse>;
38
+ /**
39
+ * Retrieve a specific asset by ID
40
+ * @param assetId - The asset ID
41
+ * @returns Promise with asset data
42
+ */
43
+ retrieve: (assetId: string) => Promise<GetAssetResponse>;
44
+ /**
45
+ * Get child assets of a parent asset
46
+ * @param assetId - The parent asset ID
47
+ * @param options - Pagination options
48
+ * @returns Promise with paginated child assets
49
+ */
50
+ listChildren: (assetId: string, options: GetAssetChildrenQuery) => Promise<GetAssetChildrenResponse>;
51
+ /**
52
+ * Submit a new asset for processing (queued asynchronously)
53
+ * The asset will be queued for classification and returned immediately.
54
+ * @param options - Asset submission options
55
+ * @returns Promise with created asset
56
+ */
57
+ create: (options: SubmitAssetOptions) => Promise<Asset>;
58
+ /**
59
+ * Submit a new asset and analyze it synchronously
60
+ * The asset will be classified immediately before the response is returned.
61
+ * This may take longer but ensures the asset is fully processed.
62
+ * @param options - Asset submission options
63
+ * @returns Promise with created and analyzed asset
64
+ */
65
+ analyze: (options: SubmitAssetOptions) => Promise<Asset>;
66
+ };
41
67
  }