@loopback/sequelize 0.6.0 → 0.6.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.
@@ -12,6 +12,14 @@ export declare class SequelizeDataSource implements LifeCycleObserver {
12
12
  constructor(config: SequelizeDataSourceConfig);
13
13
  sequelize: Sequelize;
14
14
  sequelizeConfig: SequelizeOptions;
15
+ /**
16
+ * Gets the flag indicating whether to parse JSON columns.
17
+ * If the `parseJsonColumns` property is set in the configuration, its value will be returned.
18
+ * Otherwise, it returns `true` if the dialect is MySQL, `false` otherwise.
19
+ *
20
+ * @returns {boolean} The flag indicating whether to parse JSON columns.
21
+ */
22
+ get parseJsonColumns(): boolean;
15
23
  init(): Promise<void>;
16
24
  start(..._injectedArgs: unknown[]): Promise<void>;
17
25
  stop(): Promise<void>;
@@ -61,6 +69,20 @@ export type SequelizeDataSourceConfig = {
61
69
  user?: string;
62
70
  connector?: SupportedLoopbackConnectors;
63
71
  url?: string;
72
+ /**
73
+ * Whether or not to parse the JSON data stored in database columns.
74
+ *
75
+ * For dialects that do not support a native JSON type, we need to parse
76
+ * string column values to JSON objects to preserve backwards compatibility with the Juggler ORM.
77
+ * Example: https://github.com/loopbackio/loopback-connector-mysql/blob/edf176b09234b82796f925203ff006843e045498/lib/mysql.js#L476
78
+ *
79
+ * With Sequelize v6, some of the dialects like MariaDB and SQLite already parse JSON strings to JSON objects by default:
80
+ * - https://github.com/sequelize/sequelize/blob/cb8ea88c9aa37b14c908fd34dff1afc603de2ea7/src/dialects/mariadb/query.js#L191
81
+ * - https://github.com/sequelize/sequelize/blob/cb8ea88c9aa37b14c908fd34dff1afc603de2ea7/src/dialects/sqlite/query.js#L365
82
+ *
83
+ * Defaults to true for MySQL and false for other dialects.
84
+ */
85
+ parseJsonColumns?: boolean;
64
86
  /**
65
87
  * Additional sequelize options that are passed directly to
66
88
  * Sequelize when initializing the connection.
@@ -43,6 +43,20 @@ class SequelizeDataSource {
43
43
  this.sequelize = new sequelize_1.Sequelize(this.sequelizeConfig);
44
44
  }
45
45
  }
46
+ /**
47
+ * Gets the flag indicating whether to parse JSON columns.
48
+ * If the `parseJsonColumns` property is set in the configuration, its value will be returned.
49
+ * Otherwise, it returns `true` if the dialect is MySQL, `false` otherwise.
50
+ *
51
+ * @returns {boolean} The flag indicating whether to parse JSON columns.
52
+ */
53
+ get parseJsonColumns() {
54
+ var _a;
55
+ if (typeof ((_a = this.config) === null || _a === void 0 ? void 0 : _a.parseJsonColumns) === 'boolean') {
56
+ return this.config.parseJsonColumns;
57
+ }
58
+ return this.sequelizeConfig.dialect === 'mysql';
59
+ }
46
60
  async init() {
47
61
  await this.sequelize.authenticate();
48
62
  debug('Connection has been established successfully.');
@@ -1 +1 @@
1
- {"version":3,"file":"sequelize.datasource.base.js","sourceRoot":"","sources":["../../src/sequelize/sequelize.datasource.base.ts"],"names":[],"mappings":";;;;AAQA,0DAAiC;AACjC,yCAOmB;AACnB,2DAQ6B;AAE7B,MAAM,KAAK,GAAG,IAAA,eAAY,EAAC,+BAA+B,CAAC,CAAC;AAC5D,MAAM,YAAY,GAAG,IAAA,eAAY,EAAC,4BAA4B,CAAC,CAAC;AAEhE;;GAEG;AACH,MAAa,mBAAmB;IAG9B,YAAmB,MAAiC;;QAAjC,WAAM,GAAN,MAAM,CAA2B;QADpD,aAAQ,GAAG,EAAE,CAAC;QAEZ,IACE,IAAI,CAAC,MAAM,CAAC,SAAS;YACrB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,6CAAyB,CAAC,EACrD;YACA,MAAM,IAAI,KAAK,CACb,uBACE,MAAA,IAAI,CAAC,MAAM,CAAC,SAAS,mCAAI,IAAI,CAAC,MAAM,CAAC,OACvC,oBAAoB,CACrB,CAAC;SACH;QAED,MAAM,EACJ,SAAS,EACT,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,GAAG,GACJ,GAAG,MAAM,CAAC;QAEX,IAAI,CAAC,eAAe,GAAG;YACrB,QAAQ;YACR,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,6CAAyB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS;YACrE,OAAO,EAAE,IAAI;YACb,IAAI;YACJ,IAAI;YACJ,MAAM;YACN,QAAQ,EAAE,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,QAAQ;YAC1B,QAAQ;YACR,OAAO,EAAE,YAAY;YACrB,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE;YAC3B,cAAc,EAAE;gBACd,aAAa,EAAE,GAAG,EAAE,wBAAwB;aAC7C;YACD,GAAG,MAAM,CAAC,gBAAgB;SAC3B,CAAC;QAEF,IAAI,MAAM,CAAC,GAAG,EAAE;YACd,IAAI,CAAC,SAAS,GAAG,IAAI,qBAAS,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;SAClE;aAAM;YACL,IAAI,CAAC,SAAS,GAAG,IAAI,qBAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SACtD;IACH,CAAC;IAID,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;QACpC,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACzD,CAAC;IACD,KAAK,CAAC,KAAK,CAAC,GAAG,aAAwB,IAAkB,CAAC;IAC1D,KAAK,CAAC,IAAI;;QACR,MAAM,CAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,KAAK,EAAE,CAAA,CAAC;IAChC,CAAC;IAED,WAAW;QACT,MAAM,IAAI,KAAK,CACb,2FAA2F,CAC5F,CAAC;IACJ,CAAC;IACD,UAAU;QACR,MAAM,IAAI,KAAK,CACb,2FAA2F,CAC5F,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,gBAAgB,CACpB,OAAmE;;QAEnE;;;WAGG;QACH,MAAM,uBAAuB,GAAG,uBAAW,CAAC,gBAAgB,CAAC,cAAc,CAAC;QAE5E,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC/B,kDAAkD;YAClD,OAAO,GAAG;gBACR,cAAc,EAAE,OAAO;aACxB,CAAC;SACH;aAAM,IAAI,OAAO,KAAK,SAAS,EAAE;YAChC,OAAO,GAAG;gBACR,cAAc,EAAE,uBAAuB;aACxC,CAAC;SACH;aAAM;YACL,OAAO,CAAC,cAAc;gBACpB,MAAA,OAAO,CAAC,cAAc,mCAAI,uBAAuB,CAAC;SACrD;QAED,OAAO,IAAI,CAAC,SAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,KAAK,CAAC,OAAO,CACX,OAAgB,EAChB,UAAmD,EACnD,OAAiB;QAEjB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,MAAM,KAAK,CACT,mBAAmB,IAAI,CAAC,IAAI,gDAAgD,CAC7E,CAAC;SACH;QAED,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC/B,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;SACnC;QAED,OAAO,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAC;QAExB,MAAM,YAAY,GAAiB,EAAE,CAAC;QACtC,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,EAAE;YACxB,YAAY,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;SAChD;QAED,IAAI,oBAA6C,CAAC;QAElD,+BAA+B;QAC/B,oBAAoB,GAAG,MAAM,CAAC;QAE9B,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACzB,yCAAyC;YACzC,oBAAoB,GAAG,cAAc,CAAC;SACvC;aAAM,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YAChC,uFAAuF;YACvF,oBAAoB,GAAG,MAAM,CAAC;SAC/B;QAED,IAAI,UAAU,EAAE;YACd,YAAY,CAAC,oBAAoB,CAAC,GAAG,UAAU,CAAC;SACjD;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAEjE,gHAAgH;QAChH,6DAA6D;QAC7D,mFAAmF;QACnF,IAAI,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;YAC9D,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;SAClB;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,cAAc;QACZ,MAAM,MAAM,GAA8B,IAAI,CAAC,MAAM,CAAC;QACtD,MAAM,oBAAoB,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAC1D,kCAAc,CAAC,QAAQ,CAAC,GAA4B,CAAC,CACtD,CAAC;QACF,MAAM,eAAe,GACnB,MAAM,CAAC,SAAS;YACf,4CAAqC,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAEpE,IAAI,CAAC,CAAC,eAAe,IAAI,oBAAoB,CAAC,EAAE;YAC9C,OAAO;SACR;QACD,MAAM,aAAa,GACjB,yCAAqB,CAAC,MAAM,CAAC,SAAoC,CAAC,CAAC;QAErE,IAAI,CAAC,aAAa,EAAE;YAClB,OAAO;SACR;QAED,MAAM,EAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAC,GAAG,aAAa,CAAC;QAChD,MAAM,OAAO,GAAgB,EAAE,CAAC;QAChC,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE;YACtB,OAAO,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;SAC3B;QACD,IAAI,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE;YACtB,OAAO,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;SAC3B;QACD,IAAI,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE;YAC9B,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;SACnC;QACD,IAAI,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE;YACxB,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;SAC7B;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AA5ND,kDA4NC"}
1
+ {"version":3,"file":"sequelize.datasource.base.js","sourceRoot":"","sources":["../../src/sequelize/sequelize.datasource.base.ts"],"names":[],"mappings":"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"}
@@ -630,11 +630,16 @@ class SequelizeCrudRepository {
630
630
  if (definition[propName].type === Array ||
631
631
  ['Array', 'array'].includes(definition[propName].type.toString())) {
632
632
  // Postgres only
633
- const stringTypeArray = definition[propName].itemType === String ||
634
- ['String', 'string'].includes(((_a = definition[propName].itemType) === null || _a === void 0 ? void 0 : _a.toString()) || '');
635
- dataType = stringTypeArray
636
- ? sequelize_1.DataTypes.ARRAY(sequelize_1.DataTypes.STRING)
637
- : sequelize_1.DataTypes.ARRAY(sequelize_1.DataTypes.INTEGER);
633
+ if (this.dataSource.sequelizeConfig.dialect === 'postgres') {
634
+ const stringTypeArray = definition[propName].itemType === String ||
635
+ ['String', 'string'].includes(((_a = definition[propName].itemType) === null || _a === void 0 ? void 0 : _a.toString()) || '');
636
+ dataType = stringTypeArray
637
+ ? sequelize_1.DataTypes.ARRAY(sequelize_1.DataTypes.STRING)
638
+ : sequelize_1.DataTypes.ARRAY(sequelize_1.DataTypes.INTEGER);
639
+ }
640
+ else {
641
+ dataType = sequelize_1.DataTypes.JSON;
642
+ }
638
643
  }
639
644
  if (definition[propName].type === Object ||
640
645
  ['object', 'Object'].includes(definition[propName].type.toString())) {
@@ -673,6 +678,24 @@ class SequelizeCrudRepository {
673
678
  autoIncrement: !!definition[propName].generated,
674
679
  });
675
680
  }
681
+ // For dialects that do not support a native JSON type, we need to parse
682
+ // string responses to JSON objects to preserve backwards compatibility with the Juggler ORM.
683
+ if (this.dataSource.parseJsonColumns === true &&
684
+ dataType === sequelize_1.DataTypes.JSON) {
685
+ // See: https://sequelize.org/docs/v6/core-concepts/getters-setters-virtuals/
686
+ columnOptions.get = function getValue() {
687
+ const value = this.getDataValue(propName);
688
+ if (typeof value === 'string') {
689
+ try {
690
+ return JSON.parse(value);
691
+ }
692
+ catch (_error) {
693
+ return null;
694
+ }
695
+ }
696
+ return value;
697
+ };
698
+ }
676
699
  // TODO: Get the column name casing using actual methods / conventions used in different sql connectors for loopback
677
700
  columnOptions.field =
678
701
  (_b = definition[propName]['name']) !== null && _b !== void 0 ? _b : propName.toLowerCase();
@@ -1 +1 @@
1
- {"version":3,"file":"sequelize.repository.base.js","sourceRoot":"","sources":["../../src/sequelize/sequelize.repository.base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sequelize.repository.base.js","sourceRoot":"","sources":["../../src/sequelize/sequelize.repository.base.ts"],"names":[],"mappings":";AAAA,6DAA6D;AAC7D,mCAAmC;AACnC,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,qDAkC8B;AAC9B,0DAAiC;AACjC,mCAA8B;AAC9B,yCAkBmB;AAEnB,iEAA4D;AAG5D,mCAAsD;AAEtD,MAAM,KAAK,GAAG,IAAA,eAAY,EAAC,+BAA+B,CAAC,CAAC;AAC5D,MAAM,iBAAiB,GAAG,IAAA,eAAY,EAAC,iCAAiC,CAAC,CAAC;AAuB1E;;;GAGG;AACH,MAAa,uBAAuB;IAMlC,YACS,WAEN,EACM,UAA+B;QAH/B,gBAAW,GAAX,WAAW,CAEjB;QACM,eAAU,GAAV,UAAU,CAAqB;QAOxC;;WAEG;QACM,wBAAmB,GAAG,KAAK,CAAC;QAErC;;;;;;;;;;;;;WAaG;QACM,8BAAyB,GAAG;YACnC,YAAY;YACZ,OAAO;YACP,SAAS;SACD,CAAC;QAEX;;WAEG;QACI,mBAAc,GAAG,CAAC,CAAC;QAE1B;;;;WAIG;QACO,sBAAiB,GAA4B;YACrD,IAAI,EAAE,qBAAS,CAAC,MAAM;YACtB,IAAI,EAAE,qBAAS,CAAC,MAAM;YACtB,MAAM,EAAE,qBAAS,CAAC,MAAM;YACxB,GAAG,EAAE,qBAAS,CAAC,GAAG;YAClB,OAAO,EAAE,GAAG,EAAE,CAAC,IAAA,eAAM,EAAC,IAAI,CAAC,cAAc,CAAC;YAC1C,MAAM,EAAE,GAAG,EAAE,CAAC,IAAA,eAAM,EAAC,IAAI,CAAC,cAAc,CAAC;SAC1C,CAAC;QAMc,uBAAkB,GAG9B,IAAI,GAAG,EAAE,CAAC;QAxDZ,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;YAC7B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAChD;IACH,CAAC;IA8CS,oBAAoB;QAC5B,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAYD,KAAK,CAAC,MAAM,CAAC,MAAqB,EAAE,OAAmB;QACrD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAC3C,MAAgC,EAChC,OAAO,CACR,CAAC;QACF,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,CAAM,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,SAAS,CACb,QAAyB,EACzB,OAAmB;QAEnB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CACjD,QAAoC,EACpC,OAAO,CACR,CAAC;QAEF,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,CAAC,EAAM,EAAE,QAAoB;QACjC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,cAAc;iBAChB,QAAQ,CAAC,EAA2B,CAAC;iBACrC,IAAI,CAAC,KAAK,CAAC,EAAE;gBACZ,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACnB,CAAC,CAAC;iBACD,KAAK,CAAC,GAAG,CAAC,EAAE;gBACX,MAAM,CAAC,GAAG,CAAC,CAAC;YACd,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAS,EAAE,OAAmB;QACvC,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,EAAE,IAAI,IAAI,EAAE;YACd,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;SACrC;aAAM;YACL,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;YAC5C,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAM,CAAC;SACrD;IACH,CAAC;IAED,MAAM,CAAC,MAAS,EAAE,OAAmB;QACnC,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,UAAU,CACd,EAAM,EACN,IAAmB,EACnB,OAAmB;QAEnB,IAAI,EAAE,KAAK,SAAS,EAAE;YACpB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;SAC7D;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7D,MAAM,KAAK,GAAG,EAAc,CAAC;QAC5B,KAAmB,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAC1D,IAAI,MAAM,CAAC,KAAK,KAAK,CAAC,EAAE;YACtB,uFAAuF;YACvF,IAAI,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,OAAO,KAAK,OAAO,EAAE;gBACvD,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;aACzB;iBAAM;gBACL,MAAM,IAAI,gCAAmB,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;aACrD;SACF;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CACb,IAAmB,EACnB,KAAgB,EAChB,OAAmB;QAEnB,MAAM,CAAC,aAAa,CAAC,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CACtD,MAAM,CAAC,MAAM,CAAC,EAAe,EAAE,IAAI,CAAC,EACpC;YACE,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;YACtC,GAAG,OAAO;SACX,CACF,CAAC;QACF,OAAO,EAAC,KAAK,EAAE,aAAa,EAAC,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAS,EAAE,OAAmB;QACzC,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,IAAI,CACR,MAA8B,EAC9B,OAAmB;;QAEnB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;YAC7C,OAAO,EAAE,IAAI,CAAC,2BAA2B,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,CAAC;YAC1D,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC;YAC9C,UAAU,EAAE,IAAI,CAAC,6BAA6B,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,CAAC;YAC9D,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC;YAC9C,KAAK,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK;YACpB,MAAM,EAAE,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,mCAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI;YACtC,GAAG,OAAO;SACX,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,4BAA4B,CACtC,IAAI,EACJ,IAAI,CAAC,WAAW,EAChB,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,CAChB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CACX,MAA8B,EAC9B,OAAmB;;QAEnB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;YAC7C,OAAO,EAAE,IAAI,CAAC,2BAA2B,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,CAAC;YAC1D,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC;YAC9C,UAAU,EAAE,IAAI,CAAC,6BAA6B,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,CAAC;YAC9D,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC;YAC9C,MAAM,EAAE,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,mCAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI;YACtC,GAAG,OAAO;SACX,CAAC,CAAC;QAEH,IAAI,IAAI,KAAK,IAAI,EAAE;YACjB,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAC9B;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,4BAA4B,CACtD,CAAC,IAAI,CAAC,EACN,IAAI,CAAC,WAAW,EAChB,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,CAChB,CAAC;QAEF,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,EAAM,EACN,MAA4C,EAC5C,OAAmB;;QAEnB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAC7C,EAA2B,EAC3B;YACE,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC;YAC9C,UAAU,EAAE,IAAI,CAAC,6BAA6B,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,CAAC;YAC9D,OAAO,EAAE,IAAI,CAAC,2BAA2B,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,CAAC;YAC1D,KAAK,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK;YACpB,MAAM,EAAE,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,mCAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI;YACtC,GAAG,OAAO;SACX,CACF,CAAC;QACF,IAAI,CAAC,IAAI,EAAE;YACT,MAAM,IAAI,gCAAmB,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;SACrD;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,4BAA4B,CACtD,CAAC,IAAI,CAAC,EACN,IAAI,CAAC,WAAW,EAChB,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,CAChB,CAAC;QAEF,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,WAAW,CACf,EAAM,EACN,IAAmB,EACnB,OAA+B;QAE/B,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7D,IAAI,MAAM,IAAI,IAAI,EAAE;YAClB,OAAO,IAAI,CAAC,MAA2B,CAAC,CAAC;SAC1C;QAED,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,SAAS,CACb,KAA4B,EAC5B,OAA+B;QAE/B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;YAC9C,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;YACtC,GAAG,OAAO;SACX,CAAC,CAAC;QACH,OAAO,EAAC,KAAK,EAAC,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,EAAM,EAAE,OAA+B;QACtD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;QAE7D,IAAI,EAAE,KAAK,SAAS,EAAE;YACpB,MAAM,IAAI,KAAK,CAAC,qBAAqB,MAAM,sBAAsB,CAAC,CAAC;SACpE;QAED,MAAM,KAAK,GAAG,EAAc,CAAC;QAC5B,KAAmB,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;YAC9C,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;YACtC,GAAG,OAAO;SACX,CAAC,CAAC;QAEH,IAAI,KAAK,KAAK,CAAC,EAAE;YACf,MAAM,IAAI,gCAAmB,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;SACrD;IACH,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAgB,EAAE,OAAmB;QAC/C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;YAC5C,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAI,KAAK,CAAC;YACzC,GAAG,OAAO;SACX,CAAC,CAAC;QAEH,OAAO,EAAC,KAAK,EAAC,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,KAAK,CAAC,OAAO,CACX,OAAgB,EAChB,UAAmD,EACnD,OAAiB;QAEjB,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAC/D,CAAC;IAES,UAAU,CAAC,MAAqB;QACxC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,EAAE,CAAM,CAAC,CAAC;IAChE,CAAC;IAED;;;;OAIG;IACO,oBAAoB,CAAC,GAAsC;QACnE,MAAM,iBAAiB,GAAG,2CAAoB,CAAC,GAAG,CAAC,CAAC;QACpD,IAAI,CAAC,iBAAiB,EAAE;YACtB,MAAM,KAAK,CAAC,wCAAwC,GAAG,iBAAiB,CAAC,CAAC;SAC3E;QACD,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED;;;;OAIG;IACO,6BAA6B,CACrC,MAAe;;QAEf,IAAI,MAAM,KAAK,SAAS,EAAE;YACxB,OAAO,SAAS,CAAC;SAClB;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACzB,oFAAoF;YACpF,OAAO,MAAM,CAAC;SACf;QAED,MAAM,eAAe,GAAyB;YAC5C,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,EAAE;SACZ,CAAC;QAEF,iEAAiE;QACjE,iCAAiC;QACjC,IAAI,IAAA,sBAAc,EAAC,MAAM,CAAC,EAAE;YAC1B,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;gBACxB,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;oBACxB,MAAA,eAAe,CAAC,OAAO,0CAAE,IAAI,CAAC,GAAG,CAAC,CAAC;iBACpC;qBAAM,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE;oBAChC,MAAA,eAAe,CAAC,OAAO,0CAAE,IAAI,CAAC,GAAG,CAAC,CAAC;iBACpC;aACF;SACF;QAED,IACE,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC;YACtC,eAAe,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAClC;YACA,OAAO,eAAe,CAAC,OAAO,CAAC;YAC/B,OAAO,eAAe,CAAC,OAAO,CAAC;SAChC;QAED,IACE,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC;YACtC,eAAe,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAClC;YACA,OAAO,eAAe,CAAC,OAAO,CAAC;SAChC;QACD,OAAO,eAAe,CAAC;IACzB,CAAC;IAED;;;;;;;;;OASG;IACO,mBAAmB,CAAC,KAAyB;QACrD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,EAAE;YACvC,OAAO,SAAS,CAAC;SAClB;QAED,MAAM,cAAc,GAAG,CAAC,QAAgB,EAAa,EAAE;YACrD,MAAM,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAEzD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;gBACrB,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;aAC/C;YAED,OAAO,CAAC,UAAU,EAAE,GAAG,IAAI,CAAc,CAAC;QAC5C,CAAC,CAAC;QAEF,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;SAChC;QAED,OAAO,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACnC,CAAC;IAED;;;;;OAKG;IACO,kBAAkB,CAAC,OAAwB;QACnD,MAAM,YAAY,GAChB,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;QAC3D,IAAI,CAAC,YAAY,EAAE;YACjB,OAAO,KAAK,CAAC;SACd;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC1D,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;OAKG;IACO,2BAA2B,CACnC,gBAAgE,EAChE,WAAmC;;QAEnC,IAAI,CAAC,gBAAgB,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;YACtD,OAAO,EAAE,CAAC;SACX;QAED,IAAI,CAAC,WAAW,EAAE;YAChB,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC;SACnC;QAED,IAAI,WAAW,KAAK,IAAI,CAAC,cAAc,EAAE;YACvC,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,MAAM,CAC/C,eAAe,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAC7D,CAAC;YACF,IAAI,iBAAiB,CAAC,MAAM,EAAE;gBAC5B,MAAM,GAAG,GACP,oCAAoC;oBACpC,iBAAiB;yBACd,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;yBACvD,IAAI,CAAC,IAAI,CAAC,CAAC;gBAChB,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC3B,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;oBACjB,IAAI,EAAE,0BAA0B;oBAChC,UAAU,EAAE,GAAG;iBAChB,CAAC,CAAC;gBACH,MAAM,GAAG,CAAC;aACX;SACF;QAED,MAAM,UAAU,GAAkB,EAAE,CAAC;QAErC,KAAK,MAAM,MAAM,IAAI,gBAAgB,EAAE;YACrC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;gBAC9B,IAAI,MAAM,IAAI,WAAW,CAAC,YAAY,EAAE;oBACtC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;iBACzB;qBAAM;oBACL,KAAK,CACH,aAAa,MAAM,sIAAsI,CAC1J,CAAC;iBACH;aACF;iBAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;gBACrC,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,IAAI,WAAW,CAAC,YAAY,CAAC,EAAE;oBAClD,KAAK,CACH,aAAa,MAAM,CAAC,QAAQ,sIAAsI,CACnK,CAAC;oBACF,SAAS;iBACV;gBAED,MAAM,iBAAiB,GAAG,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAEpE,UAAU,CAAC,IAAI,CAAC;oBACd,KAAK,EAAE,iBAAiB,CAAC,MAAM;oBAC/B;;;;uBAIG;oBACH,GAAG,CAAC,iBAAiB,CAAC,eAAe,KAAK,eAAe;wBACzD,iBAAiB,CAAC,kBAAkB;wBAClC,CAAC,CAAC,EAAC,OAAO,EAAE,EAAC,UAAU,EAAE,EAAE,EAAC,EAAC;wBAC7B,CAAC,CAAC,EAAE,CAAC;oBAEP,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC,MAAA,MAAM,CAAC,KAAK,0CAAE,KAAK,CAAC;oBACpD,KAAK,EAAE,MAAA,MAAA,MAAM,CAAC,KAAK,0CAAE,UAAU,mCAAI,MAAA,MAAM,CAAC,KAAK,0CAAE,KAAK;oBACtD,UAAU,EAAE,IAAI,CAAC,6BAA6B,CAAC,MAAA,MAAM,CAAC,KAAK,0CAAE,MAAM,CAAC;oBACpE,OAAO,EAAE,IAAI,CAAC,2BAA2B,CACvC,MAAA,MAAM,CAAC,KAAK,0CAAE,OAAO,EACrB,iBAAiB,CAAC,MAAM,CACzB;oBACD,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC,MAAA,MAAM,CAAC,KAAK,0CAAE,KAAK,CAAC;oBACpD,EAAE,EAAE,MAAM,CAAC,QAAQ;oBAEnB;;uBAEG;oBACH,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ;oBAE3B;;uBAEG;oBACH,QAAQ,EACN,CAAC,CAAC,CAAA,MAAA,MAAM,CAAC,KAAK,0CAAE,KAAK,CAAA;wBACrB,CAAC,CAAC,CAAC,MAAA,MAAA,MAAM,CAAC,KAAK,0CAAE,UAAU,mCAAI,MAAA,MAAM,CAAC,KAAK,0CAAE,KAAK,CAAC;iBACtD,CAAC,CAAC;aACJ;SACF;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;;;OAIG;IACO,mBAAmB,CAC3B,KAAiB;QAEjB,IAAI,CAAC,KAAK,EAAE;YACV,OAAO,EAAE,CAAC;SACX;QAED,MAAM,cAAc,GAAiB,EAAE,CAAC;QAExC;;;WAGG;QACH,KAAK,MAAM,UAAU,IAAI,KAAK,EAAE;YAC9B,MAAM,cAAc,GAAoD,CACtE,KAAK,CAAC,UAAgC,CAAC,CACxC,CAAC;YAEF,sFAAsF;YACtF,IAAI,OAAO,cAAc,KAAK,WAAW,EAAE;gBACzC,SAAS;aACV;YAED,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YAC1E,MAAM,eAAe,GACnB,cAAc,IAAI,cAAc,CAAC,IAAI,KAAK,SAAS,CAAC;YAEtD,IAAI,IAAA,sBAAc,EAAC,cAAc,CAAC,EAAE;gBAClC,cAAc,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;gBAEhC,KAAK,MAAM,WAAW,IAAI,MAAM,CAAC,IAAI,CAAS,cAAc,CAAC,EAAE;oBAC7D,MAAM,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,CACjD,WAAgD,CACjD,CAAC;oBAEF,IAAI,eAAe,EAAE;wBACnB,4EAA4E;wBAC5E,cAAc,CAAC,UAAU,CAAC,CAAC,iBAAiB,CAAC,GAAG,IAAA,qBAAa,EAC3D,cAAe,CAAC,WAA0C,CAAC,CAC5D,CAAC;qBACH;yBAAM;wBACL,cAAc,CAAC,UAAU,CAAC,CAAC,iBAAiB,CAAC;4BAC3C,cAAe,CAAC,WAA0C,CAAC,CAAC;qBAC/D;iBACF;aACF;iBAAM,IACL,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;gBAClC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,EAC7B;gBACA;;mBAEG;gBACH,MAAM,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,CACjD,UAA0B,CAC3B,CAAC;gBACF,MAAM,UAAU,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,SAAkB,EAAE,EAAE;oBAC3D,OAAO,IAAI,CAAC,mBAAmB,CAAK,SAAsB,CAAC,CAAC;gBAC9D,CAAC,CAAC,CAAC;gBACH,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE;oBAC5B,CAAC,iBAAiB,CAAC,EAAE,UAAU;iBAChC,CAAC,CAAC;aACJ;iBAAM;gBACL,uFAAuF;gBACvF,mCAAmC;gBACnC,cAAc,CAAC,UAAU,CAAC,GAAG;oBAC3B,CAAC,cAAE,CAAC,EAAE,CAAC,EAAE,eAAe;wBACtB,CAAC,CAAC,IAAA,qBAAa,EAAC,cAAc,CAAC;wBAC/B,CAAC,CAAC,cAAc;iBACnB,CAAC;aACH;SACF;QAED,OAAO,cAAc,CAAC;IACxB,CAAC;IAED;;;OAGG;IACI,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW;QACrD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;YAC9B,MAAM,KAAK,CACT,mBAAmB,IAAI,CAAC,UAAU,CAAC,IAAI,gDAAgD,CACxF,CAAC;SACH;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE;YAC3D,4CAA4C;YAC5C,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;SAChE;QAED,8EAA8E;QAC9E,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,CAClD,WAAW,CAAC,SAAS,EACrB,IAAI,CAAC,2BAA2B,CAAC,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,EACnE;YACE,UAAU,EAAE,KAAK;YACjB,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;YACzC,eAAe,EAAE,IAAI;YACrB,+FAA+F;YAC/F,YAAY,EAAE,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK;SACpD,CACF,CAAC;QAEF,qBAAqB;QACrB,KAAK,MAAM,GAAG,IAAI,WAAW,CAAC,UAAU,CAAC,SAAS,EAAE;YAClD,MAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CACxC,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAC/C,CAAC;YAEF,iBAAiB,CACf,qBAAqB,EACrB,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CACtC,CAAC;YAEF,IACE,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI;gBAC1C,yBAAoB,CAAC,SAAS,EAC9B;gBACA,MAAM,kBAAkB,GAAG,WAAW,CAAC,UAAU,CAAC,SAAS,CACzD,GAAG,CACmB,CAAC;gBACzB,MAAM,UAAU,GAAG,kBAAkB,CAAC,OAAO,CAAC;gBAC9C,MAAM,SAAS,GAAG,kBAAkB,CAAC,KAAK,CAAC;gBAC3C,WAAW,CAAC,SAAS,CAAC,WAAW,EAAE;oBACjC,UAAU,EAAE,EAAC,IAAI,EAAE,UAAU,EAAC;oBAC9B,SAAS;oBACT,0FAA0F;oBAC1F,EAAE,EAAE,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI;iBAC/C,CAAC,CAAC;aACJ;iBAAM,IACL,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI;gBAC1C,yBAAoB,CAAC,MAAM,EAC3B;gBACA,MAAM,UAAU,GACd,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CACrC,CAAC,KAAK,CAAC;gBAER,WAAW,CAAC,MAAM,CAAC,WAAW,EAAE;oBAC9B,UAAU,EAAE,UAAU;oBACtB,EAAE,EAAE,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI;iBAC/C,CAAC,CAAC;aACJ;iBAAM,IACL,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI;gBAC1C,yBAAoB,CAAC,OAAO,EAC5B;gBACA,MAAM,kBAAkB,GAAG,WAAW,CAAC,UAAU,CAAC,SAAS,CACzD,GAAG,CACiB,CAAC;gBACvB,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC;gBAC3C,MAAM,UAAU,GAAG,kBAAkB,CAAC,KAAK,CAAC;gBAC5C,IAAI,OAAO,EAAE;oBACX,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;oBAC5B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;oBAChC,wBAAwB;oBACxB,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;oBAE7D,WAAW,CAAC,aAAa,CAAC,WAAW,EAAE;wBACrC,OAAO,EAAE,EAAC,KAAK,EAAE,YAAY,EAAC;wBAC9B,QAAQ,EAAE,KAAK;wBACf,UAAU,EAAE,OAAO;wBACnB,EAAE,EAAE,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI;qBAC/C,CAAC,CAAC;iBACJ;qBAAM;oBACL,WAAW,CAAC,OAAO,CAAC,WAAW,EAAE;wBAC/B,UAAU,EAAE,UAAU;wBACtB,EAAE,EAAE,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI;qBAC/C,CAAC,CAAC;iBACJ;aACF;SACF;QAED,iBAAiB,CACf,kCAAkC,CAAC,MAAM,CACvC,IAAI,WAAW,CAAC,SAAS,CAAC,WAAW,EAAE,GAAG,CAC3C,CACF,CAAC;QAEF,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;;;;;;;;;;OAWG;IACH,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW;QACzC,IAAI,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,mBAAmB;QAErD,IAAI,WAAW,CAAC,UAAU,CAAC,IAAI,KAAK,SAAS,EAAE;YAC7C,iCAAiC;YACjC,SAAS,GAAG,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC;SACzC;aAAM,IAAI,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,OAAO,KAAK,UAAU,EAAE;YACjE,uEAAuE;YACvE,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;SACjD;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,kBAAkB,CAAC,UAAuB,EAAE;QAChD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;YAC9B,MAAM,IAAI,KAAK,CACb,2DAA2D,CAC5D,CAAC;SACH;QACD,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;QAC/C,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,IAAI,CACrE,OAAO,CACR,CAAC;IACJ,CAAC;IACD;;;OAGG;IACH,KAAK,CAAC,yBAAyB,CAAC,UAAuB,EAAE;;QACvD,MAAM,CAAA,MAAA,IAAI,CAAC,UAAU,CAAC,SAAS,0CAAE,IAAI,CAAC,OAAO,CAAC,CAAA,CAAC;IACjD,CAAC;IAED;;;;;;OAMG;IACO,2BAA2B,CAAC,UAErC;;QACC,iBAAiB,CAAC,2BAA2B,EAAE,UAAU,CAAC,CAAC;QAE3D,MAAM,mBAAmB,GAAoB,EAAE,CAAC;QAEhD,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE;YACjC,gDAAgD;YAChD,IAAI,QAAQ,GAAa,qBAAS,CAAC,MAAM,CAAC;YAE1C,MAAM,QAAQ,GACZ,UAAU,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,MAAM;gBACpC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YAEtE,IACE,UAAU,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,MAAM;gBACpC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EACnE;gBACA,QAAQ,GAAG,qBAAS,CAAC,OAAO,CAAC;gBAE7B,eAAe;gBACf,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,yBAAyB,EAAE;oBAClD,IAAI,CAAC,CAAC,KAAK,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE;wBACpC,SAAS;qBACV;oBAED,MAAM,iBAAiB,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,KAAK,CAEnD,CAAC;oBAEF,IACE,CAAC,kBAAkB,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,QAAQ,CAC5C,iBAAiB,CAAC,QAAQ,CAC3B,EACD;wBACA,yBAAyB;wBACzB,QAAQ,GAAG,qBAAS,CAAC,KAAK,CAAC;qBAC5B;iBACF;aACF;YAED,IACE,UAAU,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,OAAO;gBACrC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EACrE;gBACA,QAAQ,GAAG,qBAAS,CAAC,OAAO,CAAC;aAC9B;YAED,IACE,UAAU,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,KAAK;gBACnC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EACjE;gBACA,gBAAgB;gBAChB,IAAI,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,OAAO,KAAK,UAAU,EAAE;oBAC1D,MAAM,eAAe,GACnB,UAAU,CAAC,QAAQ,CAAC,CAAC,QAAQ,KAAK,MAAM;wBACxC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAC3B,CAAA,MAAA,UAAU,CAAC,QAAQ,CAAC,CAAC,QAAQ,0CAAE,QAAQ,EAAE,KAAI,EAAE,CAChD,CAAC;oBACJ,QAAQ,GAAG,eAAe;wBACxB,CAAC,CAAC,qBAAS,CAAC,KAAK,CAAC,qBAAS,CAAC,MAAM,CAAC;wBACnC,CAAC,CAAC,qBAAS,CAAC,KAAK,CAAC,qBAAS,CAAC,OAAO,CAAC,CAAC;iBACxC;qBAAM;oBACL,QAAQ,GAAG,qBAAS,CAAC,IAAI,CAAC;iBAC3B;aACF;YAED,IACE,UAAU,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,MAAM;gBACpC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EACnE;gBACA,+BAA+B;gBAC/B,QAAQ,GAAG,qBAAS,CAAC,IAAI,CAAC;aAC3B;YAED,IACE,UAAU,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,IAAI;gBAClC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAC/D;gBACA,QAAQ,GAAG,qBAAS,CAAC,IAAI,CAAC;aAC3B;YAED,IAAI,QAAQ,KAAK,qBAAS,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE;gBAC9C,MAAM,KAAK,CACT,uBAAuB,UAAU,CAC/B,QAAQ,CACT,CAAC,IAAI,CAAC,QAAQ,EAAE,iBAAiB,QAAQ,0BAA0B,CACrE,CAAC;aACH;YAED,IAAI,YAAY,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC;YAChD,MAAM,iBAAiB,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC;YAE5D,IAAI,OAAO,iBAAiB,KAAK,UAAU,EAAE;gBAC3C,YAAY,GAAG,iBAAiB,CAAC;aAClC;iBAAM,IAAI,iBAAiB,IAAI,IAAI,CAAC,oBAAoB,EAAE,EAAE;gBAC3D,YAAY,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC,iBAAiB,CAAC,CAAC;aAC/D;YAED,MAAM,aAAa,GAAgC;gBACjD,IAAI,EAAE,QAAQ;gBACd,YAAY;aACb,CAAC;YAEF,kGAAkG;YAClG,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,IAAI,EAAE;gBACpC,IAAI,aAAa,CAAC,IAAI,KAAK,qBAAS,CAAC,MAAM,EAAE;oBAC3C,aAAa,CAAC,IAAI,GAAG,qBAAS,CAAC,OAAO,CAAC;iBACxC;gBACD,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE;oBAC3B,UAAU,EAAE,IAAI;oBAChB;;uBAEG;oBACH,aAAa,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,SAAS;iBACxB,CAAC,CAAC;aAC5B;YAED,wEAAwE;YACxE,6FAA6F;YAC7F,IACE,IAAI,CAAC,UAAU,CAAC,gBAAgB,KAAK,IAAI;gBACzC,QAAQ,KAAK,qBAAS,CAAC,IAAI,EAC3B;gBACA,6EAA6E;gBAC7E,aAAa,CAAC,GAAG,GAAG,SAAS,QAAQ;oBACnC,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;oBAE1C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;wBAC7B,IAAI;4BACF,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;yBAC1B;wBAAC,OAAO,MAAM,EAAE;4BACf,OAAO,IAAI,CAAC;yBACb;qBACF;oBAED,OAAO,KAAK,CAAC;gBACf,CAAC,CAAC;aACH;YAED,oHAAoH;YACpH,aAAa,CAAC,KAAK;gBACjB,MAAA,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,mCAAI,QAAQ,CAAC,WAAW,EAAE,CAAC;YAEzD,mBAAmB,CAAC,QAAQ,CAAC,GAAG,aAAa,CAAC;SAC/C;QAED,iBAAiB,CAAC,4BAA4B,EAAE,mBAAmB,CAAC,CAAC;QACrE,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAED;;;;;;;;;OASG;IACO,kBAAkB,CAAC,MAAqB;QAChD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAC1E,IAAI,CAAC,WAAW,EAAE;YAChB,OAAO,MAAM,CAAC;SACf;QAED,KAAK,MAAM,YAAY,IAAI,WAAyC,EAAE;YACpE,OAAO,MAAM,CAAC,YAAY,CAAC,CAAC;SAC7B;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;;;;OAUG;IACO,KAAK,CAAC,4BAA4B,CAC1C,cAA6B,EAC7B,iBAAgC,EAChC,gBAAoC;;QAEpC,IAAI,CAAC,iBAAiB,EAAE;YACtB,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC;SACtC;QACD,IAAI,qBAAqB,GAAG,cAAc,CAAC,GAAG,CAC5C,cAAc,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,MAAM,EAAE,CAAM,CACrE,CAAC;QACF;;WAEG;QACH,MAAM,oBAAoB,GAAa,EAAE,CAAC;QAC1C,KAAK,MAAM,GAAG,IAAI,iBAAiB,CAAC,UAAU,CAAC,SAAS,EAAE;YACxD,IACE,iBAAiB,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI;gBAChD,yBAAoB,CAAC,cAAc,EACnC;gBACA,MAAM,sBAAsB,GAAG,iBAAiB,CAAC,UAAU,CAAC,SAAS,CACnE,GAAG,CACwB,CAAC;gBAC9B,IAAI,sBAAsB,CAAC,OAAO,EAAE;oBAClC,oBAAoB,CAAC,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;iBAC3D;aACF;SACF;QAED,8DAA8D;QAC9D,+EAA+E;QAC/E,qBAAqB,GAAG,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;YACzD,MAAM,IAAI,GAAG,MAAmB,CAAC;YACjC,KAAK,MAAM,UAAU,IAAI,IAAI,EAAE;gBAC7B,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;oBAC9C,uFAAuF;oBACvF,SAAS;iBACV;gBAED,MAAM,gBAAgB,GACpB,iBAAiB,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;gBACtD,IACE,gBAAgB,CAAC,IAAI,KAAK,KAAK;oBAC/B,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAChC;oBACA,sEAAsE;oBACtE,SAAS;iBACV;gBAED,6CAA6C;gBAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAsC,CAAC;gBAEpE,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE;oBAC7D,IACE,gBAAgB,CAAC,QAAQ,KAAK,MAAM;wBACpC,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,QAAQ,EACpC;wBACA,KAAK,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAW,CAAC,CAAC;qBACzD;iBACF;gBAED,IAAI,CAAC,UAAU,CAAC,GAAG,KAA+C,CAAC;aACpE;YAED,OAAO,IAAS,CAAC;QACnB,CAAC,CAAC,CAAC;QAEH,kDAAkD;QAClD,MAAM,wBAAwB,GAczB,EAAE,CAAC;QAER,KAAK,IAAI,aAAa,IAAI,gBAAgB,aAAhB,gBAAgB,cAAhB,gBAAgB,GAAI,EAAE,EAAE;YAChD,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE;gBACrC,aAAa,GAAG,EAAC,QAAQ,EAAE,aAAa,EAAc,CAAC;aACxD;YACD,MAAM,YAAY,GAAG,aAAa,CAAC,QAAQ,CAAC;YAC5C,MAAM,QAAQ,GAAG,iBAAiB,CAAC,UAAU,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;YACtE,IAAI,QAAQ,CAAC,IAAI,KAAK,yBAAoB,CAAC,cAAc,EAAE;gBACzD,wBAAwB,CAAC,IAAI,CAAC;oBAC5B,MAAM,EAAE,aAAa;oBACrB,UAAU,EAAE,QAAoC;oBAChD,IAAI,EAAE,EAAE;iBACT,CAAC,CAAC;aACJ;SACF;QAED,IAAI,wBAAwB,CAAC,MAAM,KAAK,CAAC,EAAE;YACzC,OAAO,qBAA0C,CAAC;SACnD;QAED,KAAK,MAAM,QAAQ,IAAI,wBAAwB,EAAE;YAC/C,qBAAqB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;gBACrC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE;oBAChC,OAAO;iBACR;gBAED,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAkB,CAAC,CAAC;gBAEnE,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;oBAC9B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;iBACpC;qBAAM,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;oBACpE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAChB,GAAK,WAAsB,CAAC,KAAK,CAAC,GAAG,CAA2B,CACjE,CAAC;iBACH;qBAAM;oBACL,mEAAmE;oBACnE,KAAK,CACH,WACE,QAAQ,CAAC,UAAU,CAAC,OACtB,wDAAwD,IAAI,CAAC,SAAS,CACpE,MAAM,CACP,+BAA+B,CACjC,CAAC;iBACH;YACH,CAAC,CAAC,CAAC;YACH,QAAQ,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YAE5C,MAAM,UAAU,GACd,MAAA,QAAQ,CAAC,UAAU,CAAC,KAAK,mCACzB,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;YAE5D,6CAA6C;YAC7C,MAAM,iBAAiB,GAAG,IAAI,CAAC,6BAA6B,CAC1D,MAAA,QAAQ,CAAC,MAAM,CAAC,KAAK,0CAAE,MAAM,CAC9B,CAAC;YACF,IAAI,2BAA2B,GAAG,KAAK,CAAC;YACxC,IAAI,iBAAiB,KAAK,SAAS,EAAE;gBACnC,IAAI,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE;oBACpC,IAAI,iBAAiB,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;wBAC1C,2BAA2B,GAAG,IAAI,CAAC;qBACpC;yBAAM;wBACL,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;qBACpC;iBACF;qBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE;oBACnD,IAAI,iBAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;wBAClD,2BAA2B,GAAG,IAAI,CAAC;qBACpC;yBAAM;wBACL,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;qBAC5C;iBACF;aACF;iBAAM;gBACL,2BAA2B,GAAG,IAAI,CAAC;aACpC;YAED,MAAM,mBAAmB,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YACzD,MAAM,oBAAoB,GAAG,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;YACzE,MAAM,aAAa,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC;gBACvD,KAAK,EAAE;oBACL,iCAAiC;oBACjC,CAAC,UAAU,CAAC,EAAE;wBACZ,CAAC,cAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,IAAI;qBACvB;oBACD,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAA,QAAQ,CAAC,MAAM,CAAC,KAAK,0CAAE,KAAK,CAAC;iBAC1D;gBACD,UAAU,EAAE,iBAAiB;gBAC7B,OAAO,EAAE,IAAI,CAAC,2BAA2B,CACvC,MAAA,QAAQ,CAAC,MAAM,CAAC,KAAK,0CAAE,OAAO,EAC9B,oBAAoB,CACrB;gBACD,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC,MAAA,QAAQ,CAAC,MAAM,CAAC,KAAK,0CAAE,KAAK,CAAC;gBAC7D,KAAK,EACH,MAAA,MAAA,QAAQ,CAAC,MAAM,CAAC,KAAK,0CAAE,UAAU,mCAAI,MAAA,QAAQ,CAAC,MAAM,CAAC,KAAK,0CAAE,KAAK;gBACnE,MAAM,EAAE,MAAA,MAAA,QAAQ,CAAC,MAAM,CAAC,KAAK,0CAAE,MAAM,mCAAI,MAAA,QAAQ,CAAC,MAAM,CAAC,KAAK,0CAAE,IAAI;aACrE,CAAC,CAAC;YAEH,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,4BAA4B,CAC5D,aAAa,EACb,mBAAmB,EACnB,MAAA,QAAQ,CAAC,MAAM,CAAC,KAAK,0CAAE,OAAO,CAC/B,CAAC;YAEF,qBAAqB,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;gBACrC,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAkB,CAAC,CAAC;gBACnE,MAAM,mBAAmB,GAAG,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE;oBAC7D,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;wBAC9B,OAAO,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,QAAQ,CAC1B,UAAU,CAAC,UAAqC,CAAC,CAClD,CAAC;qBACH;yBAAM;wBACL,OAAO,IAAI,CAAC;qBACb;gBACH,CAAC,CAAC,CAAC;gBACH,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;oBACpB,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,mBAAmB,CAAC,GAAG,CACjD,kBAAkB,CAAC,EAAE;wBACnB,MAAM,QAAQ,GAAG,EAAC,GAAG,kBAAkB,EAAC,CAAC;wBACzC,IAAI,2BAA2B,KAAK,KAAK,EAAE;4BACzC,OAAO,QAAQ,CAAC,UAAmC,CAAC,CAAC;yBACtD;wBACD,OAAO,IAAI,mBAAmB,CAAC,QAAQ,CAAC,CAAC;oBAC3C,CAAC,CACF;iBACF,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;SACJ;QAED,OAAO,qBAA0C,CAAC;IACpD,CAAC;IAED;;;;;OAKG;IACH,yBAAyB,CACvB,YAAoB,EACpB,QAAsC;QAEtC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACO,iCAAiC,CAKzC,YAAoB,EACpB,sBAAsE;QAEtE,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QACjE,OAAO,IAAA,2CAA8B,EACnC,IAAyB,EACzB,sBAAsB,CACvB,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACO,0BAA0B,CAClC,YAAoB,EACpB,sBAIK;QAEL,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QACjE,OAAO,IAAA,oCAAuB,EAC5B,IAA2B,EAC3B,sBAAsB,EACtB,IAAI,CACL,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACO,gCAAgC,CAKxC,YAAoB,EACpB,sBAIK;QAEL,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QACjE,OAAO,IAAA,0CAA6B,EAClC,IAAwB,EACxB,sBAAsB,CACvB,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACO,wCAAwC,CAOhD,YAAoB,EACpB,sBAIK,EACL,uBAAyE;QAOzE,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QACjE,OAAO,IAAA,kDAAqC,EAO1C,IAAyB,EACzB,sBAAsB,EACtB,uBAAuB,CACxB,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACO,+BAA+B,CACvC,YAAoB,EACpB,gBAAgE;QAEhE,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QACjE,OAAO,IAAA,yCAA4B,EACjC,IAAgC,EAChC,gBAAgB,EAChB,IAAI,CACL,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,OAAmE;QAEnE,OAAO,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACnD,CAAC;CACF;AA51CD,0DA41CC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@loopback/sequelize",
3
3
  "description": "Loopback 4 Extension That Provides Sequelize Crud Repository Compatible With Default Loopback Models.",
4
- "version": "0.6.0",
4
+ "version": "0.6.1",
5
5
  "keywords": [
6
6
  "loopback-extension",
7
7
  "loopback",
@@ -45,22 +45,22 @@
45
45
  },
46
46
  "dependencies": {
47
47
  "debug": "^4.3.4",
48
- "sequelize": "^6.37.1",
48
+ "sequelize": "^6.37.2",
49
49
  "tslib": "^2.6.2"
50
50
  },
51
51
  "devDependencies": {
52
- "@loopback/boot": "^7.0.0",
53
- "@loopback/build": "^11.0.0",
54
- "@loopback/core": "^6.0.0",
55
- "@loopback/repository": "^7.0.0",
56
- "@loopback/rest": "^14.0.0",
57
- "@loopback/testlab": "^7.0.0",
58
- "@types/node": "^16.18.86",
59
- "oracledb": "^6.3.0",
60
- "pg": "^8.11.3",
52
+ "@loopback/boot": "^7.0.1",
53
+ "@loopback/build": "^11.0.1",
54
+ "@loopback/core": "^6.0.1",
55
+ "@loopback/repository": "^7.0.1",
56
+ "@loopback/rest": "^14.0.1",
57
+ "@loopback/testlab": "^7.0.1",
58
+ "@types/node": "^16.18.95",
59
+ "oracledb": "^6.4.0",
60
+ "pg": "^8.11.5",
61
61
  "pg-hstore": "^2.3.4",
62
62
  "sqlite3": "5.1.4",
63
63
  "typescript": "~5.2.2"
64
64
  },
65
- "gitHead": "bb4864f7405492d9c86c7db6e714542a292a8790"
65
+ "gitHead": "2bdb95fe5122f3664368261c12e3037ee8c71c27"
66
66
  }
@@ -34,6 +34,7 @@ const queryLogging = debugFactory('loopback:sequelize:queries');
34
34
  export class SequelizeDataSource implements LifeCycleObserver {
35
35
  name: string;
36
36
  settings = {};
37
+
37
38
  constructor(public config: SequelizeDataSourceConfig) {
38
39
  if (
39
40
  this.config.connector &&
@@ -85,6 +86,22 @@ export class SequelizeDataSource implements LifeCycleObserver {
85
86
 
86
87
  sequelize: Sequelize;
87
88
  sequelizeConfig: SequelizeOptions;
89
+
90
+ /**
91
+ * Gets the flag indicating whether to parse JSON columns.
92
+ * If the `parseJsonColumns` property is set in the configuration, its value will be returned.
93
+ * Otherwise, it returns `true` if the dialect is MySQL, `false` otherwise.
94
+ *
95
+ * @returns {boolean} The flag indicating whether to parse JSON columns.
96
+ */
97
+ get parseJsonColumns(): boolean {
98
+ if (typeof this.config?.parseJsonColumns === 'boolean') {
99
+ return this.config.parseJsonColumns;
100
+ }
101
+
102
+ return this.sequelizeConfig.dialect === 'mysql';
103
+ }
104
+
88
105
  async init(): Promise<void> {
89
106
  await this.sequelize.authenticate();
90
107
  debug('Connection has been established successfully.');
@@ -258,6 +275,21 @@ export type SequelizeDataSourceConfig = {
258
275
  user?: string;
259
276
  connector?: SupportedLoopbackConnectors;
260
277
  url?: string;
278
+ /**
279
+ * Whether or not to parse the JSON data stored in database columns.
280
+ *
281
+ * For dialects that do not support a native JSON type, we need to parse
282
+ * string column values to JSON objects to preserve backwards compatibility with the Juggler ORM.
283
+ * Example: https://github.com/loopbackio/loopback-connector-mysql/blob/edf176b09234b82796f925203ff006843e045498/lib/mysql.js#L476
284
+ *
285
+ * With Sequelize v6, some of the dialects like MariaDB and SQLite already parse JSON strings to JSON objects by default:
286
+ * - https://github.com/sequelize/sequelize/blob/cb8ea88c9aa37b14c908fd34dff1afc603de2ea7/src/dialects/mariadb/query.js#L191
287
+ * - https://github.com/sequelize/sequelize/blob/cb8ea88c9aa37b14c908fd34dff1afc603de2ea7/src/dialects/sqlite/query.js#L365
288
+ *
289
+ * Defaults to true for MySQL and false for other dialects.
290
+ */
291
+ parseJsonColumns?: boolean;
292
+
261
293
  /**
262
294
  * Additional sequelize options that are passed directly to
263
295
  * Sequelize when initializing the connection.
@@ -931,14 +931,18 @@ export class SequelizeCrudRepository<
931
931
  ['Array', 'array'].includes(definition[propName].type.toString())
932
932
  ) {
933
933
  // Postgres only
934
- const stringTypeArray =
935
- definition[propName].itemType === String ||
936
- ['String', 'string'].includes(
937
- definition[propName].itemType?.toString() || '',
938
- );
939
- dataType = stringTypeArray
940
- ? DataTypes.ARRAY(DataTypes.STRING)
941
- : DataTypes.ARRAY(DataTypes.INTEGER);
934
+ if (this.dataSource.sequelizeConfig.dialect === 'postgres') {
935
+ const stringTypeArray =
936
+ definition[propName].itemType === String ||
937
+ ['String', 'string'].includes(
938
+ definition[propName].itemType?.toString() || '',
939
+ );
940
+ dataType = stringTypeArray
941
+ ? DataTypes.ARRAY(DataTypes.STRING)
942
+ : DataTypes.ARRAY(DataTypes.INTEGER);
943
+ } else {
944
+ dataType = DataTypes.JSON;
945
+ }
942
946
  }
943
947
 
944
948
  if (
@@ -992,6 +996,28 @@ export class SequelizeCrudRepository<
992
996
  } as typeof columnOptions);
993
997
  }
994
998
 
999
+ // For dialects that do not support a native JSON type, we need to parse
1000
+ // string responses to JSON objects to preserve backwards compatibility with the Juggler ORM.
1001
+ if (
1002
+ this.dataSource.parseJsonColumns === true &&
1003
+ dataType === DataTypes.JSON
1004
+ ) {
1005
+ // See: https://sequelize.org/docs/v6/core-concepts/getters-setters-virtuals/
1006
+ columnOptions.get = function getValue() {
1007
+ const value = this.getDataValue(propName);
1008
+
1009
+ if (typeof value === 'string') {
1010
+ try {
1011
+ return JSON.parse(value);
1012
+ } catch (_error) {
1013
+ return null;
1014
+ }
1015
+ }
1016
+
1017
+ return value;
1018
+ };
1019
+ }
1020
+
995
1021
  // TODO: Get the column name casing using actual methods / conventions used in different sql connectors for loopback
996
1022
  columnOptions.field =
997
1023
  definition[propName]['name'] ?? propName.toLowerCase();