@marlinjai/data-table-file-adapter-storage-brain 0.1.0 → 0.2.0
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.
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +4 -3
- package/dist/index.d.ts +4 -3
- package/dist/index.js.map +1 -1
- package/package.json +17 -9
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/adapter.ts"],"sourcesContent":["/**\n * @marlinjai/data-table-file-adapter-storage-brain\n *\n * Storage Brain file adapter for the data table package.\n * Uses the Storage Brain SDK to handle file uploads, with support for\n * OCR processing, thumbnail generation, and more.\n */\n\nexport { StorageBrainFileAdapter } from './adapter';\nexport type { StorageBrainFileAdapterConfig } from './adapter';\n","import type {\n FileStorageAdapter,\n FileUploadOptions,\n UploadedFile,\n FileMetadata,\n} from '@marlinjai/data-table-core';\nimport {\n StorageBrain,\n type StorageBrainConfig,\n type
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/adapter.ts"],"sourcesContent":["/**\n * @marlinjai/data-table-file-adapter-storage-brain\n *\n * Storage Brain file adapter for the data table package.\n * Uses the Storage Brain SDK to handle file uploads, with support for\n * OCR processing, thumbnail generation, and more.\n */\n\nexport { StorageBrainFileAdapter } from './adapter';\nexport type { StorageBrainFileAdapterConfig } from './adapter';\n","import type {\n FileStorageAdapter,\n FileUploadOptions,\n UploadedFile,\n FileMetadata,\n} from '@marlinjai/data-table-core';\nimport {\n StorageBrain,\n type StorageBrainConfig,\n type FileInfo,\n} from '@marlinjai/storage-brain-sdk';\n\n/**\n * Configuration for the Storage Brain file adapter\n */\nexport interface StorageBrainFileAdapterConfig {\n /**\n * Storage Brain API key\n */\n apiKey: string;\n\n /**\n * Base URL for the Storage Brain API (optional)\n */\n baseUrl?: string;\n\n /**\n * Default free-form processing context label for uploads (default: 'default').\n * Recognized server-side contexts include:\n * - 'invoice' - Enables OCR text extraction\n * - 'framer-site' - Enables thumbnail generation\n * - 'newsletter' - Image validation and EXIF extraction\n * - 'default' - Basic validation only\n */\n defaultContext?: string;\n\n /**\n * Request timeout in milliseconds (default: 30000)\n */\n timeout?: number;\n\n /**\n * Number of retry attempts (default: 3)\n */\n maxRetries?: number;\n}\n\n/**\n * File storage adapter implementation using Storage Brain.\n *\n * Storage Brain is an edge-native file storage service that provides:\n * - File uploads with progress tracking\n * - OCR text extraction (via Google Cloud Vision)\n * - Automatic thumbnail generation\n * - Image validation and EXIF extraction\n *\n * @example\n * ```typescript\n * const fileAdapter = new StorageBrainFileAdapter({\n * apiKey: process.env.STORAGE_BRAIN_API_KEY,\n * defaultContext: 'invoice', // Enable OCR for receipts\n * });\n *\n * // Use with DataTableProvider\n * <DataTableProvider\n * dbAdapter={dbAdapter}\n * fileAdapter={fileAdapter}\n * workspaceId=\"my-workspace\"\n * >\n * ...\n * </DataTableProvider>\n * ```\n */\nexport class StorageBrainFileAdapter implements FileStorageAdapter {\n private client: StorageBrain;\n private defaultContext: string;\n\n constructor(config: StorageBrainFileAdapterConfig) {\n const sdkConfig: StorageBrainConfig = {\n apiKey: config.apiKey,\n baseUrl: config.baseUrl,\n timeout: config.timeout,\n maxRetries: config.maxRetries,\n };\n\n this.client = new StorageBrain(sdkConfig);\n this.defaultContext = config.defaultContext ?? 'default';\n }\n\n /**\n * Upload a file to Storage Brain\n */\n async upload(\n file: File | Blob,\n options?: FileUploadOptions\n ): Promise<UploadedFile> {\n // Determine the context - allow override via options\n const context = (options?.context as string) ?? this.defaultContext;\n\n // Upload to Storage Brain\n const result = await this.client.upload(file, {\n context,\n onProgress: options?.onProgress,\n signal: options?.signal,\n tags: options?.metadata,\n });\n\n // Convert to UploadedFile format\n return this.convertToUploadedFile(result);\n }\n\n /**\n * Delete a file from Storage Brain\n */\n async delete(fileId: string): Promise<void> {\n await this.client.deleteFile(fileId);\n }\n\n /**\n * Get a URL for accessing the file\n * For Storage Brain, the URL is already public and doesn't expire\n */\n async getUrl(fileId: string): Promise<string> {\n const file = await this.client.getFile(fileId);\n return file.url;\n }\n\n /**\n * Get file metadata including OCR results\n */\n async getMetadata(fileId: string): Promise<FileMetadata> {\n const file = await this.client.getFile(fileId);\n\n return {\n id: file.id,\n mimeType: file.fileType,\n sizeBytes: file.sizeBytes,\n createdAt: new Date(file.createdAt),\n processingStatus: this.mapProcessingStatus(file.processingStatus),\n custom: {\n context: file.context,\n tags: file.tags,\n thumbnailUrls: file.metadata?.thumbnailUrls,\n ocrData: file.metadata?.ocrData,\n imageInfo: file.metadata?.imageInfo,\n },\n };\n }\n\n /**\n * Get the underlying Storage Brain client for advanced operations\n */\n getClient(): StorageBrain {\n return this.client;\n }\n\n /**\n * Convert Storage Brain FileInfo to UploadedFile format\n */\n private convertToUploadedFile(file: FileInfo): UploadedFile {\n return {\n id: file.id,\n url: file.url,\n originalName: file.originalName,\n mimeType: file.fileType,\n sizeBytes: file.sizeBytes,\n metadata: {\n context: file.context,\n processingStatus: file.processingStatus,\n tags: file.tags,\n thumbnailUrls: file.metadata?.thumbnailUrls,\n ocrData: file.metadata?.ocrData,\n imageInfo: file.metadata?.imageInfo,\n },\n };\n }\n\n /**\n * Map Storage Brain processing status to adapter format\n */\n private mapProcessingStatus(\n status: string\n ): 'pending' | 'processing' | 'completed' | 'failed' {\n switch (status) {\n case 'pending':\n return 'pending';\n case 'processing':\n return 'processing';\n case 'completed':\n return 'completed';\n case 'failed':\n return 'failed';\n default:\n return 'pending';\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACMA,+BAIO;AA+DA,IAAM,0BAAN,MAA4D;AAAA,EACzD;AAAA,EACA;AAAA,EAER,YAAY,QAAuC;AACjD,UAAM,YAAgC;AAAA,MACpC,QAAQ,OAAO;AAAA,MACf,SAAS,OAAO;AAAA,MAChB,SAAS,OAAO;AAAA,MAChB,YAAY,OAAO;AAAA,IACrB;AAEA,SAAK,SAAS,IAAI,sCAAa,SAAS;AACxC,SAAK,iBAAiB,OAAO,kBAAkB;AAAA,EACjD;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,OACJ,MACA,SACuB;AAEvB,UAAM,UAAW,SAAS,WAAsB,KAAK;AAGrD,UAAM,SAAS,MAAM,KAAK,OAAO,OAAO,MAAM;AAAA,MAC5C;AAAA,MACA,YAAY,SAAS;AAAA,MACrB,QAAQ,SAAS;AAAA,MACjB,MAAM,SAAS;AAAA,IACjB,CAAC;AAGD,WAAO,KAAK,sBAAsB,MAAM;AAAA,EAC1C;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,OAAO,QAA+B;AAC1C,UAAM,KAAK,OAAO,WAAW,MAAM;AAAA,EACrC;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,OAAO,QAAiC;AAC5C,UAAM,OAAO,MAAM,KAAK,OAAO,QAAQ,MAAM;AAC7C,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,YAAY,QAAuC;AACvD,UAAM,OAAO,MAAM,KAAK,OAAO,QAAQ,MAAM;AAE7C,WAAO;AAAA,MACL,IAAI,KAAK;AAAA,MACT,UAAU,KAAK;AAAA,MACf,WAAW,KAAK;AAAA,MAChB,WAAW,IAAI,KAAK,KAAK,SAAS;AAAA,MAClC,kBAAkB,KAAK,oBAAoB,KAAK,gBAAgB;AAAA,MAChE,QAAQ;AAAA,QACN,SAAS,KAAK;AAAA,QACd,MAAM,KAAK;AAAA,QACX,eAAe,KAAK,UAAU;AAAA,QAC9B,SAAS,KAAK,UAAU;AAAA,QACxB,WAAW,KAAK,UAAU;AAAA,MAC5B;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,YAA0B;AACxB,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKQ,sBAAsB,MAA8B;AAC1D,WAAO;AAAA,MACL,IAAI,KAAK;AAAA,MACT,KAAK,KAAK;AAAA,MACV,cAAc,KAAK;AAAA,MACnB,UAAU,KAAK;AAAA,MACf,WAAW,KAAK;AAAA,MAChB,UAAU;AAAA,QACR,SAAS,KAAK;AAAA,QACd,kBAAkB,KAAK;AAAA,QACvB,MAAM,KAAK;AAAA,QACX,eAAe,KAAK,UAAU;AAAA,QAC9B,SAAS,KAAK,UAAU;AAAA,QACxB,WAAW,KAAK,UAAU;AAAA,MAC5B;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKQ,oBACN,QACmD;AACnD,YAAQ,QAAQ;AAAA,MACd,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT;AACE,eAAO;AAAA,IACX;AAAA,EACF;AACF;","names":[]}
|
package/dist/index.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FileStorageAdapter, FileUploadOptions, UploadedFile, FileMetadata } from '@marlinjai/data-table-core';
|
|
2
|
-
import {
|
|
2
|
+
import { StorageBrain } from '@marlinjai/storage-brain-sdk';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Configuration for the Storage Brain file adapter
|
|
@@ -14,13 +14,14 @@ interface StorageBrainFileAdapterConfig {
|
|
|
14
14
|
*/
|
|
15
15
|
baseUrl?: string;
|
|
16
16
|
/**
|
|
17
|
-
* Default processing context for uploads (default: 'default')
|
|
17
|
+
* Default free-form processing context label for uploads (default: 'default').
|
|
18
|
+
* Recognized server-side contexts include:
|
|
18
19
|
* - 'invoice' - Enables OCR text extraction
|
|
19
20
|
* - 'framer-site' - Enables thumbnail generation
|
|
20
21
|
* - 'newsletter' - Image validation and EXIF extraction
|
|
21
22
|
* - 'default' - Basic validation only
|
|
22
23
|
*/
|
|
23
|
-
defaultContext?:
|
|
24
|
+
defaultContext?: string;
|
|
24
25
|
/**
|
|
25
26
|
* Request timeout in milliseconds (default: 30000)
|
|
26
27
|
*/
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FileStorageAdapter, FileUploadOptions, UploadedFile, FileMetadata } from '@marlinjai/data-table-core';
|
|
2
|
-
import {
|
|
2
|
+
import { StorageBrain } from '@marlinjai/storage-brain-sdk';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Configuration for the Storage Brain file adapter
|
|
@@ -14,13 +14,14 @@ interface StorageBrainFileAdapterConfig {
|
|
|
14
14
|
*/
|
|
15
15
|
baseUrl?: string;
|
|
16
16
|
/**
|
|
17
|
-
* Default processing context for uploads (default: 'default')
|
|
17
|
+
* Default free-form processing context label for uploads (default: 'default').
|
|
18
|
+
* Recognized server-side contexts include:
|
|
18
19
|
* - 'invoice' - Enables OCR text extraction
|
|
19
20
|
* - 'framer-site' - Enables thumbnail generation
|
|
20
21
|
* - 'newsletter' - Image validation and EXIF extraction
|
|
21
22
|
* - 'default' - Basic validation only
|
|
22
23
|
*/
|
|
23
|
-
defaultContext?:
|
|
24
|
+
defaultContext?: string;
|
|
24
25
|
/**
|
|
25
26
|
* Request timeout in milliseconds (default: 30000)
|
|
26
27
|
*/
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/adapter.ts"],"sourcesContent":["import type {\n FileStorageAdapter,\n FileUploadOptions,\n UploadedFile,\n FileMetadata,\n} from '@marlinjai/data-table-core';\nimport {\n StorageBrain,\n type StorageBrainConfig,\n type
|
|
1
|
+
{"version":3,"sources":["../src/adapter.ts"],"sourcesContent":["import type {\n FileStorageAdapter,\n FileUploadOptions,\n UploadedFile,\n FileMetadata,\n} from '@marlinjai/data-table-core';\nimport {\n StorageBrain,\n type StorageBrainConfig,\n type FileInfo,\n} from '@marlinjai/storage-brain-sdk';\n\n/**\n * Configuration for the Storage Brain file adapter\n */\nexport interface StorageBrainFileAdapterConfig {\n /**\n * Storage Brain API key\n */\n apiKey: string;\n\n /**\n * Base URL for the Storage Brain API (optional)\n */\n baseUrl?: string;\n\n /**\n * Default free-form processing context label for uploads (default: 'default').\n * Recognized server-side contexts include:\n * - 'invoice' - Enables OCR text extraction\n * - 'framer-site' - Enables thumbnail generation\n * - 'newsletter' - Image validation and EXIF extraction\n * - 'default' - Basic validation only\n */\n defaultContext?: string;\n\n /**\n * Request timeout in milliseconds (default: 30000)\n */\n timeout?: number;\n\n /**\n * Number of retry attempts (default: 3)\n */\n maxRetries?: number;\n}\n\n/**\n * File storage adapter implementation using Storage Brain.\n *\n * Storage Brain is an edge-native file storage service that provides:\n * - File uploads with progress tracking\n * - OCR text extraction (via Google Cloud Vision)\n * - Automatic thumbnail generation\n * - Image validation and EXIF extraction\n *\n * @example\n * ```typescript\n * const fileAdapter = new StorageBrainFileAdapter({\n * apiKey: process.env.STORAGE_BRAIN_API_KEY,\n * defaultContext: 'invoice', // Enable OCR for receipts\n * });\n *\n * // Use with DataTableProvider\n * <DataTableProvider\n * dbAdapter={dbAdapter}\n * fileAdapter={fileAdapter}\n * workspaceId=\"my-workspace\"\n * >\n * ...\n * </DataTableProvider>\n * ```\n */\nexport class StorageBrainFileAdapter implements FileStorageAdapter {\n private client: StorageBrain;\n private defaultContext: string;\n\n constructor(config: StorageBrainFileAdapterConfig) {\n const sdkConfig: StorageBrainConfig = {\n apiKey: config.apiKey,\n baseUrl: config.baseUrl,\n timeout: config.timeout,\n maxRetries: config.maxRetries,\n };\n\n this.client = new StorageBrain(sdkConfig);\n this.defaultContext = config.defaultContext ?? 'default';\n }\n\n /**\n * Upload a file to Storage Brain\n */\n async upload(\n file: File | Blob,\n options?: FileUploadOptions\n ): Promise<UploadedFile> {\n // Determine the context - allow override via options\n const context = (options?.context as string) ?? this.defaultContext;\n\n // Upload to Storage Brain\n const result = await this.client.upload(file, {\n context,\n onProgress: options?.onProgress,\n signal: options?.signal,\n tags: options?.metadata,\n });\n\n // Convert to UploadedFile format\n return this.convertToUploadedFile(result);\n }\n\n /**\n * Delete a file from Storage Brain\n */\n async delete(fileId: string): Promise<void> {\n await this.client.deleteFile(fileId);\n }\n\n /**\n * Get a URL for accessing the file\n * For Storage Brain, the URL is already public and doesn't expire\n */\n async getUrl(fileId: string): Promise<string> {\n const file = await this.client.getFile(fileId);\n return file.url;\n }\n\n /**\n * Get file metadata including OCR results\n */\n async getMetadata(fileId: string): Promise<FileMetadata> {\n const file = await this.client.getFile(fileId);\n\n return {\n id: file.id,\n mimeType: file.fileType,\n sizeBytes: file.sizeBytes,\n createdAt: new Date(file.createdAt),\n processingStatus: this.mapProcessingStatus(file.processingStatus),\n custom: {\n context: file.context,\n tags: file.tags,\n thumbnailUrls: file.metadata?.thumbnailUrls,\n ocrData: file.metadata?.ocrData,\n imageInfo: file.metadata?.imageInfo,\n },\n };\n }\n\n /**\n * Get the underlying Storage Brain client for advanced operations\n */\n getClient(): StorageBrain {\n return this.client;\n }\n\n /**\n * Convert Storage Brain FileInfo to UploadedFile format\n */\n private convertToUploadedFile(file: FileInfo): UploadedFile {\n return {\n id: file.id,\n url: file.url,\n originalName: file.originalName,\n mimeType: file.fileType,\n sizeBytes: file.sizeBytes,\n metadata: {\n context: file.context,\n processingStatus: file.processingStatus,\n tags: file.tags,\n thumbnailUrls: file.metadata?.thumbnailUrls,\n ocrData: file.metadata?.ocrData,\n imageInfo: file.metadata?.imageInfo,\n },\n };\n }\n\n /**\n * Map Storage Brain processing status to adapter format\n */\n private mapProcessingStatus(\n status: string\n ): 'pending' | 'processing' | 'completed' | 'failed' {\n switch (status) {\n case 'pending':\n return 'pending';\n case 'processing':\n return 'processing';\n case 'completed':\n return 'completed';\n case 'failed':\n return 'failed';\n default:\n return 'pending';\n }\n }\n}\n"],"mappings":";AAMA;AAAA,EACE;AAAA,OAGK;AA+DA,IAAM,0BAAN,MAA4D;AAAA,EACzD;AAAA,EACA;AAAA,EAER,YAAY,QAAuC;AACjD,UAAM,YAAgC;AAAA,MACpC,QAAQ,OAAO;AAAA,MACf,SAAS,OAAO;AAAA,MAChB,SAAS,OAAO;AAAA,MAChB,YAAY,OAAO;AAAA,IACrB;AAEA,SAAK,SAAS,IAAI,aAAa,SAAS;AACxC,SAAK,iBAAiB,OAAO,kBAAkB;AAAA,EACjD;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,OACJ,MACA,SACuB;AAEvB,UAAM,UAAW,SAAS,WAAsB,KAAK;AAGrD,UAAM,SAAS,MAAM,KAAK,OAAO,OAAO,MAAM;AAAA,MAC5C;AAAA,MACA,YAAY,SAAS;AAAA,MACrB,QAAQ,SAAS;AAAA,MACjB,MAAM,SAAS;AAAA,IACjB,CAAC;AAGD,WAAO,KAAK,sBAAsB,MAAM;AAAA,EAC1C;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,OAAO,QAA+B;AAC1C,UAAM,KAAK,OAAO,WAAW,MAAM;AAAA,EACrC;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,OAAO,QAAiC;AAC5C,UAAM,OAAO,MAAM,KAAK,OAAO,QAAQ,MAAM;AAC7C,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,YAAY,QAAuC;AACvD,UAAM,OAAO,MAAM,KAAK,OAAO,QAAQ,MAAM;AAE7C,WAAO;AAAA,MACL,IAAI,KAAK;AAAA,MACT,UAAU,KAAK;AAAA,MACf,WAAW,KAAK;AAAA,MAChB,WAAW,IAAI,KAAK,KAAK,SAAS;AAAA,MAClC,kBAAkB,KAAK,oBAAoB,KAAK,gBAAgB;AAAA,MAChE,QAAQ;AAAA,QACN,SAAS,KAAK;AAAA,QACd,MAAM,KAAK;AAAA,QACX,eAAe,KAAK,UAAU;AAAA,QAC9B,SAAS,KAAK,UAAU;AAAA,QACxB,WAAW,KAAK,UAAU;AAAA,MAC5B;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,YAA0B;AACxB,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKQ,sBAAsB,MAA8B;AAC1D,WAAO;AAAA,MACL,IAAI,KAAK;AAAA,MACT,KAAK,KAAK;AAAA,MACV,cAAc,KAAK;AAAA,MACnB,UAAU,KAAK;AAAA,MACf,WAAW,KAAK;AAAA,MAChB,UAAU;AAAA,QACR,SAAS,KAAK;AAAA,QACd,kBAAkB,KAAK;AAAA,QACvB,MAAM,KAAK;AAAA,QACX,eAAe,KAAK,UAAU;AAAA,QAC9B,SAAS,KAAK,UAAU;AAAA,QACxB,WAAW,KAAK,UAAU;AAAA,MAC5B;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKQ,oBACN,QACmD;AACnD,YAAQ,QAAQ;AAAA,MACd,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT;AACE,eAAO;AAAA,IACX;AAAA,EACF;AACF;","names":[]}
|
package/package.json
CHANGED
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@marlinjai/data-table-file-adapter-storage-brain",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"repository": {
|
|
5
|
+
"type": "git",
|
|
6
|
+
"url": "https://github.com/marlinjai/marlinjai-data-table.git",
|
|
7
|
+
"directory": "packages/file-adapter-storage-brain"
|
|
8
|
+
},
|
|
4
9
|
"description": "Storage Brain file adapter for @marlinjai/data-table",
|
|
10
|
+
"publishConfig": {
|
|
11
|
+
"access": "public"
|
|
12
|
+
},
|
|
5
13
|
"type": "module",
|
|
6
14
|
"main": "./dist/index.cjs",
|
|
7
15
|
"module": "./dist/index.js",
|
|
@@ -21,20 +29,20 @@
|
|
|
21
29
|
"files": [
|
|
22
30
|
"dist"
|
|
23
31
|
],
|
|
24
|
-
"scripts": {
|
|
25
|
-
"build": "tsup",
|
|
26
|
-
"dev": "tsup --watch",
|
|
27
|
-
"typecheck": "tsc --noEmit"
|
|
28
|
-
},
|
|
29
32
|
"dependencies": {
|
|
30
33
|
"@marlinjai/data-table-core": "*",
|
|
31
|
-
"@marlinjai/storage-brain-sdk": "
|
|
34
|
+
"@marlinjai/storage-brain-sdk": "^0.9.0"
|
|
32
35
|
},
|
|
33
36
|
"devDependencies": {
|
|
34
37
|
"tsup": "^8.0.1",
|
|
35
38
|
"typescript": "^5.3.3"
|
|
36
39
|
},
|
|
37
40
|
"peerDependencies": {
|
|
38
|
-
"@marlinjai/storage-brain-sdk": ">=0.
|
|
41
|
+
"@marlinjai/storage-brain-sdk": ">=0.9.0"
|
|
42
|
+
},
|
|
43
|
+
"scripts": {
|
|
44
|
+
"build": "tsup",
|
|
45
|
+
"dev": "tsup --watch",
|
|
46
|
+
"typecheck": "tsc --noEmit"
|
|
39
47
|
}
|
|
40
|
-
}
|
|
48
|
+
}
|