@lilaquadrat/sdk 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/index.ts +341 -3
- package/lib/index.d.ts +93 -0
- package/lib/index.js +202 -4
- package/lib/index.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
### [0.1.2](https://github.com/lilaquadrat/sdk/compare/v0.1.1...v0.1.2) (2026-06-04)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
* **storage:** omit project from URL when bucket is customers ([83612de](https://github.com/lilaquadrat/sdk/commit/83612dea5c7ae47190eb50a9c12a21df984cb56e))
|
|
11
|
+
|
|
12
|
+
### [0.1.1](https://github.com/lilaquadrat/sdk/compare/v0.1.0...v0.1.1) (2026-06-01)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
### Features
|
|
16
|
+
|
|
17
|
+
* **storage:** added support for members storage ([f0d8026](https://github.com/lilaquadrat/sdk/commit/f0d8026e0605f0b4f690c05f1b2e6f011283f9ca))
|
|
18
|
+
|
|
5
19
|
## [0.1.0](https://github.com/lilaquadrat/sdk/compare/v0.0.11...v0.1.0) (2026-04-01)
|
|
6
20
|
|
|
7
21
|
|
package/index.ts
CHANGED
|
@@ -47,7 +47,58 @@ export type SDKCallOptions = {
|
|
|
47
47
|
cacheLifetime?: number
|
|
48
48
|
};
|
|
49
49
|
|
|
50
|
+
export type UploadFile = {
|
|
51
|
+
filename: string
|
|
52
|
+
size: number
|
|
53
|
+
mimetype: string
|
|
54
|
+
data: Blob | ArrayBuffer | Uint8Array
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
export type UploadOptions = {
|
|
58
|
+
list?: ObjectIdString
|
|
59
|
+
thumbnails?: boolean
|
|
60
|
+
overwrite?: boolean
|
|
61
|
+
contentId?: ObjectIdString
|
|
62
|
+
structureInternalId?: ObjectIdString
|
|
63
|
+
moduleUuid?: string
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
export type UploadConfig = {
|
|
67
|
+
chunkSize?: number
|
|
68
|
+
retries?: number
|
|
69
|
+
retryDelay?: number
|
|
70
|
+
concurrency?: number
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
export type UploadProgressPhase =
|
|
74
|
+
| { phase: 'create-upload-start' }
|
|
75
|
+
| { phase: 'create-upload-done', uploadId: string }
|
|
76
|
+
| { phase: 'chunk-start', chunkIndex: number, totalChunks: number }
|
|
77
|
+
| { phase: 'chunk-done', chunkIndex: number, totalChunks: number }
|
|
78
|
+
| { phase: 'done', uploadId: string }
|
|
79
|
+
| { phase: 'error', error: unknown };
|
|
80
|
+
|
|
81
|
+
export type UploadProgressEvent = UploadProgressPhase & {
|
|
82
|
+
file: UploadFile
|
|
83
|
+
fileIndex?: number
|
|
84
|
+
totalFiles?: number
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
export type UploadProgressCallback = (event: UploadProgressEvent) => void;
|
|
88
|
+
|
|
89
|
+
export type UploadResult = {
|
|
90
|
+
uploadId: string
|
|
91
|
+
filename: string
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
export type UploadMultipleResult = {
|
|
95
|
+
successCount: number
|
|
96
|
+
failureCount: number
|
|
97
|
+
results: { file: UploadFile, uploadId?: string, error?: unknown }[]
|
|
98
|
+
};
|
|
99
|
+
|
|
50
100
|
let cachedCalls: Record<string, SDKResponse<unknown> & SDKCache> = {};
|
|
101
|
+
let inFlightCalls: Record<string, Promise<SDKResponse<unknown>>> = {};
|
|
51
102
|
|
|
52
103
|
export default class StudioSDK {
|
|
53
104
|
|
|
@@ -87,8 +138,18 @@ export default class StudioSDK {
|
|
|
87
138
|
mode?: SDKModes,
|
|
88
139
|
customEndpoints?: { api: string, media: string }
|
|
89
140
|
universalModel?: string
|
|
141
|
+
upload?: UploadConfig
|
|
90
142
|
} = { app: '' };
|
|
91
143
|
|
|
144
|
+
uploadConfig: Required<UploadConfig> = {
|
|
145
|
+
chunkSize: 6 * 1024 * 1024,
|
|
146
|
+
retries: 3,
|
|
147
|
+
retryDelay: 500,
|
|
148
|
+
concurrency: 5,
|
|
149
|
+
};
|
|
150
|
+
|
|
151
|
+
static RETRY_STATUS_CODES: ReadonlySet<number> = new Set([408, 425, 429, 500, 502, 503, 504]);
|
|
152
|
+
|
|
92
153
|
constructor(options: StudioSDK['options']) {
|
|
93
154
|
|
|
94
155
|
if (options.authToken) this.authToken = options.authToken;
|
|
@@ -105,6 +166,76 @@ export default class StudioSDK {
|
|
|
105
166
|
|
|
106
167
|
if (options.universalModel) this.universalModel = options.universalModel;
|
|
107
168
|
|
|
169
|
+
if (options.upload) this.uploadConfig = { ...this.uploadConfig, ...options.upload };
|
|
170
|
+
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
static calculateChunks(fileSize: number, chunkSize: number) {
|
|
174
|
+
|
|
175
|
+
if (fileSize > chunkSize) return Math.ceil(fileSize / chunkSize);
|
|
176
|
+
return 1;
|
|
177
|
+
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
static toBlob(data: Blob | ArrayBuffer | Uint8Array): Blob {
|
|
181
|
+
|
|
182
|
+
if (data instanceof Blob) return data;
|
|
183
|
+
return new Blob([data as BlobPart]);
|
|
184
|
+
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
static async batch<T>(items: T[], fn: (item: T, index: number) => Promise<void>, concurrency: number) {
|
|
188
|
+
|
|
189
|
+
let cursor = 0;
|
|
190
|
+
const workers = Array.from({ length: Math.min(concurrency, items.length || 1) }, async () => {
|
|
191
|
+
|
|
192
|
+
while (true) {
|
|
193
|
+
|
|
194
|
+
const idx = cursor++;
|
|
195
|
+
if (idx >= items.length) break;
|
|
196
|
+
await fn(items[idx], idx);
|
|
197
|
+
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
});
|
|
201
|
+
await Promise.all(workers);
|
|
202
|
+
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
private async sleepBackoff(attempt: number) {
|
|
206
|
+
|
|
207
|
+
const cap = this.uploadConfig.retryDelay * Math.pow(2, attempt);
|
|
208
|
+
const backoff = Math.random() * cap;
|
|
209
|
+
await new Promise((resolve) => setTimeout(resolve, backoff));
|
|
210
|
+
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
private async withRetry<T>(fn: () => Promise<T>): Promise<T> {
|
|
214
|
+
|
|
215
|
+
let lastError: unknown;
|
|
216
|
+
|
|
217
|
+
for (let attempt = 0; attempt <= this.uploadConfig.retries; attempt++) {
|
|
218
|
+
|
|
219
|
+
try {
|
|
220
|
+
|
|
221
|
+
return await fn();
|
|
222
|
+
|
|
223
|
+
} catch (error) {
|
|
224
|
+
|
|
225
|
+
lastError = error;
|
|
226
|
+
const status = (error as { response?: { status?: number } })?.response?.status;
|
|
227
|
+
const retryable = !status || StudioSDK.RETRY_STATUS_CODES.has(status);
|
|
228
|
+
|
|
229
|
+
if (!retryable || attempt >= this.uploadConfig.retries) throw error;
|
|
230
|
+
|
|
231
|
+
await this.sleepBackoff(attempt);
|
|
232
|
+
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
throw lastError;
|
|
238
|
+
|
|
108
239
|
}
|
|
109
240
|
|
|
110
241
|
private getUrl(type: 'api' | 'media', methodArray: string[]) {
|
|
@@ -196,24 +327,44 @@ export default class StudioSDK {
|
|
|
196
327
|
|
|
197
328
|
// }
|
|
198
329
|
|
|
330
|
+
const url = axios.getUri(call);
|
|
331
|
+
|
|
199
332
|
if (call.method === 'GET' && !options?.bypassCache) {
|
|
200
333
|
|
|
201
|
-
const cacheHit = StudioSDK.cache<T>(
|
|
334
|
+
const cacheHit = StudioSDK.cache<T>(url, undefined, options);
|
|
202
335
|
|
|
203
336
|
if (cacheHit) return Promise.resolve(cacheHit);
|
|
204
337
|
|
|
338
|
+
const dedupKey = options?.id ? options.id : StudioSDK.getCacheKey(url);
|
|
339
|
+
|
|
340
|
+
const inFlight = inFlightCalls[dedupKey];
|
|
341
|
+
|
|
342
|
+
if (inFlight) return inFlight as Promise<SDKResponse<T>>;
|
|
343
|
+
|
|
205
344
|
}
|
|
206
345
|
|
|
207
|
-
|
|
346
|
+
const promise = axios.request(call)
|
|
208
347
|
.then((response) => {
|
|
209
348
|
|
|
210
|
-
if (call.method === 'GET') StudioSDK.cache(
|
|
349
|
+
if (call.method === 'GET') StudioSDK.cache(url, response, options);
|
|
211
350
|
|
|
212
351
|
return response;
|
|
213
352
|
|
|
214
353
|
})
|
|
215
354
|
.then((response) => ({ data: response.data, status: response.status }));
|
|
216
355
|
|
|
356
|
+
if (call.method === 'GET' && !options?.bypassCache) {
|
|
357
|
+
|
|
358
|
+
const dedupKey = options?.id ? options.id : StudioSDK.getCacheKey(url);
|
|
359
|
+
|
|
360
|
+
inFlightCalls[dedupKey] = promise;
|
|
361
|
+
|
|
362
|
+
promise.finally(() => { delete inFlightCalls[dedupKey]; });
|
|
363
|
+
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
return promise;
|
|
367
|
+
|
|
217
368
|
}
|
|
218
369
|
|
|
219
370
|
static cache<T>(url: string, response?: AxiosResponse<T>, options?: SDKCallOptions) {
|
|
@@ -657,6 +808,193 @@ export default class StudioSDK {
|
|
|
657
808
|
|
|
658
809
|
|
|
659
810
|
|
|
811
|
+
},
|
|
812
|
+
|
|
813
|
+
storage: {
|
|
814
|
+
|
|
815
|
+
listProject: (bucket: string, site: number = 1, options?: { assetId?: string[] }) => StudioSDK.handleCall<DataObject<any>>(
|
|
816
|
+
{
|
|
817
|
+
method: 'GET',
|
|
818
|
+
url: this.getUrl('media', ['members', bucket, this.company, this.project, 'list', site.toString()]),
|
|
819
|
+
headers: this.getHeaders(),
|
|
820
|
+
params: options,
|
|
821
|
+
},
|
|
822
|
+
{
|
|
823
|
+
group: 'storage',
|
|
824
|
+
action: 'listProject',
|
|
825
|
+
},
|
|
826
|
+
),
|
|
827
|
+
|
|
828
|
+
listCompany: (bucket: string, site: number = 1, options?: { assetId?: string[] }) => StudioSDK.handleCall<DataObject<any>>(
|
|
829
|
+
{
|
|
830
|
+
method: 'GET',
|
|
831
|
+
url: this.getUrl('media', ['members', bucket, this.company, 'list', site.toString()]),
|
|
832
|
+
headers: this.getHeaders(),
|
|
833
|
+
params: options,
|
|
834
|
+
},
|
|
835
|
+
{
|
|
836
|
+
group: 'storage',
|
|
837
|
+
action: 'listCompany',
|
|
838
|
+
},
|
|
839
|
+
),
|
|
840
|
+
|
|
841
|
+
remove: (bucket: string, internalId: ObjectIdString) => {
|
|
842
|
+
const path = bucket === 'customers'
|
|
843
|
+
? ['members', bucket, this.company, internalId]
|
|
844
|
+
: ['members', bucket, this.company, this.project, internalId];
|
|
845
|
+
|
|
846
|
+
return StudioSDK.handleCall<any>(
|
|
847
|
+
{
|
|
848
|
+
method: 'DELETE',
|
|
849
|
+
url: this.getUrl('media', path),
|
|
850
|
+
headers: this.getHeaders(),
|
|
851
|
+
},
|
|
852
|
+
);
|
|
853
|
+
},
|
|
854
|
+
|
|
855
|
+
token: (bucket: string, scope: 'company' | 'project') => StudioSDK.handleCall<{token: string, expiresIn: number, createdAt: number, expiresAt: number}>(
|
|
856
|
+
{
|
|
857
|
+
method: 'GET',
|
|
858
|
+
url: this.getUrl('media', ['members', bucket, this.company, ...(scope === 'project' ? [this.project] : []), 'token']),
|
|
859
|
+
headers: this.getHeaders(),
|
|
860
|
+
},
|
|
861
|
+
),
|
|
862
|
+
|
|
863
|
+
createUpload: (payload: {
|
|
864
|
+
filename: string,
|
|
865
|
+
size: number,
|
|
866
|
+
mimetype: string,
|
|
867
|
+
chunks: number,
|
|
868
|
+
list?: ObjectIdString,
|
|
869
|
+
options?: UploadOptions,
|
|
870
|
+
}, bucket: string) => {
|
|
871
|
+
|
|
872
|
+
return StudioSDK.handleCall<string>(
|
|
873
|
+
{
|
|
874
|
+
method: 'POST',
|
|
875
|
+
url: this.getUrl('media', ['members', bucket, this.company, this.project, 'upload']),
|
|
876
|
+
headers: this.getHeaders(),
|
|
877
|
+
data: payload,
|
|
878
|
+
},
|
|
879
|
+
);
|
|
880
|
+
},
|
|
881
|
+
|
|
882
|
+
uploadChunk: (uploadId: string, bucket: string, chunkIndex: number, chunk: Blob) => this.withRetry(async () => {
|
|
883
|
+
|
|
884
|
+
const form = new FormData();
|
|
885
|
+
form.append('file', chunk);
|
|
886
|
+
form.append('index', chunkIndex.toString());
|
|
887
|
+
|
|
888
|
+
const response = await axios.request({
|
|
889
|
+
method: 'POST',
|
|
890
|
+
url: this.getUrl('media', ['members', bucket, this.company, this.project, uploadId]),
|
|
891
|
+
headers: this.getHeaders(),
|
|
892
|
+
data: form,
|
|
893
|
+
});
|
|
894
|
+
|
|
895
|
+
return { data: response.data, status: response.status } as SDKResponse<unknown>;
|
|
896
|
+
|
|
897
|
+
}),
|
|
898
|
+
|
|
899
|
+
upload: async (file: UploadFile, bucket: string, options: UploadOptions = {}, onProgress?: UploadProgressCallback): Promise<UploadResult> => {
|
|
900
|
+
|
|
901
|
+
const emit = (phase: UploadProgressPhase) => onProgress?.({ ...phase, file });
|
|
902
|
+
const totalChunks = StudioSDK.calculateChunks(file.size, this.uploadConfig.chunkSize);
|
|
903
|
+
|
|
904
|
+
emit({ phase: 'create-upload-start' });
|
|
905
|
+
|
|
906
|
+
let uploadId: string;
|
|
907
|
+
|
|
908
|
+
try {
|
|
909
|
+
|
|
910
|
+
const { list, thumbnails, overwrite, contentId, structureInternalId, moduleUuid } = options;
|
|
911
|
+
const createRes = await this.members.storage.createUpload({
|
|
912
|
+
filename: file.filename,
|
|
913
|
+
size: file.size,
|
|
914
|
+
mimetype: file.mimetype,
|
|
915
|
+
chunks: totalChunks,
|
|
916
|
+
list,
|
|
917
|
+
options: { thumbnails, overwrite, contentId, structureInternalId, moduleUuid },
|
|
918
|
+
},
|
|
919
|
+
bucket);
|
|
920
|
+
uploadId = createRes.data;
|
|
921
|
+
|
|
922
|
+
} catch (error) {
|
|
923
|
+
|
|
924
|
+
emit({ phase: 'error', error });
|
|
925
|
+
throw error;
|
|
926
|
+
|
|
927
|
+
}
|
|
928
|
+
|
|
929
|
+
emit({ phase: 'create-upload-done', uploadId });
|
|
930
|
+
|
|
931
|
+
const blob = StudioSDK.toBlob(file.data);
|
|
932
|
+
|
|
933
|
+
for (let i = 0; i < totalChunks; i++) {
|
|
934
|
+
|
|
935
|
+
const start = i * this.uploadConfig.chunkSize;
|
|
936
|
+
const end = Math.min(start + this.uploadConfig.chunkSize, blob.size);
|
|
937
|
+
const chunk = blob.slice(start, end);
|
|
938
|
+
|
|
939
|
+
emit({ phase: 'chunk-start', chunkIndex: i, totalChunks });
|
|
940
|
+
|
|
941
|
+
try {
|
|
942
|
+
|
|
943
|
+
await this.members.storage.uploadChunk(uploadId, bucket, i, chunk);
|
|
944
|
+
|
|
945
|
+
} catch (error) {
|
|
946
|
+
|
|
947
|
+
emit({ phase: 'error', error });
|
|
948
|
+
throw error;
|
|
949
|
+
|
|
950
|
+
}
|
|
951
|
+
|
|
952
|
+
emit({ phase: 'chunk-done', chunkIndex: i, totalChunks });
|
|
953
|
+
|
|
954
|
+
}
|
|
955
|
+
|
|
956
|
+
emit({ phase: 'done', uploadId });
|
|
957
|
+
|
|
958
|
+
return { uploadId, filename: file.filename };
|
|
959
|
+
|
|
960
|
+
},
|
|
961
|
+
|
|
962
|
+
uploadMultiple: async (files: UploadFile[], bucket: string, options: UploadOptions = {}, onProgress?: UploadProgressCallback): Promise<UploadMultipleResult> => {
|
|
963
|
+
|
|
964
|
+
const totalFiles = files.length;
|
|
965
|
+
const results: UploadMultipleResult['results'] = [];
|
|
966
|
+
let successCount = 0;
|
|
967
|
+
let failureCount = 0;
|
|
968
|
+
|
|
969
|
+
await StudioSDK.batch(
|
|
970
|
+
files,
|
|
971
|
+
async (file, index) => {
|
|
972
|
+
|
|
973
|
+
const wrapped: UploadProgressCallback | undefined = onProgress
|
|
974
|
+
? (event) => onProgress({ ...event, fileIndex: index, totalFiles })
|
|
975
|
+
: undefined;
|
|
976
|
+
|
|
977
|
+
try {
|
|
978
|
+
|
|
979
|
+
const result = await this.members.storage.upload(file, bucket, options, wrapped);
|
|
980
|
+
results[index] = { file, uploadId: result.uploadId };
|
|
981
|
+
successCount++;
|
|
982
|
+
|
|
983
|
+
} catch (error) {
|
|
984
|
+
|
|
985
|
+
results[index] = { file, error };
|
|
986
|
+
failureCount++;
|
|
987
|
+
|
|
988
|
+
}
|
|
989
|
+
|
|
990
|
+
},
|
|
991
|
+
this.uploadConfig.concurrency,
|
|
992
|
+
);
|
|
993
|
+
|
|
994
|
+
return { successCount, failureCount, results };
|
|
995
|
+
|
|
996
|
+
},
|
|
997
|
+
|
|
660
998
|
}
|
|
661
999
|
};
|
|
662
1000
|
|
package/lib/index.d.ts
CHANGED
|
@@ -38,6 +38,65 @@ export type SDKCallOptions = {
|
|
|
38
38
|
*/
|
|
39
39
|
cacheLifetime?: number;
|
|
40
40
|
};
|
|
41
|
+
export type UploadFile = {
|
|
42
|
+
filename: string;
|
|
43
|
+
size: number;
|
|
44
|
+
mimetype: string;
|
|
45
|
+
data: Blob | ArrayBuffer | Uint8Array;
|
|
46
|
+
};
|
|
47
|
+
export type UploadOptions = {
|
|
48
|
+
list?: ObjectIdString;
|
|
49
|
+
thumbnails?: boolean;
|
|
50
|
+
overwrite?: boolean;
|
|
51
|
+
contentId?: ObjectIdString;
|
|
52
|
+
structureInternalId?: ObjectIdString;
|
|
53
|
+
moduleUuid?: string;
|
|
54
|
+
};
|
|
55
|
+
export type UploadConfig = {
|
|
56
|
+
chunkSize?: number;
|
|
57
|
+
retries?: number;
|
|
58
|
+
retryDelay?: number;
|
|
59
|
+
concurrency?: number;
|
|
60
|
+
};
|
|
61
|
+
export type UploadProgressPhase = {
|
|
62
|
+
phase: 'create-upload-start';
|
|
63
|
+
} | {
|
|
64
|
+
phase: 'create-upload-done';
|
|
65
|
+
uploadId: string;
|
|
66
|
+
} | {
|
|
67
|
+
phase: 'chunk-start';
|
|
68
|
+
chunkIndex: number;
|
|
69
|
+
totalChunks: number;
|
|
70
|
+
} | {
|
|
71
|
+
phase: 'chunk-done';
|
|
72
|
+
chunkIndex: number;
|
|
73
|
+
totalChunks: number;
|
|
74
|
+
} | {
|
|
75
|
+
phase: 'done';
|
|
76
|
+
uploadId: string;
|
|
77
|
+
} | {
|
|
78
|
+
phase: 'error';
|
|
79
|
+
error: unknown;
|
|
80
|
+
};
|
|
81
|
+
export type UploadProgressEvent = UploadProgressPhase & {
|
|
82
|
+
file: UploadFile;
|
|
83
|
+
fileIndex?: number;
|
|
84
|
+
totalFiles?: number;
|
|
85
|
+
};
|
|
86
|
+
export type UploadProgressCallback = (event: UploadProgressEvent) => void;
|
|
87
|
+
export type UploadResult = {
|
|
88
|
+
uploadId: string;
|
|
89
|
+
filename: string;
|
|
90
|
+
};
|
|
91
|
+
export type UploadMultipleResult = {
|
|
92
|
+
successCount: number;
|
|
93
|
+
failureCount: number;
|
|
94
|
+
results: {
|
|
95
|
+
file: UploadFile;
|
|
96
|
+
uploadId?: string;
|
|
97
|
+
error?: unknown;
|
|
98
|
+
}[];
|
|
99
|
+
};
|
|
41
100
|
export default class StudioSDK {
|
|
42
101
|
readonly endpoints: {
|
|
43
102
|
live: {
|
|
@@ -70,8 +129,16 @@ export default class StudioSDK {
|
|
|
70
129
|
media: string;
|
|
71
130
|
};
|
|
72
131
|
universalModel?: string;
|
|
132
|
+
upload?: UploadConfig;
|
|
73
133
|
};
|
|
134
|
+
uploadConfig: Required<UploadConfig>;
|
|
135
|
+
static RETRY_STATUS_CODES: ReadonlySet<number>;
|
|
74
136
|
constructor(options: StudioSDK['options']);
|
|
137
|
+
static calculateChunks(fileSize: number, chunkSize: number): number;
|
|
138
|
+
static toBlob(data: Blob | ArrayBuffer | Uint8Array): Blob;
|
|
139
|
+
static batch<T>(items: T[], fn: (item: T, index: number) => Promise<void>, concurrency: number): Promise<void>;
|
|
140
|
+
private sleepBackoff;
|
|
141
|
+
private withRetry;
|
|
75
142
|
private getUrl;
|
|
76
143
|
private getHeaders;
|
|
77
144
|
static getCacheKeyMock(url: string): string;
|
|
@@ -147,6 +214,32 @@ export default class StudioSDK {
|
|
|
147
214
|
isConnected: () => Promise<SDKResponse<any>>;
|
|
148
215
|
emailConfirmed: () => Promise<SDKResponse<any>>;
|
|
149
216
|
};
|
|
217
|
+
storage: {
|
|
218
|
+
listProject: (bucket: string, site?: number, options?: {
|
|
219
|
+
assetId?: string[];
|
|
220
|
+
}) => Promise<SDKResponse<DataObject<any>>>;
|
|
221
|
+
listCompany: (bucket: string, site?: number, options?: {
|
|
222
|
+
assetId?: string[];
|
|
223
|
+
}) => Promise<SDKResponse<DataObject<any>>>;
|
|
224
|
+
remove: (bucket: string, internalId: ObjectIdString) => Promise<SDKResponse<any>>;
|
|
225
|
+
token: (bucket: string, scope: "company" | "project") => Promise<SDKResponse<{
|
|
226
|
+
token: string;
|
|
227
|
+
expiresIn: number;
|
|
228
|
+
createdAt: number;
|
|
229
|
+
expiresAt: number;
|
|
230
|
+
}>>;
|
|
231
|
+
createUpload: (payload: {
|
|
232
|
+
filename: string;
|
|
233
|
+
size: number;
|
|
234
|
+
mimetype: string;
|
|
235
|
+
chunks: number;
|
|
236
|
+
list?: ObjectIdString;
|
|
237
|
+
options?: UploadOptions;
|
|
238
|
+
}, bucket: string) => Promise<SDKResponse<string>>;
|
|
239
|
+
uploadChunk: (uploadId: string, bucket: string, chunkIndex: number, chunk: Blob) => Promise<SDKResponse<unknown>>;
|
|
240
|
+
upload: (file: UploadFile, bucket: string, options?: UploadOptions, onProgress?: UploadProgressCallback) => Promise<UploadResult>;
|
|
241
|
+
uploadMultiple: (files: UploadFile[], bucket: string, options?: UploadOptions, onProgress?: UploadProgressCallback) => Promise<UploadMultipleResult>;
|
|
242
|
+
};
|
|
150
243
|
};
|
|
151
244
|
editor: {
|
|
152
245
|
getById: (id: string) => Promise<SDKResponse<Content>>;
|
package/lib/index.js
CHANGED
|
@@ -1,7 +1,17 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
1
10
|
import axios from 'axios';
|
|
2
11
|
import { hardCopy } from '@lilaquadrat/studio/lib/esm/frontend';
|
|
3
12
|
let cachedCalls = {};
|
|
4
|
-
|
|
13
|
+
let inFlightCalls = {};
|
|
14
|
+
class StudioSDK {
|
|
5
15
|
constructor(options) {
|
|
6
16
|
this.endpoints = {
|
|
7
17
|
live: {
|
|
@@ -19,6 +29,12 @@ export default class StudioSDK {
|
|
|
19
29
|
};
|
|
20
30
|
this.mode = 'custom';
|
|
21
31
|
this.options = { app: '' };
|
|
32
|
+
this.uploadConfig = {
|
|
33
|
+
chunkSize: 6 * 1024 * 1024,
|
|
34
|
+
retries: 3,
|
|
35
|
+
retryDelay: 500,
|
|
36
|
+
concurrency: 5,
|
|
37
|
+
};
|
|
22
38
|
this.public = {
|
|
23
39
|
content: {
|
|
24
40
|
fetch: (type, link, options) => StudioSDK.handleCall({
|
|
@@ -260,6 +276,122 @@ export default class StudioSDK {
|
|
|
260
276
|
url: this.getUrl('api', ['members', 'me', this.company, this.project, 'emailConfirmed', this.app]),
|
|
261
277
|
headers: this.getHeaders(),
|
|
262
278
|
}),
|
|
279
|
+
},
|
|
280
|
+
storage: {
|
|
281
|
+
listProject: (bucket, site = 1, options) => StudioSDK.handleCall({
|
|
282
|
+
method: 'GET',
|
|
283
|
+
url: this.getUrl('media', ['members', bucket, this.company, this.project, 'list', site.toString()]),
|
|
284
|
+
headers: this.getHeaders(),
|
|
285
|
+
params: options,
|
|
286
|
+
}, {
|
|
287
|
+
group: 'storage',
|
|
288
|
+
action: 'listProject',
|
|
289
|
+
}),
|
|
290
|
+
listCompany: (bucket, site = 1, options) => StudioSDK.handleCall({
|
|
291
|
+
method: 'GET',
|
|
292
|
+
url: this.getUrl('media', ['members', bucket, this.company, 'list', site.toString()]),
|
|
293
|
+
headers: this.getHeaders(),
|
|
294
|
+
params: options,
|
|
295
|
+
}, {
|
|
296
|
+
group: 'storage',
|
|
297
|
+
action: 'listCompany',
|
|
298
|
+
}),
|
|
299
|
+
remove: (bucket, internalId) => {
|
|
300
|
+
const path = bucket === 'customers'
|
|
301
|
+
? ['members', bucket, this.company, internalId]
|
|
302
|
+
: ['members', bucket, this.company, this.project, internalId];
|
|
303
|
+
return StudioSDK.handleCall({
|
|
304
|
+
method: 'DELETE',
|
|
305
|
+
url: this.getUrl('media', path),
|
|
306
|
+
headers: this.getHeaders(),
|
|
307
|
+
});
|
|
308
|
+
},
|
|
309
|
+
token: (bucket, scope) => StudioSDK.handleCall({
|
|
310
|
+
method: 'GET',
|
|
311
|
+
url: this.getUrl('media', ['members', bucket, this.company, ...(scope === 'project' ? [this.project] : []), 'token']),
|
|
312
|
+
headers: this.getHeaders(),
|
|
313
|
+
}),
|
|
314
|
+
createUpload: (payload, bucket) => {
|
|
315
|
+
return StudioSDK.handleCall({
|
|
316
|
+
method: 'POST',
|
|
317
|
+
url: this.getUrl('media', ['members', bucket, this.company, this.project, 'upload']),
|
|
318
|
+
headers: this.getHeaders(),
|
|
319
|
+
data: payload,
|
|
320
|
+
});
|
|
321
|
+
},
|
|
322
|
+
uploadChunk: (uploadId, bucket, chunkIndex, chunk) => this.withRetry(() => __awaiter(this, void 0, void 0, function* () {
|
|
323
|
+
const form = new FormData();
|
|
324
|
+
form.append('file', chunk);
|
|
325
|
+
form.append('index', chunkIndex.toString());
|
|
326
|
+
const response = yield axios.request({
|
|
327
|
+
method: 'POST',
|
|
328
|
+
url: this.getUrl('media', ['members', bucket, this.company, this.project, uploadId]),
|
|
329
|
+
headers: this.getHeaders(),
|
|
330
|
+
data: form,
|
|
331
|
+
});
|
|
332
|
+
return { data: response.data, status: response.status };
|
|
333
|
+
})),
|
|
334
|
+
upload: (file_1, bucket_1, ...args_1) => __awaiter(this, [file_1, bucket_1, ...args_1], void 0, function* (file, bucket, options = {}, onProgress) {
|
|
335
|
+
const emit = (phase) => onProgress === null || onProgress === void 0 ? void 0 : onProgress(Object.assign(Object.assign({}, phase), { file }));
|
|
336
|
+
const totalChunks = StudioSDK.calculateChunks(file.size, this.uploadConfig.chunkSize);
|
|
337
|
+
emit({ phase: 'create-upload-start' });
|
|
338
|
+
let uploadId;
|
|
339
|
+
try {
|
|
340
|
+
const { list, thumbnails, overwrite, contentId, structureInternalId, moduleUuid } = options;
|
|
341
|
+
const createRes = yield this.members.storage.createUpload({
|
|
342
|
+
filename: file.filename,
|
|
343
|
+
size: file.size,
|
|
344
|
+
mimetype: file.mimetype,
|
|
345
|
+
chunks: totalChunks,
|
|
346
|
+
list,
|
|
347
|
+
options: { thumbnails, overwrite, contentId, structureInternalId, moduleUuid },
|
|
348
|
+
}, bucket);
|
|
349
|
+
uploadId = createRes.data;
|
|
350
|
+
}
|
|
351
|
+
catch (error) {
|
|
352
|
+
emit({ phase: 'error', error });
|
|
353
|
+
throw error;
|
|
354
|
+
}
|
|
355
|
+
emit({ phase: 'create-upload-done', uploadId });
|
|
356
|
+
const blob = StudioSDK.toBlob(file.data);
|
|
357
|
+
for (let i = 0; i < totalChunks; i++) {
|
|
358
|
+
const start = i * this.uploadConfig.chunkSize;
|
|
359
|
+
const end = Math.min(start + this.uploadConfig.chunkSize, blob.size);
|
|
360
|
+
const chunk = blob.slice(start, end);
|
|
361
|
+
emit({ phase: 'chunk-start', chunkIndex: i, totalChunks });
|
|
362
|
+
try {
|
|
363
|
+
yield this.members.storage.uploadChunk(uploadId, bucket, i, chunk);
|
|
364
|
+
}
|
|
365
|
+
catch (error) {
|
|
366
|
+
emit({ phase: 'error', error });
|
|
367
|
+
throw error;
|
|
368
|
+
}
|
|
369
|
+
emit({ phase: 'chunk-done', chunkIndex: i, totalChunks });
|
|
370
|
+
}
|
|
371
|
+
emit({ phase: 'done', uploadId });
|
|
372
|
+
return { uploadId, filename: file.filename };
|
|
373
|
+
}),
|
|
374
|
+
uploadMultiple: (files_1, bucket_1, ...args_1) => __awaiter(this, [files_1, bucket_1, ...args_1], void 0, function* (files, bucket, options = {}, onProgress) {
|
|
375
|
+
const totalFiles = files.length;
|
|
376
|
+
const results = [];
|
|
377
|
+
let successCount = 0;
|
|
378
|
+
let failureCount = 0;
|
|
379
|
+
yield StudioSDK.batch(files, (file, index) => __awaiter(this, void 0, void 0, function* () {
|
|
380
|
+
const wrapped = onProgress
|
|
381
|
+
? (event) => onProgress(Object.assign(Object.assign({}, event), { fileIndex: index, totalFiles }))
|
|
382
|
+
: undefined;
|
|
383
|
+
try {
|
|
384
|
+
const result = yield this.members.storage.upload(file, bucket, options, wrapped);
|
|
385
|
+
results[index] = { file, uploadId: result.uploadId };
|
|
386
|
+
successCount++;
|
|
387
|
+
}
|
|
388
|
+
catch (error) {
|
|
389
|
+
results[index] = { file, error };
|
|
390
|
+
failureCount++;
|
|
391
|
+
}
|
|
392
|
+
}), this.uploadConfig.concurrency);
|
|
393
|
+
return { successCount, failureCount, results };
|
|
394
|
+
}),
|
|
263
395
|
}
|
|
264
396
|
};
|
|
265
397
|
this.editor = {
|
|
@@ -476,6 +608,59 @@ export default class StudioSDK {
|
|
|
476
608
|
this.app = options.app;
|
|
477
609
|
if (options.universalModel)
|
|
478
610
|
this.universalModel = options.universalModel;
|
|
611
|
+
if (options.upload)
|
|
612
|
+
this.uploadConfig = Object.assign(Object.assign({}, this.uploadConfig), options.upload);
|
|
613
|
+
}
|
|
614
|
+
static calculateChunks(fileSize, chunkSize) {
|
|
615
|
+
if (fileSize > chunkSize)
|
|
616
|
+
return Math.ceil(fileSize / chunkSize);
|
|
617
|
+
return 1;
|
|
618
|
+
}
|
|
619
|
+
static toBlob(data) {
|
|
620
|
+
if (data instanceof Blob)
|
|
621
|
+
return data;
|
|
622
|
+
return new Blob([data]);
|
|
623
|
+
}
|
|
624
|
+
static batch(items, fn, concurrency) {
|
|
625
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
626
|
+
let cursor = 0;
|
|
627
|
+
const workers = Array.from({ length: Math.min(concurrency, items.length || 1) }, () => __awaiter(this, void 0, void 0, function* () {
|
|
628
|
+
while (true) {
|
|
629
|
+
const idx = cursor++;
|
|
630
|
+
if (idx >= items.length)
|
|
631
|
+
break;
|
|
632
|
+
yield fn(items[idx], idx);
|
|
633
|
+
}
|
|
634
|
+
}));
|
|
635
|
+
yield Promise.all(workers);
|
|
636
|
+
});
|
|
637
|
+
}
|
|
638
|
+
sleepBackoff(attempt) {
|
|
639
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
640
|
+
const cap = this.uploadConfig.retryDelay * Math.pow(2, attempt);
|
|
641
|
+
const backoff = Math.random() * cap;
|
|
642
|
+
yield new Promise((resolve) => setTimeout(resolve, backoff));
|
|
643
|
+
});
|
|
644
|
+
}
|
|
645
|
+
withRetry(fn) {
|
|
646
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
647
|
+
var _a;
|
|
648
|
+
let lastError;
|
|
649
|
+
for (let attempt = 0; attempt <= this.uploadConfig.retries; attempt++) {
|
|
650
|
+
try {
|
|
651
|
+
return yield fn();
|
|
652
|
+
}
|
|
653
|
+
catch (error) {
|
|
654
|
+
lastError = error;
|
|
655
|
+
const status = (_a = error === null || error === void 0 ? void 0 : error.response) === null || _a === void 0 ? void 0 : _a.status;
|
|
656
|
+
const retryable = !status || StudioSDK.RETRY_STATUS_CODES.has(status);
|
|
657
|
+
if (!retryable || attempt >= this.uploadConfig.retries)
|
|
658
|
+
throw error;
|
|
659
|
+
yield this.sleepBackoff(attempt);
|
|
660
|
+
}
|
|
661
|
+
}
|
|
662
|
+
throw lastError;
|
|
663
|
+
});
|
|
479
664
|
}
|
|
480
665
|
getUrl(type, methodArray) {
|
|
481
666
|
const method = methodArray.filter((single) => single);
|
|
@@ -527,18 +712,29 @@ export default class StudioSDK {
|
|
|
527
712
|
// console.groupEnd();
|
|
528
713
|
// return Promise.resolve({ data: mockJs[key].data as T, status: mockJs[key].status });
|
|
529
714
|
// }
|
|
715
|
+
const url = axios.getUri(call);
|
|
530
716
|
if (call.method === 'GET' && !(options === null || options === void 0 ? void 0 : options.bypassCache)) {
|
|
531
|
-
const cacheHit = StudioSDK.cache(
|
|
717
|
+
const cacheHit = StudioSDK.cache(url, undefined, options);
|
|
532
718
|
if (cacheHit)
|
|
533
719
|
return Promise.resolve(cacheHit);
|
|
720
|
+
const dedupKey = (options === null || options === void 0 ? void 0 : options.id) ? options.id : StudioSDK.getCacheKey(url);
|
|
721
|
+
const inFlight = inFlightCalls[dedupKey];
|
|
722
|
+
if (inFlight)
|
|
723
|
+
return inFlight;
|
|
534
724
|
}
|
|
535
|
-
|
|
725
|
+
const promise = axios.request(call)
|
|
536
726
|
.then((response) => {
|
|
537
727
|
if (call.method === 'GET')
|
|
538
|
-
StudioSDK.cache(
|
|
728
|
+
StudioSDK.cache(url, response, options);
|
|
539
729
|
return response;
|
|
540
730
|
})
|
|
541
731
|
.then((response) => ({ data: response.data, status: response.status }));
|
|
732
|
+
if (call.method === 'GET' && !(options === null || options === void 0 ? void 0 : options.bypassCache)) {
|
|
733
|
+
const dedupKey = (options === null || options === void 0 ? void 0 : options.id) ? options.id : StudioSDK.getCacheKey(url);
|
|
734
|
+
inFlightCalls[dedupKey] = promise;
|
|
735
|
+
promise.finally(() => { delete inFlightCalls[dedupKey]; });
|
|
736
|
+
}
|
|
737
|
+
return promise;
|
|
542
738
|
}
|
|
543
739
|
static cache(url, response, options) {
|
|
544
740
|
const key = (options === null || options === void 0 ? void 0 : options.id) ? options.id : StudioSDK.getCacheKey(url);
|
|
@@ -601,4 +797,6 @@ export default class StudioSDK {
|
|
|
601
797
|
delete cachedCalls[id];
|
|
602
798
|
}
|
|
603
799
|
}
|
|
800
|
+
StudioSDK.RETRY_STATUS_CODES = new Set([408, 425, 429, 500, 502, 503, 504]);
|
|
801
|
+
export default StudioSDK;
|
|
604
802
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAEjF,OAAO,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AA+ChE,IAAI,WAAW,GAAoD,EAAE,CAAC;AAEtE,MAAM,CAAC,OAAO,OAAO,SAAS;IAwC5B,YAAY,OAA6B;QAtChC,cAAS,GAAG;YACnB,IAAI,EAAE;gBACJ,GAAG,EAAE,gCAAgC;gBACrC,KAAK,EAAE,kCAAkC;aAC1C;YACD,IAAI,EAAE;gBACJ,GAAG,EAAE,6BAA6B;gBAClC,KAAK,EAAE,+BAA+B;aACvC;SACF,CAAC;QAEF,oBAAe,GAAG;YAChB,GAAG,EAAE,EAAE;YACP,KAAK,EAAE,EAAE;SACV,CAAC;QAIF,SAAI,GAA+B,QAAQ,CAAC;QAU5C,YAAO,GAQH,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;QA8NhB,WAAM,GAAG;YACP,OAAO,EAAE;gBAEP,KAAK,EAAE,CAAC,IAAY,EAAE,IAAY,EAAE,OAAyC,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CACpG;oBACE,MAAM,EAAE,KAAK;oBACb,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;oBAC1D,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;oBAC1B,MAAM,EAAE,OAAO;iBAChB,CACF;gBAED,MAAM,EAAE,CAAC,IAAY,EAAE,MAAc,EAAE,OAAe,CAAC,EAAE,OAAyC,EAAE,EAAE;oBAEpG,MAAM,MAAM,mBAAK,MAAM,IAAK,OAAO,CAAE,CAAC;oBAEtC,OAAO,SAAS,CAAC,UAAU,CACzB;wBACE,MAAM,EAAE,KAAK;wBACb,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;wBAC/E,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;wBAC1B,MAAM;qBACP,CACF,CAAC;gBAEJ,CAAC;gBAED,UAAU,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAC9C;oBACE,MAAM,EAAE,KAAK;oBACb,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;oBAC3E,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;iBAC3B,EACD;oBACE,KAAK,EAAE,QAAQ;oBACf,MAAM,EAAE,QAAQ;oBAChB,EAAE;iBACH,CACF;gBAED,gBAAgB,EAAE,CAAC,UAAoB,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAC9D;oBACE,MAAM,EAAE,KAAK;oBACb,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;oBACjF,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;oBAC1B,MAAM,EAAE;wBACN,QAAQ,EAAE,UAAU;qBACrB;iBACF,EACD;oBACE,KAAK,EAAE,QAAQ;oBACf,MAAM,EAAE,QAAQ;iBACjB,CACF;gBAED,OAAO,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAC3C;oBACE,MAAM,EAAE,KAAK;oBACb,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;oBAC9E,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;iBAC3B,EACD;oBACE,KAAK,EAAE,QAAQ;oBACf,MAAM,EAAE,QAAQ;oBAChB,EAAE;iBACH,CACF;gBAED,aAAa,EAAE,CAAC,QAAgB,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CACvD;oBACE,MAAM,EAAE,KAAK;oBACb,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;oBACtF,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;oBAC1B,MAAM,EAAE;wBACN,QAAQ;qBACT;iBACF,EACD;oBACE,KAAK,EAAE,QAAQ;oBACf,MAAM,EAAE,QAAQ;oBAChB,EAAE,EAAE,QAAQ;iBACb,CACF;gBAED,eAAe,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CACnD;oBACE,MAAM,EAAE,KAAK;oBACb,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;oBAC1F,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;iBAC3B,EACD;oBACE,KAAK,EAAE,QAAQ;oBACf,MAAM,EAAE,QAAQ;oBAChB,EAAE;iBACH,CACF;aAEF;YAED,KAAK,EAAE;gBACL,IAAI,EAAE,CAAC,MAAc,EAAE,MAAe,EAAE,OAA2B,EAAE,QAAgB,EAAE,UAA8B,EAAE,SAA6C,EAAE,OAAiD,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAC9O;oBACE,MAAM,EAAE,MAAM;oBACd,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;oBACxG,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;oBAC1B,IAAI,EAAE;wBACJ,MAAM;wBACN,UAAU;wBACV,OAAO;wBACP,QAAQ;wBACR,SAAS;wBACT,OAAO;qBACR;iBACF,CACF;gBACD,OAAO,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAChD;oBACE,MAAM,EAAE,KAAK;oBACb,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;oBACnG,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;oBAC1B,MAAM,EAAE;wBACN,OAAO;qBACR;iBACF,CACF;gBACD,KAAK,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAC7C;oBACE,MAAM,EAAE,KAAK;oBACb,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;oBACzF,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;iBAC3B,CACF;aACF;YAED,KAAK,EAAE;gBACL,MAAM,EAAC,CAAC,IAA2C,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAC1E;oBACE,MAAM,EAAE,MAAM;oBACd,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;oBACxE,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;oBAC1B,IAAI,EAAE,IAAI;iBACX,CACF;gBACD,MAAM,EAAC,CAAC,UAA0B,EAAE,KAAU,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CACrE;oBACE,MAAM,EAAE,KAAK;oBACb,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;oBACpF,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;oBAC1B,IAAI,EAAE,KAAK;iBACZ,CACF;gBACD,OAAO,EAAC,CAAC,UAA0B,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAC1D;oBACE,MAAM,EAAE,KAAK;oBACb,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;oBACpF,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;iBAC3B,CACF;gBACD,eAAe,EAAC,CAAC,UAA0B,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAClE;oBACE,MAAM,EAAE,KAAK;oBACb,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;oBAChG,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;iBAC3B,CACF;gBACD,UAAU,EAAC,CAAC,EAAU,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAC7C;oBACE,MAAM,EAAE,KAAK;oBACb,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;oBACvF,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;iBAC3B,CACF;gBACD,QAAQ,EAAC,CAAC,UAA0B,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAC3D;oBACE,MAAM,EAAE,KAAK;oBACb,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;oBAChG,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;iBAC3B,CACF;aACF;SACF,CAAC;QAEF,YAAO,GAAG;YACR,OAAO,EAAE;gBAEP,KAAK,EAAE,CAAC,IAAY,EAAE,IAAY,EAAE,OAAyC,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CACpG;oBACE,MAAM,EAAE,KAAK;oBACb,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;oBAC3D,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;oBAC1B,MAAM,EAAE,OAAO;iBAChB,CACF;gBAED,MAAM,EAAE,CAAC,IAAY,EAAE,MAAc,EAAE,OAAe,CAAC,EAAE,OAAyC,EAAE,EAAE;oBAEpG,MAAM,MAAM,mBAAK,MAAM,IAAK,OAAO,CAAE,CAAC;oBAEtC,OAAO,SAAS,CAAC,UAAU,CACzB;wBACE,MAAM,EAAE,KAAK;wBACb,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;wBAChF,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;wBAC1B,MAAM;qBACP,CACF,CAAC;gBAEJ,CAAC;gBAED,OAAO,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAC3C;oBACE,MAAM,EAAE,KAAK;oBACb,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;oBAC/E,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;iBAC3B,EACD;oBACE,KAAK,EAAE,QAAQ;oBACf,MAAM,EAAE,QAAQ;oBAChB,EAAE;iBACH,CACF;gBAGD,aAAa,EAAE,CAAC,QAAgB,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CACvD;oBACE,MAAM,EAAE,KAAK;oBACb,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;oBACvF,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;oBAC1B,MAAM,EAAE;wBACN,QAAQ;qBACT;iBACF,EACD;oBACE,KAAK,EAAE,QAAQ;oBACf,MAAM,EAAE,QAAQ;oBAChB,EAAE,EAAE,QAAQ;iBACb,CACF;gBAGD,eAAe,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CACnD;oBACE,MAAM,EAAE,KAAK;oBACb,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;oBAC3F,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;iBAC3B,EACD;oBACE,KAAK,EAAE,QAAQ;oBACf,MAAM,EAAE,QAAQ;oBAChB,EAAE;iBACH,CACF;aAEF;YAED,KAAK,EAAE;gBAEL,IAAI,EAAE,CAAC,MAAc,EAAE,OAA2B,EAAE,QAAgB,EAAE,UAA8B,EAAE,SAA6C,EAAE,OAAiD,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAC7N;oBACE,MAAM,EAAE,MAAM;oBACd,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;oBACzG,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;oBAC1B,IAAI,EAAE;wBACJ,UAAU;wBACV,OAAO;wBACP,QAAQ;wBACR,SAAS;wBACT,OAAO;qBACR;iBACF,CACF;gBAED;;mBAEG;gBACH,KAAK,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAC7C;oBACE,MAAM,EAAE,KAAK;oBACb,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;oBACjF,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;iBAC3B,EACD;oBACE,KAAK,EAAE,OAAO;oBACd,MAAM,EAAE,OAAO;oBACf,EAAE,EAAE,MAAM;iBACX,CACF;aAEF;YAED,EAAE,EAAE;gBAEF,OAAO,EAAE,CAAC,UAAkB,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CACnD;oBACE,MAAM,EAAE,KAAK;oBACb,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;oBACjF,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;oBAC1B,IAAI,EAAE,EAAE,UAAU,EAAE;iBACrB,CACF;gBAED,YAAY,EAAE,CAAC,gBAAwB,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAC9D;oBACE,MAAM,EAAE,KAAK;oBACb,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;oBACjF,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;oBAC1B,IAAI,EAAE,EAAE,gBAAgB,EAAE;iBAC3B,CACF;gBAED,sBAAsB,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,UAAU,CAChD;oBACE,MAAM,EAAE,MAAM;oBACd,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,wBAAwB,CAAC,CAAC;oBAChG,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;iBAC3B,CACF;gBAED,GAAG,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,UAAU,CAC7B;oBACE,MAAM,EAAE,KAAK;oBACb,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;oBACtE,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;iBAC3B,EACD;oBACE,KAAK,EAAE,IAAI;oBACX,MAAM,EAAE,KAAK;iBACd,CACF;gBAED,WAAW,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,UAAU,CACrC;oBACE,MAAM,EAAE,MAAM;oBACd,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC7F,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;iBAC3B,CACF;gBAED,cAAc,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,UAAU,CACxC;oBACE,MAAM,EAAE,MAAM;oBACd,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;oBAClG,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;iBAC3B,CACF;aAIF;SACF,CAAC;QAGF,WAAM,GAAG;YACP,OAAO,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAC3C;gBACE,MAAM,EAAE,KAAK;gBACb,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBACnE,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;aAC3B,EACD;gBACE,KAAK,EAAE,QAAQ;gBACf,MAAM,EAAE,QAAQ;gBAChB,EAAE;aACH,CACF;YAED,eAAe,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CACnD;gBACE,MAAM,EAAE,KAAK;gBACb,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;gBAC/E,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;aAC3B,EACD;gBACE,KAAK,EAAE,QAAQ;gBACf,MAAM,EAAE,QAAQ;gBAChB,EAAE;aACH,CACF;YAGD,QAAQ,EAAE,CAAC,IAA0C,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAC5E;gBACE,MAAM,EAAE,KAAK;gBACb,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;gBAC3E,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;aAC3B,EACD;gBACE,KAAK,EAAE,QAAQ;gBACf,MAAM,EAAE,UAAU;aACnB,CACF;YAED,IAAI,EAAE,CAAC,OAAe,CAAC,EAAE,IAAa,EAAE,KAAc,EAAE,OAAqG,EAAE,EAAE;gBAE/J,MAAM,MAAM,mBACV,IAAI;oBACJ,KAAK,IACF,CAAC,OAAO,IAAI,EAAE,CAAC,CACnB,CAAC;gBAEF,OAAO,SAAS,CAAC,UAAU,CACzB;oBACE,MAAM,EAAE,KAAK;oBACb,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;oBACxF,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;oBAC1B,MAAM;iBACP,EACD;oBACE,KAAK,EAAE,QAAQ;oBACf,MAAM,EAAE,MAAM;iBACf,CACF,CAAC;YAEJ,CAAC;SACF,CAAC;QAEF,WAAM,GAAG;YAEP,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,UAAU,CAChC;gBACE,MAAM,EAAE,KAAK;gBACb,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC;gBACnC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;aAC3B,CACF;SAEF,CAAC;QAEF,cAAS,GAAG;YAEV,IAAI,EAAE,CAAC,OAAe,CAAC,EAAE,MAAe,EAAE,IAAe,EAAE,IAAa,EAAE,IAAa,EAAE,KAAc,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAC9H;gBACE,MAAM,EAAE,KAAK;gBACb,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC3F,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;gBAC1B,MAAM,EAAE;oBACN,MAAM;oBACN,IAAI;oBACJ,IAAI;oBACJ,KAAK;oBACL,IAAI;iBACL;aACF,EACD;gBACE,KAAK,EAAE,WAAW;gBAClB,MAAM,EAAE,MAAM;aACf,CACF;YAED,MAAM,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAC1C;gBACE,MAAM,EAAE,KAAK;gBACb,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBACtE,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;aAC3B,EACD;gBACE,KAAK,EAAE,WAAW;gBAClB,MAAM,EAAE,QAAQ;gBAChB,EAAE;aACH,CACF;YAED,IAAI,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAC5C;gBACE,MAAM,EAAE,KAAK;gBACb,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;gBAClF,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;aAC3B,EACD;gBACE,KAAK,EAAE,WAAW;gBAClB,MAAM,EAAE,MAAM;aACf,CACF;YAED,MAAM,EAAE,CAAC,EAAU,EAAE,IAAe,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAC3D;gBACE,MAAM,EAAE,KAAK;gBACb,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBACtE,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;gBAC1B,IAAI;aACL,CACF;YAED,GAAG,EAAE,CAAC,IAAe,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAC5C;gBACE,MAAM,EAAE,MAAM;gBACd,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;gBAClE,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;gBAC1B,IAAI;aACL,CACF;YAED,MAAM,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAC1C;gBACE,MAAM,EAAE,QAAQ;gBAChB,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBACtE,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;aAC3B,CACF;SAEF,CAAC;QAEF,UAAK,GAAG;YAEN,MAAM,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAC1C;gBACE,MAAM,EAAE,KAAK;gBACb,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAClE,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;aAC3B,EACD;gBACE,KAAK,EAAE,OAAO;gBACd,MAAM,EAAE,QAAQ;gBAChB,EAAE;aACH,CACF;YAED,GAAG,EAAE,CAAC,IAAU,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CACvC;gBACE,MAAM,EAAE,MAAM;gBACd,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC9D,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;gBAC1B,IAAI;aACL,CACF;YAED,MAAM,EAAE,CAAC,EAAU,EAAE,IAAU,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CACtD;gBACE,MAAM,EAAE,KAAK;gBACb,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAClE,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;gBAC1B,IAAI;aACL,CACF;YAED,MAAM,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAC1C;gBACE,MAAM,EAAE,QAAQ;gBAChB,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAClE,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;aAC3B,CACF;YAED,eAAe,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CACnD;gBACE,MAAM,EAAE,KAAK;gBACb,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAClE,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;aAC3B,EACD;gBACE,KAAK,EAAE,OAAO;gBACd,MAAM,EAAE,QAAQ;gBAChB,EAAE;aACH,CACF;YAED,IAAI,EAAE,CAAC,OAAe,CAAC,EAAE,MAAe,EAAE,IAAe,EAAE,KAAc,EAAE,IAAa,EAAE,KAAc,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAC/H;gBACE,MAAM,EAAE,KAAK;gBACb,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACvF,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;gBAC1B,MAAM,EAAE;oBACN,MAAM;oBACN,IAAI;oBACJ,IAAI;oBACJ,KAAK;oBACL,KAAK;iBACN;aACF,EACD;gBACE,KAAK,EAAE,OAAO;gBACd,MAAM,EAAE,MAAM;aACf,CACF;YAED,YAAY,EAAE;gBAEZ,MAAM,EAAE,CAAC,MAAc,EAAE,EAAU,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAC1D;oBACE,MAAM,EAAE,KAAK;oBACb,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;oBAC1F,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;iBAC3B,EACD;oBACE,KAAK,EAAE,kBAAkB;oBACzB,MAAM,EAAE,QAAQ;oBAChB,EAAE;iBACH,CACF;gBAED,WAAW,EAAE,CAAC,MAAc,EAAE,EAAU,EAAE,KAAgC,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CACjG;oBACE,MAAM,EAAE,KAAK;oBACb,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;oBACnG,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;oBAC1B,IAAI,EAAE,EAAE,KAAK,EAAE;iBAChB,EACD;oBACE,KAAK,EAAE,kBAAkB;oBACzB,MAAM,EAAE,QAAQ;oBAChB,EAAE;iBACH,CACF;gBAED,UAAU,EAAE,CAAC,MAAc,EAAE,EAAU,EAAE,IAA8B,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAC9F;oBACE,MAAM,EAAE,KAAK;oBACb,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;oBAClG,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;oBAC1B,IAAI,EAAE,EAAE,IAAI,EAAE;iBACf,EACD;oBACE,KAAK,EAAE,kBAAkB;oBACzB,MAAM,EAAE,QAAQ;oBAChB,EAAE;iBACH,CACF;gBAED,MAAM,EAAE,CAAC,MAAc,EAAE,EAAU,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAC1D;oBACE,MAAM,EAAE,QAAQ;oBAChB,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;oBAC1F,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;iBAC3B,CACF;gBAED,IAAI,EAAE,CAAC,MAAc,EAAE,OAAe,CAAC,EAAE,MAAe,EAAE,IAAe,EAAE,KAAgB,EAAE,IAAa,EAAE,KAAc,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CACjJ;oBACE,MAAM,EAAE,KAAK;oBACb,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;oBAC/G,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;oBAC1B,MAAM,EAAE;wBACN,MAAM;wBACN,IAAI;wBACJ,IAAI;wBACJ,KAAK;wBACL,KAAK;qBACN;iBACF,EACD;oBACE,KAAK,EAAE,kBAAkB;oBACzB,MAAM,EAAE,MAAM;iBACf,CACF;aAEF;SACF,CAAC;QAh2BA,IAAI,OAAO,CAAC,SAAS;YAAE,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QAE1D,IAAI,OAAO,CAAC,eAAe;YAAE,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;QAE5E,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC;QAExE,IAAI,OAAO,CAAC,OAAO;YAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAEpD,IAAI,OAAO,CAAC,OAAO;YAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAEpD,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QAEvB,IAAI,OAAO,CAAC,cAAc;YAAE,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;IAE3E,CAAC;IAEO,MAAM,CAAC,IAAqB,EAAE,WAAqB;QAEzD,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,IAAI,WAAmB,CAAC;QAExB,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAE3B,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAE3C,CAAC;aAAM,CAAC;YAEN,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;QAEhD,CAAC;QAED,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC3B,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;QAEzB,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEvD,CAAC;IAEO,UAAU;QAEhB,MAAM,OAAO,GAA2B;YACtC,YAAY,EAAE,IAAI,CAAC,GAAG;SACvB,CAAC;QAEF,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAEnB,OAAO,CAAC,aAAa,GAAG,UAAU,IAAI,CAAC,SAAS,EAAE,CAAC;QAErD,CAAC;QAED,OAAO,OAAO,CAAC;IAEjB,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,GAAW;QAEhC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAEzB,OAAO,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC;IAEnC,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,GAAW;QAE5B,IAAI,GAAG,GAAW,GAAG,CAAC;QAEtB,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;QAExC,OAAO,GAAG,CAAC;IAEb,CAAC;IAED,MAAM,CAAC,QAAQ;QAEb,OAAO,WAAW,CAAC;IAErB,CAAC;IAED,MAAM,CAAC,UAAU,CAAiB,IAA2B,EAAE,OAAwB;QAErF,gBAAgB;QAEhB,uFAAuF;QAEvF,+DAA+D;QAE/D,6DAA6D;QAE7D,wDAAwD;QACxD,wBAAwB;QAExB,0BAA0B;QAC1B,0BAA0B;QAC1B,4CAA4C;QAE5C,MAAM;QAEN,8EAA8E;QAC9E,wBAAwB;QAExB,yFAAyF;QAEzF,IAAI;QAEJ,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,CAAA,EAAE,CAAC;YAEnD,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YAE5E,IAAI,QAAQ;gBAAE,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEjD,CAAC;QAED,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;aACvB,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;YAEjB,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK;gBAAE,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YAElF,OAAO,QAAQ,CAAC;QAElB,CAAC,CAAC;aACD,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAE5E,CAAC;IAED,MAAM,CAAC,KAAK,CAAI,GAAW,EAAE,QAA2B,EAAE,OAAwB;QAEhF,MAAM,GAAG,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,EAAE,EAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAElE,IAAI,QAAQ,EAAE,CAAC;YAEb,MAAM,MAAM,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,EAAE;gBACxB,CAAC,CAAC,OAAO,CAAC,EAAE;gBACZ,CAAC,CAAC,GAAG,CAAC;YAER,WAAW,CAAC,MAAM,CAAC,GAAG;gBACpB,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,MAAM,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM;gBACvB,KAAK,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK;gBACrB,aAAa,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,EAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,KAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;gBACzF,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACO,CAAC;YAE/B,OAAO,SAAS,CAAC;QAEnB,CAAC;QAED,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAA8B,CAAC;QAE/D,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAE3B,IAAI,QAAQ,CAAC,aAAa,IAAI,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAElE,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAE1C,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;YACxB,OAAO,IAAI,CAAC;QAEd,CAAC;QAED,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAEhC,WAAW,aAAX,WAAW,4BAAX,WAAW,CAAE,MAAM,CAAC;QACpB,WAAW,aAAX,WAAW,4BAAX,WAAW,CAAE,KAAK,CAAC;QACnB,WAAW,aAAX,WAAW,4BAAX,WAAW,CAAE,EAAE,CAAC;QAEvB,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC;QAE3B,OAAO,WAAW,CAAC;IAErB,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,KAAc,EAAE,MAAe;QAE/C,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;YAEpB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAEvC,IAAI,KAAK,GAAY,KAAK,CAAC;gBAC3B,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;gBAErC,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;oBAEpB,IAAI,WAAW,CAAC,KAAK,KAAK,KAAK,IAAI,WAAW,CAAC,MAAM,KAAK,MAAM;wBAAE,KAAK,GAAG,IAAI,CAAC;gBAEjF,CAAC;qBAAM,IAAI,KAAK,EAAE,CAAC;oBAEjB,IAAI,WAAW,CAAC,KAAK,KAAK,KAAK;wBAAE,KAAK,GAAG,IAAI,CAAC;gBAEhD,CAAC;qBAAM,IAAI,MAAM,EAAE,CAAC;oBAElB,IAAI,WAAW,CAAC,MAAM,KAAK,MAAM;wBAAE,KAAK,GAAG,IAAI,CAAC;gBAElD,CAAC;gBAED,IAAI,KAAK,EAAE,CAAC;oBAEV,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;gBAE1B,CAAC;YAEH,CAAC,CAAC,CAAC;QAEL,CAAC;aAAM,CAAC;YAEN,WAAW,GAAG,EAAE,CAAC;QAEnB,CAAC;IAEH,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,EAAU;QAEvB,OAAO,WAAW,CAAC,EAAE,CAAC,CAAC;IAEzB,CAAC;CA0oBF"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
|