proto.io 0.0.147 → 0.0.149
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/adapters/file/database.d.ts +2 -2
- package/dist/adapters/file/database.js +2 -2
- package/dist/adapters/file/database.mjs +2 -2
- package/dist/adapters/file/filesystem.d.ts +2 -2
- package/dist/adapters/file/google-cloud-storage.d.ts +2 -2
- package/dist/adapters/storage/progres.d.ts +3 -1
- package/dist/adapters/storage/progres.js +6 -3
- package/dist/adapters/storage/progres.js.map +1 -1
- package/dist/adapters/storage/progres.mjs +6 -3
- package/dist/adapters/storage/progres.mjs.map +1 -1
- package/dist/client.d.ts +3 -5
- package/dist/client.js +2 -2
- package/dist/client.mjs +3 -3
- package/dist/index.d.ts +3 -5
- package/dist/index.js +73 -64
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +74 -65
- package/dist/index.mjs.map +1 -1
- package/dist/internals/{index-EOtjV6U_.mjs → index-BmRuvHVZ.mjs} +11 -1
- package/dist/internals/index-BmRuvHVZ.mjs.map +1 -0
- package/dist/internals/index-BqFdBhFc.js.map +1 -1
- package/dist/internals/{index-BDB4idmt.d.ts → index-BuXVzVd8.d.ts} +3 -2
- package/dist/internals/index-BuXVzVd8.d.ts.map +1 -0
- package/dist/internals/index-CKgKjs8z.d.ts +60 -0
- package/dist/internals/index-CKgKjs8z.d.ts.map +1 -0
- package/dist/internals/{index-DZS2c96L.js → index-CSNRyhjB.js} +2 -2
- package/dist/internals/{index-DZS2c96L.js.map → index-CSNRyhjB.js.map} +1 -1
- package/dist/internals/{index-C6zdNpc_.js → index-CVutVPmd.js} +11 -1
- package/dist/internals/{index-C6zdNpc_.js.map → index-CVutVPmd.js.map} +1 -1
- package/dist/internals/{index-CT01T3qs.js → index-D1YGwuNK.js} +26 -4
- package/dist/internals/index-D1YGwuNK.js.map +1 -0
- package/dist/internals/{index-BWztjrw_.d.ts → index-DnREUbmG.d.ts} +9 -90
- package/dist/internals/index-DnREUbmG.d.ts.map +1 -0
- package/dist/internals/index-be1VYBY2.mjs.map +1 -1
- package/dist/internals/{index-Do-zNOpD.mjs → index-c-CaNuVY.mjs} +26 -4
- package/dist/internals/index-c-CaNuVY.mjs.map +1 -0
- package/dist/internals/{index-DTZ5uRgF.mjs → index-tU-lsQqj.mjs} +2 -2
- package/dist/internals/{index-DTZ5uRgF.mjs.map → index-tU-lsQqj.mjs.map} +1 -1
- package/dist/internals/{random-XGNkddOu.js → random-DBDmz54D.js} +3 -3
- package/dist/internals/{random-XGNkddOu.js.map → random-DBDmz54D.js.map} +1 -1
- package/dist/internals/{random-BjV_01xP.mjs → random-KZTFMK9-.mjs} +3 -3
- package/dist/internals/{random-BjV_01xP.mjs.map → random-KZTFMK9-.mjs.map} +1 -1
- package/package.json +4 -4
- package/dist/internals/index-BDB4idmt.d.ts.map +0 -1
- package/dist/internals/index-BWztjrw_.d.ts.map +0 -1
- package/dist/internals/index-CT01T3qs.js.map +0 -1
- package/dist/internals/index-Do-zNOpD.mjs.map +0 -1
- package/dist/internals/index-EOtjV6U_.mjs.map +0 -1
- package/dist/internals/index-bbPCIbir.d.ts +0 -116
- package/dist/internals/index-bbPCIbir.d.ts.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as _o2ter_utils_js from '@o2ter/utils-js';
|
|
2
|
-
import { asyncStream, Awaitable } from '@o2ter/utils-js';
|
|
2
|
+
import { BinaryData, asyncStream, Awaitable } from '@o2ter/utils-js';
|
|
3
3
|
import jwt, { SignOptions, VerifyOptions } from 'jsonwebtoken';
|
|
4
4
|
import { Request, CookieOptions } from '@o2ter/server-js';
|
|
5
5
|
import Decimal$1, { Decimal } from 'decimal.js';
|
|
@@ -7,8 +7,6 @@ import _ from 'lodash';
|
|
|
7
7
|
import { Readable } from 'node:stream';
|
|
8
8
|
import { Socket } from 'socket.io-client';
|
|
9
9
|
|
|
10
|
-
declare const PVK: unique symbol;
|
|
11
|
-
|
|
12
10
|
type TNumber = number | Decimal | BigInt;
|
|
13
11
|
type TPrimitive = Date | string | TNumber | boolean | null | undefined;
|
|
14
12
|
type TDictionary = {
|
|
@@ -184,9 +182,6 @@ interface TQueryBaseOptions extends TQueryFilterBaseOptions {
|
|
|
184
182
|
matches?: Record<string, TQueryBaseOptions>;
|
|
185
183
|
}
|
|
186
184
|
declare class TQueryFilterBase {
|
|
187
|
-
[PVK]: {
|
|
188
|
-
options: TQueryFilterBaseOptions;
|
|
189
|
-
};
|
|
190
185
|
filter(filter: TQuerySelector): this;
|
|
191
186
|
equalTo<T extends string>(key: PathName<T>, value: TValue | undefined): this;
|
|
192
187
|
notEqualTo<T extends string>(key: PathName<T>, value: TValue | undefined): this;
|
|
@@ -213,9 +208,6 @@ declare class TQueryFilterBase {
|
|
|
213
208
|
nor(...callbacks: ((query: TQueryFilterBase) => void)[]): this;
|
|
214
209
|
}
|
|
215
210
|
declare class TQueryBase extends TQueryFilterBase {
|
|
216
|
-
[PVK]: {
|
|
217
|
-
options: TQueryBaseOptions;
|
|
218
|
-
};
|
|
219
211
|
sort<T extends Record<string, 1 | -1>>(sort: PathNameMap<T> | TSortOption[]): this;
|
|
220
212
|
skip(skip: number): this;
|
|
221
213
|
limit(limit: number): this;
|
|
@@ -229,10 +221,6 @@ interface TQueryRandomOptions {
|
|
|
229
221
|
weight?: string;
|
|
230
222
|
}
|
|
231
223
|
declare abstract class TQuery<T extends string, Ext, M extends boolean, P extends ProtoType<any>> extends TQueryBase {
|
|
232
|
-
[PVK]: {
|
|
233
|
-
className: T;
|
|
234
|
-
options: TQueryOptions;
|
|
235
|
-
};
|
|
236
224
|
constructor(className: T, options?: TQueryOptions);
|
|
237
225
|
get className(): T;
|
|
238
226
|
abstract clone(options?: TQueryOptions): TQuery<T, Ext, M, P>;
|
|
@@ -255,6 +243,9 @@ declare abstract class TQuery<T extends string, Ext, M extends boolean, P extend
|
|
|
255
243
|
eachBatch(callback: (batch: TObjectType<T, Ext>[]) => Awaitable<void>, options?: ExtraOptions<M, P> & {
|
|
256
244
|
batchSize?: number;
|
|
257
245
|
}): Promise<void>;
|
|
246
|
+
each(callback: (object: TObjectType<T, Ext>) => Awaitable<void>, options?: ExtraOptions<M, P> & {
|
|
247
|
+
batchSize?: number;
|
|
248
|
+
}): Promise<void>;
|
|
258
249
|
}
|
|
259
250
|
|
|
260
251
|
type Callback<T, R, E> = (request: ProtoService<E> & T) => Awaitable<R>;
|
|
@@ -290,17 +281,7 @@ type EventData = Record<string, _TValue> & {
|
|
|
290
281
|
_created_at: Date;
|
|
291
282
|
_rperm: string[];
|
|
292
283
|
};
|
|
293
|
-
interface ProtoInternalType<Ext, P extends ProtoType<any>> {
|
|
294
|
-
options: {
|
|
295
|
-
endpoint: string;
|
|
296
|
-
classExtends?: TExtensions<Ext>;
|
|
297
|
-
};
|
|
298
|
-
saveFile(proto: P, object: TFile, options?: ExtraOptions<boolean, P>): Promise<TFile>;
|
|
299
|
-
deleteFile(proto: P, object: TFile, options?: ExtraOptions<boolean, P>): Promise<TFile>;
|
|
300
|
-
fileData(proto: P, object: TFile, options?: ExtraOptions<boolean, P>): FileStream;
|
|
301
|
-
}
|
|
302
284
|
declare abstract class ProtoType<Ext> {
|
|
303
|
-
abstract [PVK]: ProtoInternalType<Ext, this>;
|
|
304
285
|
abstract config(options?: {
|
|
305
286
|
master?: boolean;
|
|
306
287
|
}): Promise<Record<string, _TValue>>;
|
|
@@ -355,10 +336,6 @@ interface ProtoType<Ext> {
|
|
|
355
336
|
afterSave<T extends string>(name: T, callback: ProtoTrigger<T, Ext>): void;
|
|
356
337
|
beforeDelete<T extends string>(name: T, callback: ProtoTrigger<T, Ext>): void;
|
|
357
338
|
afterDelete<T extends string>(name: T, callback: ProtoTrigger<T, Ext>): void;
|
|
358
|
-
beforeSaveFile(callback: ProtoTrigger<'File', Ext>): void;
|
|
359
|
-
afterSaveFile(callback: ProtoTrigger<'File', Ext>): void;
|
|
360
|
-
beforeDeleteFile(callback: ProtoTrigger<'File', Ext>): void;
|
|
361
|
-
afterDeleteFile(callback: ProtoTrigger<'File', Ext>): void;
|
|
362
339
|
lockTable(className: string | string[], update: boolean): void;
|
|
363
340
|
withTransaction<T>(callback: (connection: ProtoType<Ext>) => PromiseLike<T>, options?: TransactionOptions): void;
|
|
364
341
|
generateUploadToken(options?: {
|
|
@@ -368,9 +345,11 @@ interface ProtoType<Ext> {
|
|
|
368
345
|
jwtVarify(token: string, options?: jwt.VerifyOptions): jwt.JwtPayload | undefined;
|
|
369
346
|
}
|
|
370
347
|
|
|
348
|
+
type TriggerType = 'beforeSave' | 'afterSave' | 'beforeDelete' | 'afterDelete';
|
|
371
349
|
type ExtraOptions<M extends boolean, P extends ProtoType<any>> = {
|
|
372
350
|
master?: M;
|
|
373
351
|
context?: TSerializable;
|
|
352
|
+
silent?: TriggerType | TriggerType[];
|
|
374
353
|
session?: P;
|
|
375
354
|
abortSignal?: AbortSignal;
|
|
376
355
|
};
|
|
@@ -386,12 +365,6 @@ interface TObject {
|
|
|
386
365
|
declare class TObject {
|
|
387
366
|
static defaultReadonlyKeys: string[];
|
|
388
367
|
static defaultKeys: string[];
|
|
389
|
-
[PVK]: {
|
|
390
|
-
className: string;
|
|
391
|
-
attributes: Record<string, TValue>;
|
|
392
|
-
mutated: Record<string, TUpdateOp>;
|
|
393
|
-
extra: Record<string, any>;
|
|
394
|
-
};
|
|
395
368
|
constructor(className: string, attributes?: Record<string, TValue> | ((self: TObject) => Record<string, TValue>));
|
|
396
369
|
get className(): string;
|
|
397
370
|
get attributes(): Record<string, TValue>;
|
|
@@ -590,6 +563,7 @@ interface TStorage {
|
|
|
590
563
|
deleteMany(query: DecodedQuery<FindOptions>): PromiseLike<number>;
|
|
591
564
|
lockTable(className: string | string[], update: boolean): Promise<void>;
|
|
592
565
|
withConnection<T>(callback: (connection: TStorage) => PromiseLike<T>): PromiseLike<T>;
|
|
566
|
+
isDuplicateIdError(error: any): boolean;
|
|
593
567
|
atomic<T>(callback: (connection: TStorage) => PromiseLike<T>, options?: {
|
|
594
568
|
lockTable?: string;
|
|
595
569
|
}): PromiseLike<T>;
|
|
@@ -641,58 +615,7 @@ type ProtoServiceKeyOptions = {
|
|
|
641
615
|
}[];
|
|
642
616
|
};
|
|
643
617
|
|
|
644
|
-
declare class ProtoInternal<Ext, P extends ProtoService<Ext>> implements ProtoInternalType<Ext, P> {
|
|
645
|
-
options: Required<ProtoServiceOptions<Ext>> & ProtoServiceKeyOptions;
|
|
646
|
-
functions: Record<string, ProtoFunction<Ext> | ProtoFunctionOptions<Ext>>;
|
|
647
|
-
triggers: {
|
|
648
|
-
beforeSave?: Record<string, ProtoTrigger<string, Ext>>;
|
|
649
|
-
afterSave?: Record<string, ProtoTrigger<string, Ext>>;
|
|
650
|
-
beforeDelete?: Record<string, ProtoTrigger<string, Ext>>;
|
|
651
|
-
afterDelete?: Record<string, ProtoTrigger<string, Ext>>;
|
|
652
|
-
beforeSaveFile?: ProtoTrigger<'File', Ext>;
|
|
653
|
-
afterSaveFile?: ProtoTrigger<'File', Ext>;
|
|
654
|
-
beforeDeleteFile?: ProtoTrigger<'File', Ext>;
|
|
655
|
-
afterDeleteFile?: ProtoTrigger<'File', Ext>;
|
|
656
|
-
};
|
|
657
|
-
constructor(options: Required<ProtoServiceOptions<Ext>> & ProtoServiceKeyOptions);
|
|
658
|
-
prepare(): Promise<void>;
|
|
659
|
-
generateId(): string;
|
|
660
|
-
private _perms;
|
|
661
|
-
config(proto: P, options?: {
|
|
662
|
-
master?: boolean;
|
|
663
|
-
}): Promise<Record<string, _TValue>>;
|
|
664
|
-
configAcl(): PromiseLike<Record<string, string[]>>;
|
|
665
|
-
setConfig(values: Record<string, _TValue>, acl?: string[]): Promise<void>;
|
|
666
|
-
run(proto: P, name: string, payload: any, options?: ExtraOptions<boolean, P>): Promise<void | TSerializable>;
|
|
667
|
-
varifyPassword(proto: P, user: TUser, password: string, options: ExtraOptions<true, P>): Promise<boolean>;
|
|
668
|
-
setPassword(proto: P, user: TUser, password: string, options: ExtraOptions<true, P>): Promise<void>;
|
|
669
|
-
unsetPassword(proto: P, user: TUser, options: ExtraOptions<true, P>): Promise<void>;
|
|
670
|
-
updateFile(proto: P, object: TFile, options?: ExtraOptions<boolean, P>): Promise<TFile>;
|
|
671
|
-
varifyUploadToken(proto: P, token?: string, isMaster?: boolean): {
|
|
672
|
-
nonce: string | undefined;
|
|
673
|
-
maxUploadSize: number;
|
|
674
|
-
};
|
|
675
|
-
createFile(proto: P, object: TFile, options?: ExtraOptions<boolean, P> & {
|
|
676
|
-
uploadToken?: string;
|
|
677
|
-
}): Promise<TFile>;
|
|
678
|
-
saveFile(proto: P, object: TFile, options?: ExtraOptions<boolean, P>): Promise<TFile>;
|
|
679
|
-
deleteFile(proto: P, object: TFile, options?: ExtraOptions<boolean, P>): Promise<TFile>;
|
|
680
|
-
fileData(proto: P, object: TFile, options?: ExtraOptions<boolean, P>): Readable;
|
|
681
|
-
destroyFileData(proto: P, id: string): void;
|
|
682
|
-
jwtSign(payload: any, options: 'login' | 'upload' | jwt.SignOptions): string;
|
|
683
|
-
jwtVarify(token: string, options?: 'login' | 'upload' | jwt.VerifyOptions): jwt.JwtPayload | undefined;
|
|
684
|
-
notify(proto: P, data: Record<string, _TValue> & {
|
|
685
|
-
_rperm?: string[];
|
|
686
|
-
}): Promise<void>;
|
|
687
|
-
listen(proto: P, callback: (data: EventData) => void): {
|
|
688
|
-
remove: VoidFunction;
|
|
689
|
-
};
|
|
690
|
-
validateCLPs(className: string, acls: string[], keys: (keyof TSchema.CLPs)[]): boolean;
|
|
691
|
-
refs(proto: P, object: TObject, options?: ExtraOptions<boolean, P>): Promise<AsyncIterable<TObject>>;
|
|
692
|
-
}
|
|
693
|
-
|
|
694
618
|
declare class ProtoService<Ext> extends ProtoType<Ext> {
|
|
695
|
-
[PVK]: ProtoInternal<Ext, this>;
|
|
696
619
|
private _storage?;
|
|
697
620
|
private _schedule;
|
|
698
621
|
req?: Request;
|
|
@@ -759,10 +682,6 @@ declare class ProtoService<Ext> extends ProtoType<Ext> {
|
|
|
759
682
|
afterSave<T extends string>(name: T, callback: ProtoTrigger<T, Ext>): void;
|
|
760
683
|
beforeDelete<T extends string>(name: T, callback: ProtoTrigger<T, Ext>): void;
|
|
761
684
|
afterDelete<T extends string>(name: T, callback: ProtoTrigger<T, Ext>): void;
|
|
762
|
-
beforeSaveFile(callback: ProtoTrigger<'File', Ext>): void;
|
|
763
|
-
afterSaveFile(callback: ProtoTrigger<'File', Ext>): void;
|
|
764
|
-
beforeDeleteFile(callback: ProtoTrigger<'File', Ext>): void;
|
|
765
|
-
afterDeleteFile(callback: ProtoTrigger<'File', Ext>): void;
|
|
766
685
|
lockTable(className: string | string[], update: boolean): Promise<void>;
|
|
767
686
|
withTransaction<T>(callback: (connection: ProtoService<Ext>) => PromiseLike<T>, options?: TransactionOptions): PromiseLike<T>;
|
|
768
687
|
generateUploadToken(options?: {
|
|
@@ -780,5 +699,5 @@ declare class ProtoService<Ext> extends ProtoType<Ext> {
|
|
|
780
699
|
refs(object: TObject, options?: ExtraOptions<boolean, this>): _o2ter_utils_js.AsyncStream<TObjectType<string, Ext>>;
|
|
781
700
|
}
|
|
782
701
|
|
|
783
|
-
export { type
|
|
784
|
-
//# sourceMappingURL=index-
|
|
702
|
+
export { type TFileInfo as A, type DeserializeOptions as D, type ExtraOptions as E, type FindOptions as F, type InsertOptions as I, ProtoService as P, QuerySelector as Q, type SerializeOptions as S, TSchema as T, type _TValue as _, type ProtoServiceOptions as a, type ProtoServiceKeyOptions as b, type TFileStorage as c, type TSerializable as d, deserialize as e, type TExtensions as f, TQuery as g, TObject as h, TUser as i, TRole as j, TFile as k, ProtoType as l, type TObjectType as m, type EventData as n, type DecodedQuery as o, type DecodedSortOption as p, type TValue as q, type FindOneOptions as r, serialize as s, type TUpdateOp as t, FieldSelectorExpression as u, QueryExpression as v, type TStorage as w, type TransactionOptions as x, type TQueryRandomOptions as y, type TPubSub as z };
|
|
703
|
+
//# sourceMappingURL=index-DnREUbmG.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-DnREUbmG.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-be1VYBY2.mjs","sources":["../../../src/adapters/file/base/index.ts"],"sourcesContent":["//\n// index.ts\n//\n// The MIT License\n// Copyright (c) 2021 - 2024 O2ter Limited. All rights reserved.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n//\n\nimport _ from 'lodash';\nimport { promisify } from 'util';\nimport { deflate as _deflate, unzip as _unzip } from 'zlib';\nimport { TFileInfo, TFileStorage } from '../../../server/file';\nimport { ProtoService } from '../../../server/proto';\nimport { TSchema } from '../../../internals/schema';\nimport { binaryStreamChunk, parallelEach, parallelMap } from '@o2ter/utils-js';\nimport { PVK } from '../../../internals/private';\n\nconst deflate = promisify(_deflate);\nconst unzip = promisify(_unzip);\n\nexport type FileStorageOptions = {\n chunkSize?: number;\n parallel?: number;\n};\n\nexport abstract class FileStorageBase implements TFileStorage {\n\n options: Required<FileStorageOptions>;\n\n constructor(options: FileStorageOptions) {\n this.options = {\n chunkSize: 16 * 1024,\n parallel: 8,\n ..._.pickBy(options, v => !_.isNil(v)),\n };\n }\n\n get schema(): Record<string, TSchema> {\n return {}\n }\n\n abstract createChunk<E>(proto: ProtoService<E>, token: string, start: number, end: number, compressed: Buffer): PromiseLike<void>;\n abstract readChunks<E>(proto: ProtoService<E>, token: string, start?: number, end?: number): AsyncGenerator<{\n start: number;\n data: Buffer | Uint8Array | PromiseLike<Buffer | Uint8Array>;\n }, void>;\n abstract destroy<E>(proto: ProtoService<E>, id: string): PromiseLike<void>;\n\n async create<E>(\n proto: ProtoService<E>,\n stream: BinaryData | AsyncIterable<BinaryData>,\n info: TFileInfo,\n maxUploadSize: number,\n ) {\n\n const token = proto[PVK].generateId();\n\n let size = 0;\n const _stream = async function* (stream: AsyncIterable<Buffer>) {\n for await (const data of stream) {\n yield { data, offset: size };\n size += data.byteLength;\n }\n };\n\n await parallelEach(\n _stream(binaryStreamChunk(stream, this.options.chunkSize)),\n this.options.parallel,\n async ({ data, offset }) => {\n const chunkSize = data.byteLength;\n await this.createChunk(proto, token, offset, offset + chunkSize, await deflate(data));\n if (offset + chunkSize > maxUploadSize) throw Error('Payload too large');\n }\n );\n\n return { _id: token, size };\n }\n\n async* fileData<E>(proto: ProtoService<E>, id: string, start?: number, end?: number) {\n\n const _stream = parallelMap(\n this.readChunks(proto, id, start, end),\n this.options.parallel,\n async chunk => ({\n start: chunk.start,\n data: await unzip(await chunk.data),\n })\n );\n\n for await (const { start: startBytes, data } of _stream) {\n\n if (!_.isNumber(start) && !_.isNumber(end)) {\n\n yield data;\n\n } else {\n\n const endBytes = startBytes + data.length;\n const _start = _.isNumber(start) && start > startBytes ? start - startBytes : 0;\n const _end = _.isNumber(end) && end < endBytes ? end - startBytes : undefined;\n\n yield data.subarray(_start, _end);\n }\n }\n }\n};\n\nexport default FileStorageBase;"],"names":["_deflate","_unzip"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index-be1VYBY2.mjs","sources":["../../../src/adapters/file/base/index.ts"],"sourcesContent":["//\n// index.ts\n//\n// The MIT License\n// Copyright (c) 2021 - 2024 O2ter Limited. All rights reserved.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n//\n\nimport _ from 'lodash';\nimport { promisify } from 'util';\nimport { deflate as _deflate, unzip as _unzip } from 'zlib';\nimport { TFileInfo, TFileStorage } from '../../../server/file';\nimport { ProtoService } from '../../../server/proto';\nimport { TSchema } from '../../../internals/schema';\nimport { BinaryData, binaryStreamChunk, parallelEach, parallelMap } from '@o2ter/utils-js';\nimport { PVK } from '../../../internals/private';\n\nconst deflate = promisify(_deflate);\nconst unzip = promisify(_unzip);\n\nexport type FileStorageOptions = {\n chunkSize?: number;\n parallel?: number;\n};\n\nexport abstract class FileStorageBase implements TFileStorage {\n\n options: Required<FileStorageOptions>;\n\n constructor(options: FileStorageOptions) {\n this.options = {\n chunkSize: 16 * 1024,\n parallel: 8,\n ..._.pickBy(options, v => !_.isNil(v)),\n };\n }\n\n get schema(): Record<string, TSchema> {\n return {}\n }\n\n abstract createChunk<E>(proto: ProtoService<E>, token: string, start: number, end: number, compressed: Buffer): PromiseLike<void>;\n abstract readChunks<E>(proto: ProtoService<E>, token: string, start?: number, end?: number): AsyncGenerator<{\n start: number;\n data: Buffer | Uint8Array | PromiseLike<Buffer | Uint8Array>;\n }, void>;\n abstract destroy<E>(proto: ProtoService<E>, id: string): PromiseLike<void>;\n\n async create<E>(\n proto: ProtoService<E>,\n stream: BinaryData | AsyncIterable<BinaryData>,\n info: TFileInfo,\n maxUploadSize: number,\n ) {\n\n const token = proto[PVK].generateId();\n\n let size = 0;\n const _stream = async function* (stream: AsyncIterable<Buffer>) {\n for await (const data of stream) {\n yield { data, offset: size };\n size += data.byteLength;\n }\n };\n\n await parallelEach(\n _stream(binaryStreamChunk(stream, this.options.chunkSize)),\n this.options.parallel,\n async ({ data, offset }) => {\n const chunkSize = data.byteLength;\n await this.createChunk(proto, token, offset, offset + chunkSize, await deflate(data));\n if (offset + chunkSize > maxUploadSize) throw Error('Payload too large');\n }\n );\n\n return { _id: token, size };\n }\n\n async* fileData<E>(proto: ProtoService<E>, id: string, start?: number, end?: number) {\n\n const _stream = parallelMap(\n this.readChunks(proto, id, start, end),\n this.options.parallel,\n async chunk => ({\n start: chunk.start,\n data: await unzip(await chunk.data),\n })\n );\n\n for await (const { start: startBytes, data } of _stream) {\n\n if (!_.isNumber(start) && !_.isNumber(end)) {\n\n yield data;\n\n } else {\n\n const endBytes = startBytes + data.length;\n const _start = _.isNumber(start) && start > startBytes ? start - startBytes : 0;\n const _end = _.isNumber(end) && end < endBytes ? end - startBytes : undefined;\n\n yield data.subarray(_start, _end);\n }\n }\n }\n};\n\nexport default FileStorageBase;"],"names":["_deflate","_unzip"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { T as TObject, d as decodeUpdateOp } from './index-
|
|
1
|
+
import { T as TObject, d as decodeUpdateOp } from './index-BmRuvHVZ.mjs';
|
|
2
2
|
import _ from 'lodash';
|
|
3
3
|
import { Decimal } from 'decimal.js';
|
|
4
4
|
import { asyncStream, isBinaryData, isReadableStream, isBlob, base64ToBuffer, iterableToStream } from '@o2ter/utils-js';
|
|
@@ -46,6 +46,7 @@ const mergeOpts = (lhs, rhs) => {
|
|
|
46
46
|
};
|
|
47
47
|
};
|
|
48
48
|
class TQueryFilterBase {
|
|
49
|
+
/** @internal */
|
|
49
50
|
[PVK] = { options: {} };
|
|
50
51
|
filter(filter) {
|
|
51
52
|
if (_.isNil(this[PVK].options.filter)) {
|
|
@@ -156,6 +157,7 @@ class TQueryFilterBase {
|
|
|
156
157
|
}
|
|
157
158
|
}
|
|
158
159
|
class TQueryBase extends TQueryFilterBase {
|
|
160
|
+
/** @internal */
|
|
159
161
|
[PVK] = { options: {} };
|
|
160
162
|
sort(sort) {
|
|
161
163
|
this[PVK].options.sort = sort;
|
|
@@ -216,6 +218,7 @@ class TQueryBase extends TQueryFilterBase {
|
|
|
216
218
|
// THE SOFTWARE.
|
|
217
219
|
//
|
|
218
220
|
class TQuery extends TQueryBase {
|
|
221
|
+
/** @internal */
|
|
219
222
|
[PVK];
|
|
220
223
|
constructor(className, options = {}) {
|
|
221
224
|
super();
|
|
@@ -277,6 +280,13 @@ class TQuery extends TQueryBase {
|
|
|
277
280
|
await callback(batch);
|
|
278
281
|
}
|
|
279
282
|
}
|
|
283
|
+
async each(callback, options) {
|
|
284
|
+
await this.eachBatch(async (batch) => {
|
|
285
|
+
for (const object of batch) {
|
|
286
|
+
await callback(object);
|
|
287
|
+
}
|
|
288
|
+
}, options);
|
|
289
|
+
}
|
|
280
290
|
}
|
|
281
291
|
|
|
282
292
|
//
|
|
@@ -596,7 +606,7 @@ const applyObjectMethods = (object, proto) => {
|
|
|
596
606
|
else {
|
|
597
607
|
const created = await query()
|
|
598
608
|
.includes(...this.keys())
|
|
599
|
-
.insert(_.fromPairs([...this.
|
|
609
|
+
.insert(_.fromPairs([...this._set_entries()]), options);
|
|
600
610
|
this[PVK].attributes = created.attributes;
|
|
601
611
|
this[PVK].mutated = {};
|
|
602
612
|
}
|
|
@@ -871,6 +881,7 @@ class ProtoClientQuery extends TQuery {
|
|
|
871
881
|
return this._proto[PVK].request(this._proto, {
|
|
872
882
|
operation: 'explain',
|
|
873
883
|
context: options?.context ?? {},
|
|
884
|
+
silent: options?.silent,
|
|
874
885
|
...this._queryOptions,
|
|
875
886
|
}, this._requestOpt(options));
|
|
876
887
|
}
|
|
@@ -878,6 +889,7 @@ class ProtoClientQuery extends TQuery {
|
|
|
878
889
|
return this._proto[PVK].request(this._proto, {
|
|
879
890
|
operation: 'count',
|
|
880
891
|
context: options?.context ?? {},
|
|
892
|
+
silent: options?.silent,
|
|
881
893
|
...this._queryOptions,
|
|
882
894
|
}, this._requestOpt(options));
|
|
883
895
|
}
|
|
@@ -885,6 +897,7 @@ class ProtoClientQuery extends TQuery {
|
|
|
885
897
|
const request = () => this._proto[PVK].request(this._proto, {
|
|
886
898
|
operation: 'find',
|
|
887
899
|
context: options?.context ?? {},
|
|
900
|
+
silent: options?.silent,
|
|
888
901
|
...this._queryOptions,
|
|
889
902
|
}, this._requestOpt(options));
|
|
890
903
|
return asyncStream(request);
|
|
@@ -893,6 +906,7 @@ class ProtoClientQuery extends TQuery {
|
|
|
893
906
|
const request = () => this._proto[PVK].request(this._proto, {
|
|
894
907
|
operation: 'random',
|
|
895
908
|
context: options?.context ?? {},
|
|
909
|
+
silent: options?.silent,
|
|
896
910
|
random: opts,
|
|
897
911
|
...this._queryOptions,
|
|
898
912
|
}, this._requestOpt(options));
|
|
@@ -902,6 +916,7 @@ class ProtoClientQuery extends TQuery {
|
|
|
902
916
|
const request = () => this._proto[PVK].request(this._proto, {
|
|
903
917
|
operation: 'nonrefs',
|
|
904
918
|
context: options?.context ?? {},
|
|
919
|
+
silent: options?.silent,
|
|
905
920
|
...this._queryOptions,
|
|
906
921
|
}, this._requestOpt(options));
|
|
907
922
|
return asyncStream(request);
|
|
@@ -910,6 +925,7 @@ class ProtoClientQuery extends TQuery {
|
|
|
910
925
|
return this._proto[PVK].request(this._proto, {
|
|
911
926
|
operation: 'insert',
|
|
912
927
|
context: options?.context ?? {},
|
|
928
|
+
silent: options?.silent,
|
|
913
929
|
attributes: attrs,
|
|
914
930
|
...this._queryOptions,
|
|
915
931
|
}, this._requestOpt(options));
|
|
@@ -918,6 +934,7 @@ class ProtoClientQuery extends TQuery {
|
|
|
918
934
|
return this._proto[PVK].request(this._proto, {
|
|
919
935
|
operation: 'insertMany',
|
|
920
936
|
context: options?.context ?? {},
|
|
937
|
+
silent: options?.silent,
|
|
921
938
|
attributes: values,
|
|
922
939
|
...this._queryOptions,
|
|
923
940
|
}, this._requestOpt(options));
|
|
@@ -926,6 +943,7 @@ class ProtoClientQuery extends TQuery {
|
|
|
926
943
|
return this._proto[PVK].request(this._proto, {
|
|
927
944
|
operation: 'updateOne',
|
|
928
945
|
context: options?.context ?? {},
|
|
946
|
+
silent: options?.silent,
|
|
929
947
|
update,
|
|
930
948
|
...this._queryOptions,
|
|
931
949
|
}, this._requestOpt(options));
|
|
@@ -934,6 +952,7 @@ class ProtoClientQuery extends TQuery {
|
|
|
934
952
|
return this._proto[PVK].request(this._proto, {
|
|
935
953
|
operation: 'upsertOne',
|
|
936
954
|
context: options?.context ?? {},
|
|
955
|
+
silent: options?.silent,
|
|
937
956
|
update,
|
|
938
957
|
setOnInsert,
|
|
939
958
|
...this._queryOptions,
|
|
@@ -943,6 +962,7 @@ class ProtoClientQuery extends TQuery {
|
|
|
943
962
|
return this._proto[PVK].request(this._proto, {
|
|
944
963
|
operation: 'deleteOne',
|
|
945
964
|
context: options?.context ?? {},
|
|
965
|
+
silent: options?.silent,
|
|
946
966
|
...this._queryOptions,
|
|
947
967
|
}, this._requestOpt(options));
|
|
948
968
|
}
|
|
@@ -950,6 +970,7 @@ class ProtoClientQuery extends TQuery {
|
|
|
950
970
|
return this._proto[PVK].request(this._proto, {
|
|
951
971
|
operation: 'deleteMany',
|
|
952
972
|
context: options?.context ?? {},
|
|
973
|
+
silent: options?.silent,
|
|
953
974
|
...this._queryOptions,
|
|
954
975
|
}, this._requestOpt(options));
|
|
955
976
|
}
|
|
@@ -1275,7 +1296,7 @@ class ProtoClientInternal {
|
|
|
1275
1296
|
url: 'files',
|
|
1276
1297
|
responseType: 'text',
|
|
1277
1298
|
data: {
|
|
1278
|
-
attributes: serialize(_.fromPairs([...object.
|
|
1299
|
+
attributes: serialize(_.fromPairs([...object._set_entries()]), serializeOpts),
|
|
1279
1300
|
file: buffer,
|
|
1280
1301
|
},
|
|
1281
1302
|
headers: {
|
|
@@ -1402,6 +1423,7 @@ class ProtoClientInternal {
|
|
|
1402
1423
|
// THE SOFTWARE.
|
|
1403
1424
|
//
|
|
1404
1425
|
class ProtoClient extends ProtoType {
|
|
1426
|
+
/** @internal */
|
|
1405
1427
|
[PVK];
|
|
1406
1428
|
constructor(options) {
|
|
1407
1429
|
super();
|
|
@@ -1463,4 +1485,4 @@ class ProtoClient extends ProtoType {
|
|
|
1463
1485
|
}
|
|
1464
1486
|
|
|
1465
1487
|
export { AUTH_COOKIE_KEY as A, MASTER_USER_HEADER_NAME as M, ProtoType as P, TQuery as T, UPLOAD_TOKEN_HEADER_NAME as U, MASTER_PASS_HEADER_NAME as a, TUser as b, ProtoClient as c, deserialize as d, classExtends as e, isObject as f, isUser as g, isRole as h, isQuery as i, isFile as j, serialize as s };
|
|
1466
|
-
//# sourceMappingURL=index-
|
|
1488
|
+
//# sourceMappingURL=index-c-CaNuVY.mjs.map
|