@decaf-ts/for-couchdb 0.3.1 → 0.3.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.
Files changed (61) hide show
  1. package/LICENSE.md +646 -144
  2. package/README.md +371 -1
  3. package/dist/for-couchdb.cjs +733 -24
  4. package/dist/for-couchdb.esm.cjs +733 -24
  5. package/lib/adapter.cjs +186 -1
  6. package/lib/adapter.d.ts +234 -0
  7. package/lib/constants.cjs +29 -1
  8. package/lib/constants.d.ts +28 -0
  9. package/lib/errors.cjs +18 -1
  10. package/lib/errors.d.ts +17 -0
  11. package/lib/esm/adapter.d.ts +234 -0
  12. package/lib/esm/adapter.js +186 -1
  13. package/lib/esm/constants.d.ts +28 -0
  14. package/lib/esm/constants.js +29 -1
  15. package/lib/esm/errors.d.ts +17 -0
  16. package/lib/esm/errors.js +18 -1
  17. package/lib/esm/index.d.ts +6 -13
  18. package/lib/esm/index.js +7 -14
  19. package/lib/esm/indexes/generator.d.ts +47 -0
  20. package/lib/esm/indexes/generator.js +58 -1
  21. package/lib/esm/interfaces/CouchDBRepository.d.ts +10 -0
  22. package/lib/esm/interfaces/CouchDBRepository.js +1 -1
  23. package/lib/esm/model/CouchDBSequence.d.ts +19 -0
  24. package/lib/esm/model/CouchDBSequence.js +12 -1
  25. package/lib/esm/query/Paginator.d.ts +111 -0
  26. package/lib/esm/query/Paginator.js +117 -8
  27. package/lib/esm/query/Statement.d.ts +134 -0
  28. package/lib/esm/query/Statement.js +143 -1
  29. package/lib/esm/query/constants.d.ts +42 -0
  30. package/lib/esm/query/constants.js +43 -1
  31. package/lib/esm/query/translate.d.ts +31 -0
  32. package/lib/esm/query/translate.js +32 -1
  33. package/lib/esm/sequences/Sequence.d.ts +0 -2
  34. package/lib/esm/sequences/Sequence.js +2 -4
  35. package/lib/esm/types.d.ts +55 -12
  36. package/lib/esm/types.js +1 -1
  37. package/lib/esm/utils.d.ts +105 -0
  38. package/lib/esm/utils.js +106 -1
  39. package/lib/index.cjs +7 -14
  40. package/lib/index.d.ts +6 -13
  41. package/lib/indexes/generator.cjs +58 -1
  42. package/lib/indexes/generator.d.ts +47 -0
  43. package/lib/interfaces/CouchDBRepository.cjs +1 -1
  44. package/lib/interfaces/CouchDBRepository.d.ts +10 -0
  45. package/lib/model/CouchDBSequence.cjs +12 -1
  46. package/lib/model/CouchDBSequence.d.ts +19 -0
  47. package/lib/query/Paginator.cjs +117 -8
  48. package/lib/query/Paginator.d.ts +111 -0
  49. package/lib/query/Statement.cjs +143 -1
  50. package/lib/query/Statement.d.ts +134 -0
  51. package/lib/query/constants.cjs +43 -1
  52. package/lib/query/constants.d.ts +42 -0
  53. package/lib/query/translate.cjs +32 -1
  54. package/lib/query/translate.d.ts +31 -0
  55. package/lib/sequences/Sequence.cjs +2 -4
  56. package/lib/sequences/Sequence.d.ts +0 -2
  57. package/lib/types.cjs +1 -1
  58. package/lib/types.d.ts +55 -12
  59. package/lib/utils.cjs +106 -1
  60. package/lib/utils.d.ts +105 -0
  61. package/package.json +2 -2
@@ -10,13 +10,11 @@ import { Sequence } from "@decaf-ts/core";
10
10
  *
11
11
  * @class CouchDBSequence
12
12
  * @implements Sequence
13
- *
14
- * @category Sequences
15
13
  */
16
14
  export class CouchDBSequence extends Sequence {
17
15
  constructor(options, adapter) {
18
16
  super(options);
19
- this.repo = Repository.forModel(Seq, adapter.flavour);
17
+ this.repo = Repository.forModel(Seq, adapter.alias);
20
18
  }
21
19
  /**
22
20
  * @summary Retrieves the current value for the sequence
@@ -109,4 +107,4 @@ export class CouchDBSequence extends Sequence {
109
107
  return range;
110
108
  }
111
109
  }
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VxdWVuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VxdWVuY2VzL1NlcXVlbmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLElBQUksR0FBRyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RSxPQUFPLEVBQVcsVUFBVSxFQUFtQixNQUFNLGdCQUFnQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUkxQzs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxPQUFPLGVBQWdCLFNBQVEsUUFBUTtJQUczQyxZQUNFLE9BQXdCLEVBQ3hCLE9BQTJDO1FBRTNDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsT0FBTztRQUNYLE1BQU0sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUN6QyxJQUFJLENBQUM7WUFDSCxNQUFNLFFBQVEsR0FBUSxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQWMsQ0FBQyxDQUFDO1lBQzNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBMEIsQ0FBQyxDQUFDO1FBQ3pELENBQUM7UUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxZQUFZLGFBQWEsRUFBRSxDQUFDO2dCQUMvQixJQUFJLE9BQU8sU0FBUyxLQUFLLFdBQVc7b0JBQ2xDLE1BQU0sSUFBSSxhQUFhLENBQ3JCLDJEQUEyRCxDQUM1RCxDQUFD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LENBQUM7UUFDRixNQUFNLEtBQUssR0FBaUMsRUFBRSxDQUFDO1FBQy9DLEtBQUssSUFBSSxDQUFDLEdBQVcsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUN4QyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxXQUFXLEdBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQVksQ0FBQyxDQUFDO1FBQ2hFLENBQUM7UUFDRCxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxLQUFLLElBQUk7WUFDbEMsTUFBTSxJQUFJLGFBQWEsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQ3JELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VxdWVuY2UgYXMgU2VxIH0gZnJvbSBcIi4uL21vZGVsL0NvdWNoREJTZXF1ZW5jZVwiO1xuaW1wb3J0IHsgSW50ZXJuYWxFcnJvciwgTm90Rm91bmRFcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgQWRhcHRlciwgUmVwb3NpdG9yeSwgU2VxdWVuY2VPcHRpb25zIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBTZXF1ZW5jZSB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgTWFuZ29RdWVyeSB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHsgQ291Y2hEQlJlcG9zaXRvcnkgfSBmcm9tIFwiLi4vaW50ZXJmYWNlc1wiO1xuXG4vKipcbiAqIEBzdW1tYXJ5IEFic3RyYWN0IGltcGxlbWVudGF0aW9uIG9mIGEgU2VxdWVuY2VcbiAqIEBkZXNjcmlwdGlvbiBwcm92aWRlcyB0aGUgYmFzaWMgZnVuY3Rpb25hbGl0eSBmb3Ige0BsaW5rIFNlcXVlbmNlfXNcbiAqXG4gKiBAcGFyYW0ge1NlcXVlbmNlT3B0aW9uc30gb3B0aW9uc1xuICpcbiAqIEBjbGFzcyBDb3VjaERCU2VxdWVuY2VcbiAqIEBpbXBsZW1lbnRzIFNlcXVlbmNlXG4gKlxuICogQGNhdGVnb3J5IFNlcXVlbmNlc1xuICovXG5leHBvcnQgY2xhc3MgQ291Y2hEQlNlcXVlbmNlIGV4dGVuZHMgU2VxdWVuY2Uge1xuICBwcm90ZWN0ZWQgcmVwbzogQ291Y2hEQlJlcG9zaXRvcnk8U2VxLCBhbnksIGFueSwgYW55PjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBvcHRpb25zOiBTZXF1ZW5jZU9wdGlvbnMsXG4gICAgYWRhcHRlcjogQWRhcHRlcjxhbnksIE1hbmdvUXVlcnksIGFueSwgYW55PlxuICApIHtcbiAgICBzdXBlcihvcHRpb25zKTtcbiAgICB0aGlzLnJlcG8gPSBSZXBvc2l0b3J5LmZvck1vZGVsKFNlcSwgYWRhcHRlci5mbGF2b3VyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBSZXRyaWV2ZXMgdGhlIGN1cnJlbnQgdmFsdWUgZm9yIHRoZSBzZXF1ZW5jZVxuICAgKiBAcHJvdGVjdGVkXG4gICAqL1xuICBhc3luYyBjdXJyZW50KCk6IFByb21pc2U8c3RyaW5nIHwgbnVtYmVyIHwgYmlnaW50PiB7XG4gICAgY29uc3QgeyBuYW1lLCBzdGFydFdpdGggfSA9IHRoaXMub3B0aW9ucztcbiAgICB0cnkge1xuICAgICAgY29uc3Qgc2VxdWVuY2U6IFNlcSA9IGF3YWl0IHRoaXMucmVwby5yZWFkKG5hbWUgYXMgc3RyaW5nKTtcbiAgICAgIHJldHVybiB0aGlzLnBhcnNlKHNlcXVlbmNlLmN1cnJlbnQgYXMgc3RyaW5nIHwgbnVtYmVyKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIGlmIChlIGluc3RhbmNlb2YgTm90Rm91bmRFcnJvcikge1xuICAgICAgICBpZiAodHlwZW9mIHN0YXJ0V2l0aCA9PT0gXCJ1bmRlZmluZWRcIilcbiAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgICAgIFwiU3RhcnRpbmcgdmFsdWUgaXMgbm90IGRlZmluZWQgZm9yIGEgbm9uIGV4aXN0aW5nIHNlcXVlbmNlXCJcbiAgICAgICAgICApO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiB0aGlzLnBhcnNlKHN0YXJ0V2l0aCk7XG4gICAgICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgICAgIGBGYWlsZWQgdG8gcGFyc2UgaW5pdGlhbCB2YWx1ZSBmb3Igc2VxdWVuY2UgJHtzdGFydFdpdGh9OiAke2V9YFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICBgRmFpbGVkIHRvIHJldHJpZXZlIGN1cnJlbnQgdmFsdWUgZm9yIHNlcXVlbmNlICR7bmFtZX06ICR7ZX1gXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBQYXJzZXMgdGhlIHtAbGluayBTZXF1ZW5jZX0gdmFsdWVcbiAgICpcbiAgICogQHByb3RlY3RlZFxuICAgKiBAcGFyYW0gdmFsdWVcbiAgICovXG4gIHByaXZhdGUgcGFyc2UodmFsdWU6IHN0cmluZyB8IG51bWJlciB8IGJpZ2ludCk6IHN0cmluZyB8IG51bWJlciB8IGJpZ2ludCB7XG4gICAgcmV0dXJuIFNlcXVlbmNlLnBhcnNlVmFsdWUodGhpcy5vcHRpb25zLnR5cGUsIHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBpbmNyZW1lbnRzIHRoZSBzZXF1ZW5jZVxuICAgKiBAZGVzY3JpcHRpb24gU2VxdWVuY2Ugc3BlY2lmaWMgaW1wbGVtZW50YXRpb25cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudW1iZXIgfCBiaWdpbnR9IGN1cnJlbnRcbiAgICogQHBhcmFtIGNvdW50XG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgaW5jcmVtZW50KFxuICAgIGN1cnJlbnQ6IHN0cmluZyB8IG51bWJlciB8IGJpZ2ludCxcbiAgICBjb3VudD86IG51bWJlclxuICApOiBQcm9taXNlPHN0cmluZyB8IG51bWJlciB8IGJpZ2ludD4ge1xuICAgIGNvbnN0IHsgdHlwZSwgaW5jcmVtZW50QnksIG5hbWUgfSA9IHRoaXMub3B0aW9ucztcbiAgICBsZXQgbmV4dDogc3RyaW5nIHwgbnVtYmVyIHwgYmlnaW50O1xuICAgIGNvbnN0IHRvSW5jcmVtZW50QnkgPSBjb3VudCB8fCBpbmNyZW1lbnRCeTtcbiAgICBpZiAodG9JbmNyZW1lbnRCeSAlIGluY3JlbWVudEJ5ICE9PSAwKVxuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgIGBWYWx1ZSB0byBpbmNyZW1lbnQgZG9lcyBub3QgY29uc2lkZXIgdGhlIGluY3JlbWVudEJ5IHNldHRpbmc6ICR7aW5jcmVtZW50Qnl9YFxuICAgICAgKTtcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgXCJOdW1iZXJcIjpcbiAgICAgICAgbmV4dCA9ICh0aGlzLnBhcnNlKGN1cnJlbnQpIGFzIG51bWJlcikgKyB0b0luY3JlbWVudEJ5O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJCaWdJbnRcIjpcbiAgICAgICAgbmV4dCA9ICh0aGlzLnBhcnNlKGN1cnJlbnQpIGFzIGJpZ2ludCkgKyBCaWdJbnQodG9JbmNyZW1lbnRCeSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJTaG91bGQgbmV2ZXIgaGFwcGVuXCIpO1xuICAgIH1cbiAgICBsZXQgc2VxOiBTZXE7XG4gICAgdHJ5IHtcbiAgICAgIHNlcSA9IGF3YWl0IHRoaXMucmVwby51cGRhdGUobmV3IFNlcSh7IGlkOiBuYW1lLCBjdXJyZW50OiBuZXh0IH0pKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIGlmICghKGUgaW5zdGFuY2VvZiBOb3RGb3VuZEVycm9yKSkgdGhyb3cgZTtcbiAgICAgIHNlcSA9IGF3YWl0IHRoaXMucmVwby5jcmVhdGUobmV3IFNlcSh7IGlkOiBuYW1lLCBjdXJyZW50OiBuZXh0IH0pKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc2VxLmN1cnJlbnQgYXMgc3RyaW5nIHwgbnVtYmVyIHwgYmlnaW50O1xuICB9XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IEdlbmVyYXRlcyB0aGUgbmV4dCB2YWx1ZSBpbiB0aCBzZXF1ZW5jZVxuICAgKiBAZGVzY3JpcHRpb24gY2FsbHMge0BsaW5rIFNlcXVlbmNlI3BhcnNlfSBvbiB0aGUgY3VycmVudCB2YWx1ZVxuICAgKiBmb2xsb3dlZCBieSB7QGxpbmsgU2VxdWVuY2UjaW5jcmVtZW50fVxuICAgKlxuICAgKi9cbiAgYXN5bmMgbmV4dCgpOiBQcm9taXNlPG51bWJlciB8IHN0cmluZyB8IGJpZ2ludD4ge1xuICAgIGNvbnN0IGN1cnJlbnQgPSBhd2FpdCB0aGlzLmN1cnJlbnQoKTtcbiAgICByZXR1cm4gdGhpcy5pbmNyZW1lbnQoY3VycmVudCk7XG4gIH1cblxuICBhc3luYyByYW5nZShjb3VudDogbnVtYmVyKTogUHJvbWlzZTwobnVtYmVyIHwgc3RyaW5nIHwgYmlnaW50KVtdPiB7XG4gICAgY29uc3QgY3VycmVudCA9IChhd2FpdCB0aGlzLmN1cnJlbnQoKSkgYXMgbnVtYmVyO1xuICAgIGNvbnN0IGluY3JlbWVudEJ5ID0gdGhpcy5wYXJzZSh0aGlzLm9wdGlvbnMuaW5jcmVtZW50QnkpIGFzIG51bWJlcjtcbiAgICBjb25zdCBuZXh0OiBzdHJpbmcgfCBudW1iZXIgfCBiaWdpbnQgPSBhd2FpdCB0aGlzLmluY3JlbWVudChcbiAgICAgIGN1cnJlbnQsXG4gICAgICAodGhpcy5wYXJzZShjb3VudCkgYXMgbnVtYmVyKSAqIGluY3JlbWVudEJ5XG4gICAgKTtcbiAgICBjb25zdCByYW5nZTogKG51bWJlciB8IHN0cmluZyB8IGJpZ2ludClbXSA9IFtdO1xuICAgIGZvciAobGV0IGk6IG51bWJlciA9IDE7IGkgPD0gY291bnQ7IGkrKykge1xuICAgICAgcmFuZ2UucHVzaChjdXJyZW50ICsgaW5jcmVtZW50QnkgKiAodGhpcy5wYXJzZShpKSBhcyBudW1iZXIpKTtcbiAgICB9XG4gICAgaWYgKHJhbmdlW3JhbmdlLmxlbmd0aCAtIDFdICE9PSBuZXh0KVxuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJNaXNjYWxjdWxhdGlvbiBvZiByYW5nZVwiKTtcbiAgICByZXR1cm4gcmFuZ2U7XG4gIH1cbn1cbiJdfQ==
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VxdWVuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VxdWVuY2VzL1NlcXVlbmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLElBQUksR0FBRyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RSxPQUFPLEVBQVcsVUFBVSxFQUFtQixNQUFNLGdCQUFnQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUkxQzs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sT0FBTyxlQUFnQixTQUFRLFFBQVE7SUFHM0MsWUFDRSxPQUF3QixFQUN4QixPQUEyQztRQUUzQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLE9BQU87UUFDWCxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDekMsSUFBSSxDQUFDO1lBQ0gsTUFBTSxRQUFRLEdBQVEsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFjLENBQUMsQ0FBQztZQUMzRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQTBCLENBQUMsQ0FBQztRQUN6RCxDQUFDO1FBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsWUFBWSxhQUFhLEVBQUUsQ0FBQztnQkFDL0IsSUFBSSxPQUFPLFNBQVMsS0FBSyxXQUFXO29CQUNsQyxNQUFNLElBQUksYUFBYSxDQUNyQiwyREFBMkQsQ0FDNUQsQ0FBQztn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QUFDO1FBQ0YsTUFBTSxLQUFLLEdBQWlDLEVBQUUsQ0FBQztRQUMvQyxLQUFLLElBQUksQ0FBQyxHQUFXLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDeEMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsV0FBVyxHQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFZLENBQUMsQ0FBQztRQUNoRSxDQUFDO1FBQ0QsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsS0FBSyxJQUFJO1lBQ2xDLE1BQU0sSUFBSSxhQUFhLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUNyRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlcXVlbmNlIGFzIFNlcSB9IGZyb20gXCIuLi9tb2RlbC9Db3VjaERCU2VxdWVuY2VcIjtcbmltcG9ydCB7IEludGVybmFsRXJyb3IsIE5vdEZvdW5kRXJyb3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IEFkYXB0ZXIsIFJlcG9zaXRvcnksIFNlcXVlbmNlT3B0aW9ucyB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgU2VxdWVuY2UgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IE1hbmdvUXVlcnkgfSBmcm9tIFwiLi4vdHlwZXNcIjtcbmltcG9ydCB7IENvdWNoREJSZXBvc2l0b3J5IH0gZnJvbSBcIi4uL2ludGVyZmFjZXNcIjtcblxuLyoqXG4gKiBAc3VtbWFyeSBBYnN0cmFjdCBpbXBsZW1lbnRhdGlvbiBvZiBhIFNlcXVlbmNlXG4gKiBAZGVzY3JpcHRpb24gcHJvdmlkZXMgdGhlIGJhc2ljIGZ1bmN0aW9uYWxpdHkgZm9yIHtAbGluayBTZXF1ZW5jZX1zXG4gKlxuICogQHBhcmFtIHtTZXF1ZW5jZU9wdGlvbnN9IG9wdGlvbnNcbiAqXG4gKiBAY2xhc3MgQ291Y2hEQlNlcXVlbmNlXG4gKiBAaW1wbGVtZW50cyBTZXF1ZW5jZVxuICovXG5leHBvcnQgY2xhc3MgQ291Y2hEQlNlcXVlbmNlIGV4dGVuZHMgU2VxdWVuY2Uge1xuICBwcm90ZWN0ZWQgcmVwbzogQ291Y2hEQlJlcG9zaXRvcnk8U2VxLCBhbnksIGFueSwgYW55PjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBvcHRpb25zOiBTZXF1ZW5jZU9wdGlvbnMsXG4gICAgYWRhcHRlcjogQWRhcHRlcjxhbnksIE1hbmdvUXVlcnksIGFueSwgYW55PlxuICApIHtcbiAgICBzdXBlcihvcHRpb25zKTtcbiAgICB0aGlzLnJlcG8gPSBSZXBvc2l0b3J5LmZvck1vZGVsKFNlcSwgYWRhcHRlci5hbGlhcyk7XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgUmV0cmlldmVzIHRoZSBjdXJyZW50IHZhbHVlIGZvciB0aGUgc2VxdWVuY2VcbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgYXN5bmMgY3VycmVudCgpOiBQcm9taXNlPHN0cmluZyB8IG51bWJlciB8IGJpZ2ludD4ge1xuICAgIGNvbnN0IHsgbmFtZSwgc3RhcnRXaXRoIH0gPSB0aGlzLm9wdGlvbnM7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHNlcXVlbmNlOiBTZXEgPSBhd2FpdCB0aGlzLnJlcG8ucmVhZChuYW1lIGFzIHN0cmluZyk7XG4gICAgICByZXR1cm4gdGhpcy5wYXJzZShzZXF1ZW5jZS5jdXJyZW50IGFzIHN0cmluZyB8IG51bWJlcik7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICBpZiAoZSBpbnN0YW5jZW9mIE5vdEZvdW5kRXJyb3IpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBzdGFydFdpdGggPT09IFwidW5kZWZpbmVkXCIpXG4gICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgICAgICBcIlN0YXJ0aW5nIHZhbHVlIGlzIG5vdCBkZWZpbmVkIGZvciBhIG5vbiBleGlzdGluZyBzZXF1ZW5jZVwiXG4gICAgICAgICAgKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5wYXJzZShzdGFydFdpdGgpO1xuICAgICAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgICAgICBgRmFpbGVkIHRvIHBhcnNlIGluaXRpYWwgdmFsdWUgZm9yIHNlcXVlbmNlICR7c3RhcnRXaXRofTogJHtlfWBcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgYEZhaWxlZCB0byByZXRyaWV2ZSBjdXJyZW50IHZhbHVlIGZvciBzZXF1ZW5jZSAke25hbWV9OiAke2V9YFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgUGFyc2VzIHRoZSB7QGxpbmsgU2VxdWVuY2V9IHZhbHVlXG4gICAqXG4gICAqIEBwcm90ZWN0ZWRcbiAgICogQHBhcmFtIHZhbHVlXG4gICAqL1xuICBwcml2YXRlIHBhcnNlKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBiaWdpbnQpOiBzdHJpbmcgfCBudW1iZXIgfCBiaWdpbnQge1xuICAgIHJldHVybiBTZXF1ZW5jZS5wYXJzZVZhbHVlKHRoaXMub3B0aW9ucy50eXBlLCB2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgaW5jcmVtZW50cyB0aGUgc2VxdWVuY2VcbiAgICogQGRlc2NyaXB0aW9uIFNlcXVlbmNlIHNwZWNpZmljIGltcGxlbWVudGF0aW9uXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVtYmVyIHwgYmlnaW50fSBjdXJyZW50XG4gICAqIEBwYXJhbSBjb3VudFxuICAgKiBAcHJvdGVjdGVkXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGluY3JlbWVudChcbiAgICBjdXJyZW50OiBzdHJpbmcgfCBudW1iZXIgfCBiaWdpbnQsXG4gICAgY291bnQ/OiBudW1iZXJcbiAgKTogUHJvbWlzZTxzdHJpbmcgfCBudW1iZXIgfCBiaWdpbnQ+IHtcbiAgICBjb25zdCB7IHR5cGUsIGluY3JlbWVudEJ5LCBuYW1lIH0gPSB0aGlzLm9wdGlvbnM7XG4gICAgbGV0IG5leHQ6IHN0cmluZyB8IG51bWJlciB8IGJpZ2ludDtcbiAgICBjb25zdCB0b0luY3JlbWVudEJ5ID0gY291bnQgfHwgaW5jcmVtZW50Qnk7XG4gICAgaWYgKHRvSW5jcmVtZW50QnkgJSBpbmNyZW1lbnRCeSAhPT0gMClcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICBgVmFsdWUgdG8gaW5jcmVtZW50IGRvZXMgbm90IGNvbnNpZGVyIHRoZSBpbmNyZW1lbnRCeSBzZXR0aW5nOiAke2luY3JlbWVudEJ5fWBcbiAgICAgICk7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlIFwiTnVtYmVyXCI6XG4gICAgICAgIG5leHQgPSAodGhpcy5wYXJzZShjdXJyZW50KSBhcyBudW1iZXIpICsgdG9JbmNyZW1lbnRCeTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwiQmlnSW50XCI6XG4gICAgICAgIG5leHQgPSAodGhpcy5wYXJzZShjdXJyZW50KSBhcyBiaWdpbnQpICsgQmlnSW50KHRvSW5jcmVtZW50QnkpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiU2hvdWxkIG5ldmVyIGhhcHBlblwiKTtcbiAgICB9XG4gICAgbGV0IHNlcTogU2VxO1xuICAgIHRyeSB7XG4gICAgICBzZXEgPSBhd2FpdCB0aGlzLnJlcG8udXBkYXRlKG5ldyBTZXEoeyBpZDogbmFtZSwgY3VycmVudDogbmV4dCB9KSk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICBpZiAoIShlIGluc3RhbmNlb2YgTm90Rm91bmRFcnJvcikpIHRocm93IGU7XG4gICAgICBzZXEgPSBhd2FpdCB0aGlzLnJlcG8uY3JlYXRlKG5ldyBTZXEoeyBpZDogbmFtZSwgY3VycmVudDogbmV4dCB9KSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNlcS5jdXJyZW50IGFzIHN0cmluZyB8IG51bWJlciB8IGJpZ2ludDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBHZW5lcmF0ZXMgdGhlIG5leHQgdmFsdWUgaW4gdGggc2VxdWVuY2VcbiAgICogQGRlc2NyaXB0aW9uIGNhbGxzIHtAbGluayBTZXF1ZW5jZSNwYXJzZX0gb24gdGhlIGN1cnJlbnQgdmFsdWVcbiAgICogZm9sbG93ZWQgYnkge0BsaW5rIFNlcXVlbmNlI2luY3JlbWVudH1cbiAgICpcbiAgICovXG4gIGFzeW5jIG5leHQoKTogUHJvbWlzZTxudW1iZXIgfCBzdHJpbmcgfCBiaWdpbnQ+IHtcbiAgICBjb25zdCBjdXJyZW50ID0gYXdhaXQgdGhpcy5jdXJyZW50KCk7XG4gICAgcmV0dXJuIHRoaXMuaW5jcmVtZW50KGN1cnJlbnQpO1xuICB9XG5cbiAgYXN5bmMgcmFuZ2UoY291bnQ6IG51bWJlcik6IFByb21pc2U8KG51bWJlciB8IHN0cmluZyB8IGJpZ2ludClbXT4ge1xuICAgIGNvbnN0IGN1cnJlbnQgPSAoYXdhaXQgdGhpcy5jdXJyZW50KCkpIGFzIG51bWJlcjtcbiAgICBjb25zdCBpbmNyZW1lbnRCeSA9IHRoaXMucGFyc2UodGhpcy5vcHRpb25zLmluY3JlbWVudEJ5KSBhcyBudW1iZXI7XG4gICAgY29uc3QgbmV4dDogc3RyaW5nIHwgbnVtYmVyIHwgYmlnaW50ID0gYXdhaXQgdGhpcy5pbmNyZW1lbnQoXG4gICAgICBjdXJyZW50LFxuICAgICAgKHRoaXMucGFyc2UoY291bnQpIGFzIG51bWJlcikgKiBpbmNyZW1lbnRCeVxuICAgICk7XG4gICAgY29uc3QgcmFuZ2U6IChudW1iZXIgfCBzdHJpbmcgfCBiaWdpbnQpW10gPSBbXTtcbiAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAxOyBpIDw9IGNvdW50OyBpKyspIHtcbiAgICAgIHJhbmdlLnB1c2goY3VycmVudCArIGluY3JlbWVudEJ5ICogKHRoaXMucGFyc2UoaSkgYXMgbnVtYmVyKSk7XG4gICAgfVxuICAgIGlmIChyYW5nZVtyYW5nZS5sZW5ndGggLSAxXSAhPT0gbmV4dClcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiTWlzY2FsY3VsYXRpb24gb2YgcmFuZ2VcIik7XG4gICAgcmV0dXJuIHJhbmdlO1xuICB9XG59XG4iXX0=
@@ -1,5 +1,11 @@
1
- /** Mango response.
2
- * @see Docs: {@link https://docs.couchdb.org/en/latest/api/database/find.html#db-find} */
1
+ /**
2
+ * @description Response from a CouchDB Mango query
3
+ * @summary Contains the matching documents and additional metadata about the query execution
4
+ * @interface MangoResponse
5
+ * @template D - The document type
6
+ * @memberOf module:for-couchdb
7
+ * @see Docs: {@link https://docs.couchdb.org/en/latest/api/database/find.html#db-find}
8
+ */
3
9
  export interface MangoResponse<D> {
4
10
  /** Array of documents matching the search.
5
11
  *
@@ -18,8 +24,13 @@ export interface MangoResponse<D> {
18
24
  /** Basic execution statistics for a specific request. */
19
25
  execution_stats?: MangoExecutionStats;
20
26
  }
21
- /** Mango execution stats.
22
- * @see Docs: {@link http://docs.couchdb.org/en/latest/api/database/find.html#execution-statistics} */
27
+ /**
28
+ * @description Statistics about the execution of a Mango query
29
+ * @summary Provides detailed metrics about query execution including document and key examination counts
30
+ * @interface MangoExecutionStats
31
+ * @memberOf module:for-couchdb
32
+ * @see Docs: {@link http://docs.couchdb.org/en/latest/api/database/find.html#execution-statistics}
33
+ */
23
34
  export interface MangoExecutionStats {
24
35
  /** Number of index keys examined. Currently always 0. */
25
36
  total_keys_examined: number;
@@ -36,8 +47,13 @@ export interface MangoExecutionStats {
36
47
  /** Total execution time in milliseconds as measured by the database. */
37
48
  execution_time_ms: number;
38
49
  }
39
- /** Mango create index parameters.
40
- * @see Docs: {@link http://docs.couchdb.org/en/latest/api/database/find.html#db-index} */
50
+ /**
51
+ * @description Parameters for creating a CouchDB Mango index
52
+ * @summary Defines the structure and configuration for a new Mango index
53
+ * @interface CreateIndexRequest
54
+ * @memberOf module:for-couchdb
55
+ * @see Docs: {@link http://docs.couchdb.org/en/latest/api/database/find.html#db-index}
56
+ */
41
57
  export interface CreateIndexRequest {
42
58
  /** JSON object describing the index to create */
43
59
  index: {
@@ -57,20 +73,47 @@ export interface CreateIndexRequest {
57
73
  /** This field sets whether the created index will be a partitioned or global index. */
58
74
  partitioned?: boolean;
59
75
  }
76
+ /**
77
+ * @description Represents the possible value types in a Mango query
78
+ * @summary Union type of all possible value types that can be used in Mango queries
79
+ * @typedef {(number|string|Date|boolean|object|null)} MangoValue
80
+ * @memberOf module:for-couchdb
81
+ */
60
82
  export type MangoValue = number | string | Date | boolean | object | null;
83
+ /**
84
+ * @description Operators available in Mango queries
85
+ * @summary Union type of all possible operators that can be used in Mango queries
86
+ * @typedef {string} MangoOperator
87
+ * @memberOf module:for-couchdb
88
+ */
61
89
  export type MangoOperator = "$lt" | "$lte" | "$eq" | "$ne" | "$gte" | "$gt" | "$exists" | "$type" | "$in" | "$nin" | "$size" | "$mod" | "$regex" | "$or" | "$and" | "$nor" | "$not" | "$all" | "$allMatch" | "$elemMatch";
62
- /** Mango selector syntax.
63
- * @see Docs: {@link http://docs.couchdb.org/en/latest/api/database/find.html#selector-syntax} */
90
+ /**
91
+ * @description Represents a CouchDB Mango query selector
92
+ * @summary Type for defining query conditions in Mango queries
93
+ * @typedef {Object} MangoSelector
94
+ * @memberOf module:for-couchdb
95
+ * @see Docs: {@link http://docs.couchdb.org/en/latest/api/database/find.html#selector-syntax}
96
+ */
64
97
  export type MangoSelector = {
65
98
  [K in MangoOperator | string]: MangoSelector | MangoSelector[] | MangoValue | MangoValue[];
66
99
  };
67
- /** Mango sort syntax
68
- * @see Docs: {@link http://docs.couchdb.org/en/latest/api/database/find.html#sort-syntax} */
100
+ /**
101
+ * @description Represents a sort order specification in Mango queries
102
+ * @summary Type for defining sort order in Mango queries
103
+ * @typedef {(string|string[]|Object)} SortOrder
104
+ * @memberOf module:for-couchdb
105
+ * @see Docs: {@link http://docs.couchdb.org/en/latest/api/database/find.html#sort-syntax}
106
+ */
69
107
  export type SortOrder = string | string[] | {
70
108
  [key: string]: "asc" | "desc";
71
109
  };
72
- /** Mango query syntax.
73
- * @see Docs: {@link https://docs.couchdb.org/en/latest/api/database/find.html#db-find} */
110
+ /**
111
+ * @description Represents a CouchDB Mango query
112
+ * @summary Interface for defining complete Mango queries with selectors, sorting, pagination, and other options
113
+ * @interface MangoQuery
114
+ * @memberOf module:for-couchdb
115
+ * @see Docs: {@link https://docs.couchdb.org/en/latest/api/database/find.html#db-find}
116
+ */
74
117
  export interface MangoQuery {
75
118
  /** JSON object describing criteria used to select documents. */
76
119
  selector: MangoSelector;
package/lib/esm/types.js CHANGED
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBNYW5nbyByZXNwb25zZS5cbiAqIEBzZWUgRG9jczoge0BsaW5rIGh0dHBzOi8vZG9jcy5jb3VjaGRiLm9yZy9lbi9sYXRlc3QvYXBpL2RhdGFiYXNlL2ZpbmQuaHRtbCNkYi1maW5kfSAgKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWFuZ29SZXNwb25zZTxEPiB7XG4gIC8qKiBBcnJheSBvZiBkb2N1bWVudHMgbWF0Y2hpbmcgdGhlIHNlYXJjaC5cbiAgICpcbiAgICogSW4gZWFjaCBtYXRjaGluZyBkb2N1bWVudCwgdGhlIGZpZWxkcyBzcGVjaWZpZWQgaW4gdGhlIGZpZWxkcyBwYXJ0IG9mIHRoZSByZXF1ZXN0IGJvZHkgYXJlIGxpc3RlZCwgYWxvbmcgd2l0aFxuICAgKiB0aGVpciB2YWx1ZXMuICovXG4gIGRvY3M6IChEICYgeyBfaWQ6IHN0cmluZzsgX3Jldjogc3RyaW5nIH0pW107XG5cbiAgLyoqIEEgc3RyaW5nIHRoYXQgZW5hYmxlcyB5b3UgdG8gc3BlY2lmeSB3aGljaCBwYWdlIG9mIHJlc3VsdHMgeW91IHJlcXVpcmUuXG4gICAqXG4gICAqIFVzZWQgZm9yIHBhZ2luZyB0aHJvdWdoIHJlc3VsdCBzZXRzLiAqL1xuICBib29rbWFyaz86IHN0cmluZztcblxuICAvKiogRXhlY3V0aW9uIHdhcm5pbmdzICovXG4gIHdhcm5pbmc/OiBzdHJpbmc7XG5cbiAgLyoqIEJhc2ljIGV4ZWN1dGlvbiBzdGF0aXN0aWNzIGZvciBhIHNwZWNpZmljIHJlcXVlc3QuICovXG4gIGV4ZWN1dGlvbl9zdGF0cz86IE1hbmdvRXhlY3V0aW9uU3RhdHM7XG59XG5cbi8qKiBNYW5nbyBleGVjdXRpb24gc3RhdHMuXG4gKiBAc2VlIERvY3M6IHtAbGluayBodHRwOi8vZG9jcy5jb3VjaGRiLm9yZy9lbi9sYXRlc3QvYXBpL2RhdGFiYXNlL2ZpbmQuaHRtbCNleGVjdXRpb24tc3RhdGlzdGljc30gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWFuZ29FeGVjdXRpb25TdGF0cyB7XG4gIC8qKiBOdW1iZXIgb2YgaW5kZXgga2V5cyBleGFtaW5lZC4gQ3VycmVudGx5IGFsd2F5cyAwLiAqL1xuICB0b3RhbF9rZXlzX2V4YW1pbmVkOiBudW1iZXI7XG5cbiAgLyoqIE51bWJlciBvZiBkb2N1bWVudHMgZmV0Y2hlZCBmcm9tIHRoZSBkYXRhYmFzZSAvIGluZGV4LlxuICAgKlxuICAgKiBFcXVpdmFsZW50IHRvIHVzaW5nIGluY2x1ZGVfZG9jcyA9IHRydWUgaW4gYSB2aWV3LiAqL1xuICB0b3RhbF9kb2NzX2V4YW1pbmVkOiBudW1iZXI7XG5cbiAgLyoqIE51bWJlciBvZiBkb2N1bWVudHMgZmV0Y2hlZCBmcm9tIHRoZSBkYXRhYmFzZSB1c2luZyBhbiBvdXQtb2YtYmFuZCBkb2N1bWVudCBmZXRjaC5cbiAgICpcbiAgICogVGhpcyBpcyBvbmx5IG5vbi16ZXJvIHdoZW4gcmVhZCBxdW9ydW0gPiAxIGlzIHNwZWNpZmllZCBpbiB0aGUgcXVlcnkgcGFyYW1ldGVycy4gKi9cbiAgdG90YWxfcXVvcnVtX2RvY3NfZXhhbWluZWQ6IG51bWJlcjtcblxuICAvKiogTnVtYmVyIG9mIHJlc3VsdHMgcmV0dXJuZWQgZnJvbSB0aGUgcXVlcnkuICovXG4gIHJlc3VsdHNfcmV0dXJuZWQ6IG51bWJlcjtcblxuICAvKiogVG90YWwgZXhlY3V0aW9uIHRpbWUgaW4gbWlsbGlzZWNvbmRzIGFzIG1lYXN1cmVkIGJ5IHRoZSBkYXRhYmFzZS4gKi9cbiAgZXhlY3V0aW9uX3RpbWVfbXM6IG51bWJlcjtcbn1cblxuLyoqIE1hbmdvIGNyZWF0ZSBpbmRleCBwYXJhbWV0ZXJzLlxuICogQHNlZSBEb2NzOiB7QGxpbmsgaHR0cDovL2RvY3MuY291Y2hkYi5vcmcvZW4vbGF0ZXN0L2FwaS9kYXRhYmFzZS9maW5kLmh0bWwjZGItaW5kZXh9ICovXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZUluZGV4UmVxdWVzdCB7XG4gIC8qKiBKU09OIG9iamVjdCBkZXNjcmliaW5nIHRoZSBpbmRleCB0byBjcmVhdGUgKi9cbiAgaW5kZXg6IHtcbiAgICAvKiogQXJyYXkgb2YgZmllbGQgbmFtZXMgZm9sbG93aW5nIHRoZSBzb3J0IHN5bnRheC4gKi9cbiAgICBmaWVsZHM6IFNvcnRPcmRlcltdO1xuXG4gICAgLyoqIEEgc2VsZWN0b3IgdG8gYXBwbHkgdG8gZG9jdW1lbnRzIGF0IGluZGV4aW5nIHRpbWUsIGNyZWF0aW5nIGEgcGFydGlhbCBpbmRleC4gKi9cbiAgICBwYXJ0aWFsX2ZpbHRlcl9zZWxlY3Rvcj86IE1hbmdvU2VsZWN0b3I7XG4gIH07XG5cbiAgLyoqIE5hbWUgb2YgdGhlIGRlc2lnbiBkb2N1bWVudCBpbiB3aGljaCB0aGUgaW5kZXggd2lsbCBiZSBjcmVhdGVkLiAqL1xuICBkZG9jPzogc3RyaW5nO1xuXG4gIC8qKiBOYW1lIG9mIHRoZSBpbmRleC4gSWYgbm8gbmFtZSBpcyBwcm92aWRlZCwgYSBuYW1lIHdpbGwgYmUgZ2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkuICovXG4gIG5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqIENhbiBiZSBcImpzb25cIiBvciBcInRleHRcIi5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJqc29uXCIgKi9cbiAgdHlwZT86IFwianNvblwiIHwgXCJ0ZXh0XCI7XG5cbiAgLyoqIFRoaXMgZmllbGQgc2V0cyB3aGV0aGVyIHRoZSBjcmVhdGVkIGluZGV4IHdpbGwgYmUgYSBwYXJ0aXRpb25lZCBvciBnbG9iYWwgaW5kZXguICovXG4gIHBhcnRpdGlvbmVkPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgTWFuZ29WYWx1ZSA9IG51bWJlciB8IHN0cmluZyB8IERhdGUgfCBib29sZWFuIHwgb2JqZWN0IHwgbnVsbDtcbmV4cG9ydCB0eXBlIE1hbmdvT3BlcmF0b3IgPVxuICB8IFwiJGx0XCJcbiAgfCBcIiRsdGVcIlxuICB8IFwiJGVxXCJcbiAgfCBcIiRuZVwiXG4gIHwgXCIkZ3RlXCJcbiAgfCBcIiRndFwiXG4gIHwgXCIkZXhpc3RzXCJcbiAgfCBcIiR0eXBlXCJcbiAgfCBcIiRpblwiXG4gIHwgXCIkbmluXCJcbiAgfCBcIiRzaXplXCJcbiAgfCBcIiRtb2RcIlxuICB8IFwiJHJlZ2V4XCJcbiAgfCBcIiRvclwiXG4gIHwgXCIkYW5kXCJcbiAgfCBcIiRub3JcIlxuICB8IFwiJG5vdFwiXG4gIHwgXCIkYWxsXCJcbiAgfCBcIiRhbGxNYXRjaFwiXG4gIHwgXCIkZWxlbU1hdGNoXCI7XG4vKiogTWFuZ28gc2VsZWN0b3Igc3ludGF4LlxuICogQHNlZSBEb2NzOiB7QGxpbmsgaHR0cDovL2RvY3MuY291Y2hkYi5vcmcvZW4vbGF0ZXN0L2FwaS9kYXRhYmFzZS9maW5kLmh0bWwjc2VsZWN0b3Itc3ludGF4fSAqL1xuZXhwb3J0IHR5cGUgTWFuZ29TZWxlY3RvciA9IHtcbiAgW0sgaW4gTWFuZ29PcGVyYXRvciB8IHN0cmluZ106XG4gICAgfCBNYW5nb1NlbGVjdG9yXG4gICAgfCBNYW5nb1NlbGVjdG9yW11cbiAgICB8IE1hbmdvVmFsdWVcbiAgICB8IE1hbmdvVmFsdWVbXTtcbn07XG5cbi8qKiBNYW5nbyBzb3J0IHN5bnRheFxuICogQHNlZSBEb2NzOiB7QGxpbmsgaHR0cDovL2RvY3MuY291Y2hkYi5vcmcvZW4vbGF0ZXN0L2FwaS9kYXRhYmFzZS9maW5kLmh0bWwjc29ydC1zeW50YXh9ICovXG5leHBvcnQgdHlwZSBTb3J0T3JkZXIgPSBzdHJpbmcgfCBzdHJpbmdbXSB8IHsgW2tleTogc3RyaW5nXTogXCJhc2NcIiB8IFwiZGVzY1wiIH07XG5cbi8qKiBNYW5nbyBxdWVyeSBzeW50YXguXG4gKiBAc2VlIERvY3M6IHtAbGluayBodHRwczovL2RvY3MuY291Y2hkYi5vcmcvZW4vbGF0ZXN0L2FwaS9kYXRhYmFzZS9maW5kLmh0bWwjZGItZmluZH0gICovXG5leHBvcnQgaW50ZXJmYWNlIE1hbmdvUXVlcnkge1xuICAvKiogSlNPTiBvYmplY3QgZGVzY3JpYmluZyBjcml0ZXJpYSB1c2VkIHRvIHNlbGVjdCBkb2N1bWVudHMuICovXG4gIHNlbGVjdG9yOiBNYW5nb1NlbGVjdG9yO1xuXG4gIC8qKiBNYXhpbXVtIG51bWJlciBvZiByZXN1bHRzIHJldHVybmVkLiBAZGVmYXVsdCAyNSAqL1xuICBsaW1pdD86IG51bWJlcjtcblxuICAvKiogU2tpcCB0aGUgZmlyc3QgJ24nIHJlc3VsdHMsIHdoZXJlICduJyBpcyB0aGUgdmFsdWUgc3BlY2lmaWVkLiAqL1xuICBza2lwPzogbnVtYmVyO1xuXG4gIC8qKiBKU09OIGFycmF5IGZvbGxvd2luZyBzb3J0IHN5bnRheC4gKi9cbiAgc29ydD86IFNvcnRPcmRlcltdO1xuXG4gIC8qKiBKU09OIGFycmF5IHNwZWNpZnlpbmcgd2hpY2ggZmllbGRzIG9mIGVhY2ggb2JqZWN0IHNob3VsZCBiZSByZXR1cm5lZC5cbiAgICpcbiAgICogSWYgaXQgaXMgb21pdHRlZCwgdGhlIGVudGlyZSBvYmplY3QgaXMgcmV0dXJuZWQuXG4gICAqXG4gICAqIEBzZWUgRG9jczoge0BsaW5rIGh0dHA6Ly9kb2NzLmNvdWNoZGIub3JnL2VuL2xhdGVzdC9hcGkvZGF0YWJhc2UvZmluZC5odG1sI2ZpbHRlcmluZy1maWVsZHN9ICovXG4gIGZpZWxkcz86IHN0cmluZ1tdO1xuXG4gIC8qIEluc3RydWN0IGEgcXVlcnkgdG8gdXNlIGEgc3BlY2lmaWMgaW5kZXguXG4gICAqXG4gICAqIFNwZWNpZmllZCBlaXRoZXIgYXMgXCI8ZGVzaWduX2RvY3VtZW50PlwiIG9yIFtcIjxkZXNpZ25fZG9jdW1lbnQ+XCIsIFwiPGluZGV4X25hbWU+XCJdLiAqL1xuICB1c2VfaW5kZXg/OiBzdHJpbmcgfCBbc3RyaW5nLCBzdHJpbmddO1xuXG4gIC8qKiBSZWFkIHF1b3J1bSBuZWVkZWQgZm9yIHRoZSByZXN1bHQuXG4gICAqXG4gICAqIEBkZWZhdWx0IDEgKi9cbiAgcj86IG51bWJlcjtcblxuICAvKiogQSBzdHJpbmcgdGhhdCBlbmFibGVzIHlvdSB0byBzcGVjaWZ5IHdoaWNoIHBhZ2Ugb2YgcmVzdWx0cyB5b3UgcmVxdWlyZS5cbiAgICpcbiAgICogVXNlZCBmb3IgcGFnaW5nIHRocm91Z2ggcmVzdWx0IHNldHMuICovXG4gIGJvb2ttYXJrPzogc3RyaW5nO1xuXG4gIC8qKiBXaGV0aGVyIHRvIHVwZGF0ZSB0aGUgaW5kZXggcHJpb3IgdG8gcmV0dXJuaW5nIHRoZSByZXN1bHQuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWUgKi9cbiAgdXBkYXRlPzogYm9vbGVhbjtcblxuICAvKiogV2hldGhlciBvciBub3QgdGhlIHZpZXcgcmVzdWx0cyBzaG91bGQgYmUgcmV0dXJuZWQgZnJvbSBhIOKAnHN0YWJsZeKAnSBzZXQgb2Ygc2hhcmRzLiAqL1xuICBzdGFibGU/OiBib29sZWFuO1xuXG4gIC8qKiBDb21iaW5hdGlvbiBvZiB1cGRhdGUgPSBmYWxzZSBhbmQgc3RhYmxlID0gdHJ1ZSBvcHRpb25zLlxuICAgKlxuICAgKiBQb3NzaWJsZSBvcHRpb25zOiBcIm9rXCIsIGZhbHNlIChkZWZhdWx0KS4gKi9cbiAgc3RhbGU/OiBcIm9rXCIgfCBmYWxzZTtcblxuICAvKiogSW5jbHVkZSBleGVjdXRpb24gc3RhdGlzdGljcyBpbiB0aGUgcXVlcnkgcmVzcG9uc2UuXG4gICAqXG4gICAqIE9wdGlvbmFsLCBkZWZhdWx0OiBmYWxzZS4gKi9cbiAgZXhlY3V0aW9uX3N0YXRzPzogYm9vbGVhbjtcbn1cbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIGZyb20gYSBDb3VjaERCIE1hbmdvIHF1ZXJ5XG4gKiBAc3VtbWFyeSBDb250YWlucyB0aGUgbWF0Y2hpbmcgZG9jdW1lbnRzIGFuZCBhZGRpdGlvbmFsIG1ldGFkYXRhIGFib3V0IHRoZSBxdWVyeSBleGVjdXRpb25cbiAqIEBpbnRlcmZhY2UgTWFuZ29SZXNwb25zZVxuICogQHRlbXBsYXRlIEQgLSBUaGUgZG9jdW1lbnQgdHlwZVxuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItY291Y2hkYlxuICogQHNlZSBEb2NzOiB7QGxpbmsgaHR0cHM6Ly9kb2NzLmNvdWNoZGIub3JnL2VuL2xhdGVzdC9hcGkvZGF0YWJhc2UvZmluZC5odG1sI2RiLWZpbmR9XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWFuZ29SZXNwb25zZTxEPiB7XG4gIC8qKiBBcnJheSBvZiBkb2N1bWVudHMgbWF0Y2hpbmcgdGhlIHNlYXJjaC5cbiAgICpcbiAgICogSW4gZWFjaCBtYXRjaGluZyBkb2N1bWVudCwgdGhlIGZpZWxkcyBzcGVjaWZpZWQgaW4gdGhlIGZpZWxkcyBwYXJ0IG9mIHRoZSByZXF1ZXN0IGJvZHkgYXJlIGxpc3RlZCwgYWxvbmcgd2l0aFxuICAgKiB0aGVpciB2YWx1ZXMuICovXG4gIGRvY3M6IChEICYgeyBfaWQ6IHN0cmluZzsgX3Jldjogc3RyaW5nIH0pW107XG5cbiAgLyoqIEEgc3RyaW5nIHRoYXQgZW5hYmxlcyB5b3UgdG8gc3BlY2lmeSB3aGljaCBwYWdlIG9mIHJlc3VsdHMgeW91IHJlcXVpcmUuXG4gICAqXG4gICAqIFVzZWQgZm9yIHBhZ2luZyB0aHJvdWdoIHJlc3VsdCBzZXRzLiAqL1xuICBib29rbWFyaz86IHN0cmluZztcblxuICAvKiogRXhlY3V0aW9uIHdhcm5pbmdzICovXG4gIHdhcm5pbmc/OiBzdHJpbmc7XG5cbiAgLyoqIEJhc2ljIGV4ZWN1dGlvbiBzdGF0aXN0aWNzIGZvciBhIHNwZWNpZmljIHJlcXVlc3QuICovXG4gIGV4ZWN1dGlvbl9zdGF0cz86IE1hbmdvRXhlY3V0aW9uU3RhdHM7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFN0YXRpc3RpY3MgYWJvdXQgdGhlIGV4ZWN1dGlvbiBvZiBhIE1hbmdvIHF1ZXJ5XG4gKiBAc3VtbWFyeSBQcm92aWRlcyBkZXRhaWxlZCBtZXRyaWNzIGFib3V0IHF1ZXJ5IGV4ZWN1dGlvbiBpbmNsdWRpbmcgZG9jdW1lbnQgYW5kIGtleSBleGFtaW5hdGlvbiBjb3VudHNcbiAqIEBpbnRlcmZhY2UgTWFuZ29FeGVjdXRpb25TdGF0c1xuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItY291Y2hkYlxuICogQHNlZSBEb2NzOiB7QGxpbmsgaHR0cDovL2RvY3MuY291Y2hkYi5vcmcvZW4vbGF0ZXN0L2FwaS9kYXRhYmFzZS9maW5kLmh0bWwjZXhlY3V0aW9uLXN0YXRpc3RpY3N9XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWFuZ29FeGVjdXRpb25TdGF0cyB7XG4gIC8qKiBOdW1iZXIgb2YgaW5kZXgga2V5cyBleGFtaW5lZC4gQ3VycmVudGx5IGFsd2F5cyAwLiAqL1xuICB0b3RhbF9rZXlzX2V4YW1pbmVkOiBudW1iZXI7XG5cbiAgLyoqIE51bWJlciBvZiBkb2N1bWVudHMgZmV0Y2hlZCBmcm9tIHRoZSBkYXRhYmFzZSAvIGluZGV4LlxuICAgKlxuICAgKiBFcXVpdmFsZW50IHRvIHVzaW5nIGluY2x1ZGVfZG9jcyA9IHRydWUgaW4gYSB2aWV3LiAqL1xuICB0b3RhbF9kb2NzX2V4YW1pbmVkOiBudW1iZXI7XG5cbiAgLyoqIE51bWJlciBvZiBkb2N1bWVudHMgZmV0Y2hlZCBmcm9tIHRoZSBkYXRhYmFzZSB1c2luZyBhbiBvdXQtb2YtYmFuZCBkb2N1bWVudCBmZXRjaC5cbiAgICpcbiAgICogVGhpcyBpcyBvbmx5IG5vbi16ZXJvIHdoZW4gcmVhZCBxdW9ydW0gPiAxIGlzIHNwZWNpZmllZCBpbiB0aGUgcXVlcnkgcGFyYW1ldGVycy4gKi9cbiAgdG90YWxfcXVvcnVtX2RvY3NfZXhhbWluZWQ6IG51bWJlcjtcblxuICAvKiogTnVtYmVyIG9mIHJlc3VsdHMgcmV0dXJuZWQgZnJvbSB0aGUgcXVlcnkuICovXG4gIHJlc3VsdHNfcmV0dXJuZWQ6IG51bWJlcjtcblxuICAvKiogVG90YWwgZXhlY3V0aW9uIHRpbWUgaW4gbWlsbGlzZWNvbmRzIGFzIG1lYXN1cmVkIGJ5IHRoZSBkYXRhYmFzZS4gKi9cbiAgZXhlY3V0aW9uX3RpbWVfbXM6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gUGFyYW1ldGVycyBmb3IgY3JlYXRpbmcgYSBDb3VjaERCIE1hbmdvIGluZGV4XG4gKiBAc3VtbWFyeSBEZWZpbmVzIHRoZSBzdHJ1Y3R1cmUgYW5kIGNvbmZpZ3VyYXRpb24gZm9yIGEgbmV3IE1hbmdvIGluZGV4XG4gKiBAaW50ZXJmYWNlIENyZWF0ZUluZGV4UmVxdWVzdFxuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItY291Y2hkYlxuICogQHNlZSBEb2NzOiB7QGxpbmsgaHR0cDovL2RvY3MuY291Y2hkYi5vcmcvZW4vbGF0ZXN0L2FwaS9kYXRhYmFzZS9maW5kLmh0bWwjZGItaW5kZXh9XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlSW5kZXhSZXF1ZXN0IHtcbiAgLyoqIEpTT04gb2JqZWN0IGRlc2NyaWJpbmcgdGhlIGluZGV4IHRvIGNyZWF0ZSAqL1xuICBpbmRleDoge1xuICAgIC8qKiBBcnJheSBvZiBmaWVsZCBuYW1lcyBmb2xsb3dpbmcgdGhlIHNvcnQgc3ludGF4LiAqL1xuICAgIGZpZWxkczogU29ydE9yZGVyW107XG5cbiAgICAvKiogQSBzZWxlY3RvciB0byBhcHBseSB0byBkb2N1bWVudHMgYXQgaW5kZXhpbmcgdGltZSwgY3JlYXRpbmcgYSBwYXJ0aWFsIGluZGV4LiAqL1xuICAgIHBhcnRpYWxfZmlsdGVyX3NlbGVjdG9yPzogTWFuZ29TZWxlY3RvcjtcbiAgfTtcblxuICAvKiogTmFtZSBvZiB0aGUgZGVzaWduIGRvY3VtZW50IGluIHdoaWNoIHRoZSBpbmRleCB3aWxsIGJlIGNyZWF0ZWQuICovXG4gIGRkb2M/OiBzdHJpbmc7XG5cbiAgLyoqIE5hbWUgb2YgdGhlIGluZGV4LiBJZiBubyBuYW1lIGlzIHByb3ZpZGVkLCBhIG5hbWUgd2lsbCBiZSBnZW5lcmF0ZWQgYXV0b21hdGljYWxseS4gKi9cbiAgbmFtZT86IHN0cmluZztcblxuICAvKiogQ2FuIGJlIFwianNvblwiIG9yIFwidGV4dFwiLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcImpzb25cIiAqL1xuICB0eXBlPzogXCJqc29uXCIgfCBcInRleHRcIjtcblxuICAvKiogVGhpcyBmaWVsZCBzZXRzIHdoZXRoZXIgdGhlIGNyZWF0ZWQgaW5kZXggd2lsbCBiZSBhIHBhcnRpdGlvbmVkIG9yIGdsb2JhbCBpbmRleC4gKi9cbiAgcGFydGl0aW9uZWQ/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBSZXByZXNlbnRzIHRoZSBwb3NzaWJsZSB2YWx1ZSB0eXBlcyBpbiBhIE1hbmdvIHF1ZXJ5XG4gKiBAc3VtbWFyeSBVbmlvbiB0eXBlIG9mIGFsbCBwb3NzaWJsZSB2YWx1ZSB0eXBlcyB0aGF0IGNhbiBiZSB1c2VkIGluIE1hbmdvIHF1ZXJpZXNcbiAqIEB0eXBlZGVmIHsobnVtYmVyfHN0cmluZ3xEYXRlfGJvb2xlYW58b2JqZWN0fG51bGwpfSBNYW5nb1ZhbHVlXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmZvci1jb3VjaGRiXG4gKi9cbmV4cG9ydCB0eXBlIE1hbmdvVmFsdWUgPSBudW1iZXIgfCBzdHJpbmcgfCBEYXRlIHwgYm9vbGVhbiB8IG9iamVjdCB8IG51bGw7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIE9wZXJhdG9ycyBhdmFpbGFibGUgaW4gTWFuZ28gcXVlcmllc1xuICogQHN1bW1hcnkgVW5pb24gdHlwZSBvZiBhbGwgcG9zc2libGUgb3BlcmF0b3JzIHRoYXQgY2FuIGJlIHVzZWQgaW4gTWFuZ28gcXVlcmllc1xuICogQHR5cGVkZWYge3N0cmluZ30gTWFuZ29PcGVyYXRvclxuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItY291Y2hkYlxuICovXG5leHBvcnQgdHlwZSBNYW5nb09wZXJhdG9yID1cbiAgfCBcIiRsdFwiXG4gIHwgXCIkbHRlXCJcbiAgfCBcIiRlcVwiXG4gIHwgXCIkbmVcIlxuICB8IFwiJGd0ZVwiXG4gIHwgXCIkZ3RcIlxuICB8IFwiJGV4aXN0c1wiXG4gIHwgXCIkdHlwZVwiXG4gIHwgXCIkaW5cIlxuICB8IFwiJG5pblwiXG4gIHwgXCIkc2l6ZVwiXG4gIHwgXCIkbW9kXCJcbiAgfCBcIiRyZWdleFwiXG4gIHwgXCIkb3JcIlxuICB8IFwiJGFuZFwiXG4gIHwgXCIkbm9yXCJcbiAgfCBcIiRub3RcIlxuICB8IFwiJGFsbFwiXG4gIHwgXCIkYWxsTWF0Y2hcIlxuICB8IFwiJGVsZW1NYXRjaFwiO1xuLyoqXG4gKiBAZGVzY3JpcHRpb24gUmVwcmVzZW50cyBhIENvdWNoREIgTWFuZ28gcXVlcnkgc2VsZWN0b3JcbiAqIEBzdW1tYXJ5IFR5cGUgZm9yIGRlZmluaW5nIHF1ZXJ5IGNvbmRpdGlvbnMgaW4gTWFuZ28gcXVlcmllc1xuICogQHR5cGVkZWYge09iamVjdH0gTWFuZ29TZWxlY3RvclxuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItY291Y2hkYlxuICogQHNlZSBEb2NzOiB7QGxpbmsgaHR0cDovL2RvY3MuY291Y2hkYi5vcmcvZW4vbGF0ZXN0L2FwaS9kYXRhYmFzZS9maW5kLmh0bWwjc2VsZWN0b3Itc3ludGF4fVxuICovXG5leHBvcnQgdHlwZSBNYW5nb1NlbGVjdG9yID0ge1xuICBbSyBpbiBNYW5nb09wZXJhdG9yIHwgc3RyaW5nXTpcbiAgICB8IE1hbmdvU2VsZWN0b3JcbiAgICB8IE1hbmdvU2VsZWN0b3JbXVxuICAgIHwgTWFuZ29WYWx1ZVxuICAgIHwgTWFuZ29WYWx1ZVtdO1xufTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gUmVwcmVzZW50cyBhIHNvcnQgb3JkZXIgc3BlY2lmaWNhdGlvbiBpbiBNYW5nbyBxdWVyaWVzXG4gKiBAc3VtbWFyeSBUeXBlIGZvciBkZWZpbmluZyBzb3J0IG9yZGVyIGluIE1hbmdvIHF1ZXJpZXNcbiAqIEB0eXBlZGVmIHsoc3RyaW5nfHN0cmluZ1tdfE9iamVjdCl9IFNvcnRPcmRlclxuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItY291Y2hkYlxuICogQHNlZSBEb2NzOiB7QGxpbmsgaHR0cDovL2RvY3MuY291Y2hkYi5vcmcvZW4vbGF0ZXN0L2FwaS9kYXRhYmFzZS9maW5kLmh0bWwjc29ydC1zeW50YXh9XG4gKi9cbmV4cG9ydCB0eXBlIFNvcnRPcmRlciA9IHN0cmluZyB8IHN0cmluZ1tdIHwgeyBba2V5OiBzdHJpbmddOiBcImFzY1wiIHwgXCJkZXNjXCIgfTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gUmVwcmVzZW50cyBhIENvdWNoREIgTWFuZ28gcXVlcnlcbiAqIEBzdW1tYXJ5IEludGVyZmFjZSBmb3IgZGVmaW5pbmcgY29tcGxldGUgTWFuZ28gcXVlcmllcyB3aXRoIHNlbGVjdG9ycywgc29ydGluZywgcGFnaW5hdGlvbiwgYW5kIG90aGVyIG9wdGlvbnNcbiAqIEBpbnRlcmZhY2UgTWFuZ29RdWVyeVxuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItY291Y2hkYlxuICogQHNlZSBEb2NzOiB7QGxpbmsgaHR0cHM6Ly9kb2NzLmNvdWNoZGIub3JnL2VuL2xhdGVzdC9hcGkvZGF0YWJhc2UvZmluZC5odG1sI2RiLWZpbmR9XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWFuZ29RdWVyeSB7XG4gIC8qKiBKU09OIG9iamVjdCBkZXNjcmliaW5nIGNyaXRlcmlhIHVzZWQgdG8gc2VsZWN0IGRvY3VtZW50cy4gKi9cbiAgc2VsZWN0b3I6IE1hbmdvU2VsZWN0b3I7XG5cbiAgLyoqIE1heGltdW0gbnVtYmVyIG9mIHJlc3VsdHMgcmV0dXJuZWQuIEBkZWZhdWx0IDI1ICovXG4gIGxpbWl0PzogbnVtYmVyO1xuXG4gIC8qKiBTa2lwIHRoZSBmaXJzdCAnbicgcmVzdWx0cywgd2hlcmUgJ24nIGlzIHRoZSB2YWx1ZSBzcGVjaWZpZWQuICovXG4gIHNraXA/OiBudW1iZXI7XG5cbiAgLyoqIEpTT04gYXJyYXkgZm9sbG93aW5nIHNvcnQgc3ludGF4LiAqL1xuICBzb3J0PzogU29ydE9yZGVyW107XG5cbiAgLyoqIEpTT04gYXJyYXkgc3BlY2lmeWluZyB3aGljaCBmaWVsZHMgb2YgZWFjaCBvYmplY3Qgc2hvdWxkIGJlIHJldHVybmVkLlxuICAgKlxuICAgKiBJZiBpdCBpcyBvbWl0dGVkLCB0aGUgZW50aXJlIG9iamVjdCBpcyByZXR1cm5lZC5cbiAgICpcbiAgICogQHNlZSBEb2NzOiB7QGxpbmsgaHR0cDovL2RvY3MuY291Y2hkYi5vcmcvZW4vbGF0ZXN0L2FwaS9kYXRhYmFzZS9maW5kLmh0bWwjZmlsdGVyaW5nLWZpZWxkc30gKi9cbiAgZmllbGRzPzogc3RyaW5nW107XG5cbiAgLyogSW5zdHJ1Y3QgYSBxdWVyeSB0byB1c2UgYSBzcGVjaWZpYyBpbmRleC5cbiAgICpcbiAgICogU3BlY2lmaWVkIGVpdGhlciBhcyBcIjxkZXNpZ25fZG9jdW1lbnQ+XCIgb3IgW1wiPGRlc2lnbl9kb2N1bWVudD5cIiwgXCI8aW5kZXhfbmFtZT5cIl0uICovXG4gIHVzZV9pbmRleD86IHN0cmluZyB8IFtzdHJpbmcsIHN0cmluZ107XG5cbiAgLyoqIFJlYWQgcXVvcnVtIG5lZWRlZCBmb3IgdGhlIHJlc3VsdC5cbiAgICpcbiAgICogQGRlZmF1bHQgMSAqL1xuICByPzogbnVtYmVyO1xuXG4gIC8qKiBBIHN0cmluZyB0aGF0IGVuYWJsZXMgeW91IHRvIHNwZWNpZnkgd2hpY2ggcGFnZSBvZiByZXN1bHRzIHlvdSByZXF1aXJlLlxuICAgKlxuICAgKiBVc2VkIGZvciBwYWdpbmcgdGhyb3VnaCByZXN1bHQgc2V0cy4gKi9cbiAgYm9va21hcms/OiBzdHJpbmc7XG5cbiAgLyoqIFdoZXRoZXIgdG8gdXBkYXRlIHRoZSBpbmRleCBwcmlvciB0byByZXR1cm5pbmcgdGhlIHJlc3VsdC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZSAqL1xuICB1cGRhdGU/OiBib29sZWFuO1xuXG4gIC8qKiBXaGV0aGVyIG9yIG5vdCB0aGUgdmlldyByZXN1bHRzIHNob3VsZCBiZSByZXR1cm5lZCBmcm9tIGEg4oCcc3RhYmxl4oCdIHNldCBvZiBzaGFyZHMuICovXG4gIHN0YWJsZT86IGJvb2xlYW47XG5cbiAgLyoqIENvbWJpbmF0aW9uIG9mIHVwZGF0ZSA9IGZhbHNlIGFuZCBzdGFibGUgPSB0cnVlIG9wdGlvbnMuXG4gICAqXG4gICAqIFBvc3NpYmxlIG9wdGlvbnM6IFwib2tcIiwgZmFsc2UgKGRlZmF1bHQpLiAqL1xuICBzdGFsZT86IFwib2tcIiB8IGZhbHNlO1xuXG4gIC8qKiBJbmNsdWRlIGV4ZWN1dGlvbiBzdGF0aXN0aWNzIGluIHRoZSBxdWVyeSByZXNwb25zZS5cbiAgICpcbiAgICogT3B0aW9uYWwsIGRlZmF1bHQ6IGZhbHNlLiAqL1xuICBleGVjdXRpb25fc3RhdHM/OiBib29sZWFuO1xufVxuIl19
@@ -1,7 +1,112 @@
1
1
  import { OrderDirection } from "@decaf-ts/core";
2
2
  import { CreateIndexRequest } from "./types";
3
+ /**
4
+ * @description Re-authenticates a connection to CouchDB
5
+ * @summary Refreshes the authentication for a CouchDB connection using the provided credentials
6
+ * @param {any} con - The CouchDB connection object
7
+ * @param {string} user - The username for authentication
8
+ * @param {string} pass - The password for authentication
9
+ * @return {Promise<any>} A promise that resolves to the authentication result
10
+ * @function reAuth
11
+ * @memberOf module:for-couchdb
12
+ */
3
13
  export declare function reAuth(con: any, user: string, pass: string): Promise<any>;
14
+ /**
15
+ * @description Wraps a CouchDB database connection with automatic re-authentication
16
+ * @summary Creates a proxy around a CouchDB database connection that automatically re-authenticates before each operation
17
+ * @param {any} con - The CouchDB connection object
18
+ * @param {string} dbName - The name of the database to use
19
+ * @param {string} user - The username for authentication
20
+ * @param {string} pass - The password for authentication
21
+ * @return {any} The wrapped database connection object
22
+ * @function wrapDocumentScope
23
+ * @memberOf module:for-couchdb
24
+ * @mermaid
25
+ * sequenceDiagram
26
+ * participant Client
27
+ * participant wrapDocumentScope
28
+ * participant DB
29
+ * participant reAuth
30
+ *
31
+ * Client->>wrapDocumentScope: con, dbName, user, pass
32
+ * wrapDocumentScope->>DB: con.use(dbName)
33
+ * Note over wrapDocumentScope: Wrap DB methods with re-auth
34
+ *
35
+ * loop For each method (insert, get, put, destroy, find)
36
+ * wrapDocumentScope->>wrapDocumentScope: Store original method
37
+ * wrapDocumentScope->>wrapDocumentScope: Define new method with re-auth
38
+ * end
39
+ *
40
+ * wrapDocumentScope->>wrapDocumentScope: Add NATIVE property with con value
41
+ * wrapDocumentScope-->>Client: Return wrapped DB
42
+ *
43
+ * Note over Client: Later when client uses DB methods
44
+ * Client->>DB: Any wrapped method call
45
+ * DB->>reAuth: Authenticate before operation
46
+ * reAuth-->>DB: Authentication complete
47
+ * DB->>DB: Call original method
48
+ * DB-->>Client: Return result
49
+ */
4
50
  export declare function wrapDocumentScope(con: any, dbName: string, user: string, pass: string): any;
51
+ /**
52
+ * @description Tests if an attribute name is reserved in CouchDB
53
+ * @summary Checks if an attribute name starts with an underscore, which indicates it's a reserved attribute in CouchDB
54
+ * @param {string} attr - The attribute name to test
55
+ * @return {RegExpMatchArray|null} The match result or null if no match
56
+ * @function testReservedAttributes
57
+ * @memberOf module:for-couchdb
58
+ */
5
59
  export declare function testReservedAttributes(attr: string): RegExpMatchArray | null;
60
+ /**
61
+ * @description Generates a name for a CouchDB index
62
+ * @summary Creates a standardized name for a CouchDB index based on the table, attribute, compositions, and order
63
+ * @param {string} attribute - The primary attribute for the index
64
+ * @param {string} tableName - The name of the table
65
+ * @param {string[]} [compositions] - Optional additional attributes to include in the index
66
+ * @param {OrderDirection} [order] - Optional sort order for the index
67
+ * @param {string} [separator=DefaultSeparator] - The separator to use between parts of the index name
68
+ * @return {string} The generated index name
69
+ * @function generateIndexName
70
+ * @memberOf module:for-couchdb
71
+ */
6
72
  export declare function generateIndexName(attribute: string, tableName: string, compositions?: string[], order?: OrderDirection, separator?: string): string;
73
+ /**
74
+ * @description Generates a CouchDB index configuration
75
+ * @summary Creates a complete CreateIndexRequest object for defining a CouchDB index based on specified parameters
76
+ * @param {string} attribute - The primary attribute for the index
77
+ * @param {string} tableName - The name of the table
78
+ * @param {string[]} [compositions] - Optional additional attributes to include in the index
79
+ * @param {OrderDirection} [order] - Optional sort order for the index
80
+ * @param {string} [separator=DefaultSeparator] - The separator to use between parts of the index name
81
+ * @return {CreateIndexRequest} The complete index configuration object
82
+ * @function generateIndexDoc
83
+ * @memberOf module:for-couchdb
84
+ * @mermaid
85
+ * sequenceDiagram
86
+ * participant Caller
87
+ * participant generateIndexDoc
88
+ * participant generateIndexName
89
+ *
90
+ * Caller->>generateIndexDoc: attribute, tableName, compositions, order, separator
91
+ *
92
+ * Note over generateIndexDoc: Create partial filter selector
93
+ * generateIndexDoc->>generateIndexDoc: Set up filter for tableName
94
+ *
95
+ * alt order is specified
96
+ * Note over generateIndexDoc: Create ordered fields array
97
+ * generateIndexDoc->>generateIndexDoc: Create orderProp for attribute
98
+ * generateIndexDoc->>generateIndexDoc: Map compositions to ordered props
99
+ * generateIndexDoc->>generateIndexDoc: Create sortedTable for table field
100
+ * generateIndexDoc->>generateIndexDoc: Combine all ordered fields
101
+ * else
102
+ * Note over generateIndexDoc: Create simple fields array
103
+ * generateIndexDoc->>generateIndexDoc: Use attribute, compositions, and table as strings
104
+ * end
105
+ *
106
+ * generateIndexDoc->>generateIndexName: Generate index name
107
+ * generateIndexName-->>generateIndexDoc: Return name
108
+ *
109
+ * Note over generateIndexDoc: Create final index request
110
+ * generateIndexDoc-->>Caller: Return CreateIndexRequest
111
+ */
7
112
  export declare function generateIndexDoc(attribute: string, tableName: string, compositions?: string[], order?: OrderDirection, separator?: string): CreateIndexRequest;
package/lib/esm/utils.js CHANGED
@@ -2,9 +2,55 @@ import { PersistenceKeys } from "@decaf-ts/core";
2
2
  import { CouchDBKeys } from "./constants";
3
3
  import { DefaultSeparator } from "@decaf-ts/db-decorators";
4
4
  import { CouchDBOperator } from "./query/constants";
5
+ /**
6
+ * @description Re-authenticates a connection to CouchDB
7
+ * @summary Refreshes the authentication for a CouchDB connection using the provided credentials
8
+ * @param {any} con - The CouchDB connection object
9
+ * @param {string} user - The username for authentication
10
+ * @param {string} pass - The password for authentication
11
+ * @return {Promise<any>} A promise that resolves to the authentication result
12
+ * @function reAuth
13
+ * @memberOf module:for-couchdb
14
+ */
5
15
  export async function reAuth(con, user, pass) {
6
16
  return con.auth(user, pass);
7
17
  }
18
+ /**
19
+ * @description Wraps a CouchDB database connection with automatic re-authentication
20
+ * @summary Creates a proxy around a CouchDB database connection that automatically re-authenticates before each operation
21
+ * @param {any} con - The CouchDB connection object
22
+ * @param {string} dbName - The name of the database to use
23
+ * @param {string} user - The username for authentication
24
+ * @param {string} pass - The password for authentication
25
+ * @return {any} The wrapped database connection object
26
+ * @function wrapDocumentScope
27
+ * @memberOf module:for-couchdb
28
+ * @mermaid
29
+ * sequenceDiagram
30
+ * participant Client
31
+ * participant wrapDocumentScope
32
+ * participant DB
33
+ * participant reAuth
34
+ *
35
+ * Client->>wrapDocumentScope: con, dbName, user, pass
36
+ * wrapDocumentScope->>DB: con.use(dbName)
37
+ * Note over wrapDocumentScope: Wrap DB methods with re-auth
38
+ *
39
+ * loop For each method (insert, get, put, destroy, find)
40
+ * wrapDocumentScope->>wrapDocumentScope: Store original method
41
+ * wrapDocumentScope->>wrapDocumentScope: Define new method with re-auth
42
+ * end
43
+ *
44
+ * wrapDocumentScope->>wrapDocumentScope: Add NATIVE property with con value
45
+ * wrapDocumentScope-->>Client: Return wrapped DB
46
+ *
47
+ * Note over Client: Later when client uses DB methods
48
+ * Client->>DB: Any wrapped method call
49
+ * DB->>reAuth: Authenticate before operation
50
+ * reAuth-->>DB: Authentication complete
51
+ * DB->>DB: Call original method
52
+ * DB-->>Client: Return result
53
+ */
8
54
  export function wrapDocumentScope(con, dbName, user, pass) {
9
55
  const db = con.use(dbName);
10
56
  ["insert", "get", "put", "destroy", "find"].forEach((k) => {
@@ -26,10 +72,30 @@ export function wrapDocumentScope(con, dbName, user, pass) {
26
72
  });
27
73
  return db;
28
74
  }
75
+ /**
76
+ * @description Tests if an attribute name is reserved in CouchDB
77
+ * @summary Checks if an attribute name starts with an underscore, which indicates it's a reserved attribute in CouchDB
78
+ * @param {string} attr - The attribute name to test
79
+ * @return {RegExpMatchArray|null} The match result or null if no match
80
+ * @function testReservedAttributes
81
+ * @memberOf module:for-couchdb
82
+ */
29
83
  export function testReservedAttributes(attr) {
30
84
  const regexp = /^_.*$/g;
31
85
  return attr.match(regexp);
32
86
  }
87
+ /**
88
+ * @description Generates a name for a CouchDB index
89
+ * @summary Creates a standardized name for a CouchDB index based on the table, attribute, compositions, and order
90
+ * @param {string} attribute - The primary attribute for the index
91
+ * @param {string} tableName - The name of the table
92
+ * @param {string[]} [compositions] - Optional additional attributes to include in the index
93
+ * @param {OrderDirection} [order] - Optional sort order for the index
94
+ * @param {string} [separator=DefaultSeparator] - The separator to use between parts of the index name
95
+ * @return {string} The generated index name
96
+ * @function generateIndexName
97
+ * @memberOf module:for-couchdb
98
+ */
33
99
  export function generateIndexName(attribute, tableName, compositions, order, separator = DefaultSeparator) {
34
100
  const attr = [PersistenceKeys.INDEX, tableName, attribute];
35
101
  if (compositions)
@@ -38,6 +104,45 @@ export function generateIndexName(attribute, tableName, compositions, order, sep
38
104
  attr.push(order);
39
105
  return attr.join(separator);
40
106
  }
107
+ /**
108
+ * @description Generates a CouchDB index configuration
109
+ * @summary Creates a complete CreateIndexRequest object for defining a CouchDB index based on specified parameters
110
+ * @param {string} attribute - The primary attribute for the index
111
+ * @param {string} tableName - The name of the table
112
+ * @param {string[]} [compositions] - Optional additional attributes to include in the index
113
+ * @param {OrderDirection} [order] - Optional sort order for the index
114
+ * @param {string} [separator=DefaultSeparator] - The separator to use between parts of the index name
115
+ * @return {CreateIndexRequest} The complete index configuration object
116
+ * @function generateIndexDoc
117
+ * @memberOf module:for-couchdb
118
+ * @mermaid
119
+ * sequenceDiagram
120
+ * participant Caller
121
+ * participant generateIndexDoc
122
+ * participant generateIndexName
123
+ *
124
+ * Caller->>generateIndexDoc: attribute, tableName, compositions, order, separator
125
+ *
126
+ * Note over generateIndexDoc: Create partial filter selector
127
+ * generateIndexDoc->>generateIndexDoc: Set up filter for tableName
128
+ *
129
+ * alt order is specified
130
+ * Note over generateIndexDoc: Create ordered fields array
131
+ * generateIndexDoc->>generateIndexDoc: Create orderProp for attribute
132
+ * generateIndexDoc->>generateIndexDoc: Map compositions to ordered props
133
+ * generateIndexDoc->>generateIndexDoc: Create sortedTable for table field
134
+ * generateIndexDoc->>generateIndexDoc: Combine all ordered fields
135
+ * else
136
+ * Note over generateIndexDoc: Create simple fields array
137
+ * generateIndexDoc->>generateIndexDoc: Use attribute, compositions, and table as strings
138
+ * end
139
+ *
140
+ * generateIndexDoc->>generateIndexName: Generate index name
141
+ * generateIndexName-->>generateIndexDoc: Return name
142
+ *
143
+ * Note over generateIndexDoc: Create final index request
144
+ * generateIndexDoc-->>Caller: Return CreateIndexRequest
145
+ */
41
146
  export function generateIndexDoc(attribute, tableName, compositions, order, separator = DefaultSeparator) {
42
147
  const partialFilterSelector = {};
43
148
  partialFilterSelector[CouchDBKeys.TABLE] = {};
@@ -68,4 +173,4 @@ export function generateIndexDoc(attribute, tableName, compositions, order, sepa
68
173
  name: name,
69
174
  };
70
175
  }
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFrQixlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUdwRCxNQUFNLENBQUMsS0FBSyxVQUFVLE1BQU0sQ0FBQyxHQUFRLEVBQUUsSUFBWSxFQUFFLElBQVk7SUFDL0QsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztBQUM5QixDQUFDO0FBRUQsTUFBTSxVQUFVLGlCQUFpQixDQUMvQixHQUFRLEVBQ1IsTUFBYyxFQUNkLElBQVksRUFDWixJQUFZO0lBRVosTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzQixDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUN4RCxNQUFNLFFBQVEsR0FBSSxFQUEwQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hELE1BQU0sQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRTtZQUMzQixVQUFVLEVBQUUsS0FBSztZQUNqQixZQUFZLEVBQUUsSUFBSTtZQUNsQixLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBVyxFQUFFLEVBQUU7Z0JBQzlCLE1BQU0sTUFBTSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQzlCLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsR0FB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WCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9yZGVyRGlyZWN0aW9uLCBQZXJzaXN0ZW5jZUtleXMgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IENvdWNoREJLZXlzIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBEZWZhdWx0U2VwYXJhdG9yIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBDb3VjaERCT3BlcmF0b3IgfSBmcm9tIFwiLi9xdWVyeS9jb25zdGFudHNcIjtcbmltcG9ydCB7IENyZWF0ZUluZGV4UmVxdWVzdCwgTWFuZ29TZWxlY3RvciwgU29ydE9yZGVyIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlQXV0aChjb246IGFueSwgdXNlcjogc3RyaW5nLCBwYXNzOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGNvbi5hdXRoKHVzZXIsIHBhc3MpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gd3JhcERvY3VtZW50U2NvcGUoXG4gIGNvbjogYW55LFxuICBkYk5hbWU6IHN0cmluZyxcbiAgdXNlcjogc3RyaW5nLFxuICBwYXNzOiBzdHJpbmdcbik6IGFueSB7XG4gIGNvbnN0IGRiID0gY29uLnVzZShkYk5hbWUpO1xuICBbXCJpbnNlcnRcIiwgXCJnZXRcIiwgXCJwdXRcIiwgXCJkZXN0cm95XCIsIFwiZmluZFwiXS5mb3JFYWNoKChrKSA9PiB7XG4gICAgY29uc3Qgb3JpZ2luYWwgPSAoZGIgYXMgUmVjb3JkPHN0cmluZywgYW55Pilba107XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGRiLCBrLCB7XG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgIHZhbHVlOiBhc3luYyAoLi4uYXJnczogYW55W10pID0+IHtcbiAgICAgICAgYXdhaXQgcmVBdXRoKGNvbiwgdXNlciwgcGFzcyk7XG4gICAgICAgIHJldHVybiBvcmlnaW5hbC5jYWxsKGRiLCAuLi5hcmdzKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH0pO1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZGIsIENvdWNoREJLZXlzLk5BVElWRSwge1xuICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgd3JpdGFibGU6IGZhbHNlLFxuICAgIHZhbHVlOiBjb24sXG4gIH0pO1xuICByZXR1cm4gZGI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0ZXN0UmVzZXJ2ZWRBdHRyaWJ1dGVzKGF0dHI6IHN0cmluZykge1xuICBjb25zdCByZWdleHAgPSAvXl8uKiQvZztcbiAgcmV0dXJuIGF0dHIubWF0Y2gocmVnZXhwKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlSW5kZXhOYW1lKFxuICBhdHRyaWJ1dGU6IHN0cmluZyxcbiAgdGFibGVOYW1lOiBzdHJpbmcsXG4gIGNvbXBvc2l0aW9ucz86IHN0cmluZ1tdLFxuICBvcmRlcj86IE9yZGVyRGlyZWN0aW9uLFxuICBzZXBhcmF0b3IgPSBEZWZhdWx0U2VwYXJhdG9yXG4pOiBzdHJpbmcge1xuICBjb25zdCBhdHRyID0gW1BlcnNpc3RlbmNlS2V5cy5JTkRFWCwgdGFibGVOYW1lLCBhdHRyaWJ1dGVdO1xuICBpZiAoY29tcG9zaXRpb25zKSBhdHRyLnB1c2goLi4uY29tcG9zaXRpb25zKTtcbiAgaWYgKG9yZGVyKSBhdHRyLnB1c2gob3JkZXIpO1xuICByZXR1cm4gYXR0ci5qb2luKHNlcGFyYXRvcik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZUluZGV4RG9jKFxuICBhdHRyaWJ1dGU6IHN0cmluZyxcbiAgdGFibGVOYW1lOiBzdHJpbmcsXG4gIGNvbXBvc2l0aW9ucz86IHN0cmluZ1tdLFxuICBvcmRlcj86IE9yZGVyRGlyZWN0aW9uLFxuICBzZXBhcmF0b3IgPSBEZWZhdWx0U2VwYXJhdG9yXG4pOiBDcmVhdGVJbmRleFJlcXVlc3Qge1xuICBjb25zdCBwYXJ0aWFsRmlsdGVyU2VsZWN0b3I6IE1hbmdvU2VsZWN0b3IgPSB7fTtcbiAgcGFydGlhbEZpbHRlclNlbGVjdG9yW0NvdWNoREJLZXlzLlRBQkxFXSA9IHt9IGFzIE1hbmdvU2VsZWN0b3I7XG4gIChwYXJ0aWFsRmlsdGVyU2VsZWN0b3JbQ291Y2hEQktleXMuVEFCTEVdIGFzIE1hbmdvU2VsZWN0b3IpW1xuICAgIENvdWNoREJPcGVyYXRvci5FUVVBTFxuICBdID0gdGFibGVOYW1lO1xuICBsZXQgZmllbGRzOiBTb3J0T3JkZXJbXTtcbiAgaWYgKG9yZGVyKSB7XG4gICAgY29uc3Qgb3JkZXJQcm9wOiBTb3J0T3JkZXIgPSB7fTtcbiAgICBvcmRlclByb3BbYXR0cmlidXRlXSA9IG9yZGVyIGFzIFwiYXNjXCIgfCBcImRlc2NcIjtcbiAgICBjb25zdCBzb3J0ZWRDb21wb3NpdGlvbnM6IFNvcnRPcmRlcltdID0gKGNvbXBvc2l0aW9ucyB8fCBbXSkubWFwKChjKSA9PiB7XG4gICAgICBjb25zdCByOiBTb3J0T3JkZXIgPSB7fTtcbiAgICAgIHJbY10gPSBvcmRlciBhcyBcImFzY1wiIHwgXCJkZXNjXCI7XG4gICAgICByZXR1cm4gcjtcbiAgICB9KTtcbiAgICBjb25zdCBzb3J0ZWRUYWJsZTogU29ydE9yZGVyID0ge307XG4gICAgc29ydGVkVGFibGVbQ291Y2hEQktleXMuVEFCTEVdID0gb3JkZXIgYXMgXCJhc2NcIiB8IFwiZGVzY1wiO1xuICAgIGZpZWxkcyA9IFtvcmRlclByb3AsIC4uLnNvcnRlZENvbXBvc2l0aW9ucywgc29ydGVkVGFibGVdO1xuICB9IGVsc2Uge1xuICAgIGZpZWxkcyA9IFthdHRyaWJ1dGUsIC4uLihjb21wb3NpdGlvbnMgfHwgW10pLCBDb3VjaERCS2V5cy5UQUJMRV07XG4gIH1cbiAgY29uc3QgbmFtZSA9IGdlbmVyYXRlSW5kZXhOYW1lKFxuICAgIGF0dHJpYnV0ZSxcbiAgICB0YWJsZU5hbWUsXG4gICAgY29tcG9zaXRpb25zLFxuICAgIG9yZGVyLFxuICAgIHNlcGFyYXRvclxuICApO1xuICByZXR1cm4ge1xuICAgIGluZGV4OiB7XG4gICAgICBmaWVsZHM6IGZpZWxkcyxcbiAgICAgIC8vIHBhcnRpYWxfZmlsdGVyX3NlbGVjdG9yOiBwYXJ0aWFsRmlsdGVyU2VsZWN0b3IsXG4gICAgfSxcbiAgICBkZG9jOiBbbmFtZSwgQ291Y2hEQktleXMuRERPQ10uam9pbihzZXBhcmF0b3IpLFxuICAgIG5hbWU6IG5hbWUsXG4gIH07XG59XG4iXX0=
176
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFrQixlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUdwRDs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLE1BQU0sQ0FBQyxHQUFRLEVBQUUsSUFBWSxFQUFFLElBQVk7SUFDL0QsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztBQUM5QixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUNHO0FBQ0gsTUFBTSxVQUFVLGlCQUFpQixDQUMvQixHQUFRLEVBQ1IsTUFBYyxFQUNkLElBQVksRUFDWixJQUFZO0lBRVosTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzQixDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUN4RCxNQUFNLFFBQVEsR0FBSSxFQUEwQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hELE1BQU0sQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRTtZQUMzQixVQUFVLEVBQUUsS0FBSztZQUNqQixZQUFZLEVBQUUsSUFBSTtZQUNsQixLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBVyxFQUFFLEVBQUU7Z0JBQzlCLE1BQU0sTUFBTSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVB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S0FBSyxFQUFFO1lBQ0wsTUFBTSxFQUFFLE1BQU07WUFDZCxrREFBa0Q7U0FDbkQ7UUFDRCxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDOUMsSUFBSSxFQUFFLElBQUk7S0FDWCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9yZGVyRGlyZWN0aW9uLCBQZXJzaXN0ZW5jZUtleXMgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IENvdWNoREJLZXlzIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBEZWZhdWx0U2VwYXJhdG9yIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBDb3VjaERCT3BlcmF0b3IgfSBmcm9tIFwiLi9xdWVyeS9jb25zdGFudHNcIjtcbmltcG9ydCB7IENyZWF0ZUluZGV4UmVxdWVzdCwgTWFuZ29TZWxlY3RvciwgU29ydE9yZGVyIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gUmUtYXV0aGVudGljYXRlcyBhIGNvbm5lY3Rpb24gdG8gQ291Y2hEQlxuICogQHN1bW1hcnkgUmVmcmVzaGVzIHRoZSBhdXRoZW50aWNhdGlvbiBmb3IgYSBDb3VjaERCIGNvbm5lY3Rpb24gdXNpbmcgdGhlIHByb3ZpZGVkIGNyZWRlbnRpYWxzXG4gKiBAcGFyYW0ge2FueX0gY29uIC0gVGhlIENvdWNoREIgY29ubmVjdGlvbiBvYmplY3RcbiAqIEBwYXJhbSB7c3RyaW5nfSB1c2VyIC0gVGhlIHVzZXJuYW1lIGZvciBhdXRoZW50aWNhdGlvblxuICogQHBhcmFtIHtzdHJpbmd9IHBhc3MgLSBUaGUgcGFzc3dvcmQgZm9yIGF1dGhlbnRpY2F0aW9uXG4gKiBAcmV0dXJuIHtQcm9taXNlPGFueT59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIHRoZSBhdXRoZW50aWNhdGlvbiByZXN1bHRcbiAqIEBmdW5jdGlvbiByZUF1dGhcbiAqIEBtZW1iZXJPZiBtb2R1bGU6Zm9yLWNvdWNoZGJcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlQXV0aChjb246IGFueSwgdXNlcjogc3RyaW5nLCBwYXNzOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGNvbi5hdXRoKHVzZXIsIHBhc3MpO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBXcmFwcyBhIENvdWNoREIgZGF0YWJhc2UgY29ubmVjdGlvbiB3aXRoIGF1dG9tYXRpYyByZS1hdXRoZW50aWNhdGlvblxuICogQHN1bW1hcnkgQ3JlYXRlcyBhIHByb3h5IGFyb3VuZCBhIENvdWNoREIgZGF0YWJhc2UgY29ubmVjdGlvbiB0aGF0IGF1dG9tYXRpY2FsbHkgcmUtYXV0aGVudGljYXRlcyBiZWZvcmUgZWFjaCBvcGVyYXRpb25cbiAqIEBwYXJhbSB7YW55fSBjb24gLSBUaGUgQ291Y2hEQiBjb25uZWN0aW9uIG9iamVjdFxuICogQHBhcmFtIHtzdHJpbmd9IGRiTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBkYXRhYmFzZSB0byB1c2VcbiAqIEBwYXJhbSB7c3RyaW5nfSB1c2VyIC0gVGhlIHVzZXJuYW1lIGZvciBhdXRoZW50aWNhdGlvblxuICogQHBhcmFtIHtzdHJpbmd9IHBhc3MgLSBUaGUgcGFzc3dvcmQgZm9yIGF1dGhlbnRpY2F0aW9uXG4gKiBAcmV0dXJuIHthbnl9IFRoZSB3cmFwcGVkIGRhdGFiYXNlIGNvbm5lY3Rpb24gb2JqZWN0XG4gKiBAZnVuY3Rpb24gd3JhcERvY3VtZW50U2NvcGVcbiAqIEBtZW1iZXJPZiBtb2R1bGU6Zm9yLWNvdWNoZGJcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgQ2xpZW50XG4gKiAgIHBhcnRpY2lwYW50IHdyYXBEb2N1bWVudFNjb3BlXG4gKiAgIHBhcnRpY2lwYW50IERCXG4gKiAgIHBhcnRpY2lwYW50IHJlQXV0aFxuICogICBcbiAqICAgQ2xpZW50LT4+d3JhcERvY3VtZW50U2NvcGU6IGNvbiwgZGJOYW1lLCB1c2VyLCBwYXNzXG4gKiAgIHdyYXBEb2N1bWVudFNjb3BlLT4+REI6IGNvbi51c2UoZGJOYW1lKVxuICogICBOb3RlIG92ZXIgd3JhcERvY3VtZW50U2NvcGU6IFdyYXAgREIgbWV0aG9kcyB3aXRoIHJlLWF1dGhcbiAqICAgXG4gKiAgIGxvb3AgRm9yIGVhY2ggbWV0aG9kIChpbnNlcnQsIGdldCwgcHV0LCBkZXN0cm95LCBmaW5kKVxuICogICAgIHdyYXBEb2N1bWVudFNjb3BlLT4+d3JhcERvY3VtZW50U2NvcGU6IFN0b3JlIG9yaWdpbmFsIG1ldGhvZFxuICogICAgIHdyYXBEb2N1bWVudFNjb3BlLT4+d3JhcERvY3VtZW50U2NvcGU6IERlZmluZSBuZXcgbWV0aG9kIHdpdGggcmUtYXV0aFxuICogICBlbmRcbiAqICAgXG4gKiAgIHdyYXBEb2N1bWVudFNjb3BlLT4+d3JhcERvY3VtZW50U2NvcGU6IEFkZCBOQVRJVkUgcHJvcGVydHkgd2l0aCBjb24gdmFsdWVcbiAqICAgd3JhcERvY3VtZW50U2NvcGUtLT4+Q2xpZW50OiBSZXR1cm4gd3JhcHBlZCBEQlxuICogICBcbiAqICAgTm90ZSBvdmVyIENsaWVudDogTGF0ZXIgd2hlbiBjbGllbnQgdXNlcyBEQiBtZXRob2RzXG4gKiAgIENsaWVudC0+PkRCOiBBbnkgd3JhcHBlZCBtZXRob2QgY2FsbFxuICogICBEQi0+PnJlQXV0aDogQXV0aGVudGljYXRlIGJlZm9yZSBvcGVyYXRpb25cbiAqICAgcmVBdXRoLS0+PkRCOiBBdXRoZW50aWNhdGlvbiBjb21wbGV0ZVxuICogICBEQi0+PkRCOiBDYWxsIG9yaWdpbmFsIG1ldGhvZFxuICogICBEQi0tPj5DbGllbnQ6IFJldHVybiByZXN1bHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdyYXBEb2N1bWVudFNjb3BlKFxuICBjb246IGFueSxcbiAgZGJOYW1lOiBzdHJpbmcsXG4gIHVzZXI6IHN0cmluZyxcbiAgcGFzczogc3RyaW5nXG4pOiBhbnkge1xuICBjb25zdCBkYiA9IGNvbi51c2UoZGJOYW1lKTtcbiAgW1wiaW5zZXJ0XCIsIFwiZ2V0XCIsIFwicHV0XCIsIFwiZGVzdHJveVwiLCBcImZpbmRcIl0uZm9yRWFjaCgoaykgPT4ge1xuICAgIGNvbnN0IG9yaWdpbmFsID0gKGRiIGFzIFJlY29yZDxzdHJpbmcsIGFueT4pW2tdO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkYiwgaywge1xuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICB2YWx1ZTogYXN5bmMgKC4uLmFyZ3M6IGFueVtdKSA9PiB7XG4gICAgICAgIGF3YWl0IHJlQXV0aChjb24sIHVzZXIsIHBhc3MpO1xuICAgICAgICByZXR1cm4gb3JpZ2luYWwuY2FsbChkYiwgLi4uYXJncyk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9KTtcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGRiLCBDb3VjaERCS2V5cy5OQVRJVkUsIHtcbiAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICB2YWx1ZTogY29uLFxuICB9KTtcbiAgcmV0dXJuIGRiO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBUZXN0cyBpZiBhbiBhdHRyaWJ1dGUgbmFtZSBpcyByZXNlcnZlZCBpbiBDb3VjaERCXG4gKiBAc3VtbWFyeSBDaGVja3MgaWYgYW4gYXR0cmlidXRlIG5hbWUgc3RhcnRzIHdpdGggYW4gdW5kZXJzY29yZSwgd2hpY2ggaW5kaWNhdGVzIGl0J3MgYSByZXNlcnZlZCBhdHRyaWJ1dGUgaW4gQ291Y2hEQlxuICogQHBhcmFtIHtzdHJpbmd9IGF0dHIgLSBUaGUgYXR0cmlidXRlIG5hbWUgdG8gdGVzdFxuICogQHJldHVybiB7UmVnRXhwTWF0Y2hBcnJheXxudWxsfSBUaGUgbWF0Y2ggcmVzdWx0IG9yIG51bGwgaWYgbm8gbWF0Y2hcbiAqIEBmdW5jdGlvbiB0ZXN0UmVzZXJ2ZWRBdHRyaWJ1dGVzXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmZvci1jb3VjaGRiXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0ZXN0UmVzZXJ2ZWRBdHRyaWJ1dGVzKGF0dHI6IHN0cmluZykge1xuICBjb25zdCByZWdleHAgPSAvXl8uKiQvZztcbiAgcmV0dXJuIGF0dHIubWF0Y2gocmVnZXhwKTtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gR2VuZXJhdGVzIGEgbmFtZSBmb3IgYSBDb3VjaERCIGluZGV4XG4gKiBAc3VtbWFyeSBDcmVhdGVzIGEgc3RhbmRhcmRpemVkIG5hbWUgZm9yIGEgQ291Y2hEQiBpbmRleCBiYXNlZCBvbiB0aGUgdGFibGUsIGF0dHJpYnV0ZSwgY29tcG9zaXRpb25zLCBhbmQgb3JkZXJcbiAqIEBwYXJhbSB7c3RyaW5nfSBhdHRyaWJ1dGUgLSBUaGUgcHJpbWFyeSBhdHRyaWJ1dGUgZm9yIHRoZSBpbmRleFxuICogQHBhcmFtIHtzdHJpbmd9IHRhYmxlTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSB0YWJsZVxuICogQHBhcmFtIHtzdHJpbmdbXX0gW2NvbXBvc2l0aW9uc10gLSBPcHRpb25hbCBhZGRpdGlvbmFsIGF0dHJpYnV0ZXMgdG8gaW5jbHVkZSBpbiB0aGUgaW5kZXhcbiAqIEBwYXJhbSB7T3JkZXJEaXJlY3Rpb259IFtvcmRlcl0gLSBPcHRpb25hbCBzb3J0IG9yZGVyIGZvciB0aGUgaW5kZXhcbiAqIEBwYXJhbSB7c3RyaW5nfSBbc2VwYXJhdG9yPURlZmF1bHRTZXBhcmF0b3JdIC0gVGhlIHNlcGFyYXRvciB0byB1c2UgYmV0d2VlbiBwYXJ0cyBvZiB0aGUgaW5kZXggbmFtZVxuICogQHJldHVybiB7c3RyaW5nfSBUaGUgZ2VuZXJhdGVkIGluZGV4IG5hbWVcbiAqIEBmdW5jdGlvbiBnZW5lcmF0ZUluZGV4TmFtZVxuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItY291Y2hkYlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVJbmRleE5hbWUoXG4gIGF0dHJpYnV0ZTogc3RyaW5nLFxuICB0YWJsZU5hbWU6IHN0cmluZyxcbiAgY29tcG9zaXRpb25zPzogc3RyaW5nW10sXG4gIG9yZGVyPzogT3JkZXJEaXJlY3Rpb24sXG4gIHNlcGFyYXRvciA9IERlZmF1bHRTZXBhcmF0b3Jcbik6IHN0cmluZyB7XG4gIGNvbnN0IGF0dHIgPSBbUGVyc2lzdGVuY2VLZXlzLklOREVYLCB0YWJsZU5hbWUsIGF0dHJpYnV0ZV07XG4gIGlmIChjb21wb3NpdGlvbnMpIGF0dHIucHVzaCguLi5jb21wb3NpdGlvbnMpO1xuICBpZiAob3JkZXIpIGF0dHIucHVzaChvcmRlcik7XG4gIHJldHVybiBhdHRyLmpvaW4oc2VwYXJhdG9yKTtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gR2VuZXJhdGVzIGEgQ291Y2hEQiBpbmRleCBjb25maWd1cmF0aW9uXG4gKiBAc3VtbWFyeSBDcmVhdGVzIGEgY29tcGxldGUgQ3JlYXRlSW5kZXhSZXF1ZXN0IG9iamVjdCBmb3IgZGVmaW5pbmcgYSBDb3VjaERCIGluZGV4IGJhc2VkIG9uIHNwZWNpZmllZCBwYXJhbWV0ZXJzXG4gKiBAcGFyYW0ge3N0cmluZ30gYXR0cmlidXRlIC0gVGhlIHByaW1hcnkgYXR0cmlidXRlIGZvciB0aGUgaW5kZXhcbiAqIEBwYXJhbSB7c3RyaW5nfSB0YWJsZU5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgdGFibGVcbiAqIEBwYXJhbSB7c3RyaW5nW119IFtjb21wb3NpdGlvbnNdIC0gT3B0aW9uYWwgYWRkaXRpb25hbCBhdHRyaWJ1dGVzIHRvIGluY2x1ZGUgaW4gdGhlIGluZGV4XG4gKiBAcGFyYW0ge09yZGVyRGlyZWN0aW9ufSBbb3JkZXJdIC0gT3B0aW9uYWwgc29ydCBvcmRlciBmb3IgdGhlIGluZGV4XG4gKiBAcGFyYW0ge3N0cmluZ30gW3NlcGFyYXRvcj1EZWZhdWx0U2VwYXJhdG9yXSAtIFRoZSBzZXBhcmF0b3IgdG8gdXNlIGJldHdlZW4gcGFydHMgb2YgdGhlIGluZGV4IG5hbWVcbiAqIEByZXR1cm4ge0NyZWF0ZUluZGV4UmVxdWVzdH0gVGhlIGNvbXBsZXRlIGluZGV4IGNvbmZpZ3VyYXRpb24gb2JqZWN0XG4gKiBAZnVuY3Rpb24gZ2VuZXJhdGVJbmRleERvY1xuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItY291Y2hkYlxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBDYWxsZXJcbiAqICAgcGFydGljaXBhbnQgZ2VuZXJhdGVJbmRleERvY1xuICogICBwYXJ0aWNpcGFudCBnZW5lcmF0ZUluZGV4TmFtZVxuICogICBcbiAqICAgQ2FsbGVyLT4+Z2VuZXJhdGVJbmRleERvYzogYXR0cmlidXRlLCB0YWJsZU5hbWUsIGNvbXBvc2l0aW9ucywgb3JkZXIsIHNlcGFyYXRvclxuICogICBcbiAqICAgTm90ZSBvdmVyIGdlbmVyYXRlSW5kZXhEb2M6IENyZWF0ZSBwYXJ0aWFsIGZpbHRlciBzZWxlY3RvclxuICogICBnZW5lcmF0ZUluZGV4RG9jLT4+Z2VuZXJhdGVJbmRleERvYzogU2V0IHVwIGZpbHRlciBmb3IgdGFibGVOYW1lXG4gKiAgIFxuICogICBhbHQgb3JkZXIgaXMgc3BlY2lmaWVkXG4gKiAgICAgTm90ZSBvdmVyIGdlbmVyYXRlSW5kZXhEb2M6IENyZWF0ZSBvcmRlcmVkIGZpZWxkcyBhcnJheVxuICogICAgIGdlbmVyYXRlSW5kZXhEb2MtPj5nZW5lcmF0ZUluZGV4RG9jOiBDcmVhdGUgb3JkZXJQcm9wIGZvciBhdHRyaWJ1dGVcbiAqICAgICBnZW5lcmF0ZUluZGV4RG9jLT4+Z2VuZXJhdGVJbmRleERvYzogTWFwIGNvbXBvc2l0aW9ucyB0byBvcmRlcmVkIHByb3BzXG4gKiAgICAgZ2VuZXJhdGVJbmRleERvYy0+PmdlbmVyYXRlSW5kZXhEb2M6IENyZWF0ZSBzb3J0ZWRUYWJsZSBmb3IgdGFibGUgZmllbGRcbiAqICAgICBnZW5lcmF0ZUluZGV4RG9jLT4+Z2VuZXJhdGVJbmRleERvYzogQ29tYmluZSBhbGwgb3JkZXJlZCBmaWVsZHNcbiAqICAgZWxzZVxuICogICAgIE5vdGUgb3ZlciBnZW5lcmF0ZUluZGV4RG9jOiBDcmVhdGUgc2ltcGxlIGZpZWxkcyBhcnJheVxuICogICAgIGdlbmVyYXRlSW5kZXhEb2MtPj5nZW5lcmF0ZUluZGV4RG9jOiBVc2UgYXR0cmlidXRlLCBjb21wb3NpdGlvbnMsIGFuZCB0YWJsZSBhcyBzdHJpbmdzXG4gKiAgIGVuZFxuICogICBcbiAqICAgZ2VuZXJhdGVJbmRleERvYy0+PmdlbmVyYXRlSW5kZXhOYW1lOiBHZW5lcmF0ZSBpbmRleCBuYW1lXG4gKiAgIGdlbmVyYXRlSW5kZXhOYW1lLS0+PmdlbmVyYXRlSW5kZXhEb2M6IFJldHVybiBuYW1lXG4gKiAgIFxuICogICBOb3RlIG92ZXIgZ2VuZXJhdGVJbmRleERvYzogQ3JlYXRlIGZpbmFsIGluZGV4IHJlcXVlc3RcbiAqICAgZ2VuZXJhdGVJbmRleERvYy0tPj5DYWxsZXI6IFJldHVybiBDcmVhdGVJbmRleFJlcXVlc3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlSW5kZXhEb2MoXG4gIGF0dHJpYnV0ZTogc3RyaW5nLFxuICB0YWJsZU5hbWU6IHN0cmluZyxcbiAgY29tcG9zaXRpb25zPzogc3RyaW5nW10sXG4gIG9yZGVyPzogT3JkZXJEaXJlY3Rpb24sXG4gIHNlcGFyYXRvciA9IERlZmF1bHRTZXBhcmF0b3Jcbik6IENyZWF0ZUluZGV4UmVxdWVzdCB7XG4gIGNvbnN0IHBhcnRpYWxGaWx0ZXJTZWxlY3RvcjogTWFuZ29TZWxlY3RvciA9IHt9O1xuICBwYXJ0aWFsRmlsdGVyU2VsZWN0b3JbQ291Y2hEQktleXMuVEFCTEVdID0ge30gYXMgTWFuZ29TZWxlY3RvcjtcbiAgKHBhcnRpYWxGaWx0ZXJTZWxlY3RvcltDb3VjaERCS2V5cy5UQUJMRV0gYXMgTWFuZ29TZWxlY3RvcilbXG4gICAgQ291Y2hEQk9wZXJhdG9yLkVRVUFMXG4gIF0gPSB0YWJsZU5hbWU7XG4gIGxldCBmaWVsZHM6IFNvcnRPcmRlcltdO1xuICBpZiAob3JkZXIpIHtcbiAgICBjb25zdCBvcmRlclByb3A6IFNvcnRPcmRlciA9IHt9O1xuICAgIG9yZGVyUHJvcFthdHRyaWJ1dGVdID0gb3JkZXIgYXMgXCJhc2NcIiB8IFwiZGVzY1wiO1xuICAgIGNvbnN0IHNvcnRlZENvbXBvc2l0aW9uczogU29ydE9yZGVyW10gPSAoY29tcG9zaXRpb25zIHx8IFtdKS5tYXAoKGMpID0+IHtcbiAgICAgIGNvbnN0IHI6IFNvcnRPcmRlciA9IHt9O1xuICAgICAgcltjXSA9IG9yZGVyIGFzIFwiYXNjXCIgfCBcImRlc2NcIjtcbiAgICAgIHJldHVybiByO1xuICAgIH0pO1xuICAgIGNvbnN0IHNvcnRlZFRhYmxlOiBTb3J0T3JkZXIgPSB7fTtcbiAgICBzb3J0ZWRUYWJsZVtDb3VjaERCS2V5cy5UQUJMRV0gPSBvcmRlciBhcyBcImFzY1wiIHwgXCJkZXNjXCI7XG4gICAgZmllbGRzID0gW29yZGVyUHJvcCwgLi4uc29ydGVkQ29tcG9zaXRpb25zLCBzb3J0ZWRUYWJsZV07XG4gIH0gZWxzZSB7XG4gICAgZmllbGRzID0gW2F0dHJpYnV0ZSwgLi4uKGNvbXBvc2l0aW9ucyB8fCBbXSksIENvdWNoREJLZXlzLlRBQkxFXTtcbiAgfVxuICBjb25zdCBuYW1lID0gZ2VuZXJhdGVJbmRleE5hbWUoXG4gICAgYXR0cmlidXRlLFxuICAgIHRhYmxlTmFtZSxcbiAgICBjb21wb3NpdGlvbnMsXG4gICAgb3JkZXIsXG4gICAgc2VwYXJhdG9yXG4gICk7XG4gIHJldHVybiB7XG4gICAgaW5kZXg6IHtcbiAgICAgIGZpZWxkczogZmllbGRzLFxuICAgICAgLy8gcGFydGlhbF9maWx0ZXJfc2VsZWN0b3I6IHBhcnRpYWxGaWx0ZXJTZWxlY3RvcixcbiAgICB9LFxuICAgIGRkb2M6IFtuYW1lLCBDb3VjaERCS2V5cy5ERE9DXS5qb2luKHNlcGFyYXRvciksXG4gICAgbmFtZTogbmFtZSxcbiAgfTtcbn1cbiJdfQ==
package/lib/index.cjs CHANGED
@@ -25,21 +25,14 @@ __exportStar(require("./errors.cjs"), exports);
25
25
  __exportStar(require("./types.cjs"), exports);
26
26
  __exportStar(require("./utils.cjs"), exports);
27
27
  /**
28
- * @summary Module summary
29
- * @description Module description
30
- * @module ts-workspace
28
+ * @description CouchDB adapter for Decaf.ts
29
+ * @summary A TypeScript adapter for CouchDB database operations, providing a seamless integration with the Decaf.ts framework. This module includes classes, interfaces, and utilities for working with CouchDB databases, including support for Mango queries, document operations, and sequence management.
30
+ * @module for-couchdb
31
31
  */
32
32
  /**
33
- * @summary Namespace summary
34
- * @description Namespace description
35
- * @namespace Namespace
36
- * @memberOf module:ts-workspace
37
- */
38
- /**
39
- * @summary stores the current package version
40
- * @description this is how you should document a constant
33
+ * @description Stores the current package version
34
+ * @summary The version string of the for-couchdb package
41
35
  * @const VERSION
42
- * @memberOf module:ts-workspace
43
36
  */
44
- exports.VERSION = "0.3.1";
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxzREFBMEI7QUFDMUIseURBQTZCO0FBQzdCLG9EQUF3QjtBQUN4Qix3REFBNEI7QUFDNUIsZ0RBQTBCO0FBQzFCLGtEQUE0QjtBQUM1QiwrQ0FBeUI7QUFDekIsOENBQXdCO0FBQ3hCLDhDQUF3QjtBQUV4Qjs7OztHQUlHO0FBRUg7Ozs7O0dBS0c7QUFFSDs7Ozs7R0FLRztBQUNVLFFBQUEsT0FBTyxHQUFHLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2luZGV4ZXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2ludGVyZmFjZXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zZXF1ZW5jZXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2FkYXB0ZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbnN0YW50c1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZXJyb3JzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90eXBlc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vdXRpbHNcIjtcblxuLyoqXG4gKiBAc3VtbWFyeSBNb2R1bGUgc3VtbWFyeVxuICogQGRlc2NyaXB0aW9uIE1vZHVsZSBkZXNjcmlwdGlvblxuICogQG1vZHVsZSB0cy13b3Jrc3BhY2VcbiAqL1xuXG4vKipcbiAqIEBzdW1tYXJ5IE5hbWVzcGFjZSBzdW1tYXJ5XG4gKiBAZGVzY3JpcHRpb24gTmFtZXNwYWNlIGRlc2NyaXB0aW9uXG4gKiBAbmFtZXNwYWNlIE5hbWVzcGFjZVxuICogQG1lbWJlck9mIG1vZHVsZTp0cy13b3Jrc3BhY2VcbiAqL1xuXG4vKipcbiAqIEBzdW1tYXJ5IHN0b3JlcyB0aGUgY3VycmVudCBwYWNrYWdlIHZlcnNpb25cbiAqIEBkZXNjcmlwdGlvbiB0aGlzIGlzIGhvdyB5b3Ugc2hvdWxkIGRvY3VtZW50IGEgY29uc3RhbnRcbiAqIEBjb25zdCBWRVJTSU9OXG4gKiBAbWVtYmVyT2YgbW9kdWxlOnRzLXdvcmtzcGFjZVxuICovXG5leHBvcnQgY29uc3QgVkVSU0lPTiA9IFwiIyNWRVJTSU9OIyNcIjtcbiJdfQ==
37
+ exports.VERSION = "0.3.2";
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxzREFBMEI7QUFDMUIseURBQTZCO0FBQzdCLG9EQUF3QjtBQUN4Qix3REFBNEI7QUFDNUIsZ0RBQTBCO0FBQzFCLGtEQUE0QjtBQUM1QiwrQ0FBeUI7QUFDekIsOENBQXdCO0FBQ3hCLDhDQUF3QjtBQUV4Qjs7OztHQUlHO0FBRUg7Ozs7R0FJRztBQUNVLFFBQUEsT0FBTyxHQUFHLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2luZGV4ZXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2ludGVyZmFjZXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21vZGVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zZXF1ZW5jZXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2FkYXB0ZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbnN0YW50c1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZXJyb3JzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90eXBlc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vdXRpbHNcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQ291Y2hEQiBhZGFwdGVyIGZvciBEZWNhZi50c1xuICogQHN1bW1hcnkgQSBUeXBlU2NyaXB0IGFkYXB0ZXIgZm9yIENvdWNoREIgZGF0YWJhc2Ugb3BlcmF0aW9ucywgcHJvdmlkaW5nIGEgc2VhbWxlc3MgaW50ZWdyYXRpb24gd2l0aCB0aGUgRGVjYWYudHMgZnJhbWV3b3JrLiBUaGlzIG1vZHVsZSBpbmNsdWRlcyBjbGFzc2VzLCBpbnRlcmZhY2VzLCBhbmQgdXRpbGl0aWVzIGZvciB3b3JraW5nIHdpdGggQ291Y2hEQiBkYXRhYmFzZXMsIGluY2x1ZGluZyBzdXBwb3J0IGZvciBNYW5nbyBxdWVyaWVzLCBkb2N1bWVudCBvcGVyYXRpb25zLCBhbmQgc2VxdWVuY2UgbWFuYWdlbWVudC5cbiAqIEBtb2R1bGUgZm9yLWNvdWNoZGJcbiAqL1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBTdG9yZXMgdGhlIGN1cnJlbnQgcGFja2FnZSB2ZXJzaW9uXG4gKiBAc3VtbWFyeSBUaGUgdmVyc2lvbiBzdHJpbmcgb2YgdGhlIGZvci1jb3VjaGRiIHBhY2thZ2VcbiAqIEBjb25zdCBWRVJTSU9OXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gXCIjI1ZFUlNJT04jI1wiO1xuIl19
package/lib/index.d.ts CHANGED
@@ -8,20 +8,13 @@ export * from "./errors";
8
8
  export * from "./types";
9
9
  export * from "./utils";
10
10
  /**
11
- * @summary Module summary
12
- * @description Module description
13
- * @module ts-workspace
11
+ * @description CouchDB adapter for Decaf.ts
12
+ * @summary A TypeScript adapter for CouchDB database operations, providing a seamless integration with the Decaf.ts framework. This module includes classes, interfaces, and utilities for working with CouchDB databases, including support for Mango queries, document operations, and sequence management.
13
+ * @module for-couchdb
14
14
  */
15
15
  /**
16
- * @summary Namespace summary
17
- * @description Namespace description
18
- * @namespace Namespace
19
- * @memberOf module:ts-workspace
20
- */
21
- /**
22
- * @summary stores the current package version
23
- * @description this is how you should document a constant
16
+ * @description Stores the current package version
17
+ * @summary The version string of the for-couchdb package
24
18
  * @const VERSION
25
- * @memberOf module:ts-workspace
26
19
  */
27
- export declare const VERSION = "0.3.1";
20
+ export declare const VERSION = "0.3.2";