@decaf-ts/for-couchdb 0.14.2 → 0.14.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/lib/cjs/index.cjs CHANGED
@@ -41,21 +41,21 @@ __exportStar(require("./views/index.cjs"), exports);
41
41
  * @summary The version string of the for-couchdb package
42
42
  * @const VERSION
43
43
  */
44
- exports.VERSION = "0.14.1";
44
+ exports.VERSION = "0.14.2";
45
45
  /**
46
46
  * @description Represents the current commit hash of the module build.
47
47
  * @summary Stores the current git commit hash for the package. The build replaces
48
48
  * the placeholder with the actual commit hash at publish time.
49
49
  * @const COMMIT
50
50
  */
51
- exports.COMMIT = "8d4d67a";
51
+ exports.COMMIT = "a039827";
52
52
  /**
53
53
  * @description Represents the full version string of the module.
54
54
  * @summary Stores the semver version and commit hash for the package.
55
55
  * The build replaces the placeholder with the actual `<version>-<commit>` value at publish time.
56
56
  * @const FULL_VERSION
57
57
  */
58
- exports.FULL_VERSION = "0.14.1-8d4d67a";
58
+ exports.FULL_VERSION = "0.14.2-a039827";
59
59
  /**
60
60
  * @description Stores the current package name
61
61
  * @summary The version string of the for-couchdb package
@@ -114,6 +114,12 @@ class CouchDBStatement extends core_1.Statement {
114
114
  *
115
115
  * Statement-->>Statement: Return query
116
116
  */
117
+ toColumnName(attribute) {
118
+ if (attribute === constants_js_1.CouchDBKeys.TABLE ||
119
+ attribute === constants_js_1.CouchDBKeys.SEQUENCE)
120
+ return attribute;
121
+ return decorator_validation_1.Model.columnName(this.fromSelector, attribute);
122
+ }
117
123
  build() {
118
124
  const log = this.log.for(this.build);
119
125
  this.manualAggregation = undefined;
@@ -131,7 +137,7 @@ class CouchDBStatement extends core_1.Statement {
131
137
  selectors[constants_js_1.CouchDBKeys.TABLE] = decorator_validation_1.Model.tableName(this.fromSelector);
132
138
  const query = { selector: selectors };
133
139
  if (this.selectSelector)
134
- query.fields = this.selectSelector;
140
+ query.fields = this.selectSelector.map((f) => this.toColumnName(f));
135
141
  if (this.whereCondition) {
136
142
  const condition = this.parseCondition(core_1.Condition.and(this.whereCondition, core_1.Condition.attribute(constants_js_1.CouchDBKeys.TABLE).eq(query.selector[constants_js_1.CouchDBKeys.TABLE]))).selector;
137
143
  const selectorKeys = Object.keys(condition);
@@ -182,7 +188,7 @@ class CouchDBStatement extends core_1.Statement {
182
188
  query.sort = query.sort || [];
183
189
  query.selector = query.selector || {};
184
190
  for (const [selectorKey, direction] of this.orderBySelectors) {
185
- const selector = selectorKey;
191
+ const selector = this.toColumnName(selectorKey);
186
192
  const rec = {};
187
193
  rec[selector] = direction;
188
194
  query.sort.push(rec);
@@ -299,20 +305,61 @@ class CouchDBStatement extends core_1.Statement {
299
305
  if (rawInput?.aggregate && aggregator) {
300
306
  return this.executeAggregate(aggregator, ctx);
301
307
  }
302
- const results = await this.adapter.raw(rawInput, true, ctx);
303
- const processed = results.map((r) => this.processRecord(r, ctx));
308
+ // Scope the raw query to this statement's own table. build() does this for
309
+ // the execute() path; raw() must do the same so a caller cannot use it to
310
+ // dump or target documents belonging to other tables (cross-table leak).
311
+ const scoped = this.scopeToTable(rawInput);
312
+ const results = await this.adapter.raw(scoped, true, ctx);
313
+ // Manual aggregation needs reverted docs to compute the aggregate. The
314
+ // result is a computed value (not documents), so execute() returns it
315
+ // unchanged via hasAggregation().
304
316
  if (this.manualAggregation) {
317
+ const processed = results.map((r) => this.processRecord(r, ctx));
305
318
  const manualResult = this.executeManualAggregation(processed, this.manualAggregation, ctx);
306
319
  this.manualAggregation = undefined;
307
320
  return manualResult;
308
321
  }
322
+ // groupBy (without selectSelector) needs reverted docs to build groups.
323
+ // hasAggregation() is true for groupBy, so execute() returns this unchanged.
309
324
  if (!this.selectSelector && this.groupBySelectors?.length) {
325
+ const processed = results.map((r) => this.processRecord(r, ctx));
310
326
  return this.groupSelectResults(processed);
311
327
  }
312
328
  if (!this.selectSelector) {
313
- return (await this.applyAfterHandlersToResult(processed, ctx));
314
- }
315
- return results;
329
+ // Return raw docs and let execute() perform the single revert. The
330
+ // previous implementation reverted here AND in execute(), causing a
331
+ // double-revert that clobbered column-mapped fields (the second revert
332
+ // looked up column names on already-reverted model instances).
333
+ return results;
334
+ }
335
+ // selectSelector is set: process here (core Statement.raw() contract) and
336
+ // return model instances. execute() returns these unchanged.
337
+ const processor = (r) => this.processRecord(r, ctx);
338
+ if (Array.isArray(results)) {
339
+ const mapped = results.map(processor);
340
+ return (await this.applyAfterHandlersToResult(mapped, ctx));
341
+ }
342
+ const single = processor(results);
343
+ return (await this.applyAfterHandlersToResult(single, ctx));
344
+ }
345
+ /**
346
+ * @description Forces a raw Mango query to be scoped to this statement's table
347
+ * @summary Returns a copy of the input query whose selector includes the
348
+ * ??table discriminator set to the statement's own table, so a caller cannot
349
+ * read documents from other tables through raw(). Existing ??table selectors
350
+ * are overridden (never trusted from the caller).
351
+ * @param {MangoQuery} rawInput - The raw Mango query to scope
352
+ * @return {MangoQuery} A new Mango query scoped to this statement's table
353
+ */
354
+ scopeToTable(rawInput) {
355
+ if (!this.fromSelector)
356
+ return rawInput;
357
+ const tableName = decorator_validation_1.Model.tableName(this.fromSelector);
358
+ const base = rawInput && typeof rawInput === "object" ? rawInput : {};
359
+ const selector = Object.assign({}, base.selector || {});
360
+ // Force the discriminator; a caller-supplied value is never trusted.
361
+ selector[constants_js_1.CouchDBKeys.TABLE] = tableName;
362
+ return Object.assign({}, base, { selector });
316
363
  }
317
364
  /**
318
365
  * @description Parses a condition into a CouchDB Mango query selector
@@ -766,7 +813,7 @@ class CouchDBStatement extends core_1.Statement {
766
813
  const range = prefixRange(comparison);
767
814
  return {
768
815
  selector: {
769
- [attr1]: {
816
+ [this.toColumnName(attr1)]: {
770
817
  [constants_js_2.CouchDBOperator.BIGGER_EQ]: range.start,
771
818
  [constants_js_2.CouchDBOperator.SMALLER]: range.end,
772
819
  },
@@ -780,14 +827,14 @@ class CouchDBStatement extends core_1.Statement {
780
827
  throw new core_1.QueryError("ENDS_WITH requires a string comparison");
781
828
  return {
782
829
  selector: {
783
- [attr1]: {
830
+ [this.toColumnName(attr1)]: {
784
831
  [constants_js_2.CouchDBOperator.REGEXP]: `${escapeRegExp(comparison)}$`,
785
832
  },
786
833
  },
787
834
  };
788
835
  }
789
836
  if (operator === core_1.Operator.BETWEEN) {
790
- const attr = attr1;
837
+ const attr = this.toColumnName(attr1);
791
838
  if (!Array.isArray(comparison) || comparison.length !== 2)
792
839
  throw new core_1.QueryError("BETWEEN operator requires [min, max] comparison");
793
840
  const [min, max] = comparison;
@@ -799,14 +846,14 @@ class CouchDBStatement extends core_1.Statement {
799
846
  }
800
847
  let op = {};
801
848
  if ([core_1.GroupOperator.AND, core_1.GroupOperator.OR, core_1.Operator.NOT].indexOf(operator) === -1) {
802
- op[attr1] = {};
803
- op[attr1][(0, translate_js_1.translateOperators)(operator)] =
804
- comparison;
849
+ const attr = this.toColumnName(attr1);
850
+ op[attr] = {};
851
+ op[attr][(0, translate_js_1.translateOperators)(operator)] = comparison;
805
852
  }
806
853
  else if (operator === core_1.Operator.NOT) {
807
854
  op = this.parseCondition(attr1).selector;
808
855
  op[(0, translate_js_1.translateOperators)(core_1.Operator.NOT)] = {};
809
- op[(0, translate_js_1.translateOperators)(core_1.Operator.NOT)][attr1.attr1] = comparison;
856
+ op[(0, translate_js_1.translateOperators)(core_1.Operator.NOT)][this.toColumnName(attr1.attr1)] = comparison;
810
857
  }
811
858
  else {
812
859
  const op1 = this.parseCondition(attr1).selector;
@@ -1 +1 @@
1
- {"version":3,"file":"Statement.js","sourceRoot":"","sources":["Statement.js"],"names":[],"mappings":";;;AAAA,yCAAwH;AACxH,yEAAuD;AACvD,iDAAoD;AACpD,oDAAgD;AAChD,iDAA2F;AAC3F,2DAAiD;AACjD,qDAAgD;AAChD,0DAAqG;AACrG,6CAAqF;AACrF,4DAA8D;AAC9D,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AAC7E,SAAS,uBAAuB,CAAC,KAAK;IAClC,IAAI,CAAC,KAAK;QACN,OAAO,QAAQ,CAAC;IACpB,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,IAAI,KAAK,SAAS;YAClB,SAAS;QACb,IAAI,IAAI,GAAG,QAAQ,EAAE,CAAC;YAClB,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;YAC1C,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1C,CAAC;IACL,CAAC;IACD,OAAO,GAAG,KAAK,QAAQ,CAAC;AAC5B,CAAC;AACD,SAAS,WAAW,CAAC,MAAM;IACvB,OAAO;QACH,KAAK,EAAE,MAAM;QACb,GAAG,EAAE,uBAAuB,CAAC,MAAM,CAAC;KACvC,CAAC;AACN,CAAC;AACD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAa,gBAAiB,SAAQ,gBAAS;IAC3C,YAAY,OAAO,EAAE,SAAS;QAC1B,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC1B,IAAI,CAAC,kBAAkB,GAAG,IAAI,GAAG,EAAE,CAAC;IACxC,CAAC;IACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAuDG;IACH,KAAK;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;QACnC,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAChD,IAAI,aAAa,EAAE,CAAC;YAChB,IAAI,IAAI,CAAC,0BAA0B,EAAE,EAAE,CAAC;gBACpC,IAAI,CAAC,iBAAiB,GAAG,aAAa,CAAC;YAC3C,CAAC;iBACI,CAAC;gBACF,OAAO,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;YACpD,CAAC;QACL,CAAC;QACD,MAAM,SAAS,GAAG,EAAE,CAAC;QACrB,SAAS,CAAC,0BAAW,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QAClC,SAAS,CAAC,0BAAW,CAAC,KAAK,CAAC,GAAG,4BAAK,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAClE,MAAM,KAAK,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;QACtC,IAAI,IAAI,CAAC,cAAc;YACnB,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC;QACvC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAS,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,gBAAS,CAAC,SAAS,CAAC,0BAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,0BAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YACjK,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC5C,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;gBACzB,MAAM,CAAC,MAAM,CAAC,mCAAoB,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBACnE,QAAQ,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;oBACtB,KAAK,mCAAoB,CAAC,GAAG;wBACzB,SAAS,CAAC,mCAAoB,CAAC,GAAG,CAAC,GAAG;4BAClC,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,mCAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;gCACxE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gCAC9B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;oCACjB,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;gCACtE,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gCAClB,IAAI,CAAC,KAAK,mCAAoB,CAAC,GAAG;oCAC9B,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;;oCAEtB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gCACpB,OAAO,KAAK,CAAC;4BACjB,CAAC,EAAE,EAAE,CAAC;yBACT,CAAC;wBACF,KAAK,CAAC,QAAQ,GAAG,SAAS,CAAC;wBAC3B,MAAM;oBACV,KAAK,mCAAoB,CAAC,EAAE,CAAC,CAAC,CAAC;wBAC3B,MAAM,CAAC,GAAG,EAAE,CAAC;wBACb,CAAC,CAAC,mCAAoB,CAAC,GAAG,CAAC,GAAG;4BAC1B,SAAS;4BACT,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE;gCACjD,MAAM,MAAM,GAAG,EAAE,CAAC;gCAClB,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;gCAClB,OAAO,MAAM,CAAC;4BAClB,CAAC,CAAC;yBACL,CAAC;wBACF,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC;wBACnB,MAAM;oBACV,CAAC;oBACD;wBACI,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;gBACrD,CAAC;iBACA,CAAC;gBACF,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE;oBAC7C,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;wBACnB,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,2CAA2C,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;oBACjG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;gBAC9B,CAAC,CAAC,CAAC;YACP,CAAC;QACL,CAAC;QACD,IAAI,IAAI,CAAC,gBAAgB,EAAE,MAAM,EAAE,CAAC;YAChC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;YAC9B,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC;YACtC,KAAK,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC3D,MAAM,QAAQ,GAAG,WAAW,CAAC;gBAC7B,MAAM,GAAG,GAAG,EAAE,CAAC;gBACf,GAAG,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC;gBAC1B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACrB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC5B,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;oBAC9B,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,8BAAe,CAAC,MAAM,CAAC;wBAC5C,IAAI,CAAC;gBACb,CAAC;YACL,CAAC;QACL,CAAC;QACD,MAAM,kBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC;QACpD,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC;QACrC,CAAC;aACI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC3B,GAAG,CAAC,IAAI,CAAC,6DAA6D,gCAAiB,EAAE,CAAC,CAAC;YAC3F,KAAK,CAAC,KAAK,GAAG,gCAAiB,CAAC;QACpC,CAAC;QACD,IAAI,IAAI,CAAC,cAAc;YACnB,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC;QACrC,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS;YACpC,EAAE,iBAAiB,IAAI,IAAI,CAAC;QAChC,IAAI,iBAAiB,EAAE,CAAC;YACpB,IAAA,oCAAuB,EAAC,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,GAAG,EAAE;gBACnD,oBAAoB,EAAE,IAAI;gBAC1B,mBAAmB,EAAE,KAAK;gBAC1B,iBAAiB,EAAE,IAAI;aAC1B,CAAC,CAAC;QACP,CAAC;QACD,IAAA,wCAA2B,EAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACjD,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,uBAAuB,CAAC,KAAK;QACzB,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC,SAAS;YACrC,OAAO;QACX,MAAM,SAAS,GAAG,4BAAK,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACrD,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC;YACD,YAAY,GAAG,4BAAK,CAAC,sBAAsB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACnE,CAAC;QACD,MAAM,CAAC;YACH,YAAY,GAAG,EAAE,CAAC;QACtB,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,MAAM;YACpB,OAAO;QACX,MAAM,WAAW,GAAG,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;QAC3E,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1E,IAAI,CAAC,YAAY,CAAC,MAAM;YACpB,OAAO;QACX,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,MAAM,SAAS,GAAG,IAAI;aACjB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;aAC9C,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,IAAI,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,MAAM,UAAU,GAAG,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;QACrD,MAAM,SAAS,GAAG,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC;QAC9C,MAAM,SAAS,GAAG,IAAA,gCAAiB,EAAC,CAAC,SAAS,EAAE,UAAU,EAAE,cAAc,CAAC,EAAE,SAAS,CAAC,CAAC;QACxF,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;IAChC,CAAC;IACD,2BAA2B,CAAC,QAAQ;QAChC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,EAAE;YAClB,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;gBACjC,OAAO;YACX,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtB,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBACrC,OAAO;YACX,CAAC;YACD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBAC1C,IAAI,GAAG,KAAK,mCAAoB,CAAC,GAAG;oBAChC,GAAG,KAAK,mCAAoB,CAAC,EAAE;oBAC/B,KAAK;oBACL,OAAO,KAAK,KAAK,QAAQ;oBACzB,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBACxB,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,8BAAe,CAAC,SAAS,CAAC,CAAC;oBACxF,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,8BAAe,CAAC,OAAO,CAAC,CAAC;oBACtF,IAAI,QAAQ,IAAI,QAAQ;wBACpB,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACvB,CAAC;gBACD,IAAI,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,CAAC;QACf,OAAO,KAAK,CAAC;IACjB,CAAC;IACD;;;;;;;OAOG;IACH,aAAa,CAAC,MAAM,EAAE,GAAG;QACrB,MAAM,MAAM,GAAG,4BAAK,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,qBAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,qBAAQ,CAAC,GAAG,CAAC,sBAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC;QACpF,IAAI,MAAM,CAAC,0BAAW,CAAC,EAAE,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,MAAM,CAAC,0BAAW,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,0BAAW,CAAC,SAAS,CAAC,CAAC;YAC3E,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC7B,MAAM,CAAC,MAAM,CAAC,GAAG,eAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACnD,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;IAC1F,CAAC;IACD;;;;;;OAMG;IACH,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,IAAI;QACvB,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5C,MAAM,UAAU,GAAG,QAAQ,EAAE,aAAa,CAAC;QAC3C,IAAI,QAAQ,EAAE,SAAS,IAAI,UAAU,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAClD,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QAC5D,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QACjE,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,MAAM,YAAY,GAAG,IAAI,CAAC,wBAAwB,CAAC,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;YAC3F,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;YACnC,OAAO,YAAY,CAAC;QACxB,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,gBAAgB,EAAE,MAAM,EAAE,CAAC;YACxD,OAAO,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACvB,OAAO,CAAC,MAAM,IAAI,CAAC,0BAA0B,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC;QACnE,CAAC;QACD,OAAO,OAAO,CAAC;IACnB,CAAC;IACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IACH,kBAAkB;QACd,IAAI,CAAC,IAAI,CAAC,YAAY;YAClB,OAAO,SAAS,CAAC;QACrB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YACjE,IAAI,CAAC,OAAO;gBACR,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YAClD,MAAM,SAAS,GAAG,IAAI,CAAC,yBAAyB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YACrE,IAAI,CAAC,SAAS;gBACV,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YACpD,OAAO;gBACH,IAAI,EAAE,KAAK;gBACX,SAAS;gBACT,aAAa,EAAE,OAAO,CAAC,UAAU;gBACjC,eAAe,EAAE,SAAS,CAAC,UAAU;aACxC,CAAC;QACN,CAAC;QACD,IAAI,OAAO,IAAI,CAAC,qBAAqB,KAAK,WAAW,EAAE,CAAC;YACpD,MAAM,SAAS,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YAC5E,MAAM,IAAI,GAAG,IAAI,CAAC,yBAAyB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;YACnE,IAAI,CAAC,IAAI;gBACL,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;YACvD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,IAAI,OAAO,IAAI,CAAC,aAAa,KAAK,WAAW,EAAE,CAAC;YAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACpE,MAAM,IAAI,GAAG,IAAI,CAAC,yBAAyB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAChE,IAAI,CAAC,IAAI;gBACL,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YACpD,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,MAAM,SAAS,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAClE,MAAM,IAAI,GAAG,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YAC9D,IAAI,CAAC,IAAI;gBACL,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YAClD,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,MAAM,SAAS,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAClE,MAAM,IAAI,GAAG,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YAC9D,IAAI,CAAC,IAAI;gBACL,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YAClD,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,MAAM,SAAS,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAClE,MAAM,IAAI,GAAG,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YAC9D,IAAI,CAAC,IAAI;gBACL,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YAClD,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,MAAM,SAAS,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACvE,MAAM,IAAI,GAAG,IAAI,CAAC,yBAAyB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;YACnE,IAAI,CAAC,IAAI;gBACL,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;YACvD,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,yBAAyB,CAAC,IAAI,EAAE,SAAS;QACrC,IAAI,CAAC,IAAI,CAAC,YAAY;YAClB,OAAO,SAAS,CAAC;QACrB,MAAM,KAAK,GAAG,IAAA,+BAAgB,EAAC,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QACnE,IAAI,CAAC,KAAK,CAAC,MAAM;YACb,OAAO,SAAS,CAAC;QACrB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,SAAS,GAAG,4BAAK,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACrD,MAAM,QAAQ,GAAG,IAAA,+BAAgB,EAAC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACzE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,IAAA,oCAAqB,EAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACrE,MAAM,OAAO,GAAG;YACZ,MAAM,EAAE,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU;SAC9D,CAAC;QACF,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,SAAS;YACzC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;QACzB,OAAO;YACH,IAAI;YACJ,IAAI;YACJ,UAAU,EAAE;gBACR,IAAI;gBACJ,IAAI,EAAE,QAAQ;gBACd,OAAO;aACV;SACJ,CAAC;IACN,CAAC;IACD,oBAAoB,CAAC,IAAI;QACrB,OAAO;YACH,QAAQ,EAAE,EAAE;YACZ,SAAS,EAAE,IAAI;YACf,aAAa,EAAE,IAAI;SACtB,CAAC;IACN,CAAC;IACD,0BAA0B;QACtB,OAAO,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;IACjC,CAAC;IACD,KAAK,CAAC,gBAAgB,CAAC,IAAI,EAAE,GAAG;QAC5B,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACzC,CAAC;QACD,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC;QACtB,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC/H,OAAO,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACpD,CAAC;IACD,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,GAAG;QACzB,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK;YACnB,MAAM,IAAI,iBAAU,CAAC,iCAAiC,CAAC,CAAC;QAC5D,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QACxE,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAC5C,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACnD,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;YACnE,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC;SAC5E,CAAC,CAAC;QACH,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;QAClD,IAAI,CAAC,KAAK;YACN,OAAO,CAAC,CAAC;QACb,OAAO,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;IACzB,CAAC;IACD,wBAAwB,CAAC,IAAI,EAAE,IAAI;IACnC,6DAA6D;IAC7D,GAAG;QACC,IAAI,CAAC,IAAI,CAAC,YAAY;YAClB,MAAM,IAAI,iBAAU,CAAC,4CAA4C,CAAC,CAAC;QACvE,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1D,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;QACtC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAChB,KAAK,OAAO,CAAC,CAAC,CAAC;gBACX,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;oBACrB,OAAO,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;gBACtD,CAAC;gBACD,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YAC9C,CAAC;YACD,KAAK,UAAU;gBACX,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;oBACrB,OAAO,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;gBACtD,CAAC;gBACD,OAAO,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YACvD,KAAK,KAAK;gBACN,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YAC5C,KAAK,KAAK;gBACN,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;YACtD,KAAK,KAAK;gBACN,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;YACtD;gBACI,MAAM,IAAI,iBAAU,CAAC,kCAAkC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5E,CAAC;IACL,CAAC;IACD,YAAY,CAAC,IAAI,EAAE,SAAS;QACxB,IAAI,CAAC,SAAS;YACV,OAAO,IAAI,CAAC,MAAM,CAAC;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACnD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC;aACjE,MAAM,CAAC;IAChB,CAAC;IACD,oBAAoB,CAAC,IAAI,EAAE,SAAS;QAChC,MAAM,MAAM,GAAG,SAAS;YACpB,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC;YAC9F,CAAC,CAAC,IAAI,CAAC;QACX,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;QACvB,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3D,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IACD,qBAAqB,CAAC,IAAI,EAAE,SAAS;QACjC,IAAI,CAAC,SAAS;YACV,OAAO,EAAE,CAAC;QACd,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACnD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACrB,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAClC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACjB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACd,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvB,CAAC;QACL,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,UAAU,CAAC,IAAI,EAAE,SAAS;QACtB,IAAI,CAAC,SAAS;YACV,OAAO,IAAI,CAAC,MAAM,CAAC;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC;QAC5G,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3G,OAAO,GAAG,CAAC;IACf,CAAC;IACD,cAAc,CAAC,IAAI,EAAE,SAAS;QAC1B,IAAI,CAAC,SAAS;YACV,OAAO,CAAC,CAAC;QACb,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC;QAC5G,IAAI,CAAC,MAAM,CAAC,MAAM;YACd,OAAO,CAAC,CAAC;QACb,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3G,OAAO,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IACD,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI;QAC/B,IAAI,CAAC,SAAS;YACV,OAAO,IAAI,CAAC;QAChB,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC;QAC5G,IAAI,YAAY,GAAG,IAAI,CAAC;QACxB,IAAI,iBAAiB,GAAG,IAAI,CAAC;QAC7B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACzB,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;YACnD,IAAI,UAAU,KAAK,IAAI;gBACnB,SAAS;YACb,IAAI,iBAAiB,KAAK,IAAI,EAAE,CAAC;gBAC7B,iBAAiB,GAAG,UAAU,CAAC;gBAC/B,YAAY,GAAG,KAAK,CAAC;gBACrB,SAAS;YACb,CAAC;YACD,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,UAAU,GAAG,iBAAiB,CAAC;gBAClD,CAAC,IAAI,KAAK,KAAK,IAAI,UAAU,GAAG,iBAAiB,CAAC,EAAE,CAAC;gBACrD,iBAAiB,GAAG,UAAU,CAAC;gBAC/B,YAAY,GAAG,KAAK,CAAC;YACzB,CAAC;QACL,CAAC;QACD,OAAO,YAAY,CAAC;IACxB,CAAC;IACD,cAAc,CAAC,IAAI,EAAE,SAAS;QAC1B,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YACxB,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACzC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;gBACb,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACnB,CAAC;IACD,kBAAkB,CAAC,IAAI;QACnB,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM;YAC9B,OAAO,EAAE,CAAC;QACd,MAAM,SAAS,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,IAAI,CAAC,SAAS;YACV,OAAO,EAAE,CAAC;QACd,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACjB,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,uBAAuB,CAAC,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACnF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;gBACb,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACnB,CAAC;IACD,aAAa,CAAC,IAAI,EAAE,SAAS;QACzB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACpB,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;gBAC/B,OAAO,SAAS,CAAC;YACrB,OAAO,IAAI,CAAC,uBAAuB,CAAC,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;IACP,CAAC;IACD,uBAAuB,CAAC,SAAS,EAAE,KAAK;QACpC,IAAI,CAAC,IAAI,CAAC,YAAY;YAClB,OAAO,KAAK,CAAC;QACjB,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACvD,IAAI,aAAa,KAAK,MAAM,EAAE,CAAC;YAC3B,IAAI,KAAK,YAAY,IAAI;gBACrB,OAAO,KAAK,CAAC;YACjB,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC/B,OAAO,MAAM,CAAC;QACtB,CAAC;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACxE,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC/B,OAAO,MAAM,CAAC;QACtB,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,gBAAgB,CAAC,SAAS;QACtB,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,YAAY;YAChC,OAAO,SAAS,CAAC;QACrB,IAAI,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACzC,OAAO,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAClD,CAAC;QACD,MAAM,QAAQ,GAAG,qBAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC;YACxD,qBAAQ,CAAC,kBAAkB,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC;gBACvD,EAAE,UAAU,CAAC;QACrB,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QACpD,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACnD,OAAO,UAAU,CAAC;IACtB,CAAC;IACD,iBAAiB,CAAC,QAAQ;QACtB,IAAI,CAAC,QAAQ;YACT,OAAO,SAAS,CAAC;QACrB,IAAI,OAAO,QAAQ,KAAK,QAAQ;YAC5B,OAAO,QAAQ,CAAC,WAAW,EAAE,CAAC;QAClC,IAAI,OAAO,QAAQ,KAAK,UAAU,IAAI,QAAQ,CAAC,IAAI;YAC/C,OAAO,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACvC,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,mBAAmB,CAAC,KAAK;QACrB,IAAI,OAAO,KAAK,KAAK,QAAQ;YACzB,OAAO,KAAK,CAAC;QACjB,IAAI,OAAO,KAAK,KAAK,QAAQ;YACzB,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;QACzB,IAAI,KAAK,YAAY,IAAI;YACrB,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC;QAC3B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAClD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,QAAQ,CAAC,KAAK;QACV,IAAI,KAAK,KAAK,SAAS;YACnB,OAAO,WAAW,CAAC;QACvB,IAAI,KAAK,KAAK,IAAI;YACd,OAAO,MAAM,CAAC;QAClB,IAAI,OAAO,KAAK,KAAK,QAAQ;YACzB,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC5B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACjC,CAAC;YACD,MAAM,CAAC;gBACH,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;YACzB,CAAC;QACL,CAAC;QACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IACD,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO;QAChC,IAAI,OAAO,KAAK,KAAK,QAAQ;YACzB,OAAO,KAAK,CAAC;QACjB,IAAI,OAAO,KAAK,KAAK,QAAQ;YACzB,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;QACzB,IAAI,KAAK,YAAY,IAAI;YACrB,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC;QAC3B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAClD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;QACzB,MAAM,IAAI,iBAAU,CAAC,GAAG,OAAO,QAAQ,KAAK,sCAAsC,OAAO,KAAK,EAAE,CAAC,CAAC;IACtG,CAAC;IACD,qBAAqB,CAAC,SAAS,EAAE,KAAK;QAClC,IAAI,CAAC,SAAS;YACV,OAAO,KAAK,CAAC;QACjB,OAAO,IAAI,CAAC,uBAAuB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC1D,CAAC;IACD,wBAAwB,CAAC,QAAQ;QAC7B,IAAI,QAAQ,IAAI,IAAI;YAChB,OAAO,SAAS,CAAC;QACrB,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IACD,gBAAgB,CAAC,IAAI,EAAE,SAAS;QAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY;YAC3B,CAAC,CAAC,4BAAK,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC;YACpC,CAAC,CAAC,iBAAiB,CAAC;QACxB,MAAM,aAAa,GAAG,SAAS,CAAC,CAAC,CAAC,QAAQ,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,OAAO,IAAI,uBAAgB,CAAC,GAAG,SAAS,sCAAsC,IAAI,eAAe,aAAa,cAAc,KAAK,IAAI,CAAC,CAAC;IAC3I,CAAC;IACD,gBAAgB,CAAC,IAAI;QACjB,MAAM,GAAG,GAAG;YACR,KAAK,EAAE,QAAQ;YACf,GAAG,EAAE,MAAM;YACX,GAAG,EAAE,MAAM;YACX,GAAG,EAAE,MAAM;YACX,QAAQ,EAAE,WAAW;YACrB,OAAO,EAAE,UAAU;YACnB,IAAI,EAAE,OAAO;YACb,GAAG,EAAE,MAAM;SACd,CAAC;QACF,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;IACnC,CAAC;IACD,mBAAmB,CAAC,IAAI,EAAE,QAAQ;QAC9B,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK;YACnB,MAAM,IAAI,iBAAU,CAAC,0DAA0D,CAAC,CAAC;QACrF,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,IAAI,CAAC;QACtB,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QAC3B,IAAI,QAAQ,CAAC,aAAa,EAAE,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;QAC9B,CAAC;QACD,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC9D,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;QACxG,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACf,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;IACrG,CAAC;IACD,eAAe,CAAC,IAAI;QAChB,OAAO,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC;IAC/B,CAAC;IACD,eAAe;QACX,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IACD,cAAc,CAAC,SAAS;QACpB;;;;;;;WAOG;QACH,SAAS,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI;YACzB,MAAM,MAAM,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;YAChC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACnC,OAAO,MAAM,CAAC;QAClB,CAAC;QACD,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC;QAClD,IAAI,QAAQ,KAAK,eAAQ,CAAC,WAAW,EAAE,CAAC;YACpC,IAAI,OAAO,KAAK,KAAK,QAAQ;gBACzB,MAAM,IAAI,iBAAU,CAAC,wCAAwC,CAAC,CAAC;YACnE,IAAI,OAAO,UAAU,KAAK,QAAQ;gBAC9B,MAAM,IAAI,iBAAU,CAAC,0CAA0C,CAAC,CAAC;YACrE,MAAM,KAAK,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;YACtC,OAAO;gBACH,QAAQ,EAAE;oBACN,CAAC,KAAK,CAAC,EAAE;wBACL,CAAC,8BAAe,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,KAAK;wBACxC,CAAC,8BAAe,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,GAAG;qBACvC;iBACJ;aACJ,CAAC;QACN,CAAC;QACD,IAAI,QAAQ,KAAK,eAAQ,CAAC,SAAS,EAAE,CAAC;YAClC,IAAI,OAAO,KAAK,KAAK,QAAQ;gBACzB,MAAM,IAAI,iBAAU,CAAC,sCAAsC,CAAC,CAAC;YACjE,IAAI,OAAO,UAAU,KAAK,QAAQ;gBAC9B,MAAM,IAAI,iBAAU,CAAC,wCAAwC,CAAC,CAAC;YACnE,OAAO;gBACH,QAAQ,EAAE;oBACN,CAAC,KAAK,CAAC,EAAE;wBACL,CAAC,8BAAe,CAAC,MAAM,CAAC,EAAE,GAAG,YAAY,CAAC,UAAU,CAAC,GAAG;qBAC3D;iBACJ;aACJ,CAAC;QACN,CAAC;QACD,IAAI,QAAQ,KAAK,eAAQ,CAAC,OAAO,EAAE,CAAC;YAChC,MAAM,IAAI,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;gBACrD,MAAM,IAAI,iBAAU,CAAC,iDAAiD,CAAC,CAAC;YAC5E,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,UAAU,CAAC;YAC9B,MAAM,SAAS,GAAG,EAAE,CAAC;YACrB,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACrB,SAAS,CAAC,IAAI,CAAC,CAAC,IAAA,iCAAkB,EAAC,eAAQ,CAAC,SAAS,CAAC,CAAC,GAAG,GAAG,CAAC;YAC9D,SAAS,CAAC,IAAI,CAAC,CAAC,IAAA,iCAAkB,EAAC,eAAQ,CAAC,UAAU,CAAC,CAAC,GAAG,GAAG,CAAC;YAC/D,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;QACnC,CAAC;QACD,IAAI,EAAE,GAAG,EAAE,CAAC;QACZ,IAAI,CAAC,oBAAa,CAAC,GAAG,EAAE,oBAAa,CAAC,EAAE,EAAE,eAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YAC/E,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;YACf,EAAE,CAAC,KAAK,CAAC,CAAC,IAAA,iCAAkB,EAAC,QAAQ,CAAC,CAAC;gBACnC,UAAU,CAAC;QACnB,CAAC;aACI,IAAI,QAAQ,KAAK,eAAQ,CAAC,GAAG,EAAE,CAAC;YACjC,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC;YACzC,EAAE,CAAC,IAAA,iCAAkB,EAAC,eAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YAC1C,EAAE,CAAC,IAAA,iCAAkB,EAAC,eAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC;QACnE,CAAC;aACI,CAAC;YACF,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC;YAChD,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC;YACrD,EAAE,GAAG,KAAK,CAAC,IAAA,iCAAkB,EAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC;QAChE,CAAC;QACD,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAC5B,CAAC;CACJ;AA1vBD,4CA0vBC;AACD,qCAAqC"}
1
+ {"version":3,"file":"Statement.js","sourceRoot":"","sources":["Statement.js"],"names":[],"mappings":"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"}
@@ -153,9 +153,13 @@ export class CouchDBAdapter extends Adapter {
153
153
  const { ctxArgs } = this.logCtx(args, this.createPrefix);
154
154
  const tableName = Model.tableName(clazz);
155
155
  const record = {};
156
+ Object.assign(record, model);
157
+ // Set the discriminator fields AFTER Object.assign so model data cannot
158
+ // overwrite the table membership or document id. isReserved() blocks
159
+ // mapping these via @column, but this guards against any other path that
160
+ // might surface these keys on the prepared record.
156
161
  record[CouchDBKeys.TABLE] = tableName;
157
162
  record[CouchDBKeys.ID] = this.generateId(tableName, id);
158
- Object.assign(record, model);
159
163
  return [clazz, id, record, ...ctxArgs];
160
164
  }
161
165
  /**
@@ -174,9 +178,10 @@ export class CouchDBAdapter extends Adapter {
174
178
  const { ctxArgs } = this.logCtx(args, this.createAllPrefix);
175
179
  const records = ids.map((id, count) => {
176
180
  const record = {};
181
+ Object.assign(record, models[count]);
182
+ // Discriminator fields set AFTER Object.assign (see createPrefix).
177
183
  record[CouchDBKeys.TABLE] = tableName;
178
184
  record[CouchDBKeys.ID] = this.generateId(tableName, id);
179
- Object.assign(record, models[count]);
180
185
  return record;
181
186
  });
182
187
  return [clazz, ids, records, ...ctxArgs];
@@ -195,12 +200,13 @@ export class CouchDBAdapter extends Adapter {
195
200
  const tableName = Model.tableName(clazz);
196
201
  const { ctxArgs } = this.logCtx(args, this.updatePrefix);
197
202
  const record = {};
198
- record[CouchDBKeys.TABLE] = tableName;
199
- record[CouchDBKeys.ID] = this.generateId(tableName, id);
200
203
  const rev = model[PersistenceKeys.METADATA];
201
204
  if (!rev)
202
205
  throw new InternalError(`No revision number found for record with id ${id}`);
203
206
  Object.assign(record, model);
207
+ // Discriminator fields set AFTER Object.assign (see createPrefix).
208
+ record[CouchDBKeys.TABLE] = tableName;
209
+ record[CouchDBKeys.ID] = this.generateId(tableName, id);
204
210
  record[CouchDBKeys.REV] = rev;
205
211
  return [clazz, id, record, ...ctxArgs];
206
212
  }
@@ -220,12 +226,13 @@ export class CouchDBAdapter extends Adapter {
220
226
  const { ctxArgs } = this.logCtx(args, this.updateAllPrefix);
221
227
  const records = ids.map((id, count) => {
222
228
  const record = {};
223
- record[CouchDBKeys.TABLE] = tableName;
224
- record[CouchDBKeys.ID] = this.generateId(tableName, id);
225
229
  const rev = models[count][PersistenceKeys.METADATA];
226
230
  if (!rev)
227
231
  throw new InternalError(`No revision number found for record with id ${id}`);
228
232
  Object.assign(record, models[count]);
233
+ // Discriminator fields set AFTER Object.assign (see createPrefix).
234
+ record[CouchDBKeys.TABLE] = tableName;
235
+ record[CouchDBKeys.ID] = this.generateId(tableName, id);
229
236
  record[CouchDBKeys.REV] = rev;
230
237
  return record;
231
238
  });
@@ -267,7 +274,13 @@ export class CouchDBAdapter extends Adapter {
267
274
  * @return {boolean} True if the attribute is reserved, false otherwise
268
275
  */
269
276
  isReserved(attr) {
270
- return !!attr.match(reservedAttributes);
277
+ if (attr.match(reservedAttributes))
278
+ return true;
279
+ // Block the internal discriminator markers this adapter uses to route
280
+ // documents to tables. Allowing a model property to map to these (e.g.
281
+ // via @column("??table")) would let a crafted record forge its table
282
+ // membership and leak into another table's query results.
283
+ return attr === CouchDBKeys.TABLE || attr === CouchDBKeys.SEQUENCE;
271
284
  }
272
285
  /**
273
286
  * @description Static method to parse an error and convert it to a BaseError
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/adapter.ts"],"names":[],"mappings":"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"}
package/lib/esm/index.js CHANGED
@@ -20,21 +20,21 @@ export * from "./views/index.js";
20
20
  * @summary The version string of the for-couchdb package
21
21
  * @const VERSION
22
22
  */
23
- export const VERSION = "0.14.1";
23
+ export const VERSION = "0.14.2";
24
24
  /**
25
25
  * @description Represents the current commit hash of the module build.
26
26
  * @summary Stores the current git commit hash for the package. The build replaces
27
27
  * the placeholder with the actual commit hash at publish time.
28
28
  * @const COMMIT
29
29
  */
30
- export const COMMIT = "8d4d67a";
30
+ export const COMMIT = "a039827";
31
31
  /**
32
32
  * @description Represents the full version string of the module.
33
33
  * @summary Stores the semver version and commit hash for the package.
34
34
  * The build replaces the placeholder with the actual `<version>-<commit>` value at publish time.
35
35
  * @const FULL_VERSION
36
36
  */
37
- export const FULL_VERSION = "0.14.1-8d4d67a";
37
+ export const FULL_VERSION = "0.14.2-a039827";
38
38
  /**
39
39
  * @description Stores the current package name
40
40
  * @summary The version string of the for-couchdb package
@@ -111,6 +111,12 @@ export class CouchDBStatement extends Statement {
111
111
  *
112
112
  * Statement-->>Statement: Return query
113
113
  */
114
+ toColumnName(attribute) {
115
+ if (attribute === CouchDBKeys.TABLE ||
116
+ attribute === CouchDBKeys.SEQUENCE)
117
+ return attribute;
118
+ return Model.columnName(this.fromSelector, attribute);
119
+ }
114
120
  build() {
115
121
  const log = this.log.for(this.build);
116
122
  this.manualAggregation = undefined;
@@ -128,7 +134,7 @@ export class CouchDBStatement extends Statement {
128
134
  selectors[CouchDBKeys.TABLE] = Model.tableName(this.fromSelector);
129
135
  const query = { selector: selectors };
130
136
  if (this.selectSelector)
131
- query.fields = this.selectSelector;
137
+ query.fields = this.selectSelector.map((f) => this.toColumnName(f));
132
138
  if (this.whereCondition) {
133
139
  const condition = this.parseCondition(Condition.and(this.whereCondition, Condition.attribute(CouchDBKeys.TABLE).eq(query.selector[CouchDBKeys.TABLE]))).selector;
134
140
  const selectorKeys = Object.keys(condition);
@@ -179,7 +185,7 @@ export class CouchDBStatement extends Statement {
179
185
  query.sort = query.sort || [];
180
186
  query.selector = query.selector || {};
181
187
  for (const [selectorKey, direction] of this.orderBySelectors) {
182
- const selector = selectorKey;
188
+ const selector = this.toColumnName(selectorKey);
183
189
  const rec = {};
184
190
  rec[selector] = direction;
185
191
  query.sort.push(rec);
@@ -296,20 +302,61 @@ export class CouchDBStatement extends Statement {
296
302
  if (rawInput?.aggregate && aggregator) {
297
303
  return this.executeAggregate(aggregator, ctx);
298
304
  }
299
- const results = await this.adapter.raw(rawInput, true, ctx);
300
- const processed = results.map((r) => this.processRecord(r, ctx));
305
+ // Scope the raw query to this statement's own table. build() does this for
306
+ // the execute() path; raw() must do the same so a caller cannot use it to
307
+ // dump or target documents belonging to other tables (cross-table leak).
308
+ const scoped = this.scopeToTable(rawInput);
309
+ const results = await this.adapter.raw(scoped, true, ctx);
310
+ // Manual aggregation needs reverted docs to compute the aggregate. The
311
+ // result is a computed value (not documents), so execute() returns it
312
+ // unchanged via hasAggregation().
301
313
  if (this.manualAggregation) {
314
+ const processed = results.map((r) => this.processRecord(r, ctx));
302
315
  const manualResult = this.executeManualAggregation(processed, this.manualAggregation, ctx);
303
316
  this.manualAggregation = undefined;
304
317
  return manualResult;
305
318
  }
319
+ // groupBy (without selectSelector) needs reverted docs to build groups.
320
+ // hasAggregation() is true for groupBy, so execute() returns this unchanged.
306
321
  if (!this.selectSelector && this.groupBySelectors?.length) {
322
+ const processed = results.map((r) => this.processRecord(r, ctx));
307
323
  return this.groupSelectResults(processed);
308
324
  }
309
325
  if (!this.selectSelector) {
310
- return (await this.applyAfterHandlersToResult(processed, ctx));
311
- }
312
- return results;
326
+ // Return raw docs and let execute() perform the single revert. The
327
+ // previous implementation reverted here AND in execute(), causing a
328
+ // double-revert that clobbered column-mapped fields (the second revert
329
+ // looked up column names on already-reverted model instances).
330
+ return results;
331
+ }
332
+ // selectSelector is set: process here (core Statement.raw() contract) and
333
+ // return model instances. execute() returns these unchanged.
334
+ const processor = (r) => this.processRecord(r, ctx);
335
+ if (Array.isArray(results)) {
336
+ const mapped = results.map(processor);
337
+ return (await this.applyAfterHandlersToResult(mapped, ctx));
338
+ }
339
+ const single = processor(results);
340
+ return (await this.applyAfterHandlersToResult(single, ctx));
341
+ }
342
+ /**
343
+ * @description Forces a raw Mango query to be scoped to this statement's table
344
+ * @summary Returns a copy of the input query whose selector includes the
345
+ * ??table discriminator set to the statement's own table, so a caller cannot
346
+ * read documents from other tables through raw(). Existing ??table selectors
347
+ * are overridden (never trusted from the caller).
348
+ * @param {MangoQuery} rawInput - The raw Mango query to scope
349
+ * @return {MangoQuery} A new Mango query scoped to this statement's table
350
+ */
351
+ scopeToTable(rawInput) {
352
+ if (!this.fromSelector)
353
+ return rawInput;
354
+ const tableName = Model.tableName(this.fromSelector);
355
+ const base = rawInput && typeof rawInput === "object" ? rawInput : {};
356
+ const selector = Object.assign({}, base.selector || {});
357
+ // Force the discriminator; a caller-supplied value is never trusted.
358
+ selector[CouchDBKeys.TABLE] = tableName;
359
+ return Object.assign({}, base, { selector });
313
360
  }
314
361
  /**
315
362
  * @description Parses a condition into a CouchDB Mango query selector
@@ -763,7 +810,7 @@ export class CouchDBStatement extends Statement {
763
810
  const range = prefixRange(comparison);
764
811
  return {
765
812
  selector: {
766
- [attr1]: {
813
+ [this.toColumnName(attr1)]: {
767
814
  [CouchDBOperator.BIGGER_EQ]: range.start,
768
815
  [CouchDBOperator.SMALLER]: range.end,
769
816
  },
@@ -777,14 +824,14 @@ export class CouchDBStatement extends Statement {
777
824
  throw new QueryError("ENDS_WITH requires a string comparison");
778
825
  return {
779
826
  selector: {
780
- [attr1]: {
827
+ [this.toColumnName(attr1)]: {
781
828
  [CouchDBOperator.REGEXP]: `${escapeRegExp(comparison)}$`,
782
829
  },
783
830
  },
784
831
  };
785
832
  }
786
833
  if (operator === Operator.BETWEEN) {
787
- const attr = attr1;
834
+ const attr = this.toColumnName(attr1);
788
835
  if (!Array.isArray(comparison) || comparison.length !== 2)
789
836
  throw new QueryError("BETWEEN operator requires [min, max] comparison");
790
837
  const [min, max] = comparison;
@@ -796,14 +843,14 @@ export class CouchDBStatement extends Statement {
796
843
  }
797
844
  let op = {};
798
845
  if ([GroupOperator.AND, GroupOperator.OR, Operator.NOT].indexOf(operator) === -1) {
799
- op[attr1] = {};
800
- op[attr1][translateOperators(operator)] =
801
- comparison;
846
+ const attr = this.toColumnName(attr1);
847
+ op[attr] = {};
848
+ op[attr][translateOperators(operator)] = comparison;
802
849
  }
803
850
  else if (operator === Operator.NOT) {
804
851
  op = this.parseCondition(attr1).selector;
805
852
  op[translateOperators(Operator.NOT)] = {};
806
- op[translateOperators(Operator.NOT)][attr1.attr1] = comparison;
853
+ op[translateOperators(Operator.NOT)][this.toColumnName(attr1.attr1)] = comparison;
807
854
  }
808
855
  else {
809
856
  const op1 = this.parseCondition(attr1).selector;