@decaf-ts/for-typeorm 0.0.6

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 (109) hide show
  1. package/LICENSE.md +21 -0
  2. package/README.md +93 -0
  3. package/dist/for-typeorm.cjs +2553 -0
  4. package/dist/for-typeorm.esm.cjs +2538 -0
  5. package/lib/TypeORMAdapter.cjs +1129 -0
  6. package/lib/TypeORMAdapter.d.ts +221 -0
  7. package/lib/TypeORMDispatch.cjs +134 -0
  8. package/lib/TypeORMDispatch.d.ts +87 -0
  9. package/lib/TypeORMEventSubscriber.cjs +96 -0
  10. package/lib/TypeORMEventSubscriber.d.ts +56 -0
  11. package/lib/TypeORMRepository.cjs +209 -0
  12. package/lib/TypeORMRepository.d.ts +125 -0
  13. package/lib/constants.cjs +43 -0
  14. package/lib/constants.d.ts +39 -0
  15. package/lib/errors.cjs +28 -0
  16. package/lib/errors.d.ts +21 -0
  17. package/lib/esm/TypeORMAdapter.d.ts +221 -0
  18. package/lib/esm/TypeORMAdapter.js +1124 -0
  19. package/lib/esm/TypeORMDispatch.d.ts +87 -0
  20. package/lib/esm/TypeORMDispatch.js +130 -0
  21. package/lib/esm/TypeORMEventSubscriber.d.ts +56 -0
  22. package/lib/esm/TypeORMEventSubscriber.js +93 -0
  23. package/lib/esm/TypeORMRepository.d.ts +125 -0
  24. package/lib/esm/TypeORMRepository.js +206 -0
  25. package/lib/esm/constants.d.ts +39 -0
  26. package/lib/esm/constants.js +40 -0
  27. package/lib/esm/errors.d.ts +21 -0
  28. package/lib/esm/errors.js +24 -0
  29. package/lib/esm/index.d.ts +22 -0
  30. package/lib/esm/index.js +25 -0
  31. package/lib/esm/indexes/generator.d.ts +50 -0
  32. package/lib/esm/indexes/generator.js +95 -0
  33. package/lib/esm/indexes/index.d.ts +1 -0
  34. package/lib/esm/indexes/index.js +2 -0
  35. package/lib/esm/overrides/Column.d.ts +74 -0
  36. package/lib/esm/overrides/Column.js +70 -0
  37. package/lib/esm/overrides/CreateDateColumn.d.ts +2 -0
  38. package/lib/esm/overrides/CreateDateColumn.js +9 -0
  39. package/lib/esm/overrides/Entity.d.ts +11 -0
  40. package/lib/esm/overrides/Entity.js +28 -0
  41. package/lib/esm/overrides/PrimaryColumn.d.ts +20 -0
  42. package/lib/esm/overrides/PrimaryColumn.js +53 -0
  43. package/lib/esm/overrides/PrimaryGeneratedColumn.d.ts +24 -0
  44. package/lib/esm/overrides/PrimaryGeneratedColumn.js +51 -0
  45. package/lib/esm/overrides/UpdateDateColumn.d.ts +2 -0
  46. package/lib/esm/overrides/UpdateDateColumn.js +9 -0
  47. package/lib/esm/overrides/utils.d.ts +2 -0
  48. package/lib/esm/overrides/utils.js +29 -0
  49. package/lib/esm/query/Paginator.d.ts +86 -0
  50. package/lib/esm/query/Paginator.js +124 -0
  51. package/lib/esm/query/Statement.d.ts +131 -0
  52. package/lib/esm/query/Statement.js +242 -0
  53. package/lib/esm/query/constants.d.ts +52 -0
  54. package/lib/esm/query/constants.js +74 -0
  55. package/lib/esm/query/index.d.ts +4 -0
  56. package/lib/esm/query/index.js +5 -0
  57. package/lib/esm/query/translate.d.ts +34 -0
  58. package/lib/esm/query/translate.js +42 -0
  59. package/lib/esm/raw/postgres.d.ts +36 -0
  60. package/lib/esm/raw/postgres.js +2 -0
  61. package/lib/esm/sequences/Sequence.d.ts +67 -0
  62. package/lib/esm/sequences/Sequence.js +117 -0
  63. package/lib/esm/sequences/index.d.ts +1 -0
  64. package/lib/esm/sequences/index.js +2 -0
  65. package/lib/esm/types.d.ts +67 -0
  66. package/lib/esm/types.js +28 -0
  67. package/lib/esm/utils.d.ts +16 -0
  68. package/lib/esm/utils.js +29 -0
  69. package/lib/index.cjs +42 -0
  70. package/lib/index.d.ts +22 -0
  71. package/lib/indexes/generator.cjs +98 -0
  72. package/lib/indexes/generator.d.ts +50 -0
  73. package/lib/indexes/index.cjs +18 -0
  74. package/lib/indexes/index.d.ts +1 -0
  75. package/lib/overrides/Column.cjs +73 -0
  76. package/lib/overrides/Column.d.ts +74 -0
  77. package/lib/overrides/CreateDateColumn.cjs +12 -0
  78. package/lib/overrides/CreateDateColumn.d.ts +2 -0
  79. package/lib/overrides/Entity.cjs +31 -0
  80. package/lib/overrides/Entity.d.ts +11 -0
  81. package/lib/overrides/PrimaryColumn.cjs +56 -0
  82. package/lib/overrides/PrimaryColumn.d.ts +20 -0
  83. package/lib/overrides/PrimaryGeneratedColumn.cjs +54 -0
  84. package/lib/overrides/PrimaryGeneratedColumn.d.ts +24 -0
  85. package/lib/overrides/UpdateDateColumn.cjs +12 -0
  86. package/lib/overrides/UpdateDateColumn.d.ts +2 -0
  87. package/lib/overrides/utils.cjs +32 -0
  88. package/lib/overrides/utils.d.ts +2 -0
  89. package/lib/query/Paginator.cjs +128 -0
  90. package/lib/query/Paginator.d.ts +86 -0
  91. package/lib/query/Statement.cjs +246 -0
  92. package/lib/query/Statement.d.ts +131 -0
  93. package/lib/query/constants.cjs +77 -0
  94. package/lib/query/constants.d.ts +52 -0
  95. package/lib/query/index.cjs +21 -0
  96. package/lib/query/index.d.ts +4 -0
  97. package/lib/query/translate.cjs +45 -0
  98. package/lib/query/translate.d.ts +34 -0
  99. package/lib/raw/postgres.cjs +3 -0
  100. package/lib/raw/postgres.d.ts +36 -0
  101. package/lib/sequences/Sequence.cjs +121 -0
  102. package/lib/sequences/Sequence.d.ts +67 -0
  103. package/lib/sequences/index.cjs +18 -0
  104. package/lib/sequences/index.d.ts +1 -0
  105. package/lib/types.cjs +31 -0
  106. package/lib/types.d.ts +67 -0
  107. package/lib/utils.cjs +32 -0
  108. package/lib/utils.d.ts +16 -0
  109. package/package.json +128 -0
@@ -0,0 +1,74 @@
1
+ import { SQLOperator } from "./../types.js";
2
+ /**
3
+ * @description Default query limit for TypeORM-backed queries.
4
+ * @summary Maximum number of records to return in a single page when paginating results.
5
+ * @const TypeORMQueryLimit
6
+ * @memberOf module:for-typeorm
7
+ */
8
+ export const TypeORMQueryLimit = 250;
9
+ /**
10
+ * @description Mapping of operator names to SQL operators.
11
+ * @summary Constants for comparison operators used when translating high-level filters into SQL via TypeORM.
12
+ * @typedef {Object} PostgreSQLOperatorType
13
+ * @property {string} EQUAL Equality operator (=)
14
+ * @property {string} DIFFERENT Inequality operator (<>)
15
+ * @property {string} BIGGER Greater than operator (>)
16
+ * @property {string} BIGGER_EQ Greater than or equal operator (>=)
17
+ * @property {string} SMALLER Less than operator (<)
18
+ * @property {string} SMALLER_EQ Less than or equal operator (<=)
19
+ * @property {string} NOT Negation operator (NOT)
20
+ * @property {string} IN In array operator (IN)
21
+ * @property {string} REGEXP Regular expression operator (~)
22
+ * @property {string} IREGEXP Case-insensitive regular expression operator (~*)
23
+ * @property {string} LIKE Pattern matching operator (LIKE)
24
+ * @property {string} ILIKE Case-insensitive pattern matching operator (ILIKE)
25
+ * @property {string} BETWEEN Range operator (BETWEEN)
26
+ * @property {string} IS_NULL NULL check operator (IS NULL)
27
+ * @property {string} IS_NOT_NULL NOT NULL check operator (IS NOT NULL)
28
+ * @const TypeORMOperator
29
+ * @type {PostgreSQLOperatorType}
30
+ * @memberOf module:for-typeorm
31
+ */
32
+ export const TypeORMOperator = {
33
+ EQUAL: SQLOperator.EQUAL,
34
+ DIFFERENT: SQLOperator.NOT_EQUAL,
35
+ BIGGER: SQLOperator.GREATER_THAN,
36
+ BIGGER_EQ: SQLOperator.GREATER_THAN_OR_EQUAL,
37
+ SMALLER: SQLOperator.LESS_THAN,
38
+ SMALLER_EQ: SQLOperator.LESS_THAN_OR_EQUAL,
39
+ BETWEEN: SQLOperator.BETWEEN,
40
+ NOT: "NOT",
41
+ IN: SQLOperator.IN,
42
+ IS_NULL: SQLOperator.IS_NULL,
43
+ IS_NOT_NULL: SQLOperator.IS_NOT_NULL,
44
+ REGEXP: "~",
45
+ IREGEXP: "~*",
46
+ LIKE: SQLOperator.LIKE,
47
+ ILIKE: SQLOperator.ILIKE,
48
+ };
49
+ /**
50
+ * @description Mapping of logical operator names to SQL operators.
51
+ * @summary Constants for logical operators used when building WHERE clause groups in TypeORM queries.
52
+ * @typedef {Object} PostgreSQLGroupOperatorType
53
+ * @property {string} AND Logical AND operator (AND)
54
+ * @property {string} OR Logical OR operator (OR)
55
+ * @const TypeORMGroupOperator
56
+ * @type {PostgreSQLGroupOperatorType}
57
+ * @memberOf module:for-typeorm
58
+ */
59
+ export const TypeORMGroupOperator = {
60
+ AND: "AND",
61
+ OR: "OR",
62
+ };
63
+ /**
64
+ * @description Special constant values used in queries.
65
+ * @summary String constants representing special values used while composing SQL with TypeORM.
66
+ * @typedef {Object} PostgreSQLConstType
67
+ * @property {string} NULL String representation of null value.
68
+ * @const TypeORMConst
69
+ * @memberOf module:for-typeorm
70
+ */
71
+ export const TypeORMConst = {
72
+ NULL: "NULL",
73
+ };
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3F1ZXJ5L2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLHNCQUFpQjtBQUV2Qzs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLEdBQUcsQ0FBQztBQUVyQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUNILE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBeUM7SUFDbkUsS0FBSyxFQUFFLFdBQVcsQ0FBQyxLQUFLO0lBQ3hCLFNBQVMsRUFBRSxXQUFXLENBQUMsU0FBUztJQUNoQyxNQUFNLEVBQUUsV0FBVyxDQUFDLFlBQVk7SUFDaEMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxxQkFBcUI7SUFDNUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxTQUFTO0lBQzlCLFVBQVUsRUFBRSxXQUFXLENBQUMsa0JBQWtCO0lBQzFDLE9BQU8sRUFBRSxXQUFXLENBQUMsT0FBTztJQUM1QixHQUFHLEVBQUUsS0FBSztJQUNWLEVBQUUsRUFBRSxXQUFXLENBQUMsRUFBRTtJQUNsQixPQUFPLEVBQUUsV0FBVyxDQUFDLE9BQU87SUFDNUIsV0FBVyxFQUFFLFdBQVcsQ0FBQyxXQUFXO0lBQ3BDLE1BQU0sRUFBRSxHQUFHO0lBQ1gsT0FBTyxFQUFFLElBQUk7SUFDYixJQUFJLEVBQUUsV0FBVyxDQUFDLElBQUk7SUFDdEIsS0FBSyxFQUFFLFdBQVcsQ0FBQyxLQUFLO0NBQ3pCLENBQUM7QUFFRjs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBMkI7SUFDMUQsR0FBRyxFQUFFLEtBQUs7SUFDVixFQUFFLEVBQUUsSUFBSTtDQUNULENBQUM7QUFFRjs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUEyQjtJQUNsRCxJQUFJLEVBQUUsTUFBTTtDQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTUUxPcGVyYXRvciB9IGZyb20gXCIuLi90eXBlc1wiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBEZWZhdWx0IHF1ZXJ5IGxpbWl0IGZvciBUeXBlT1JNLWJhY2tlZCBxdWVyaWVzLlxuICogQHN1bW1hcnkgTWF4aW11bSBudW1iZXIgb2YgcmVjb3JkcyB0byByZXR1cm4gaW4gYSBzaW5nbGUgcGFnZSB3aGVuIHBhZ2luYXRpbmcgcmVzdWx0cy5cbiAqIEBjb25zdCBUeXBlT1JNUXVlcnlMaW1pdFxuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItdHlwZW9ybVxuICovXG5leHBvcnQgY29uc3QgVHlwZU9STVF1ZXJ5TGltaXQgPSAyNTA7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIE1hcHBpbmcgb2Ygb3BlcmF0b3IgbmFtZXMgdG8gU1FMIG9wZXJhdG9ycy5cbiAqIEBzdW1tYXJ5IENvbnN0YW50cyBmb3IgY29tcGFyaXNvbiBvcGVyYXRvcnMgdXNlZCB3aGVuIHRyYW5zbGF0aW5nIGhpZ2gtbGV2ZWwgZmlsdGVycyBpbnRvIFNRTCB2aWEgVHlwZU9STS5cbiAqIEB0eXBlZGVmIHtPYmplY3R9IFBvc3RncmVTUUxPcGVyYXRvclR5cGVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBFUVVBTCBFcXVhbGl0eSBvcGVyYXRvciAoPSlcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBESUZGRVJFTlQgSW5lcXVhbGl0eSBvcGVyYXRvciAoPD4pXG4gKiBAcHJvcGVydHkge3N0cmluZ30gQklHR0VSIEdyZWF0ZXIgdGhhbiBvcGVyYXRvciAoPilcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBCSUdHRVJfRVEgR3JlYXRlciB0aGFuIG9yIGVxdWFsIG9wZXJhdG9yICg+PSlcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBTTUFMTEVSIExlc3MgdGhhbiBvcGVyYXRvciAoPClcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBTTUFMTEVSX0VRIExlc3MgdGhhbiBvciBlcXVhbCBvcGVyYXRvciAoPD0pXG4gKiBAcHJvcGVydHkge3N0cmluZ30gTk9UIE5lZ2F0aW9uIG9wZXJhdG9yIChOT1QpXG4gKiBAcHJvcGVydHkge3N0cmluZ30gSU4gSW4gYXJyYXkgb3BlcmF0b3IgKElOKVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFJFR0VYUCBSZWd1bGFyIGV4cHJlc3Npb24gb3BlcmF0b3IgKH4pXG4gKiBAcHJvcGVydHkge3N0cmluZ30gSVJFR0VYUCBDYXNlLWluc2Vuc2l0aXZlIHJlZ3VsYXIgZXhwcmVzc2lvbiBvcGVyYXRvciAofiopXG4gKiBAcHJvcGVydHkge3N0cmluZ30gTElLRSBQYXR0ZXJuIG1hdGNoaW5nIG9wZXJhdG9yIChMSUtFKVxuICogQHByb3BlcnR5IHtzdHJpbmd9IElMSUtFIENhc2UtaW5zZW5zaXRpdmUgcGF0dGVybiBtYXRjaGluZyBvcGVyYXRvciAoSUxJS0UpXG4gKiBAcHJvcGVydHkge3N0cmluZ30gQkVUV0VFTiBSYW5nZSBvcGVyYXRvciAoQkVUV0VFTilcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBJU19OVUxMIE5VTEwgY2hlY2sgb3BlcmF0b3IgKElTIE5VTEwpXG4gKiBAcHJvcGVydHkge3N0cmluZ30gSVNfTk9UX05VTEwgTk9UIE5VTEwgY2hlY2sgb3BlcmF0b3IgKElTIE5PVCBOVUxMKVxuICogQGNvbnN0IFR5cGVPUk1PcGVyYXRvclxuICogQHR5cGUge1Bvc3RncmVTUUxPcGVyYXRvclR5cGV9XG4gKiBAbWVtYmVyT2YgbW9kdWxlOmZvci10eXBlb3JtXG4gKi9cbmV4cG9ydCBjb25zdCBUeXBlT1JNT3BlcmF0b3I6IFJlY29yZDxzdHJpbmcsIFNRTE9wZXJhdG9yIHwgc3RyaW5nPiA9IHtcbiAgRVFVQUw6IFNRTE9wZXJhdG9yLkVRVUFMLFxuICBESUZGRVJFTlQ6IFNRTE9wZXJhdG9yLk5PVF9FUVVBTCxcbiAgQklHR0VSOiBTUUxPcGVyYXRvci5HUkVBVEVSX1RIQU4sXG4gIEJJR0dFUl9FUTogU1FMT3BlcmF0b3IuR1JFQVRFUl9USEFOX09SX0VRVUFMLFxuICBTTUFMTEVSOiBTUUxPcGVyYXRvci5MRVNTX1RIQU4sXG4gIFNNQUxMRVJfRVE6IFNRTE9wZXJhdG9yLkxFU1NfVEhBTl9PUl9FUVVBTCxcbiAgQkVUV0VFTjogU1FMT3BlcmF0b3IuQkVUV0VFTixcbiAgTk9UOiBcIk5PVFwiLFxuICBJTjogU1FMT3BlcmF0b3IuSU4sXG4gIElTX05VTEw6IFNRTE9wZXJhdG9yLklTX05VTEwsXG4gIElTX05PVF9OVUxMOiBTUUxPcGVyYXRvci5JU19OT1RfTlVMTCxcbiAgUkVHRVhQOiBcIn5cIixcbiAgSVJFR0VYUDogXCJ+KlwiLFxuICBMSUtFOiBTUUxPcGVyYXRvci5MSUtFLFxuICBJTElLRTogU1FMT3BlcmF0b3IuSUxJS0UsXG59O1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBNYXBwaW5nIG9mIGxvZ2ljYWwgb3BlcmF0b3IgbmFtZXMgdG8gU1FMIG9wZXJhdG9ycy5cbiAqIEBzdW1tYXJ5IENvbnN0YW50cyBmb3IgbG9naWNhbCBvcGVyYXRvcnMgdXNlZCB3aGVuIGJ1aWxkaW5nIFdIRVJFIGNsYXVzZSBncm91cHMgaW4gVHlwZU9STSBxdWVyaWVzLlxuICogQHR5cGVkZWYge09iamVjdH0gUG9zdGdyZVNRTEdyb3VwT3BlcmF0b3JUeXBlXG4gKiBAcHJvcGVydHkge3N0cmluZ30gQU5EIExvZ2ljYWwgQU5EIG9wZXJhdG9yIChBTkQpXG4gKiBAcHJvcGVydHkge3N0cmluZ30gT1IgTG9naWNhbCBPUiBvcGVyYXRvciAoT1IpXG4gKiBAY29uc3QgVHlwZU9STUdyb3VwT3BlcmF0b3JcbiAqIEB0eXBlIHtQb3N0Z3JlU1FMR3JvdXBPcGVyYXRvclR5cGV9XG4gKiBAbWVtYmVyT2YgbW9kdWxlOmZvci10eXBlb3JtXG4gKi9cbmV4cG9ydCBjb25zdCBUeXBlT1JNR3JvdXBPcGVyYXRvcjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgQU5EOiBcIkFORFwiLFxuICBPUjogXCJPUlwiLFxufTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gU3BlY2lhbCBjb25zdGFudCB2YWx1ZXMgdXNlZCBpbiBxdWVyaWVzLlxuICogQHN1bW1hcnkgU3RyaW5nIGNvbnN0YW50cyByZXByZXNlbnRpbmcgc3BlY2lhbCB2YWx1ZXMgdXNlZCB3aGlsZSBjb21wb3NpbmcgU1FMIHdpdGggVHlwZU9STS5cbiAqIEB0eXBlZGVmIHtPYmplY3R9IFBvc3RncmVTUUxDb25zdFR5cGVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBOVUxMIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBudWxsIHZhbHVlLlxuICogQGNvbnN0IFR5cGVPUk1Db25zdFxuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItdHlwZW9ybVxuICovXG5leHBvcnQgY29uc3QgVHlwZU9STUNvbnN0OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBOVUxMOiBcIk5VTExcIixcbn07XG4iXX0=
@@ -0,0 +1,4 @@
1
+ export * from "./constants";
2
+ export * from "./Paginator";
3
+ export * from "./Statement";
4
+ export * from "./translate";
@@ -0,0 +1,5 @@
1
+ export * from "./constants.js";
2
+ export * from "./Paginator.js";
3
+ export * from "./Statement.js";
4
+ export * from "./translate.js";
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcXVlcnkvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQTRCO0FBQzVCLCtCQUE0QjtBQUM1QiwrQkFBNEI7QUFDNUIsK0JBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9QYWdpbmF0b3JcIjtcbmV4cG9ydCAqIGZyb20gXCIuL1N0YXRlbWVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdHJhbnNsYXRlXCI7XG4iXX0=
@@ -0,0 +1,34 @@
1
+ import { GroupOperator, Operator } from "@decaf-ts/core";
2
+ import { SQLOperator } from "../types";
3
+ /**
4
+ * @description Translates core operators to TypeORM SQL operators.
5
+ * @summary Converts Decaf.ts core operators to their equivalent SQL operators used by the TypeORM adapter.
6
+ * @param {GroupOperator | Operator} operator The core operator to translate.
7
+ * @return {SQLOperator | string} The equivalent SQL operator.
8
+ * @throws {QueryError} If no translation exists for the given operator.
9
+ * @function translateOperators
10
+ * @memberOf module:for-typeorm
11
+ * @mermaid
12
+ * sequenceDiagram
13
+ * participant Caller
14
+ * participant translateOperators
15
+ * participant PostgreSQLOperator
16
+ * participant PostgreSQLGroupOperator
17
+ *
18
+ * Caller->>translateOperators: operator
19
+ *
20
+ * translateOperators->>PostgreSQLOperator: Check for match
21
+ * alt Found in PostgreSQLOperator
22
+ * PostgreSQLOperator-->>translateOperators: Return matching operator
23
+ * translateOperators-->>Caller: Return SQLOperator
24
+ * else Not found
25
+ * translateOperators->>PostgreSQLGroupOperator: Check for match
26
+ * alt Found in PostgreSQLGroupOperator
27
+ * PostgreSQLGroupOperator-->>translateOperators: Return matching operator
28
+ * translateOperators-->>Caller: Return string
29
+ * else Not found
30
+ * translateOperators-->>Caller: Throw QueryError
31
+ * end
32
+ * end
33
+ */
34
+ export declare function translateOperators(operator: GroupOperator | Operator): SQLOperator | string;
@@ -0,0 +1,42 @@
1
+ import { TypeORMGroupOperator, TypeORMOperator } from "./constants.js";
2
+ import { QueryError } from "@decaf-ts/core";
3
+ /**
4
+ * @description Translates core operators to TypeORM SQL operators.
5
+ * @summary Converts Decaf.ts core operators to their equivalent SQL operators used by the TypeORM adapter.
6
+ * @param {GroupOperator | Operator} operator The core operator to translate.
7
+ * @return {SQLOperator | string} The equivalent SQL operator.
8
+ * @throws {QueryError} If no translation exists for the given operator.
9
+ * @function translateOperators
10
+ * @memberOf module:for-typeorm
11
+ * @mermaid
12
+ * sequenceDiagram
13
+ * participant Caller
14
+ * participant translateOperators
15
+ * participant PostgreSQLOperator
16
+ * participant PostgreSQLGroupOperator
17
+ *
18
+ * Caller->>translateOperators: operator
19
+ *
20
+ * translateOperators->>PostgreSQLOperator: Check for match
21
+ * alt Found in PostgreSQLOperator
22
+ * PostgreSQLOperator-->>translateOperators: Return matching operator
23
+ * translateOperators-->>Caller: Return SQLOperator
24
+ * else Not found
25
+ * translateOperators->>PostgreSQLGroupOperator: Check for match
26
+ * alt Found in PostgreSQLGroupOperator
27
+ * PostgreSQLGroupOperator-->>translateOperators: Return matching operator
28
+ * translateOperators-->>Caller: Return string
29
+ * else Not found
30
+ * translateOperators-->>Caller: Throw QueryError
31
+ * end
32
+ * end
33
+ */
34
+ export function translateOperators(operator) {
35
+ for (const operators of [TypeORMOperator, TypeORMGroupOperator]) {
36
+ const el = Object.keys(operators).find((k) => k === operator);
37
+ if (el)
38
+ return operators[el];
39
+ }
40
+ throw new QueryError(`Could not find adapter translation for operator ${operator}`);
41
+ }
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3F1ZXJ5L3RyYW5zbGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsZUFBZSxFQUFFLHVCQUFvQjtBQUNwRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHNUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQThCRztBQUNILE1BQU0sVUFBVSxrQkFBa0IsQ0FDaEMsUUFBa0M7SUFFbEMsS0FBSyxNQUFNLFNBQVMsSUFBSSxDQUFDLGVBQWUsRUFBRSxvQkFBb0IsQ0FBQyxFQUFFLENBQUM7UUFDaEUsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQztRQUM5RCxJQUFJLEVBQUU7WUFBRSxPQUFPLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBQ0QsTUFBTSxJQUFJLFVBQVUsQ0FDbEIsbURBQW1ELFFBQVEsRUFBRSxDQUM5RCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdyb3VwT3BlcmF0b3IsIE9wZXJhdG9yIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBUeXBlT1JNR3JvdXBPcGVyYXRvciwgVHlwZU9STU9wZXJhdG9yIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBRdWVyeUVycm9yIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBTUUxPcGVyYXRvciB9IGZyb20gXCIuLi90eXBlc1wiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBUcmFuc2xhdGVzIGNvcmUgb3BlcmF0b3JzIHRvIFR5cGVPUk0gU1FMIG9wZXJhdG9ycy5cbiAqIEBzdW1tYXJ5IENvbnZlcnRzIERlY2FmLnRzIGNvcmUgb3BlcmF0b3JzIHRvIHRoZWlyIGVxdWl2YWxlbnQgU1FMIG9wZXJhdG9ycyB1c2VkIGJ5IHRoZSBUeXBlT1JNIGFkYXB0ZXIuXG4gKiBAcGFyYW0ge0dyb3VwT3BlcmF0b3IgfCBPcGVyYXRvcn0gb3BlcmF0b3IgVGhlIGNvcmUgb3BlcmF0b3IgdG8gdHJhbnNsYXRlLlxuICogQHJldHVybiB7U1FMT3BlcmF0b3IgfCBzdHJpbmd9IFRoZSBlcXVpdmFsZW50IFNRTCBvcGVyYXRvci5cbiAqIEB0aHJvd3Mge1F1ZXJ5RXJyb3J9IElmIG5vIHRyYW5zbGF0aW9uIGV4aXN0cyBmb3IgdGhlIGdpdmVuIG9wZXJhdG9yLlxuICogQGZ1bmN0aW9uIHRyYW5zbGF0ZU9wZXJhdG9yc1xuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItdHlwZW9ybVxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBDYWxsZXJcbiAqICAgcGFydGljaXBhbnQgdHJhbnNsYXRlT3BlcmF0b3JzXG4gKiAgIHBhcnRpY2lwYW50IFBvc3RncmVTUUxPcGVyYXRvclxuICogICBwYXJ0aWNpcGFudCBQb3N0Z3JlU1FMR3JvdXBPcGVyYXRvclxuICpcbiAqICAgQ2FsbGVyLT4+dHJhbnNsYXRlT3BlcmF0b3JzOiBvcGVyYXRvclxuICpcbiAqICAgdHJhbnNsYXRlT3BlcmF0b3JzLT4+UG9zdGdyZVNRTE9wZXJhdG9yOiBDaGVjayBmb3IgbWF0Y2hcbiAqICAgYWx0IEZvdW5kIGluIFBvc3RncmVTUUxPcGVyYXRvclxuICogICAgIFBvc3RncmVTUUxPcGVyYXRvci0tPj50cmFuc2xhdGVPcGVyYXRvcnM6IFJldHVybiBtYXRjaGluZyBvcGVyYXRvclxuICogICAgIHRyYW5zbGF0ZU9wZXJhdG9ycy0tPj5DYWxsZXI6IFJldHVybiBTUUxPcGVyYXRvclxuICogICBlbHNlIE5vdCBmb3VuZFxuICogICAgIHRyYW5zbGF0ZU9wZXJhdG9ycy0+PlBvc3RncmVTUUxHcm91cE9wZXJhdG9yOiBDaGVjayBmb3IgbWF0Y2hcbiAqICAgICBhbHQgRm91bmQgaW4gUG9zdGdyZVNRTEdyb3VwT3BlcmF0b3JcbiAqICAgICAgIFBvc3RncmVTUUxHcm91cE9wZXJhdG9yLS0+PnRyYW5zbGF0ZU9wZXJhdG9yczogUmV0dXJuIG1hdGNoaW5nIG9wZXJhdG9yXG4gKiAgICAgICB0cmFuc2xhdGVPcGVyYXRvcnMtLT4+Q2FsbGVyOiBSZXR1cm4gc3RyaW5nXG4gKiAgICAgZWxzZSBOb3QgZm91bmRcbiAqICAgICAgIHRyYW5zbGF0ZU9wZXJhdG9ycy0tPj5DYWxsZXI6IFRocm93IFF1ZXJ5RXJyb3JcbiAqICAgICBlbmRcbiAqICAgZW5kXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2xhdGVPcGVyYXRvcnMoXG4gIG9wZXJhdG9yOiBHcm91cE9wZXJhdG9yIHwgT3BlcmF0b3Jcbik6IFNRTE9wZXJhdG9yIHwgc3RyaW5nIHtcbiAgZm9yIChjb25zdCBvcGVyYXRvcnMgb2YgW1R5cGVPUk1PcGVyYXRvciwgVHlwZU9STUdyb3VwT3BlcmF0b3JdKSB7XG4gICAgY29uc3QgZWwgPSBPYmplY3Qua2V5cyhvcGVyYXRvcnMpLmZpbmQoKGspID0+IGsgPT09IG9wZXJhdG9yKTtcbiAgICBpZiAoZWwpIHJldHVybiBvcGVyYXRvcnNbZWxdO1xuICB9XG4gIHRocm93IG5ldyBRdWVyeUVycm9yKFxuICAgIGBDb3VsZCBub3QgZmluZCBhZGFwdGVyIHRyYW5zbGF0aW9uIGZvciBvcGVyYXRvciAke29wZXJhdG9yfWBcbiAgKTtcbn1cbiJdfQ==
@@ -0,0 +1,36 @@
1
+ /**
2
+ * @description Definition of a PostgreSQL result field.
3
+ * @summary Describes metadata for a column returned in a PostgreSQL query result, including identifiers and type information.
4
+ * @interface FieldDef
5
+ * @memberOf module:for-typeorm
6
+ */
7
+ export interface FieldDef {
8
+ name: string;
9
+ tableID: number;
10
+ columnID: number;
11
+ dataTypeID: number;
12
+ dataTypeSize: number;
13
+ dataTypeModifier: number;
14
+ format: string;
15
+ }
16
+ /**
17
+ * @description Base shape for PostgreSQL query results.
18
+ * @summary Contains common properties present in all PostgreSQL query results such as the executed command, row count, oid, and fields metadata.
19
+ * @interface QueryResultBase
20
+ * @memberOf module:for-typeorm
21
+ */
22
+ export interface QueryResultBase {
23
+ command: string;
24
+ rowCount: number | null;
25
+ oid: number;
26
+ fields: FieldDef[];
27
+ }
28
+ export interface QueryResultRow {
29
+ [column: string]: any;
30
+ }
31
+ export interface QueryResult<R extends QueryResultRow = any> extends QueryResultBase {
32
+ rows: R[];
33
+ }
34
+ export interface QueryArrayResult<R extends any[] = any[]> extends QueryResultBase {
35
+ rows: R[];
36
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zdGdyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcmF3L3Bvc3RncmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBkZXNjcmlwdGlvbiBEZWZpbml0aW9uIG9mIGEgUG9zdGdyZVNRTCByZXN1bHQgZmllbGQuXG4gKiBAc3VtbWFyeSBEZXNjcmliZXMgbWV0YWRhdGEgZm9yIGEgY29sdW1uIHJldHVybmVkIGluIGEgUG9zdGdyZVNRTCBxdWVyeSByZXN1bHQsIGluY2x1ZGluZyBpZGVudGlmaWVycyBhbmQgdHlwZSBpbmZvcm1hdGlvbi5cbiAqIEBpbnRlcmZhY2UgRmllbGREZWZcbiAqIEBtZW1iZXJPZiBtb2R1bGU6Zm9yLXR5cGVvcm1cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGaWVsZERlZiB7XG4gIG5hbWU6IHN0cmluZztcbiAgdGFibGVJRDogbnVtYmVyO1xuICBjb2x1bW5JRDogbnVtYmVyO1xuICBkYXRhVHlwZUlEOiBudW1iZXI7XG4gIGRhdGFUeXBlU2l6ZTogbnVtYmVyO1xuICBkYXRhVHlwZU1vZGlmaWVyOiBudW1iZXI7XG4gIGZvcm1hdDogc3RyaW5nO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBCYXNlIHNoYXBlIGZvciBQb3N0Z3JlU1FMIHF1ZXJ5IHJlc3VsdHMuXG4gKiBAc3VtbWFyeSBDb250YWlucyBjb21tb24gcHJvcGVydGllcyBwcmVzZW50IGluIGFsbCBQb3N0Z3JlU1FMIHF1ZXJ5IHJlc3VsdHMgc3VjaCBhcyB0aGUgZXhlY3V0ZWQgY29tbWFuZCwgcm93IGNvdW50LCBvaWQsIGFuZCBmaWVsZHMgbWV0YWRhdGEuXG4gKiBAaW50ZXJmYWNlIFF1ZXJ5UmVzdWx0QmFzZVxuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItdHlwZW9ybVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFF1ZXJ5UmVzdWx0QmFzZSB7XG4gIGNvbW1hbmQ6IHN0cmluZztcbiAgcm93Q291bnQ6IG51bWJlciB8IG51bGw7XG4gIG9pZDogbnVtYmVyO1xuICBmaWVsZHM6IEZpZWxkRGVmW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUXVlcnlSZXN1bHRSb3cge1xuICBbY29sdW1uOiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUXVlcnlSZXN1bHQ8UiBleHRlbmRzIFF1ZXJ5UmVzdWx0Um93ID0gYW55PlxuICBleHRlbmRzIFF1ZXJ5UmVzdWx0QmFzZSB7XG4gIHJvd3M6IFJbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBRdWVyeUFycmF5UmVzdWx0PFIgZXh0ZW5kcyBhbnlbXSA9IGFueVtdPlxuICBleHRlbmRzIFF1ZXJ5UmVzdWx0QmFzZSB7XG4gIHJvd3M6IFJbXTtcbn1cbiJdfQ==
@@ -0,0 +1,67 @@
1
+ import { SequenceOptions } from "@decaf-ts/core";
2
+ import { Sequence } from "@decaf-ts/core";
3
+ import { TypeORMAdapter } from "../TypeORMAdapter";
4
+ /**
5
+ * @description Abstract implementation of a database sequence for TypeORM.
6
+ * @summary Provides the basic functionality for {@link Sequence}s, delegating to the {@link TypeORMAdapter} to fetch and increment values while handling type parsing and error translation.
7
+ * @param {SequenceOptions} options The sequence configuration options (name, type, startWith, incrementBy, etc.).
8
+ * @param {TypeORMAdapter} adapter The TypeORM adapter used to execute sequence operations.
9
+ * @class TypeORMSequence
10
+ * @implements Sequence
11
+ * @example
12
+ * // Create and use a TypeORM-backed sequence
13
+ * const seq = new TypeORMSequence({ name: "user_id_seq", type: "Number", startWith: 1, incrementBy: 1 }, adapter);
14
+ * const nextId = await seq.next();
15
+ *
16
+ * @mermaid
17
+ * sequenceDiagram
18
+ * participant App
19
+ * participant Seq as TypeORMSequence
20
+ * participant Adapter as TypeORMAdapter
21
+ * participant DB as Database
22
+ * App->>Seq: next()
23
+ * Seq->>Seq: current()
24
+ * Seq->>Adapter: raw(SELECT current_value ...)
25
+ * Adapter->>DB: Query current value
26
+ * DB-->>Adapter: current_value
27
+ * Adapter-->>Seq: value
28
+ * Seq->>Seq: increment(current)
29
+ * Seq->>Adapter: raw(nextval(name))
30
+ * Adapter->>DB: nextval()
31
+ * DB-->>Adapter: next value
32
+ * Adapter-->>Seq: value
33
+ * Seq-->>App: parsed next value
34
+ */
35
+ export declare class TypeORMSequence extends Sequence {
36
+ protected adapter: TypeORMAdapter;
37
+ constructor(options: SequenceOptions, adapter: TypeORMAdapter);
38
+ /**
39
+ * @summary Retrieves the current value for the sequence
40
+ * @protected
41
+ */
42
+ current(): Promise<string | number | bigint>;
43
+ /**
44
+ * @summary Parses the {@link Sequence} value
45
+ *
46
+ * @protected
47
+ * @param value
48
+ */
49
+ private parse;
50
+ /**
51
+ * @summary increments the sequence
52
+ * @description Sequence specific implementation
53
+ *
54
+ * @param {string | number | bigint} current
55
+ * @param count
56
+ * @protected
57
+ */
58
+ private increment;
59
+ /**
60
+ * @summary Generates the next value in th sequence
61
+ * @description calls {@link Sequence#parse} on the current value
62
+ * followed by {@link Sequence#increment}
63
+ *
64
+ */
65
+ next(): Promise<number | string | bigint>;
66
+ range(count: number): Promise<(number | string | bigint)[]>;
67
+ }
@@ -0,0 +1,117 @@
1
+ import { InternalError, NotFoundError } from "@decaf-ts/db-decorators";
2
+ import { Sequence } from "@decaf-ts/core";
3
+ /**
4
+ * @description Abstract implementation of a database sequence for TypeORM.
5
+ * @summary Provides the basic functionality for {@link Sequence}s, delegating to the {@link TypeORMAdapter} to fetch and increment values while handling type parsing and error translation.
6
+ * @param {SequenceOptions} options The sequence configuration options (name, type, startWith, incrementBy, etc.).
7
+ * @param {TypeORMAdapter} adapter The TypeORM adapter used to execute sequence operations.
8
+ * @class TypeORMSequence
9
+ * @implements Sequence
10
+ * @example
11
+ * // Create and use a TypeORM-backed sequence
12
+ * const seq = new TypeORMSequence({ name: "user_id_seq", type: "Number", startWith: 1, incrementBy: 1 }, adapter);
13
+ * const nextId = await seq.next();
14
+ *
15
+ * @mermaid
16
+ * sequenceDiagram
17
+ * participant App
18
+ * participant Seq as TypeORMSequence
19
+ * participant Adapter as TypeORMAdapter
20
+ * participant DB as Database
21
+ * App->>Seq: next()
22
+ * Seq->>Seq: current()
23
+ * Seq->>Adapter: raw(SELECT current_value ...)
24
+ * Adapter->>DB: Query current value
25
+ * DB-->>Adapter: current_value
26
+ * Adapter-->>Seq: value
27
+ * Seq->>Seq: increment(current)
28
+ * Seq->>Adapter: raw(nextval(name))
29
+ * Adapter->>DB: nextval()
30
+ * DB-->>Adapter: next value
31
+ * Adapter-->>Seq: value
32
+ * Seq-->>App: parsed next value
33
+ */
34
+ export class TypeORMSequence extends Sequence {
35
+ constructor(options, adapter) {
36
+ super(options);
37
+ this.adapter = adapter;
38
+ }
39
+ /**
40
+ * @summary Retrieves the current value for the sequence
41
+ * @protected
42
+ */
43
+ async current() {
44
+ const { name } = this.options;
45
+ try {
46
+ const seq = await this.adapter.raw({
47
+ query: `SELECT current_value FROM information_schema.sequences WHERE sequence_name = $1`,
48
+ values: [name],
49
+ });
50
+ return this.parse(seq.current_value);
51
+ }
52
+ catch (e) {
53
+ throw this.adapter.parseError(e);
54
+ }
55
+ }
56
+ /**
57
+ * @summary Parses the {@link Sequence} value
58
+ *
59
+ * @protected
60
+ * @param value
61
+ */
62
+ parse(value) {
63
+ return Sequence.parseValue(this.options.type, value);
64
+ }
65
+ /**
66
+ * @summary increments the sequence
67
+ * @description Sequence specific implementation
68
+ *
69
+ * @param {string | number | bigint} current
70
+ * @param count
71
+ * @protected
72
+ */
73
+ async increment(current, count) {
74
+ const { type, incrementBy, name, startWith } = this.options;
75
+ if (type !== "Number" && type !== "BigInt")
76
+ throw new InternalError(`Cannot increment sequence of type ${type} with ${count}`);
77
+ let next;
78
+ try {
79
+ next = await this.adapter.raw({
80
+ query: `SELECT nextval($1);`,
81
+ values: [name],
82
+ });
83
+ }
84
+ catch (e) {
85
+ if (!(e instanceof NotFoundError))
86
+ throw e;
87
+ next = await this.adapter.raw({
88
+ query: `CREATE SEQUENCE IF NOT EXISTS $1 START WITH $2 INCREMENT BY $3 NO CYCLE;`,
89
+ values: [name, startWith, incrementBy],
90
+ });
91
+ }
92
+ return next;
93
+ }
94
+ /**
95
+ * @summary Generates the next value in th sequence
96
+ * @description calls {@link Sequence#parse} on the current value
97
+ * followed by {@link Sequence#increment}
98
+ *
99
+ */
100
+ async next() {
101
+ const current = await this.current();
102
+ return this.increment(current);
103
+ }
104
+ async range(count) {
105
+ const current = (await this.current());
106
+ const incrementBy = this.parse(this.options.incrementBy);
107
+ const next = await this.increment(current, this.parse(count) * incrementBy);
108
+ const range = [];
109
+ for (let i = 1; i <= count; i++) {
110
+ range.push(current + incrementBy * this.parse(i));
111
+ }
112
+ if (range[range.length - 1] !== next)
113
+ throw new InternalError("Miscalculation of range");
114
+ return range;
115
+ }
116
+ }
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VxdWVuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VxdWVuY2VzL1NlcXVlbmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFdkUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4Qkc7QUFDSCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxRQUFRO0lBQzNDLFlBQ0UsT0FBd0IsRUFDZCxPQUF1QjtRQUVqQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFGTCxZQUFPLEdBQVAsT0FBTyxDQUFnQjtJQUduQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLE9BQU87UUFDWCxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUM5QixJQUFJLENBQUM7WUFDSCxNQUFNLEdBQUcsR0FBUSxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO2dCQUN0QyxLQUFLLEVBQUUsaUZBQWlGO2dCQUN4RixNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUM7YUFDZixDQUFDLENBQUM7WUFDSCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLGFBQWdDLENBQUMsQ0FBQztRQUMxRCxDQUFDO1FBQUMsT0FBTyxDQUFVLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQVUsQ0FBQyxDQUFDO1FBQzVDLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyxLQUFLLENBQUMsS0FBK0I7UUFDM0MsT0FBTyxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ssS0FBSyxDQUFDLFNBQVMsQ0FDckIsT0FBaUMsRUFDakMsS0FBYztRQUVkLE1BQU0sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQzVELElBQUksSUFBSSxLQUFLLFFBQVEsSUFBSSxJQUFJLEtBQUssUUFBUTtZQUN4QyxNQUFNLElBQUksYUFBYSxDQUNyQixxQ0FBcUMsSUFBSSxTQUFTLEtBQUssRUFBRSxDQUMxRCxDQUFDO1FBQ0osSUFBSSxJQUE4QixDQUFDO1FBQ25DLElBQUksQ0FBQztZQUNILElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO2dCQUM1QixLQUFLLEVBQUUscUJBQXFCO2dCQUM1QixNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUM7YUFDZixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQUMsT0FBTyxDQUFVLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsQ0FBQyxDQUFDLFlBQVksYUFBYSxDQUFDO2dCQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzNDLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO2dCQUM1QixLQUFLLEVBQUUsMEVBQTBFO2dCQUNqRixNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLFdBQVcsQ0FBQzthQUN2QyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsT0FBTyxJQUFnQyxDQUFDO0lBQzFDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILEtBQUssQ0FBQyxJQUFJO1FBQ1IsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDckMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQWE7UUFDdkIsTUFBTSxPQUFPLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBVyxDQUFDO1FBQ2pELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQVcsQ0FBQztRQUNuRSxNQUFNLElBQUksR0FBNkIsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUN6RCxPQUFPLEVBQ04sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQVksR0FBRyxXQUFXLENBQzVDLENBQUM7UUFDRixNQUFNLEtBQUssR0FBaUMsRUFBRSxDQUFDO1FBQy9DLEtBQUssSUFBSSxDQUFDLEdBQVcsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUN4QyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxXQUFXLEdBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQVksQ0FBQyxDQUFDO1FBQ2hFLENBQUM7UUFDRCxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxLQUFLLElBQUk7WUFDbEMsTUFBTSxJQUFJLGFBQWEsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQ3JELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW50ZXJuYWxFcnJvciwgTm90Rm91bmRFcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgU2VxdWVuY2VPcHRpb25zIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBTZXF1ZW5jZSB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgVHlwZU9STUFkYXB0ZXIgfSBmcm9tIFwiLi4vVHlwZU9STUFkYXB0ZXJcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQWJzdHJhY3QgaW1wbGVtZW50YXRpb24gb2YgYSBkYXRhYmFzZSBzZXF1ZW5jZSBmb3IgVHlwZU9STS5cbiAqIEBzdW1tYXJ5IFByb3ZpZGVzIHRoZSBiYXNpYyBmdW5jdGlvbmFsaXR5IGZvciB7QGxpbmsgU2VxdWVuY2V9cywgZGVsZWdhdGluZyB0byB0aGUge0BsaW5rIFR5cGVPUk1BZGFwdGVyfSB0byBmZXRjaCBhbmQgaW5jcmVtZW50IHZhbHVlcyB3aGlsZSBoYW5kbGluZyB0eXBlIHBhcnNpbmcgYW5kIGVycm9yIHRyYW5zbGF0aW9uLlxuICogQHBhcmFtIHtTZXF1ZW5jZU9wdGlvbnN9IG9wdGlvbnMgVGhlIHNlcXVlbmNlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyAobmFtZSwgdHlwZSwgc3RhcnRXaXRoLCBpbmNyZW1lbnRCeSwgZXRjLikuXG4gKiBAcGFyYW0ge1R5cGVPUk1BZGFwdGVyfSBhZGFwdGVyIFRoZSBUeXBlT1JNIGFkYXB0ZXIgdXNlZCB0byBleGVjdXRlIHNlcXVlbmNlIG9wZXJhdGlvbnMuXG4gKiBAY2xhc3MgVHlwZU9STVNlcXVlbmNlXG4gKiBAaW1wbGVtZW50cyBTZXF1ZW5jZVxuICogQGV4YW1wbGVcbiAqIC8vIENyZWF0ZSBhbmQgdXNlIGEgVHlwZU9STS1iYWNrZWQgc2VxdWVuY2VcbiAqIGNvbnN0IHNlcSA9IG5ldyBUeXBlT1JNU2VxdWVuY2UoeyBuYW1lOiBcInVzZXJfaWRfc2VxXCIsIHR5cGU6IFwiTnVtYmVyXCIsIHN0YXJ0V2l0aDogMSwgaW5jcmVtZW50Qnk6IDEgfSwgYWRhcHRlcik7XG4gKiBjb25zdCBuZXh0SWQgPSBhd2FpdCBzZXEubmV4dCgpO1xuICpcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgQXBwXG4gKiAgIHBhcnRpY2lwYW50IFNlcSBhcyBUeXBlT1JNU2VxdWVuY2VcbiAqICAgcGFydGljaXBhbnQgQWRhcHRlciBhcyBUeXBlT1JNQWRhcHRlclxuICogICBwYXJ0aWNpcGFudCBEQiBhcyBEYXRhYmFzZVxuICogICBBcHAtPj5TZXE6IG5leHQoKVxuICogICBTZXEtPj5TZXE6IGN1cnJlbnQoKVxuICogICBTZXEtPj5BZGFwdGVyOiByYXcoU0VMRUNUIGN1cnJlbnRfdmFsdWUgLi4uKVxuICogICBBZGFwdGVyLT4+REI6IFF1ZXJ5IGN1cnJlbnQgdmFsdWVcbiAqICAgREItLT4+QWRhcHRlcjogY3VycmVudF92YWx1ZVxuICogICBBZGFwdGVyLS0+PlNlcTogdmFsdWVcbiAqICAgU2VxLT4+U2VxOiBpbmNyZW1lbnQoY3VycmVudClcbiAqICAgU2VxLT4+QWRhcHRlcjogcmF3KG5leHR2YWwobmFtZSkpXG4gKiAgIEFkYXB0ZXItPj5EQjogbmV4dHZhbCgpXG4gKiAgIERCLS0+PkFkYXB0ZXI6IG5leHQgdmFsdWVcbiAqICAgQWRhcHRlci0tPj5TZXE6IHZhbHVlXG4gKiAgIFNlcS0tPj5BcHA6IHBhcnNlZCBuZXh0IHZhbHVlXG4gKi9cbmV4cG9ydCBjbGFzcyBUeXBlT1JNU2VxdWVuY2UgZXh0ZW5kcyBTZXF1ZW5jZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIG9wdGlvbnM6IFNlcXVlbmNlT3B0aW9ucyxcbiAgICBwcm90ZWN0ZWQgYWRhcHRlcjogVHlwZU9STUFkYXB0ZXJcbiAgKSB7XG4gICAgc3VwZXIob3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgUmV0cmlldmVzIHRoZSBjdXJyZW50IHZhbHVlIGZvciB0aGUgc2VxdWVuY2VcbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgYXN5bmMgY3VycmVudCgpOiBQcm9taXNlPHN0cmluZyB8IG51bWJlciB8IGJpZ2ludD4ge1xuICAgIGNvbnN0IHsgbmFtZSB9ID0gdGhpcy5vcHRpb25zO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzZXE6IGFueSA9IGF3YWl0IHRoaXMuYWRhcHRlci5yYXcoe1xuICAgICAgICBxdWVyeTogYFNFTEVDVCBjdXJyZW50X3ZhbHVlIEZST00gaW5mb3JtYXRpb25fc2NoZW1hLnNlcXVlbmNlcyBXSEVSRSBzZXF1ZW5jZV9uYW1lID0gJDFgLFxuICAgICAgICB2YWx1ZXM6IFtuYW1lXSxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHRoaXMucGFyc2Uoc2VxLmN1cnJlbnRfdmFsdWUgYXMgc3RyaW5nIHwgbnVtYmVyKTtcbiAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICB0aHJvdyB0aGlzLmFkYXB0ZXIucGFyc2VFcnJvcihlIGFzIEVycm9yKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgUGFyc2VzIHRoZSB7QGxpbmsgU2VxdWVuY2V9IHZhbHVlXG4gICAqXG4gICAqIEBwcm90ZWN0ZWRcbiAgICogQHBhcmFtIHZhbHVlXG4gICAqL1xuICBwcml2YXRlIHBhcnNlKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCBiaWdpbnQpOiBzdHJpbmcgfCBudW1iZXIgfCBiaWdpbnQge1xuICAgIHJldHVybiBTZXF1ZW5jZS5wYXJzZVZhbHVlKHRoaXMub3B0aW9ucy50eXBlLCB2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgaW5jcmVtZW50cyB0aGUgc2VxdWVuY2VcbiAgICogQGRlc2NyaXB0aW9uIFNlcXVlbmNlIHNwZWNpZmljIGltcGxlbWVudGF0aW9uXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVtYmVyIHwgYmlnaW50fSBjdXJyZW50XG4gICAqIEBwYXJhbSBjb3VudFxuICAgKiBAcHJvdGVjdGVkXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGluY3JlbWVudChcbiAgICBjdXJyZW50OiBzdHJpbmcgfCBudW1iZXIgfCBiaWdpbnQsXG4gICAgY291bnQ/OiBudW1iZXJcbiAgKTogUHJvbWlzZTxzdHJpbmcgfCBudW1iZXIgfCBiaWdpbnQ+IHtcbiAgICBjb25zdCB7IHR5cGUsIGluY3JlbWVudEJ5LCBuYW1lLCBzdGFydFdpdGggfSA9IHRoaXMub3B0aW9ucztcbiAgICBpZiAodHlwZSAhPT0gXCJOdW1iZXJcIiAmJiB0eXBlICE9PSBcIkJpZ0ludFwiKVxuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgIGBDYW5ub3QgaW5jcmVtZW50IHNlcXVlbmNlIG9mIHR5cGUgJHt0eXBlfSB3aXRoICR7Y291bnR9YFxuICAgICAgKTtcbiAgICBsZXQgbmV4dDogc3RyaW5nIHwgbnVtYmVyIHwgYmlnaW50O1xuICAgIHRyeSB7XG4gICAgICBuZXh0ID0gYXdhaXQgdGhpcy5hZGFwdGVyLnJhdyh7XG4gICAgICAgIHF1ZXJ5OiBgU0VMRUNUIG5leHR2YWwoJDEpO2AsXG4gICAgICAgIHZhbHVlczogW25hbWVdLFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgaWYgKCEoZSBpbnN0YW5jZW9mIE5vdEZvdW5kRXJyb3IpKSB0aHJvdyBlO1xuICAgICAgbmV4dCA9IGF3YWl0IHRoaXMuYWRhcHRlci5yYXcoe1xuICAgICAgICBxdWVyeTogYENSRUFURSBTRVFVRU5DRSBJRiBOT1QgRVhJU1RTICQxIFNUQVJUIFdJVEggJDIgSU5DUkVNRU5UIEJZICQzIE5PIENZQ0xFO2AsXG4gICAgICAgIHZhbHVlczogW25hbWUsIHN0YXJ0V2l0aCwgaW5jcmVtZW50QnldLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5leHQgYXMgc3RyaW5nIHwgbnVtYmVyIHwgYmlnaW50O1xuICB9XG5cbiAgLyoqXG4gICAqIEBzdW1tYXJ5IEdlbmVyYXRlcyB0aGUgbmV4dCB2YWx1ZSBpbiB0aCBzZXF1ZW5jZVxuICAgKiBAZGVzY3JpcHRpb24gY2FsbHMge0BsaW5rIFNlcXVlbmNlI3BhcnNlfSBvbiB0aGUgY3VycmVudCB2YWx1ZVxuICAgKiBmb2xsb3dlZCBieSB7QGxpbmsgU2VxdWVuY2UjaW5jcmVtZW50fVxuICAgKlxuICAgKi9cbiAgYXN5bmMgbmV4dCgpOiBQcm9taXNlPG51bWJlciB8IHN0cmluZyB8IGJpZ2ludD4ge1xuICAgIGNvbnN0IGN1cnJlbnQgPSBhd2FpdCB0aGlzLmN1cnJlbnQoKTtcbiAgICByZXR1cm4gdGhpcy5pbmNyZW1lbnQoY3VycmVudCk7XG4gIH1cblxuICBhc3luYyByYW5nZShjb3VudDogbnVtYmVyKTogUHJvbWlzZTwobnVtYmVyIHwgc3RyaW5nIHwgYmlnaW50KVtdPiB7XG4gICAgY29uc3QgY3VycmVudCA9IChhd2FpdCB0aGlzLmN1cnJlbnQoKSkgYXMgbnVtYmVyO1xuICAgIGNvbnN0IGluY3JlbWVudEJ5ID0gdGhpcy5wYXJzZSh0aGlzLm9wdGlvbnMuaW5jcmVtZW50QnkpIGFzIG51bWJlcjtcbiAgICBjb25zdCBuZXh0OiBzdHJpbmcgfCBudW1iZXIgfCBiaWdpbnQgPSBhd2FpdCB0aGlzLmluY3JlbWVudChcbiAgICAgIGN1cnJlbnQsXG4gICAgICAodGhpcy5wYXJzZShjb3VudCkgYXMgbnVtYmVyKSAqIGluY3JlbWVudEJ5XG4gICAgKTtcbiAgICBjb25zdCByYW5nZTogKG51bWJlciB8IHN0cmluZyB8IGJpZ2ludClbXSA9IFtdO1xuICAgIGZvciAobGV0IGk6IG51bWJlciA9IDE7IGkgPD0gY291bnQ7IGkrKykge1xuICAgICAgcmFuZ2UucHVzaChjdXJyZW50ICsgaW5jcmVtZW50QnkgKiAodGhpcy5wYXJzZShpKSBhcyBudW1iZXIpKTtcbiAgICB9XG4gICAgaWYgKHJhbmdlW3JhbmdlLmxlbmd0aCAtIDFdICE9PSBuZXh0KVxuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJNaXNjYWxjdWxhdGlvbiBvZiByYW5nZVwiKTtcbiAgICByZXR1cm4gcmFuZ2U7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1 @@
1
+ export * from "./Sequence";
@@ -0,0 +1,2 @@
1
+ export * from "./Sequence.js";
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VxdWVuY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDhCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL1NlcXVlbmNlXCI7XG4iXX0=
@@ -0,0 +1,67 @@
1
+ import { RepositoryFlags } from "@decaf-ts/db-decorators";
2
+ import { SelectQueryBuilder } from "typeorm";
3
+ import { Model } from "@decaf-ts/decorator-validation";
4
+ /**
5
+ * @description SQL operators available for building TypeORM queries.
6
+ * @summary Enumeration of common SQL operators intended for use within TypeORM query construction and translation layers.
7
+ * @enum {string}
8
+ * @memberOf module:for-typeorm
9
+ */
10
+ export declare enum SQLOperator {
11
+ EQUAL = "=",
12
+ NOT_EQUAL = "<>",
13
+ LESS_THAN = "<",
14
+ LESS_THAN_OR_EQUAL = "<=",
15
+ GREATER_THAN = ">",
16
+ GREATER_THAN_OR_EQUAL = ">=",
17
+ IN = "IN",
18
+ NOT_IN = "NOT IN",
19
+ LIKE = "LIKE",
20
+ ILIKE = "ILIKE",
21
+ BETWEEN = "BETWEEN",
22
+ IS_NULL = "IS NULL",
23
+ IS_NOT_NULL = "IS NOT NULL",
24
+ EXISTS = "EXISTS",
25
+ NOT_EXISTS = "NOT EXISTS",
26
+ ANY = "ANY",
27
+ ALL = "ALL",
28
+ SOME = "SOME"
29
+ }
30
+ /**
31
+ * @description Query container used by the TypeORM adapter.
32
+ * @summary Represents either a raw SQL string or a TypeORM SelectQueryBuilder along with optional bound values to be executed by the adapter.
33
+ * @template M The Model type for which the SelectQueryBuilder is parameterized.
34
+ * @template T The underlying query type, either a string or a SelectQueryBuilder<M>.
35
+ * @interface TypeORMQuery
36
+ * @memberOf module:for-typeorm
37
+ */
38
+ export interface TypeORMQuery<M extends Model = Model, T extends string | SelectQueryBuilder<M> = string> {
39
+ query: T;
40
+ values?: any[];
41
+ }
42
+ /**
43
+ * @description Configuration flags for TypeORM operations.
44
+ * @summary Extended repository flags including connection/user context that can be leveraged by the TypeORM adapter.
45
+ * @interface TypeORMFlags
46
+ * @memberOf module:for-typeorm
47
+ */
48
+ export interface TypeORMFlags extends RepositoryFlags {
49
+ /**
50
+ * @description User authentication information for Postgres database connections
51
+ */
52
+ user: string;
53
+ }
54
+ /**
55
+ * @description Specification for a table creation/change statement used by the TypeORM adapter.
56
+ * @summary Extends a TypeORMQuery with table metadata such as primary key flag, constraints, and foreign keys.
57
+ * @typedef TypeORMTableSpec
58
+ * @property {boolean} primaryKey Indicates if the target column is part of the primary key.
59
+ * @property {string[]} constraints A list of raw SQL constraints to apply to the table/column.
60
+ * @property {string[]} foreignKeys A list of foreign key constraint definitions.
61
+ * @memberOf module:for-typeorm
62
+ */
63
+ export type TypeORMTableSpec = TypeORMQuery & {
64
+ primaryKey: boolean;
65
+ constraints: string[];
66
+ foreignKeys: string[];
67
+ };
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @description SQL operators available for building TypeORM queries.
3
+ * @summary Enumeration of common SQL operators intended for use within TypeORM query construction and translation layers.
4
+ * @enum {string}
5
+ * @memberOf module:for-typeorm
6
+ */
7
+ export var SQLOperator;
8
+ (function (SQLOperator) {
9
+ SQLOperator["EQUAL"] = "=";
10
+ SQLOperator["NOT_EQUAL"] = "<>";
11
+ SQLOperator["LESS_THAN"] = "<";
12
+ SQLOperator["LESS_THAN_OR_EQUAL"] = "<=";
13
+ SQLOperator["GREATER_THAN"] = ">";
14
+ SQLOperator["GREATER_THAN_OR_EQUAL"] = ">=";
15
+ SQLOperator["IN"] = "IN";
16
+ SQLOperator["NOT_IN"] = "NOT IN";
17
+ SQLOperator["LIKE"] = "LIKE";
18
+ SQLOperator["ILIKE"] = "ILIKE";
19
+ SQLOperator["BETWEEN"] = "BETWEEN";
20
+ SQLOperator["IS_NULL"] = "IS NULL";
21
+ SQLOperator["IS_NOT_NULL"] = "IS NOT NULL";
22
+ SQLOperator["EXISTS"] = "EXISTS";
23
+ SQLOperator["NOT_EXISTS"] = "NOT EXISTS";
24
+ SQLOperator["ANY"] = "ANY";
25
+ SQLOperator["ALL"] = "ALL";
26
+ SQLOperator["SOME"] = "SOME";
27
+ })(SQLOperator || (SQLOperator = {}));
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUE7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQU4sSUFBWSxXQW1CWDtBQW5CRCxXQUFZLFdBQVc7SUFDckIsMEJBQVcsQ0FBQTtJQUNYLCtCQUFnQixDQUFBO0lBQ2hCLDhCQUFlLENBQUE7SUFDZix3Q0FBeUIsQ0FBQTtJQUN6QixpQ0FBa0IsQ0FBQTtJQUNsQiwyQ0FBNEIsQ0FBQTtJQUM1Qix3QkFBUyxDQUFBO0lBQ1QsZ0NBQWlCLENBQUE7SUFDakIsNEJBQWEsQ0FBQTtJQUNiLDhCQUFlLENBQUE7SUFDZixrQ0FBbUIsQ0FBQTtJQUNuQixrQ0FBbUIsQ0FBQTtJQUNuQiwwQ0FBMkIsQ0FBQTtJQUMzQixnQ0FBaUIsQ0FBQTtJQUNqQix3Q0FBeUIsQ0FBQTtJQUN6QiwwQkFBVyxDQUFBO0lBQ1gsMEJBQVcsQ0FBQTtJQUNYLDRCQUFhLENBQUE7QUFDZixDQUFDLEVBbkJXLFdBQVcsS0FBWCxXQUFXLFFBbUJ0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlcG9zaXRvcnlGbGFncyB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgU2VsZWN0UXVlcnlCdWlsZGVyIH0gZnJvbSBcInR5cGVvcm1cIjtcbmltcG9ydCB7IE1vZGVsIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBTUUwgb3BlcmF0b3JzIGF2YWlsYWJsZSBmb3IgYnVpbGRpbmcgVHlwZU9STSBxdWVyaWVzLlxuICogQHN1bW1hcnkgRW51bWVyYXRpb24gb2YgY29tbW9uIFNRTCBvcGVyYXRvcnMgaW50ZW5kZWQgZm9yIHVzZSB3aXRoaW4gVHlwZU9STSBxdWVyeSBjb25zdHJ1Y3Rpb24gYW5kIHRyYW5zbGF0aW9uIGxheWVycy5cbiAqIEBlbnVtIHtzdHJpbmd9XG4gKiBAbWVtYmVyT2YgbW9kdWxlOmZvci10eXBlb3JtXG4gKi9cbmV4cG9ydCBlbnVtIFNRTE9wZXJhdG9yIHtcbiAgRVFVQUwgPSBcIj1cIixcbiAgTk9UX0VRVUFMID0gXCI8PlwiLFxuICBMRVNTX1RIQU4gPSBcIjxcIixcbiAgTEVTU19USEFOX09SX0VRVUFMID0gXCI8PVwiLFxuICBHUkVBVEVSX1RIQU4gPSBcIj5cIixcbiAgR1JFQVRFUl9USEFOX09SX0VRVUFMID0gXCI+PVwiLFxuICBJTiA9IFwiSU5cIixcbiAgTk9UX0lOID0gXCJOT1QgSU5cIixcbiAgTElLRSA9IFwiTElLRVwiLFxuICBJTElLRSA9IFwiSUxJS0VcIixcbiAgQkVUV0VFTiA9IFwiQkVUV0VFTlwiLFxuICBJU19OVUxMID0gXCJJUyBOVUxMXCIsXG4gIElTX05PVF9OVUxMID0gXCJJUyBOT1QgTlVMTFwiLFxuICBFWElTVFMgPSBcIkVYSVNUU1wiLFxuICBOT1RfRVhJU1RTID0gXCJOT1QgRVhJU1RTXCIsXG4gIEFOWSA9IFwiQU5ZXCIsXG4gIEFMTCA9IFwiQUxMXCIsXG4gIFNPTUUgPSBcIlNPTUVcIixcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gUXVlcnkgY29udGFpbmVyIHVzZWQgYnkgdGhlIFR5cGVPUk0gYWRhcHRlci5cbiAqIEBzdW1tYXJ5IFJlcHJlc2VudHMgZWl0aGVyIGEgcmF3IFNRTCBzdHJpbmcgb3IgYSBUeXBlT1JNIFNlbGVjdFF1ZXJ5QnVpbGRlciBhbG9uZyB3aXRoIG9wdGlvbmFsIGJvdW5kIHZhbHVlcyB0byBiZSBleGVjdXRlZCBieSB0aGUgYWRhcHRlci5cbiAqIEB0ZW1wbGF0ZSBNIFRoZSBNb2RlbCB0eXBlIGZvciB3aGljaCB0aGUgU2VsZWN0UXVlcnlCdWlsZGVyIGlzIHBhcmFtZXRlcml6ZWQuXG4gKiBAdGVtcGxhdGUgVCBUaGUgdW5kZXJseWluZyBxdWVyeSB0eXBlLCBlaXRoZXIgYSBzdHJpbmcgb3IgYSBTZWxlY3RRdWVyeUJ1aWxkZXI8TT4uXG4gKiBAaW50ZXJmYWNlIFR5cGVPUk1RdWVyeVxuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItdHlwZW9ybVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVPUk1RdWVyeTxcbiAgTSBleHRlbmRzIE1vZGVsID0gTW9kZWwsXG4gIFQgZXh0ZW5kcyBzdHJpbmcgfCBTZWxlY3RRdWVyeUJ1aWxkZXI8TT4gPSBzdHJpbmcsXG4+IHtcbiAgcXVlcnk6IFQ7XG4gIHZhbHVlcz86IGFueVtdO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDb25maWd1cmF0aW9uIGZsYWdzIGZvciBUeXBlT1JNIG9wZXJhdGlvbnMuXG4gKiBAc3VtbWFyeSBFeHRlbmRlZCByZXBvc2l0b3J5IGZsYWdzIGluY2x1ZGluZyBjb25uZWN0aW9uL3VzZXIgY29udGV4dCB0aGF0IGNhbiBiZSBsZXZlcmFnZWQgYnkgdGhlIFR5cGVPUk0gYWRhcHRlci5cbiAqIEBpbnRlcmZhY2UgVHlwZU9STUZsYWdzXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmZvci10eXBlb3JtXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZU9STUZsYWdzIGV4dGVuZHMgUmVwb3NpdG9yeUZsYWdzIHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBVc2VyIGF1dGhlbnRpY2F0aW9uIGluZm9ybWF0aW9uIGZvciBQb3N0Z3JlcyBkYXRhYmFzZSBjb25uZWN0aW9uc1xuICAgKi9cbiAgdXNlcjogc3RyaW5nO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBTcGVjaWZpY2F0aW9uIGZvciBhIHRhYmxlIGNyZWF0aW9uL2NoYW5nZSBzdGF0ZW1lbnQgdXNlZCBieSB0aGUgVHlwZU9STSBhZGFwdGVyLlxuICogQHN1bW1hcnkgRXh0ZW5kcyBhIFR5cGVPUk1RdWVyeSB3aXRoIHRhYmxlIG1ldGFkYXRhIHN1Y2ggYXMgcHJpbWFyeSBrZXkgZmxhZywgY29uc3RyYWludHMsIGFuZCBmb3JlaWduIGtleXMuXG4gKiBAdHlwZWRlZiBUeXBlT1JNVGFibGVTcGVjXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IHByaW1hcnlLZXkgSW5kaWNhdGVzIGlmIHRoZSB0YXJnZXQgY29sdW1uIGlzIHBhcnQgb2YgdGhlIHByaW1hcnkga2V5LlxuICogQHByb3BlcnR5IHtzdHJpbmdbXX0gY29uc3RyYWludHMgQSBsaXN0IG9mIHJhdyBTUUwgY29uc3RyYWludHMgdG8gYXBwbHkgdG8gdGhlIHRhYmxlL2NvbHVtbi5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nW119IGZvcmVpZ25LZXlzIEEgbGlzdCBvZiBmb3JlaWduIGtleSBjb25zdHJhaW50IGRlZmluaXRpb25zLlxuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItdHlwZW9ybVxuICovXG5leHBvcnQgdHlwZSBUeXBlT1JNVGFibGVTcGVjID0gVHlwZU9STVF1ZXJ5ICYge1xuICBwcmltYXJ5S2V5OiBib29sZWFuO1xuICBjb25zdHJhaW50czogc3RyaW5nW107XG4gIGZvcmVpZ25LZXlzOiBzdHJpbmdbXTtcbn07XG4iXX0=
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @description Converts a JavaScript RegExp pattern to a PostgreSQL POSIX pattern string.
3
+ * @summary Accepts either a RegExp object or a string representation (/pattern/flags) and returns the raw pattern compatible with PostgreSQL's ~ and ~* operators.
4
+ * @param {RegExp|string} jsRegex JavaScript RegExp object or pattern string.
5
+ * @return {string} PostgreSQL-compatible regex pattern string.
6
+ * @function convertJsRegexToPostgres
7
+ * @mermaid
8
+ * sequenceDiagram
9
+ * participant App
10
+ * participant Utils as convertJsRegexToPostgres
11
+ * App->>Utils: convertJsRegexToPostgres(RegExp("foo.*","i"))
12
+ * Utils->>Utils: Parse string or use RegExp.source
13
+ * Utils-->>App: "foo.*"
14
+ * @memberOf module:for-typeorm
15
+ */
16
+ export declare function convertJsRegexToPostgres(jsRegex: RegExp | string): string;
@@ -0,0 +1,29 @@
1
+ /**
2
+ * @description Converts a JavaScript RegExp pattern to a PostgreSQL POSIX pattern string.
3
+ * @summary Accepts either a RegExp object or a string representation (/pattern/flags) and returns the raw pattern compatible with PostgreSQL's ~ and ~* operators.
4
+ * @param {RegExp|string} jsRegex JavaScript RegExp object or pattern string.
5
+ * @return {string} PostgreSQL-compatible regex pattern string.
6
+ * @function convertJsRegexToPostgres
7
+ * @mermaid
8
+ * sequenceDiagram
9
+ * participant App
10
+ * participant Utils as convertJsRegexToPostgres
11
+ * App->>Utils: convertJsRegexToPostgres(RegExp("foo.*","i"))
12
+ * Utils->>Utils: Parse string or use RegExp.source
13
+ * Utils-->>App: "foo.*"
14
+ * @memberOf module:for-typeorm
15
+ */
16
+ export function convertJsRegexToPostgres(jsRegex) {
17
+ const rxp = new RegExp(/^\/(.+)\/(\w+)$/g);
18
+ if (typeof jsRegex === "string") {
19
+ const match = rxp.exec(jsRegex);
20
+ if (match) {
21
+ const [, p] = match;
22
+ jsRegex = p;
23
+ }
24
+ }
25
+ const regex = typeof jsRegex === "string" ? new RegExp(jsRegex) : jsRegex;
26
+ const pattern = regex.source;
27
+ return pattern;
28
+ }
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxNQUFNLFVBQVUsd0JBQXdCLENBQUMsT0FBd0I7SUFDL0QsTUFBTSxHQUFHLEdBQUcsSUFBSSxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUMzQyxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDaEMsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQztZQUNwQixPQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7SUFDRCxNQUFNLEtBQUssR0FBRyxPQUFPLE9BQU8sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFFMUUsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUU3QixPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZGVzY3JpcHRpb24gQ29udmVydHMgYSBKYXZhU2NyaXB0IFJlZ0V4cCBwYXR0ZXJuIHRvIGEgUG9zdGdyZVNRTCBQT1NJWCBwYXR0ZXJuIHN0cmluZy5cbiAqIEBzdW1tYXJ5IEFjY2VwdHMgZWl0aGVyIGEgUmVnRXhwIG9iamVjdCBvciBhIHN0cmluZyByZXByZXNlbnRhdGlvbiAoL3BhdHRlcm4vZmxhZ3MpIGFuZCByZXR1cm5zIHRoZSByYXcgcGF0dGVybiBjb21wYXRpYmxlIHdpdGggUG9zdGdyZVNRTCdzIH4gYW5kIH4qIG9wZXJhdG9ycy5cbiAqIEBwYXJhbSB7UmVnRXhwfHN0cmluZ30ganNSZWdleCBKYXZhU2NyaXB0IFJlZ0V4cCBvYmplY3Qgb3IgcGF0dGVybiBzdHJpbmcuXG4gKiBAcmV0dXJuIHtzdHJpbmd9IFBvc3RncmVTUUwtY29tcGF0aWJsZSByZWdleCBwYXR0ZXJuIHN0cmluZy5cbiAqIEBmdW5jdGlvbiBjb252ZXJ0SnNSZWdleFRvUG9zdGdyZXNcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgQXBwXG4gKiAgIHBhcnRpY2lwYW50IFV0aWxzIGFzIGNvbnZlcnRKc1JlZ2V4VG9Qb3N0Z3Jlc1xuICogICBBcHAtPj5VdGlsczogY29udmVydEpzUmVnZXhUb1Bvc3RncmVzKFJlZ0V4cChcImZvby4qXCIsXCJpXCIpKVxuICogICBVdGlscy0+PlV0aWxzOiBQYXJzZSBzdHJpbmcgb3IgdXNlIFJlZ0V4cC5zb3VyY2VcbiAqICAgVXRpbHMtLT4+QXBwOiBcImZvby4qXCJcbiAqIEBtZW1iZXJPZiBtb2R1bGU6Zm9yLXR5cGVvcm1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRKc1JlZ2V4VG9Qb3N0Z3Jlcyhqc1JlZ2V4OiBSZWdFeHAgfCBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCByeHAgPSBuZXcgUmVnRXhwKC9eXFwvKC4rKVxcLyhcXHcrKSQvZyk7XG4gIGlmICh0eXBlb2YganNSZWdleCA9PT0gXCJzdHJpbmdcIikge1xuICAgIGNvbnN0IG1hdGNoID0gcnhwLmV4ZWMoanNSZWdleCk7XG4gICAgaWYgKG1hdGNoKSB7XG4gICAgICBjb25zdCBbLCBwXSA9IG1hdGNoO1xuICAgICAganNSZWdleCA9IHA7XG4gICAgfVxuICB9XG4gIGNvbnN0IHJlZ2V4ID0gdHlwZW9mIGpzUmVnZXggPT09IFwic3RyaW5nXCIgPyBuZXcgUmVnRXhwKGpzUmVnZXgpIDoganNSZWdleDtcblxuICBjb25zdCBwYXR0ZXJuID0gcmVnZXguc291cmNlO1xuXG4gIHJldHVybiBwYXR0ZXJuO1xufVxuIl19
package/lib/index.cjs ADDED
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.VERSION = void 0;
18
+ const TypeORMAdapter_1 = require("./TypeORMAdapter.cjs");
19
+ TypeORMAdapter_1.TypeORMAdapter.decoration();
20
+ __exportStar(require("./indexes/index.cjs"), exports);
21
+ __exportStar(require("./query/index.cjs"), exports);
22
+ __exportStar(require("./sequences/index.cjs"), exports);
23
+ __exportStar(require("./TypeORMAdapter.cjs"), exports);
24
+ __exportStar(require("./constants.cjs"), exports);
25
+ __exportStar(require("./errors.cjs"), exports);
26
+ __exportStar(require("./TypeORMDispatch.cjs"), exports);
27
+ __exportStar(require("./TypeORMRepository.cjs"), exports);
28
+ __exportStar(require("./types.cjs"), exports);
29
+ __exportStar(require("./utils.cjs"), exports);
30
+ /**
31
+ * @description TypeORM integration for Decaf.ts.
32
+ * @summary Provides the TypeORM-backed implementation of the Decaf.ts data access abstractions, including the adapter, repository, statement builder, pagination utilities, index helpers, and type definitions. Key exports include {@link TypeORMAdapter}, {@link TypeORMRepository}, {@link TypeORMStatement}, {@link TypeORMPaginator}, and index generation utilities.
33
+ * @module for-typeorm
34
+ */
35
+ /**
36
+ * @description Stores the current package version.
37
+ * @summary The version string of the for-typeorm package.
38
+ * @const VERSION
39
+ * @memberOf module:for-typeorm
40
+ */
41
+ exports.VERSION = "0.0.6";
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx5REFBa0Q7QUFFbEQsK0JBQWMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztBQUU1QixzREFBMEI7QUFDMUIsb0RBQXdCO0FBQ3hCLHdEQUE0QjtBQUM1Qix1REFBaUM7QUFDakMsa0RBQTRCO0FBQzVCLCtDQUF5QjtBQUN6Qix3REFBa0M7QUFDbEMsMERBQW9DO0FBQ3BDLDhDQUF3QjtBQUN4Qiw4Q0FBd0I7QUFFeEI7Ozs7R0FJRztBQUVIOzs7OztHQUtHO0FBQ1UsUUFBQSxPQUFPLEdBQUcsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHlwZU9STUFkYXB0ZXIgfSBmcm9tIFwiLi9UeXBlT1JNQWRhcHRlclwiO1xuXG5UeXBlT1JNQWRhcHRlci5kZWNvcmF0aW9uKCk7XG5cbmV4cG9ydCAqIGZyb20gXCIuL2luZGV4ZXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3F1ZXJ5XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zZXF1ZW5jZXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL1R5cGVPUk1BZGFwdGVyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2Vycm9yc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vVHlwZU9STURpc3BhdGNoXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9UeXBlT1JNUmVwb3NpdG9yeVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdHlwZXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3V0aWxzXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFR5cGVPUk0gaW50ZWdyYXRpb24gZm9yIERlY2FmLnRzLlxuICogQHN1bW1hcnkgUHJvdmlkZXMgdGhlIFR5cGVPUk0tYmFja2VkIGltcGxlbWVudGF0aW9uIG9mIHRoZSBEZWNhZi50cyBkYXRhIGFjY2VzcyBhYnN0cmFjdGlvbnMsIGluY2x1ZGluZyB0aGUgYWRhcHRlciwgcmVwb3NpdG9yeSwgc3RhdGVtZW50IGJ1aWxkZXIsIHBhZ2luYXRpb24gdXRpbGl0aWVzLCBpbmRleCBoZWxwZXJzLCBhbmQgdHlwZSBkZWZpbml0aW9ucy4gS2V5IGV4cG9ydHMgaW5jbHVkZSB7QGxpbmsgVHlwZU9STUFkYXB0ZXJ9LCB7QGxpbmsgVHlwZU9STVJlcG9zaXRvcnl9LCB7QGxpbmsgVHlwZU9STVN0YXRlbWVudH0sIHtAbGluayBUeXBlT1JNUGFnaW5hdG9yfSwgYW5kIGluZGV4IGdlbmVyYXRpb24gdXRpbGl0aWVzLlxuICogQG1vZHVsZSBmb3ItdHlwZW9ybVxuICovXG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFN0b3JlcyB0aGUgY3VycmVudCBwYWNrYWdlIHZlcnNpb24uXG4gKiBAc3VtbWFyeSBUaGUgdmVyc2lvbiBzdHJpbmcgb2YgdGhlIGZvci10eXBlb3JtIHBhY2thZ2UuXG4gKiBAY29uc3QgVkVSU0lPTlxuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItdHlwZW9ybVxuICovXG5leHBvcnQgY29uc3QgVkVSU0lPTiA9IFwiIyNWRVJTSU9OIyNcIjtcbiJdfQ==