@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
package/lib/types.cjs ADDED
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SQLOperator = void 0;
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
+ var SQLOperator;
11
+ (function (SQLOperator) {
12
+ SQLOperator["EQUAL"] = "=";
13
+ SQLOperator["NOT_EQUAL"] = "<>";
14
+ SQLOperator["LESS_THAN"] = "<";
15
+ SQLOperator["LESS_THAN_OR_EQUAL"] = "<=";
16
+ SQLOperator["GREATER_THAN"] = ">";
17
+ SQLOperator["GREATER_THAN_OR_EQUAL"] = ">=";
18
+ SQLOperator["IN"] = "IN";
19
+ SQLOperator["NOT_IN"] = "NOT IN";
20
+ SQLOperator["LIKE"] = "LIKE";
21
+ SQLOperator["ILIKE"] = "ILIKE";
22
+ SQLOperator["BETWEEN"] = "BETWEEN";
23
+ SQLOperator["IS_NULL"] = "IS NULL";
24
+ SQLOperator["IS_NOT_NULL"] = "IS NOT NULL";
25
+ SQLOperator["EXISTS"] = "EXISTS";
26
+ SQLOperator["NOT_EXISTS"] = "NOT EXISTS";
27
+ SQLOperator["ANY"] = "ANY";
28
+ SQLOperator["ALL"] = "ALL";
29
+ SQLOperator["SOME"] = "SOME";
30
+ })(SQLOperator || (exports.SQLOperator = SQLOperator = {}));
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBSUE7Ozs7O0dBS0c7QUFDSCxJQUFZLFdBbUJYO0FBbkJELFdBQVksV0FBVztJQUNyQiwwQkFBVyxDQUFBO0lBQ1gsK0JBQWdCLENBQUE7SUFDaEIsOEJBQWUsQ0FBQTtJQUNmLHdDQUF5QixDQUFBO0lBQ3pCLGlDQUFrQixDQUFBO0lBQ2xCLDJDQUE0QixDQUFBO0lBQzVCLHdCQUFTLENBQUE7SUFDVCxnQ0FBaUIsQ0FBQTtJQUNqQiw0QkFBYSxDQUFBO0lBQ2IsOEJBQWUsQ0FBQTtJQUNmLGtDQUFtQixDQUFBO0lBQ25CLGtDQUFtQixDQUFBO0lBQ25CLDBDQUEyQixDQUFBO0lBQzNCLGdDQUFpQixDQUFBO0lBQ2pCLHdDQUF5QixDQUFBO0lBQ3pCLDBCQUFXLENBQUE7SUFDWCwwQkFBVyxDQUFBO0lBQ1gsNEJBQWEsQ0FBQTtBQUNmLENBQUMsRUFuQlcsV0FBVywyQkFBWCxXQUFXLFFBbUJ0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlcG9zaXRvcnlGbGFncyB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgU2VsZWN0UXVlcnlCdWlsZGVyIH0gZnJvbSBcInR5cGVvcm1cIjtcbmltcG9ydCB7IE1vZGVsIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBTUUwgb3BlcmF0b3JzIGF2YWlsYWJsZSBmb3IgYnVpbGRpbmcgVHlwZU9STSBxdWVyaWVzLlxuICogQHN1bW1hcnkgRW51bWVyYXRpb24gb2YgY29tbW9uIFNRTCBvcGVyYXRvcnMgaW50ZW5kZWQgZm9yIHVzZSB3aXRoaW4gVHlwZU9STSBxdWVyeSBjb25zdHJ1Y3Rpb24gYW5kIHRyYW5zbGF0aW9uIGxheWVycy5cbiAqIEBlbnVtIHtzdHJpbmd9XG4gKiBAbWVtYmVyT2YgbW9kdWxlOmZvci10eXBlb3JtXG4gKi9cbmV4cG9ydCBlbnVtIFNRTE9wZXJhdG9yIHtcbiAgRVFVQUwgPSBcIj1cIixcbiAgTk9UX0VRVUFMID0gXCI8PlwiLFxuICBMRVNTX1RIQU4gPSBcIjxcIixcbiAgTEVTU19USEFOX09SX0VRVUFMID0gXCI8PVwiLFxuICBHUkVBVEVSX1RIQU4gPSBcIj5cIixcbiAgR1JFQVRFUl9USEFOX09SX0VRVUFMID0gXCI+PVwiLFxuICBJTiA9IFwiSU5cIixcbiAgTk9UX0lOID0gXCJOT1QgSU5cIixcbiAgTElLRSA9IFwiTElLRVwiLFxuICBJTElLRSA9IFwiSUxJS0VcIixcbiAgQkVUV0VFTiA9IFwiQkVUV0VFTlwiLFxuICBJU19OVUxMID0gXCJJUyBOVUxMXCIsXG4gIElTX05PVF9OVUxMID0gXCJJUyBOT1QgTlVMTFwiLFxuICBFWElTVFMgPSBcIkVYSVNUU1wiLFxuICBOT1RfRVhJU1RTID0gXCJOT1QgRVhJU1RTXCIsXG4gIEFOWSA9IFwiQU5ZXCIsXG4gIEFMTCA9IFwiQUxMXCIsXG4gIFNPTUUgPSBcIlNPTUVcIixcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gUXVlcnkgY29udGFpbmVyIHVzZWQgYnkgdGhlIFR5cGVPUk0gYWRhcHRlci5cbiAqIEBzdW1tYXJ5IFJlcHJlc2VudHMgZWl0aGVyIGEgcmF3IFNRTCBzdHJpbmcgb3IgYSBUeXBlT1JNIFNlbGVjdFF1ZXJ5QnVpbGRlciBhbG9uZyB3aXRoIG9wdGlvbmFsIGJvdW5kIHZhbHVlcyB0byBiZSBleGVjdXRlZCBieSB0aGUgYWRhcHRlci5cbiAqIEB0ZW1wbGF0ZSBNIFRoZSBNb2RlbCB0eXBlIGZvciB3aGljaCB0aGUgU2VsZWN0UXVlcnlCdWlsZGVyIGlzIHBhcmFtZXRlcml6ZWQuXG4gKiBAdGVtcGxhdGUgVCBUaGUgdW5kZXJseWluZyBxdWVyeSB0eXBlLCBlaXRoZXIgYSBzdHJpbmcgb3IgYSBTZWxlY3RRdWVyeUJ1aWxkZXI8TT4uXG4gKiBAaW50ZXJmYWNlIFR5cGVPUk1RdWVyeVxuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItdHlwZW9ybVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVPUk1RdWVyeTxcbiAgTSBleHRlbmRzIE1vZGVsID0gTW9kZWwsXG4gIFQgZXh0ZW5kcyBzdHJpbmcgfCBTZWxlY3RRdWVyeUJ1aWxkZXI8TT4gPSBzdHJpbmcsXG4+IHtcbiAgcXVlcnk6IFQ7XG4gIHZhbHVlcz86IGFueVtdO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDb25maWd1cmF0aW9uIGZsYWdzIGZvciBUeXBlT1JNIG9wZXJhdGlvbnMuXG4gKiBAc3VtbWFyeSBFeHRlbmRlZCByZXBvc2l0b3J5IGZsYWdzIGluY2x1ZGluZyBjb25uZWN0aW9uL3VzZXIgY29udGV4dCB0aGF0IGNhbiBiZSBsZXZlcmFnZWQgYnkgdGhlIFR5cGVPUk0gYWRhcHRlci5cbiAqIEBpbnRlcmZhY2UgVHlwZU9STUZsYWdzXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmZvci10eXBlb3JtXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZU9STUZsYWdzIGV4dGVuZHMgUmVwb3NpdG9yeUZsYWdzIHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBVc2VyIGF1dGhlbnRpY2F0aW9uIGluZm9ybWF0aW9uIGZvciBQb3N0Z3JlcyBkYXRhYmFzZSBjb25uZWN0aW9uc1xuICAgKi9cbiAgdXNlcjogc3RyaW5nO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBTcGVjaWZpY2F0aW9uIGZvciBhIHRhYmxlIGNyZWF0aW9uL2NoYW5nZSBzdGF0ZW1lbnQgdXNlZCBieSB0aGUgVHlwZU9STSBhZGFwdGVyLlxuICogQHN1bW1hcnkgRXh0ZW5kcyBhIFR5cGVPUk1RdWVyeSB3aXRoIHRhYmxlIG1ldGFkYXRhIHN1Y2ggYXMgcHJpbWFyeSBrZXkgZmxhZywgY29uc3RyYWludHMsIGFuZCBmb3JlaWduIGtleXMuXG4gKiBAdHlwZWRlZiBUeXBlT1JNVGFibGVTcGVjXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IHByaW1hcnlLZXkgSW5kaWNhdGVzIGlmIHRoZSB0YXJnZXQgY29sdW1uIGlzIHBhcnQgb2YgdGhlIHByaW1hcnkga2V5LlxuICogQHByb3BlcnR5IHtzdHJpbmdbXX0gY29uc3RyYWludHMgQSBsaXN0IG9mIHJhdyBTUUwgY29uc3RyYWludHMgdG8gYXBwbHkgdG8gdGhlIHRhYmxlL2NvbHVtbi5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nW119IGZvcmVpZ25LZXlzIEEgbGlzdCBvZiBmb3JlaWduIGtleSBjb25zdHJhaW50IGRlZmluaXRpb25zLlxuICogQG1lbWJlck9mIG1vZHVsZTpmb3ItdHlwZW9ybVxuICovXG5leHBvcnQgdHlwZSBUeXBlT1JNVGFibGVTcGVjID0gVHlwZU9STVF1ZXJ5ICYge1xuICBwcmltYXJ5S2V5OiBib29sZWFuO1xuICBjb25zdHJhaW50czogc3RyaW5nW107XG4gIGZvcmVpZ25LZXlzOiBzdHJpbmdbXTtcbn07XG4iXX0=
package/lib/types.d.ts ADDED
@@ -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
+ };
package/lib/utils.cjs ADDED
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.convertJsRegexToPostgres = convertJsRegexToPostgres;
4
+ /**
5
+ * @description Converts a JavaScript RegExp pattern to a PostgreSQL POSIX pattern string.
6
+ * @summary Accepts either a RegExp object or a string representation (/pattern/flags) and returns the raw pattern compatible with PostgreSQL's ~ and ~* operators.
7
+ * @param {RegExp|string} jsRegex JavaScript RegExp object or pattern string.
8
+ * @return {string} PostgreSQL-compatible regex pattern string.
9
+ * @function convertJsRegexToPostgres
10
+ * @mermaid
11
+ * sequenceDiagram
12
+ * participant App
13
+ * participant Utils as convertJsRegexToPostgres
14
+ * App->>Utils: convertJsRegexToPostgres(RegExp("foo.*","i"))
15
+ * Utils->>Utils: Parse string or use RegExp.source
16
+ * Utils-->>App: "foo.*"
17
+ * @memberOf module:for-typeorm
18
+ */
19
+ function convertJsRegexToPostgres(jsRegex) {
20
+ const rxp = new RegExp(/^\/(.+)\/(\w+)$/g);
21
+ if (typeof jsRegex === "string") {
22
+ const match = rxp.exec(jsRegex);
23
+ if (match) {
24
+ const [, p] = match;
25
+ jsRegex = p;
26
+ }
27
+ }
28
+ const regex = typeof jsRegex === "string" ? new RegExp(jsRegex) : jsRegex;
29
+ const pattern = regex.source;
30
+ return pattern;
31
+ }
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFlQSw0REFjQztBQTdCRDs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILFNBQWdCLHdCQUF3QixDQUFDLE9BQXdCO0lBQy9ELE1BQU0sR0FBRyxHQUFHLElBQUksTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDM0MsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUNoQyxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hDLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUM7WUFDcEIsT0FBTyxHQUFHLENBQUMsQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDO0lBQ0QsTUFBTSxLQUFLLEdBQUcsT0FBTyxPQUFPLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0lBRTFFLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7SUFFN0IsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGRlc2NyaXB0aW9uIENvbnZlcnRzIGEgSmF2YVNjcmlwdCBSZWdFeHAgcGF0dGVybiB0byBhIFBvc3RncmVTUUwgUE9TSVggcGF0dGVybiBzdHJpbmcuXG4gKiBAc3VtbWFyeSBBY2NlcHRzIGVpdGhlciBhIFJlZ0V4cCBvYmplY3Qgb3IgYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gKC9wYXR0ZXJuL2ZsYWdzKSBhbmQgcmV0dXJucyB0aGUgcmF3IHBhdHRlcm4gY29tcGF0aWJsZSB3aXRoIFBvc3RncmVTUUwncyB+IGFuZCB+KiBvcGVyYXRvcnMuXG4gKiBAcGFyYW0ge1JlZ0V4cHxzdHJpbmd9IGpzUmVnZXggSmF2YVNjcmlwdCBSZWdFeHAgb2JqZWN0IG9yIHBhdHRlcm4gc3RyaW5nLlxuICogQHJldHVybiB7c3RyaW5nfSBQb3N0Z3JlU1FMLWNvbXBhdGlibGUgcmVnZXggcGF0dGVybiBzdHJpbmcuXG4gKiBAZnVuY3Rpb24gY29udmVydEpzUmVnZXhUb1Bvc3RncmVzXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IEFwcFxuICogICBwYXJ0aWNpcGFudCBVdGlscyBhcyBjb252ZXJ0SnNSZWdleFRvUG9zdGdyZXNcbiAqICAgQXBwLT4+VXRpbHM6IGNvbnZlcnRKc1JlZ2V4VG9Qb3N0Z3JlcyhSZWdFeHAoXCJmb28uKlwiLFwiaVwiKSlcbiAqICAgVXRpbHMtPj5VdGlsczogUGFyc2Ugc3RyaW5nIG9yIHVzZSBSZWdFeHAuc291cmNlXG4gKiAgIFV0aWxzLS0+PkFwcDogXCJmb28uKlwiXG4gKiBAbWVtYmVyT2YgbW9kdWxlOmZvci10eXBlb3JtXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0SnNSZWdleFRvUG9zdGdyZXMoanNSZWdleDogUmVnRXhwIHwgc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgcnhwID0gbmV3IFJlZ0V4cCgvXlxcLyguKylcXC8oXFx3KykkL2cpO1xuICBpZiAodHlwZW9mIGpzUmVnZXggPT09IFwic3RyaW5nXCIpIHtcbiAgICBjb25zdCBtYXRjaCA9IHJ4cC5leGVjKGpzUmVnZXgpO1xuICAgIGlmIChtYXRjaCkge1xuICAgICAgY29uc3QgWywgcF0gPSBtYXRjaDtcbiAgICAgIGpzUmVnZXggPSBwO1xuICAgIH1cbiAgfVxuICBjb25zdCByZWdleCA9IHR5cGVvZiBqc1JlZ2V4ID09PSBcInN0cmluZ1wiID8gbmV3IFJlZ0V4cChqc1JlZ2V4KSA6IGpzUmVnZXg7XG5cbiAgY29uc3QgcGF0dGVybiA9IHJlZ2V4LnNvdXJjZTtcblxuICByZXR1cm4gcGF0dGVybjtcbn1cbiJdfQ==
package/lib/utils.d.ts ADDED
@@ -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;
package/package.json ADDED
@@ -0,0 +1,128 @@
1
+ {
2
+ "name": "@decaf-ts/for-typeorm",
3
+ "version": "0.0.6",
4
+ "description": "decaf typeorm wrapper",
5
+ "type": "module",
6
+ "exports": {
7
+ "require": "./lib/index.cjs",
8
+ "import": "./lib/esm/index.js"
9
+ },
10
+ "types": "lib/index.d.ts",
11
+ "scripts": {
12
+ "do-install": "TOKEN=$(cat .token) npm install",
13
+ "update-dependencies": "PREFIX=\"decaf-ts\"; npm ls | grep \"$PREFIX\" | awk -F/ '{print $NF}' | sed 's/@.*//' | xargs -I package npm update @\"$PREFIX\"/package",
14
+ "update-scripts": "npx update-scripts",
15
+ "on-first-run": "npx update-scripts --boot",
16
+ "set-git-auth": "git config url.\"https://api:$(cat .token)@github.com/\".insteadOf \"https://github.com/\" && git config url.\"https://ssh:$(cat .token)@github.com/\".insteadOf \"ssh://git@github.com/\" && git config url.\"https://git:$(cat .token)@github.com/\".insteadOf \"git@github.com:\"",
17
+ "flash-forward": "npx npm-check-updates -u && npm run do-install",
18
+ "reset": "rm -rf * && git checkout . && git pull && npm run do-install",
19
+ "build": "npx build-scripts --dev",
20
+ "build:prod": "npx build-scripts --prod",
21
+ "test": "jest --runInBand --coverage --detectOpenHandles",
22
+ "test:unit": "jest --testPathPattern=\"/tests/unit\" --passWithNoTests --detectOpenHandles",
23
+ "test:integration": "jest --testPathPattern=\"/tests/(integration)\" --passWithNoTests --detectOpenHandles --runInBand",
24
+ "test:all": "jest --testPathPattern=\"/tests\" --passWithNoTests --runInBand",
25
+ "test:circular": "dpdm -T --no-warning --no-tree ./src/index.ts",
26
+ "coverage": "rimraf ./workdocs/reports/data/*.json && npm run test:all -- --coverage --config=./workdocs/reports/jest.coverage.config.ts",
27
+ "lint": "eslint .",
28
+ "lint-fix": "eslint --fix .",
29
+ "prepare-release": "npm run lint-fix && npm run build:prod && npm run coverage && npm run docs",
30
+ "release": "./bin/tag-release.sh",
31
+ "clean-publish": "npx clean-publish",
32
+ "drawings": "for FILE in workdocs/drawings/*.drawio; do echo \"converting $FILE to image...\" && docker run --rm -v $(pwd):/data rlespinasse/drawio-export --format png $FILE; done && cp -rf workdocs/drawings/export/* workdocs/resources/",
33
+ "uml": "cd workdocs/uml && for FILE in ./*.puml; do docker run --rm -v $(pwd):/work -w /work miy4/plantuml -DPLANTUML_LIMIT_SIZE=8192 -tpng $FILE; done && cd ../.. && cp -fr workdocs/uml/*.png workdocs/resources/",
34
+ "docs": "npx rimraf ./docs && mkdir docs && npx build-scripts --docs",
35
+ "publish-docs": "docker run -it --rm --user $(id -u):$(id -g) -v \"$(pwd)/workdocs/confluence:/content\" -e ATLASSIAN_API_TOKEN=$(cat .confluence-token) ghcr.io/markdown-confluence/publish:latest",
36
+ "docker:login": "docker login ghcr.io -u $(cat .dockeruser) -p $(cat .dockertoken)",
37
+ "docker:build": "npm run docker:build-base",
38
+ "docker:build-base": "DOCKER_BUILDKIT=1 docker build --secret id=TOKEN,src=$PWD/.npmtoken -t ghcr.io/decaf-ts/for-postgres:base-$(cat package.json | jq -r '.version') -t ghcr.io/decaf-ts/for-postgres:base-${VERSION:-latest} -f ./Dockerfile .",
39
+ "docker:publish": "npm run docker:publish-base",
40
+ "docker:publish-base": "docker push ghcr.io/decaf-ts/for-postgres:base-$(cat package.json | jq -r '.version') && docker push ghcr.io/decaf-ts/for-postgres:base-${VERSION:-latest}"
41
+ },
42
+ "repository": {
43
+ "type": "git",
44
+ "url": "git+https://github.com/decaf-ts/for-typeorm.git"
45
+ },
46
+ "engines": {
47
+ "node": ">=20.0.0",
48
+ "npm": ">=10.0.0"
49
+ },
50
+ "files": [
51
+ "lib",
52
+ "dist"
53
+ ],
54
+ "keywords": [
55
+ "plantuml",
56
+ "mermaid",
57
+ "uml",
58
+ "drawio",
59
+ "mddocs",
60
+ "md",
61
+ "jsdoc",
62
+ "doc",
63
+ "docs",
64
+ "documentation",
65
+ "test",
66
+ "reports",
67
+ "confluence",
68
+ "ci/cd",
69
+ "ci",
70
+ "cd",
71
+ "template",
72
+ "typescript",
73
+ "ts"
74
+ ],
75
+ "author": "Tiago Venceslau",
76
+ "bugs": {
77
+ "url": "https://github.com/decaf-ts/for-typeorm/issues"
78
+ },
79
+ "homepage": "https://github.com/decaf-ts/for-typeorm#readme",
80
+ "devDependencies": {
81
+ "@decaf-ts/utils": "latest",
82
+ "@eslint/js": "^9.25.1",
83
+ "@rollup/plugin-commonjs": "^28.0.3",
84
+ "@rollup/plugin-json": "^6.1.0",
85
+ "@rollup/plugin-node-resolve": "^16.0.1",
86
+ "@rollup/plugin-typescript": "^12.1.2",
87
+ "@stylistic/eslint-plugin": "^4.2.0",
88
+ "@types/jest": "^29.5.14",
89
+ "@types/pg": "^8.15.4",
90
+ "clean-publish": "^5.1.0",
91
+ "dpdm": "^3.14.0",
92
+ "eslint": "^9.25.1",
93
+ "eslint-config-prettier": "^10.1.2",
94
+ "eslint-plugin-prettier": "^5.2.6",
95
+ "globals": "^16.0.0",
96
+ "jest": "^29.7.0",
97
+ "jest-html-reporters": "^3.1.7",
98
+ "jest-junit": "^16.0.0",
99
+ "jsdoc": "^4.0.4",
100
+ "jsdoc-mermaid": "^1.0.0",
101
+ "markdown-include": "^0.4.3",
102
+ "minimist": "^1.2.8",
103
+ "nano": "^10.1.4",
104
+ "nodemon": "^3.1.9",
105
+ "npm-check-updates": "^18.0.0",
106
+ "prettier": "3.5.3",
107
+ "rimraf": "^6.0.1",
108
+ "rollup": "^4.40.0",
109
+ "ts-jest": "^29.3.2",
110
+ "ts-loader": "^9.5.2",
111
+ "ts-node": "^10.9.2",
112
+ "typescript": "^5.8.3",
113
+ "typescript-eslint": "^8.31.0"
114
+ },
115
+ "peerDependencies": {
116
+ "@decaf-ts/core": "latest",
117
+ "@decaf-ts/db-decorators": "latest",
118
+ "@decaf-ts/decorator-validation": "latest",
119
+ "@decaf-ts/injectable-decorators": "latest",
120
+ "@decaf-ts/logging": "latest",
121
+ "@decaf-ts/reflection": "latest",
122
+ "pg": "^8.16.3",
123
+ "reflect-metadata": "^0.2.2"
124
+ },
125
+ "dependencies": {
126
+ "typeorm": "^0.3.25"
127
+ }
128
+ }