@decaf-ts/for-couchdb 0.3.0 → 0.3.2

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 (93) hide show
  1. package/LICENSE.md +646 -144
  2. package/README.md +371 -1
  3. package/dist/for-couchdb.cjs +907 -326
  4. package/dist/for-couchdb.esm.cjs +910 -329
  5. package/lib/adapter.cjs +249 -41
  6. package/lib/adapter.d.ts +243 -17
  7. package/lib/constants.cjs +30 -2
  8. package/lib/constants.d.ts +28 -0
  9. package/lib/errors.cjs +19 -2
  10. package/lib/errors.d.ts +17 -0
  11. package/lib/esm/adapter.d.ts +243 -17
  12. package/lib/esm/adapter.js +249 -41
  13. package/lib/esm/constants.d.ts +28 -0
  14. package/lib/esm/constants.js +30 -2
  15. package/lib/esm/errors.d.ts +17 -0
  16. package/lib/esm/errors.js +19 -2
  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 +15 -9
  24. package/lib/esm/model/CouchDBSequence.js +12 -1
  25. package/lib/esm/query/Paginator.d.ts +117 -4
  26. package/lib/esm/query/Paginator.js +128 -23
  27. package/lib/esm/query/Statement.d.ts +141 -8
  28. package/lib/esm/query/Statement.js +256 -28
  29. package/lib/esm/query/constants.d.ts +43 -0
  30. package/lib/esm/query/constants.js +44 -1
  31. package/lib/esm/query/index.d.ts +4 -1
  32. package/lib/esm/query/index.js +5 -2
  33. package/lib/esm/query/translate.d.ts +31 -0
  34. package/lib/esm/query/translate.js +32 -1
  35. package/lib/esm/sequences/Sequence.d.ts +0 -2
  36. package/lib/esm/sequences/Sequence.js +5 -9
  37. package/lib/esm/types.d.ts +55 -12
  38. package/lib/esm/types.js +1 -1
  39. package/lib/esm/utils.d.ts +105 -0
  40. package/lib/esm/utils.js +106 -1
  41. package/lib/index.cjs +7 -14
  42. package/lib/index.d.ts +6 -13
  43. package/lib/indexes/generator.cjs +58 -1
  44. package/lib/indexes/generator.d.ts +47 -0
  45. package/lib/interfaces/CouchDBRepository.cjs +1 -1
  46. package/lib/interfaces/CouchDBRepository.d.ts +10 -0
  47. package/lib/model/CouchDBSequence.cjs +12 -1
  48. package/lib/model/CouchDBSequence.d.ts +15 -9
  49. package/lib/query/Paginator.cjs +126 -21
  50. package/lib/query/Paginator.d.ts +117 -4
  51. package/lib/query/Statement.cjs +255 -27
  52. package/lib/query/Statement.d.ts +141 -8
  53. package/lib/query/constants.cjs +45 -2
  54. package/lib/query/constants.d.ts +43 -0
  55. package/lib/query/index.cjs +5 -2
  56. package/lib/query/index.d.ts +4 -1
  57. package/lib/query/translate.cjs +32 -1
  58. package/lib/query/translate.d.ts +31 -0
  59. package/lib/sequences/Sequence.cjs +5 -9
  60. package/lib/sequences/Sequence.d.ts +0 -2
  61. package/lib/types.cjs +1 -1
  62. package/lib/types.d.ts +55 -12
  63. package/lib/utils.cjs +106 -1
  64. package/lib/utils.d.ts +105 -0
  65. package/package.json +2 -2
  66. package/lib/esm/query/FromClause.d.ts +0 -7
  67. package/lib/esm/query/FromClause.js +0 -20
  68. package/lib/esm/query/InsertClause.d.ts +0 -7
  69. package/lib/esm/query/InsertClause.js +0 -13
  70. package/lib/esm/query/SelectClause.d.ts +0 -7
  71. package/lib/esm/query/SelectClause.js +0 -16
  72. package/lib/esm/query/ValuesClause.d.ts +0 -7
  73. package/lib/esm/query/ValuesClause.js +0 -12
  74. package/lib/esm/query/WhereClause.d.ts +0 -7
  75. package/lib/esm/query/WhereClause.js +0 -57
  76. package/lib/esm/query/factory.d.ts +0 -25
  77. package/lib/esm/query/factory.js +0 -117
  78. package/lib/esm/sequences/utils.d.ts +0 -1
  79. package/lib/esm/sequences/utils.js +0 -16
  80. package/lib/query/FromClause.cjs +0 -24
  81. package/lib/query/FromClause.d.ts +0 -7
  82. package/lib/query/InsertClause.cjs +0 -17
  83. package/lib/query/InsertClause.d.ts +0 -7
  84. package/lib/query/SelectClause.cjs +0 -20
  85. package/lib/query/SelectClause.d.ts +0 -7
  86. package/lib/query/ValuesClause.cjs +0 -16
  87. package/lib/query/ValuesClause.d.ts +0 -7
  88. package/lib/query/WhereClause.cjs +0 -61
  89. package/lib/query/WhereClause.d.ts +0 -7
  90. package/lib/query/factory.cjs +0 -121
  91. package/lib/query/factory.d.ts +0 -25
  92. package/lib/sequences/utils.cjs +0 -19
  93. package/lib/sequences/utils.d.ts +0 -1
@@ -14,5 +14,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./factory.cjs"), exports);
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcXVlcnkvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGdEQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2ZhY3RvcnlcIjtcbiJdfQ==
17
+ __exportStar(require("./constants.cjs"), exports);
18
+ __exportStar(require("./Paginator.cjs"), exports);
19
+ __exportStar(require("./Statement.cjs"), exports);
20
+ __exportStar(require("./translate.cjs"), exports);
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcXVlcnkvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGtEQUE0QjtBQUM1QixrREFBNEI7QUFDNUIsa0RBQTRCO0FBQzVCLGtEQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2NvbnN0YW50c1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vUGFnaW5hdG9yXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9TdGF0ZW1lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RyYW5zbGF0ZVwiO1xuIl19
@@ -1 +1,4 @@
1
- export * from "./factory";
1
+ export * from "./constants";
2
+ export * from "./Paginator";
3
+ export * from "./Statement";
4
+ export * from "./translate";
@@ -3,6 +3,37 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.translateOperators = translateOperators;
4
4
  const constants_1 = require("./constants.cjs");
5
5
  const core_1 = require("@decaf-ts/core");
6
+ /**
7
+ * @description Translates core operators to CouchDB Mango operators
8
+ * @summary Converts Decaf.ts core operators to their equivalent CouchDB Mango query operators
9
+ * @param {GroupOperator | Operator} operator - The core operator to translate
10
+ * @return {MangoOperator} The equivalent CouchDB Mango operator
11
+ * @throws {QueryError} If no translation exists for the given operator
12
+ * @function translateOperators
13
+ * @memberOf module:for-couchdb
14
+ * @mermaid
15
+ * sequenceDiagram
16
+ * participant Caller
17
+ * participant translateOperators
18
+ * participant CouchDBOperator
19
+ * participant CouchDBGroupOperator
20
+ *
21
+ * Caller->>translateOperators: operator
22
+ *
23
+ * translateOperators->>CouchDBOperator: Check for match
24
+ * alt Found in CouchDBOperator
25
+ * CouchDBOperator-->>translateOperators: Return matching operator
26
+ * translateOperators-->>Caller: Return MangoOperator
27
+ * else Not found
28
+ * translateOperators->>CouchDBGroupOperator: Check for match
29
+ * alt Found in CouchDBGroupOperator
30
+ * CouchDBGroupOperator-->>translateOperators: Return matching operator
31
+ * translateOperators-->>Caller: Return MangoOperator
32
+ * else Not found
33
+ * translateOperators-->>Caller: Throw QueryError
34
+ * end
35
+ * end
36
+ */
6
37
  function translateOperators(operator) {
7
38
  for (const operators of [constants_1.CouchDBOperator, constants_1.CouchDBGroupOperator]) {
8
39
  const el = Object.keys(operators).find((k) => k === operator);
@@ -11,4 +42,4 @@ function translateOperators(operator) {
11
42
  }
12
43
  throw new core_1.QueryError(`Could not find adapter translation for operator ${operator}`);
13
44
  }
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3F1ZXJ5L3RyYW5zbGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUtBLGdEQVVDO0FBZEQsK0NBQW9FO0FBQ3BFLHlDQUE0QztBQUc1QyxTQUFnQixrQkFBa0IsQ0FDaEMsUUFBa0M7SUFFbEMsS0FBSyxNQUFNLFNBQVMsSUFBSSxDQUFDLDJCQUFlLEVBQUUsZ0NBQW9CLENBQUMsRUFBRSxDQUFDO1FBQ2hFLE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssUUFBUSxDQUFDLENBQUM7UUFDOUQsSUFBSSxFQUFFO1lBQUUsT0FBTyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUNELE1BQU0sSUFBSSxpQkFBVSxDQUNsQixtREFBbUQsUUFBUSxFQUFFLENBQzlELENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR3JvdXBPcGVyYXRvciwgT3BlcmF0b3IgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IENvdWNoREJHcm91cE9wZXJhdG9yLCBDb3VjaERCT3BlcmF0b3IgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IFF1ZXJ5RXJyb3IgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IE1hbmdvT3BlcmF0b3IgfSBmcm9tIFwiLi4vdHlwZXNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zbGF0ZU9wZXJhdG9ycyhcbiAgb3BlcmF0b3I6IEdyb3VwT3BlcmF0b3IgfCBPcGVyYXRvclxuKTogTWFuZ29PcGVyYXRvciB7XG4gIGZvciAoY29uc3Qgb3BlcmF0b3JzIG9mIFtDb3VjaERCT3BlcmF0b3IsIENvdWNoREJHcm91cE9wZXJhdG9yXSkge1xuICAgIGNvbnN0IGVsID0gT2JqZWN0LmtleXMob3BlcmF0b3JzKS5maW5kKChrKSA9PiBrID09PSBvcGVyYXRvcik7XG4gICAgaWYgKGVsKSByZXR1cm4gb3BlcmF0b3JzW2VsXTtcbiAgfVxuICB0aHJvdyBuZXcgUXVlcnlFcnJvcihcbiAgICBgQ291bGQgbm90IGZpbmQgYWRhcHRlciB0cmFuc2xhdGlvbiBmb3Igb3BlcmF0b3IgJHtvcGVyYXRvcn1gXG4gICk7XG59XG4iXX0=
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3F1ZXJ5L3RyYW5zbGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQW9DQSxnREFVQztBQTdDRCwrQ0FBb0U7QUFDcEUseUNBQTRDO0FBRzVDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4Qkc7QUFDSCxTQUFnQixrQkFBa0IsQ0FDaEMsUUFBa0M7SUFFbEMsS0FBSyxNQUFNLFNBQVMsSUFBSSxDQUFDLDJCQUFlLEVBQUUsZ0NBQW9CLENBQUMsRUFBRSxDQUFDO1FBQ2hFLE1BQU0sRUFBRSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssUUFBUSxDQUFDLENBQUM7UUFDOUQsSUFBSSxFQUFFO1lBQUUsT0FBTyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUNELE1BQU0sSUFBSSxpQkFBVSxDQUNsQixtREFBbUQsUUFBUSxFQUFFLENBQzlELENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR3JvdXBPcGVyYXRvciwgT3BlcmF0b3IgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IENvdWNoREJHcm91cE9wZXJhdG9yLCBDb3VjaERCT3BlcmF0b3IgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IFF1ZXJ5RXJyb3IgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IE1hbmdvT3BlcmF0b3IgfSBmcm9tIFwiLi4vdHlwZXNcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gVHJhbnNsYXRlcyBjb3JlIG9wZXJhdG9ycyB0byBDb3VjaERCIE1hbmdvIG9wZXJhdG9yc1xuICogQHN1bW1hcnkgQ29udmVydHMgRGVjYWYudHMgY29yZSBvcGVyYXRvcnMgdG8gdGhlaXIgZXF1aXZhbGVudCBDb3VjaERCIE1hbmdvIHF1ZXJ5IG9wZXJhdG9yc1xuICogQHBhcmFtIHtHcm91cE9wZXJhdG9yIHwgT3BlcmF0b3J9IG9wZXJhdG9yIC0gVGhlIGNvcmUgb3BlcmF0b3IgdG8gdHJhbnNsYXRlXG4gKiBAcmV0dXJuIHtNYW5nb09wZXJhdG9yfSBUaGUgZXF1aXZhbGVudCBDb3VjaERCIE1hbmdvIG9wZXJhdG9yXG4gKiBAdGhyb3dzIHtRdWVyeUVycm9yfSBJZiBubyB0cmFuc2xhdGlvbiBleGlzdHMgZm9yIHRoZSBnaXZlbiBvcGVyYXRvclxuICogQGZ1bmN0aW9uIHRyYW5zbGF0ZU9wZXJhdG9yc1xuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItY291Y2hkYlxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBDYWxsZXJcbiAqICAgcGFydGljaXBhbnQgdHJhbnNsYXRlT3BlcmF0b3JzXG4gKiAgIHBhcnRpY2lwYW50IENvdWNoREJPcGVyYXRvclxuICogICBwYXJ0aWNpcGFudCBDb3VjaERCR3JvdXBPcGVyYXRvclxuICogICBcbiAqICAgQ2FsbGVyLT4+dHJhbnNsYXRlT3BlcmF0b3JzOiBvcGVyYXRvclxuICogICBcbiAqICAgdHJhbnNsYXRlT3BlcmF0b3JzLT4+Q291Y2hEQk9wZXJhdG9yOiBDaGVjayBmb3IgbWF0Y2hcbiAqICAgYWx0IEZvdW5kIGluIENvdWNoREJPcGVyYXRvclxuICogICAgIENvdWNoREJPcGVyYXRvci0tPj50cmFuc2xhdGVPcGVyYXRvcnM6IFJldHVybiBtYXRjaGluZyBvcGVyYXRvclxuICogICAgIHRyYW5zbGF0ZU9wZXJhdG9ycy0tPj5DYWxsZXI6IFJldHVybiBNYW5nb09wZXJhdG9yXG4gKiAgIGVsc2UgTm90IGZvdW5kXG4gKiAgICAgdHJhbnNsYXRlT3BlcmF0b3JzLT4+Q291Y2hEQkdyb3VwT3BlcmF0b3I6IENoZWNrIGZvciBtYXRjaFxuICogICAgIGFsdCBGb3VuZCBpbiBDb3VjaERCR3JvdXBPcGVyYXRvclxuICogICAgICAgQ291Y2hEQkdyb3VwT3BlcmF0b3ItLT4+dHJhbnNsYXRlT3BlcmF0b3JzOiBSZXR1cm4gbWF0Y2hpbmcgb3BlcmF0b3JcbiAqICAgICAgIHRyYW5zbGF0ZU9wZXJhdG9ycy0tPj5DYWxsZXI6IFJldHVybiBNYW5nb09wZXJhdG9yXG4gKiAgICAgZWxzZSBOb3QgZm91bmRcbiAqICAgICAgIHRyYW5zbGF0ZU9wZXJhdG9ycy0tPj5DYWxsZXI6IFRocm93IFF1ZXJ5RXJyb3JcbiAqICAgICBlbmRcbiAqICAgZW5kXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2xhdGVPcGVyYXRvcnMoXG4gIG9wZXJhdG9yOiBHcm91cE9wZXJhdG9yIHwgT3BlcmF0b3Jcbik6IE1hbmdvT3BlcmF0b3Ige1xuICBmb3IgKGNvbnN0IG9wZXJhdG9ycyBvZiBbQ291Y2hEQk9wZXJhdG9yLCBDb3VjaERCR3JvdXBPcGVyYXRvcl0pIHtcbiAgICBjb25zdCBlbCA9IE9iamVjdC5rZXlzKG9wZXJhdG9ycykuZmluZCgoaykgPT4gayA9PT0gb3BlcmF0b3IpO1xuICAgIGlmIChlbCkgcmV0dXJuIG9wZXJhdG9yc1tlbF07XG4gIH1cbiAgdGhyb3cgbmV3IFF1ZXJ5RXJyb3IoXG4gICAgYENvdWxkIG5vdCBmaW5kIGFkYXB0ZXIgdHJhbnNsYXRpb24gZm9yIG9wZXJhdG9yICR7b3BlcmF0b3J9YFxuICApO1xufVxuIl19
@@ -1,3 +1,34 @@
1
1
  import { GroupOperator, Operator } from "@decaf-ts/core";
2
2
  import { MangoOperator } from "../types";
3
+ /**
4
+ * @description Translates core operators to CouchDB Mango operators
5
+ * @summary Converts Decaf.ts core operators to their equivalent CouchDB Mango query operators
6
+ * @param {GroupOperator | Operator} operator - The core operator to translate
7
+ * @return {MangoOperator} The equivalent CouchDB Mango operator
8
+ * @throws {QueryError} If no translation exists for the given operator
9
+ * @function translateOperators
10
+ * @memberOf module:for-couchdb
11
+ * @mermaid
12
+ * sequenceDiagram
13
+ * participant Caller
14
+ * participant translateOperators
15
+ * participant CouchDBOperator
16
+ * participant CouchDBGroupOperator
17
+ *
18
+ * Caller->>translateOperators: operator
19
+ *
20
+ * translateOperators->>CouchDBOperator: Check for match
21
+ * alt Found in CouchDBOperator
22
+ * CouchDBOperator-->>translateOperators: Return matching operator
23
+ * translateOperators-->>Caller: Return MangoOperator
24
+ * else Not found
25
+ * translateOperators->>CouchDBGroupOperator: Check for match
26
+ * alt Found in CouchDBGroupOperator
27
+ * CouchDBGroupOperator-->>translateOperators: Return matching operator
28
+ * translateOperators-->>Caller: Return MangoOperator
29
+ * else Not found
30
+ * translateOperators-->>Caller: Throw QueryError
31
+ * end
32
+ * end
33
+ */
3
34
  export declare function translateOperators(operator: GroupOperator | Operator): MangoOperator;
@@ -1,12 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CouchDBSequence = void 0;
4
- const decorator_validation_1 = require("@decaf-ts/decorator-validation");
5
4
  const CouchDBSequence_1 = require("./../model/CouchDBSequence.cjs");
6
5
  const db_decorators_1 = require("@decaf-ts/db-decorators");
7
6
  const core_1 = require("@decaf-ts/core");
8
7
  const core_2 = require("@decaf-ts/core");
9
- const utils_1 = require("./utils.cjs");
10
8
  /**
11
9
  * @summary Abstract implementation of a Sequence
12
10
  * @description provides the basic functionality for {@link Sequence}s
@@ -15,13 +13,11 @@ const utils_1 = require("./utils.cjs");
15
13
  *
16
14
  * @class CouchDBSequence
17
15
  * @implements Sequence
18
- *
19
- * @category Sequences
20
16
  */
21
17
  class CouchDBSequence extends core_2.Sequence {
22
18
  constructor(options, adapter) {
23
19
  super(options);
24
- this.repo = core_1.Repository.forModel(CouchDBSequence_1.Sequence, adapter.flavour);
20
+ this.repo = core_1.Repository.forModel(CouchDBSequence_1.Sequence, adapter.alias);
25
21
  }
26
22
  /**
27
23
  * @summary Retrieves the current value for the sequence
@@ -41,10 +37,10 @@ class CouchDBSequence extends core_2.Sequence {
41
37
  return this.parse(startWith);
42
38
  }
43
39
  catch (e) {
44
- throw new db_decorators_1.InternalError((0, decorator_validation_1.sf)("Failed to parse initial value for sequence {0}: {1}", startWith.toString(), e));
40
+ throw new db_decorators_1.InternalError(`Failed to parse initial value for sequence ${startWith}: ${e}`);
45
41
  }
46
42
  }
47
- throw new db_decorators_1.InternalError((0, decorator_validation_1.sf)("Failed to retrieve current value for sequence {0}: {1}", name, e));
43
+ throw new db_decorators_1.InternalError(`Failed to retrieve current value for sequence ${name}: ${e}`);
48
44
  }
49
45
  }
50
46
  /**
@@ -54,7 +50,7 @@ class CouchDBSequence extends core_2.Sequence {
54
50
  * @param value
55
51
  */
56
52
  parse(value) {
57
- return (0, utils_1.parseSequenceValue)(this.options.type, value);
53
+ return core_2.Sequence.parseValue(this.options.type, value);
58
54
  }
59
55
  /**
60
56
  * @summary increments the sequence
@@ -115,4 +111,4 @@ class CouchDBSequence extends core_2.Sequence {
115
111
  }
116
112
  }
117
113
  exports.CouchDBSequence = CouchDBSequence;
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VxdWVuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VxdWVuY2VzL1NlcXVlbmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlFQUFvRDtBQUNwRCxvRUFBMkQ7QUFDM0QsMkRBQXVFO0FBQ3ZFLHlDQUFzRTtBQUN0RSx5Q0FBMEM7QUFDMUMsdUNBQTZDO0FBSTdDOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFhLGVBQWdCLFNBQVEsZUFBUTtJQUczQyxZQUNFLE9BQXdCLEVBQ3hCLE9BQTJDO1FBRTNDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxJQUFJLEdBQUcsaUJBQVUsQ0FBQyxRQUFRLENBQUMsMEJBQUcsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxPQUFPO1FBQ1gsTUFBTSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ3pDLElBQUksQ0FBQztZQUNILE1BQU0sUUFBUSxHQUFRLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBYyxDQUFDLENBQUM7WUFDM0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUEwQixDQUFDLENBQUM7UUFDekQsQ0FBQztRQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLFlBQVksNkJBQWEsRUFBRSxDQUFDO2dCQUMvQixJQUFJLE9BQU8sU0FBUyxLQUFLLFdBQVc7b0JBQ2xDLE1BQU0sSUFBSSw2QkFBYSxDQUNyQiwyREFBMkQsQ0FDNUQsQ0FBQztnQkFDSixJQUFJLENBQUM7b0JBQ0gsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUMvQixDQUFDO2dCQUFDLE9BQU8sQ0FBTSxFQUFFLENBQUM7b0JBQ2hCLE1BQU0sSUFB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QUFDLEdBQVcsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUN4QyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxXQUFXLEdBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQVksQ0FBQyxDQUFDO1FBQ2hFLENBQUM7UUFDRCxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxLQUFLLElBQUk7WUFDbEMsTUFBTSxJQUFJLDZCQUFhLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUNyRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7Q0FDRjtBQTVIRCwwQ0E0SEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzZiB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IFNlcXVlbmNlIGFzIFNlcSB9IGZyb20gXCIuLi9tb2RlbC9Db3VjaERCU2VxdWVuY2VcIjtcbmltcG9ydCB7IEludGVybmFsRXJyb3IsIE5vdEZvdW5kRXJyb3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IEFkYXB0ZXIsIFJlcG9zaXRvcnksIFNlcXVlbmNlT3B0aW9ucyB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgU2VxdWVuY2UgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IHBhcnNlU2VxdWVuY2VWYWx1ZSB9IGZyb20gXCIuL3V0aWxzXCI7XG5pbXBvcnQgeyBNYW5nb1F1ZXJ5IH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5pbXBvcnQgeyBDb3VjaERCUmVwb3NpdG9yeSB9IGZyb20gXCIuLi9pbnRlcmZhY2VzXCI7XG5cbi8qKlxuICogQHN1bW1hcnkgQWJzdHJhY3QgaW1wbGVtZW50YXRpb24gb2YgYSBTZXF1ZW5jZVxuICogQGRlc2NyaXB0aW9uIHByb3ZpZGVzIHRoZSBiYXNpYyBmdW5jdGlvbmFsaXR5IGZvciB7QGxpbmsgU2VxdWVuY2V9c1xuICpcbiAqIEBwYXJhbSB7U2VxdWVuY2VPcHRpb25zfSBvcHRpb25zXG4gKlxuICogQGNsYXNzIENvdWNoREJTZXF1ZW5jZVxuICogQGltcGxlbWVudHMgU2VxdWVuY2VcbiAqXG4gKiBAY2F0ZWdvcnkgU2VxdWVuY2VzXG4gKi9cbmV4cG9ydCBjbGFzcyBDb3VjaERCU2VxdWVuY2UgZXh0ZW5kcyBTZXF1ZW5jZSB7XG4gIHByb3RlY3RlZCByZXBvOiBDb3VjaERCUmVwb3NpdG9yeTxTZXEsIGFueSwgYW55LCBhbnk+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIG9wdGlvbnM6IFNlcXVlbmNlT3B0aW9ucyxcbiAgICBhZGFwdGVyOiBBZGFwdGVyPGFueSwgTWFuZ29RdWVyeSwgYW55LCBhbnk+XG4gICkge1xuICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgIHRoaXMucmVwbyA9IFJlcG9zaXRvcnkuZm9yTW9kZWwoU2VxLCBhZGFwdGVyLmZsYXZvdXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFJldHJpZXZlcyB0aGUgY3VycmVudCB2YWx1ZSBmb3IgdGhlIHNlcXVlbmNlXG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIGFzeW5jIGN1cnJlbnQoKTogUHJvbWlzZTxzdHJpbmcgfCBudW1iZXIgfCBiaWdpbnQ+IHtcbiAgICBjb25zdCB7IG5hbWUsIHN0YXJ0V2l0aCB9ID0gdGhpcy5vcHRpb25zO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzZXF1ZW5jZTogU2VxID0gYXdhaXQgdGhpcy5yZXBvLnJlYWQobmFtZSBhcyBzdHJpbmcpO1xuICAgICAgcmV0dXJuIHRoaXMucGFyc2Uoc2VxdWVuY2UuY3VycmVudCBhcyBzdHJpbmcgfCBudW1iZXIpO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgaWYgKGUgaW5zdGFuY2VvZiBOb3RGb3VuZEVycm9yKSB7XG4gICAgICAgIGlmICh0eXBlb2Ygc3RhcnRXaXRoID09PSBcInVuZGVmaW5lZFwiKVxuICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICAgICAgXCJTdGFydGluZyB2YWx1ZSBpcyBub3QgZGVmaW5lZCBmb3IgYSBub24gZXhpc3Rpbmcgc2VxdWVuY2VcIlxuICAgICAgICAgICk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMucGFyc2Uoc3RhcnRXaXRoKTtcbiAgICAgICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgICAgICBzZihcbiAgICAgICAgICAgICAgXCJGYWlsZWQgdG8gcGFyc2UgaW5pdGlhbCB2YWx1ZSBmb3Igc2VxdWVuY2UgezB9OiB7MX1cIixcbiAgICAgICAgICAgICAgc3RhcnRXaXRoLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgIGVcbiAgICAgICAgICAgIClcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgc2YoXG4gICAgICAgICAgXCJGYWlsZWQgdG8gcmV0cmlldmUgY3VycmVudCB2YWx1ZSBmb3Igc2VxdWVuY2UgezB9OiB7MX1cIixcbiAgICAgICAgICBuYW1lIGFzIHN0cmluZyxcbiAgICAgICAgICBlXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IFBhcnNlcyB0aGUge0BsaW5rIFNlcXVlbmNlfSB2YWx1ZVxuICAgKlxuICAgKiBAcHJvdGVjdGVkXG4gICAqIEBwYXJhbSB2YWx1ZVxuICAgKi9cbiAgcHJpdmF0ZSBwYXJzZSh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgYmlnaW50KTogc3RyaW5nIHwgbnVtYmVyIHwgYmlnaW50IHtcbiAgICByZXR1cm4gcGFyc2VTZXF1ZW5jZVZhbHVlKHRoaXMub3B0aW9ucy50eXBlLCB2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgaW5jcmVtZW50cyB0aGUgc2VxdWVuY2VcbiAgICogQGRlc2NyaXB0aW9uIFNlcXVlbmNlIHNwZWNpZmljIGltcGxlbWVudGF0aW9uXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVtYmVyIHwgYmlnaW50fSBjdXJyZW50XG4gICAqIEBwYXJhbSBjb3VudFxuICAgKiBAcHJvdGVjdGVkXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGluY3JlbWVudChcbiAgICBjdXJyZW50OiBzdHJpbmcgfCBudW1iZXIgfCBiaWdpbnQsXG4gICAgY291bnQ/OiBudW1iZXJcbiAgKTogUHJvbWlzZTxzdHJpbmcgfCBudW1iZXIgfCBiaWdpbnQ+IHtcbiAgICBjb25zdCB7IHR5cGUsIGluY3JlbWVudEJ5LCBuYW1lIH0gPSB0aGlzLm9wdGlvbnM7XG4gICAgbGV0IG5leHQ6IHN0cmluZyB8IG51bWJlciB8IGJpZ2ludDtcbiAgICBjb25zdCB0b0luY3JlbWVudEJ5ID0gY291bnQgfHwgaW5jcmVtZW50Qnk7XG4gICAgaWYgKHRvSW5jcmVtZW50QnkgJSBpbmNyZW1lbnRCeSAhPT0gMClcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICBgVmFsdWUgdG8gaW5jcmVtZW50IGRvZXMgbm90IGNvbnNpZGVyIHRoZSBpbmNyZW1lbnRCeSBzZXR0aW5nOiAke2luY3JlbWVudEJ5fWBcbiAgICAgICk7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlIFwiTnVtYmVyXCI6XG4gICAgICAgIG5leHQgPSAodGhpcy5wYXJzZShjdXJyZW50KSBhcyBudW1iZXIpICsgdG9JbmNyZW1lbnRCeTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwiQmlnSW50XCI6XG4gICAgICAgIG5leHQgPSAodGhpcy5wYXJzZShjdXJyZW50KSBhcyBiaWdpbnQpICsgQmlnSW50KHRvSW5jcmVtZW50QnkpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiU2hvdWxkIG5ldmVyIGhhcHBlblwiKTtcbiAgICB9XG4gICAgbGV0IHNlcTogU2VxO1xuICAgIHRyeSB7XG4gICAgICBzZXEgPSBhd2FpdCB0aGlzLnJlcG8udXBkYXRlKG5ldyBTZXEoeyBpZDogbmFtZSwgY3VycmVudDogbmV4dCB9KSk7XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICBpZiAoIShlIGluc3RhbmNlb2YgTm90Rm91bmRFcnJvcikpIHRocm93IGU7XG4gICAgICBzZXEgPSBhd2FpdCB0aGlzLnJlcG8uY3JlYXRlKG5ldyBTZXEoeyBpZDogbmFtZSwgY3VycmVudDogbmV4dCB9KSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNlcS5jdXJyZW50IGFzIHN0cmluZyB8IG51bWJlciB8IGJpZ2ludDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBHZW5lcmF0ZXMgdGhlIG5leHQgdmFsdWUgaW4gdGggc2VxdWVuY2VcbiAgICogQGRlc2NyaXB0aW9uIGNhbGxzIHtAbGluayBTZXF1ZW5jZSNwYXJzZX0gb24gdGhlIGN1cnJlbnQgdmFsdWVcbiAgICogZm9sbG93ZWQgYnkge0BsaW5rIFNlcXVlbmNlI2luY3JlbWVudH1cbiAgICpcbiAgICovXG4gIGFzeW5jIG5leHQoKTogUHJvbWlzZTxudW1iZXIgfCBzdHJpbmcgfCBiaWdpbnQ+IHtcbiAgICBjb25zdCBjdXJyZW50ID0gYXdhaXQgdGhpcy5jdXJyZW50KCk7XG4gICAgcmV0dXJuIHRoaXMuaW5jcmVtZW50KGN1cnJlbnQpO1xuICB9XG5cbiAgYXN5bmMgcmFuZ2UoY291bnQ6IG51bWJlcik6IFByb21pc2U8KG51bWJlciB8IHN0cmluZyB8IGJpZ2ludClbXT4ge1xuICAgIGNvbnN0IGN1cnJlbnQgPSAoYXdhaXQgdGhpcy5jdXJyZW50KCkpIGFzIG51bWJlcjtcbiAgICBjb25zdCBpbmNyZW1lbnRCeSA9IHRoaXMucGFyc2UodGhpcy5vcHRpb25zLmluY3JlbWVudEJ5KSBhcyBudW1iZXI7XG4gICAgY29uc3QgbmV4dDogc3RyaW5nIHwgbnVtYmVyIHwgYmlnaW50ID0gYXdhaXQgdGhpcy5pbmNyZW1lbnQoXG4gICAgICBjdXJyZW50LFxuICAgICAgKHRoaXMucGFyc2UoY291bnQpIGFzIG51bWJlcikgKiBpbmNyZW1lbnRCeVxuICAgICk7XG4gICAgY29uc3QgcmFuZ2U6IChudW1iZXIgfCBzdHJpbmcgfCBiaWdpbnQpW10gPSBbXTtcbiAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAxOyBpIDw9IGNvdW50OyBpKyspIHtcbiAgICAgIHJhbmdlLnB1c2goY3VycmVudCArIGluY3JlbWVudEJ5ICogKHRoaXMucGFyc2UoaSkgYXMgbnVtYmVyKSk7XG4gICAgfVxuICAgIGlmIChyYW5nZVtyYW5nZS5sZW5ndGggLSAxXSAhPT0gbmV4dClcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiTWlzY2FsY3VsYXRpb24gb2YgcmFuZ2VcIik7XG4gICAgcmV0dXJuIHJhbmdlO1xuICB9XG59XG4iXX0=
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VxdWVuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VxdWVuY2VzL1NlcXVlbmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG9FQUEyRDtBQUMzRCwyREFBdUU7QUFDdkUseUNBQXNFO0FBQ3RFLHlDQUEwQztBQUkxQzs7Ozs7Ozs7R0FRRztBQUNILE1BQWEsZUFBZ0IsU0FBUSxlQUFRO0lBRzNDLFlBQ0UsT0FBd0IsRUFDeEIsT0FBMkM7UUFFM0MsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyxpQkFBVSxDQUFDLFFBQVEsQ0FBQywwQkFBRyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLE9BQU87UUFDWCxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDekMsSUFBSSxDQUFDO1lBQ0gsTUFBTSxRQUFRLEdBQVEsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFjLENBQUMsQ0FBQztZQUMzRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQTBCLENBQUMsQ0FBQztRQUN6RCxDQUFDO1FBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsWUFBWSw2QkFBYSxFQUFFLENBQUM7Z0JBQy9CLElBQUksT0FBTyxTQUFTLEtBQUssV0FBVztvQkFDbEMsTUFBTSxJQUFJLDZCQUFhLENBQ3JCLDJEQUEyRCxDQUM1RCxDQUFDO2dCQUNKLElBQUksQ0FBQztvQkFDSCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQy9CLENBQUM7Z0JBQUMsT0FBTyxDQUFVLEVBQUUsQ0FBQztvQkFDcEIsTUFBTSxJQUFJLDZCQUFhLENBQ3JCLDhDQUE4QyxTQUFTLEtB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QyxPQUFPLEdBQUcsV0FBVyxHQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFZLENBQUMsQ0FBQztRQUNoRSxDQUFDO1FBQ0QsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsS0FBSyxJQUFJO1lBQ2xDLE1BQU0sSUFBSSw2QkFBYSxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDckQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBQ0Y7QUFwSEQsMENBb0hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VxdWVuY2UgYXMgU2VxIH0gZnJvbSBcIi4uL21vZGVsL0NvdWNoREJTZXF1ZW5jZVwiO1xuaW1wb3J0IHsgSW50ZXJuYWxFcnJvciwgTm90Rm91bmRFcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgQWRhcHRlciwgUmVwb3NpdG9yeSwgU2VxdWVuY2VPcHRpb25zIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBTZXF1ZW5jZSB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgTWFuZ29RdWVyeSB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHsgQ291Y2hEQlJlcG9zaXRvcnkgfSBmcm9tIFwiLi4vaW50ZXJmYWNlc1wiO1xuXG4vKipcbiAqIEBzdW1tYXJ5IEFic3RyYWN0IGltcGxlbWVudGF0aW9uIG9mIGEgU2VxdWVuY2VcbiAqIEBkZXNjcmlwdGlvbiBwcm92aWRlcyB0aGUgYmFzaWMgZnVuY3Rpb25hbGl0eSBmb3Ige0BsaW5rIFNlcXVlbmNlfXNcbiAqXG4gKiBAcGFyYW0ge1NlcXVlbmNlT3B0aW9uc30gb3B0aW9uc1xuICpcbiAqIEBjbGFzcyBDb3VjaERCU2VxdWVuY2VcbiAqIEBpbXBsZW1lbnRzIFNlcXVlbmNlXG4gKi9cbmV4cG9ydCBjbGFzcyBDb3VjaERCU2VxdWVuY2UgZXh0ZW5kcyBTZXF1ZW5jZSB7XG4gIHByb3RlY3RlZCByZXBvOiBDb3VjaERCUmVwb3NpdG9yeTxTZXEsIGFueSwgYW55LCBhbnk+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIG9wdGlvbnM6IFNlcXVlbmNlT3B0aW9ucyxcbiAgICBhZGFwdGVyOiBBZGFwdGVyPGFueSwgTWFuZ29RdWVyeSwgYW55LCBhbnk+XG4gICkge1xuICAgIHN1cGVyKG9wdGlvbnMpO1xuICAgIHRoaXMucmVwbyA9IFJlcG9zaXRvcnkuZm9yTW9kZWwoU2VxLCBhZGFwdGVyLmFsaWFzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBSZXRyaWV2ZXMgdGhlIGN1cnJlbnQgdmFsdWUgZm9yIHRoZSBzZXF1ZW5jZVxuICAgKiBAcHJvdGVjdGVkXG4gICAqL1xuICBhc3luYyBjdXJyZW50KCk6IFByb21pc2U8c3RyaW5nIHwgbnVtYmVyIHwgYmlnaW50PiB7XG4gICAgY29uc3QgeyBuYW1lLCBzdGFydFdpdGggfSA9IHRoaXMub3B0aW9ucztcbiAgICB0cnkge1xuICAgICAgY29uc3Qgc2VxdWVuY2U6IFNlcSA9IGF3YWl0IHRoaXMucmVwby5yZWFkKG5hbWUgYXMgc3RyaW5nKTtcbiAgICAgIHJldHVybiB0aGlzLnBhcnNlKHNlcXVlbmNlLmN1cnJlbnQgYXMgc3RyaW5nIHwgbnVtYmVyKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIGlmIChlIGluc3RhbmNlb2YgTm90Rm91bmRFcnJvcikge1xuICAgICAgICBpZiAodHlwZW9mIHN0YXJ0V2l0aCA9PT0gXCJ1bmRlZmluZWRcIilcbiAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgICAgIFwiU3RhcnRpbmcgdmFsdWUgaXMgbm90IGRlZmluZWQgZm9yIGEgbm9uIGV4aXN0aW5nIHNlcXVlbmNlXCJcbiAgICAgICAgICApO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiB0aGlzLnBhcnNlKHN0YXJ0V2l0aCk7XG4gICAgICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgICAgIGBGYWlsZWQgdG8gcGFyc2UgaW5pdGlhbCB2YWx1ZSBmb3Igc2VxdWVuY2UgJHtzdGFydFdpdGh9OiAke2V9YFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICBgRmFpbGVkIHRvIHJldHJpZXZlIGN1cnJlbnQgdmFsdWUgZm9yIHNlcXVlbmNlICR7bmFtZX06ICR7ZX1gXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBQYXJzZXMgdGhlIHtAbGluayBTZXF1ZW5jZX0gdmFsdWVcbiAgICpcbiAgICogQHByb3RlY3RlZFxuICAgKiBAcGFyYW0gdmFsdWVcbiAgICovXG4gIHByaXZhdGUgcGFyc2UodmFsdWU6IHN0cmluZyB8IG51bWJlciB8IGJpZ2ludCk6IHN0cmluZyB8IG51bWJlciB8IGJpZ2ludCB7XG4gICAgcmV0dXJuIFNlcXVlbmNlLnBhcnNlVmFsdWUodGhpcy5vcHRpb25zLnR5cGUsIHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBpbmNyZW1lbnRzIHRoZSBzZXF1ZW5jZVxuICAgKiBAZGVzY3JpcHRpb24gU2VxdWVuY2Ugc3BlY2lmaWMgaW1wbGVtZW50YXRpb25cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBudW1iZXIgfCBiaWdpbnR9IGN1cnJlbnRcbiAgICogQHBhcmFtIGNvdW50XG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgaW5jcmVtZW50KFxuICAgIGN1cnJlbnQ6IHN0cmluZyB8IG51bWJlciB8IGJpZ2ludCxcbiAgICBjb3VudD86IG51bWJlclxuICApOiBQcm9taXNlPHN0cmluZyB8IG51bWJlciB8IGJpZ2ludD4ge1xuICAgIGNvbnN0IHsgdHlwZSwgaW5jcmVtZW50QnksIG5hbWUgfSA9IHRoaXMub3B0aW9ucztcbiAgICBsZXQgbmV4dDogc3RyaW5nIHwgbnVtYmVyIHwgYmlnaW50O1xuICAgIGNvbnN0IHRvSW5jcmVtZW50QnkgPSBjb3VudCB8fCBpbmNyZW1lbnRCeTtcbiAgICBpZiAodG9JbmNyZW1lbnRCeSAlIGluY3JlbWVudEJ5ICE9PSAwKVxuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgIGBWYWx1ZSB0byBpbmNyZW1lbnQgZG9lcyBub3QgY29uc2lkZXIgdGhlIGluY3JlbWVudEJ5IHNldHRpbmc6ICR7aW5jcmVtZW50Qnl9YFxuICAgICAgKTtcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgXCJOdW1iZXJcIjpcbiAgICAgICAgbmV4dCA9ICh0aGlzLnBhcnNlKGN1cnJlbnQpIGFzIG51bWJlcikgKyB0b0luY3JlbWVudEJ5O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJCaWdJbnRcIjpcbiAgICAgICAgbmV4dCA9ICh0aGlzLnBhcnNlKGN1cnJlbnQpIGFzIGJpZ2ludCkgKyBCaWdJbnQodG9JbmNyZW1lbnRCeSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJTaG91bGQgbmV2ZXIgaGFwcGVuXCIpO1xuICAgIH1cbiAgICBsZXQgc2VxOiBTZXE7XG4gICAgdHJ5IHtcbiAgICAgIHNlcSA9IGF3YWl0IHRoaXMucmVwby51cGRhdGUobmV3IFNlcSh7IGlkOiBuYW1lLCBjdXJyZW50OiBuZXh0IH0pKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIGlmICghKGUgaW5zdGFuY2VvZiBOb3RGb3VuZEVycm9yKSkgdGhyb3cgZTtcbiAgICAgIHNlcSA9IGF3YWl0IHRoaXMucmVwby5jcmVhdGUobmV3IFNlcSh7IGlkOiBuYW1lLCBjdXJyZW50OiBuZXh0IH0pKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc2VxLmN1cnJlbnQgYXMgc3RyaW5nIHwgbnVtYmVyIHwgYmlnaW50O1xuICB9XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IEdlbmVyYXRlcyB0aGUgbmV4dCB2YWx1ZSBpbiB0aCBzZXF1ZW5jZVxuICAgKiBAZGVzY3JpcHRpb24gY2FsbHMge0BsaW5rIFNlcXVlbmNlI3BhcnNlfSBvbiB0aGUgY3VycmVudCB2YWx1ZVxuICAgKiBmb2xsb3dlZCBieSB7QGxpbmsgU2VxdWVuY2UjaW5jcmVtZW50fVxuICAgKlxuICAgKi9cbiAgYXN5bmMgbmV4dCgpOiBQcm9taXNlPG51bWJlciB8IHN0cmluZyB8IGJpZ2ludD4ge1xuICAgIGNvbnN0IGN1cnJlbnQgPSBhd2FpdCB0aGlzLmN1cnJlbnQoKTtcbiAgICByZXR1cm4gdGhpcy5pbmNyZW1lbnQoY3VycmVudCk7XG4gIH1cblxuICBhc3luYyByYW5nZShjb3VudDogbnVtYmVyKTogUHJvbWlzZTwobnVtYmVyIHwgc3RyaW5nIHwgYmlnaW50KVtdPiB7XG4gICAgY29uc3QgY3VycmVudCA9IChhd2FpdCB0aGlzLmN1cnJlbnQoKSkgYXMgbnVtYmVyO1xuICAgIGNvbnN0IGluY3JlbWVudEJ5ID0gdGhpcy5wYXJzZSh0aGlzLm9wdGlvbnMuaW5jcmVtZW50QnkpIGFzIG51bWJlcjtcbiAgICBjb25zdCBuZXh0OiBzdHJpbmcgfCBudW1iZXIgfCBiaWdpbnQgPSBhd2FpdCB0aGlzLmluY3JlbWVudChcbiAgICAgIGN1cnJlbnQsXG4gICAgICAodGhpcy5wYXJzZShjb3VudCkgYXMgbnVtYmVyKSAqIGluY3JlbWVudEJ5XG4gICAgKTtcbiAgICBjb25zdCByYW5nZTogKG51bWJlciB8IHN0cmluZyB8IGJpZ2ludClbXSA9IFtdO1xuICAgIGZvciAobGV0IGk6IG51bWJlciA9IDE7IGkgPD0gY291bnQ7IGkrKykge1xuICAgICAgcmFuZ2UucHVzaChjdXJyZW50ICsgaW5jcmVtZW50QnkgKiAodGhpcy5wYXJzZShpKSBhcyBudW1iZXIpKTtcbiAgICB9XG4gICAgaWYgKHJhbmdlW3JhbmdlLmxlbmd0aCAtIDFdICE9PSBuZXh0KVxuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJNaXNjYWxjdWxhdGlvbiBvZiByYW5nZVwiKTtcbiAgICByZXR1cm4gcmFuZ2U7XG4gIH1cbn1cbiJdfQ==
@@ -11,8 +11,6 @@ import { CouchDBRepository } from "../interfaces";
11
11
  *
12
12
  * @class CouchDBSequence
13
13
  * @implements Sequence
14
- *
15
- * @category Sequences
16
14
  */
17
15
  export declare class CouchDBSequence extends Sequence {
18
16
  protected repo: CouchDBRepository<Seq, any, any, any>;
package/lib/types.cjs CHANGED
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBNYW5nbyByZXNwb25zZS5cbiAqIEBzZWUgRG9jczoge0BsaW5rIGh0dHBzOi8vZG9jcy5jb3VjaGRiLm9yZy9lbi9sYXRlc3QvYXBpL2RhdGFiYXNlL2ZpbmQuaHRtbCNkYi1maW5kfSAgKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWFuZ29SZXNwb25zZTxEPiB7XG4gIC8qKiBBcnJheSBvZiBkb2N1bWVudHMgbWF0Y2hpbmcgdGhlIHNlYXJjaC5cbiAgICpcbiAgICogSW4gZWFjaCBtYXRjaGluZyBkb2N1bWVudCwgdGhlIGZpZWxkcyBzcGVjaWZpZWQgaW4gdGhlIGZpZWxkcyBwYXJ0IG9mIHRoZSByZXF1ZXN0IGJvZHkgYXJlIGxpc3RlZCwgYWxvbmcgd2l0aFxuICAgKiB0aGVpciB2YWx1ZXMuICovXG4gIGRvY3M6IChEICYgeyBfaWQ6IHN0cmluZzsgX3Jldjogc3RyaW5nIH0pW107XG5cbiAgLyoqIEEgc3RyaW5nIHRoYXQgZW5hYmxlcyB5b3UgdG8gc3BlY2lmeSB3aGljaCBwYWdlIG9mIHJlc3VsdHMgeW91IHJlcXVpcmUuXG4gICAqXG4gICAqIFVzZWQgZm9yIHBhZ2luZyB0aHJvdWdoIHJlc3VsdCBzZXRzLiAqL1xuICBib29rbWFyaz86IHN0cmluZztcblxuICAvKiogRXhlY3V0aW9uIHdhcm5pbmdzICovXG4gIHdhcm5pbmc/OiBzdHJpbmc7XG5cbiAgLyoqIEJhc2ljIGV4ZWN1dGlvbiBzdGF0aXN0aWNzIGZvciBhIHNwZWNpZmljIHJlcXVlc3QuICovXG4gIGV4ZWN1dGlvbl9zdGF0cz86IE1hbmdvRXhlY3V0aW9uU3RhdHM7XG59XG5cbi8qKiBNYW5nbyBleGVjdXRpb24gc3RhdHMuXG4gKiBAc2VlIERvY3M6IHtAbGluayBodHRwOi8vZG9jcy5jb3VjaGRiLm9yZy9lbi9sYXRlc3QvYXBpL2RhdGFiYXNlL2ZpbmQuaHRtbCNleGVjdXRpb24tc3RhdGlzdGljc30gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWFuZ29FeGVjdXRpb25TdGF0cyB7XG4gIC8qKiBOdW1iZXIgb2YgaW5kZXgga2V5cyBleGFtaW5lZC4gQ3VycmVudGx5IGFsd2F5cyAwLiAqL1xuICB0b3RhbF9rZXlzX2V4YW1pbmVkOiBudW1iZXI7XG5cbiAgLyoqIE51bWJlciBvZiBkb2N1bWVudHMgZmV0Y2hlZCBmcm9tIHRoZSBkYXRhYmFzZSAvIGluZGV4LlxuICAgKlxuICAgKiBFcXVpdmFsZW50IHRvIHVzaW5nIGluY2x1ZGVfZG9jcyA9IHRydWUgaW4gYSB2aWV3LiAqL1xuICB0b3RhbF9kb2NzX2V4YW1pbmVkOiBudW1iZXI7XG5cbiAgLyoqIE51bWJlciBvZiBkb2N1bWVudHMgZmV0Y2hlZCBmcm9tIHRoZSBkYXRhYmFzZSB1c2luZyBhbiBvdXQtb2YtYmFuZCBkb2N1bWVudCBmZXRjaC5cbiAgICpcbiAgICogVGhpcyBpcyBvbmx5IG5vbi16ZXJvIHdoZW4gcmVhZCBxdW9ydW0gPiAxIGlzIHNwZWNpZmllZCBpbiB0aGUgcXVlcnkgcGFyYW1ldGVycy4gKi9cbiAgdG90YWxfcXVvcnVtX2RvY3NfZXhhbWluZWQ6IG51bWJlcjtcblxuICAvKiogTnVtYmVyIG9mIHJlc3VsdHMgcmV0dXJuZWQgZnJvbSB0aGUgcXVlcnkuICovXG4gIHJlc3VsdHNfcmV0dXJuZWQ6IG51bWJlcjtcblxuICAvKiogVG90YWwgZXhlY3V0aW9uIHRpbWUgaW4gbWlsbGlzZWNvbmRzIGFzIG1lYXN1cmVkIGJ5IHRoZSBkYXRhYmFzZS4gKi9cbiAgZXhlY3V0aW9uX3RpbWVfbXM6IG51bWJlcjtcbn1cblxuLyoqIE1hbmdvIGNyZWF0ZSBpbmRleCBwYXJhbWV0ZXJzLlxuICogQHNlZSBEb2NzOiB7QGxpbmsgaHR0cDovL2RvY3MuY291Y2hkYi5vcmcvZW4vbGF0ZXN0L2FwaS9kYXRhYmFzZS9maW5kLmh0bWwjZGItaW5kZXh9ICovXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZUluZGV4UmVxdWVzdCB7XG4gIC8qKiBKU09OIG9iamVjdCBkZXNjcmliaW5nIHRoZSBpbmRleCB0byBjcmVhdGUgKi9cbiAgaW5kZXg6IHtcbiAgICAvKiogQXJyYXkgb2YgZmllbGQgbmFtZXMgZm9sbG93aW5nIHRoZSBzb3J0IHN5bnRheC4gKi9cbiAgICBmaWVsZHM6IFNvcnRPcmRlcltdO1xuXG4gICAgLyoqIEEgc2VsZWN0b3IgdG8gYXBwbHkgdG8gZG9jdW1lbnRzIGF0IGluZGV4aW5nIHRpbWUsIGNyZWF0aW5nIGEgcGFydGlhbCBpbmRleC4gKi9cbiAgICBwYXJ0aWFsX2ZpbHRlcl9zZWxlY3Rvcj86IE1hbmdvU2VsZWN0b3I7XG4gIH07XG5cbiAgLyoqIE5hbWUgb2YgdGhlIGRlc2lnbiBkb2N1bWVudCBpbiB3aGljaCB0aGUgaW5kZXggd2lsbCBiZSBjcmVhdGVkLiAqL1xuICBkZG9jPzogc3RyaW5nO1xuXG4gIC8qKiBOYW1lIG9mIHRoZSBpbmRleC4gSWYgbm8gbmFtZSBpcyBwcm92aWRlZCwgYSBuYW1lIHdpbGwgYmUgZ2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkuICovXG4gIG5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqIENhbiBiZSBcImpzb25cIiBvciBcInRleHRcIi5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJqc29uXCIgKi9cbiAgdHlwZT86IFwianNvblwiIHwgXCJ0ZXh0XCI7XG5cbiAgLyoqIFRoaXMgZmllbGQgc2V0cyB3aGV0aGVyIHRoZSBjcmVhdGVkIGluZGV4IHdpbGwgYmUgYSBwYXJ0aXRpb25lZCBvciBnbG9iYWwgaW5kZXguICovXG4gIHBhcnRpdGlvbmVkPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgTWFuZ29WYWx1ZSA9IG51bWJlciB8IHN0cmluZyB8IERhdGUgfCBib29sZWFuIHwgb2JqZWN0IHwgbnVsbDtcbmV4cG9ydCB0eXBlIE1hbmdvT3BlcmF0b3IgPVxuICB8IFwiJGx0XCJcbiAgfCBcIiRsdGVcIlxuICB8IFwiJGVxXCJcbiAgfCBcIiRuZVwiXG4gIHwgXCIkZ3RlXCJcbiAgfCBcIiRndFwiXG4gIHwgXCIkZXhpc3RzXCJcbiAgfCBcIiR0eXBlXCJcbiAgfCBcIiRpblwiXG4gIHwgXCIkbmluXCJcbiAgfCBcIiRzaXplXCJcbiAgfCBcIiRtb2RcIlxuICB8IFwiJHJlZ2V4XCJcbiAgfCBcIiRvclwiXG4gIHwgXCIkYW5kXCJcbiAgfCBcIiRub3JcIlxuICB8IFwiJG5vdFwiXG4gIHwgXCIkYWxsXCJcbiAgfCBcIiRhbGxNYXRjaFwiXG4gIHwgXCIkZWxlbU1hdGNoXCI7XG4vKiogTWFuZ28gc2VsZWN0b3Igc3ludGF4LlxuICogQHNlZSBEb2NzOiB7QGxpbmsgaHR0cDovL2RvY3MuY291Y2hkYi5vcmcvZW4vbGF0ZXN0L2FwaS9kYXRhYmFzZS9maW5kLmh0bWwjc2VsZWN0b3Itc3ludGF4fSAqL1xuZXhwb3J0IHR5cGUgTWFuZ29TZWxlY3RvciA9IHtcbiAgW0sgaW4gTWFuZ29PcGVyYXRvciB8IHN0cmluZ106XG4gICAgfCBNYW5nb1NlbGVjdG9yXG4gICAgfCBNYW5nb1NlbGVjdG9yW11cbiAgICB8IE1hbmdvVmFsdWVcbiAgICB8IE1hbmdvVmFsdWVbXTtcbn07XG5cbi8qKiBNYW5nbyBzb3J0IHN5bnRheFxuICogQHNlZSBEb2NzOiB7QGxpbmsgaHR0cDovL2RvY3MuY291Y2hkYi5vcmcvZW4vbGF0ZXN0L2FwaS9kYXRhYmFzZS9maW5kLmh0bWwjc29ydC1zeW50YXh9ICovXG5leHBvcnQgdHlwZSBTb3J0T3JkZXIgPSBzdHJpbmcgfCBzdHJpbmdbXSB8IHsgW2tleTogc3RyaW5nXTogXCJhc2NcIiB8IFwiZGVzY1wiIH07XG5cbi8qKiBNYW5nbyBxdWVyeSBzeW50YXguXG4gKiBAc2VlIERvY3M6IHtAbGluayBodHRwczovL2RvY3MuY291Y2hkYi5vcmcvZW4vbGF0ZXN0L2FwaS9kYXRhYmFzZS9maW5kLmh0bWwjZGItZmluZH0gICovXG5leHBvcnQgaW50ZXJmYWNlIE1hbmdvUXVlcnkge1xuICAvKiogSlNPTiBvYmplY3QgZGVzY3JpYmluZyBjcml0ZXJpYSB1c2VkIHRvIHNlbGVjdCBkb2N1bWVudHMuICovXG4gIHNlbGVjdG9yOiBNYW5nb1NlbGVjdG9yO1xuXG4gIC8qKiBNYXhpbXVtIG51bWJlciBvZiByZXN1bHRzIHJldHVybmVkLiBAZGVmYXVsdCAyNSAqL1xuICBsaW1pdD86IG51bWJlcjtcblxuICAvKiogU2tpcCB0aGUgZmlyc3QgJ24nIHJlc3VsdHMsIHdoZXJlICduJyBpcyB0aGUgdmFsdWUgc3BlY2lmaWVkLiAqL1xuICBza2lwPzogbnVtYmVyO1xuXG4gIC8qKiBKU09OIGFycmF5IGZvbGxvd2luZyBzb3J0IHN5bnRheC4gKi9cbiAgc29ydD86IFNvcnRPcmRlcltdO1xuXG4gIC8qKiBKU09OIGFycmF5IHNwZWNpZnlpbmcgd2hpY2ggZmllbGRzIG9mIGVhY2ggb2JqZWN0IHNob3VsZCBiZSByZXR1cm5lZC5cbiAgICpcbiAgICogSWYgaXQgaXMgb21pdHRlZCwgdGhlIGVudGlyZSBvYmplY3QgaXMgcmV0dXJuZWQuXG4gICAqXG4gICAqIEBzZWUgRG9jczoge0BsaW5rIGh0dHA6Ly9kb2NzLmNvdWNoZGIub3JnL2VuL2xhdGVzdC9hcGkvZGF0YWJhc2UvZmluZC5odG1sI2ZpbHRlcmluZy1maWVsZHN9ICovXG4gIGZpZWxkcz86IHN0cmluZ1tdO1xuXG4gIC8qIEluc3RydWN0IGEgcXVlcnkgdG8gdXNlIGEgc3BlY2lmaWMgaW5kZXguXG4gICAqXG4gICAqIFNwZWNpZmllZCBlaXRoZXIgYXMgXCI8ZGVzaWduX2RvY3VtZW50PlwiIG9yIFtcIjxkZXNpZ25fZG9jdW1lbnQ+XCIsIFwiPGluZGV4X25hbWU+XCJdLiAqL1xuICB1c2VfaW5kZXg/OiBzdHJpbmcgfCBbc3RyaW5nLCBzdHJpbmddO1xuXG4gIC8qKiBSZWFkIHF1b3J1bSBuZWVkZWQgZm9yIHRoZSByZXN1bHQuXG4gICAqXG4gICAqIEBkZWZhdWx0IDEgKi9cbiAgcj86IG51bWJlcjtcblxuICAvKiogQSBzdHJpbmcgdGhhdCBlbmFibGVzIHlvdSB0byBzcGVjaWZ5IHdoaWNoIHBhZ2Ugb2YgcmVzdWx0cyB5b3UgcmVxdWlyZS5cbiAgICpcbiAgICogVXNlZCBmb3IgcGFnaW5nIHRocm91Z2ggcmVzdWx0IHNldHMuICovXG4gIGJvb2ttYXJrPzogc3RyaW5nO1xuXG4gIC8qKiBXaGV0aGVyIHRvIHVwZGF0ZSB0aGUgaW5kZXggcHJpb3IgdG8gcmV0dXJuaW5nIHRoZSByZXN1bHQuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWUgKi9cbiAgdXBkYXRlPzogYm9vbGVhbjtcblxuICAvKiogV2hldGhlciBvciBub3QgdGhlIHZpZXcgcmVzdWx0cyBzaG91bGQgYmUgcmV0dXJuZWQgZnJvbSBhIOKAnHN0YWJsZeKAnSBzZXQgb2Ygc2hhcmRzLiAqL1xuICBzdGFibGU/OiBib29sZWFuO1xuXG4gIC8qKiBDb21iaW5hdGlvbiBvZiB1cGRhdGUgPSBmYWxzZSBhbmQgc3RhYmxlID0gdHJ1ZSBvcHRpb25zLlxuICAgKlxuICAgKiBQb3NzaWJsZSBvcHRpb25zOiBcIm9rXCIsIGZhbHNlIChkZWZhdWx0KS4gKi9cbiAgc3RhbGU/OiBcIm9rXCIgfCBmYWxzZTtcblxuICAvKiogSW5jbHVkZSBleGVjdXRpb24gc3RhdGlzdGljcyBpbiB0aGUgcXVlcnkgcmVzcG9uc2UuXG4gICAqXG4gICAqIE9wdGlvbmFsLCBkZWZhdWx0OiBmYWxzZS4gKi9cbiAgZXhlY3V0aW9uX3N0YXRzPzogYm9vbGVhbjtcbn1cbiJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGRlc2NyaXB0aW9uIFJlc3BvbnNlIGZyb20gYSBDb3VjaERCIE1hbmdvIHF1ZXJ5XG4gKiBAc3VtbWFyeSBDb250YWlucyB0aGUgbWF0Y2hpbmcgZG9jdW1lbnRzIGFuZCBhZGRpdGlvbmFsIG1ldGFkYXRhIGFib3V0IHRoZSBxdWVyeSBleGVjdXRpb25cbiAqIEBpbnRlcmZhY2UgTWFuZ29SZXNwb25zZVxuICogQHRlbXBsYXRlIEQgLSBUaGUgZG9jdW1lbnQgdHlwZVxuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItY291Y2hkYlxuICogQHNlZSBEb2NzOiB7QGxpbmsgaHR0cHM6Ly9kb2NzLmNvdWNoZGIub3JnL2VuL2xhdGVzdC9hcGkvZGF0YWJhc2UvZmluZC5odG1sI2RiLWZpbmR9XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWFuZ29SZXNwb25zZTxEPiB7XG4gIC8qKiBBcnJheSBvZiBkb2N1bWVudHMgbWF0Y2hpbmcgdGhlIHNlYXJjaC5cbiAgICpcbiAgICogSW4gZWFjaCBtYXRjaGluZyBkb2N1bWVudCwgdGhlIGZpZWxkcyBzcGVjaWZpZWQgaW4gdGhlIGZpZWxkcyBwYXJ0IG9mIHRoZSByZXF1ZXN0IGJvZHkgYXJlIGxpc3RlZCwgYWxvbmcgd2l0aFxuICAgKiB0aGVpciB2YWx1ZXMuICovXG4gIGRvY3M6IChEICYgeyBfaWQ6IHN0cmluZzsgX3Jldjogc3RyaW5nIH0pW107XG5cbiAgLyoqIEEgc3RyaW5nIHRoYXQgZW5hYmxlcyB5b3UgdG8gc3BlY2lmeSB3aGljaCBwYWdlIG9mIHJlc3VsdHMgeW91IHJlcXVpcmUuXG4gICAqXG4gICAqIFVzZWQgZm9yIHBhZ2luZyB0aHJvdWdoIHJlc3VsdCBzZXRzLiAqL1xuICBib29rbWFyaz86IHN0cmluZztcblxuICAvKiogRXhlY3V0aW9uIHdhcm5pbmdzICovXG4gIHdhcm5pbmc/OiBzdHJpbmc7XG5cbiAgLyoqIEJhc2ljIGV4ZWN1dGlvbiBzdGF0aXN0aWNzIGZvciBhIHNwZWNpZmljIHJlcXVlc3QuICovXG4gIGV4ZWN1dGlvbl9zdGF0cz86IE1hbmdvRXhlY3V0aW9uU3RhdHM7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFN0YXRpc3RpY3MgYWJvdXQgdGhlIGV4ZWN1dGlvbiBvZiBhIE1hbmdvIHF1ZXJ5XG4gKiBAc3VtbWFyeSBQcm92aWRlcyBkZXRhaWxlZCBtZXRyaWNzIGFib3V0IHF1ZXJ5IGV4ZWN1dGlvbiBpbmNsdWRpbmcgZG9jdW1lbnQgYW5kIGtleSBleGFtaW5hdGlvbiBjb3VudHNcbiAqIEBpbnRlcmZhY2UgTWFuZ29FeGVjdXRpb25TdGF0c1xuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItY291Y2hkYlxuICogQHNlZSBEb2NzOiB7QGxpbmsgaHR0cDovL2RvY3MuY291Y2hkYi5vcmcvZW4vbGF0ZXN0L2FwaS9kYXRhYmFzZS9maW5kLmh0bWwjZXhlY3V0aW9uLXN0YXRpc3RpY3N9XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWFuZ29FeGVjdXRpb25TdGF0cyB7XG4gIC8qKiBOdW1iZXIgb2YgaW5kZXgga2V5cyBleGFtaW5lZC4gQ3VycmVudGx5IGFsd2F5cyAwLiAqL1xuICB0b3RhbF9rZXlzX2V4YW1pbmVkOiBudW1iZXI7XG5cbiAgLyoqIE51bWJlciBvZiBkb2N1bWVudHMgZmV0Y2hlZCBmcm9tIHRoZSBkYXRhYmFzZSAvIGluZGV4LlxuICAgKlxuICAgKiBFcXVpdmFsZW50IHRvIHVzaW5nIGluY2x1ZGVfZG9jcyA9IHRydWUgaW4gYSB2aWV3LiAqL1xuICB0b3RhbF9kb2NzX2V4YW1pbmVkOiBudW1iZXI7XG5cbiAgLyoqIE51bWJlciBvZiBkb2N1bWVudHMgZmV0Y2hlZCBmcm9tIHRoZSBkYXRhYmFzZSB1c2luZyBhbiBvdXQtb2YtYmFuZCBkb2N1bWVudCBmZXRjaC5cbiAgICpcbiAgICogVGhpcyBpcyBvbmx5IG5vbi16ZXJvIHdoZW4gcmVhZCBxdW9ydW0gPiAxIGlzIHNwZWNpZmllZCBpbiB0aGUgcXVlcnkgcGFyYW1ldGVycy4gKi9cbiAgdG90YWxfcXVvcnVtX2RvY3NfZXhhbWluZWQ6IG51bWJlcjtcblxuICAvKiogTnVtYmVyIG9mIHJlc3VsdHMgcmV0dXJuZWQgZnJvbSB0aGUgcXVlcnkuICovXG4gIHJlc3VsdHNfcmV0dXJuZWQ6IG51bWJlcjtcblxuICAvKiogVG90YWwgZXhlY3V0aW9uIHRpbWUgaW4gbWlsbGlzZWNvbmRzIGFzIG1lYXN1cmVkIGJ5IHRoZSBkYXRhYmFzZS4gKi9cbiAgZXhlY3V0aW9uX3RpbWVfbXM6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gUGFyYW1ldGVycyBmb3IgY3JlYXRpbmcgYSBDb3VjaERCIE1hbmdvIGluZGV4XG4gKiBAc3VtbWFyeSBEZWZpbmVzIHRoZSBzdHJ1Y3R1cmUgYW5kIGNvbmZpZ3VyYXRpb24gZm9yIGEgbmV3IE1hbmdvIGluZGV4XG4gKiBAaW50ZXJmYWNlIENyZWF0ZUluZGV4UmVxdWVzdFxuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItY291Y2hkYlxuICogQHNlZSBEb2NzOiB7QGxpbmsgaHR0cDovL2RvY3MuY291Y2hkYi5vcmcvZW4vbGF0ZXN0L2FwaS9kYXRhYmFzZS9maW5kLmh0bWwjZGItaW5kZXh9XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlSW5kZXhSZXF1ZXN0IHtcbiAgLyoqIEpTT04gb2JqZWN0IGRlc2NyaWJpbmcgdGhlIGluZGV4IHRvIGNyZWF0ZSAqL1xuICBpbmRleDoge1xuICAgIC8qKiBBcnJheSBvZiBmaWVsZCBuYW1lcyBmb2xsb3dpbmcgdGhlIHNvcnQgc3ludGF4LiAqL1xuICAgIGZpZWxkczogU29ydE9yZGVyW107XG5cbiAgICAvKiogQSBzZWxlY3RvciB0byBhcHBseSB0byBkb2N1bWVudHMgYXQgaW5kZXhpbmcgdGltZSwgY3JlYXRpbmcgYSBwYXJ0aWFsIGluZGV4LiAqL1xuICAgIHBhcnRpYWxfZmlsdGVyX3NlbGVjdG9yPzogTWFuZ29TZWxlY3RvcjtcbiAgfTtcblxuICAvKiogTmFtZSBvZiB0aGUgZGVzaWduIGRvY3VtZW50IGluIHdoaWNoIHRoZSBpbmRleCB3aWxsIGJlIGNyZWF0ZWQuICovXG4gIGRkb2M/OiBzdHJpbmc7XG5cbiAgLyoqIE5hbWUgb2YgdGhlIGluZGV4LiBJZiBubyBuYW1lIGlzIHByb3ZpZGVkLCBhIG5hbWUgd2lsbCBiZSBnZW5lcmF0ZWQgYXV0b21hdGljYWxseS4gKi9cbiAgbmFtZT86IHN0cmluZztcblxuICAvKiogQ2FuIGJlIFwianNvblwiIG9yIFwidGV4dFwiLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcImpzb25cIiAqL1xuICB0eXBlPzogXCJqc29uXCIgfCBcInRleHRcIjtcblxuICAvKiogVGhpcyBmaWVsZCBzZXRzIHdoZXRoZXIgdGhlIGNyZWF0ZWQgaW5kZXggd2lsbCBiZSBhIHBhcnRpdGlvbmVkIG9yIGdsb2JhbCBpbmRleC4gKi9cbiAgcGFydGl0aW9uZWQ/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBSZXByZXNlbnRzIHRoZSBwb3NzaWJsZSB2YWx1ZSB0eXBlcyBpbiBhIE1hbmdvIHF1ZXJ5XG4gKiBAc3VtbWFyeSBVbmlvbiB0eXBlIG9mIGFsbCBwb3NzaWJsZSB2YWx1ZSB0eXBlcyB0aGF0IGNhbiBiZSB1c2VkIGluIE1hbmdvIHF1ZXJpZXNcbiAqIEB0eXBlZGVmIHsobnVtYmVyfHN0cmluZ3xEYXRlfGJvb2xlYW58b2JqZWN0fG51bGwpfSBNYW5nb1ZhbHVlXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmZvci1jb3VjaGRiXG4gKi9cbmV4cG9ydCB0eXBlIE1hbmdvVmFsdWUgPSBudW1iZXIgfCBzdHJpbmcgfCBEYXRlIHwgYm9vbGVhbiB8IG9iamVjdCB8IG51bGw7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIE9wZXJhdG9ycyBhdmFpbGFibGUgaW4gTWFuZ28gcXVlcmllc1xuICogQHN1bW1hcnkgVW5pb24gdHlwZSBvZiBhbGwgcG9zc2libGUgb3BlcmF0b3JzIHRoYXQgY2FuIGJlIHVzZWQgaW4gTWFuZ28gcXVlcmllc1xuICogQHR5cGVkZWYge3N0cmluZ30gTWFuZ29PcGVyYXRvclxuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItY291Y2hkYlxuICovXG5leHBvcnQgdHlwZSBNYW5nb09wZXJhdG9yID1cbiAgfCBcIiRsdFwiXG4gIHwgXCIkbHRlXCJcbiAgfCBcIiRlcVwiXG4gIHwgXCIkbmVcIlxuICB8IFwiJGd0ZVwiXG4gIHwgXCIkZ3RcIlxuICB8IFwiJGV4aXN0c1wiXG4gIHwgXCIkdHlwZVwiXG4gIHwgXCIkaW5cIlxuICB8IFwiJG5pblwiXG4gIHwgXCIkc2l6ZVwiXG4gIHwgXCIkbW9kXCJcbiAgfCBcIiRyZWdleFwiXG4gIHwgXCIkb3JcIlxuICB8IFwiJGFuZFwiXG4gIHwgXCIkbm9yXCJcbiAgfCBcIiRub3RcIlxuICB8IFwiJGFsbFwiXG4gIHwgXCIkYWxsTWF0Y2hcIlxuICB8IFwiJGVsZW1NYXRjaFwiO1xuLyoqXG4gKiBAZGVzY3JpcHRpb24gUmVwcmVzZW50cyBhIENvdWNoREIgTWFuZ28gcXVlcnkgc2VsZWN0b3JcbiAqIEBzdW1tYXJ5IFR5cGUgZm9yIGRlZmluaW5nIHF1ZXJ5IGNvbmRpdGlvbnMgaW4gTWFuZ28gcXVlcmllc1xuICogQHR5cGVkZWYge09iamVjdH0gTWFuZ29TZWxlY3RvclxuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItY291Y2hkYlxuICogQHNlZSBEb2NzOiB7QGxpbmsgaHR0cDovL2RvY3MuY291Y2hkYi5vcmcvZW4vbGF0ZXN0L2FwaS9kYXRhYmFzZS9maW5kLmh0bWwjc2VsZWN0b3Itc3ludGF4fVxuICovXG5leHBvcnQgdHlwZSBNYW5nb1NlbGVjdG9yID0ge1xuICBbSyBpbiBNYW5nb09wZXJhdG9yIHwgc3RyaW5nXTpcbiAgICB8IE1hbmdvU2VsZWN0b3JcbiAgICB8IE1hbmdvU2VsZWN0b3JbXVxuICAgIHwgTWFuZ29WYWx1ZVxuICAgIHwgTWFuZ29WYWx1ZVtdO1xufTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gUmVwcmVzZW50cyBhIHNvcnQgb3JkZXIgc3BlY2lmaWNhdGlvbiBpbiBNYW5nbyBxdWVyaWVzXG4gKiBAc3VtbWFyeSBUeXBlIGZvciBkZWZpbmluZyBzb3J0IG9yZGVyIGluIE1hbmdvIHF1ZXJpZXNcbiAqIEB0eXBlZGVmIHsoc3RyaW5nfHN0cmluZ1tdfE9iamVjdCl9IFNvcnRPcmRlclxuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItY291Y2hkYlxuICogQHNlZSBEb2NzOiB7QGxpbmsgaHR0cDovL2RvY3MuY291Y2hkYi5vcmcvZW4vbGF0ZXN0L2FwaS9kYXRhYmFzZS9maW5kLmh0bWwjc29ydC1zeW50YXh9XG4gKi9cbmV4cG9ydCB0eXBlIFNvcnRPcmRlciA9IHN0cmluZyB8IHN0cmluZ1tdIHwgeyBba2V5OiBzdHJpbmddOiBcImFzY1wiIHwgXCJkZXNjXCIgfTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gUmVwcmVzZW50cyBhIENvdWNoREIgTWFuZ28gcXVlcnlcbiAqIEBzdW1tYXJ5IEludGVyZmFjZSBmb3IgZGVmaW5pbmcgY29tcGxldGUgTWFuZ28gcXVlcmllcyB3aXRoIHNlbGVjdG9ycywgc29ydGluZywgcGFnaW5hdGlvbiwgYW5kIG90aGVyIG9wdGlvbnNcbiAqIEBpbnRlcmZhY2UgTWFuZ29RdWVyeVxuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItY291Y2hkYlxuICogQHNlZSBEb2NzOiB7QGxpbmsgaHR0cHM6Ly9kb2NzLmNvdWNoZGIub3JnL2VuL2xhdGVzdC9hcGkvZGF0YWJhc2UvZmluZC5odG1sI2RiLWZpbmR9XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWFuZ29RdWVyeSB7XG4gIC8qKiBKU09OIG9iamVjdCBkZXNjcmliaW5nIGNyaXRlcmlhIHVzZWQgdG8gc2VsZWN0IGRvY3VtZW50cy4gKi9cbiAgc2VsZWN0b3I6IE1hbmdvU2VsZWN0b3I7XG5cbiAgLyoqIE1heGltdW0gbnVtYmVyIG9mIHJlc3VsdHMgcmV0dXJuZWQuIEBkZWZhdWx0IDI1ICovXG4gIGxpbWl0PzogbnVtYmVyO1xuXG4gIC8qKiBTa2lwIHRoZSBmaXJzdCAnbicgcmVzdWx0cywgd2hlcmUgJ24nIGlzIHRoZSB2YWx1ZSBzcGVjaWZpZWQuICovXG4gIHNraXA/OiBudW1iZXI7XG5cbiAgLyoqIEpTT04gYXJyYXkgZm9sbG93aW5nIHNvcnQgc3ludGF4LiAqL1xuICBzb3J0PzogU29ydE9yZGVyW107XG5cbiAgLyoqIEpTT04gYXJyYXkgc3BlY2lmeWluZyB3aGljaCBmaWVsZHMgb2YgZWFjaCBvYmplY3Qgc2hvdWxkIGJlIHJldHVybmVkLlxuICAgKlxuICAgKiBJZiBpdCBpcyBvbWl0dGVkLCB0aGUgZW50aXJlIG9iamVjdCBpcyByZXR1cm5lZC5cbiAgICpcbiAgICogQHNlZSBEb2NzOiB7QGxpbmsgaHR0cDovL2RvY3MuY291Y2hkYi5vcmcvZW4vbGF0ZXN0L2FwaS9kYXRhYmFzZS9maW5kLmh0bWwjZmlsdGVyaW5nLWZpZWxkc30gKi9cbiAgZmllbGRzPzogc3RyaW5nW107XG5cbiAgLyogSW5zdHJ1Y3QgYSBxdWVyeSB0byB1c2UgYSBzcGVjaWZpYyBpbmRleC5cbiAgICpcbiAgICogU3BlY2lmaWVkIGVpdGhlciBhcyBcIjxkZXNpZ25fZG9jdW1lbnQ+XCIgb3IgW1wiPGRlc2lnbl9kb2N1bWVudD5cIiwgXCI8aW5kZXhfbmFtZT5cIl0uICovXG4gIHVzZV9pbmRleD86IHN0cmluZyB8IFtzdHJpbmcsIHN0cmluZ107XG5cbiAgLyoqIFJlYWQgcXVvcnVtIG5lZWRlZCBmb3IgdGhlIHJlc3VsdC5cbiAgICpcbiAgICogQGRlZmF1bHQgMSAqL1xuICByPzogbnVtYmVyO1xuXG4gIC8qKiBBIHN0cmluZyB0aGF0IGVuYWJsZXMgeW91IHRvIHNwZWNpZnkgd2hpY2ggcGFnZSBvZiByZXN1bHRzIHlvdSByZXF1aXJlLlxuICAgKlxuICAgKiBVc2VkIGZvciBwYWdpbmcgdGhyb3VnaCByZXN1bHQgc2V0cy4gKi9cbiAgYm9va21hcms/OiBzdHJpbmc7XG5cbiAgLyoqIFdoZXRoZXIgdG8gdXBkYXRlIHRoZSBpbmRleCBwcmlvciB0byByZXR1cm5pbmcgdGhlIHJlc3VsdC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZSAqL1xuICB1cGRhdGU/OiBib29sZWFuO1xuXG4gIC8qKiBXaGV0aGVyIG9yIG5vdCB0aGUgdmlldyByZXN1bHRzIHNob3VsZCBiZSByZXR1cm5lZCBmcm9tIGEg4oCcc3RhYmxl4oCdIHNldCBvZiBzaGFyZHMuICovXG4gIHN0YWJsZT86IGJvb2xlYW47XG5cbiAgLyoqIENvbWJpbmF0aW9uIG9mIHVwZGF0ZSA9IGZhbHNlIGFuZCBzdGFibGUgPSB0cnVlIG9wdGlvbnMuXG4gICAqXG4gICAqIFBvc3NpYmxlIG9wdGlvbnM6IFwib2tcIiwgZmFsc2UgKGRlZmF1bHQpLiAqL1xuICBzdGFsZT86IFwib2tcIiB8IGZhbHNlO1xuXG4gIC8qKiBJbmNsdWRlIGV4ZWN1dGlvbiBzdGF0aXN0aWNzIGluIHRoZSBxdWVyeSByZXNwb25zZS5cbiAgICpcbiAgICogT3B0aW9uYWwsIGRlZmF1bHQ6IGZhbHNlLiAqL1xuICBleGVjdXRpb25fc3RhdHM/OiBib29sZWFuO1xufVxuIl19
package/lib/types.d.ts CHANGED
@@ -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/utils.cjs CHANGED
@@ -9,9 +9,55 @@ const core_1 = require("@decaf-ts/core");
9
9
  const constants_1 = require("./constants.cjs");
10
10
  const db_decorators_1 = require("@decaf-ts/db-decorators");
11
11
  const constants_2 = require("./query/constants.cjs");
12
+ /**
13
+ * @description Re-authenticates a connection to CouchDB
14
+ * @summary Refreshes the authentication for a CouchDB connection using the provided credentials
15
+ * @param {any} con - The CouchDB connection object
16
+ * @param {string} user - The username for authentication
17
+ * @param {string} pass - The password for authentication
18
+ * @return {Promise<any>} A promise that resolves to the authentication result
19
+ * @function reAuth
20
+ * @memberOf module:for-couchdb
21
+ */
12
22
  async function reAuth(con, user, pass) {
13
23
  return con.auth(user, pass);
14
24
  }
25
+ /**
26
+ * @description Wraps a CouchDB database connection with automatic re-authentication
27
+ * @summary Creates a proxy around a CouchDB database connection that automatically re-authenticates before each operation
28
+ * @param {any} con - The CouchDB connection object
29
+ * @param {string} dbName - The name of the database to use
30
+ * @param {string} user - The username for authentication
31
+ * @param {string} pass - The password for authentication
32
+ * @return {any} The wrapped database connection object
33
+ * @function wrapDocumentScope
34
+ * @memberOf module:for-couchdb
35
+ * @mermaid
36
+ * sequenceDiagram
37
+ * participant Client
38
+ * participant wrapDocumentScope
39
+ * participant DB
40
+ * participant reAuth
41
+ *
42
+ * Client->>wrapDocumentScope: con, dbName, user, pass
43
+ * wrapDocumentScope->>DB: con.use(dbName)
44
+ * Note over wrapDocumentScope: Wrap DB methods with re-auth
45
+ *
46
+ * loop For each method (insert, get, put, destroy, find)
47
+ * wrapDocumentScope->>wrapDocumentScope: Store original method
48
+ * wrapDocumentScope->>wrapDocumentScope: Define new method with re-auth
49
+ * end
50
+ *
51
+ * wrapDocumentScope->>wrapDocumentScope: Add NATIVE property with con value
52
+ * wrapDocumentScope-->>Client: Return wrapped DB
53
+ *
54
+ * Note over Client: Later when client uses DB methods
55
+ * Client->>DB: Any wrapped method call
56
+ * DB->>reAuth: Authenticate before operation
57
+ * reAuth-->>DB: Authentication complete
58
+ * DB->>DB: Call original method
59
+ * DB-->>Client: Return result
60
+ */
15
61
  function wrapDocumentScope(con, dbName, user, pass) {
16
62
  const db = con.use(dbName);
17
63
  ["insert", "get", "put", "destroy", "find"].forEach((k) => {
@@ -33,10 +79,30 @@ function wrapDocumentScope(con, dbName, user, pass) {
33
79
  });
34
80
  return db;
35
81
  }
82
+ /**
83
+ * @description Tests if an attribute name is reserved in CouchDB
84
+ * @summary Checks if an attribute name starts with an underscore, which indicates it's a reserved attribute in CouchDB
85
+ * @param {string} attr - The attribute name to test
86
+ * @return {RegExpMatchArray|null} The match result or null if no match
87
+ * @function testReservedAttributes
88
+ * @memberOf module:for-couchdb
89
+ */
36
90
  function testReservedAttributes(attr) {
37
91
  const regexp = /^_.*$/g;
38
92
  return attr.match(regexp);
39
93
  }
94
+ /**
95
+ * @description Generates a name for a CouchDB index
96
+ * @summary Creates a standardized name for a CouchDB index based on the table, attribute, compositions, and order
97
+ * @param {string} attribute - The primary attribute for the index
98
+ * @param {string} tableName - The name of the table
99
+ * @param {string[]} [compositions] - Optional additional attributes to include in the index
100
+ * @param {OrderDirection} [order] - Optional sort order for the index
101
+ * @param {string} [separator=DefaultSeparator] - The separator to use between parts of the index name
102
+ * @return {string} The generated index name
103
+ * @function generateIndexName
104
+ * @memberOf module:for-couchdb
105
+ */
40
106
  function generateIndexName(attribute, tableName, compositions, order, separator = db_decorators_1.DefaultSeparator) {
41
107
  const attr = [core_1.PersistenceKeys.INDEX, tableName, attribute];
42
108
  if (compositions)
@@ -45,6 +111,45 @@ function generateIndexName(attribute, tableName, compositions, order, separator
45
111
  attr.push(order);
46
112
  return attr.join(separator);
47
113
  }
114
+ /**
115
+ * @description Generates a CouchDB index configuration
116
+ * @summary Creates a complete CreateIndexRequest object for defining a CouchDB index based on specified parameters
117
+ * @param {string} attribute - The primary attribute for the index
118
+ * @param {string} tableName - The name of the table
119
+ * @param {string[]} [compositions] - Optional additional attributes to include in the index
120
+ * @param {OrderDirection} [order] - Optional sort order for the index
121
+ * @param {string} [separator=DefaultSeparator] - The separator to use between parts of the index name
122
+ * @return {CreateIndexRequest} The complete index configuration object
123
+ * @function generateIndexDoc
124
+ * @memberOf module:for-couchdb
125
+ * @mermaid
126
+ * sequenceDiagram
127
+ * participant Caller
128
+ * participant generateIndexDoc
129
+ * participant generateIndexName
130
+ *
131
+ * Caller->>generateIndexDoc: attribute, tableName, compositions, order, separator
132
+ *
133
+ * Note over generateIndexDoc: Create partial filter selector
134
+ * generateIndexDoc->>generateIndexDoc: Set up filter for tableName
135
+ *
136
+ * alt order is specified
137
+ * Note over generateIndexDoc: Create ordered fields array
138
+ * generateIndexDoc->>generateIndexDoc: Create orderProp for attribute
139
+ * generateIndexDoc->>generateIndexDoc: Map compositions to ordered props
140
+ * generateIndexDoc->>generateIndexDoc: Create sortedTable for table field
141
+ * generateIndexDoc->>generateIndexDoc: Combine all ordered fields
142
+ * else
143
+ * Note over generateIndexDoc: Create simple fields array
144
+ * generateIndexDoc->>generateIndexDoc: Use attribute, compositions, and table as strings
145
+ * end
146
+ *
147
+ * generateIndexDoc->>generateIndexName: Generate index name
148
+ * generateIndexName-->>generateIndexDoc: Return name
149
+ *
150
+ * Note over generateIndexDoc: Create final index request
151
+ * generateIndexDoc-->>Caller: Return CreateIndexRequest
152
+ */
48
153
  function generateIndexDoc(attribute, tableName, compositions, order, separator = db_decorators_1.DefaultSeparator) {
49
154
  const partialFilterSelector = {};
50
155
  partialFilterSelector[constants_1.CouchDBKeys.TABLE] = {};
@@ -75,4 +180,4 @@ function generateIndexDoc(attribute, tableName, compositions, order, separator =
75
180
  name: name,
76
181
  };
77
182
  }
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFNQSx3QkFFQztBQUVELDhDQXlCQztBQUVELHdEQUdDO0FBRUQsOENBV0M7QUFFRCw0Q0EwQ0M7QUFqR0QseUNBQWlFO0FBQ2pFLCtDQUEwQztBQUMxQywyREFBMkQ7QUFDM0QscURBQW9EO0FBRzdDLEtBQUssVUFBVSxNQUFNLENBQUMsR0FBUSxFQUFFLElBQVksRUFBRSxJQUFZO0lBQy9ELE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDOUIsQ0FBQztBQUVELFNBQWdCLGlCQUFpQixDQUMvQixHQUFRLEVBQ1IsTUFBYyxFQUNkLElBQVksRUFDWixJQUFZO0lBRVosTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzQixDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUN4RCxNQUFNLFFBQVEsR0FBSSxFQUEwQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hELE1BQU0sQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRTtZQUMzQixVQUFVLEVBQUUsS0FBSztZQUNqQixZQUFZLEVBQUUsSUFBSTtZQUNsQixLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBVyxFQUFFLEVBQUU7Z0JBQzlCLE1BQU0sTUFBTSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQzlCLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUNwQyxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDSCxNQUFNLENBQUMs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b20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgQ291Y2hEQktleXMgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IERlZmF1bHRTZXBhcmF0b3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IENvdWNoREJPcGVyYXRvciB9IGZyb20gXCIuL3F1ZXJ5L2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgQ3JlYXRlSW5kZXhSZXF1ZXN0LCBNYW5nb1NlbGVjdG9yLCBTb3J0T3JkZXIgfSBmcm9tIFwiLi90eXBlc1wiO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVBdXRoKGNvbjogYW55LCB1c2VyOiBzdHJpbmcsIHBhc3M6IHN0cmluZykge1xuICByZXR1cm4gY29uLmF1dGgodXNlciwgcGFzcyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3cmFwRG9jdW1lbnRTY29wZShcbiAgY29uOiBhbnksXG4gIGRiTmFtZTogc3RyaW5nLFxuICB1c2VyOiBzdHJpbmcsXG4gIHBhc3M6IHN0cmluZ1xuKTogYW55IHtcbiAgY29uc3QgZGIgPSBjb24udXNlKGRiTmFtZSk7XG4gIFtcImluc2VydFwiLCBcImdldFwiLCBcInB1dFwiLCBcImRlc3Ryb3lcIiwgXCJmaW5kXCJdLmZvckVhY2goKGspID0+IHtcbiAgICBjb25zdCBvcmlnaW5hbCA9IChkYiBhcyBSZWNvcmQ8c3RyaW5nLCBhbnk+KVtrXTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZGIsIGssIHtcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgdmFsdWU6IGFzeW5jICguLi5hcmdzOiBhbnlbXSkgPT4ge1xuICAgICAgICBhd2FpdCByZUF1dGgoY29uLCB1c2VyLCBwYXNzKTtcbiAgICAgICAgcmV0dXJuIG9yaWdpbmFsLmNhbGwoZGIsIC4uLmFyZ3MpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfSk7XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkYiwgQ291Y2hEQktleXMuTkFUSVZFLCB7XG4gICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgY29uZmlndXJhYmxlOiBmYWxzZSxcbiAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgdmFsdWU6IGNvbixcbiAgfSk7XG4gIHJldHVybiBkYjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRlc3RSZXNlcnZlZEF0dHJpYnV0ZXMoYXR0cjogc3RyaW5nKSB7XG4gIGNvbnN0IHJlZ2V4cCA9IC9eXy4qJC9nO1xuICByZXR1cm4gYXR0ci5tYXRjaChyZWdleHApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVJbmRleE5hbWUoXG4gIGF0dHJpYnV0ZTogc3RyaW5nLFxuICB0YWJsZU5hbWU6IHN0cmluZyxcbiAgY29tcG9zaXRpb25zPzogc3RyaW5nW10sXG4gIG9yZGVyPzogT3JkZXJEaXJlY3Rpb24sXG4gIHNlcGFyYXRvciA9IERlZmF1bHRTZXBhcmF0b3Jcbik6IHN0cmluZyB7XG4gIGNvbnN0IGF0dHIgPSBbUGVyc2lzdGVuY2VLZXlzLklOREVYLCB0YWJsZU5hbWUsIGF0dHJpYnV0ZV07XG4gIGlmIChjb21wb3NpdGlvbnMpIGF0dHIucHVzaCguLi5jb21wb3NpdGlvbnMpO1xuICBpZiAob3JkZXIpIGF0dHIucHVzaChvcmRlcik7XG4gIHJldHVybiBhdHRyLmpvaW4oc2VwYXJhdG9yKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlSW5kZXhEb2MoXG4gIGF0dHJpYnV0ZTogc3RyaW5nLFxuICB0YWJsZU5hbWU6IHN0cmluZyxcbiAgY29tcG9zaXRpb25zPzogc3RyaW5nW10sXG4gIG9yZGVyPzogT3JkZXJEaXJlY3Rpb24sXG4gIHNlcGFyYXRvciA9IERlZmF1bHRTZXBhcmF0b3Jcbik6IENyZWF0ZUluZGV4UmVxdWVzdCB7XG4gIGNvbnN0IHBhcnRpYWxGaWx0ZXJTZWxlY3RvcjogTWFuZ29TZWxlY3RvciA9IHt9O1xuICBwYXJ0aWFsRmlsdGVyU2VsZWN0b3JbQ291Y2hEQktleXMuVEFCTEVdID0ge30gYXMgTWFuZ29TZWxlY3RvcjtcbiAgKHBhcnRpYWxGaWx0ZXJTZWxlY3RvcltDb3VjaERCS2V5cy5UQUJMRV0gYXMgTWFuZ29TZWxlY3RvcilbXG4gICAgQ291Y2hEQk9wZXJhdG9yLkVRVUFMXG4gIF0gPSB0YWJsZU5hbWU7XG4gIGxldCBmaWVsZHM6IFNvcnRPcmRlcltdO1xuICBpZiAob3JkZXIpIHtcbiAgICBjb25zdCBvcmRlclByb3A6IFNvcnRPcmRlciA9IHt9O1xuICAgIG9yZGVyUHJvcFthdHRyaWJ1dGVdID0gb3JkZXIgYXMgXCJhc2NcIiB8IFwiZGVzY1wiO1xuICAgIGNvbnN0IHNvcnRlZENvbXBvc2l0aW9uczogU29ydE9yZGVyW10gPSAoY29tcG9zaXRpb25zIHx8IFtdKS5tYXAoKGMpID0+IHtcbiAgICAgIGNvbnN0IHI6IFNvcnRPcmRlciA9IHt9O1xuICAgICAgcltjXSA9IG9yZGVyIGFzIFwiYXNjXCIgfCBcImRlc2NcIjtcbiAgICAgIHJldHVybiByO1xuICAgIH0pO1xuICAgIGNvbnN0IHNvcnRlZFRhYmxlOiBTb3J0T3JkZXIgPSB7fTtcbiAgICBzb3J0ZWRUYWJsZVtDb3VjaERCS2V5cy5UQUJMRV0gPSBvcmRlciBhcyBcImFzY1wiIHwgXCJkZXNjXCI7XG4gICAgZmllbGRzID0gW29yZGVyUHJvcCwgLi4uc29ydGVkQ29tcG9zaXRpb25zLCBzb3J0ZWRUYWJsZV07XG4gIH0gZWxzZSB7XG4gICAgZmllbGRzID0gW2F0dHJpYnV0ZSwgLi4uKGNvbXBvc2l0aW9ucyB8fCBbXSksIENvdWNoREJLZXlzLlRBQkxFXTtcbiAgfVxuICBjb25zdCBuYW1lID0gZ2VuZXJhdGVJbmRleE5hbWUoXG4gICAgYXR0cmlidXRlLFxuICAgIHRhYmxlTmFtZSxcbiAgICBjb21wb3NpdGlvbnMsXG4gICAgb3JkZXIsXG4gICAgc2VwYXJhdG9yXG4gICk7XG4gIHJldHVybiB7XG4gICAgaW5kZXg6IHtcbiAgICAgIGZpZWxkczogZmllbGRzLFxuICAgICAgLy8gcGFydGlhbF9maWx0ZXJfc2VsZWN0b3I6IHBhcnRpYWxGaWx0ZXJTZWxlY3RvcixcbiAgICB9LFxuICAgIGRkb2M6IFtuYW1lLCBDb3VjaERCS2V5cy5ERE9DXS5qb2luKHNlcGFyYXRvciksXG4gICAgbmFtZTogbmFtZSxcbiAgfTtcbn1cbiJdfQ==
183
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFnQkEsd0JBRUM7QUFzQ0QsOENBeUJDO0FBVUQsd0RBR0M7QUFjRCw4Q0FXQztBQXlDRCw0Q0EwQ0M7QUExTUQseUNBQWlFO0FBQ2pFLCtDQUEwQztBQUMxQywyREFBMkQ7QUFDM0QscURBQW9EO0FBR3BEOzs7Ozs7Ozs7R0FTRztBQUNJLEtBQUssVUFBVSxNQUFNLENBQUMsR0FBUSxFQUFFLElBQVksRUFBRSxJQUFZO0lBQy9ELE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDOUIsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1DRztBQUNILFNBQWdCLGlCQUFpQixDQUMvQixHQUFRLEVBQ1IsTUFBYyxFQUNkLElBQVksRUFDWixJQUFZO0lBRVosTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzQixDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUN4RCxNQUFNLFFBQVEsR0FBSSxFQUEwQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hELE1BQU0sQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRTtZQUMzQixVQUFVLEVBQUUsS0FBSztZQUNqQixZQUFZLEVBQUUsSUFBSTtZQUNsQixLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBVyxFQUFFLEVBQUU7Z0JBQzlCLE1BQU0sTUFBTSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQzlCLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFJLENBQUMs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QUFXLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUM5QyxJQUFJLEVBQUUsSUFBSTtLQUNYLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3JkZXJEaXJlY3Rpb24sIFBlcnNpc3RlbmNlS2V5cyB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgQ291Y2hEQktleXMgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IERlZmF1bHRTZXBhcmF0b3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IENvdWNoREJPcGVyYXRvciB9IGZyb20gXCIuL3F1ZXJ5L2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgQ3JlYXRlSW5kZXhSZXF1ZXN0LCBNYW5nb1NlbGVjdG9yLCBTb3J0T3JkZXIgfSBmcm9tIFwiLi90eXBlc1wiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBSZS1hdXRoZW50aWNhdGVzIGEgY29ubmVjdGlvbiB0byBDb3VjaERCXG4gKiBAc3VtbWFyeSBSZWZyZXNoZXMgdGhlIGF1dGhlbnRpY2F0aW9uIGZvciBhIENvdWNoREIgY29ubmVjdGlvbiB1c2luZyB0aGUgcHJvdmlkZWQgY3JlZGVudGlhbHNcbiAqIEBwYXJhbSB7YW55fSBjb24gLSBUaGUgQ291Y2hEQiBjb25uZWN0aW9uIG9iamVjdFxuICogQHBhcmFtIHtzdHJpbmd9IHVzZXIgLSBUaGUgdXNlcm5hbWUgZm9yIGF1dGhlbnRpY2F0aW9uXG4gKiBAcGFyYW0ge3N0cmluZ30gcGFzcyAtIFRoZSBwYXNzd29yZCBmb3IgYXV0aGVudGljYXRpb25cbiAqIEByZXR1cm4ge1Byb21pc2U8YW55Pn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gdGhlIGF1dGhlbnRpY2F0aW9uIHJlc3VsdFxuICogQGZ1bmN0aW9uIHJlQXV0aFxuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItY291Y2hkYlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVBdXRoKGNvbjogYW55LCB1c2VyOiBzdHJpbmcsIHBhc3M6IHN0cmluZykge1xuICByZXR1cm4gY29uLmF1dGgodXNlciwgcGFzcyk7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFdyYXBzIGEgQ291Y2hEQiBkYXRhYmFzZSBjb25uZWN0aW9uIHdpdGggYXV0b21hdGljIHJlLWF1dGhlbnRpY2F0aW9uXG4gKiBAc3VtbWFyeSBDcmVhdGVzIGEgcHJveHkgYXJvdW5kIGEgQ291Y2hEQiBkYXRhYmFzZSBjb25uZWN0aW9uIHRoYXQgYXV0b21hdGljYWxseSByZS1hdXRoZW50aWNhdGVzIGJlZm9yZSBlYWNoIG9wZXJhdGlvblxuICogQHBhcmFtIHthbnl9IGNvbiAtIFRoZSBDb3VjaERCIGNvbm5lY3Rpb24gb2JqZWN0XG4gKiBAcGFyYW0ge3N0cmluZ30gZGJOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIGRhdGFiYXNlIHRvIHVzZVxuICogQHBhcmFtIHtzdHJpbmd9IHVzZXIgLSBUaGUgdXNlcm5hbWUgZm9yIGF1dGhlbnRpY2F0aW9uXG4gKiBAcGFyYW0ge3N0cmluZ30gcGFzcyAtIFRoZSBwYXNzd29yZCBmb3IgYXV0aGVudGljYXRpb25cbiAqIEByZXR1cm4ge2FueX0gVGhlIHdyYXBwZWQgZGF0YWJhc2UgY29ubmVjdGlvbiBvYmplY3RcbiAqIEBmdW5jdGlvbiB3cmFwRG9jdW1lbnRTY29wZVxuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItY291Y2hkYlxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBDbGllbnRcbiAqICAgcGFydGljaXBhbnQgd3JhcERvY3VtZW50U2NvcGVcbiAqICAgcGFydGljaXBhbnQgREJcbiAqICAgcGFydGljaXBhbnQgcmVBdXRoXG4gKiAgIFxuICogICBDbGllbnQtPj53cmFwRG9jdW1lbnRTY29wZTogY29uLCBkYk5hbWUsIHVzZXIsIHBhc3NcbiAqICAgd3JhcERvY3VtZW50U2NvcGUtPj5EQjogY29uLnVzZShkYk5hbWUpXG4gKiAgIE5vdGUgb3ZlciB3cmFwRG9jdW1lbnRTY29wZTogV3JhcCBEQiBtZXRob2RzIHdpdGggcmUtYXV0aFxuICogICBcbiAqICAgbG9vcCBGb3IgZWFjaCBtZXRob2QgKGluc2VydCwgZ2V0LCBwdXQsIGRlc3Ryb3ksIGZpbmQpXG4gKiAgICAgd3JhcERvY3VtZW50U2NvcGUtPj53cmFwRG9jdW1lbnRTY29wZTogU3RvcmUgb3JpZ2luYWwgbWV0aG9kXG4gKiAgICAgd3JhcERvY3VtZW50U2NvcGUtPj53cmFwRG9jdW1lbnRTY29wZTogRGVmaW5lIG5ldyBtZXRob2Qgd2l0aCByZS1hdXRoXG4gKiAgIGVuZFxuICogICBcbiAqICAgd3JhcERvY3VtZW50U2NvcGUtPj53cmFwRG9jdW1lbnRTY29wZTogQWRkIE5BVElWRSBwcm9wZXJ0eSB3aXRoIGNvbiB2YWx1ZVxuICogICB3cmFwRG9jdW1lbnRTY29wZS0tPj5DbGllbnQ6IFJldHVybiB3cmFwcGVkIERCXG4gKiAgIFxuICogICBOb3RlIG92ZXIgQ2xpZW50OiBMYXRlciB3aGVuIGNsaWVudCB1c2VzIERCIG1ldGhvZHNcbiAqICAgQ2xpZW50LT4+REI6IEFueSB3cmFwcGVkIG1ldGhvZCBjYWxsXG4gKiAgIERCLT4+cmVBdXRoOiBBdXRoZW50aWNhdGUgYmVmb3JlIG9wZXJhdGlvblxuICogICByZUF1dGgtLT4+REI6IEF1dGhlbnRpY2F0aW9uIGNvbXBsZXRlXG4gKiAgIERCLT4+REI6IENhbGwgb3JpZ2luYWwgbWV0aG9kXG4gKiAgIERCLS0+PkNsaWVudDogUmV0dXJuIHJlc3VsdFxuICovXG5leHBvcnQgZnVuY3Rpb24gd3JhcERvY3VtZW50U2NvcGUoXG4gIGNvbjogYW55LFxuICBkYk5hbWU6IHN0cmluZyxcbiAgdXNlcjogc3RyaW5nLFxuICBwYXNzOiBzdHJpbmdcbik6IGFueSB7XG4gIGNvbnN0IGRiID0gY29uLnVzZShkYk5hbWUpO1xuICBbXCJpbnNlcnRcIiwgXCJnZXRcIiwgXCJwdXRcIiwgXCJkZXN0cm95XCIsIFwiZmluZFwiXS5mb3JFYWNoKChrKSA9PiB7XG4gICAgY29uc3Qgb3JpZ2luYWwgPSAoZGIgYXMgUmVjb3JkPHN0cmluZywgYW55Pilba107XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGRiLCBrLCB7XG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgIHZhbHVlOiBhc3luYyAoLi4uYXJnczogYW55W10pID0+IHtcbiAgICAgICAgYXdhaXQgcmVBdXRoKGNvbiwgdXNlciwgcGFzcyk7XG4gICAgICAgIHJldHVybiBvcmlnaW5hbC5jYWxsKGRiLCAuLi5hcmdzKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH0pO1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZGIsIENvdWNoREJLZXlzLk5BVElWRSwge1xuICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgd3JpdGFibGU6IGZhbHNlLFxuICAgIHZhbHVlOiBjb24sXG4gIH0pO1xuICByZXR1cm4gZGI7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFRlc3RzIGlmIGFuIGF0dHJpYnV0ZSBuYW1lIGlzIHJlc2VydmVkIGluIENvdWNoREJcbiAqIEBzdW1tYXJ5IENoZWNrcyBpZiBhbiBhdHRyaWJ1dGUgbmFtZSBzdGFydHMgd2l0aCBhbiB1bmRlcnNjb3JlLCB3aGljaCBpbmRpY2F0ZXMgaXQncyBhIHJlc2VydmVkIGF0dHJpYnV0ZSBpbiBDb3VjaERCXG4gKiBAcGFyYW0ge3N0cmluZ30gYXR0ciAtIFRoZSBhdHRyaWJ1dGUgbmFtZSB0byB0ZXN0XG4gKiBAcmV0dXJuIHtSZWdFeHBNYXRjaEFycmF5fG51bGx9IFRoZSBtYXRjaCByZXN1bHQgb3IgbnVsbCBpZiBubyBtYXRjaFxuICogQGZ1bmN0aW9uIHRlc3RSZXNlcnZlZEF0dHJpYnV0ZXNcbiAqIEBtZW1iZXJPZiBtb2R1bGU6Zm9yLWNvdWNoZGJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRlc3RSZXNlcnZlZEF0dHJpYnV0ZXMoYXR0cjogc3RyaW5nKSB7XG4gIGNvbnN0IHJlZ2V4cCA9IC9eXy4qJC9nO1xuICByZXR1cm4gYXR0ci5tYXRjaChyZWdleHApO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBHZW5lcmF0ZXMgYSBuYW1lIGZvciBhIENvdWNoREIgaW5kZXhcbiAqIEBzdW1tYXJ5IENyZWF0ZXMgYSBzdGFuZGFyZGl6ZWQgbmFtZSBmb3IgYSBDb3VjaERCIGluZGV4IGJhc2VkIG9uIHRoZSB0YWJsZSwgYXR0cmlidXRlLCBjb21wb3NpdGlvbnMsIGFuZCBvcmRlclxuICogQHBhcmFtIHtzdHJpbmd9IGF0dHJpYnV0ZSAtIFRoZSBwcmltYXJ5IGF0dHJpYnV0ZSBmb3IgdGhlIGluZGV4XG4gKiBAcGFyYW0ge3N0cmluZ30gdGFibGVOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHRhYmxlXG4gKiBAcGFyYW0ge3N0cmluZ1tdfSBbY29tcG9zaXRpb25zXSAtIE9wdGlvbmFsIGFkZGl0aW9uYWwgYXR0cmlidXRlcyB0byBpbmNsdWRlIGluIHRoZSBpbmRleFxuICogQHBhcmFtIHtPcmRlckRpcmVjdGlvbn0gW29yZGVyXSAtIE9wdGlvbmFsIHNvcnQgb3JkZXIgZm9yIHRoZSBpbmRleFxuICogQHBhcmFtIHtzdHJpbmd9IFtzZXBhcmF0b3I9RGVmYXVsdFNlcGFyYXRvcl0gLSBUaGUgc2VwYXJhdG9yIHRvIHVzZSBiZXR3ZWVuIHBhcnRzIG9mIHRoZSBpbmRleCBuYW1lXG4gKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBnZW5lcmF0ZWQgaW5kZXggbmFtZVxuICogQGZ1bmN0aW9uIGdlbmVyYXRlSW5kZXhOYW1lXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmZvci1jb3VjaGRiXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZUluZGV4TmFtZShcbiAgYXR0cmlidXRlOiBzdHJpbmcsXG4gIHRhYmxlTmFtZTogc3RyaW5nLFxuICBjb21wb3NpdGlvbnM/OiBzdHJpbmdbXSxcbiAgb3JkZXI/OiBPcmRlckRpcmVjdGlvbixcbiAgc2VwYXJhdG9yID0gRGVmYXVsdFNlcGFyYXRvclxuKTogc3RyaW5nIHtcbiAgY29uc3QgYXR0ciA9IFtQZXJzaXN0ZW5jZUtleXMuSU5ERVgsIHRhYmxlTmFtZSwgYXR0cmlidXRlXTtcbiAgaWYgKGNvbXBvc2l0aW9ucykgYXR0ci5wdXNoKC4uLmNvbXBvc2l0aW9ucyk7XG4gIGlmIChvcmRlcikgYXR0ci5wdXNoKG9yZGVyKTtcbiAgcmV0dXJuIGF0dHIuam9pbihzZXBhcmF0b3IpO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBHZW5lcmF0ZXMgYSBDb3VjaERCIGluZGV4IGNvbmZpZ3VyYXRpb25cbiAqIEBzdW1tYXJ5IENyZWF0ZXMgYSBjb21wbGV0ZSBDcmVhdGVJbmRleFJlcXVlc3Qgb2JqZWN0IGZvciBkZWZpbmluZyBhIENvdWNoREIgaW5kZXggYmFzZWQgb24gc3BlY2lmaWVkIHBhcmFtZXRlcnNcbiAqIEBwYXJhbSB7c3RyaW5nfSBhdHRyaWJ1dGUgLSBUaGUgcHJpbWFyeSBhdHRyaWJ1dGUgZm9yIHRoZSBpbmRleFxuICogQHBhcmFtIHtzdHJpbmd9IHRhYmxlTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSB0YWJsZVxuICogQHBhcmFtIHtzdHJpbmdbXX0gW2NvbXBvc2l0aW9uc10gLSBPcHRpb25hbCBhZGRpdGlvbmFsIGF0dHJpYnV0ZXMgdG8gaW5jbHVkZSBpbiB0aGUgaW5kZXhcbiAqIEBwYXJhbSB7T3JkZXJEaXJlY3Rpb259IFtvcmRlcl0gLSBPcHRpb25hbCBzb3J0IG9yZGVyIGZvciB0aGUgaW5kZXhcbiAqIEBwYXJhbSB7c3RyaW5nfSBbc2VwYXJhdG9yPURlZmF1bHRTZXBhcmF0b3JdIC0gVGhlIHNlcGFyYXRvciB0byB1c2UgYmV0d2VlbiBwYXJ0cyBvZiB0aGUgaW5kZXggbmFtZVxuICogQHJldHVybiB7Q3JlYXRlSW5kZXhSZXF1ZXN0fSBUaGUgY29tcGxldGUgaW5kZXggY29uZmlndXJhdGlvbiBvYmplY3RcbiAqIEBmdW5jdGlvbiBnZW5lcmF0ZUluZGV4RG9jXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmZvci1jb3VjaGRiXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IENhbGxlclxuICogICBwYXJ0aWNpcGFudCBnZW5lcmF0ZUluZGV4RG9jXG4gKiAgIHBhcnRpY2lwYW50IGdlbmVyYXRlSW5kZXhOYW1lXG4gKiAgIFxuICogICBDYWxsZXItPj5nZW5lcmF0ZUluZGV4RG9jOiBhdHRyaWJ1dGUsIHRhYmxlTmFtZSwgY29tcG9zaXRpb25zLCBvcmRlciwgc2VwYXJhdG9yXG4gKiAgIFxuICogICBOb3RlIG92ZXIgZ2VuZXJhdGVJbmRleERvYzogQ3JlYXRlIHBhcnRpYWwgZmlsdGVyIHNlbGVjdG9yXG4gKiAgIGdlbmVyYXRlSW5kZXhEb2MtPj5nZW5lcmF0ZUluZGV4RG9jOiBTZXQgdXAgZmlsdGVyIGZvciB0YWJsZU5hbWVcbiAqICAgXG4gKiAgIGFsdCBvcmRlciBpcyBzcGVjaWZpZWRcbiAqICAgICBOb3RlIG92ZXIgZ2VuZXJhdGVJbmRleERvYzogQ3JlYXRlIG9yZGVyZWQgZmllbGRzIGFycmF5XG4gKiAgICAgZ2VuZXJhdGVJbmRleERvYy0+PmdlbmVyYXRlSW5kZXhEb2M6IENyZWF0ZSBvcmRlclByb3AgZm9yIGF0dHJpYnV0ZVxuICogICAgIGdlbmVyYXRlSW5kZXhEb2MtPj5nZW5lcmF0ZUluZGV4RG9jOiBNYXAgY29tcG9zaXRpb25zIHRvIG9yZGVyZWQgcHJvcHNcbiAqICAgICBnZW5lcmF0ZUluZGV4RG9jLT4+Z2VuZXJhdGVJbmRleERvYzogQ3JlYXRlIHNvcnRlZFRhYmxlIGZvciB0YWJsZSBmaWVsZFxuICogICAgIGdlbmVyYXRlSW5kZXhEb2MtPj5nZW5lcmF0ZUluZGV4RG9jOiBDb21iaW5lIGFsbCBvcmRlcmVkIGZpZWxkc1xuICogICBlbHNlXG4gKiAgICAgTm90ZSBvdmVyIGdlbmVyYXRlSW5kZXhEb2M6IENyZWF0ZSBzaW1wbGUgZmllbGRzIGFycmF5XG4gKiAgICAgZ2VuZXJhdGVJbmRleERvYy0+PmdlbmVyYXRlSW5kZXhEb2M6IFVzZSBhdHRyaWJ1dGUsIGNvbXBvc2l0aW9ucywgYW5kIHRhYmxlIGFzIHN0cmluZ3NcbiAqICAgZW5kXG4gKiAgIFxuICogICBnZW5lcmF0ZUluZGV4RG9jLT4+Z2VuZXJhdGVJbmRleE5hbWU6IEdlbmVyYXRlIGluZGV4IG5hbWVcbiAqICAgZ2VuZXJhdGVJbmRleE5hbWUtLT4+Z2VuZXJhdGVJbmRleERvYzogUmV0dXJuIG5hbWVcbiAqICAgXG4gKiAgIE5vdGUgb3ZlciBnZW5lcmF0ZUluZGV4RG9jOiBDcmVhdGUgZmluYWwgaW5kZXggcmVxdWVzdFxuICogICBnZW5lcmF0ZUluZGV4RG9jLS0+PkNhbGxlcjogUmV0dXJuIENyZWF0ZUluZGV4UmVxdWVzdFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVJbmRleERvYyhcbiAgYXR0cmlidXRlOiBzdHJpbmcsXG4gIHRhYmxlTmFtZTogc3RyaW5nLFxuICBjb21wb3NpdGlvbnM/OiBzdHJpbmdbXSxcbiAgb3JkZXI/OiBPcmRlckRpcmVjdGlvbixcbiAgc2VwYXJhdG9yID0gRGVmYXVsdFNlcGFyYXRvclxuKTogQ3JlYXRlSW5kZXhSZXF1ZXN0IHtcbiAgY29uc3QgcGFydGlhbEZpbHRlclNlbGVjdG9yOiBNYW5nb1NlbGVjdG9yID0ge307XG4gIHBhcnRpYWxGaWx0ZXJTZWxlY3RvcltDb3VjaERCS2V5cy5UQUJMRV0gPSB7fSBhcyBNYW5nb1NlbGVjdG9yO1xuICAocGFydGlhbEZpbHRlclNlbGVjdG9yW0NvdWNoREJLZXlzLlRBQkxFXSBhcyBNYW5nb1NlbGVjdG9yKVtcbiAgICBDb3VjaERCT3BlcmF0b3IuRVFVQUxcbiAgXSA9IHRhYmxlTmFtZTtcbiAgbGV0IGZpZWxkczogU29ydE9yZGVyW107XG4gIGlmIChvcmRlcikge1xuICAgIGNvbnN0IG9yZGVyUHJvcDogU29ydE9yZGVyID0ge307XG4gICAgb3JkZXJQcm9wW2F0dHJpYnV0ZV0gPSBvcmRlciBhcyBcImFzY1wiIHwgXCJkZXNjXCI7XG4gICAgY29uc3Qgc29ydGVkQ29tcG9zaXRpb25zOiBTb3J0T3JkZXJbXSA9IChjb21wb3NpdGlvbnMgfHwgW10pLm1hcCgoYykgPT4ge1xuICAgICAgY29uc3QgcjogU29ydE9yZGVyID0ge307XG4gICAgICByW2NdID0gb3JkZXIgYXMgXCJhc2NcIiB8IFwiZGVzY1wiO1xuICAgICAgcmV0dXJuIHI7XG4gICAgfSk7XG4gICAgY29uc3Qgc29ydGVkVGFibGU6IFNvcnRPcmRlciA9IHt9O1xuICAgIHNvcnRlZFRhYmxlW0NvdWNoREJLZXlzLlRBQkxFXSA9IG9yZGVyIGFzIFwiYXNjXCIgfCBcImRlc2NcIjtcbiAgICBmaWVsZHMgPSBbb3JkZXJQcm9wLCAuLi5zb3J0ZWRDb21wb3NpdGlvbnMsIHNvcnRlZFRhYmxlXTtcbiAgfSBlbHNlIHtcbiAgICBmaWVsZHMgPSBbYXR0cmlidXRlLCAuLi4oY29tcG9zaXRpb25zIHx8IFtdKSwgQ291Y2hEQktleXMuVEFCTEVdO1xuICB9XG4gIGNvbnN0IG5hbWUgPSBnZW5lcmF0ZUluZGV4TmFtZShcbiAgICBhdHRyaWJ1dGUsXG4gICAgdGFibGVOYW1lLFxuICAgIGNvbXBvc2l0aW9ucyxcbiAgICBvcmRlcixcbiAgICBzZXBhcmF0b3JcbiAgKTtcbiAgcmV0dXJuIHtcbiAgICBpbmRleDoge1xuICAgICAgZmllbGRzOiBmaWVsZHMsXG4gICAgICAvLyBwYXJ0aWFsX2ZpbHRlcl9zZWxlY3RvcjogcGFydGlhbEZpbHRlclNlbGVjdG9yLFxuICAgIH0sXG4gICAgZGRvYzogW25hbWUsIENvdWNoREJLZXlzLkRET0NdLmpvaW4oc2VwYXJhdG9yKSxcbiAgICBuYW1lOiBuYW1lLFxuICB9O1xufVxuIl19