deeplake 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/browser/browser/client.d.ts +33 -0
- package/dist/browser/browser/client.d.ts.map +1 -0
- package/dist/browser/browser/client.js +312 -0
- package/dist/browser/browser/client.js.map +1 -0
- package/dist/browser/browser/index.d.ts +15 -0
- package/dist/browser/browser/index.d.ts.map +1 -0
- package/dist/browser/browser/index.js +11 -0
- package/dist/browser/browser/index.js.map +1 -0
- package/dist/browser/browser/wasm.d.ts +8 -0
- package/dist/browser/browser/wasm.d.ts.map +1 -0
- package/dist/browser/browser/wasm.js +53 -0
- package/dist/browser/browser/wasm.js.map +1 -0
- package/dist/browser/shared/api.d.ts +9 -0
- package/dist/browser/shared/api.d.ts.map +1 -0
- package/dist/browser/shared/api.js +67 -0
- package/dist/browser/shared/api.js.map +1 -0
- package/dist/browser/shared/credentials.d.ts +4 -0
- package/dist/browser/shared/credentials.d.ts.map +1 -0
- package/dist/browser/shared/credentials.js +24 -0
- package/dist/browser/shared/credentials.js.map +1 -0
- package/dist/browser/shared/database.d.ts +26 -0
- package/dist/browser/shared/database.d.ts.map +1 -0
- package/dist/browser/shared/database.js +67 -0
- package/dist/browser/shared/database.js.map +1 -0
- package/dist/browser/shared/dlref.d.ts +22 -0
- package/dist/browser/shared/dlref.d.ts.map +1 -0
- package/dist/browser/shared/dlref.js +48 -0
- package/dist/browser/shared/dlref.js.map +1 -0
- package/dist/browser/shared/errors.d.ts +22 -0
- package/dist/browser/shared/errors.d.ts.map +1 -0
- package/dist/browser/shared/errors.js +43 -0
- package/dist/browser/shared/errors.js.map +1 -0
- package/dist/browser/shared/schema.d.ts +7 -0
- package/dist/browser/shared/schema.d.ts.map +1 -0
- package/dist/browser/shared/schema.js +151 -0
- package/dist/browser/shared/schema.js.map +1 -0
- package/dist/browser/shared/token.d.ts +4 -0
- package/dist/browser/shared/token.d.ts.map +1 -0
- package/dist/browser/shared/token.js +69 -0
- package/dist/browser/shared/token.js.map +1 -0
- package/dist/browser/shared/types.d.ts +33 -0
- package/dist/browser/shared/types.d.ts.map +1 -0
- package/dist/browser/shared/types.js +2 -0
- package/dist/browser/shared/types.js.map +1 -0
- package/dist/browser/shared/wasm-common.d.ts +39 -0
- package/dist/browser/shared/wasm-common.d.ts.map +1 -0
- package/dist/browser/shared/wasm-common.js +287 -0
- package/dist/browser/shared/wasm-common.js.map +1 -0
- package/dist/node/node/client.d.ts +49 -0
- package/dist/node/node/client.d.ts.map +1 -0
- package/dist/node/node/client.js +670 -0
- package/dist/node/node/client.js.map +1 -0
- package/dist/node/node/formats/coco.d.ts +24 -0
- package/dist/node/node/formats/coco.d.ts.map +1 -0
- package/dist/node/node/formats/coco.js +342 -0
- package/dist/node/node/formats/coco.js.map +1 -0
- package/dist/node/node/formats/coco_panoptic.d.ts +19 -0
- package/dist/node/node/formats/coco_panoptic.d.ts.map +1 -0
- package/dist/node/node/formats/coco_panoptic.js +125 -0
- package/dist/node/node/formats/coco_panoptic.js.map +1 -0
- package/dist/node/node/formats/index.d.ts +7 -0
- package/dist/node/node/formats/index.d.ts.map +1 -0
- package/dist/node/node/formats/index.js +12 -0
- package/dist/node/node/formats/index.js.map +1 -0
- package/dist/node/node/formats/lerobot.d.ts +42 -0
- package/dist/node/node/formats/lerobot.d.ts.map +1 -0
- package/dist/node/node/formats/lerobot.js +351 -0
- package/dist/node/node/formats/lerobot.js.map +1 -0
- package/dist/node/node/index.d.ts +19 -0
- package/dist/node/node/index.d.ts.map +1 -0
- package/dist/node/node/index.js +75 -0
- package/dist/node/node/index.js.map +1 -0
- package/dist/node/node/mime.d.ts +2 -0
- package/dist/node/node/mime.d.ts.map +1 -0
- package/dist/node/node/mime.js +76 -0
- package/dist/node/node/mime.js.map +1 -0
- package/dist/node/node/normalizers/binary.d.ts +3 -0
- package/dist/node/node/normalizers/binary.d.ts.map +1 -0
- package/dist/node/node/normalizers/binary.js +51 -0
- package/dist/node/node/normalizers/binary.js.map +1 -0
- package/dist/node/node/normalizers/dict.d.ts +3 -0
- package/dist/node/node/normalizers/dict.d.ts.map +1 -0
- package/dist/node/node/normalizers/dict.js +17 -0
- package/dist/node/node/normalizers/dict.js.map +1 -0
- package/dist/node/node/normalizers/files.d.ts +3 -0
- package/dist/node/node/normalizers/files.d.ts.map +1 -0
- package/dist/node/node/normalizers/files.js +109 -0
- package/dist/node/node/normalizers/files.js.map +1 -0
- package/dist/node/node/normalizers/huggingface.d.ts +3 -0
- package/dist/node/node/normalizers/huggingface.d.ts.map +1 -0
- package/dist/node/node/normalizers/huggingface.js +158 -0
- package/dist/node/node/normalizers/huggingface.js.map +1 -0
- package/dist/node/node/normalizers/image.d.ts +3 -0
- package/dist/node/node/normalizers/image.d.ts.map +1 -0
- package/dist/node/node/normalizers/image.js +52 -0
- package/dist/node/node/normalizers/image.js.map +1 -0
- package/dist/node/node/normalizers/index.d.ts +9 -0
- package/dist/node/node/normalizers/index.d.ts.map +1 -0
- package/dist/node/node/normalizers/index.js +21 -0
- package/dist/node/node/normalizers/index.js.map +1 -0
- package/dist/node/node/normalizers/pdf.d.ts +3 -0
- package/dist/node/node/normalizers/pdf.d.ts.map +1 -0
- package/dist/node/node/normalizers/pdf.js +75 -0
- package/dist/node/node/normalizers/pdf.js.map +1 -0
- package/dist/node/node/normalizers/text.d.ts +4 -0
- package/dist/node/node/normalizers/text.d.ts.map +1 -0
- package/dist/node/node/normalizers/text.js +83 -0
- package/dist/node/node/normalizers/text.js.map +1 -0
- package/dist/node/node/normalizers/video.d.ts +3 -0
- package/dist/node/node/normalizers/video.d.ts.map +1 -0
- package/dist/node/node/normalizers/video.js +119 -0
- package/dist/node/node/normalizers/video.js.map +1 -0
- package/dist/node/node/storage.d.ts +15 -0
- package/dist/node/node/storage.d.ts.map +1 -0
- package/dist/node/node/storage.js +477 -0
- package/dist/node/node/storage.js.map +1 -0
- package/dist/node/node/wasm.d.ts +3 -0
- package/dist/node/node/wasm.d.ts.map +1 -0
- package/dist/node/node/wasm.js +49 -0
- package/dist/node/node/wasm.js.map +1 -0
- package/dist/node/shared/api.d.ts +9 -0
- package/dist/node/shared/api.d.ts.map +1 -0
- package/dist/node/shared/api.js +70 -0
- package/dist/node/shared/api.js.map +1 -0
- package/dist/node/shared/credentials.d.ts +4 -0
- package/dist/node/shared/credentials.d.ts.map +1 -0
- package/dist/node/shared/credentials.js +28 -0
- package/dist/node/shared/credentials.js.map +1 -0
- package/dist/node/shared/database.d.ts +26 -0
- package/dist/node/shared/database.d.ts.map +1 -0
- package/dist/node/shared/database.js +71 -0
- package/dist/node/shared/database.js.map +1 -0
- package/dist/node/shared/dlref.d.ts +22 -0
- package/dist/node/shared/dlref.d.ts.map +1 -0
- package/dist/node/shared/dlref.js +52 -0
- package/dist/node/shared/dlref.js.map +1 -0
- package/dist/node/shared/errors.d.ts +22 -0
- package/dist/node/shared/errors.d.ts.map +1 -0
- package/dist/node/shared/errors.js +53 -0
- package/dist/node/shared/errors.js.map +1 -0
- package/dist/node/shared/schema.d.ts +7 -0
- package/dist/node/shared/schema.d.ts.map +1 -0
- package/dist/node/shared/schema.js +157 -0
- package/dist/node/shared/schema.js.map +1 -0
- package/dist/node/shared/token.d.ts +4 -0
- package/dist/node/shared/token.d.ts.map +1 -0
- package/dist/node/shared/token.js +74 -0
- package/dist/node/shared/token.js.map +1 -0
- package/dist/node/shared/types.d.ts +33 -0
- package/dist/node/shared/types.d.ts.map +1 -0
- package/dist/node/shared/types.js +3 -0
- package/dist/node/shared/types.js.map +1 -0
- package/dist/node/shared/wasm-common.d.ts +39 -0
- package/dist/node/shared/wasm-common.d.ts.map +1 -0
- package/dist/node/shared/wasm-common.js +310 -0
- package/dist/node/shared/wasm-common.js.map +1 -0
- package/package.json +43 -18
- package/README.md +0 -39
- package/index.d.ts +0 -2
- package/index.js +0 -26
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
export class ManagedQueryBuilder {
|
|
2
|
+
_executor;
|
|
3
|
+
_table;
|
|
4
|
+
_columns = ['*'];
|
|
5
|
+
_conditions = [];
|
|
6
|
+
_orderByClauses = [];
|
|
7
|
+
_limitVal = null;
|
|
8
|
+
_offsetVal = null;
|
|
9
|
+
constructor(executor, table) {
|
|
10
|
+
this._executor = executor;
|
|
11
|
+
this._table = table;
|
|
12
|
+
}
|
|
13
|
+
select(...columns) {
|
|
14
|
+
this._columns = columns;
|
|
15
|
+
return this;
|
|
16
|
+
}
|
|
17
|
+
where(condition, ...params) {
|
|
18
|
+
this._conditions.push({ condition, params });
|
|
19
|
+
return this;
|
|
20
|
+
}
|
|
21
|
+
orderBy(clause) {
|
|
22
|
+
this._orderByClauses.push(clause);
|
|
23
|
+
return this;
|
|
24
|
+
}
|
|
25
|
+
limit(n) {
|
|
26
|
+
this._limitVal = n;
|
|
27
|
+
return this;
|
|
28
|
+
}
|
|
29
|
+
offset(n) {
|
|
30
|
+
this._offsetVal = n;
|
|
31
|
+
return this;
|
|
32
|
+
}
|
|
33
|
+
buildSql() {
|
|
34
|
+
const cols = this._columns.join(', ');
|
|
35
|
+
const safeTable = this._table.replace(/"/g, '""');
|
|
36
|
+
const parts = [`SELECT ${cols} FROM "${safeTable}"`];
|
|
37
|
+
const allParams = [];
|
|
38
|
+
if (this._conditions.length > 0) {
|
|
39
|
+
const whereClauses = [];
|
|
40
|
+
for (const { condition, params } of this._conditions) {
|
|
41
|
+
whereClauses.push(condition);
|
|
42
|
+
allParams.push(...params);
|
|
43
|
+
}
|
|
44
|
+
parts.push('WHERE ' + whereClauses.join(' AND '));
|
|
45
|
+
}
|
|
46
|
+
if (this._orderByClauses.length > 0) {
|
|
47
|
+
parts.push('ORDER BY ' + this._orderByClauses.join(', '));
|
|
48
|
+
}
|
|
49
|
+
if (this._limitVal !== null) {
|
|
50
|
+
parts.push(`LIMIT ${Math.trunc(this._limitVal)}`);
|
|
51
|
+
}
|
|
52
|
+
if (this._offsetVal !== null) {
|
|
53
|
+
parts.push(`OFFSET ${Math.trunc(this._offsetVal)}`);
|
|
54
|
+
}
|
|
55
|
+
const sql = parts.join(' ');
|
|
56
|
+
return { sql, params: allParams.length > 0 ? allParams : null };
|
|
57
|
+
}
|
|
58
|
+
async execute() {
|
|
59
|
+
const { sql, params } = this.buildSql();
|
|
60
|
+
return this._executor.query(sql, params ?? undefined);
|
|
61
|
+
}
|
|
62
|
+
toString() {
|
|
63
|
+
const { sql, params } = this.buildSql();
|
|
64
|
+
return `ManagedQueryBuilder(sql=${JSON.stringify(sql)}, params=${JSON.stringify(params)})`;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=database.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../../src/shared/database.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DLREF data reference parser.
|
|
3
|
+
*
|
|
4
|
+
* pg_deeplake returns DLREF references for VIDEO columns instead of raw bytes.
|
|
5
|
+
* Format: "DLREF:version|column_id|row_id"
|
|
6
|
+
*
|
|
7
|
+
* SDKs parse these to fetch actual data directly from dataset storage.
|
|
8
|
+
*/
|
|
9
|
+
export interface DataRef {
|
|
10
|
+
version: string;
|
|
11
|
+
columnId: number;
|
|
12
|
+
rowId: bigint;
|
|
13
|
+
}
|
|
14
|
+
export declare function isDataRef(value: unknown): boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Parse a DLREF data reference string into its components.
|
|
17
|
+
* Accepts string, Buffer, or Uint8Array (raw BYTEA from query results).
|
|
18
|
+
*
|
|
19
|
+
* For base64-encoded values (as returned by the REST API), decode first.
|
|
20
|
+
*/
|
|
21
|
+
export declare function parseDataRef(value: string | Uint8Array): DataRef;
|
|
22
|
+
//# sourceMappingURL=dlref.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dlref.d.ts","sourceRoot":"","sources":["../../../src/shared/dlref.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAID,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CASjD;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAuBhE"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DLREF data reference parser.
|
|
3
|
+
*
|
|
4
|
+
* pg_deeplake returns DLREF references for VIDEO columns instead of raw bytes.
|
|
5
|
+
* Format: "DLREF:version|column_id|row_id"
|
|
6
|
+
*
|
|
7
|
+
* SDKs parse these to fetch actual data directly from dataset storage.
|
|
8
|
+
*/
|
|
9
|
+
const DLREF_PREFIX = 'DLREF:';
|
|
10
|
+
export function isDataRef(value) {
|
|
11
|
+
if (typeof value === 'string') {
|
|
12
|
+
return value.startsWith(DLREF_PREFIX);
|
|
13
|
+
}
|
|
14
|
+
if (value instanceof Uint8Array) {
|
|
15
|
+
const prefix = new TextDecoder().decode(value.subarray(0, 6));
|
|
16
|
+
return prefix === DLREF_PREFIX;
|
|
17
|
+
}
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Parse a DLREF data reference string into its components.
|
|
22
|
+
* Accepts string, Buffer, or Uint8Array (raw BYTEA from query results).
|
|
23
|
+
*
|
|
24
|
+
* For base64-encoded values (as returned by the REST API), decode first.
|
|
25
|
+
*/
|
|
26
|
+
export function parseDataRef(value) {
|
|
27
|
+
let str;
|
|
28
|
+
if (typeof value === 'string') {
|
|
29
|
+
str = value;
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
str = new TextDecoder().decode(value);
|
|
33
|
+
}
|
|
34
|
+
if (!str.startsWith(DLREF_PREFIX)) {
|
|
35
|
+
throw new Error(`Not a DLREF: ${str.slice(0, 30)}`);
|
|
36
|
+
}
|
|
37
|
+
const payload = str.slice(DLREF_PREFIX.length);
|
|
38
|
+
const parts = payload.split('|');
|
|
39
|
+
if (parts.length !== 3) {
|
|
40
|
+
throw new Error(`Invalid DLREF format: expected 3 parts, got ${parts.length}`);
|
|
41
|
+
}
|
|
42
|
+
return {
|
|
43
|
+
version: parts[0],
|
|
44
|
+
columnId: parseInt(parts[1], 10),
|
|
45
|
+
rowId: BigInt(parts[2]),
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=dlref.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dlref.js","sourceRoot":"","sources":["../../../src/shared/dlref.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAQH,MAAM,YAAY,GAAG,QAAQ,CAAC;AAE9B,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IACxC,CAAC;IACD,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9D,OAAO,MAAM,KAAK,YAAY,CAAC;IACjC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,KAA0B;IACrD,IAAI,GAAW,CAAC;IAChB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,GAAG,GAAG,KAAK,CAAC;IACd,CAAC;SAAM,CAAC;QACN,GAAG,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,+CAA+C,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACjF,CAAC;IAED,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;QACjB,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAChC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KACxB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export declare class ManagedServiceError extends Error {
|
|
2
|
+
constructor(message: string);
|
|
3
|
+
}
|
|
4
|
+
export declare class AuthError extends ManagedServiceError {
|
|
5
|
+
constructor(message: string);
|
|
6
|
+
}
|
|
7
|
+
export declare class TokenError extends AuthError {
|
|
8
|
+
constructor(message: string);
|
|
9
|
+
}
|
|
10
|
+
export declare class CredentialsError extends ManagedServiceError {
|
|
11
|
+
constructor(message: string);
|
|
12
|
+
}
|
|
13
|
+
export declare class IngestError extends ManagedServiceError {
|
|
14
|
+
constructor(message: string);
|
|
15
|
+
}
|
|
16
|
+
export declare class TableError extends ManagedServiceError {
|
|
17
|
+
constructor(message: string);
|
|
18
|
+
}
|
|
19
|
+
export declare class WorkspaceError extends ManagedServiceError {
|
|
20
|
+
constructor(message: string);
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/shared/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,SAAU,SAAQ,mBAAmB;gBACpC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,UAAW,SAAQ,SAAS;gBAC3B,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,gBAAiB,SAAQ,mBAAmB;gBAC3C,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,WAAY,SAAQ,mBAAmB;gBACtC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,UAAW,SAAQ,mBAAmB;gBACrC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,cAAe,SAAQ,mBAAmB;gBACzC,OAAO,EAAE,MAAM;CAI5B"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
export class ManagedServiceError extends Error {
|
|
2
|
+
constructor(message) {
|
|
3
|
+
super(message);
|
|
4
|
+
this.name = 'ManagedServiceError';
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
export class AuthError extends ManagedServiceError {
|
|
8
|
+
constructor(message) {
|
|
9
|
+
super(message);
|
|
10
|
+
this.name = 'AuthError';
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
export class TokenError extends AuthError {
|
|
14
|
+
constructor(message) {
|
|
15
|
+
super(message);
|
|
16
|
+
this.name = 'TokenError';
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export class CredentialsError extends ManagedServiceError {
|
|
20
|
+
constructor(message) {
|
|
21
|
+
super(message);
|
|
22
|
+
this.name = 'CredentialsError';
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
export class IngestError extends ManagedServiceError {
|
|
26
|
+
constructor(message) {
|
|
27
|
+
super(message);
|
|
28
|
+
this.name = 'IngestError';
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
export class TableError extends ManagedServiceError {
|
|
32
|
+
constructor(message) {
|
|
33
|
+
super(message);
|
|
34
|
+
this.name = 'TableError';
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
export class WorkspaceError extends ManagedServiceError {
|
|
38
|
+
constructor(message) {
|
|
39
|
+
super(message);
|
|
40
|
+
this.name = 'WorkspaceError';
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/shared/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAC5C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED,MAAM,OAAO,SAAU,SAAQ,mBAAmB;IAChD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;IAC1B,CAAC;CACF;AAED,MAAM,OAAO,UAAW,SAAQ,SAAS;IACvC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;IAC3B,CAAC;CACF;AAED,MAAM,OAAO,gBAAiB,SAAQ,mBAAmB;IACvD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AAED,MAAM,OAAO,WAAY,SAAQ,mBAAmB;IAClD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;CACF;AAED,MAAM,OAAO,UAAW,SAAQ,mBAAmB;IACjD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;IAC3B,CAAC;CACF;AAED,MAAM,OAAO,cAAe,SAAQ,mBAAmB;IACrD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;CACF"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Batch, Format, SchemaMap } from './types';
|
|
2
|
+
export declare const SCHEMA_TO_PG: Record<string, string>;
|
|
3
|
+
export declare const SCHEMA_TO_DEEPLAKE: Record<string, string>;
|
|
4
|
+
export declare function inferType(value: unknown): string;
|
|
5
|
+
export declare function buildPgSchema(batch: Batch, schema?: SchemaMap, format?: Format): Record<string, string>;
|
|
6
|
+
export declare function ensureColumns(dataset: any, batch: Batch, schema?: SchemaMap): void;
|
|
7
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/shared/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAExD,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAqB/C,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAqBrD,CAAC;AAEF,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAqBhD;AAED,wBAAgB,aAAa,CAC3B,KAAK,EAAE,KAAK,EACZ,MAAM,CAAC,EAAE,SAAS,EAClB,MAAM,CAAC,EAAE,MAAM,GACd,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA2BxB;AAED,wBAAgB,aAAa,CAC3B,OAAO,EAAE,GAAG,EACZ,KAAK,EAAE,KAAK,EACZ,MAAM,CAAC,EAAE,SAAS,GACjB,IAAI,CAiDN"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
export const SCHEMA_TO_PG = {
|
|
2
|
+
TEXT: 'TEXT',
|
|
3
|
+
INT: 'BIGINT',
|
|
4
|
+
INT32: 'INTEGER',
|
|
5
|
+
INT64: 'BIGINT',
|
|
6
|
+
FLOAT: 'DOUBLE PRECISION',
|
|
7
|
+
FLOAT32: 'REAL',
|
|
8
|
+
FLOAT64: 'DOUBLE PRECISION',
|
|
9
|
+
BOOL: 'BOOLEAN',
|
|
10
|
+
BINARY: 'BYTEA',
|
|
11
|
+
IMAGE: 'BYTEA',
|
|
12
|
+
VIDEO: 'VIDEO',
|
|
13
|
+
EMBEDDING: 'float4[]',
|
|
14
|
+
SEGMENT_MASK: 'BYTEA',
|
|
15
|
+
BINARY_MASK: 'BYTEA',
|
|
16
|
+
BOUNDING_BOX: 'float4[]',
|
|
17
|
+
CLASS_LABEL: 'INTEGER',
|
|
18
|
+
POLYGON: 'BYTEA',
|
|
19
|
+
POINT: 'float4[]',
|
|
20
|
+
MESH: 'BYTEA',
|
|
21
|
+
MEDICAL: 'BYTEA',
|
|
22
|
+
};
|
|
23
|
+
export const SCHEMA_TO_DEEPLAKE = {
|
|
24
|
+
TEXT: 'text',
|
|
25
|
+
INT: 'int64',
|
|
26
|
+
INT32: 'int32',
|
|
27
|
+
INT64: 'int64',
|
|
28
|
+
FLOAT: 'float64',
|
|
29
|
+
FLOAT32: 'float32',
|
|
30
|
+
FLOAT64: 'float64',
|
|
31
|
+
BOOL: 'bool',
|
|
32
|
+
BINARY: 'bytes',
|
|
33
|
+
IMAGE: 'image',
|
|
34
|
+
VIDEO: 'bytes',
|
|
35
|
+
EMBEDDING: 'float32',
|
|
36
|
+
SEGMENT_MASK: 'segment_mask',
|
|
37
|
+
BINARY_MASK: 'binary_mask',
|
|
38
|
+
BOUNDING_BOX: 'bounding_box',
|
|
39
|
+
CLASS_LABEL: 'class_label',
|
|
40
|
+
POLYGON: 'polygon',
|
|
41
|
+
POINT: 'point',
|
|
42
|
+
MESH: 'mesh',
|
|
43
|
+
MEDICAL: 'medical',
|
|
44
|
+
};
|
|
45
|
+
export function inferType(value) {
|
|
46
|
+
if (typeof value === 'boolean')
|
|
47
|
+
return 'BOOL';
|
|
48
|
+
if (typeof value === 'number') {
|
|
49
|
+
return Number.isInteger(value) ? 'INT64' : 'FLOAT64';
|
|
50
|
+
}
|
|
51
|
+
if (typeof value === 'string')
|
|
52
|
+
return 'TEXT';
|
|
53
|
+
if ((typeof Buffer !== 'undefined' && Buffer.isBuffer(value)) ||
|
|
54
|
+
value instanceof Uint8Array ||
|
|
55
|
+
value instanceof ArrayBuffer) {
|
|
56
|
+
return 'BINARY';
|
|
57
|
+
}
|
|
58
|
+
if (Array.isArray(value) &&
|
|
59
|
+
value.length > 0 &&
|
|
60
|
+
value.every((x) => typeof x === 'number')) {
|
|
61
|
+
return 'EMBEDDING';
|
|
62
|
+
}
|
|
63
|
+
return 'TEXT';
|
|
64
|
+
}
|
|
65
|
+
export function buildPgSchema(batch, schema, format) {
|
|
66
|
+
const pgSchema = {};
|
|
67
|
+
for (const [colName, values] of Object.entries(batch)) {
|
|
68
|
+
if (schema && colName in schema) {
|
|
69
|
+
const typeName = schema[colName].toUpperCase();
|
|
70
|
+
if (typeName === 'FILE')
|
|
71
|
+
continue;
|
|
72
|
+
pgSchema[colName] = SCHEMA_TO_PG[typeName] ?? 'TEXT';
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
75
|
+
const sample = Array.isArray(values) && values.length > 0 ? values[0] : values;
|
|
76
|
+
const inferred = inferType(sample);
|
|
77
|
+
pgSchema[colName] = SCHEMA_TO_PG[inferred] ?? 'TEXT';
|
|
78
|
+
}
|
|
79
|
+
// Apply format's pg_schema() domain type overrides (e.g. IMAGE, SEGMENT_MASK)
|
|
80
|
+
if (format && typeof format.pg_schema === 'function') {
|
|
81
|
+
const formatPgSchema = format.pg_schema();
|
|
82
|
+
for (const [colName, domainType] of Object.entries(formatPgSchema)) {
|
|
83
|
+
if (colName in pgSchema) {
|
|
84
|
+
pgSchema[colName] = domainType;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return pgSchema;
|
|
89
|
+
}
|
|
90
|
+
export function ensureColumns(dataset, batch, schema) {
|
|
91
|
+
const existing = new Set();
|
|
92
|
+
let schemaObj = null;
|
|
93
|
+
try {
|
|
94
|
+
schemaObj = dataset.schema;
|
|
95
|
+
if (schemaObj) {
|
|
96
|
+
const cols = schemaObj.columns;
|
|
97
|
+
if (cols && typeof cols.size === 'function') {
|
|
98
|
+
// WASM vector proxy: .size() / .get(i)
|
|
99
|
+
const n = cols.size();
|
|
100
|
+
for (let i = 0; i < n; i++) {
|
|
101
|
+
const col = cols.get(i);
|
|
102
|
+
existing.add(col.name);
|
|
103
|
+
if (typeof col.delete === 'function')
|
|
104
|
+
col.delete();
|
|
105
|
+
}
|
|
106
|
+
if (typeof cols.delete === 'function')
|
|
107
|
+
cols.delete();
|
|
108
|
+
}
|
|
109
|
+
else if (Array.isArray(cols)) {
|
|
110
|
+
for (const c of cols)
|
|
111
|
+
existing.add(c.name);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
catch {
|
|
116
|
+
// Schema access failed — assume no existing columns
|
|
117
|
+
}
|
|
118
|
+
finally {
|
|
119
|
+
if (schemaObj && typeof schemaObj.delete === 'function') {
|
|
120
|
+
try {
|
|
121
|
+
schemaObj.delete();
|
|
122
|
+
}
|
|
123
|
+
catch { /* ignore */ }
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
for (const [colName, values] of Object.entries(batch)) {
|
|
127
|
+
if (existing.has(colName))
|
|
128
|
+
continue;
|
|
129
|
+
let dlType;
|
|
130
|
+
if (schema && colName in schema) {
|
|
131
|
+
const typeName = schema[colName].toUpperCase();
|
|
132
|
+
if (typeName === 'FILE')
|
|
133
|
+
continue;
|
|
134
|
+
dlType = SCHEMA_TO_DEEPLAKE[typeName] ?? 'text';
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
const sample = Array.isArray(values) && values.length > 0 ? values[0] : values;
|
|
138
|
+
const inferred = inferType(sample);
|
|
139
|
+
dlType = SCHEMA_TO_DEEPLAKE[inferred] ?? 'text';
|
|
140
|
+
}
|
|
141
|
+
try {
|
|
142
|
+
dataset.addColumnByStringType(colName, dlType);
|
|
143
|
+
}
|
|
144
|
+
catch (e) {
|
|
145
|
+
if (!String(e?.message ?? e).includes('already exists'))
|
|
146
|
+
throw e;
|
|
147
|
+
}
|
|
148
|
+
existing.add(colName);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/shared/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../../src/shared/token.ts"],"names":[],"mappings":"AAmBA,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAyBlD;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAM5D;AAED,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAgBxB"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { TokenError } from './errors';
|
|
2
|
+
function base64UrlDecode(str) {
|
|
3
|
+
if (typeof Buffer !== 'undefined') {
|
|
4
|
+
return Buffer.from(str, 'base64url').toString('utf-8');
|
|
5
|
+
}
|
|
6
|
+
// Browser fallback using atob + TextDecoder
|
|
7
|
+
let base64 = str.replace(/-/g, '+').replace(/_/g, '/');
|
|
8
|
+
while (base64.length % 4 !== 0) {
|
|
9
|
+
base64 += '=';
|
|
10
|
+
}
|
|
11
|
+
const binary = atob(base64);
|
|
12
|
+
const bytes = new Uint8Array(binary.length);
|
|
13
|
+
for (let i = 0; i < binary.length; i++) {
|
|
14
|
+
bytes[i] = binary.charCodeAt(i);
|
|
15
|
+
}
|
|
16
|
+
return new TextDecoder().decode(bytes);
|
|
17
|
+
}
|
|
18
|
+
export function extractOrgId(token) {
|
|
19
|
+
try {
|
|
20
|
+
const parts = token.split('.');
|
|
21
|
+
if (parts.length !== 3) {
|
|
22
|
+
throw new TokenError('Invalid token format: expected JWT with 3 parts');
|
|
23
|
+
}
|
|
24
|
+
const decoded = base64UrlDecode(parts[1]);
|
|
25
|
+
const claims = JSON.parse(decoded);
|
|
26
|
+
const orgId = claims.OrgID || claims.org_id;
|
|
27
|
+
if (!orgId) {
|
|
28
|
+
throw new TokenError('Token does not contain org_id claim');
|
|
29
|
+
}
|
|
30
|
+
return orgId;
|
|
31
|
+
}
|
|
32
|
+
catch (e) {
|
|
33
|
+
if (e instanceof TokenError)
|
|
34
|
+
throw e;
|
|
35
|
+
if (e instanceof SyntaxError) {
|
|
36
|
+
throw new TokenError(`Failed to decode token payload: ${e.message}`);
|
|
37
|
+
}
|
|
38
|
+
throw new TokenError(`Failed to extract org_id from token: ${e instanceof Error ? e.message : e}`);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
export function tryExtractOrgId(token) {
|
|
42
|
+
try {
|
|
43
|
+
return extractOrgId(token);
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
export async function fetchOrgIdFromApi(token, apiUrl) {
|
|
50
|
+
try {
|
|
51
|
+
const resp = await fetch(`${apiUrl}/me`, {
|
|
52
|
+
headers: {
|
|
53
|
+
Authorization: `Bearer ${token}`,
|
|
54
|
+
'Content-Type': 'application/json',
|
|
55
|
+
},
|
|
56
|
+
});
|
|
57
|
+
if (!resp.ok)
|
|
58
|
+
return null;
|
|
59
|
+
const data = (await resp.json());
|
|
60
|
+
const orgs = data.organizations;
|
|
61
|
+
if (orgs && orgs.length > 0)
|
|
62
|
+
return orgs[0];
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
return null;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=token.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token.js","sourceRoot":"","sources":["../../../src/shared/token.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export interface ManagedClientOptions {
|
|
2
|
+
token: string;
|
|
3
|
+
workspaceId?: string;
|
|
4
|
+
apiUrl?: string;
|
|
5
|
+
}
|
|
6
|
+
export interface IngestResult {
|
|
7
|
+
tableName: string;
|
|
8
|
+
rowCount: number;
|
|
9
|
+
datasetPath: string;
|
|
10
|
+
}
|
|
11
|
+
export interface Format {
|
|
12
|
+
normalize(): Iterable<Batch> | AsyncIterable<Batch>;
|
|
13
|
+
schema?(): SchemaMap;
|
|
14
|
+
pg_schema?(): Record<string, string>;
|
|
15
|
+
image_columns?(): string[];
|
|
16
|
+
}
|
|
17
|
+
export interface IngestOptions {
|
|
18
|
+
schema?: SchemaMap;
|
|
19
|
+
format?: Format;
|
|
20
|
+
onProgress?: (processed: number, total: number) => void;
|
|
21
|
+
chunkSize?: number;
|
|
22
|
+
chunkOverlap?: number;
|
|
23
|
+
index?: string[];
|
|
24
|
+
}
|
|
25
|
+
export type Batch = Record<string, unknown[]>;
|
|
26
|
+
export type SchemaMap = Record<string, string>;
|
|
27
|
+
export type QueryRow = Record<string, unknown>;
|
|
28
|
+
export interface StorageCreds {
|
|
29
|
+
aws_access_key_id: string;
|
|
30
|
+
aws_secret_access_key: string;
|
|
31
|
+
aws_session_token?: string;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/shared/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,MAAM;IACrB,SAAS,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,CAAC,IAAI,SAAS,CAAC;IACrB,SAAS,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,aAAa,CAAC,IAAI,MAAM,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;AAE9C,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE/C,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE/C,MAAM,WAAW,YAAY;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/shared/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { Batch } from './types';
|
|
2
|
+
export declare function setWasmModule(mod: any): void;
|
|
3
|
+
export declare function clearWasmModule(): void;
|
|
4
|
+
export declare function getWasmModule(): any;
|
|
5
|
+
export declare function deeplakeSetEndpoint(endpoint: string): void;
|
|
6
|
+
/**
|
|
7
|
+
* Set the backend endpoint and open a dataset as an atomic operation.
|
|
8
|
+
* Concurrent callers are serialized so that one caller's setEndpoint
|
|
9
|
+
* cannot be clobbered by another before the open completes.
|
|
10
|
+
*/
|
|
11
|
+
export declare function deeplakeSetEndpointAndOpen(endpoint: string, datasetPath: string, creds: string | Record<string, string>, token: string): Promise<any>;
|
|
12
|
+
export declare function deeplakeCreate(datasetPath: string, creds: string | Record<string, string>, token: string): Promise<any>;
|
|
13
|
+
export declare function deeplakeOpen(datasetPath: string, creds: string | Record<string, string>, token: string): Promise<any>;
|
|
14
|
+
export declare function deeplakeExists(datasetPath: string, creds: string | Record<string, string>, token: string): Promise<boolean>;
|
|
15
|
+
export declare function deeplakeAppend(dataset: any, batch: Batch): Promise<void>;
|
|
16
|
+
export declare function deeplakeCommit(dataset: any, message?: string): Promise<void>;
|
|
17
|
+
export declare function deeplakeAddColumn(dataset: any, name: string, typeName: string): void;
|
|
18
|
+
export declare function deeplakeDeleteDataset(datasetPath: string, creds: string | Record<string, string>, token: string): Promise<void>;
|
|
19
|
+
/**
|
|
20
|
+
* Unwrap a WASM ndarray value to a plain JS value.
|
|
21
|
+
* Scalar ndarrays (shape []) become a single number.
|
|
22
|
+
* 1D ndarrays become a regular Array.
|
|
23
|
+
* Strings and other primitives pass through unchanged.
|
|
24
|
+
*/
|
|
25
|
+
export declare function unwrapNdArray(val: any): any;
|
|
26
|
+
export declare function deeplakeNumRows(dataset: any): number;
|
|
27
|
+
export declare function deeplakeGetField(dataset: any, rowIndex: number, column: string): Promise<any>;
|
|
28
|
+
export declare function deeplakeGetRow(dataset: any, rowIndex: number, columns: string[]): Promise<Record<string, any>>;
|
|
29
|
+
export declare function deeplakeGetColumnData(dataset: any, columnName: string, start: number, end: number): Promise<any>;
|
|
30
|
+
export declare function deeplakeSetField(dataset: any, rowIndex: number, column: string, value: any): Promise<void>;
|
|
31
|
+
export declare function deeplakeSetRow(dataset: any, rowIndex: number, data: Record<string, any>): Promise<void>;
|
|
32
|
+
/**
|
|
33
|
+
* Fetch a sample by DeepLake internal column_id and row_id.
|
|
34
|
+
* Used to resolve DLREF data references returned by VIDEO columns.
|
|
35
|
+
* rowId is bigint because DeepLake row IDs use the full int64 range.
|
|
36
|
+
*/
|
|
37
|
+
export declare function deeplakeGetSampleByRef(dataset: any, columnId: number, rowId: bigint): Promise<any>;
|
|
38
|
+
export declare function deeplakeRelease(obj: any): void;
|
|
39
|
+
//# sourceMappingURL=wasm-common.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wasm-common.d.ts","sourceRoot":"","sources":["../../../src/shared/wasm-common.ts"],"names":[],"mappings":"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"}
|