leoric 2.6.3 → 2.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data_types.js","sourceRoot":"","sources":["data_types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,608 @@
1
+ 'use strict';
2
+
3
+ const util = require('util');
4
+ const invokableFunc = require('./utils/invokable');
5
+ const Raw = require('./raw');
6
+
7
+ export enum LENGTH_VARIANTS {
8
+ tiny = 'tiny',
9
+ empty = '',
10
+ medium = 'medium',
11
+ long = 'long',
12
+ };
13
+
14
+ export interface AbstractDataType<T> {
15
+ new (dataLength?: LENGTH_VARIANTS | number): DataType & T;
16
+ (dataLength?: LENGTH_VARIANTS | number): DataType & T;
17
+ }
18
+
19
+ /**
20
+ * @example
21
+ * const { STRING, INTEGER, BIGINT, DATE, BOOLEAN } = app.model;
22
+ * class User = app.model.define('User', {
23
+ * login: STRING,
24
+ * });
25
+ */
26
+
27
+ export abstract class DataType {
28
+ dataType: string;
29
+ dataLength?: string | number;
30
+
31
+ /**
32
+ * Check if params is instance of DataType or not
33
+ * @param {*} params
34
+ * @returns {boolean}
35
+ */
36
+ static is(params: any): boolean {
37
+ return params instanceof DataType;
38
+ }
39
+
40
+ /**
41
+ * cast raw data returned from data packet into js type
42
+ */
43
+ cast(value: any): any {
44
+ return value;
45
+ }
46
+
47
+ /**
48
+ * uncast js value into database type with precision
49
+ */
50
+ uncast(value: any, _strict?: boolean): any {
51
+ return value;
52
+ }
53
+
54
+ static get invokable() {
55
+ return new Proxy(this, {
56
+ get(target, p) {
57
+ const value = target[p];
58
+ if (AllDataTypes.hasOwnProperty(p)) return invokableFunc(value);
59
+ return value;
60
+ }
61
+ });
62
+ }
63
+
64
+ abstract toSqlString(): string;
65
+
66
+ static toSqlString(): string {
67
+ return '';
68
+ }
69
+ }
70
+
71
+ /**
72
+ * @example
73
+ * STRING
74
+ * STRING(127)
75
+ * STRING.BINARY
76
+ * @param {number} dataLength
77
+ */
78
+ class STRING extends DataType {
79
+ constructor(dataLength: number = 255) {
80
+ super();
81
+ this.dataType = 'varchar';
82
+ this.dataLength = dataLength;
83
+ }
84
+
85
+ toSqlString(): string {
86
+ const { dataLength } = this;
87
+ const dataType = this.dataType.toUpperCase();
88
+ const chunks: string[] = [];
89
+ chunks.push(dataLength && dataLength > 0 ? `${dataType}(${dataLength})` : dataType);
90
+ return chunks.join(' ');
91
+ }
92
+
93
+ uncast(value: string | typeof Raw | null): string {
94
+ if (value == null || value instanceof Raw) return value;
95
+ return '' + value;
96
+ }
97
+ }
98
+
99
+ class BINARY extends DataType {
100
+ constructor(dataLength = 255) {
101
+ super();
102
+ this.dataLength = dataLength;
103
+ this.dataType = 'binary';
104
+ }
105
+
106
+ toSqlString(): string {
107
+ const { dataLength } = this;
108
+ const dataType = this.dataType.toUpperCase();
109
+ const chunks: string[] = [];
110
+ chunks.push(dataLength && dataLength > 0 ? `${dataType}(${dataLength})` : dataType);
111
+ return chunks.join(' ');
112
+ }
113
+
114
+ cast(value: string | Buffer): Buffer | string {
115
+ if (value == null) return value;
116
+ if (Buffer.isBuffer(value)) return value;
117
+ return Buffer.from(value);
118
+ }
119
+ }
120
+
121
+ class VARBINARY extends BINARY {
122
+ constructor(dataLength?: number) {
123
+ super(dataLength);
124
+ this.dataType = 'varbinary';
125
+ }
126
+ }
127
+
128
+ /**
129
+ * ZEROFILL is deprecated
130
+ * - https://dev.mysql.com/doc/refman/8.0/en/integer-types.html
131
+ * @example
132
+ * INTEGER
133
+ * INTEGER.UNSIGNED
134
+ * INTEGER.UNSIGNED.ZEROFILL
135
+ * INTEGER(10)
136
+ * @param {number} dataLength
137
+ */
138
+ class INTEGER extends DataType {
139
+ unsigned?: boolean;
140
+ zerofill?: boolean;
141
+
142
+ constructor(dataLength?: number) {
143
+ super();
144
+ this.dataLength = dataLength;
145
+ this.dataType = 'integer';
146
+ }
147
+
148
+ get UNSIGNED() {
149
+ this.unsigned = true;
150
+ return this;
151
+ }
152
+
153
+ get ZEROFILL() {
154
+ this.zerofill = true;
155
+ return this;
156
+ }
157
+
158
+ toSqlString(): string {
159
+ const { dataLength, unsigned, zerofill } = this;
160
+ const dataType = this.dataType.toUpperCase();
161
+ const chunks: string[] = [];
162
+ chunks.push(dataLength && dataLength > 0 ? `${dataType}(${dataLength})` : dataType);
163
+ if (unsigned) chunks.push('UNSIGNED');
164
+ if (zerofill) chunks.push('ZEROFILL');
165
+ return chunks.join(' ');
166
+ }
167
+
168
+ cast(value: number): number {
169
+ if (value == null || isNaN(value)) return value;
170
+ return Number(value);
171
+ }
172
+
173
+ uncast(value: any, strict = true): string | number {
174
+ const originValue = value;
175
+ if (value == null || value instanceof Raw) return value;
176
+ if (typeof value === 'string') value = parseInt(value, 10);
177
+ if (isNaN(value)) {
178
+ if (strict) throw new Error(util.format('invalid integer: %s', originValue));
179
+ return originValue;
180
+ }
181
+ return value;
182
+ }
183
+ }
184
+
185
+ /**
186
+ * 8 bit integer
187
+ * @example
188
+ * TINYINT
189
+ * TINYINT.UNSIGNED
190
+ * TINYINT(1)
191
+ * @param {number} dataLength
192
+ */
193
+ class TINYINT extends INTEGER {
194
+ constructor(dataLength?: number) {
195
+ super(dataLength);
196
+ this.dataType = 'tinyint';
197
+ }
198
+ }
199
+
200
+ /**
201
+ * 16 bit integer
202
+ * @example
203
+ * SMALLINT
204
+ * SMALLINT.UNSIGNED
205
+ * SMALLINT(2)
206
+ * @param {number} dataLength
207
+ */
208
+ class SMALLINT extends INTEGER {
209
+ constructor(dataLength?: number) {
210
+ super(dataLength);
211
+ this.dataType = 'smallint';
212
+ }
213
+ }
214
+
215
+ /**
216
+ * 24 bit integer
217
+ * @example
218
+ * MEDIUMINT
219
+ * MEDIUMINT.UNSIGNED
220
+ * MEDIUMINT(3)
221
+ * @param {number} dataLength
222
+ */
223
+ class MEDIUMINT extends INTEGER {
224
+ constructor(dataLength?: number) {
225
+ super(dataLength);
226
+ this.dataType = 'mediumint';
227
+ }
228
+ }
229
+
230
+
231
+ /**
232
+ * 64 bit integer
233
+ * @example
234
+ * BIGINT
235
+ * BIGINT.UNSIGNED
236
+ * BIGINT(8)
237
+ * @param {number} dataLength
238
+ */
239
+ class BIGINT extends INTEGER {
240
+ constructor(dataLength?: number) {
241
+ super(dataLength);
242
+ this.dataType = 'bigint';
243
+ }
244
+ }
245
+
246
+ /**
247
+ * fixed-point decimal types
248
+ * @example
249
+ * DECIMAL
250
+ * DECIMAL.UNSIGNED
251
+ * DECIMAL(5, 2)
252
+ * @param {number} precision
253
+ * @param {number} scale
254
+ * - https://dev.mysql.com/doc/refman/8.0/en/fixed-point-types.html
255
+ */
256
+ class DECIMAL extends INTEGER {
257
+ precision?: number;
258
+ scale?: number;
259
+
260
+ constructor(precision?: number, scale?: number) {
261
+ super();
262
+ this.dataType = 'decimal';
263
+ this.precision = precision;
264
+ this.scale = scale;
265
+ }
266
+
267
+ toSqlString() {
268
+ const { precision, scale, unsigned, zerofill } = this;
269
+ const dataType = this.dataType.toUpperCase();
270
+ const chunks: string[] = [];
271
+ if (precision && precision > 0 && scale != null && scale >= 0) {
272
+ chunks.push(`${dataType}(${precision},${scale})`);
273
+ } else if (precision && precision > 0) {
274
+ chunks.push(`${dataType}(${precision})`);
275
+ } else {
276
+ chunks.push(dataType);
277
+ }
278
+ if (unsigned) chunks.push('UNSIGNED');
279
+ if (zerofill) chunks.push('ZEROFILL');
280
+ return chunks.join(' ');
281
+ }
282
+ }
283
+
284
+ const rDateFormat = /^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}(?:[,.]\d{3,6}){0,1}$/;
285
+ class DATE extends DataType {
286
+ precision?: number | null;
287
+ timezone?: boolean = true;
288
+
289
+ constructor(precision?: number | null, timezone: boolean = true) {
290
+ super();
291
+ this.dataType = 'datetime';
292
+ this.precision = precision;
293
+ // PostgreSQL enables timestamp with or without time zone
294
+ // - https://www.postgresql.org/docs/9.5/datatype-datetime.html
295
+ this.timezone = timezone;
296
+ }
297
+
298
+ toSqlString() {
299
+ const { precision } = this;
300
+ const dataType = this.dataType.toUpperCase();
301
+ if (precision != null && precision >= 0) return `${dataType}(${precision})`;
302
+ return dataType;
303
+ }
304
+
305
+ _round(value) {
306
+ const { precision } = this;
307
+ if (precision != null && precision < 3 && value instanceof Date) {
308
+ const divider = 10 ** (3 - precision);
309
+ return new Date(Math.round(value.getTime() / divider) * divider);
310
+ }
311
+ return value;
312
+ }
313
+
314
+ cast(value: Date | string | number): Date | number | string {
315
+ const original = value;
316
+ if (value == null) return value;
317
+ if (!(value instanceof Date)) value = new Date(value);
318
+ if (isNaN(value.getTime())) return original;
319
+ return this._round(value);
320
+ }
321
+
322
+ uncast(value: null | typeof Raw | string | Date, _strict?: boolean): string | Date {
323
+ const originValue = value;
324
+
325
+ if (value == null || value instanceof Raw) return value;
326
+ if (typeof value.toDate === 'function') {
327
+ value = value.toDate();
328
+ }
329
+
330
+ // @deprecated
331
+ // vaguely standard date formats such as 2021-10-15 15:50:02,548
332
+ if (typeof value === 'string' && rDateFormat.test(value)) {
333
+ // 2021-10-15 15:50:02,548 => 2021-10-15T15:50:02,548,
334
+ // 2021-10-15 15:50:02 => 2021-10-15T15:50:02.000
335
+ value = new Date(`${value.replace(' ', 'T').replace(',', '.')}`);
336
+ }
337
+
338
+ // 1634611135776
339
+ // '2021-10-15T08:38:43.877Z'
340
+ if (!(value instanceof Date)) value = new Date(value);
341
+ if (isNaN(value)) throw new Error(util.format('invalid date: %s', originValue));
342
+
343
+ return this._round(value);
344
+ }
345
+ }
346
+
347
+ class DATEONLY extends DATE {
348
+ constructor() {
349
+ super();
350
+ this.dataType = 'date';
351
+ this.precision = null;
352
+ this.timezone = false;
353
+ }
354
+
355
+ toSqlString(): string {
356
+ return this.dataType.toUpperCase();
357
+ }
358
+
359
+ _round(value) {
360
+ if (value instanceof Date) {
361
+ return new Date(value.getFullYear(), value.getMonth(), value.getDate());
362
+ }
363
+ return value;
364
+ }
365
+ }
366
+
367
+ class BOOLEAN extends DataType {
368
+ constructor() {
369
+ super();
370
+ this.dataType = 'boolean';
371
+ }
372
+
373
+ toSqlString(): string {
374
+ return this.dataType.toUpperCase();
375
+ }
376
+
377
+ cast(value) {
378
+ if (value == null) return value;
379
+ return Boolean(value);
380
+ }
381
+ }
382
+
383
+ class TEXT extends DataType {
384
+ constructor(length: LENGTH_VARIANTS = LENGTH_VARIANTS.empty) {
385
+ if (!Object.values(LENGTH_VARIANTS).includes(length)) {
386
+ throw new Error(`invalid text length: ${length}`);
387
+ }
388
+ super();
389
+ this.dataType = 'text';
390
+ this.dataLength = length;
391
+ }
392
+
393
+ toSqlString(): string {
394
+ return [ this.dataLength, this.dataType ].join('').toUpperCase();
395
+ }
396
+ }
397
+
398
+ class BLOB extends DataType {
399
+ constructor(length: LENGTH_VARIANTS = LENGTH_VARIANTS.empty) {
400
+ if (!Object.values(LENGTH_VARIANTS).includes(length)) {
401
+ throw new Error(`invalid blob length: ${length}`);
402
+ }
403
+ super();
404
+ this.dataType = 'blob';
405
+ this.dataLength = length;
406
+ }
407
+
408
+ toSqlString(): string {
409
+ return [ this.dataLength, this.dataType ].join('').toUpperCase();
410
+ }
411
+
412
+ cast(value) {
413
+ if (value == null) return value;
414
+ if (Buffer.isBuffer(value)) return value;
415
+ return Buffer.from(value);
416
+ }
417
+ }
418
+
419
+ // JSON text type
420
+ class MYJSON extends DataType {
421
+ constructor() {
422
+ super();
423
+ this.dataType = 'text';
424
+ }
425
+
426
+ toSqlString() {
427
+ return 'TEXT';
428
+ }
429
+
430
+ static toSqlString() {
431
+ return 'TEXT';
432
+ }
433
+
434
+ cast(value) {
435
+ if (!value) return value;
436
+ // type === JSONB
437
+ if (typeof value === 'object') return value;
438
+ try {
439
+ return global.JSON.parse(value);
440
+ } catch (err) {
441
+ console.error(new Error(`unable to cast ${value} to JSON`));
442
+ return value;
443
+ }
444
+ }
445
+
446
+ uncast(value) {
447
+ if (value == null || value instanceof Raw) return value;
448
+ return global.JSON.stringify(value);
449
+ }
450
+ }
451
+
452
+ // JSON binary type, available in postgreSQL or mySQL 5.7 +
453
+ // - https://dev.mysql.com/doc/refman/8.0/en/json.html
454
+ // - https://www.postgresql.org/docs/9.4/datatype-json.html
455
+ class JSONB extends MYJSON {
456
+ constructor() {
457
+ super();
458
+ this.dataType = 'json';
459
+ }
460
+
461
+ toSqlString(): string {
462
+ return 'JSON';
463
+ }
464
+
465
+ static toSqlString(): string {
466
+ return 'JSON';
467
+ }
468
+ }
469
+
470
+ class VIRTUAL extends DataType {
471
+ virtual: boolean = true;
472
+ constructor() {
473
+ super();
474
+ this.dataType = 'virtual';
475
+ this.virtual = true;
476
+ }
477
+
478
+ toSqlString(): string {
479
+ return 'VIRTUAL';
480
+ }
481
+
482
+ static toSqlString(): string {
483
+ return 'VIRTUAL';
484
+ }
485
+
486
+ }
487
+
488
+ const AllDataTypes = {
489
+ STRING,
490
+ TINYINT,
491
+ SMALLINT,
492
+ MEDIUMINT,
493
+ INTEGER,
494
+ BIGINT,
495
+ DECIMAL,
496
+ DATE,
497
+ DATEONLY,
498
+ BOOLEAN,
499
+ TEXT,
500
+ BLOB,
501
+ JSON: MYJSON,
502
+ JSONB,
503
+ BINARY,
504
+ VARBINARY,
505
+ VIRTUAL,
506
+ };
507
+
508
+ type DATA_TYPE<T> = AbstractDataType<T> & T;
509
+
510
+ export class DataTypes extends DataType {
511
+ static STRING: DATA_TYPE<STRING> = STRING as any;
512
+ static TINYINT: DATA_TYPE<TINYINT> = TINYINT as any;
513
+ static SMALLINT: DATA_TYPE<SMALLINT> = SMALLINT as any;
514
+ static MEDIUMINT: DATA_TYPE<MEDIUMINT> = MEDIUMINT as any;
515
+ static INTEGER: DATA_TYPE<INTEGER> = INTEGER as any;
516
+ static BIGINT: DATA_TYPE<BIGINT> = BIGINT as any;
517
+ static DECIMAL: DATA_TYPE<DECIMAL> = DECIMAL as any;
518
+ static DATE: DATA_TYPE<DATE> = DATE as any;
519
+ static TEXT: DATA_TYPE<TEXT> = TEXT as any;
520
+ static BLOB: DATA_TYPE<BLOB> = BLOB as any;
521
+ static JSON: DATA_TYPE<MYJSON> = MYJSON as any;
522
+ static JSONB: DATA_TYPE<JSONB> = JSONB as any;
523
+ static BINARY: DATA_TYPE<BINARY> = BINARY as any;
524
+ static VARBINARY: DATA_TYPE<VARBINARY> = VARBINARY as any;
525
+ static VIRTUAL: DATA_TYPE<VIRTUAL> = VIRTUAL as any;
526
+ static DATEONLY: DATA_TYPE<DATEONLY> = DATEONLY as any;
527
+ static BOOLEAN: DATA_TYPE<BOOLEAN> = BOOLEAN as any;
528
+
529
+ static findType(columnType: string): DataTypes {
530
+ const {
531
+ STRING, TEXT, DATE, DATEONLY,
532
+ TINYINT, SMALLINT, MEDIUMINT, INTEGER,
533
+ BIGINT, DECIMAL, BOOLEAN,
534
+ BINARY, VARBINARY, BLOB,
535
+ } = this;
536
+
537
+ const res = columnType?.match(/(\w+)(?:\((\d+)(?:,(\d+))?\))?/);
538
+ if(!res) {
539
+ throw new Error(`Unknown columnType ${columnType}`);
540
+ }
541
+ const [ , dataType, ...matches ] = res;
542
+ const params: any[] = [];
543
+ for (let i = 0; i < matches.length; i++) {
544
+ if (matches[i] != null) params[i] = parseInt(matches[i], 10);
545
+ }
546
+
547
+ switch (dataType) {
548
+ case 'varchar':
549
+ case 'char':
550
+ return new STRING(...params);
551
+ // longtext is only for MySQL
552
+ case 'longtext':
553
+ return new TEXT(LENGTH_VARIANTS.long);
554
+ case 'mediumtext':
555
+ return new TEXT(LENGTH_VARIANTS.medium);
556
+ case 'text':
557
+ return new TEXT();
558
+ case 'date':
559
+ return new DATEONLY();
560
+ case 'datetime':
561
+ case 'timestamp':
562
+ // new DATE(precision)
563
+ return new DATE(...params);
564
+ case 'decimal':
565
+ return new DECIMAL(...params);
566
+ case 'int':
567
+ case 'integer':
568
+ case 'numeric':
569
+ return new INTEGER(...params);
570
+ case 'mediumint':
571
+ return new MEDIUMINT(...params);
572
+ case 'smallint':
573
+ return new SMALLINT(...params);
574
+ case 'tinyint':
575
+ return new TINYINT(...params);
576
+ case 'bigint':
577
+ return new BIGINT(...params);
578
+ case 'boolean':
579
+ return new BOOLEAN();
580
+ // mysql only
581
+ case 'binary':
582
+ // postgres only
583
+ case 'bytea':
584
+ return new BINARY(...params);
585
+ // mysql only
586
+ case 'varbinary':
587
+ return new VARBINARY(...params);
588
+ case 'longblob':
589
+ return new BLOB(LENGTH_VARIANTS.long);
590
+ case 'mediumblob':
591
+ return new BLOB(LENGTH_VARIANTS.medium);
592
+ case 'blob':
593
+ return new BLOB();
594
+ case 'tinyblob':
595
+ return new BLOB(LENGTH_VARIANTS.tiny);
596
+ default:
597
+ throw new Error(`Unexpected data type ${dataType}`);
598
+ }
599
+ }
600
+
601
+ toSqlString(): string {
602
+ return '';
603
+ }
604
+ }
605
+
606
+ export const invokable = DataTypes.invokable;
607
+
608
+ export default DataTypes;
package/src/decorators.js CHANGED
@@ -1,10 +1,30 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
4
24
  };
5
25
  Object.defineProperty(exports, "__esModule", { value: true });
6
26
  exports.BelongsTo = exports.HasOne = exports.HasMany = exports.Column = void 0;
7
- const data_types_1 = __importDefault(require("./data_types"));
27
+ const data_types_1 = __importStar(require("./data_types"));
8
28
  const constants_1 = require("./constants");
9
29
  require("reflect-metadata");
10
30
  function findType(tsType) {
@@ -24,9 +44,13 @@ function findType(tsType) {
24
44
  throw new Error(`unknown typescript type ${tsType}`);
25
45
  }
26
46
  }
27
- function Column(options = {}) {
47
+ function Column(options) {
28
48
  return function (target, propertyKey) {
29
- if (options['prototype'] instanceof data_types_1.default)
49
+ if (options == null) {
50
+ options = {};
51
+ }
52
+ // target refers to model prototype, an internal instance of `Bone {}`
53
+ if (options['prototype'] instanceof data_types_1.DataType)
30
54
  options = { type: options };
31
55
  if (!('type' in options)) {
32
56
  const tsType = Reflect.getMetadata('design:type', target, propertyKey);
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.js","sourceRoot":"","sources":["decorators.ts"],"names":[],"mappings":";;;;;;AACA,8DAAoC;AACpC,2CAAqD;AACrD,4BAA0B;AAa1B,SAAS,QAAQ,CAAC,MAAM;IACtB,MAAM,EACJ,MAAM,EAAE,OAAO,EACf,IAAI,EACJ,MAAM,EACN,OAAO,GACR,GAAG,oBAAQ,CAAC;IAEb,QAAQ,MAAM,EAAE;QACd,KAAK,MAAM;YACT,OAAO,MAAM,CAAC;QAChB,KAAK,MAAM;YACT,OAAO,OAAO,CAAC;QACjB,KAAK,IAAI;YACP,OAAO,IAAI,CAAC;QACd,KAAK,MAAM;YACT,OAAO,MAAM,CAAC;QAChB,KAAK,OAAO;YACV,OAAO,OAAO,CAAC;QACjB;YACE,MAAM,IAAI,KAAK,CAAC,2BAA2B,MAAM,EAAE,CAAC,CAAC;KACxD;AACH,CAAC;AAED,SAAgB,MAAM,CAAC,UAA8C,EAAE;IACrE,OAAO,UAAS,MAAY,EAAE,WAAmB;QAC/C,IAAI,OAAO,CAAC,WAAW,CAAC,YAAY,oBAAQ;YAAE,OAAO,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAE1E,IAAI,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC,EAAE;YACxB,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;YACvE,OAAO,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;SACpC;QAED,gDAAgD;QAChD,IAAI,CAAC,CAAC,MAAM,IAAI,OAAO,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,OAAO,EAAE,CAAC,CAAC;QAE/E,sEAAsE;QACtE,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC;QACjC,MAAM,EAAE,UAAU,GAAG,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC;QACvD,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,WAAW,EAAE,GAAG,OAAO,CAAC;QACrD,UAAU,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,WAAW,EAAE,UAAU,EAAE,CAAC;IAC3D,CAAC,CAAC;AACJ,CAAC;AAlBD,wBAkBC;AAOD,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,kCAAsB,CAAC;AAE9D,SAAgB,OAAO,CAAC,OAA0B;IAChD,OAAO,UAAS,MAAY,EAAE,WAAmB;QAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC;QACjC,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE;YAC9B,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC;YACtC,CAAC,WAAW,CAAC,EAAE,OAAO;SACvB,EAAE,KAAK,CAAC,CAAC;IACZ,CAAC,CAAA;AACH,CAAC;AARD,0BAQC;AAED,SAAgB,MAAM,CAAC,OAA0B;IAC/C,OAAO,UAAS,MAAY,EAAE,WAAmB;QAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC;QACjC,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE;YAC7B,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC;YACrC,CAAC,WAAW,CAAC,EAAE,OAAO;SACvB,EAAE,KAAK,CAAC,CAAC;IACZ,CAAC,CAAA;AACH,CAAC;AARD,wBAQC;AAED,SAAgB,SAAS,CAAC,OAA0B;IAClD,OAAO,UAAS,MAAY,EAAE,WAAmB;QAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC;QACjC,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE;YAChC,GAAG,OAAO,CAAC,WAAW,CAAC,SAAS,EAAE,KAAK,CAAC;YACxC,CAAC,WAAW,CAAC,EAAE,OAAO;SACvB,EAAE,KAAK,CAAC,CAAC;IACZ,CAAC,CAAA;AACH,CAAC;AARD,8BAQC"}
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["decorators.ts"],"names":[],"mappings":"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"}