@hamster-note/types 0.5.1 → 0.5.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +88 -1
- package/dist/index.js +922 -1
- package/dist/index.js.map +1 -1
- package/package.json +7 -2
package/dist/index.d.ts
CHANGED
|
@@ -239,5 +239,92 @@ declare class IntermediateDocument {
|
|
|
239
239
|
getOutline(): IntermediateOutline[] | undefined;
|
|
240
240
|
}
|
|
241
241
|
//#endregion
|
|
242
|
-
|
|
242
|
+
//#region src/api/main/dto/batch-delete.dto.d.ts
|
|
243
|
+
interface BatchUpdateDto {
|
|
244
|
+
uuids: string[];
|
|
245
|
+
}
|
|
246
|
+
//#endregion
|
|
247
|
+
//#region src/api/main/dto/create-image-memory.dto.d.ts
|
|
248
|
+
declare class CreateImageMemoryDto {
|
|
249
|
+
/** 图片 URL */
|
|
250
|
+
imageUrl: string;
|
|
251
|
+
}
|
|
252
|
+
//#endregion
|
|
253
|
+
//#region src/api/main/dto/create-folder.dto.d.ts
|
|
254
|
+
interface CreateFolderDto {
|
|
255
|
+
name: string;
|
|
256
|
+
parentUuid?: string;
|
|
257
|
+
tags?: string;
|
|
258
|
+
color?: string;
|
|
259
|
+
sortOptions?: Record<string, object>;
|
|
260
|
+
order?: number;
|
|
261
|
+
}
|
|
262
|
+
//#endregion
|
|
263
|
+
//#region src/api/main/dto/create-text-memory.dto.d.ts
|
|
264
|
+
declare class CreateTextMemoryDto {
|
|
265
|
+
content: string;
|
|
266
|
+
}
|
|
267
|
+
//#endregion
|
|
268
|
+
//#region src/api/main/dto/create-user.dto.d.ts
|
|
269
|
+
interface CreateUserDto {
|
|
270
|
+
username?: string;
|
|
271
|
+
password: string;
|
|
272
|
+
phone?: string;
|
|
273
|
+
email: string;
|
|
274
|
+
emailCode: string;
|
|
275
|
+
avatar?: string;
|
|
276
|
+
wechatId?: string;
|
|
277
|
+
}
|
|
278
|
+
//#endregion
|
|
279
|
+
//#region src/api/main/dto/init-upload.dto.d.ts
|
|
280
|
+
interface InitUploadDto {
|
|
281
|
+
originalFilename: string;
|
|
282
|
+
size: number;
|
|
283
|
+
}
|
|
284
|
+
//#endregion
|
|
285
|
+
//#region src/api/main/dto/list-files.dto.d.ts
|
|
286
|
+
type UploadStatus = 'uploading' | 'completed' | 'failed';
|
|
287
|
+
interface ListFilesQueryDto {
|
|
288
|
+
parentUuid?: string;
|
|
289
|
+
status?: UploadStatus;
|
|
290
|
+
page?: number;
|
|
291
|
+
pageSize?: number;
|
|
292
|
+
}
|
|
293
|
+
//#endregion
|
|
294
|
+
//#region src/api/main/dto/parse-document.dto.d.ts
|
|
295
|
+
interface ParseDocumentParamsDto {
|
|
296
|
+
uuid: string;
|
|
297
|
+
}
|
|
298
|
+
interface ParsedTextItem {
|
|
299
|
+
id: string;
|
|
300
|
+
content: string;
|
|
301
|
+
pageId: string;
|
|
302
|
+
pageNumber: number;
|
|
303
|
+
}
|
|
304
|
+
interface ParseDocumentResult {
|
|
305
|
+
docId: string;
|
|
306
|
+
title: string;
|
|
307
|
+
items: ParsedTextItem[];
|
|
308
|
+
}
|
|
309
|
+
//#endregion
|
|
310
|
+
//#region src/api/main/dto/search-memory.dto.d.ts
|
|
311
|
+
declare class SearchMemoryDto {
|
|
312
|
+
/** 搜索关键词 */
|
|
313
|
+
keyword: string;
|
|
314
|
+
/** 记忆类型 */
|
|
315
|
+
type?: 'text' | 'image';
|
|
316
|
+
limit?: number;
|
|
317
|
+
}
|
|
318
|
+
//#endregion
|
|
319
|
+
//#region src/api/main/dto/update-folder.dto.d.ts
|
|
320
|
+
interface UpdateFolderDto {
|
|
321
|
+
name?: string;
|
|
322
|
+
tags?: string;
|
|
323
|
+
color?: string;
|
|
324
|
+
sortOptions?: Record<string, object> | null;
|
|
325
|
+
order?: number;
|
|
326
|
+
parentUuid?: string | null;
|
|
327
|
+
}
|
|
328
|
+
//#endregion
|
|
329
|
+
export { BatchUpdateDto, CreateFolderDto, CreateImageMemoryDto, CreateTextMemoryDto, CreateUserDto, InitUploadDto, IntermediateDocument, IntermediateDocumentSerialized, IntermediateOutline, IntermediateOutlineDest, IntermediateOutlineDestPage, IntermediateOutlineDestPosition, IntermediateOutlineDestText, IntermediateOutlineDestType, IntermediateOutlineDestUrl, IntermediateOutlineSerialized, IntermediatePage, IntermediatePageMap, IntermediatePageSerialized, IntermediateText, IntermediateTextMarkedContent, IntermediateTextSerialized, ListFilesQueryDto, Number2, ParseDocumentParamsDto, ParseDocumentResult, ParsedTextItem, SearchMemoryDto, TextDir, TextMarkedContentType, UpdateFolderDto, UploadStatus };
|
|
243
330
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,31 @@
|
|
|
1
|
+
//#region rolldown:runtime
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __commonJSMin = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
|
|
12
|
+
key = keys[i];
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except) {
|
|
14
|
+
__defProp(to, key, {
|
|
15
|
+
get: ((k) => from[k]).bind(null, key),
|
|
16
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return to;
|
|
22
|
+
};
|
|
23
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
24
|
+
value: mod,
|
|
25
|
+
enumerable: true
|
|
26
|
+
}) : target, mod));
|
|
27
|
+
|
|
28
|
+
//#endregion
|
|
1
29
|
//#region src/HamsterDocument/IntermediateText.ts
|
|
2
30
|
let TextDir = /* @__PURE__ */ function(TextDir$1) {
|
|
3
31
|
TextDir$1["TTB"] = "ttb";
|
|
@@ -307,5 +335,898 @@ var IntermediateDocument = class IntermediateDocument {
|
|
|
307
335
|
};
|
|
308
336
|
|
|
309
337
|
//#endregion
|
|
310
|
-
|
|
338
|
+
//#region node_modules/class-validator/esm5/metadata/ValidationMetadata.js
|
|
339
|
+
/**
|
|
340
|
+
* This metadata contains validation rules.
|
|
341
|
+
*/
|
|
342
|
+
var ValidationMetadata = function() {
|
|
343
|
+
function ValidationMetadata$1(args) {
|
|
344
|
+
/**
|
|
345
|
+
* Validation groups used for this validation.
|
|
346
|
+
*/
|
|
347
|
+
this.groups = [];
|
|
348
|
+
/**
|
|
349
|
+
* Specifies if validated value is an array and each of its item must be validated.
|
|
350
|
+
*/
|
|
351
|
+
this.each = false;
|
|
352
|
+
this.context = void 0;
|
|
353
|
+
this.type = args.type;
|
|
354
|
+
this.name = args.name;
|
|
355
|
+
this.target = args.target;
|
|
356
|
+
this.propertyName = args.propertyName;
|
|
357
|
+
this.constraints = args === null || args === void 0 ? void 0 : args.constraints;
|
|
358
|
+
this.constraintCls = args.constraintCls;
|
|
359
|
+
this.validationTypeOptions = args.validationTypeOptions;
|
|
360
|
+
if (args.validationOptions) {
|
|
361
|
+
this.message = args.validationOptions.message;
|
|
362
|
+
this.groups = args.validationOptions.groups;
|
|
363
|
+
this.always = args.validationOptions.always;
|
|
364
|
+
this.each = args.validationOptions.each;
|
|
365
|
+
this.context = args.validationOptions.context;
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
return ValidationMetadata$1;
|
|
369
|
+
}();
|
|
370
|
+
|
|
371
|
+
//#endregion
|
|
372
|
+
//#region node_modules/class-validator/esm5/validation-schema/ValidationSchemaToMetadataTransformer.js
|
|
373
|
+
/**
|
|
374
|
+
* Used to transform validation schemas to validation metadatas.
|
|
375
|
+
*/
|
|
376
|
+
var ValidationSchemaToMetadataTransformer = function() {
|
|
377
|
+
function ValidationSchemaToMetadataTransformer$1() {}
|
|
378
|
+
ValidationSchemaToMetadataTransformer$1.prototype.transform = function(schema) {
|
|
379
|
+
var metadatas = [];
|
|
380
|
+
Object.keys(schema.properties).forEach(function(property) {
|
|
381
|
+
schema.properties[property].forEach(function(validation) {
|
|
382
|
+
var validationOptions = {
|
|
383
|
+
message: validation.message,
|
|
384
|
+
groups: validation.groups,
|
|
385
|
+
always: validation.always,
|
|
386
|
+
each: validation.each
|
|
387
|
+
};
|
|
388
|
+
var args = {
|
|
389
|
+
type: validation.type,
|
|
390
|
+
name: validation.name,
|
|
391
|
+
target: schema.name,
|
|
392
|
+
propertyName: property,
|
|
393
|
+
constraints: validation.constraints,
|
|
394
|
+
validationTypeOptions: validation.options,
|
|
395
|
+
validationOptions
|
|
396
|
+
};
|
|
397
|
+
metadatas.push(new ValidationMetadata(args));
|
|
398
|
+
});
|
|
399
|
+
});
|
|
400
|
+
return metadatas;
|
|
401
|
+
};
|
|
402
|
+
return ValidationSchemaToMetadataTransformer$1;
|
|
403
|
+
}();
|
|
404
|
+
|
|
405
|
+
//#endregion
|
|
406
|
+
//#region node_modules/class-validator/esm5/utils/get-global.util.js
|
|
407
|
+
/**
|
|
408
|
+
* This function returns the global object across Node and browsers.
|
|
409
|
+
*
|
|
410
|
+
* Note: `globalThis` is the standardized approach however it has been added to
|
|
411
|
+
* Node.js in version 12. We need to include this snippet until Node 12 EOL.
|
|
412
|
+
*/
|
|
413
|
+
function getGlobal() {
|
|
414
|
+
if (typeof globalThis !== "undefined") return globalThis;
|
|
415
|
+
if (typeof global !== "undefined") return global;
|
|
416
|
+
if (typeof window !== "undefined") return window;
|
|
417
|
+
if (typeof self !== "undefined") return self;
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
//#endregion
|
|
421
|
+
//#region node_modules/class-validator/esm5/metadata/MetadataStorage.js
|
|
422
|
+
var __values = void 0 && (void 0).__values || function(o) {
|
|
423
|
+
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
424
|
+
if (m) return m.call(o);
|
|
425
|
+
if (o && typeof o.length === "number") return { next: function() {
|
|
426
|
+
if (o && i >= o.length) o = void 0;
|
|
427
|
+
return {
|
|
428
|
+
value: o && o[i++],
|
|
429
|
+
done: !o
|
|
430
|
+
};
|
|
431
|
+
} };
|
|
432
|
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
433
|
+
};
|
|
434
|
+
var __read = void 0 && (void 0).__read || function(o, n) {
|
|
435
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
436
|
+
if (!m) return o;
|
|
437
|
+
var i = m.call(o), r, ar = [], e;
|
|
438
|
+
try {
|
|
439
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
440
|
+
} catch (error) {
|
|
441
|
+
e = { error };
|
|
442
|
+
} finally {
|
|
443
|
+
try {
|
|
444
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
445
|
+
} finally {
|
|
446
|
+
if (e) throw e.error;
|
|
447
|
+
}
|
|
448
|
+
}
|
|
449
|
+
return ar;
|
|
450
|
+
};
|
|
451
|
+
var __spreadArray = void 0 && (void 0).__spreadArray || function(to, from, pack) {
|
|
452
|
+
if (pack || arguments.length === 2) {
|
|
453
|
+
for (var i = 0, l = from.length, ar; i < l; i++) if (ar || !(i in from)) {
|
|
454
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
455
|
+
ar[i] = from[i];
|
|
456
|
+
}
|
|
457
|
+
}
|
|
458
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
459
|
+
};
|
|
460
|
+
/**
|
|
461
|
+
* Storage all metadatas.
|
|
462
|
+
*/
|
|
463
|
+
var MetadataStorage$1 = function() {
|
|
464
|
+
function MetadataStorage$2() {
|
|
465
|
+
this.validationMetadatas = /* @__PURE__ */ new Map();
|
|
466
|
+
this.constraintMetadatas = /* @__PURE__ */ new Map();
|
|
467
|
+
}
|
|
468
|
+
Object.defineProperty(MetadataStorage$2.prototype, "hasValidationMetaData", {
|
|
469
|
+
get: function() {
|
|
470
|
+
return !!this.validationMetadatas.size;
|
|
471
|
+
},
|
|
472
|
+
enumerable: false,
|
|
473
|
+
configurable: true
|
|
474
|
+
});
|
|
475
|
+
/**
|
|
476
|
+
* Adds a new validation metadata.
|
|
477
|
+
*/
|
|
478
|
+
MetadataStorage$2.prototype.addValidationSchema = function(schema) {
|
|
479
|
+
var _this = this;
|
|
480
|
+
new ValidationSchemaToMetadataTransformer().transform(schema).forEach(function(validationMetadata) {
|
|
481
|
+
return _this.addValidationMetadata(validationMetadata);
|
|
482
|
+
});
|
|
483
|
+
};
|
|
484
|
+
/**
|
|
485
|
+
* Adds a new validation metadata.
|
|
486
|
+
*/
|
|
487
|
+
MetadataStorage$2.prototype.addValidationMetadata = function(metadata) {
|
|
488
|
+
var existingMetadata = this.validationMetadatas.get(metadata.target);
|
|
489
|
+
if (existingMetadata) existingMetadata.push(metadata);
|
|
490
|
+
else this.validationMetadatas.set(metadata.target, [metadata]);
|
|
491
|
+
};
|
|
492
|
+
/**
|
|
493
|
+
* Adds a new constraint metadata.
|
|
494
|
+
*/
|
|
495
|
+
MetadataStorage$2.prototype.addConstraintMetadata = function(metadata) {
|
|
496
|
+
var existingMetadata = this.constraintMetadatas.get(metadata.target);
|
|
497
|
+
if (existingMetadata) existingMetadata.push(metadata);
|
|
498
|
+
else this.constraintMetadatas.set(metadata.target, [metadata]);
|
|
499
|
+
};
|
|
500
|
+
/**
|
|
501
|
+
* Groups metadata by their property names.
|
|
502
|
+
*/
|
|
503
|
+
MetadataStorage$2.prototype.groupByPropertyName = function(metadata) {
|
|
504
|
+
var grouped = {};
|
|
505
|
+
metadata.forEach(function(metadata$1) {
|
|
506
|
+
if (!grouped[metadata$1.propertyName]) grouped[metadata$1.propertyName] = [];
|
|
507
|
+
grouped[metadata$1.propertyName].push(metadata$1);
|
|
508
|
+
});
|
|
509
|
+
return grouped;
|
|
510
|
+
};
|
|
511
|
+
/**
|
|
512
|
+
* Gets all validation metadatas for the given object with the given groups.
|
|
513
|
+
*/
|
|
514
|
+
MetadataStorage$2.prototype.getTargetValidationMetadatas = function(targetConstructor, targetSchema, always, strictGroups, groups) {
|
|
515
|
+
var e_1, _a;
|
|
516
|
+
var includeMetadataBecauseOfAlwaysOption = function(metadata) {
|
|
517
|
+
if (typeof metadata.always !== "undefined") return metadata.always;
|
|
518
|
+
if (metadata.groups && metadata.groups.length) return false;
|
|
519
|
+
return always;
|
|
520
|
+
};
|
|
521
|
+
var excludeMetadataBecauseOfStrictGroupsOption = function(metadata) {
|
|
522
|
+
if (strictGroups) {
|
|
523
|
+
if (!groups || !groups.length) {
|
|
524
|
+
if (metadata.groups && metadata.groups.length) return true;
|
|
525
|
+
}
|
|
526
|
+
}
|
|
527
|
+
return false;
|
|
528
|
+
};
|
|
529
|
+
var originalMetadatas = (this.validationMetadatas.get(targetConstructor) || []).filter(function(metadata) {
|
|
530
|
+
if (metadata.target !== targetConstructor && metadata.target !== targetSchema) return false;
|
|
531
|
+
if (includeMetadataBecauseOfAlwaysOption(metadata)) return true;
|
|
532
|
+
if (excludeMetadataBecauseOfStrictGroupsOption(metadata)) return false;
|
|
533
|
+
if (groups && groups.length > 0) return metadata.groups && !!metadata.groups.find(function(group) {
|
|
534
|
+
return groups.indexOf(group) !== -1;
|
|
535
|
+
});
|
|
536
|
+
return true;
|
|
537
|
+
});
|
|
538
|
+
var filteredForInheritedMetadatasSearch = [];
|
|
539
|
+
try {
|
|
540
|
+
for (var _b = __values(this.validationMetadatas.entries()), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
541
|
+
var _d = __read(_c.value, 2), key = _d[0], value = _d[1];
|
|
542
|
+
if (targetConstructor.prototype instanceof key) filteredForInheritedMetadatasSearch.push.apply(filteredForInheritedMetadatasSearch, __spreadArray([], __read(value), false));
|
|
543
|
+
}
|
|
544
|
+
} catch (e_1_1) {
|
|
545
|
+
e_1 = { error: e_1_1 };
|
|
546
|
+
} finally {
|
|
547
|
+
try {
|
|
548
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
549
|
+
} finally {
|
|
550
|
+
if (e_1) throw e_1.error;
|
|
551
|
+
}
|
|
552
|
+
}
|
|
553
|
+
var uniqueInheritedMetadatas = filteredForInheritedMetadatasSearch.filter(function(metadata) {
|
|
554
|
+
if (typeof metadata.target === "string") return false;
|
|
555
|
+
if (metadata.target === targetConstructor) return false;
|
|
556
|
+
if (metadata.target instanceof Function && !(targetConstructor.prototype instanceof metadata.target)) return false;
|
|
557
|
+
if (includeMetadataBecauseOfAlwaysOption(metadata)) return true;
|
|
558
|
+
if (excludeMetadataBecauseOfStrictGroupsOption(metadata)) return false;
|
|
559
|
+
if (groups && groups.length > 0) return metadata.groups && !!metadata.groups.find(function(group) {
|
|
560
|
+
return groups.indexOf(group) !== -1;
|
|
561
|
+
});
|
|
562
|
+
return true;
|
|
563
|
+
}).filter(function(inheritedMetadata) {
|
|
564
|
+
return !originalMetadatas.find(function(originalMetadata) {
|
|
565
|
+
return originalMetadata.propertyName === inheritedMetadata.propertyName && originalMetadata.type === inheritedMetadata.type;
|
|
566
|
+
});
|
|
567
|
+
});
|
|
568
|
+
return originalMetadatas.concat(uniqueInheritedMetadatas);
|
|
569
|
+
};
|
|
570
|
+
/**
|
|
571
|
+
* Gets all validator constraints for the given object.
|
|
572
|
+
*/
|
|
573
|
+
MetadataStorage$2.prototype.getTargetValidatorConstraints = function(target) {
|
|
574
|
+
return this.constraintMetadatas.get(target) || [];
|
|
575
|
+
};
|
|
576
|
+
return MetadataStorage$2;
|
|
577
|
+
}();
|
|
578
|
+
/**
|
|
579
|
+
* Gets metadata storage.
|
|
580
|
+
* Metadata storage follows the best practices and stores metadata in a global variable.
|
|
581
|
+
*/
|
|
582
|
+
function getMetadataStorage() {
|
|
583
|
+
var global$1 = getGlobal();
|
|
584
|
+
if (!global$1.classValidatorMetadataStorage) global$1.classValidatorMetadataStorage = new MetadataStorage$1();
|
|
585
|
+
return global$1.classValidatorMetadataStorage;
|
|
586
|
+
}
|
|
587
|
+
|
|
588
|
+
//#endregion
|
|
589
|
+
//#region node_modules/class-validator/esm5/validation/ValidationTypes.js
|
|
590
|
+
/**
|
|
591
|
+
* Validation types.
|
|
592
|
+
*/
|
|
593
|
+
var ValidationTypes = function() {
|
|
594
|
+
function ValidationTypes$1() {}
|
|
595
|
+
/**
|
|
596
|
+
* Checks if validation type is valid.
|
|
597
|
+
*/
|
|
598
|
+
ValidationTypes$1.isValid = function(type) {
|
|
599
|
+
var _this = this;
|
|
600
|
+
return type !== "isValid" && type !== "getMessage" && Object.keys(this).map(function(key) {
|
|
601
|
+
return _this[key];
|
|
602
|
+
}).indexOf(type) !== -1;
|
|
603
|
+
};
|
|
604
|
+
ValidationTypes$1.CUSTOM_VALIDATION = "customValidation";
|
|
605
|
+
ValidationTypes$1.NESTED_VALIDATION = "nestedValidation";
|
|
606
|
+
ValidationTypes$1.PROMISE_VALIDATION = "promiseValidation";
|
|
607
|
+
ValidationTypes$1.CONDITIONAL_VALIDATION = "conditionalValidation";
|
|
608
|
+
ValidationTypes$1.WHITELIST = "whitelistValidation";
|
|
609
|
+
ValidationTypes$1.IS_DEFINED = "isDefined";
|
|
610
|
+
return ValidationTypes$1;
|
|
611
|
+
}();
|
|
612
|
+
|
|
613
|
+
//#endregion
|
|
614
|
+
//#region node_modules/class-validator/esm5/container.js
|
|
615
|
+
/**
|
|
616
|
+
* Container to be used by this library for inversion control. If container was not implicitly set then by default
|
|
617
|
+
* container simply creates a new instance of the given class.
|
|
618
|
+
*/
|
|
619
|
+
var defaultContainer = new (function() {
|
|
620
|
+
function class_1() {
|
|
621
|
+
this.instances = [];
|
|
622
|
+
}
|
|
623
|
+
class_1.prototype.get = function(someClass) {
|
|
624
|
+
var instance = this.instances.find(function(instance$1) {
|
|
625
|
+
return instance$1.type === someClass;
|
|
626
|
+
});
|
|
627
|
+
if (!instance) {
|
|
628
|
+
instance = {
|
|
629
|
+
type: someClass,
|
|
630
|
+
object: new someClass()
|
|
631
|
+
};
|
|
632
|
+
this.instances.push(instance);
|
|
633
|
+
}
|
|
634
|
+
return instance.object;
|
|
635
|
+
};
|
|
636
|
+
return class_1;
|
|
637
|
+
}())();
|
|
638
|
+
var userContainer;
|
|
639
|
+
var userContainerOptions;
|
|
640
|
+
/**
|
|
641
|
+
* Gets the IOC container used by this library.
|
|
642
|
+
*/
|
|
643
|
+
function getFromContainer(someClass) {
|
|
644
|
+
if (userContainer) try {
|
|
645
|
+
var instance = userContainer.get(someClass);
|
|
646
|
+
if (instance) return instance;
|
|
647
|
+
if (!userContainerOptions || !userContainerOptions.fallback) return instance;
|
|
648
|
+
} catch (error) {
|
|
649
|
+
if (!userContainerOptions || !userContainerOptions.fallbackOnErrors) throw error;
|
|
650
|
+
}
|
|
651
|
+
return defaultContainer.get(someClass);
|
|
652
|
+
}
|
|
653
|
+
|
|
654
|
+
//#endregion
|
|
655
|
+
//#region node_modules/class-validator/esm5/metadata/ConstraintMetadata.js
|
|
656
|
+
/**
|
|
657
|
+
* This metadata interface contains information for custom validators.
|
|
658
|
+
*/
|
|
659
|
+
var ConstraintMetadata = function() {
|
|
660
|
+
function ConstraintMetadata$1(target, name, async) {
|
|
661
|
+
if (async === void 0) async = false;
|
|
662
|
+
this.target = target;
|
|
663
|
+
this.name = name;
|
|
664
|
+
this.async = async;
|
|
665
|
+
}
|
|
666
|
+
Object.defineProperty(ConstraintMetadata$1.prototype, "instance", {
|
|
667
|
+
get: function() {
|
|
668
|
+
return getFromContainer(this.target);
|
|
669
|
+
},
|
|
670
|
+
enumerable: false,
|
|
671
|
+
configurable: true
|
|
672
|
+
});
|
|
673
|
+
return ConstraintMetadata$1;
|
|
674
|
+
}();
|
|
675
|
+
|
|
676
|
+
//#endregion
|
|
677
|
+
//#region node_modules/class-validator/esm5/register-decorator.js
|
|
678
|
+
/**
|
|
679
|
+
* Registers a custom validation decorator.
|
|
680
|
+
*/
|
|
681
|
+
function registerDecorator(options) {
|
|
682
|
+
var constraintCls;
|
|
683
|
+
if (options.validator instanceof Function) {
|
|
684
|
+
constraintCls = options.validator;
|
|
685
|
+
if (getFromContainer(MetadataStorage$1).getTargetValidatorConstraints(options.validator).length > 1) throw "More than one implementation of ValidatorConstraintInterface found for validator on: ".concat(options.target.name, ":").concat(options.propertyName);
|
|
686
|
+
} else {
|
|
687
|
+
var validator_1 = options.validator;
|
|
688
|
+
constraintCls = function() {
|
|
689
|
+
function CustomConstraint() {}
|
|
690
|
+
CustomConstraint.prototype.validate = function(value, validationArguments) {
|
|
691
|
+
return validator_1.validate(value, validationArguments);
|
|
692
|
+
};
|
|
693
|
+
CustomConstraint.prototype.defaultMessage = function(validationArguments) {
|
|
694
|
+
if (validator_1.defaultMessage) return validator_1.defaultMessage(validationArguments);
|
|
695
|
+
return "";
|
|
696
|
+
};
|
|
697
|
+
return CustomConstraint;
|
|
698
|
+
}();
|
|
699
|
+
getMetadataStorage().addConstraintMetadata(new ConstraintMetadata(constraintCls, options.name, options.async));
|
|
700
|
+
}
|
|
701
|
+
var validationMetadataArgs = {
|
|
702
|
+
type: options.name && ValidationTypes.isValid(options.name) ? options.name : ValidationTypes.CUSTOM_VALIDATION,
|
|
703
|
+
name: options.name,
|
|
704
|
+
target: options.target,
|
|
705
|
+
propertyName: options.propertyName,
|
|
706
|
+
validationOptions: options.options,
|
|
707
|
+
constraintCls,
|
|
708
|
+
constraints: options.constraints
|
|
709
|
+
};
|
|
710
|
+
getMetadataStorage().addValidationMetadata(new ValidationMetadata(validationMetadataArgs));
|
|
711
|
+
}
|
|
712
|
+
|
|
713
|
+
//#endregion
|
|
714
|
+
//#region node_modules/class-validator/esm5/decorator/common/ValidateBy.js
|
|
715
|
+
function buildMessage(impl, validationOptions) {
|
|
716
|
+
return function(validationArguments) {
|
|
717
|
+
return impl(validationOptions && validationOptions.each ? "each value in " : "", validationArguments);
|
|
718
|
+
};
|
|
719
|
+
}
|
|
720
|
+
function ValidateBy(options, validationOptions) {
|
|
721
|
+
return function(object, propertyName) {
|
|
722
|
+
registerDecorator({
|
|
723
|
+
name: options.name,
|
|
724
|
+
target: object.constructor,
|
|
725
|
+
propertyName,
|
|
726
|
+
options: validationOptions,
|
|
727
|
+
constraints: options.constraints,
|
|
728
|
+
validator: options.validator
|
|
729
|
+
});
|
|
730
|
+
};
|
|
731
|
+
}
|
|
732
|
+
|
|
733
|
+
//#endregion
|
|
734
|
+
//#region node_modules/class-validator/esm5/decorator/common/IsOptional.js
|
|
735
|
+
var IS_OPTIONAL = "isOptional";
|
|
736
|
+
/**
|
|
737
|
+
* Checks if value is missing and if so, ignores all validators.
|
|
738
|
+
*/
|
|
739
|
+
function IsOptional(validationOptions) {
|
|
740
|
+
return function(object, propertyName) {
|
|
741
|
+
var args = {
|
|
742
|
+
type: ValidationTypes.CONDITIONAL_VALIDATION,
|
|
743
|
+
name: IS_OPTIONAL,
|
|
744
|
+
target: object.constructor,
|
|
745
|
+
propertyName,
|
|
746
|
+
constraints: [function(object$1, value) {
|
|
747
|
+
return object$1[propertyName] !== null && object$1[propertyName] !== void 0;
|
|
748
|
+
}],
|
|
749
|
+
validationOptions
|
|
750
|
+
};
|
|
751
|
+
getMetadataStorage().addValidationMetadata(new ValidationMetadata(args));
|
|
752
|
+
};
|
|
753
|
+
}
|
|
754
|
+
|
|
755
|
+
//#endregion
|
|
756
|
+
//#region node_modules/validator/lib/util/assertString.js
|
|
757
|
+
var require_assertString = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
758
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
759
|
+
exports.default = assertString;
|
|
760
|
+
function assertString(input) {
|
|
761
|
+
if (input === void 0 || input === null) throw new TypeError("Expected a string but received a ".concat(input));
|
|
762
|
+
if (input.constructor.name !== "String") throw new TypeError("Expected a string but received a ".concat(input.constructor.name));
|
|
763
|
+
}
|
|
764
|
+
module.exports = exports.default;
|
|
765
|
+
module.exports.default = exports.default;
|
|
766
|
+
}));
|
|
767
|
+
|
|
768
|
+
//#endregion
|
|
769
|
+
//#region node_modules/class-validator/esm5/decorator/common/IsNotEmpty.js
|
|
770
|
+
var IS_NOT_EMPTY = "isNotEmpty";
|
|
771
|
+
/**
|
|
772
|
+
* Checks if given value is not empty (!== '', !== null, !== undefined).
|
|
773
|
+
*/
|
|
774
|
+
function isNotEmpty(value) {
|
|
775
|
+
return value !== "" && value !== null && value !== void 0;
|
|
776
|
+
}
|
|
777
|
+
/**
|
|
778
|
+
* Checks if given value is not empty (!== '', !== null, !== undefined).
|
|
779
|
+
*/
|
|
780
|
+
function IsNotEmpty(validationOptions) {
|
|
781
|
+
return ValidateBy({
|
|
782
|
+
name: IS_NOT_EMPTY,
|
|
783
|
+
validator: {
|
|
784
|
+
validate: function(value, args) {
|
|
785
|
+
return isNotEmpty(value);
|
|
786
|
+
},
|
|
787
|
+
defaultMessage: buildMessage(function(eachPrefix) {
|
|
788
|
+
return eachPrefix + "$property should not be empty";
|
|
789
|
+
}, validationOptions)
|
|
790
|
+
}
|
|
791
|
+
}, validationOptions);
|
|
792
|
+
}
|
|
793
|
+
|
|
794
|
+
//#endregion
|
|
795
|
+
//#region node_modules/class-validator/esm5/decorator/common/IsIn.js
|
|
796
|
+
var IS_IN = "isIn";
|
|
797
|
+
/**
|
|
798
|
+
* Checks if given value is in a array of allowed values.
|
|
799
|
+
*/
|
|
800
|
+
function isIn(value, possibleValues) {
|
|
801
|
+
return Array.isArray(possibleValues) && possibleValues.some(function(possibleValue) {
|
|
802
|
+
return possibleValue === value;
|
|
803
|
+
});
|
|
804
|
+
}
|
|
805
|
+
/**
|
|
806
|
+
* Checks if given value is in a array of allowed values.
|
|
807
|
+
*/
|
|
808
|
+
function IsIn(values, validationOptions) {
|
|
809
|
+
return ValidateBy({
|
|
810
|
+
name: IS_IN,
|
|
811
|
+
constraints: [values],
|
|
812
|
+
validator: {
|
|
813
|
+
validate: function(value, args) {
|
|
814
|
+
return isIn(value, args === null || args === void 0 ? void 0 : args.constraints[0]);
|
|
815
|
+
},
|
|
816
|
+
defaultMessage: buildMessage(function(eachPrefix) {
|
|
817
|
+
return eachPrefix + "$property must be one of the following values: $constraint1";
|
|
818
|
+
}, validationOptions)
|
|
819
|
+
}
|
|
820
|
+
}, validationOptions);
|
|
821
|
+
}
|
|
822
|
+
|
|
823
|
+
//#endregion
|
|
824
|
+
//#region node_modules/class-validator/esm5/decorator/number/Max.js
|
|
825
|
+
var MAX = "max";
|
|
826
|
+
/**
|
|
827
|
+
* Checks if the first number is less than or equal to the second.
|
|
828
|
+
*/
|
|
829
|
+
function max(num, max$1) {
|
|
830
|
+
return typeof num === "number" && typeof max$1 === "number" && num <= max$1;
|
|
831
|
+
}
|
|
832
|
+
/**
|
|
833
|
+
* Checks if the value is less than or equal to the allowed maximum value.
|
|
834
|
+
*/
|
|
835
|
+
function Max(maxValue, validationOptions) {
|
|
836
|
+
return ValidateBy({
|
|
837
|
+
name: MAX,
|
|
838
|
+
constraints: [maxValue],
|
|
839
|
+
validator: {
|
|
840
|
+
validate: function(value, args) {
|
|
841
|
+
return max(value, args === null || args === void 0 ? void 0 : args.constraints[0]);
|
|
842
|
+
},
|
|
843
|
+
defaultMessage: buildMessage(function(eachPrefix) {
|
|
844
|
+
return eachPrefix + "$property must not be greater than $constraint1";
|
|
845
|
+
}, validationOptions)
|
|
846
|
+
}
|
|
847
|
+
}, validationOptions);
|
|
848
|
+
}
|
|
849
|
+
|
|
850
|
+
//#endregion
|
|
851
|
+
//#region node_modules/class-validator/esm5/decorator/number/Min.js
|
|
852
|
+
var MIN = "min";
|
|
853
|
+
/**
|
|
854
|
+
* Checks if the first number is greater than or equal to the second.
|
|
855
|
+
*/
|
|
856
|
+
function min(num, min$1) {
|
|
857
|
+
return typeof num === "number" && typeof min$1 === "number" && num >= min$1;
|
|
858
|
+
}
|
|
859
|
+
/**
|
|
860
|
+
* Checks if the value is greater than or equal to the allowed minimum value.
|
|
861
|
+
*/
|
|
862
|
+
function Min(minValue, validationOptions) {
|
|
863
|
+
return ValidateBy({
|
|
864
|
+
name: MIN,
|
|
865
|
+
constraints: [minValue],
|
|
866
|
+
validator: {
|
|
867
|
+
validate: function(value, args) {
|
|
868
|
+
return min(value, args === null || args === void 0 ? void 0 : args.constraints[0]);
|
|
869
|
+
},
|
|
870
|
+
defaultMessage: buildMessage(function(eachPrefix) {
|
|
871
|
+
return eachPrefix + "$property must not be less than $constraint1";
|
|
872
|
+
}, validationOptions)
|
|
873
|
+
}
|
|
874
|
+
}, validationOptions);
|
|
875
|
+
}
|
|
876
|
+
|
|
877
|
+
//#endregion
|
|
878
|
+
//#region node_modules/validator/lib/isLength.js
|
|
879
|
+
var require_isLength = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
880
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
881
|
+
exports.default = isLength;
|
|
882
|
+
var _assertString = _interopRequireDefault(require_assertString());
|
|
883
|
+
function _interopRequireDefault(e) {
|
|
884
|
+
return e && e.__esModule ? e : { default: e };
|
|
885
|
+
}
|
|
886
|
+
function _typeof(o) {
|
|
887
|
+
"@babel/helpers - typeof";
|
|
888
|
+
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(o$1) {
|
|
889
|
+
return typeof o$1;
|
|
890
|
+
} : function(o$1) {
|
|
891
|
+
return o$1 && "function" == typeof Symbol && o$1.constructor === Symbol && o$1 !== Symbol.prototype ? "symbol" : typeof o$1;
|
|
892
|
+
}, _typeof(o);
|
|
893
|
+
}
|
|
894
|
+
function isLength(str, options) {
|
|
895
|
+
(0, _assertString.default)(str);
|
|
896
|
+
var min$1;
|
|
897
|
+
var max$1;
|
|
898
|
+
if (_typeof(options) === "object") {
|
|
899
|
+
min$1 = options.min || 0;
|
|
900
|
+
max$1 = options.max;
|
|
901
|
+
} else {
|
|
902
|
+
min$1 = arguments[1] || 0;
|
|
903
|
+
max$1 = arguments[2];
|
|
904
|
+
}
|
|
905
|
+
var presentationSequences = str.match(/[^\uFE0F\uFE0E][\uFE0F\uFE0E]/g) || [];
|
|
906
|
+
var surrogatePairs = str.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g) || [];
|
|
907
|
+
var len = str.length - presentationSequences.length - surrogatePairs.length;
|
|
908
|
+
var isInsideRange = len >= min$1 && (typeof max$1 === "undefined" || len <= max$1);
|
|
909
|
+
if (isInsideRange && Array.isArray(options === null || options === void 0 ? void 0 : options.discreteLengths)) return options.discreteLengths.some(function(discreteLen) {
|
|
910
|
+
return discreteLen === len;
|
|
911
|
+
});
|
|
912
|
+
return isInsideRange;
|
|
913
|
+
}
|
|
914
|
+
module.exports = exports.default;
|
|
915
|
+
module.exports.default = exports.default;
|
|
916
|
+
}));
|
|
917
|
+
|
|
918
|
+
//#endregion
|
|
919
|
+
//#region node_modules/class-validator/esm5/decorator/string/MaxLength.js
|
|
920
|
+
var import_isLength = /* @__PURE__ */ __toESM(require_isLength());
|
|
921
|
+
var MAX_LENGTH = "maxLength";
|
|
922
|
+
/**
|
|
923
|
+
* Checks if the string's length is not more than given number. Note: this function takes into account surrogate pairs.
|
|
924
|
+
* If given value is not a string, then it returns false.
|
|
925
|
+
*/
|
|
926
|
+
function maxLength(value, max$1) {
|
|
927
|
+
return typeof value === "string" && (0, import_isLength.default)(value, {
|
|
928
|
+
min: 0,
|
|
929
|
+
max: max$1
|
|
930
|
+
});
|
|
931
|
+
}
|
|
932
|
+
/**
|
|
933
|
+
* Checks if the string's length is not more than given number. Note: this function takes into account surrogate pairs.
|
|
934
|
+
* If given value is not a string, then it returns false.
|
|
935
|
+
*/
|
|
936
|
+
function MaxLength(max$1, validationOptions) {
|
|
937
|
+
return ValidateBy({
|
|
938
|
+
name: MAX_LENGTH,
|
|
939
|
+
constraints: [max$1],
|
|
940
|
+
validator: {
|
|
941
|
+
validate: function(value, args) {
|
|
942
|
+
return maxLength(value, args === null || args === void 0 ? void 0 : args.constraints[0]);
|
|
943
|
+
},
|
|
944
|
+
defaultMessage: buildMessage(function(eachPrefix) {
|
|
945
|
+
return eachPrefix + "$property must be shorter than or equal to $constraint1 characters";
|
|
946
|
+
}, validationOptions)
|
|
947
|
+
}
|
|
948
|
+
}, validationOptions);
|
|
949
|
+
}
|
|
950
|
+
|
|
951
|
+
//#endregion
|
|
952
|
+
//#region node_modules/class-validator/esm5/decorator/typechecker/IsNumber.js
|
|
953
|
+
var IS_NUMBER = "isNumber";
|
|
954
|
+
/**
|
|
955
|
+
* Checks if a given value is a number.
|
|
956
|
+
*/
|
|
957
|
+
function isNumber(value, options) {
|
|
958
|
+
if (options === void 0) options = {};
|
|
959
|
+
if (typeof value !== "number") return false;
|
|
960
|
+
if (value === Infinity || value === -Infinity) return !!options.allowInfinity;
|
|
961
|
+
if (Number.isNaN(value)) return !!options.allowNaN;
|
|
962
|
+
if (options.maxDecimalPlaces !== void 0) {
|
|
963
|
+
var decimalPlaces = 0;
|
|
964
|
+
if (value % 1 !== 0) decimalPlaces = value.toString().split(".")[1].length;
|
|
965
|
+
if (decimalPlaces > options.maxDecimalPlaces) return false;
|
|
966
|
+
}
|
|
967
|
+
return Number.isFinite(value);
|
|
968
|
+
}
|
|
969
|
+
/**
|
|
970
|
+
* Checks if a value is a number.
|
|
971
|
+
*/
|
|
972
|
+
function IsNumber(options, validationOptions) {
|
|
973
|
+
if (options === void 0) options = {};
|
|
974
|
+
return ValidateBy({
|
|
975
|
+
name: IS_NUMBER,
|
|
976
|
+
constraints: [options],
|
|
977
|
+
validator: {
|
|
978
|
+
validate: function(value, args) {
|
|
979
|
+
return isNumber(value, args === null || args === void 0 ? void 0 : args.constraints[0]);
|
|
980
|
+
},
|
|
981
|
+
defaultMessage: buildMessage(function(eachPrefix) {
|
|
982
|
+
return eachPrefix + "$property must be a number conforming to the specified constraints";
|
|
983
|
+
}, validationOptions)
|
|
984
|
+
}
|
|
985
|
+
}, validationOptions);
|
|
986
|
+
}
|
|
987
|
+
|
|
988
|
+
//#endregion
|
|
989
|
+
//#region node_modules/class-validator/esm5/decorator/typechecker/IsString.js
|
|
990
|
+
var IS_STRING = "isString";
|
|
991
|
+
/**
|
|
992
|
+
* Checks if a given value is a real string.
|
|
993
|
+
*/
|
|
994
|
+
function isString(value) {
|
|
995
|
+
return value instanceof String || typeof value === "string";
|
|
996
|
+
}
|
|
997
|
+
/**
|
|
998
|
+
* Checks if a given value is a real string.
|
|
999
|
+
*/
|
|
1000
|
+
function IsString(validationOptions) {
|
|
1001
|
+
return ValidateBy({
|
|
1002
|
+
name: IS_STRING,
|
|
1003
|
+
validator: {
|
|
1004
|
+
validate: function(value, args) {
|
|
1005
|
+
return isString(value);
|
|
1006
|
+
},
|
|
1007
|
+
defaultMessage: buildMessage(function(eachPrefix) {
|
|
1008
|
+
return eachPrefix + "$property must be a string";
|
|
1009
|
+
}, validationOptions)
|
|
1010
|
+
}
|
|
1011
|
+
}, validationOptions);
|
|
1012
|
+
}
|
|
1013
|
+
|
|
1014
|
+
//#endregion
|
|
1015
|
+
//#region src/api/main/dto/create-image-memory.dto.ts
|
|
1016
|
+
var CreateImageMemoryDto = class {
|
|
1017
|
+
/** 图片 URL */
|
|
1018
|
+
@IsString() @IsNotEmpty() @MaxLength(255) imageUrl;
|
|
1019
|
+
};
|
|
1020
|
+
|
|
1021
|
+
//#endregion
|
|
1022
|
+
//#region src/api/main/dto/create-text-memory.dto.ts
|
|
1023
|
+
var CreateTextMemoryDto = class {
|
|
1024
|
+
@IsString() @IsNotEmpty() @MaxLength(1e4) content;
|
|
1025
|
+
};
|
|
1026
|
+
|
|
1027
|
+
//#endregion
|
|
1028
|
+
//#region node_modules/class-transformer/esm5/enums/transformation-type.enum.js
|
|
1029
|
+
var TransformationType;
|
|
1030
|
+
(function(TransformationType$1) {
|
|
1031
|
+
TransformationType$1[TransformationType$1["PLAIN_TO_CLASS"] = 0] = "PLAIN_TO_CLASS";
|
|
1032
|
+
TransformationType$1[TransformationType$1["CLASS_TO_PLAIN"] = 1] = "CLASS_TO_PLAIN";
|
|
1033
|
+
TransformationType$1[TransformationType$1["CLASS_TO_CLASS"] = 2] = "CLASS_TO_CLASS";
|
|
1034
|
+
})(TransformationType || (TransformationType = {}));
|
|
1035
|
+
|
|
1036
|
+
//#endregion
|
|
1037
|
+
//#region node_modules/class-transformer/esm5/MetadataStorage.js
|
|
1038
|
+
/**
|
|
1039
|
+
* Storage all library metadata.
|
|
1040
|
+
*/
|
|
1041
|
+
var MetadataStorage = function() {
|
|
1042
|
+
function MetadataStorage$2() {
|
|
1043
|
+
this._typeMetadatas = /* @__PURE__ */ new Map();
|
|
1044
|
+
this._transformMetadatas = /* @__PURE__ */ new Map();
|
|
1045
|
+
this._exposeMetadatas = /* @__PURE__ */ new Map();
|
|
1046
|
+
this._excludeMetadatas = /* @__PURE__ */ new Map();
|
|
1047
|
+
this._ancestorsMap = /* @__PURE__ */ new Map();
|
|
1048
|
+
}
|
|
1049
|
+
MetadataStorage$2.prototype.addTypeMetadata = function(metadata) {
|
|
1050
|
+
if (!this._typeMetadatas.has(metadata.target)) this._typeMetadatas.set(metadata.target, /* @__PURE__ */ new Map());
|
|
1051
|
+
this._typeMetadatas.get(metadata.target).set(metadata.propertyName, metadata);
|
|
1052
|
+
};
|
|
1053
|
+
MetadataStorage$2.prototype.addTransformMetadata = function(metadata) {
|
|
1054
|
+
if (!this._transformMetadatas.has(metadata.target)) this._transformMetadatas.set(metadata.target, /* @__PURE__ */ new Map());
|
|
1055
|
+
if (!this._transformMetadatas.get(metadata.target).has(metadata.propertyName)) this._transformMetadatas.get(metadata.target).set(metadata.propertyName, []);
|
|
1056
|
+
this._transformMetadatas.get(metadata.target).get(metadata.propertyName).push(metadata);
|
|
1057
|
+
};
|
|
1058
|
+
MetadataStorage$2.prototype.addExposeMetadata = function(metadata) {
|
|
1059
|
+
if (!this._exposeMetadatas.has(metadata.target)) this._exposeMetadatas.set(metadata.target, /* @__PURE__ */ new Map());
|
|
1060
|
+
this._exposeMetadatas.get(metadata.target).set(metadata.propertyName, metadata);
|
|
1061
|
+
};
|
|
1062
|
+
MetadataStorage$2.prototype.addExcludeMetadata = function(metadata) {
|
|
1063
|
+
if (!this._excludeMetadatas.has(metadata.target)) this._excludeMetadatas.set(metadata.target, /* @__PURE__ */ new Map());
|
|
1064
|
+
this._excludeMetadatas.get(metadata.target).set(metadata.propertyName, metadata);
|
|
1065
|
+
};
|
|
1066
|
+
MetadataStorage$2.prototype.findTransformMetadatas = function(target, propertyName, transformationType) {
|
|
1067
|
+
return this.findMetadatas(this._transformMetadatas, target, propertyName).filter(function(metadata) {
|
|
1068
|
+
if (!metadata.options) return true;
|
|
1069
|
+
if (metadata.options.toClassOnly === true && metadata.options.toPlainOnly === true) return true;
|
|
1070
|
+
if (metadata.options.toClassOnly === true) return transformationType === TransformationType.CLASS_TO_CLASS || transformationType === TransformationType.PLAIN_TO_CLASS;
|
|
1071
|
+
if (metadata.options.toPlainOnly === true) return transformationType === TransformationType.CLASS_TO_PLAIN;
|
|
1072
|
+
return true;
|
|
1073
|
+
});
|
|
1074
|
+
};
|
|
1075
|
+
MetadataStorage$2.prototype.findExcludeMetadata = function(target, propertyName) {
|
|
1076
|
+
return this.findMetadata(this._excludeMetadatas, target, propertyName);
|
|
1077
|
+
};
|
|
1078
|
+
MetadataStorage$2.prototype.findExposeMetadata = function(target, propertyName) {
|
|
1079
|
+
return this.findMetadata(this._exposeMetadatas, target, propertyName);
|
|
1080
|
+
};
|
|
1081
|
+
MetadataStorage$2.prototype.findExposeMetadataByCustomName = function(target, name) {
|
|
1082
|
+
return this.getExposedMetadatas(target).find(function(metadata) {
|
|
1083
|
+
return metadata.options && metadata.options.name === name;
|
|
1084
|
+
});
|
|
1085
|
+
};
|
|
1086
|
+
MetadataStorage$2.prototype.findTypeMetadata = function(target, propertyName) {
|
|
1087
|
+
return this.findMetadata(this._typeMetadatas, target, propertyName);
|
|
1088
|
+
};
|
|
1089
|
+
MetadataStorage$2.prototype.getStrategy = function(target) {
|
|
1090
|
+
var excludeMap = this._excludeMetadatas.get(target);
|
|
1091
|
+
var exclude = excludeMap && excludeMap.get(void 0);
|
|
1092
|
+
var exposeMap = this._exposeMetadatas.get(target);
|
|
1093
|
+
var expose = exposeMap && exposeMap.get(void 0);
|
|
1094
|
+
if (exclude && expose || !exclude && !expose) return "none";
|
|
1095
|
+
return exclude ? "excludeAll" : "exposeAll";
|
|
1096
|
+
};
|
|
1097
|
+
MetadataStorage$2.prototype.getExposedMetadatas = function(target) {
|
|
1098
|
+
return this.getMetadata(this._exposeMetadatas, target);
|
|
1099
|
+
};
|
|
1100
|
+
MetadataStorage$2.prototype.getExcludedMetadatas = function(target) {
|
|
1101
|
+
return this.getMetadata(this._excludeMetadatas, target);
|
|
1102
|
+
};
|
|
1103
|
+
MetadataStorage$2.prototype.getExposedProperties = function(target, transformationType) {
|
|
1104
|
+
return this.getExposedMetadatas(target).filter(function(metadata) {
|
|
1105
|
+
if (!metadata.options) return true;
|
|
1106
|
+
if (metadata.options.toClassOnly === true && metadata.options.toPlainOnly === true) return true;
|
|
1107
|
+
if (metadata.options.toClassOnly === true) return transformationType === TransformationType.CLASS_TO_CLASS || transformationType === TransformationType.PLAIN_TO_CLASS;
|
|
1108
|
+
if (metadata.options.toPlainOnly === true) return transformationType === TransformationType.CLASS_TO_PLAIN;
|
|
1109
|
+
return true;
|
|
1110
|
+
}).map(function(metadata) {
|
|
1111
|
+
return metadata.propertyName;
|
|
1112
|
+
});
|
|
1113
|
+
};
|
|
1114
|
+
MetadataStorage$2.prototype.getExcludedProperties = function(target, transformationType) {
|
|
1115
|
+
return this.getExcludedMetadatas(target).filter(function(metadata) {
|
|
1116
|
+
if (!metadata.options) return true;
|
|
1117
|
+
if (metadata.options.toClassOnly === true && metadata.options.toPlainOnly === true) return true;
|
|
1118
|
+
if (metadata.options.toClassOnly === true) return transformationType === TransformationType.CLASS_TO_CLASS || transformationType === TransformationType.PLAIN_TO_CLASS;
|
|
1119
|
+
if (metadata.options.toPlainOnly === true) return transformationType === TransformationType.CLASS_TO_PLAIN;
|
|
1120
|
+
return true;
|
|
1121
|
+
}).map(function(metadata) {
|
|
1122
|
+
return metadata.propertyName;
|
|
1123
|
+
});
|
|
1124
|
+
};
|
|
1125
|
+
MetadataStorage$2.prototype.clear = function() {
|
|
1126
|
+
this._typeMetadatas.clear();
|
|
1127
|
+
this._exposeMetadatas.clear();
|
|
1128
|
+
this._excludeMetadatas.clear();
|
|
1129
|
+
this._ancestorsMap.clear();
|
|
1130
|
+
};
|
|
1131
|
+
MetadataStorage$2.prototype.getMetadata = function(metadatas, target) {
|
|
1132
|
+
var metadataFromTargetMap = metadatas.get(target);
|
|
1133
|
+
var metadataFromTarget;
|
|
1134
|
+
if (metadataFromTargetMap) metadataFromTarget = Array.from(metadataFromTargetMap.values()).filter(function(meta) {
|
|
1135
|
+
return meta.propertyName !== void 0;
|
|
1136
|
+
});
|
|
1137
|
+
var metadataFromAncestors = [];
|
|
1138
|
+
for (var _i = 0, _a = this.getAncestors(target); _i < _a.length; _i++) {
|
|
1139
|
+
var ancestor = _a[_i];
|
|
1140
|
+
var ancestorMetadataMap = metadatas.get(ancestor);
|
|
1141
|
+
if (ancestorMetadataMap) {
|
|
1142
|
+
var metadataFromAncestor = Array.from(ancestorMetadataMap.values()).filter(function(meta) {
|
|
1143
|
+
return meta.propertyName !== void 0;
|
|
1144
|
+
});
|
|
1145
|
+
metadataFromAncestors.push.apply(metadataFromAncestors, metadataFromAncestor);
|
|
1146
|
+
}
|
|
1147
|
+
}
|
|
1148
|
+
return metadataFromAncestors.concat(metadataFromTarget || []);
|
|
1149
|
+
};
|
|
1150
|
+
MetadataStorage$2.prototype.findMetadata = function(metadatas, target, propertyName) {
|
|
1151
|
+
var metadataFromTargetMap = metadatas.get(target);
|
|
1152
|
+
if (metadataFromTargetMap) {
|
|
1153
|
+
var metadataFromTarget = metadataFromTargetMap.get(propertyName);
|
|
1154
|
+
if (metadataFromTarget) return metadataFromTarget;
|
|
1155
|
+
}
|
|
1156
|
+
for (var _i = 0, _a = this.getAncestors(target); _i < _a.length; _i++) {
|
|
1157
|
+
var ancestor = _a[_i];
|
|
1158
|
+
var ancestorMetadataMap = metadatas.get(ancestor);
|
|
1159
|
+
if (ancestorMetadataMap) {
|
|
1160
|
+
var ancestorResult = ancestorMetadataMap.get(propertyName);
|
|
1161
|
+
if (ancestorResult) return ancestorResult;
|
|
1162
|
+
}
|
|
1163
|
+
}
|
|
1164
|
+
};
|
|
1165
|
+
MetadataStorage$2.prototype.findMetadatas = function(metadatas, target, propertyName) {
|
|
1166
|
+
var metadataFromTargetMap = metadatas.get(target);
|
|
1167
|
+
var metadataFromTarget;
|
|
1168
|
+
if (metadataFromTargetMap) metadataFromTarget = metadataFromTargetMap.get(propertyName);
|
|
1169
|
+
var metadataFromAncestorsTarget = [];
|
|
1170
|
+
for (var _i = 0, _a = this.getAncestors(target); _i < _a.length; _i++) {
|
|
1171
|
+
var ancestor = _a[_i];
|
|
1172
|
+
var ancestorMetadataMap = metadatas.get(ancestor);
|
|
1173
|
+
if (ancestorMetadataMap) {
|
|
1174
|
+
if (ancestorMetadataMap.has(propertyName)) metadataFromAncestorsTarget.push.apply(metadataFromAncestorsTarget, ancestorMetadataMap.get(propertyName));
|
|
1175
|
+
}
|
|
1176
|
+
}
|
|
1177
|
+
return metadataFromAncestorsTarget.slice().reverse().concat((metadataFromTarget || []).slice().reverse());
|
|
1178
|
+
};
|
|
1179
|
+
MetadataStorage$2.prototype.getAncestors = function(target) {
|
|
1180
|
+
if (!target) return [];
|
|
1181
|
+
if (!this._ancestorsMap.has(target)) {
|
|
1182
|
+
var ancestors = [];
|
|
1183
|
+
for (var baseClass = Object.getPrototypeOf(target.prototype.constructor); typeof baseClass.prototype !== "undefined"; baseClass = Object.getPrototypeOf(baseClass.prototype.constructor)) ancestors.push(baseClass);
|
|
1184
|
+
this._ancestorsMap.set(target, ancestors);
|
|
1185
|
+
}
|
|
1186
|
+
return this._ancestorsMap.get(target);
|
|
1187
|
+
};
|
|
1188
|
+
return MetadataStorage$2;
|
|
1189
|
+
}();
|
|
1190
|
+
|
|
1191
|
+
//#endregion
|
|
1192
|
+
//#region node_modules/class-transformer/esm5/storage.js
|
|
1193
|
+
/**
|
|
1194
|
+
* Default metadata storage is used as singleton and can be used to storage all metadatas.
|
|
1195
|
+
*/
|
|
1196
|
+
var defaultMetadataStorage = new MetadataStorage();
|
|
1197
|
+
|
|
1198
|
+
//#endregion
|
|
1199
|
+
//#region node_modules/class-transformer/esm5/decorators/type.decorator.js
|
|
1200
|
+
/**
|
|
1201
|
+
* Specifies a type of the property.
|
|
1202
|
+
* The given TypeFunction can return a constructor. A discriminator can be given in the options.
|
|
1203
|
+
*
|
|
1204
|
+
* Can be applied to properties only.
|
|
1205
|
+
*/
|
|
1206
|
+
function Type(typeFunction, options) {
|
|
1207
|
+
if (options === void 0) options = {};
|
|
1208
|
+
return function(target, propertyName) {
|
|
1209
|
+
var reflectedType = Reflect.getMetadata("design:type", target, propertyName);
|
|
1210
|
+
defaultMetadataStorage.addTypeMetadata({
|
|
1211
|
+
target: target.constructor,
|
|
1212
|
+
propertyName,
|
|
1213
|
+
reflectedType,
|
|
1214
|
+
typeFunction,
|
|
1215
|
+
options
|
|
1216
|
+
});
|
|
1217
|
+
};
|
|
1218
|
+
}
|
|
1219
|
+
|
|
1220
|
+
//#endregion
|
|
1221
|
+
//#region src/api/main/dto/search-memory.dto.ts
|
|
1222
|
+
var SearchMemoryDto = class {
|
|
1223
|
+
/** 搜索关键词 */
|
|
1224
|
+
@IsString() @IsNotEmpty() @MaxLength(1e3) keyword;
|
|
1225
|
+
/** 记忆类型 */
|
|
1226
|
+
@IsOptional() @IsIn(["text", "image"]) type;
|
|
1227
|
+
@IsOptional() @Type(() => Number) @IsNumber() @Min(1) @Max(100) limit;
|
|
1228
|
+
};
|
|
1229
|
+
|
|
1230
|
+
//#endregion
|
|
1231
|
+
export { CreateImageMemoryDto, CreateTextMemoryDto, IntermediateDocument, IntermediateOutline, IntermediateOutlineDestType, IntermediatePage, IntermediatePageMap, IntermediateText, IntermediateTextMarkedContent, SearchMemoryDto, TextDir, TextMarkedContentType };
|
|
311
1232
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../src/HamsterDocument/IntermediateText.ts","../src/HamsterDocument/IntermediatePage.ts","../src/HamsterDocument/IntermediateOutline.ts","../src/HamsterDocument/IntermediateDocument.ts"],"sourcesContent":["export enum TextDir {\n TTB = 'ttb',\n LTR = 'ltr',\n RTL = 'rtl'\n}\n\nexport interface IntermediateTextSerialized {\n id: string\n // 文字内容\n content: string\n // 字体大小,大于等于 1 的按 px 计算,小于 1 的按 em 计算\n fontSize: number\n // 字体,字体具体需要用户下载,这里只定义字体名称\n fontFamily: string\n // 字重,默认 500\n fontWeight: number\n // 是否斜体\n italic: boolean\n // 字体颜色\n color: string\n // 整体宽度\n width: number\n // 整体高度\n height: number\n // 行高\n lineHeight: number\n // x 坐标, 大于等于 1 的按 px,小于 1 的按 百分比\n x: number\n // y 坐标, 大于等于 1 的按 px,小于 1 的按 百分比\n y: number\n // 字体 baseline\n ascent: number\n // 字体 descent\n descent: number\n // 垂直文字\n vertical?: boolean\n // 文字方向\n dir: TextDir\n // 旋转\n rotate: number\n // 倾斜\n skew: number\n // 是否是行末\n isEOL: boolean\n}\n\nexport class IntermediateText implements IntermediateTextSerialized {\n public id: string\n public content: string\n public fontSize: number\n public fontFamily: string\n public fontWeight: number\n public italic: boolean\n public color: string\n public width: number\n public height: number\n public lineHeight: number\n public x: number\n public y: number\n public ascent: number\n public descent: number\n public vertical?: boolean\n public dir: TextDir\n public rotate: number\n public skew: number\n public isEOL: boolean\n static serialize(text: IntermediateText): IntermediateTextSerialized {\n return {\n ...text\n }\n }\n static parse(data: IntermediateTextSerialized): IntermediateText {\n return new IntermediateText(data)\n }\n constructor({\n id,\n content,\n fontSize,\n fontFamily,\n fontWeight,\n italic,\n color,\n width,\n height,\n lineHeight,\n x,\n y,\n ascent,\n descent,\n vertical,\n dir,\n rotate,\n skew,\n isEOL\n }: IntermediateTextSerialized) {\n this.id = id\n this.content = content\n this.fontSize = fontSize\n this.fontFamily = fontFamily\n this.fontWeight = fontWeight\n this.italic = italic\n this.color = color\n this.width = width\n this.height = height\n this.lineHeight = lineHeight\n this.x = x\n this.y = y\n this.ascent = ascent\n this.descent = descent\n this.vertical = vertical\n this.dir = dir\n this.rotate = rotate\n this.skew = skew\n this.isEOL = isEOL\n }\n}\n\nexport enum TextMarkedContentType {\n BEGIN_MARKED_CONTENT = 'beginMarkedContent',\n BEGIN_MARKED_CONTENT_PROPS = 'beginMarkedContentProps',\n END_MARKED_CONTENT = 'endMarkedContent'\n}\n\nexport class IntermediateTextMarkedContent extends IntermediateText {\n // 这两个值参见 pdfjs 的 TextMarkedContent 类型\n constructor(\n data: IntermediateTextSerialized,\n protected type: TextMarkedContentType,\n protected markedContentId: string\n ) {\n super(data)\n }\n}\n","import {\n IntermediateText,\n IntermediateTextSerialized\n} from './IntermediateText'\n\nexport interface IntermediatePageSerialized {\n id: string\n texts: IntermediateTextSerialized[]\n width: number\n height: number\n number: number\n // 缩略图,背景图\n thumbnail: string | undefined\n}\n\n// 定义文本获取函数的返回类型别名\ntype TextsGetterReturnType =\n | Promise<IntermediateText[] | IntermediateTextSerialized[]>\n | IntermediateText[]\n | IntermediateTextSerialized[]\n\nexport class IntermediatePage {\n public id: string\n public texts: IntermediateText[]\n public width: number\n public height: number\n public number: number\n private _thumbnail?: string\n private _getThumbnailFn?: (scale: number) => Promise<string | undefined>\n private _getTextsFn?: () => TextsGetterReturnType\n // 标记文本是否已经完成加载,便于上层做懒加载策略\n private textsLoaded: boolean\n static serialize(page: IntermediatePage): IntermediatePageSerialized {\n return {\n id: page.id,\n texts: page.texts.map(IntermediateText.serialize),\n width: page.width,\n height: page.height,\n number: page.number,\n // 序列化时仅保留已有的静态缩略图(如果存在)\n thumbnail: page._thumbnail\n }\n }\n static parse(data: IntermediatePageSerialized): IntermediatePage {\n return new IntermediatePage(data)\n }\n constructor({\n texts,\n width,\n height,\n number,\n id,\n thumbnail,\n getThumbnailFn,\n getTextsFn\n }: Omit<IntermediatePageSerialized, 'texts'> & {\n texts: IntermediateText[] | IntermediateTextSerialized[]\n } & {\n getThumbnailFn?: (scale: number) => Promise<string | undefined>\n getTextsFn?: () => TextsGetterReturnType\n }) {\n this.id = id\n this.texts = (\n texts as (IntermediateText | IntermediateTextSerialized)[]\n ).map((t) => (t instanceof IntermediateText ? t : new IntermediateText(t)))\n this.width = width\n this.height = height\n this.number = number\n this._thumbnail = thumbnail\n if (getThumbnailFn) this._getThumbnailFn = getThumbnailFn\n if (getTextsFn) this._getTextsFn = getTextsFn\n this.textsLoaded = !getTextsFn\n }\n // 获取缩略图,按需渲染\n async getThumbnail(scale = 1): Promise<string | undefined> {\n if (this._getThumbnailFn) return this._getThumbnailFn(scale)\n return this._thumbnail\n }\n // 获取文本,按需获取\n async getTexts(): Promise<IntermediateText[]> {\n if (this._getTextsFn) {\n const data = await this._getTextsFn()\n const mapped = (\n data as (IntermediateText | IntermediateTextSerialized)[]\n ).map((t) =>\n t instanceof IntermediateText ? t : new IntermediateText(t)\n )\n this.texts = mapped\n this.textsLoaded = true\n // 懒加载完成后去掉取数函数,避免重复请求\n this._getTextsFn = undefined\n }\n return this.texts\n }\n // 判断文本是否已加载(便于调用方做缓存判断)\n get hasLoadedTexts(): boolean {\n return this.textsLoaded\n }\n // 提供一个方法以注入按需生成缩略图的函数\n setGetThumbnail(fn: (scale: number) => Promise<string | undefined>) {\n this._getThumbnailFn = fn\n }\n // 提供一个方法以注入按需获取文本的函数\n setGetTexts(fn: () => TextsGetterReturnType) {\n this._getTextsFn = fn\n }\n}\n","import {\n IntermediateText,\n IntermediateTextSerialized\n} from './IntermediateText'\n\nexport enum IntermediateOutlineDestType {\n TEXT = 'text',\n PAGE = 'page',\n POSITION = 'position',\n URL = 'url'\n}\n\nexport type IntermediateOutlineDest =\n | IntermediateOutlineDestPage\n | IntermediateOutlineDestText\n | IntermediateOutlineDestPosition\n | IntermediateOutlineDestUrl\n\nexport interface IntermediateOutlineDestUrl {\n targetType: IntermediateOutlineDestType.URL\n url: string\n unsafeUrl: string | undefined\n newWindow: boolean\n items?: IntermediateOutlineDest[]\n}\n\nexport interface IntermediateOutlineDestPage {\n targetType: IntermediateOutlineDestType.PAGE\n pageId: string\n items?: IntermediateOutlineDest[]\n}\n\nexport interface IntermediateOutlineDestText {\n targetType: IntermediateOutlineDestType.TEXT\n textId: string\n items?: IntermediateOutlineDest[]\n}\n\nexport interface IntermediateOutlineDestPosition {\n targetType: IntermediateOutlineDestType.POSITION\n items?: IntermediateOutlineDest[]\n}\n\nexport interface IntermediateOutlineSerialized extends IntermediateTextSerialized {\n dest: IntermediateOutlineDest\n}\n\nexport class IntermediateOutline\n extends IntermediateText\n implements IntermediateOutlineSerialized\n{\n public dest: IntermediateOutlineDest\n static serialize(\n outline: IntermediateOutline\n ): IntermediateOutlineSerialized {\n return {\n ...IntermediateText.serialize(outline),\n dest: outline.dest\n }\n }\n static parse(data: IntermediateOutlineSerialized): IntermediateOutline {\n return new IntermediateOutline(data)\n }\n constructor(data: IntermediateOutlineSerialized) {\n const { dest, ...textData } = data\n super(textData as IntermediateTextSerialized)\n this.dest = dest\n }\n}\n","import {\n IntermediatePage,\n IntermediatePageSerialized\n} from './IntermediatePage'\nimport {\n IntermediateOutline,\n IntermediateOutlineSerialized\n} from './IntermediateOutline'\nimport { Number2 } from '../math/index'\n\nexport interface IntermediateDocumentSerialized {\n id: string\n pages: IntermediatePageSerialized[]\n title: string\n // 文档大纲(可选)\n outline?: IntermediateOutlineSerialized[]\n}\n\ntype PageLoader = () => Promise<IntermediatePage>\n\ninterface IntermediatePageEntry {\n id: string\n pageNumber: number\n size: Number2\n loader: PageLoader\n cache?: Promise<IntermediatePage>\n}\n\n// ! 用来懒加载 Pages\nexport class IntermediatePageMap {\n // ! 以 id、页码分别索引,方便不同场景快速查找\n private entryById: Map<string, IntermediatePageEntry> = new Map()\n private entryByPageNumber: Map<number, IntermediatePageEntry> = new Map()\n\n constructor(entries: IntermediatePageEntry[] = []) {\n entries.forEach((entry) => this.registerEntry(entry))\n }\n\n private registerEntry(entry: IntermediatePageEntry) {\n this.entryById.set(entry.id, entry)\n this.entryByPageNumber.set(entry.pageNumber, entry)\n }\n\n private async resolve(\n entry: IntermediatePageEntry\n ): Promise<IntermediatePage> {\n if (!entry.cache) entry.cache = entry.loader()\n return entry.cache\n }\n\n // 按页码顺序批量获取,内部并发取数避免串行等待\n async getPages(): Promise<IntermediatePage[]> {\n const orderedEntries = this.pageNumbers\n .map((pageNumber) => this.entryByPageNumber.get(pageNumber))\n .filter((entry): entry is IntermediatePageEntry => Boolean(entry))\n return Promise.all(orderedEntries.map((entry) => this.resolve(entry)))\n }\n\n // 直接用完整实例覆盖缓存,便于外部更新\n updatePage(page: IntermediatePage) {\n // 先清理旧索引,避免相同 id 或页码残留造成脏数据\n const oldById = this.entryById.get(page.id)\n if (oldById) {\n this.entryByPageNumber.delete(oldById.pageNumber)\n this.entryById.delete(oldById.id)\n }\n const oldByNumber = this.entryByPageNumber.get(page.number)\n if (oldByNumber && oldByNumber.id !== page.id) {\n this.entryById.delete(oldByNumber.id)\n this.entryByPageNumber.delete(oldByNumber.pageNumber)\n }\n const newPromise = Promise.resolve(page)\n const entry: IntermediatePageEntry = {\n id: page.id,\n pageNumber: page.number,\n size: { x: page.width, y: page.height },\n loader: () => newPromise,\n cache: newPromise\n }\n this.registerEntry(entry)\n }\n\n get pageCount() {\n return this.entryByPageNumber.size\n }\n\n get pageNumbers(): number[] {\n return [...this.entryByPageNumber.keys()].sort((a, b) => a - b)\n }\n\n // & 从序列化的数据生成类\n static fromSerialized(pages: IntermediatePageSerialized[]) {\n const entries: IntermediatePageEntry[] = pages.map((page) => ({\n id: page.id,\n pageNumber: page.number,\n loader: () => Promise.resolve(new IntermediatePage(page)),\n size: { x: page.width, y: page.height }\n }))\n return new IntermediatePageMap(entries)\n }\n\n // & 从列表数据生成类\n static fromInfoList(\n infoList: {\n id: string\n pageNumber: number\n size: Number2\n getData: PageLoader\n }[]\n ) {\n const entries: IntermediatePageEntry[] = infoList.map((info) => ({\n id: info.id,\n pageNumber: info.pageNumber,\n size: info.size,\n loader: info.getData\n }))\n return new IntermediatePageMap(entries)\n }\n\n // 兼容旧命名(Deprecated),方便平滑过渡\n static makeBySerializedData(pages: IntermediatePageSerialized[]) {\n return IntermediatePageMap.fromSerialized(pages)\n }\n static makeByInfoList(\n infoList: {\n id: string\n pageNumber: number\n size: Number2\n getData: PageLoader\n }[]\n ) {\n return IntermediatePageMap.fromInfoList(infoList)\n }\n\n getPageById(id: string) {\n const entry = this.entryById.get(id)\n if (!entry) return undefined\n return this.resolve(entry)\n }\n\n getPageByPageNumber(pageNumber: number) {\n const entry = this.entryByPageNumber.get(pageNumber)\n if (!entry) return undefined\n return this.resolve(entry)\n }\n\n getPageSizeByPageNumber(pageNumber: number) {\n return this.entryByPageNumber.get(pageNumber)?.size\n }\n}\n\nexport class IntermediateDocument {\n public readonly id: string\n public title: string\n public outline?: IntermediateOutline[]\n\n get pages(): Promise<IntermediatePage[]> {\n return this.pagesMap.getPages()\n }\n\n set pages(pages: IntermediatePage[]) {\n pages.forEach((page) => {\n this.pagesMap.updatePage(page)\n })\n }\n\n private pagesMap: IntermediatePageMap\n\n static async serialize(\n doc: IntermediateDocument\n ): Promise<IntermediateDocumentSerialized> {\n const pages = await doc.pagesMap.getPages()\n const serializedPages = await Promise.all(\n pages.map(async (page) => {\n if (!page.hasLoadedTexts) await page.getTexts()\n return IntermediatePage.serialize(page)\n })\n )\n return {\n pages: serializedPages,\n id: doc.id,\n title: doc.title,\n outline: doc.outline?.map(IntermediateOutline.serialize)\n }\n }\n\n static parse(data: IntermediateDocumentSerialized): IntermediateDocument {\n return new IntermediateDocument({\n ...data,\n pagesMap: IntermediatePageMap.fromSerialized(data.pages),\n outline: data.outline?.map(IntermediateOutline.parse)\n })\n }\n\n constructor({\n pagesMap,\n id,\n title,\n outline\n }: Omit<IntermediateDocumentSerialized, 'pages'> & {\n pagesMap: IntermediatePageMap\n outline?: IntermediateOutline[]\n }) {\n this.pagesMap = pagesMap\n this.id = id\n this.title = title\n this.outline = outline\n }\n\n get pageCount() {\n return this.pagesMap.pageCount\n }\n\n get pageNumbers() {\n return this.pagesMap.pageNumbers\n }\n\n async getCover(scale = 0.3) {\n const firstPagePromise = this.pagesMap.getPageByPageNumber(1)\n const page = firstPagePromise ? await firstPagePromise : undefined\n if (!page) return undefined\n return page.getThumbnail(scale)\n }\n\n getPageById(id: string) {\n return this.pagesMap.getPageById(id)\n }\n\n getPageByPageNumber(pageNumber: number) {\n return this.pagesMap.getPageByPageNumber(pageNumber)\n }\n\n getPageSizeByPageNumber(pageNumber: number) {\n return this.pagesMap.getPageSizeByPageNumber(pageNumber)\n }\n\n // 获取文档大纲\n getOutline() {\n return this.outline\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["ValidationMetadata","ValidationSchemaToMetadataTransformer","MetadataStorage","metadata","global","ValidationTypes","instance","ConstraintMetadata","MetadataStorage","object","max","min","o","min","max","max","MetadataStorage"],"sources":["../src/HamsterDocument/IntermediateText.ts","../src/HamsterDocument/IntermediatePage.ts","../src/HamsterDocument/IntermediateOutline.ts","../src/HamsterDocument/IntermediateDocument.ts","../node_modules/class-validator/esm5/metadata/ValidationMetadata.js","../node_modules/class-validator/esm5/validation-schema/ValidationSchemaToMetadataTransformer.js","../node_modules/class-validator/esm5/utils/get-global.util.js","../node_modules/class-validator/esm5/metadata/MetadataStorage.js","../node_modules/class-validator/esm5/validation/ValidationTypes.js","../node_modules/class-validator/esm5/container.js","../node_modules/class-validator/esm5/metadata/ConstraintMetadata.js","../node_modules/class-validator/esm5/register-decorator.js","../node_modules/class-validator/esm5/decorator/common/ValidateBy.js","../node_modules/class-validator/esm5/decorator/common/IsOptional.js","../node_modules/validator/lib/util/assertString.js","../node_modules/class-validator/esm5/decorator/common/IsNotEmpty.js","../node_modules/class-validator/esm5/decorator/common/IsIn.js","../node_modules/class-validator/esm5/decorator/number/Max.js","../node_modules/class-validator/esm5/decorator/number/Min.js","../node_modules/validator/lib/isLength.js","../node_modules/class-validator/esm5/decorator/string/MaxLength.js","../node_modules/class-validator/esm5/decorator/typechecker/IsNumber.js","../node_modules/class-validator/esm5/decorator/typechecker/IsString.js","../src/api/main/dto/create-image-memory.dto.ts","../src/api/main/dto/create-text-memory.dto.ts","../node_modules/class-transformer/esm5/enums/transformation-type.enum.js","../node_modules/class-transformer/esm5/MetadataStorage.js","../node_modules/class-transformer/esm5/storage.js","../node_modules/class-transformer/esm5/decorators/type.decorator.js","../src/api/main/dto/search-memory.dto.ts"],"sourcesContent":["export enum TextDir {\n TTB = 'ttb',\n LTR = 'ltr',\n RTL = 'rtl'\n}\n\nexport interface IntermediateTextSerialized {\n id: string\n // 文字内容\n content: string\n // 字体大小,大于等于 1 的按 px 计算,小于 1 的按 em 计算\n fontSize: number\n // 字体,字体具体需要用户下载,这里只定义字体名称\n fontFamily: string\n // 字重,默认 500\n fontWeight: number\n // 是否斜体\n italic: boolean\n // 字体颜色\n color: string\n // 整体宽度\n width: number\n // 整体高度\n height: number\n // 行高\n lineHeight: number\n // x 坐标, 大于等于 1 的按 px,小于 1 的按 百分比\n x: number\n // y 坐标, 大于等于 1 的按 px,小于 1 的按 百分比\n y: number\n // 字体 baseline\n ascent: number\n // 字体 descent\n descent: number\n // 垂直文字\n vertical?: boolean\n // 文字方向\n dir: TextDir\n // 旋转\n rotate: number\n // 倾斜\n skew: number\n // 是否是行末\n isEOL: boolean\n}\n\nexport class IntermediateText implements IntermediateTextSerialized {\n public id: string\n public content: string\n public fontSize: number\n public fontFamily: string\n public fontWeight: number\n public italic: boolean\n public color: string\n public width: number\n public height: number\n public lineHeight: number\n public x: number\n public y: number\n public ascent: number\n public descent: number\n public vertical?: boolean\n public dir: TextDir\n public rotate: number\n public skew: number\n public isEOL: boolean\n static serialize(text: IntermediateText): IntermediateTextSerialized {\n return {\n ...text\n }\n }\n static parse(data: IntermediateTextSerialized): IntermediateText {\n return new IntermediateText(data)\n }\n constructor({\n id,\n content,\n fontSize,\n fontFamily,\n fontWeight,\n italic,\n color,\n width,\n height,\n lineHeight,\n x,\n y,\n ascent,\n descent,\n vertical,\n dir,\n rotate,\n skew,\n isEOL\n }: IntermediateTextSerialized) {\n this.id = id\n this.content = content\n this.fontSize = fontSize\n this.fontFamily = fontFamily\n this.fontWeight = fontWeight\n this.italic = italic\n this.color = color\n this.width = width\n this.height = height\n this.lineHeight = lineHeight\n this.x = x\n this.y = y\n this.ascent = ascent\n this.descent = descent\n this.vertical = vertical\n this.dir = dir\n this.rotate = rotate\n this.skew = skew\n this.isEOL = isEOL\n }\n}\n\nexport enum TextMarkedContentType {\n BEGIN_MARKED_CONTENT = 'beginMarkedContent',\n BEGIN_MARKED_CONTENT_PROPS = 'beginMarkedContentProps',\n END_MARKED_CONTENT = 'endMarkedContent'\n}\n\nexport class IntermediateTextMarkedContent extends IntermediateText {\n // 这两个值参见 pdfjs 的 TextMarkedContent 类型\n constructor(\n data: IntermediateTextSerialized,\n protected type: TextMarkedContentType,\n protected markedContentId: string\n ) {\n super(data)\n }\n}\n","import {\n IntermediateText,\n IntermediateTextSerialized\n} from './IntermediateText'\n\nexport interface IntermediatePageSerialized {\n id: string\n texts: IntermediateTextSerialized[]\n width: number\n height: number\n number: number\n // 缩略图,背景图\n thumbnail: string | undefined\n}\n\n// 定义文本获取函数的返回类型别名\ntype TextsGetterReturnType =\n | Promise<IntermediateText[] | IntermediateTextSerialized[]>\n | IntermediateText[]\n | IntermediateTextSerialized[]\n\nexport class IntermediatePage {\n public id: string\n public texts: IntermediateText[]\n public width: number\n public height: number\n public number: number\n private _thumbnail?: string\n private _getThumbnailFn?: (scale: number) => Promise<string | undefined>\n private _getTextsFn?: () => TextsGetterReturnType\n // 标记文本是否已经完成加载,便于上层做懒加载策略\n private textsLoaded: boolean\n static serialize(page: IntermediatePage): IntermediatePageSerialized {\n return {\n id: page.id,\n texts: page.texts.map(IntermediateText.serialize),\n width: page.width,\n height: page.height,\n number: page.number,\n // 序列化时仅保留已有的静态缩略图(如果存在)\n thumbnail: page._thumbnail\n }\n }\n static parse(data: IntermediatePageSerialized): IntermediatePage {\n return new IntermediatePage(data)\n }\n constructor({\n texts,\n width,\n height,\n number,\n id,\n thumbnail,\n getThumbnailFn,\n getTextsFn\n }: Omit<IntermediatePageSerialized, 'texts'> & {\n texts: IntermediateText[] | IntermediateTextSerialized[]\n } & {\n getThumbnailFn?: (scale: number) => Promise<string | undefined>\n getTextsFn?: () => TextsGetterReturnType\n }) {\n this.id = id\n this.texts = (\n texts as (IntermediateText | IntermediateTextSerialized)[]\n ).map((t) => (t instanceof IntermediateText ? t : new IntermediateText(t)))\n this.width = width\n this.height = height\n this.number = number\n this._thumbnail = thumbnail\n if (getThumbnailFn) this._getThumbnailFn = getThumbnailFn\n if (getTextsFn) this._getTextsFn = getTextsFn\n this.textsLoaded = !getTextsFn\n }\n // 获取缩略图,按需渲染\n async getThumbnail(scale = 1): Promise<string | undefined> {\n if (this._getThumbnailFn) return this._getThumbnailFn(scale)\n return this._thumbnail\n }\n // 获取文本,按需获取\n async getTexts(): Promise<IntermediateText[]> {\n if (this._getTextsFn) {\n const data = await this._getTextsFn()\n const mapped = (\n data as (IntermediateText | IntermediateTextSerialized)[]\n ).map((t) =>\n t instanceof IntermediateText ? t : new IntermediateText(t)\n )\n this.texts = mapped\n this.textsLoaded = true\n // 懒加载完成后去掉取数函数,避免重复请求\n this._getTextsFn = undefined\n }\n return this.texts\n }\n // 判断文本是否已加载(便于调用方做缓存判断)\n get hasLoadedTexts(): boolean {\n return this.textsLoaded\n }\n // 提供一个方法以注入按需生成缩略图的函数\n setGetThumbnail(fn: (scale: number) => Promise<string | undefined>) {\n this._getThumbnailFn = fn\n }\n // 提供一个方法以注入按需获取文本的函数\n setGetTexts(fn: () => TextsGetterReturnType) {\n this._getTextsFn = fn\n }\n}\n","import {\n IntermediateText,\n IntermediateTextSerialized\n} from './IntermediateText'\n\nexport enum IntermediateOutlineDestType {\n TEXT = 'text',\n PAGE = 'page',\n POSITION = 'position',\n URL = 'url'\n}\n\nexport type IntermediateOutlineDest =\n | IntermediateOutlineDestPage\n | IntermediateOutlineDestText\n | IntermediateOutlineDestPosition\n | IntermediateOutlineDestUrl\n\nexport interface IntermediateOutlineDestUrl {\n targetType: IntermediateOutlineDestType.URL\n url: string\n unsafeUrl: string | undefined\n newWindow: boolean\n items?: IntermediateOutlineDest[]\n}\n\nexport interface IntermediateOutlineDestPage {\n targetType: IntermediateOutlineDestType.PAGE\n pageId: string\n items?: IntermediateOutlineDest[]\n}\n\nexport interface IntermediateOutlineDestText {\n targetType: IntermediateOutlineDestType.TEXT\n textId: string\n items?: IntermediateOutlineDest[]\n}\n\nexport interface IntermediateOutlineDestPosition {\n targetType: IntermediateOutlineDestType.POSITION\n items?: IntermediateOutlineDest[]\n}\n\nexport interface IntermediateOutlineSerialized extends IntermediateTextSerialized {\n dest: IntermediateOutlineDest\n}\n\nexport class IntermediateOutline\n extends IntermediateText\n implements IntermediateOutlineSerialized\n{\n public dest: IntermediateOutlineDest\n static serialize(\n outline: IntermediateOutline\n ): IntermediateOutlineSerialized {\n return {\n ...IntermediateText.serialize(outline),\n dest: outline.dest\n }\n }\n static parse(data: IntermediateOutlineSerialized): IntermediateOutline {\n return new IntermediateOutline(data)\n }\n constructor(data: IntermediateOutlineSerialized) {\n const { dest, ...textData } = data\n super(textData as IntermediateTextSerialized)\n this.dest = dest\n }\n}\n","import {\n IntermediatePage,\n IntermediatePageSerialized\n} from './IntermediatePage'\nimport {\n IntermediateOutline,\n IntermediateOutlineSerialized\n} from './IntermediateOutline'\nimport { Number2 } from '../math/index'\n\nexport interface IntermediateDocumentSerialized {\n id: string\n pages: IntermediatePageSerialized[]\n title: string\n // 文档大纲(可选)\n outline?: IntermediateOutlineSerialized[]\n}\n\ntype PageLoader = () => Promise<IntermediatePage>\n\ninterface IntermediatePageEntry {\n id: string\n pageNumber: number\n size: Number2\n loader: PageLoader\n cache?: Promise<IntermediatePage>\n}\n\n// ! 用来懒加载 Pages\nexport class IntermediatePageMap {\n // ! 以 id、页码分别索引,方便不同场景快速查找\n private entryById: Map<string, IntermediatePageEntry> = new Map()\n private entryByPageNumber: Map<number, IntermediatePageEntry> = new Map()\n\n constructor(entries: IntermediatePageEntry[] = []) {\n entries.forEach((entry) => this.registerEntry(entry))\n }\n\n private registerEntry(entry: IntermediatePageEntry) {\n this.entryById.set(entry.id, entry)\n this.entryByPageNumber.set(entry.pageNumber, entry)\n }\n\n private async resolve(\n entry: IntermediatePageEntry\n ): Promise<IntermediatePage> {\n if (!entry.cache) entry.cache = entry.loader()\n return entry.cache\n }\n\n // 按页码顺序批量获取,内部并发取数避免串行等待\n async getPages(): Promise<IntermediatePage[]> {\n const orderedEntries = this.pageNumbers\n .map((pageNumber) => this.entryByPageNumber.get(pageNumber))\n .filter((entry): entry is IntermediatePageEntry => Boolean(entry))\n return Promise.all(orderedEntries.map((entry) => this.resolve(entry)))\n }\n\n // 直接用完整实例覆盖缓存,便于外部更新\n updatePage(page: IntermediatePage) {\n // 先清理旧索引,避免相同 id 或页码残留造成脏数据\n const oldById = this.entryById.get(page.id)\n if (oldById) {\n this.entryByPageNumber.delete(oldById.pageNumber)\n this.entryById.delete(oldById.id)\n }\n const oldByNumber = this.entryByPageNumber.get(page.number)\n if (oldByNumber && oldByNumber.id !== page.id) {\n this.entryById.delete(oldByNumber.id)\n this.entryByPageNumber.delete(oldByNumber.pageNumber)\n }\n const newPromise = Promise.resolve(page)\n const entry: IntermediatePageEntry = {\n id: page.id,\n pageNumber: page.number,\n size: { x: page.width, y: page.height },\n loader: () => newPromise,\n cache: newPromise\n }\n this.registerEntry(entry)\n }\n\n get pageCount() {\n return this.entryByPageNumber.size\n }\n\n get pageNumbers(): number[] {\n return [...this.entryByPageNumber.keys()].sort((a, b) => a - b)\n }\n\n // & 从序列化的数据生成类\n static fromSerialized(pages: IntermediatePageSerialized[]) {\n const entries: IntermediatePageEntry[] = pages.map((page) => ({\n id: page.id,\n pageNumber: page.number,\n loader: () => Promise.resolve(new IntermediatePage(page)),\n size: { x: page.width, y: page.height }\n }))\n return new IntermediatePageMap(entries)\n }\n\n // & 从列表数据生成类\n static fromInfoList(\n infoList: {\n id: string\n pageNumber: number\n size: Number2\n getData: PageLoader\n }[]\n ) {\n const entries: IntermediatePageEntry[] = infoList.map((info) => ({\n id: info.id,\n pageNumber: info.pageNumber,\n size: info.size,\n loader: info.getData\n }))\n return new IntermediatePageMap(entries)\n }\n\n // 兼容旧命名(Deprecated),方便平滑过渡\n static makeBySerializedData(pages: IntermediatePageSerialized[]) {\n return IntermediatePageMap.fromSerialized(pages)\n }\n static makeByInfoList(\n infoList: {\n id: string\n pageNumber: number\n size: Number2\n getData: PageLoader\n }[]\n ) {\n return IntermediatePageMap.fromInfoList(infoList)\n }\n\n getPageById(id: string) {\n const entry = this.entryById.get(id)\n if (!entry) return undefined\n return this.resolve(entry)\n }\n\n getPageByPageNumber(pageNumber: number) {\n const entry = this.entryByPageNumber.get(pageNumber)\n if (!entry) return undefined\n return this.resolve(entry)\n }\n\n getPageSizeByPageNumber(pageNumber: number) {\n return this.entryByPageNumber.get(pageNumber)?.size\n }\n}\n\nexport class IntermediateDocument {\n public readonly id: string\n public title: string\n public outline?: IntermediateOutline[]\n\n get pages(): Promise<IntermediatePage[]> {\n return this.pagesMap.getPages()\n }\n\n set pages(pages: IntermediatePage[]) {\n pages.forEach((page) => {\n this.pagesMap.updatePage(page)\n })\n }\n\n private pagesMap: IntermediatePageMap\n\n static async serialize(\n doc: IntermediateDocument\n ): Promise<IntermediateDocumentSerialized> {\n const pages = await doc.pagesMap.getPages()\n const serializedPages = await Promise.all(\n pages.map(async (page) => {\n if (!page.hasLoadedTexts) await page.getTexts()\n return IntermediatePage.serialize(page)\n })\n )\n return {\n pages: serializedPages,\n id: doc.id,\n title: doc.title,\n outline: doc.outline?.map(IntermediateOutline.serialize)\n }\n }\n\n static parse(data: IntermediateDocumentSerialized): IntermediateDocument {\n return new IntermediateDocument({\n ...data,\n pagesMap: IntermediatePageMap.fromSerialized(data.pages),\n outline: data.outline?.map(IntermediateOutline.parse)\n })\n }\n\n constructor({\n pagesMap,\n id,\n title,\n outline\n }: Omit<IntermediateDocumentSerialized, 'pages'> & {\n pagesMap: IntermediatePageMap\n outline?: IntermediateOutline[]\n }) {\n this.pagesMap = pagesMap\n this.id = id\n this.title = title\n this.outline = outline\n }\n\n get pageCount() {\n return this.pagesMap.pageCount\n }\n\n get pageNumbers() {\n return this.pagesMap.pageNumbers\n }\n\n async getCover(scale = 0.3) {\n const firstPagePromise = this.pagesMap.getPageByPageNumber(1)\n const page = firstPagePromise ? await firstPagePromise : undefined\n if (!page) return undefined\n return page.getThumbnail(scale)\n }\n\n getPageById(id: string) {\n return this.pagesMap.getPageById(id)\n }\n\n getPageByPageNumber(pageNumber: number) {\n return this.pagesMap.getPageByPageNumber(pageNumber)\n }\n\n getPageSizeByPageNumber(pageNumber: number) {\n return this.pagesMap.getPageSizeByPageNumber(pageNumber)\n }\n\n // 获取文档大纲\n getOutline() {\n return this.outline\n }\n}\n","/**\n * This metadata contains validation rules.\n */\nvar ValidationMetadata = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function ValidationMetadata(args) {\n /**\n * Validation groups used for this validation.\n */\n this.groups = [];\n /**\n * Specifies if validated value is an array and each of its item must be validated.\n */\n this.each = false;\n /*\n * A transient set of data passed through to the validation result for response mapping\n */\n this.context = undefined;\n this.type = args.type;\n this.name = args.name;\n this.target = args.target;\n this.propertyName = args.propertyName;\n this.constraints = args === null || args === void 0 ? void 0 : args.constraints;\n this.constraintCls = args.constraintCls;\n this.validationTypeOptions = args.validationTypeOptions;\n if (args.validationOptions) {\n this.message = args.validationOptions.message;\n this.groups = args.validationOptions.groups;\n this.always = args.validationOptions.always;\n this.each = args.validationOptions.each;\n this.context = args.validationOptions.context;\n }\n }\n return ValidationMetadata;\n}());\nexport { ValidationMetadata };\n//# sourceMappingURL=ValidationMetadata.js.map","import { ValidationMetadata } from '../metadata/ValidationMetadata';\n/**\n * Used to transform validation schemas to validation metadatas.\n */\nvar ValidationSchemaToMetadataTransformer = /** @class */ (function () {\n function ValidationSchemaToMetadataTransformer() {\n }\n ValidationSchemaToMetadataTransformer.prototype.transform = function (schema) {\n var metadatas = [];\n Object.keys(schema.properties).forEach(function (property) {\n schema.properties[property].forEach(function (validation) {\n var validationOptions = {\n message: validation.message,\n groups: validation.groups,\n always: validation.always,\n each: validation.each,\n };\n var args = {\n type: validation.type,\n name: validation.name,\n target: schema.name,\n propertyName: property,\n constraints: validation.constraints,\n validationTypeOptions: validation.options,\n validationOptions: validationOptions,\n };\n metadatas.push(new ValidationMetadata(args));\n });\n });\n return metadatas;\n };\n return ValidationSchemaToMetadataTransformer;\n}());\nexport { ValidationSchemaToMetadataTransformer };\n//# sourceMappingURL=ValidationSchemaToMetadataTransformer.js.map","/**\n * This function returns the global object across Node and browsers.\n *\n * Note: `globalThis` is the standardized approach however it has been added to\n * Node.js in version 12. We need to include this snippet until Node 12 EOL.\n */\nexport function getGlobal() {\n if (typeof globalThis !== 'undefined') {\n return globalThis;\n }\n if (typeof global !== 'undefined') {\n return global;\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Cannot find name 'window'.\n if (typeof window !== 'undefined') {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Cannot find name 'window'.\n return window;\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Cannot find name 'self'.\n if (typeof self !== 'undefined') {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Cannot find name 'self'.\n return self;\n }\n}\n//# sourceMappingURL=get-global.util.js.map","var __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nimport { ValidationSchemaToMetadataTransformer } from '../validation-schema/ValidationSchemaToMetadataTransformer';\nimport { getGlobal } from '../utils';\n/**\n * Storage all metadatas.\n */\nvar MetadataStorage = /** @class */ (function () {\n function MetadataStorage() {\n // -------------------------------------------------------------------------\n // Private properties\n // -------------------------------------------------------------------------\n this.validationMetadatas = new Map();\n this.constraintMetadatas = new Map();\n }\n Object.defineProperty(MetadataStorage.prototype, \"hasValidationMetaData\", {\n get: function () {\n return !!this.validationMetadatas.size;\n },\n enumerable: false,\n configurable: true\n });\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Adds a new validation metadata.\n */\n MetadataStorage.prototype.addValidationSchema = function (schema) {\n var _this = this;\n var validationMetadatas = new ValidationSchemaToMetadataTransformer().transform(schema);\n validationMetadatas.forEach(function (validationMetadata) { return _this.addValidationMetadata(validationMetadata); });\n };\n /**\n * Adds a new validation metadata.\n */\n MetadataStorage.prototype.addValidationMetadata = function (metadata) {\n var existingMetadata = this.validationMetadatas.get(metadata.target);\n if (existingMetadata) {\n existingMetadata.push(metadata);\n }\n else {\n this.validationMetadatas.set(metadata.target, [metadata]);\n }\n };\n /**\n * Adds a new constraint metadata.\n */\n MetadataStorage.prototype.addConstraintMetadata = function (metadata) {\n var existingMetadata = this.constraintMetadatas.get(metadata.target);\n if (existingMetadata) {\n existingMetadata.push(metadata);\n }\n else {\n this.constraintMetadatas.set(metadata.target, [metadata]);\n }\n };\n /**\n * Groups metadata by their property names.\n */\n MetadataStorage.prototype.groupByPropertyName = function (metadata) {\n var grouped = {};\n metadata.forEach(function (metadata) {\n if (!grouped[metadata.propertyName])\n grouped[metadata.propertyName] = [];\n grouped[metadata.propertyName].push(metadata);\n });\n return grouped;\n };\n /**\n * Gets all validation metadatas for the given object with the given groups.\n */\n MetadataStorage.prototype.getTargetValidationMetadatas = function (targetConstructor, targetSchema, always, strictGroups, groups) {\n var e_1, _a;\n var includeMetadataBecauseOfAlwaysOption = function (metadata) {\n // `metadata.always` overrides global default.\n if (typeof metadata.always !== 'undefined')\n return metadata.always;\n // `metadata.groups` overrides global default.\n if (metadata.groups && metadata.groups.length)\n return false;\n // Use global default.\n return always;\n };\n var excludeMetadataBecauseOfStrictGroupsOption = function (metadata) {\n if (strictGroups) {\n // Validation is not using groups.\n if (!groups || !groups.length) {\n // `metadata.groups` has at least one group.\n if (metadata.groups && metadata.groups.length)\n return true;\n }\n }\n return false;\n };\n // get directly related to a target metadatas\n var filteredForOriginalMetadatasSearch = this.validationMetadatas.get(targetConstructor) || [];\n var originalMetadatas = filteredForOriginalMetadatasSearch.filter(function (metadata) {\n if (metadata.target !== targetConstructor && metadata.target !== targetSchema)\n return false;\n if (includeMetadataBecauseOfAlwaysOption(metadata))\n return true;\n if (excludeMetadataBecauseOfStrictGroupsOption(metadata))\n return false;\n if (groups && groups.length > 0)\n return metadata.groups && !!metadata.groups.find(function (group) { return groups.indexOf(group) !== -1; });\n return true;\n });\n // get metadatas for inherited classes\n var filteredForInheritedMetadatasSearch = [];\n try {\n for (var _b = __values(this.validationMetadatas.entries()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var _d = __read(_c.value, 2), key = _d[0], value = _d[1];\n if (targetConstructor.prototype instanceof key) {\n filteredForInheritedMetadatasSearch.push.apply(filteredForInheritedMetadatasSearch, __spreadArray([], __read(value), false));\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n var inheritedMetadatas = filteredForInheritedMetadatasSearch.filter(function (metadata) {\n // if target is a string it's means we validate against a schema, and there is no inheritance support for schemas\n if (typeof metadata.target === 'string')\n return false;\n if (metadata.target === targetConstructor)\n return false;\n if (metadata.target instanceof Function && !(targetConstructor.prototype instanceof metadata.target))\n return false;\n if (includeMetadataBecauseOfAlwaysOption(metadata))\n return true;\n if (excludeMetadataBecauseOfStrictGroupsOption(metadata))\n return false;\n if (groups && groups.length > 0)\n return metadata.groups && !!metadata.groups.find(function (group) { return groups.indexOf(group) !== -1; });\n return true;\n });\n // filter out duplicate metadatas, prefer original metadatas instead of inherited metadatas\n var uniqueInheritedMetadatas = inheritedMetadatas.filter(function (inheritedMetadata) {\n return !originalMetadatas.find(function (originalMetadata) {\n return (originalMetadata.propertyName === inheritedMetadata.propertyName &&\n originalMetadata.type === inheritedMetadata.type);\n });\n });\n return originalMetadatas.concat(uniqueInheritedMetadatas);\n };\n /**\n * Gets all validator constraints for the given object.\n */\n MetadataStorage.prototype.getTargetValidatorConstraints = function (target) {\n return this.constraintMetadatas.get(target) || [];\n };\n return MetadataStorage;\n}());\nexport { MetadataStorage };\n/**\n * Gets metadata storage.\n * Metadata storage follows the best practices and stores metadata in a global variable.\n */\nexport function getMetadataStorage() {\n var global = getGlobal();\n if (!global.classValidatorMetadataStorage) {\n global.classValidatorMetadataStorage = new MetadataStorage();\n }\n return global.classValidatorMetadataStorage;\n}\n//# sourceMappingURL=MetadataStorage.js.map","/**\n * Validation types.\n */\nvar ValidationTypes = /** @class */ (function () {\n function ValidationTypes() {\n }\n /**\n * Checks if validation type is valid.\n */\n ValidationTypes.isValid = function (type) {\n var _this = this;\n return (type !== 'isValid' &&\n type !== 'getMessage' &&\n Object.keys(this)\n .map(function (key) { return _this[key]; })\n .indexOf(type) !== -1);\n };\n /* system */\n ValidationTypes.CUSTOM_VALIDATION = 'customValidation'; // done\n ValidationTypes.NESTED_VALIDATION = 'nestedValidation'; // done\n ValidationTypes.PROMISE_VALIDATION = 'promiseValidation'; // done\n ValidationTypes.CONDITIONAL_VALIDATION = 'conditionalValidation'; // done\n ValidationTypes.WHITELIST = 'whitelistValidation'; // done\n ValidationTypes.IS_DEFINED = 'isDefined'; // done\n return ValidationTypes;\n}());\nexport { ValidationTypes };\n//# sourceMappingURL=ValidationTypes.js.map","/**\n * Container to be used by this library for inversion control. If container was not implicitly set then by default\n * container simply creates a new instance of the given class.\n */\nvar defaultContainer = new (/** @class */ (function () {\n function class_1() {\n this.instances = [];\n }\n class_1.prototype.get = function (someClass) {\n var instance = this.instances.find(function (instance) { return instance.type === someClass; });\n if (!instance) {\n instance = { type: someClass, object: new someClass() };\n this.instances.push(instance);\n }\n return instance.object;\n };\n return class_1;\n}()))();\nvar userContainer;\nvar userContainerOptions;\n/**\n * Sets container to be used by this library.\n */\nexport function useContainer(iocContainer, options) {\n userContainer = iocContainer;\n userContainerOptions = options;\n}\n/**\n * Gets the IOC container used by this library.\n */\nexport function getFromContainer(someClass) {\n if (userContainer) {\n try {\n var instance = userContainer.get(someClass);\n if (instance)\n return instance;\n if (!userContainerOptions || !userContainerOptions.fallback)\n return instance;\n }\n catch (error) {\n if (!userContainerOptions || !userContainerOptions.fallbackOnErrors)\n throw error;\n }\n }\n return defaultContainer.get(someClass);\n}\n//# sourceMappingURL=container.js.map","import { getFromContainer } from '../container';\n/**\n * This metadata interface contains information for custom validators.\n */\nvar ConstraintMetadata = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function ConstraintMetadata(target, name, async) {\n if (async === void 0) { async = false; }\n this.target = target;\n this.name = name;\n this.async = async;\n }\n Object.defineProperty(ConstraintMetadata.prototype, \"instance\", {\n // -------------------------------------------------------------------------\n // Accessors\n // -------------------------------------------------------------------------\n /**\n * Instance of the target custom validation class which performs validation.\n */\n get: function () {\n return getFromContainer(this.target);\n },\n enumerable: false,\n configurable: true\n });\n return ConstraintMetadata;\n}());\nexport { ConstraintMetadata };\n//# sourceMappingURL=ConstraintMetadata.js.map","import { ConstraintMetadata } from './metadata/ConstraintMetadata';\nimport { ValidationMetadata } from './metadata/ValidationMetadata';\nimport { ValidationTypes } from './validation/ValidationTypes';\nimport { getFromContainer } from './container';\nimport { MetadataStorage, getMetadataStorage } from './metadata/MetadataStorage';\n/**\n * Registers a custom validation decorator.\n */\nexport function registerDecorator(options) {\n var constraintCls;\n if (options.validator instanceof Function) {\n constraintCls = options.validator;\n var constraintClasses = getFromContainer(MetadataStorage).getTargetValidatorConstraints(options.validator);\n if (constraintClasses.length > 1) {\n throw \"More than one implementation of ValidatorConstraintInterface found for validator on: \".concat(options.target.name, \":\").concat(options.propertyName);\n }\n }\n else {\n var validator_1 = options.validator;\n constraintCls = /** @class */ (function () {\n function CustomConstraint() {\n }\n CustomConstraint.prototype.validate = function (value, validationArguments) {\n return validator_1.validate(value, validationArguments);\n };\n CustomConstraint.prototype.defaultMessage = function (validationArguments) {\n if (validator_1.defaultMessage) {\n return validator_1.defaultMessage(validationArguments);\n }\n return '';\n };\n return CustomConstraint;\n }());\n getMetadataStorage().addConstraintMetadata(new ConstraintMetadata(constraintCls, options.name, options.async));\n }\n var validationMetadataArgs = {\n type: options.name && ValidationTypes.isValid(options.name) ? options.name : ValidationTypes.CUSTOM_VALIDATION,\n name: options.name,\n target: options.target,\n propertyName: options.propertyName,\n validationOptions: options.options,\n constraintCls: constraintCls,\n constraints: options.constraints,\n };\n getMetadataStorage().addValidationMetadata(new ValidationMetadata(validationMetadataArgs));\n}\n//# sourceMappingURL=register-decorator.js.map","import { registerDecorator } from '../../register-decorator';\nexport function buildMessage(impl, validationOptions) {\n return function (validationArguments) {\n var eachPrefix = validationOptions && validationOptions.each ? 'each value in ' : '';\n return impl(eachPrefix, validationArguments);\n };\n}\nexport function ValidateBy(options, validationOptions) {\n return function (object, propertyName) {\n registerDecorator({\n name: options.name,\n target: object.constructor,\n propertyName: propertyName,\n options: validationOptions,\n constraints: options.constraints,\n validator: options.validator,\n });\n };\n}\n//# sourceMappingURL=ValidateBy.js.map","import { ValidationTypes } from '../../validation/ValidationTypes';\nimport { ValidationMetadata } from '../../metadata/ValidationMetadata';\nimport { getMetadataStorage } from '../../metadata/MetadataStorage';\nexport var IS_OPTIONAL = 'isOptional';\n/**\n * Checks if value is missing and if so, ignores all validators.\n */\nexport function IsOptional(validationOptions) {\n return function (object, propertyName) {\n var args = {\n type: ValidationTypes.CONDITIONAL_VALIDATION,\n name: IS_OPTIONAL,\n target: object.constructor,\n propertyName: propertyName,\n constraints: [\n function (object, value) {\n return object[propertyName] !== null && object[propertyName] !== undefined;\n },\n ],\n validationOptions: validationOptions,\n };\n getMetadataStorage().addValidationMetadata(new ValidationMetadata(args));\n };\n}\n//# sourceMappingURL=IsOptional.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = assertString;\nfunction assertString(input) {\n if (input === undefined || input === null) throw new TypeError(\"Expected a string but received a \".concat(input));\n if (input.constructor.name !== 'String') throw new TypeError(\"Expected a string but received a \".concat(input.constructor.name));\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var IS_NOT_EMPTY = 'isNotEmpty';\n/**\n * Checks if given value is not empty (!== '', !== null, !== undefined).\n */\nexport function isNotEmpty(value) {\n return value !== '' && value !== null && value !== undefined;\n}\n/**\n * Checks if given value is not empty (!== '', !== null, !== undefined).\n */\nexport function IsNotEmpty(validationOptions) {\n return ValidateBy({\n name: IS_NOT_EMPTY,\n validator: {\n validate: function (value, args) { return isNotEmpty(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property should not be empty'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsNotEmpty.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var IS_IN = 'isIn';\n/**\n * Checks if given value is in a array of allowed values.\n */\nexport function isIn(value, possibleValues) {\n return Array.isArray(possibleValues) && possibleValues.some(function (possibleValue) { return possibleValue === value; });\n}\n/**\n * Checks if given value is in a array of allowed values.\n */\nexport function IsIn(values, validationOptions) {\n return ValidateBy({\n name: IS_IN,\n constraints: [values],\n validator: {\n validate: function (value, args) { return isIn(value, args === null || args === void 0 ? void 0 : args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be one of the following values: $constraint1'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsIn.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var MAX = 'max';\n/**\n * Checks if the first number is less than or equal to the second.\n */\nexport function max(num, max) {\n return typeof num === 'number' && typeof max === 'number' && num <= max;\n}\n/**\n * Checks if the value is less than or equal to the allowed maximum value.\n */\nexport function Max(maxValue, validationOptions) {\n return ValidateBy({\n name: MAX,\n constraints: [maxValue],\n validator: {\n validate: function (value, args) { return max(value, args === null || args === void 0 ? void 0 : args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must not be greater than $constraint1'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=Max.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var MIN = 'min';\n/**\n * Checks if the first number is greater than or equal to the second.\n */\nexport function min(num, min) {\n return typeof num === 'number' && typeof min === 'number' && num >= min;\n}\n/**\n * Checks if the value is greater than or equal to the allowed minimum value.\n */\nexport function Min(minValue, validationOptions) {\n return ValidateBy({\n name: MIN,\n constraints: [minValue],\n validator: {\n validate: function (value, args) { return min(value, args === null || args === void 0 ? void 0 : args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must not be less than $constraint1'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=Min.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isLength;\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\n/* eslint-disable prefer-rest-params */\nfunction isLength(str, options) {\n (0, _assertString.default)(str);\n var min;\n var max;\n if (_typeof(options) === 'object') {\n min = options.min || 0;\n max = options.max;\n } else {\n // backwards compatibility: isLength(str, min [, max])\n min = arguments[1] || 0;\n max = arguments[2];\n }\n var presentationSequences = str.match(/[^\\uFE0F\\uFE0E][\\uFE0F\\uFE0E]/g) || [];\n var surrogatePairs = str.match(/[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g) || [];\n var len = str.length - presentationSequences.length - surrogatePairs.length;\n var isInsideRange = len >= min && (typeof max === 'undefined' || len <= max);\n if (isInsideRange && Array.isArray(options === null || options === void 0 ? void 0 : options.discreteLengths)) {\n return options.discreteLengths.some(function (discreteLen) {\n return discreteLen === len;\n });\n }\n return isInsideRange;\n}\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isLengthValidator from 'validator/lib/isLength';\nexport var MAX_LENGTH = 'maxLength';\n/**\n * Checks if the string's length is not more than given number. Note: this function takes into account surrogate pairs.\n * If given value is not a string, then it returns false.\n */\nexport function maxLength(value, max) {\n return typeof value === 'string' && isLengthValidator(value, { min: 0, max: max });\n}\n/**\n * Checks if the string's length is not more than given number. Note: this function takes into account surrogate pairs.\n * If given value is not a string, then it returns false.\n */\nexport function MaxLength(max, validationOptions) {\n return ValidateBy({\n name: MAX_LENGTH,\n constraints: [max],\n validator: {\n validate: function (value, args) { return maxLength(value, args === null || args === void 0 ? void 0 : args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be shorter than or equal to $constraint1 characters'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=MaxLength.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var IS_NUMBER = 'isNumber';\n/**\n * Checks if a given value is a number.\n */\nexport function isNumber(value, options) {\n if (options === void 0) { options = {}; }\n if (typeof value !== 'number') {\n return false;\n }\n if (value === Infinity || value === -Infinity) {\n return !!options.allowInfinity;\n }\n if (Number.isNaN(value)) {\n return !!options.allowNaN;\n }\n if (options.maxDecimalPlaces !== undefined) {\n var decimalPlaces = 0;\n if (value % 1 !== 0) {\n decimalPlaces = value.toString().split('.')[1].length;\n }\n if (decimalPlaces > options.maxDecimalPlaces) {\n return false;\n }\n }\n return Number.isFinite(value);\n}\n/**\n * Checks if a value is a number.\n */\nexport function IsNumber(options, validationOptions) {\n if (options === void 0) { options = {}; }\n return ValidateBy({\n name: IS_NUMBER,\n constraints: [options],\n validator: {\n validate: function (value, args) { return isNumber(value, args === null || args === void 0 ? void 0 : args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a number conforming to the specified constraints'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsNumber.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var IS_STRING = 'isString';\n/**\n * Checks if a given value is a real string.\n */\nexport function isString(value) {\n return value instanceof String || typeof value === 'string';\n}\n/**\n * Checks if a given value is a real string.\n */\nexport function IsString(validationOptions) {\n return ValidateBy({\n name: IS_STRING,\n validator: {\n validate: function (value, args) { return isString(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a string'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsString.js.map","import { IsNotEmpty, IsString, MaxLength } from 'class-validator'\n\nexport class CreateImageMemoryDto {\n /** 图片 URL */\n @IsString()\n @IsNotEmpty()\n @MaxLength(255)\n imageUrl!: string\n}\n","import { IsNotEmpty, IsString, MaxLength } from 'class-validator'\n\nexport class CreateTextMemoryDto {\n @IsString()\n @IsNotEmpty()\n @MaxLength(10000)\n content!: string\n}\n","export var TransformationType;\n(function (TransformationType) {\n TransformationType[TransformationType[\"PLAIN_TO_CLASS\"] = 0] = \"PLAIN_TO_CLASS\";\n TransformationType[TransformationType[\"CLASS_TO_PLAIN\"] = 1] = \"CLASS_TO_PLAIN\";\n TransformationType[TransformationType[\"CLASS_TO_CLASS\"] = 2] = \"CLASS_TO_CLASS\";\n})(TransformationType || (TransformationType = {}));\n//# sourceMappingURL=transformation-type.enum.js.map","import { TransformationType } from './enums';\n/**\n * Storage all library metadata.\n */\nvar MetadataStorage = /** @class */ (function () {\n function MetadataStorage() {\n // -------------------------------------------------------------------------\n // Properties\n // -------------------------------------------------------------------------\n this._typeMetadatas = new Map();\n this._transformMetadatas = new Map();\n this._exposeMetadatas = new Map();\n this._excludeMetadatas = new Map();\n this._ancestorsMap = new Map();\n }\n // -------------------------------------------------------------------------\n // Adder Methods\n // -------------------------------------------------------------------------\n MetadataStorage.prototype.addTypeMetadata = function (metadata) {\n if (!this._typeMetadatas.has(metadata.target)) {\n this._typeMetadatas.set(metadata.target, new Map());\n }\n this._typeMetadatas.get(metadata.target).set(metadata.propertyName, metadata);\n };\n MetadataStorage.prototype.addTransformMetadata = function (metadata) {\n if (!this._transformMetadatas.has(metadata.target)) {\n this._transformMetadatas.set(metadata.target, new Map());\n }\n if (!this._transformMetadatas.get(metadata.target).has(metadata.propertyName)) {\n this._transformMetadatas.get(metadata.target).set(metadata.propertyName, []);\n }\n this._transformMetadatas.get(metadata.target).get(metadata.propertyName).push(metadata);\n };\n MetadataStorage.prototype.addExposeMetadata = function (metadata) {\n if (!this._exposeMetadatas.has(metadata.target)) {\n this._exposeMetadatas.set(metadata.target, new Map());\n }\n this._exposeMetadatas.get(metadata.target).set(metadata.propertyName, metadata);\n };\n MetadataStorage.prototype.addExcludeMetadata = function (metadata) {\n if (!this._excludeMetadatas.has(metadata.target)) {\n this._excludeMetadatas.set(metadata.target, new Map());\n }\n this._excludeMetadatas.get(metadata.target).set(metadata.propertyName, metadata);\n };\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n MetadataStorage.prototype.findTransformMetadatas = function (target, propertyName, transformationType) {\n return this.findMetadatas(this._transformMetadatas, target, propertyName).filter(function (metadata) {\n if (!metadata.options)\n return true;\n if (metadata.options.toClassOnly === true && metadata.options.toPlainOnly === true)\n return true;\n if (metadata.options.toClassOnly === true) {\n return (transformationType === TransformationType.CLASS_TO_CLASS ||\n transformationType === TransformationType.PLAIN_TO_CLASS);\n }\n if (metadata.options.toPlainOnly === true) {\n return transformationType === TransformationType.CLASS_TO_PLAIN;\n }\n return true;\n });\n };\n MetadataStorage.prototype.findExcludeMetadata = function (target, propertyName) {\n return this.findMetadata(this._excludeMetadatas, target, propertyName);\n };\n MetadataStorage.prototype.findExposeMetadata = function (target, propertyName) {\n return this.findMetadata(this._exposeMetadatas, target, propertyName);\n };\n MetadataStorage.prototype.findExposeMetadataByCustomName = function (target, name) {\n return this.getExposedMetadatas(target).find(function (metadata) {\n return metadata.options && metadata.options.name === name;\n });\n };\n MetadataStorage.prototype.findTypeMetadata = function (target, propertyName) {\n return this.findMetadata(this._typeMetadatas, target, propertyName);\n };\n MetadataStorage.prototype.getStrategy = function (target) {\n var excludeMap = this._excludeMetadatas.get(target);\n var exclude = excludeMap && excludeMap.get(undefined);\n var exposeMap = this._exposeMetadatas.get(target);\n var expose = exposeMap && exposeMap.get(undefined);\n if ((exclude && expose) || (!exclude && !expose))\n return 'none';\n return exclude ? 'excludeAll' : 'exposeAll';\n };\n MetadataStorage.prototype.getExposedMetadatas = function (target) {\n return this.getMetadata(this._exposeMetadatas, target);\n };\n MetadataStorage.prototype.getExcludedMetadatas = function (target) {\n return this.getMetadata(this._excludeMetadatas, target);\n };\n MetadataStorage.prototype.getExposedProperties = function (target, transformationType) {\n return this.getExposedMetadatas(target)\n .filter(function (metadata) {\n if (!metadata.options)\n return true;\n if (metadata.options.toClassOnly === true && metadata.options.toPlainOnly === true)\n return true;\n if (metadata.options.toClassOnly === true) {\n return (transformationType === TransformationType.CLASS_TO_CLASS ||\n transformationType === TransformationType.PLAIN_TO_CLASS);\n }\n if (metadata.options.toPlainOnly === true) {\n return transformationType === TransformationType.CLASS_TO_PLAIN;\n }\n return true;\n })\n .map(function (metadata) { return metadata.propertyName; });\n };\n MetadataStorage.prototype.getExcludedProperties = function (target, transformationType) {\n return this.getExcludedMetadatas(target)\n .filter(function (metadata) {\n if (!metadata.options)\n return true;\n if (metadata.options.toClassOnly === true && metadata.options.toPlainOnly === true)\n return true;\n if (metadata.options.toClassOnly === true) {\n return (transformationType === TransformationType.CLASS_TO_CLASS ||\n transformationType === TransformationType.PLAIN_TO_CLASS);\n }\n if (metadata.options.toPlainOnly === true) {\n return transformationType === TransformationType.CLASS_TO_PLAIN;\n }\n return true;\n })\n .map(function (metadata) { return metadata.propertyName; });\n };\n MetadataStorage.prototype.clear = function () {\n this._typeMetadatas.clear();\n this._exposeMetadatas.clear();\n this._excludeMetadatas.clear();\n this._ancestorsMap.clear();\n };\n // -------------------------------------------------------------------------\n // Private Methods\n // -------------------------------------------------------------------------\n MetadataStorage.prototype.getMetadata = function (metadatas, target) {\n var metadataFromTargetMap = metadatas.get(target);\n var metadataFromTarget;\n if (metadataFromTargetMap) {\n metadataFromTarget = Array.from(metadataFromTargetMap.values()).filter(function (meta) { return meta.propertyName !== undefined; });\n }\n var metadataFromAncestors = [];\n for (var _i = 0, _a = this.getAncestors(target); _i < _a.length; _i++) {\n var ancestor = _a[_i];\n var ancestorMetadataMap = metadatas.get(ancestor);\n if (ancestorMetadataMap) {\n var metadataFromAncestor = Array.from(ancestorMetadataMap.values()).filter(function (meta) { return meta.propertyName !== undefined; });\n metadataFromAncestors.push.apply(metadataFromAncestors, metadataFromAncestor);\n }\n }\n return metadataFromAncestors.concat(metadataFromTarget || []);\n };\n MetadataStorage.prototype.findMetadata = function (metadatas, target, propertyName) {\n var metadataFromTargetMap = metadatas.get(target);\n if (metadataFromTargetMap) {\n var metadataFromTarget = metadataFromTargetMap.get(propertyName);\n if (metadataFromTarget) {\n return metadataFromTarget;\n }\n }\n for (var _i = 0, _a = this.getAncestors(target); _i < _a.length; _i++) {\n var ancestor = _a[_i];\n var ancestorMetadataMap = metadatas.get(ancestor);\n if (ancestorMetadataMap) {\n var ancestorResult = ancestorMetadataMap.get(propertyName);\n if (ancestorResult) {\n return ancestorResult;\n }\n }\n }\n return undefined;\n };\n MetadataStorage.prototype.findMetadatas = function (metadatas, target, propertyName) {\n var metadataFromTargetMap = metadatas.get(target);\n var metadataFromTarget;\n if (metadataFromTargetMap) {\n metadataFromTarget = metadataFromTargetMap.get(propertyName);\n }\n var metadataFromAncestorsTarget = [];\n for (var _i = 0, _a = this.getAncestors(target); _i < _a.length; _i++) {\n var ancestor = _a[_i];\n var ancestorMetadataMap = metadatas.get(ancestor);\n if (ancestorMetadataMap) {\n if (ancestorMetadataMap.has(propertyName)) {\n metadataFromAncestorsTarget.push.apply(metadataFromAncestorsTarget, ancestorMetadataMap.get(propertyName));\n }\n }\n }\n return metadataFromAncestorsTarget\n .slice()\n .reverse()\n .concat((metadataFromTarget || []).slice().reverse());\n };\n MetadataStorage.prototype.getAncestors = function (target) {\n if (!target)\n return [];\n if (!this._ancestorsMap.has(target)) {\n var ancestors = [];\n for (var baseClass = Object.getPrototypeOf(target.prototype.constructor); typeof baseClass.prototype !== 'undefined'; baseClass = Object.getPrototypeOf(baseClass.prototype.constructor)) {\n ancestors.push(baseClass);\n }\n this._ancestorsMap.set(target, ancestors);\n }\n return this._ancestorsMap.get(target);\n };\n return MetadataStorage;\n}());\nexport { MetadataStorage };\n//# sourceMappingURL=MetadataStorage.js.map","import { MetadataStorage } from './MetadataStorage';\n/**\n * Default metadata storage is used as singleton and can be used to storage all metadatas.\n */\nexport var defaultMetadataStorage = new MetadataStorage();\n//# sourceMappingURL=storage.js.map","import { defaultMetadataStorage } from '../storage';\n/**\n * Specifies a type of the property.\n * The given TypeFunction can return a constructor. A discriminator can be given in the options.\n *\n * Can be applied to properties only.\n */\nexport function Type(typeFunction, options) {\n if (options === void 0) { options = {}; }\n return function (target, propertyName) {\n var reflectedType = Reflect.getMetadata('design:type', target, propertyName);\n defaultMetadataStorage.addTypeMetadata({\n target: target.constructor,\n propertyName: propertyName,\n reflectedType: reflectedType,\n typeFunction: typeFunction,\n options: options,\n });\n };\n}\n//# sourceMappingURL=type.decorator.js.map","import {\n IsIn,\n IsNotEmpty,\n IsNumber,\n IsOptional,\n IsString,\n Max,\n MaxLength,\n Min\n} from 'class-validator'\nimport { Type } from 'class-transformer'\n\nexport class SearchMemoryDto {\n /** 搜索关键词 */\n @IsString()\n @IsNotEmpty()\n @MaxLength(1000)\n keyword!: string\n\n /** 记忆类型 */\n @IsOptional()\n @IsIn(['text', 'image'])\n type?: 'text' | 'image'\n\n @IsOptional()\n @Type(() => Number)\n @IsNumber()\n @Min(1)\n @Max(100)\n limit?: number\n}\n"],"x_google_ignoreList":[4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,25,26,27,28],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hamster-note/types",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.3",
|
|
4
4
|
"description": "",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build:all": "rolldown --config rolldown.config.ts",
|
|
@@ -8,7 +8,10 @@
|
|
|
8
8
|
"lint": "echo 'no-lint'",
|
|
9
9
|
"test": "echo 'no-test'"
|
|
10
10
|
},
|
|
11
|
-
"dependencies": {
|
|
11
|
+
"dependencies": {
|
|
12
|
+
"class-transformer": "^0.5.1",
|
|
13
|
+
"class-validator": "^0.14.1"
|
|
14
|
+
},
|
|
12
15
|
"devDependencies": {
|
|
13
16
|
"@eslint/js": "^9.39.2",
|
|
14
17
|
"@system-ui-js/development-base": "^0.1.2",
|
|
@@ -35,6 +38,8 @@
|
|
|
35
38
|
"types": "dist/index.d.ts",
|
|
36
39
|
"exports": {
|
|
37
40
|
".": {
|
|
41
|
+
"require": "./dist/index.js",
|
|
42
|
+
"default": "./dist/index.js",
|
|
38
43
|
"import": "./dist/index.js",
|
|
39
44
|
"types": "./dist/index.d.ts"
|
|
40
45
|
}
|