leoric 2.6.2 → 2.7.1

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