twelvelabs-js 0.1.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/LICENSE +183 -0
- package/README.md +278 -0
- package/dist/README.md +278 -0
- package/dist/constants.d.ts +4 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +7 -0
- package/dist/constants.js.map +1 -0
- package/dist/constants.mjs +4 -0
- package/dist/constants.mjs.map +1 -0
- package/dist/core.d.ts +23 -0
- package/dist/core.d.ts.map +1 -0
- package/dist/core.js +145 -0
- package/dist/core.js.map +1 -0
- package/dist/core.mjs +114 -0
- package/dist/core.mjs.map +1 -0
- package/dist/error.d.ts +34 -0
- package/dist/error.d.ts.map +1 -0
- package/dist/error.js +55 -0
- package/dist/error.js.map +1 -0
- package/dist/error.mjs +40 -0
- package/dist/error.mjs.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +69 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +23 -0
- package/dist/index.mjs.map +1 -0
- package/dist/interfaces.d.ts +7 -0
- package/dist/interfaces.d.ts.map +1 -0
- package/dist/interfaces.js +3 -0
- package/dist/interfaces.js.map +1 -0
- package/dist/interfaces.mjs +2 -0
- package/dist/interfaces.mjs.map +1 -0
- package/dist/models/engine/index.d.ts +16 -0
- package/dist/models/engine/index.d.ts.map +1 -0
- package/dist/models/engine/index.js +14 -0
- package/dist/models/engine/index.js.map +1 -0
- package/dist/models/engine/index.mjs +10 -0
- package/dist/models/engine/index.mjs.map +1 -0
- package/dist/models/generate/index.d.ts +29 -0
- package/dist/models/generate/index.d.ts.map +1 -0
- package/dist/models/generate/index.js +3 -0
- package/dist/models/generate/index.js.map +1 -0
- package/dist/models/generate/index.mjs +2 -0
- package/dist/models/generate/index.mjs.map +1 -0
- package/dist/models/index/index.d.ts +57 -0
- package/dist/models/index/index.d.ts.map +1 -0
- package/dist/models/index/index.js +72 -0
- package/dist/models/index/index.js.map +1 -0
- package/dist/models/index/index.mjs +67 -0
- package/dist/models/index/index.mjs.map +1 -0
- package/dist/models/index.d.ts +8 -0
- package/dist/models/index.d.ts.map +1 -0
- package/dist/models/index.js +24 -0
- package/dist/models/index.js.map +1 -0
- package/dist/models/index.mjs +8 -0
- package/dist/models/index.mjs.map +1 -0
- package/dist/models/interfaces.d.ts +7 -0
- package/dist/models/interfaces.d.ts.map +1 -0
- package/dist/models/interfaces.js +3 -0
- package/dist/models/interfaces.js.map +1 -0
- package/dist/models/interfaces.mjs +2 -0
- package/dist/models/interfaces.mjs.map +1 -0
- package/dist/models/search/index.d.ts +47 -0
- package/dist/models/search/index.d.ts.map +1 -0
- package/dist/models/search/index.js +22 -0
- package/dist/models/search/index.js.map +1 -0
- package/dist/models/search/index.mjs +18 -0
- package/dist/models/search/index.mjs.map +1 -0
- package/dist/models/task/index.d.ts +59 -0
- package/dist/models/task/index.d.ts.map +1 -0
- package/dist/models/task/index.js +67 -0
- package/dist/models/task/index.js.map +1 -0
- package/dist/models/task/index.mjs +62 -0
- package/dist/models/task/index.mjs.map +1 -0
- package/dist/models/video/index.d.ts +52 -0
- package/dist/models/video/index.d.ts.map +1 -0
- package/dist/models/video/index.js +64 -0
- package/dist/models/video/index.js.map +1 -0
- package/dist/models/video/index.mjs +59 -0
- package/dist/models/video/index.mjs.map +1 -0
- package/dist/package.json +37 -0
- package/dist/resource.d.ts +12 -0
- package/dist/resource.d.ts.map +1 -0
- package/dist/resource.js +17 -0
- package/dist/resource.js.map +1 -0
- package/dist/resource.mjs +13 -0
- package/dist/resource.mjs.map +1 -0
- package/dist/resources/engine/index.d.ts +8 -0
- package/dist/resources/engine/index.d.ts.map +1 -0
- package/dist/resources/engine/index.js +42 -0
- package/dist/resources/engine/index.js.map +1 -0
- package/dist/resources/engine/index.mjs +15 -0
- package/dist/resources/engine/index.mjs.map +1 -0
- package/dist/resources/generate/index.d.ts +10 -0
- package/dist/resources/generate/index.d.ts.map +1 -0
- package/dist/resources/generate/index.js +36 -0
- package/dist/resources/generate/index.js.map +1 -0
- package/dist/resources/generate/index.mjs +32 -0
- package/dist/resources/generate/index.mjs.map +1 -0
- package/dist/resources/generate/interfaces.d.ts +3 -0
- package/dist/resources/generate/interfaces.d.ts.map +1 -0
- package/dist/resources/generate/interfaces.js +3 -0
- package/dist/resources/generate/interfaces.js.map +1 -0
- package/dist/resources/generate/interfaces.mjs +2 -0
- package/dist/resources/generate/interfaces.mjs.map +1 -0
- package/dist/resources/index/index.d.ts +17 -0
- package/dist/resources/index/index.d.ts.map +1 -0
- package/dist/resources/index/index.js +82 -0
- package/dist/resources/index/index.js.map +1 -0
- package/dist/resources/index/index.mjs +55 -0
- package/dist/resources/index/index.mjs.map +1 -0
- package/dist/resources/index/interfaces.d.ts +18 -0
- package/dist/resources/index/interfaces.d.ts.map +1 -0
- package/dist/resources/index/interfaces.js +3 -0
- package/dist/resources/index/interfaces.js.map +1 -0
- package/dist/resources/index/interfaces.mjs +2 -0
- package/dist/resources/index/interfaces.mjs.map +1 -0
- package/dist/resources/index.d.ts +12 -0
- package/dist/resources/index.d.ts.map +1 -0
- package/dist/resources/index.js +28 -0
- package/dist/resources/index.js.map +1 -0
- package/dist/resources/index.mjs +12 -0
- package/dist/resources/index.mjs.map +1 -0
- package/dist/resources/search/index.d.ts +9 -0
- package/dist/resources/search/index.d.ts.map +1 -0
- package/dist/resources/search/index.js +45 -0
- package/dist/resources/search/index.js.map +1 -0
- package/dist/resources/search/index.mjs +18 -0
- package/dist/resources/search/index.mjs.map +1 -0
- package/dist/resources/search/interfaces.d.ts +13 -0
- package/dist/resources/search/interfaces.d.ts.map +1 -0
- package/dist/resources/search/interfaces.js +3 -0
- package/dist/resources/search/interfaces.js.map +1 -0
- package/dist/resources/search/interfaces.mjs +2 -0
- package/dist/resources/search/interfaces.mjs.map +1 -0
- package/dist/resources/task/index.d.ts +23 -0
- package/dist/resources/task/index.d.ts.map +1 -0
- package/dist/resources/task/index.js +147 -0
- package/dist/resources/task/index.js.map +1 -0
- package/dist/resources/task/index.mjs +117 -0
- package/dist/resources/task/index.mjs.map +1 -0
- package/dist/resources/task/interfaces.d.ts +24 -0
- package/dist/resources/task/interfaces.d.ts.map +1 -0
- package/dist/resources/task/interfaces.js +3 -0
- package/dist/resources/task/interfaces.js.map +1 -0
- package/dist/resources/task/interfaces.mjs +2 -0
- package/dist/resources/task/interfaces.mjs.map +1 -0
- package/dist/resources/video/index.d.ts +16 -0
- package/dist/resources/video/index.d.ts.map +1 -0
- package/dist/resources/video/index.js +92 -0
- package/dist/resources/video/index.js.map +1 -0
- package/dist/resources/video/index.mjs +65 -0
- package/dist/resources/video/index.mjs.map +1 -0
- package/dist/resources/video/interfaces.d.ts +23 -0
- package/dist/resources/video/interfaces.d.ts.map +1 -0
- package/dist/resources/video/interfaces.js +3 -0
- package/dist/resources/video/interfaces.js.map +1 -0
- package/dist/resources/video/interfaces.mjs +2 -0
- package/dist/resources/video/interfaces.mjs.map +1 -0
- package/dist/src/constants.ts +3 -0
- package/dist/src/core.ts +138 -0
- package/dist/src/error.ts +40 -0
- package/dist/src/index.ts +86 -0
- package/dist/src/interfaces.ts +6 -0
- package/dist/src/models/engine/index.ts +23 -0
- package/dist/src/models/generate/index.ts +32 -0
- package/dist/src/models/index/index.ts +135 -0
- package/dist/src/models/index.ts +7 -0
- package/dist/src/models/interfaces.ts +6 -0
- package/dist/src/models/search/index.ts +66 -0
- package/dist/src/models/task/index.ts +132 -0
- package/dist/src/models/video/index.ts +135 -0
- package/dist/src/resource.ts +21 -0
- package/dist/src/resources/engine/index.ts +17 -0
- package/dist/src/resources/generate/index.ts +56 -0
- package/dist/src/resources/generate/interfaces.ts +2 -0
- package/dist/src/resources/index/index.ts +91 -0
- package/dist/src/resources/index/interfaces.ts +16 -0
- package/dist/src/resources/index.ts +12 -0
- package/dist/src/resources/search/index.ts +28 -0
- package/dist/src/resources/search/interfaces.ts +12 -0
- package/dist/src/resources/task/index.ts +161 -0
- package/dist/src/resources/task/interfaces.ts +23 -0
- package/dist/src/resources/video/index.ts +157 -0
- package/dist/src/resources/video/interfaces.ts +25 -0
- package/dist/src/util.ts +94 -0
- package/dist/util.d.ts +5 -0
- package/dist/util.d.ts.map +1 -0
- package/dist/util.js +94 -0
- package/dist/util.js.map +1 -0
- package/dist/util.mjs +87 -0
- package/dist/util.mjs.map +1 -0
- package/package.json +37 -0
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import { RequestOptions } from '../../core';
|
|
2
|
+
import * as Models from '../../models';
|
|
3
|
+
import { APIResource } from '../../resource';
|
|
4
|
+
import { convertKeysToSnakeCase, handleComparisonParams, removeUndefinedValues } from '../../util';
|
|
5
|
+
import { ListVideoParams, UpdateVideoParams, VideoFilterOptions } from './interfaces';
|
|
6
|
+
|
|
7
|
+
export class Video extends APIResource {
|
|
8
|
+
async retrieve(indexId: string, id: string, options: RequestOptions = {}): Promise<Models.Video> {
|
|
9
|
+
const res = await this._get<Models.VideoResponse>(
|
|
10
|
+
`indexes/${indexId}/videos/${id}`,
|
|
11
|
+
{},
|
|
12
|
+
{ ...options, skipCamelKeys: ['metadata'] },
|
|
13
|
+
);
|
|
14
|
+
return new Models.Video(this, indexId, res);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
async list(
|
|
18
|
+
indexId: string,
|
|
19
|
+
{
|
|
20
|
+
id,
|
|
21
|
+
size,
|
|
22
|
+
width,
|
|
23
|
+
height,
|
|
24
|
+
duration,
|
|
25
|
+
fps,
|
|
26
|
+
createdAt,
|
|
27
|
+
updatedAt,
|
|
28
|
+
indexedAt,
|
|
29
|
+
...restParams
|
|
30
|
+
}: ListVideoParams = {},
|
|
31
|
+
options: RequestOptions = {},
|
|
32
|
+
): Promise<Models.Video[]> {
|
|
33
|
+
const _params = convertKeysToSnakeCase({
|
|
34
|
+
...restParams,
|
|
35
|
+
_id: id,
|
|
36
|
+
});
|
|
37
|
+
handleComparisonParams(_params, 'size', size);
|
|
38
|
+
handleComparisonParams(_params, 'width', width);
|
|
39
|
+
handleComparisonParams(_params, 'height', height);
|
|
40
|
+
handleComparisonParams(_params, 'duration', duration);
|
|
41
|
+
handleComparisonParams(_params, 'fps', fps);
|
|
42
|
+
handleComparisonParams(_params, 'createdAt', createdAt);
|
|
43
|
+
handleComparisonParams(_params, 'updatedAt', updatedAt);
|
|
44
|
+
handleComparisonParams(_params, 'updatedAt', updatedAt);
|
|
45
|
+
const res = await this._get<{ data: Models.VideoResponse[] }>(
|
|
46
|
+
`indexes/${indexId}/videos`,
|
|
47
|
+
removeUndefinedValues(_params),
|
|
48
|
+
{ ...options, skipCamelKeys: ['metadata'] },
|
|
49
|
+
);
|
|
50
|
+
return res.data.map((v) => new Models.Video(this, indexId, v));
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
async listPagination(
|
|
54
|
+
indexId: string,
|
|
55
|
+
{
|
|
56
|
+
id,
|
|
57
|
+
size,
|
|
58
|
+
width,
|
|
59
|
+
height,
|
|
60
|
+
duration,
|
|
61
|
+
fps,
|
|
62
|
+
createdAt,
|
|
63
|
+
updatedAt,
|
|
64
|
+
indexedAt,
|
|
65
|
+
...restParams
|
|
66
|
+
}: ListVideoParams = {},
|
|
67
|
+
options: RequestOptions = {},
|
|
68
|
+
): Promise<Models.VideoListWithPagination> {
|
|
69
|
+
const originParams = { id, ...restParams };
|
|
70
|
+
const _params = convertKeysToSnakeCase({
|
|
71
|
+
...restParams,
|
|
72
|
+
_id: id,
|
|
73
|
+
});
|
|
74
|
+
handleComparisonParams(_params, 'size', size);
|
|
75
|
+
handleComparisonParams(_params, 'width', width);
|
|
76
|
+
handleComparisonParams(_params, 'height', height);
|
|
77
|
+
handleComparisonParams(_params, 'duration', duration);
|
|
78
|
+
handleComparisonParams(_params, 'fps', fps);
|
|
79
|
+
handleComparisonParams(_params, 'createdAt', createdAt);
|
|
80
|
+
handleComparisonParams(_params, 'updatedAt', updatedAt);
|
|
81
|
+
handleComparisonParams(_params, 'updatedAt', updatedAt);
|
|
82
|
+
const res = await this._get<{ data: Models.VideoResponse[]; pageInfo: Models.PageInfo }>(
|
|
83
|
+
`indexes/${indexId}/videos`,
|
|
84
|
+
removeUndefinedValues(_params),
|
|
85
|
+
{ ...options, skipCamelKeys: ['metadata'] },
|
|
86
|
+
);
|
|
87
|
+
return new Models.VideoListWithPagination(this, originParams, indexId, res.data, res.pageInfo);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
async update(
|
|
91
|
+
indexId: string,
|
|
92
|
+
id: string,
|
|
93
|
+
{ title, metadata }: UpdateVideoParams,
|
|
94
|
+
options: RequestOptions = {},
|
|
95
|
+
): Promise<void> {
|
|
96
|
+
await this._put<void>(
|
|
97
|
+
`indexes/${indexId}/videos/${id}`,
|
|
98
|
+
removeUndefinedValues(convertKeysToSnakeCase({ videoTitle: title, metadata })),
|
|
99
|
+
options,
|
|
100
|
+
);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
async delete(indexId: string, id: string, options: RequestOptions = {}): Promise<void> {
|
|
104
|
+
await this._delete<void>(`indexes/${indexId}/videos/${id}`, options);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
async transcription(
|
|
108
|
+
indexId: string,
|
|
109
|
+
id: string,
|
|
110
|
+
filter: VideoFilterOptions = {},
|
|
111
|
+
options: RequestOptions = {},
|
|
112
|
+
): Promise<Models.VideoValue[]> {
|
|
113
|
+
const res = await this._get<{ data: Models.VideoValue[] }>(
|
|
114
|
+
`indexes/${indexId}/videos/${id}/transcription`,
|
|
115
|
+
removeUndefinedValues(filter),
|
|
116
|
+
options,
|
|
117
|
+
);
|
|
118
|
+
return res.data || [];
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
async textInVideo(
|
|
122
|
+
indexId: string,
|
|
123
|
+
id: string,
|
|
124
|
+
filter: VideoFilterOptions = {},
|
|
125
|
+
options: RequestOptions = {},
|
|
126
|
+
): Promise<Models.VideoValue[]> {
|
|
127
|
+
const res = await this._get<{ data: Models.VideoValue[] }>(
|
|
128
|
+
`indexes/${indexId}/videos/${id}/text-in-video`,
|
|
129
|
+
removeUndefinedValues(filter),
|
|
130
|
+
options,
|
|
131
|
+
);
|
|
132
|
+
return res.data || [];
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
async logo(
|
|
136
|
+
indexId: string,
|
|
137
|
+
id: string,
|
|
138
|
+
filter: VideoFilterOptions = {},
|
|
139
|
+
options: RequestOptions = {},
|
|
140
|
+
): Promise<Models.VideoValue[]> {
|
|
141
|
+
const res = await this._get<{ data: Models.VideoValue[] }>(
|
|
142
|
+
`indexes/${indexId}/videos/${id}/logo`,
|
|
143
|
+
removeUndefinedValues(filter),
|
|
144
|
+
options,
|
|
145
|
+
);
|
|
146
|
+
return res.data || [];
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
async thumbnail(indexId: string, id: string, time?: number, options: RequestOptions = {}): Promise<string> {
|
|
150
|
+
const res = await this._get<{ thumbnail: string }>(
|
|
151
|
+
`indexes/${indexId}/videos/${id}/transcription`,
|
|
152
|
+
removeUndefinedValues({ time }),
|
|
153
|
+
options,
|
|
154
|
+
);
|
|
155
|
+
return res.thumbnail;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { PageOptions } from '../../interfaces';
|
|
2
|
+
|
|
3
|
+
export interface ListVideoParams extends PageOptions {
|
|
4
|
+
id?: string;
|
|
5
|
+
filename?: string;
|
|
6
|
+
size?: number | Record<string, number>;
|
|
7
|
+
width?: number | Record<string, number>;
|
|
8
|
+
height?: number | Record<string, number>;
|
|
9
|
+
duration?: number | Record<string, number>;
|
|
10
|
+
fps?: number | Record<string, number>;
|
|
11
|
+
metadata?: Record<string, any>;
|
|
12
|
+
createdAt?: string | Record<string, string>;
|
|
13
|
+
updatedAt?: string | Record<string, string>;
|
|
14
|
+
indexedAt?: string | Record<string, string>;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export interface UpdateVideoParams {
|
|
18
|
+
title?: string;
|
|
19
|
+
metadata?: Record<string, any>;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export interface VideoFilterOptions {
|
|
23
|
+
start?: number;
|
|
24
|
+
end?: number;
|
|
25
|
+
}
|
package/dist/src/util.ts
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
// Converts object keys from snake_case or leading underscore format to camelCase.
|
|
2
|
+
// This function is recursive, so it works on nested objects and arrays of objects as well.
|
|
3
|
+
//
|
|
4
|
+
// Examples:
|
|
5
|
+
// 1. Converting simple object keys:
|
|
6
|
+
// Input: {"first_name": "John", "last_name": "Doe"}
|
|
7
|
+
// Output: {"firstName": "John", "lastName": "Doe"}
|
|
8
|
+
//
|
|
9
|
+
// 2. Handling keys with leading underscores:
|
|
10
|
+
// Input: {"_id": 123, "user_name": "johndoe"}
|
|
11
|
+
// Output: {"id": 123, "userName": "johndoe"}
|
|
12
|
+
//
|
|
13
|
+
// 3. Working with nested objects:
|
|
14
|
+
// Input: {"user_details": {"first_name": "John", "last_name": "Doe"}}
|
|
15
|
+
// Output: {"userDetails": {"firstName": "John", "lastName": "Doe"}}
|
|
16
|
+
//
|
|
17
|
+
// 4. Processing arrays of objects:
|
|
18
|
+
// Input: [{"user_name": "johndoe"}, {"user_name": "janedoe"}]
|
|
19
|
+
// Output: [{"userName": "johndoe"}, {"userName": "janedoe"}]
|
|
20
|
+
export function convertKeysToCamelCase(obj: any, skipKeys?: string[]): any {
|
|
21
|
+
if (Array.isArray(obj)) {
|
|
22
|
+
return obj.map((v) => convertKeysToCamelCase(v));
|
|
23
|
+
} else if (obj !== null && obj.constructor === Object) {
|
|
24
|
+
return Object.keys(obj).reduce((result, key) => {
|
|
25
|
+
// Skip converting keys by `skipKeys`
|
|
26
|
+
if (skipKeys?.includes(key)) {
|
|
27
|
+
return { ...result, [key]: obj[key] };
|
|
28
|
+
}
|
|
29
|
+
// Check if key starts with "_"
|
|
30
|
+
if (key.startsWith('_')) {
|
|
31
|
+
// If so, remove the underscore and use the rest of the key as is
|
|
32
|
+
const newKey = key.substring(1);
|
|
33
|
+
return {
|
|
34
|
+
...result,
|
|
35
|
+
[newKey]: convertKeysToCamelCase(obj[key]),
|
|
36
|
+
};
|
|
37
|
+
} else {
|
|
38
|
+
// Use the existing replacement logic for other keys
|
|
39
|
+
const camelCaseKey = key.replace(/([-_][a-z])/g, (group) =>
|
|
40
|
+
group.toUpperCase().replace('-', '').replace('_', ''),
|
|
41
|
+
);
|
|
42
|
+
return {
|
|
43
|
+
...result,
|
|
44
|
+
[camelCaseKey]: convertKeysToCamelCase(obj[key]),
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
}, {});
|
|
48
|
+
}
|
|
49
|
+
return obj;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// Convert keys of an object from camelCase to snake_case, always applying deeply
|
|
53
|
+
export function convertKeysToSnakeCase<T>(obj: T): T {
|
|
54
|
+
if (Array.isArray(obj)) {
|
|
55
|
+
return obj.map((item) => convertKeysToSnakeCase(item)) as unknown as T; // Recursively apply to array elements
|
|
56
|
+
} else if (obj !== null && typeof obj === 'object' && !(obj instanceof Date)) {
|
|
57
|
+
return Object.keys(obj).reduce((acc, key) => {
|
|
58
|
+
const snakeKey = key.replace(/[A-Z]/g, (letter) => `_${letter.toLowerCase()}`);
|
|
59
|
+
acc[snakeKey] = convertKeysToSnakeCase(obj[key]); // Recursively apply to nested objects
|
|
60
|
+
return acc;
|
|
61
|
+
}, {} as T);
|
|
62
|
+
}
|
|
63
|
+
return obj;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
export function removeUndefinedValues(obj: Record<string, any>): Record<string, any> {
|
|
67
|
+
return Object.entries(obj).reduce(
|
|
68
|
+
(acc, [key, value]) => {
|
|
69
|
+
if (value !== undefined) {
|
|
70
|
+
acc[key] = value;
|
|
71
|
+
}
|
|
72
|
+
return acc;
|
|
73
|
+
},
|
|
74
|
+
{} as Record<string, any>,
|
|
75
|
+
);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
export function handleComparisonParams(
|
|
79
|
+
params: Record<string, any>,
|
|
80
|
+
key: string,
|
|
81
|
+
value: any | Record<string, any>,
|
|
82
|
+
): void {
|
|
83
|
+
if (typeof value === 'object') {
|
|
84
|
+
for (const op in value) {
|
|
85
|
+
if (value.hasOwnProperty(op)) {
|
|
86
|
+
const paramKey = `${key}[${op}]`;
|
|
87
|
+
params[paramKey] = value[op];
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
params[key] = undefined;
|
|
91
|
+
} else {
|
|
92
|
+
params[key] = value;
|
|
93
|
+
}
|
|
94
|
+
}
|
package/dist/util.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare function convertKeysToCamelCase(obj: any, skipKeys?: string[]): any;
|
|
2
|
+
export declare function convertKeysToSnakeCase<T>(obj: T): T;
|
|
3
|
+
export declare function removeUndefinedValues(obj: Record<string, any>): Record<string, any>;
|
|
4
|
+
export declare function handleComparisonParams(params: Record<string, any>, key: string, value: any | Record<string, any>): void;
|
|
5
|
+
//# sourceMappingURL=util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["src/util.ts"],"names":[],"mappings":"AAmBA,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,GAAG,CA8BzE;AAGD,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAWnD;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAUnF;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC/B,IAAI,CAYN"}
|
package/dist/util.js
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.handleComparisonParams = exports.removeUndefinedValues = exports.convertKeysToSnakeCase = exports.convertKeysToCamelCase = void 0;
|
|
4
|
+
// Converts object keys from snake_case or leading underscore format to camelCase.
|
|
5
|
+
// This function is recursive, so it works on nested objects and arrays of objects as well.
|
|
6
|
+
//
|
|
7
|
+
// Examples:
|
|
8
|
+
// 1. Converting simple object keys:
|
|
9
|
+
// Input: {"first_name": "John", "last_name": "Doe"}
|
|
10
|
+
// Output: {"firstName": "John", "lastName": "Doe"}
|
|
11
|
+
//
|
|
12
|
+
// 2. Handling keys with leading underscores:
|
|
13
|
+
// Input: {"_id": 123, "user_name": "johndoe"}
|
|
14
|
+
// Output: {"id": 123, "userName": "johndoe"}
|
|
15
|
+
//
|
|
16
|
+
// 3. Working with nested objects:
|
|
17
|
+
// Input: {"user_details": {"first_name": "John", "last_name": "Doe"}}
|
|
18
|
+
// Output: {"userDetails": {"firstName": "John", "lastName": "Doe"}}
|
|
19
|
+
//
|
|
20
|
+
// 4. Processing arrays of objects:
|
|
21
|
+
// Input: [{"user_name": "johndoe"}, {"user_name": "janedoe"}]
|
|
22
|
+
// Output: [{"userName": "johndoe"}, {"userName": "janedoe"}]
|
|
23
|
+
function convertKeysToCamelCase(obj, skipKeys) {
|
|
24
|
+
if (Array.isArray(obj)) {
|
|
25
|
+
return obj.map((v) => convertKeysToCamelCase(v));
|
|
26
|
+
}
|
|
27
|
+
else if (obj !== null && obj.constructor === Object) {
|
|
28
|
+
return Object.keys(obj).reduce((result, key) => {
|
|
29
|
+
// Skip converting keys by `skipKeys`
|
|
30
|
+
if (skipKeys?.includes(key)) {
|
|
31
|
+
return { ...result, [key]: obj[key] };
|
|
32
|
+
}
|
|
33
|
+
// Check if key starts with "_"
|
|
34
|
+
if (key.startsWith('_')) {
|
|
35
|
+
// If so, remove the underscore and use the rest of the key as is
|
|
36
|
+
const newKey = key.substring(1);
|
|
37
|
+
return {
|
|
38
|
+
...result,
|
|
39
|
+
[newKey]: convertKeysToCamelCase(obj[key]),
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
// Use the existing replacement logic for other keys
|
|
44
|
+
const camelCaseKey = key.replace(/([-_][a-z])/g, (group) => group.toUpperCase().replace('-', '').replace('_', ''));
|
|
45
|
+
return {
|
|
46
|
+
...result,
|
|
47
|
+
[camelCaseKey]: convertKeysToCamelCase(obj[key]),
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
}, {});
|
|
51
|
+
}
|
|
52
|
+
return obj;
|
|
53
|
+
}
|
|
54
|
+
exports.convertKeysToCamelCase = convertKeysToCamelCase;
|
|
55
|
+
// Convert keys of an object from camelCase to snake_case, always applying deeply
|
|
56
|
+
function convertKeysToSnakeCase(obj) {
|
|
57
|
+
if (Array.isArray(obj)) {
|
|
58
|
+
return obj.map((item) => convertKeysToSnakeCase(item)); // Recursively apply to array elements
|
|
59
|
+
}
|
|
60
|
+
else if (obj !== null && typeof obj === 'object' && !(obj instanceof Date)) {
|
|
61
|
+
return Object.keys(obj).reduce((acc, key) => {
|
|
62
|
+
const snakeKey = key.replace(/[A-Z]/g, (letter) => `_${letter.toLowerCase()}`);
|
|
63
|
+
acc[snakeKey] = convertKeysToSnakeCase(obj[key]); // Recursively apply to nested objects
|
|
64
|
+
return acc;
|
|
65
|
+
}, {});
|
|
66
|
+
}
|
|
67
|
+
return obj;
|
|
68
|
+
}
|
|
69
|
+
exports.convertKeysToSnakeCase = convertKeysToSnakeCase;
|
|
70
|
+
function removeUndefinedValues(obj) {
|
|
71
|
+
return Object.entries(obj).reduce((acc, [key, value]) => {
|
|
72
|
+
if (value !== undefined) {
|
|
73
|
+
acc[key] = value;
|
|
74
|
+
}
|
|
75
|
+
return acc;
|
|
76
|
+
}, {});
|
|
77
|
+
}
|
|
78
|
+
exports.removeUndefinedValues = removeUndefinedValues;
|
|
79
|
+
function handleComparisonParams(params, key, value) {
|
|
80
|
+
if (typeof value === 'object') {
|
|
81
|
+
for (const op in value) {
|
|
82
|
+
if (value.hasOwnProperty(op)) {
|
|
83
|
+
const paramKey = `${key}[${op}]`;
|
|
84
|
+
params[paramKey] = value[op];
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
params[key] = undefined;
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
params[key] = value;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
exports.handleComparisonParams = handleComparisonParams;
|
|
94
|
+
//# sourceMappingURL=util.js.map
|
package/dist/util.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["src/util.ts"],"names":[],"mappings":"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"}
|
package/dist/util.mjs
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
// Converts object keys from snake_case or leading underscore format to camelCase.
|
|
2
|
+
// This function is recursive, so it works on nested objects and arrays of objects as well.
|
|
3
|
+
//
|
|
4
|
+
// Examples:
|
|
5
|
+
// 1. Converting simple object keys:
|
|
6
|
+
// Input: {"first_name": "John", "last_name": "Doe"}
|
|
7
|
+
// Output: {"firstName": "John", "lastName": "Doe"}
|
|
8
|
+
//
|
|
9
|
+
// 2. Handling keys with leading underscores:
|
|
10
|
+
// Input: {"_id": 123, "user_name": "johndoe"}
|
|
11
|
+
// Output: {"id": 123, "userName": "johndoe"}
|
|
12
|
+
//
|
|
13
|
+
// 3. Working with nested objects:
|
|
14
|
+
// Input: {"user_details": {"first_name": "John", "last_name": "Doe"}}
|
|
15
|
+
// Output: {"userDetails": {"firstName": "John", "lastName": "Doe"}}
|
|
16
|
+
//
|
|
17
|
+
// 4. Processing arrays of objects:
|
|
18
|
+
// Input: [{"user_name": "johndoe"}, {"user_name": "janedoe"}]
|
|
19
|
+
// Output: [{"userName": "johndoe"}, {"userName": "janedoe"}]
|
|
20
|
+
export function convertKeysToCamelCase(obj, skipKeys) {
|
|
21
|
+
if (Array.isArray(obj)) {
|
|
22
|
+
return obj.map((v) => convertKeysToCamelCase(v));
|
|
23
|
+
}
|
|
24
|
+
else if (obj !== null && obj.constructor === Object) {
|
|
25
|
+
return Object.keys(obj).reduce((result, key) => {
|
|
26
|
+
// Skip converting keys by `skipKeys`
|
|
27
|
+
if (skipKeys?.includes(key)) {
|
|
28
|
+
return { ...result, [key]: obj[key] };
|
|
29
|
+
}
|
|
30
|
+
// Check if key starts with "_"
|
|
31
|
+
if (key.startsWith('_')) {
|
|
32
|
+
// If so, remove the underscore and use the rest of the key as is
|
|
33
|
+
const newKey = key.substring(1);
|
|
34
|
+
return {
|
|
35
|
+
...result,
|
|
36
|
+
[newKey]: convertKeysToCamelCase(obj[key]),
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
// Use the existing replacement logic for other keys
|
|
41
|
+
const camelCaseKey = key.replace(/([-_][a-z])/g, (group) => group.toUpperCase().replace('-', '').replace('_', ''));
|
|
42
|
+
return {
|
|
43
|
+
...result,
|
|
44
|
+
[camelCaseKey]: convertKeysToCamelCase(obj[key]),
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
}, {});
|
|
48
|
+
}
|
|
49
|
+
return obj;
|
|
50
|
+
}
|
|
51
|
+
// Convert keys of an object from camelCase to snake_case, always applying deeply
|
|
52
|
+
export function convertKeysToSnakeCase(obj) {
|
|
53
|
+
if (Array.isArray(obj)) {
|
|
54
|
+
return obj.map((item) => convertKeysToSnakeCase(item)); // Recursively apply to array elements
|
|
55
|
+
}
|
|
56
|
+
else if (obj !== null && typeof obj === 'object' && !(obj instanceof Date)) {
|
|
57
|
+
return Object.keys(obj).reduce((acc, key) => {
|
|
58
|
+
const snakeKey = key.replace(/[A-Z]/g, (letter) => `_${letter.toLowerCase()}`);
|
|
59
|
+
acc[snakeKey] = convertKeysToSnakeCase(obj[key]); // Recursively apply to nested objects
|
|
60
|
+
return acc;
|
|
61
|
+
}, {});
|
|
62
|
+
}
|
|
63
|
+
return obj;
|
|
64
|
+
}
|
|
65
|
+
export function removeUndefinedValues(obj) {
|
|
66
|
+
return Object.entries(obj).reduce((acc, [key, value]) => {
|
|
67
|
+
if (value !== undefined) {
|
|
68
|
+
acc[key] = value;
|
|
69
|
+
}
|
|
70
|
+
return acc;
|
|
71
|
+
}, {});
|
|
72
|
+
}
|
|
73
|
+
export function handleComparisonParams(params, key, value) {
|
|
74
|
+
if (typeof value === 'object') {
|
|
75
|
+
for (const op in value) {
|
|
76
|
+
if (value.hasOwnProperty(op)) {
|
|
77
|
+
const paramKey = `${key}[${op}]`;
|
|
78
|
+
params[paramKey] = value[op];
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
params[key] = undefined;
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
params[key] = value;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=util.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.mjs","sourceRoot":"","sources":["src/util.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "twelvelabs-js",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Official TwelveLabs SDK for Javascript",
|
|
5
|
+
"author": "TwelveLabs",
|
|
6
|
+
"repository": "github:twelvelabs-io/twelvelabs-js",
|
|
7
|
+
"license": "Apache-2.0",
|
|
8
|
+
"main": "dist/index.js",
|
|
9
|
+
"types": "dist/index.d.ts",
|
|
10
|
+
"type": "commonjs",
|
|
11
|
+
"files": [
|
|
12
|
+
"/dist"
|
|
13
|
+
],
|
|
14
|
+
"scripts": {
|
|
15
|
+
"lint": "eslint --ext ts,js .",
|
|
16
|
+
"fix": "eslint --fix --ext ts,js .",
|
|
17
|
+
"build-local": "bash build-local"
|
|
18
|
+
},
|
|
19
|
+
"dependencies": {
|
|
20
|
+
"form-data": "^4.0.0",
|
|
21
|
+
"node-fetch": "^2.6.7"
|
|
22
|
+
},
|
|
23
|
+
"devDependencies": {
|
|
24
|
+
"@types/node": "^18.11.18",
|
|
25
|
+
"@types/node-fetch": "^2.6.4",
|
|
26
|
+
"@typescript-eslint/eslint-plugin": "^6.7.0",
|
|
27
|
+
"@typescript-eslint/parser": "^6.7.0",
|
|
28
|
+
"eslint": "^8.49.0",
|
|
29
|
+
"eslint-plugin-prettier": "^5.0.1",
|
|
30
|
+
"eslint-plugin-unused-imports": "^3.0.0",
|
|
31
|
+
"prettier": "^3.0.0",
|
|
32
|
+
"ts-node": "^10.5.0",
|
|
33
|
+
"tsc-multi": "^1.1.0",
|
|
34
|
+
"tsconfig-paths": "^4.2.0",
|
|
35
|
+
"typescript": "^4.8.2"
|
|
36
|
+
}
|
|
37
|
+
}
|