@decaf-ts/core 0.5.47 → 0.7.0

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 (142) hide show
  1. package/README.md +1 -1
  2. package/dist/core.cjs +1 -1
  3. package/dist/core.cjs.map +1 -1
  4. package/dist/core.js +1 -1
  5. package/dist/core.js.map +1 -1
  6. package/lib/esm/identity/decorators.js +6 -5
  7. package/lib/esm/identity/decorators.js.map +1 -1
  8. package/lib/esm/identity/utils.d.ts +3 -2
  9. package/lib/esm/identity/utils.js +7 -7
  10. package/lib/esm/identity/utils.js.map +1 -1
  11. package/lib/esm/index.d.ts +2 -1
  12. package/lib/esm/index.js +2 -1
  13. package/lib/esm/index.js.map +1 -1
  14. package/lib/esm/model/construction.d.ts +2 -11
  15. package/lib/esm/model/construction.js +21 -33
  16. package/lib/esm/model/construction.js.map +1 -1
  17. package/lib/esm/model/decorators.d.ts +11 -2
  18. package/lib/esm/model/decorators.js +91 -69
  19. package/lib/esm/model/decorators.js.map +1 -1
  20. package/lib/esm/model/types.d.ts +6 -2
  21. package/lib/esm/overrides/Metadata.d.ts +16 -2
  22. package/lib/esm/overrides/overrides.js +40 -1
  23. package/lib/esm/overrides/overrides.js.map +1 -1
  24. package/lib/esm/persistence/Adapter.d.ts +6 -10
  25. package/lib/esm/persistence/Adapter.js +43 -46
  26. package/lib/esm/persistence/Adapter.js.map +1 -1
  27. package/lib/esm/persistence/Sequence.d.ts +2 -1
  28. package/lib/esm/persistence/Sequence.js.map +1 -1
  29. package/lib/esm/persistence/constants.d.ts +3 -1
  30. package/lib/esm/persistence/constants.js +2 -0
  31. package/lib/esm/persistence/constants.js.map +1 -1
  32. package/lib/esm/persistence/errors.d.ts +6 -0
  33. package/lib/esm/persistence/errors.js +10 -0
  34. package/lib/esm/persistence/errors.js.map +1 -1
  35. package/lib/esm/persistence/index.d.ts +1 -1
  36. package/lib/esm/persistence/index.js +1 -1
  37. package/lib/esm/persistence/index.js.map +1 -1
  38. package/lib/esm/persistence/migrations.d.ts +21 -0
  39. package/lib/esm/persistence/migrations.js +103 -0
  40. package/lib/esm/persistence/migrations.js.map +1 -0
  41. package/lib/esm/persistence/types.d.ts +7 -1
  42. package/lib/esm/query/Paginator.d.ts +4 -2
  43. package/lib/esm/query/Paginator.js +3 -1
  44. package/lib/esm/query/Paginator.js.map +1 -1
  45. package/lib/esm/query/Statement.d.ts +2 -1
  46. package/lib/esm/query/Statement.js +2 -2
  47. package/lib/esm/query/Statement.js.map +1 -1
  48. package/lib/esm/query/options.d.ts +2 -1
  49. package/lib/esm/query/selectors.d.ts +2 -1
  50. package/lib/esm/ram/RamAdapter.d.ts +2 -1
  51. package/lib/esm/ram/RamAdapter.js +7 -5
  52. package/lib/esm/ram/RamAdapter.js.map +1 -1
  53. package/lib/esm/ram/RamPaginator.d.ts +2 -1
  54. package/lib/esm/ram/RamPaginator.js +1 -1
  55. package/lib/esm/ram/RamPaginator.js.map +1 -1
  56. package/lib/esm/ram/RamStatement.js +3 -3
  57. package/lib/esm/ram/RamStatement.js.map +1 -1
  58. package/lib/esm/ram/types.d.ts +2 -1
  59. package/lib/esm/repository/Repository.d.ts +2 -1
  60. package/lib/esm/repository/Repository.js +30 -40
  61. package/lib/esm/repository/Repository.js.map +1 -1
  62. package/lib/esm/repository/decorators.d.ts +2 -1
  63. package/lib/esm/repository/decorators.js +7 -8
  64. package/lib/esm/repository/decorators.js.map +1 -1
  65. package/lib/esm/repository/injectables.d.ts +1 -2
  66. package/lib/esm/repository/injectables.js +6 -6
  67. package/lib/esm/repository/injectables.js.map +1 -1
  68. package/lib/esm/repository/utils.d.ts +2 -2
  69. package/lib/esm/repository/utils.js +4 -5
  70. package/lib/esm/repository/utils.js.map +1 -1
  71. package/lib/identity/decorators.cjs +6 -5
  72. package/lib/identity/decorators.js.map +1 -1
  73. package/lib/identity/utils.cjs +5 -5
  74. package/lib/identity/utils.d.ts +3 -2
  75. package/lib/identity/utils.js.map +1 -1
  76. package/lib/index.cjs +2 -1
  77. package/lib/index.d.ts +2 -1
  78. package/lib/index.js.map +1 -1
  79. package/lib/model/construction.cjs +19 -31
  80. package/lib/model/construction.d.ts +2 -11
  81. package/lib/model/construction.js.map +1 -1
  82. package/lib/model/decorators.cjs +99 -76
  83. package/lib/model/decorators.d.ts +11 -2
  84. package/lib/model/decorators.js.map +1 -1
  85. package/lib/model/types.d.ts +6 -2
  86. package/lib/overrides/Metadata.d.ts +16 -2
  87. package/lib/overrides/overrides.cjs +39 -0
  88. package/lib/overrides/overrides.js.map +1 -1
  89. package/lib/persistence/Adapter.cjs +41 -44
  90. package/lib/persistence/Adapter.d.ts +6 -10
  91. package/lib/persistence/Adapter.js.map +1 -1
  92. package/lib/persistence/Sequence.d.ts +2 -1
  93. package/lib/persistence/Sequence.js.map +1 -1
  94. package/lib/persistence/constants.cjs +2 -0
  95. package/lib/persistence/constants.d.ts +3 -1
  96. package/lib/persistence/constants.js.map +1 -1
  97. package/lib/persistence/errors.cjs +13 -1
  98. package/lib/persistence/errors.d.ts +6 -0
  99. package/lib/persistence/errors.js.map +1 -1
  100. package/lib/persistence/index.cjs +1 -1
  101. package/lib/persistence/index.d.ts +1 -1
  102. package/lib/persistence/index.js.map +1 -1
  103. package/lib/persistence/migrations.cjs +109 -0
  104. package/lib/persistence/migrations.d.ts +21 -0
  105. package/lib/persistence/migrations.js.map +1 -0
  106. package/lib/persistence/types.d.ts +7 -1
  107. package/lib/query/Paginator.cjs +3 -1
  108. package/lib/query/Paginator.d.ts +4 -2
  109. package/lib/query/Paginator.js.map +1 -1
  110. package/lib/query/Statement.cjs +1 -1
  111. package/lib/query/Statement.d.ts +2 -1
  112. package/lib/query/Statement.js.map +1 -1
  113. package/lib/query/options.d.ts +2 -1
  114. package/lib/query/selectors.d.ts +2 -1
  115. package/lib/ram/RamAdapter.cjs +9 -7
  116. package/lib/ram/RamAdapter.d.ts +2 -1
  117. package/lib/ram/RamAdapter.js.map +1 -1
  118. package/lib/ram/RamPaginator.cjs +1 -1
  119. package/lib/ram/RamPaginator.d.ts +2 -1
  120. package/lib/ram/RamPaginator.js.map +1 -1
  121. package/lib/ram/RamStatement.cjs +3 -3
  122. package/lib/ram/RamStatement.js.map +1 -1
  123. package/lib/ram/types.d.ts +2 -1
  124. package/lib/repository/Repository.cjs +29 -39
  125. package/lib/repository/Repository.d.ts +2 -1
  126. package/lib/repository/Repository.js.map +1 -1
  127. package/lib/repository/decorators.cjs +5 -6
  128. package/lib/repository/decorators.d.ts +2 -1
  129. package/lib/repository/decorators.js.map +1 -1
  130. package/lib/repository/injectables.cjs +5 -5
  131. package/lib/repository/injectables.d.ts +1 -2
  132. package/lib/repository/injectables.js.map +1 -1
  133. package/lib/repository/utils.cjs +4 -5
  134. package/lib/repository/utils.d.ts +2 -2
  135. package/lib/repository/utils.js.map +1 -1
  136. package/package.json +2 -4
  137. package/lib/esm/persistence/decorators.d.ts +0 -11
  138. package/lib/esm/persistence/decorators.js +0 -19
  139. package/lib/esm/persistence/decorators.js.map +0 -1
  140. package/lib/persistence/decorators.cjs +0 -22
  141. package/lib/persistence/decorators.d.ts +0 -11
  142. package/lib/persistence/decorators.js.map +0 -1
@@ -0,0 +1,103 @@
1
+ import { Adapter } from "./Adapter.js";
2
+ import { InternalError, } from "@decaf-ts/db-decorators";
3
+ import { LoggedClass } from "@decaf-ts/logging";
4
+ import { PersistenceKeys } from "./constants.js";
5
+ import { Decoration, Metadata, metadata } from "@decaf-ts/decoration";
6
+ import { MigrationRuleError } from "./errors.js";
7
+ export function prefixMethod(obj, after, prefix, afterName) {
8
+ async function wrapper(...args) {
9
+ let results;
10
+ try {
11
+ results = await Promise.resolve(prefix.call(this, ...args));
12
+ }
13
+ catch (e) {
14
+ if (e instanceof MigrationRuleError)
15
+ return;
16
+ throw e;
17
+ }
18
+ return Promise.resolve(after.apply(this, results));
19
+ }
20
+ const wrapped = wrapper.bind(obj);
21
+ const name = afterName ? afterName : after.name;
22
+ Object.defineProperty(wrapped, "name", {
23
+ enumerable: true,
24
+ configurable: true,
25
+ writable: false,
26
+ value: name,
27
+ });
28
+ obj[name] = wrapped;
29
+ }
30
+ export class AbsMigration extends LoggedClass {
31
+ constructor() {
32
+ super();
33
+ this.transaction = true;
34
+ [this.up, this.down].forEach((m) => {
35
+ const name = m.name;
36
+ prefixMethod(this, m, this.prefix(name));
37
+ });
38
+ }
39
+ get adapter() {
40
+ const meta = Metadata.get(this.constructor, PersistenceKeys.MIGRATION);
41
+ if (!meta)
42
+ throw new InternalError(`No migration metadata for ${this.constructor.name}`);
43
+ const flavour = meta.flavour;
44
+ return Adapter.get(flavour);
45
+ }
46
+ async enforceRules(qr, adapter, l) {
47
+ const rules = Metadata.get(this.constructor, PersistenceKeys.MIGRATION)?.rules;
48
+ if (!rules || !rules.length)
49
+ return true;
50
+ let log;
51
+ for (const rule of rules) {
52
+ log = l.for(rule);
53
+ const result = await rule(qr, adapter, log);
54
+ if (!result)
55
+ return false;
56
+ }
57
+ return true;
58
+ }
59
+ prefix(name) {
60
+ return async function preffix(qrOrAdapter) {
61
+ let qr;
62
+ if (qrOrAdapter instanceof Adapter) {
63
+ qr = this.getQueryRunner(qrOrAdapter.client);
64
+ }
65
+ else {
66
+ qr = qrOrAdapter;
67
+ qrOrAdapter = this.adapter;
68
+ }
69
+ const log = this.log.for(name);
70
+ const allowed = await this.enforceRules(qr, qrOrAdapter, log);
71
+ if (!allowed) {
72
+ log.verbose(`Skipping migration ${this.constructor.name} due to rules`);
73
+ throw new MigrationRuleError("Migration skipped for rule enforcement");
74
+ }
75
+ return [qr, qrOrAdapter, log];
76
+ }.bind(this);
77
+ }
78
+ }
79
+ export function migration(flavour, rules) {
80
+ function innerMigration(flavour, rules) {
81
+ return function (original) {
82
+ const current = Metadata["innerGet"](Symbol.for(PersistenceKeys.MIGRATION), flavour) ||
83
+ [];
84
+ Metadata.set(PersistenceKeys.MIGRATION, flavour, [
85
+ ...current,
86
+ {
87
+ class: original,
88
+ },
89
+ ]);
90
+ return metadata(PersistenceKeys.MIGRATION, {
91
+ flavour: flavour,
92
+ rules: rules,
93
+ })(original);
94
+ };
95
+ }
96
+ return Decoration.for(PersistenceKeys.MIGRATION)
97
+ .define({
98
+ decorator: innerMigration,
99
+ args: [flavour, rules],
100
+ })
101
+ .apply();
102
+ }
103
+ //# sourceMappingURL=migrations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../../src/persistence/migrations.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,qBAAkB;AACpC,OAAO,EAEL,aAAa,GAEd,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,WAAW,EAAU,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,uBAAoB;AAC9C,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,oBAAiB;AAE9C,MAAM,UAAU,YAAY,CAC1B,GAAQ,EACR,KAA8B,EAC9B,MAA+B,EAC/B,SAAkB;IAElB,KAAK,UAAU,OAAO,CAAY,GAAG,IAAW;QAC9C,IAAI,OAAc,CAAC;QACnB,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;QAC9D,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,IAAI,CAAC,YAAY,kBAAkB;gBAAE,OAAO;YAC5C,MAAM,CAAC,CAAC;QACV,CAAC;QACD,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;IAChD,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE;QACrC,UAAU,EAAE,IAAI;QAChB,YAAY,EAAE,IAAI;QAClB,QAAQ,EAAE,KAAK;QACf,KAAK,EAAE,IAAI;KACZ,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;AACtB,CAAC;AAED,MAAM,OAAgB,YASpB,SAAQ,WAAW;IAKnB;QACE,KAAK,EAAE,CAAC;QAHV,gBAAW,GAAG,IAAI,CAAC;QAIjB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACjC,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;YACpB,YAAY,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAc,OAAO;QACnB,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CACvB,IAAI,CAAC,WAAkB,EACvB,eAAe,CAAC,SAAS,CAC1B,CAAC;QACF,IAAI,CAAC,IAAI;YACP,MAAM,IAAI,aAAa,CACrB,6BAA6B,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CACrD,CAAC;QACJ,MAAM,OAAO,GAAW,IAAI,CAAC,OAAO,CAAC;QACrC,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,CAAM,CAAC;IACnC,CAAC;IAIO,KAAK,CAAC,YAAY,CAAC,EAAe,EAAE,OAAU,EAAE,CAAS;QAC/D,MAAM,KAAK,GAQL,QAAQ,CAAC,GAAG,CAChB,IAAI,CAAC,WAAkB,EACvB,eAAe,CAAC,SAAS,CAC1B,EAAE,KAAK,CAAC;QACT,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACzC,IAAI,GAAW,CAAC;QAChB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;YAC5C,IAAI,CAAC,MAAM;gBAAE,OAAO,KAAK,CAAC;QAC5B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,MAAM,CAAC,IAAY;QACzB,OAAO,KAAK,UAAU,OAAO,CAE3B,WAA4B;YAE5B,IAAI,EAAe,CAAC;YACpB,IAAI,WAAW,YAAY,OAAO,EAAE,CAAC;gBACnC,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,EAAE,GAAG,WAAW,CAAC;gBACjB,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC;YAC7B,CAAC;YACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC/B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,WAAgB,EAAE,GAAG,CAAC,CAAC;YACnE,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,GAAG,CAAC,OAAO,CAAC,sBAAsB,IAAI,CAAC,WAAW,CAAC,IAAI,eAAe,CAAC,CAAC;gBACxE,MAAM,IAAI,kBAAkB,CAAC,wCAAwC,CAAC,CAAC;YACzE,CAAC;YACD,OAAO,CAAC,EAAE,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC;QAChC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;CAKF;AAiBD,MAAM,UAAU,SAAS,CAAC,OAAe,EAAE,KAAuB;IAChE,SAAS,cAAc,CAAC,OAAe,EAAE,KAAuB;QAC9D,OAAO,UAAU,QAAgB;YAC/B,MAAM,OAAO,GACX,QAAQ,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;gBACpE,EAAE,CAAC;YACL,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,SAAS,EAAE,OAAO,EAAE;gBAC/C,GAAG,OAAO;gBACV;oBACE,KAAK,EAAE,QAAQ;iBAChB;aACF,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC,eAAe,CAAC,SAAS,EAAE;gBACzC,OAAO,EAAE,OAAO;gBAChB,KAAK,EAAE,KAAK;aACb,CAAC,CAAC,QAAQ,CAAC,CAAC;QACf,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,UAAU,CAAC,GAAG,CAAC,eAAe,CAAC,SAAS,CAAC;SAC7C,MAAM,CAAC;QACN,SAAS,EAAE,cAAc;QACzB,IAAI,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC;KACvB,CAAC;SACD,KAAK,EAAE,CAAC;AACb,CAAC"}
@@ -1,6 +1,7 @@
1
- import { BulkCrudOperationKeys, OperationKeys } from "@decaf-ts/db-decorators";
1
+ import { BulkCrudOperationKeys, Context, OperationKeys, RepositoryFlags } from "@decaf-ts/db-decorators";
2
2
  import { Adapter } from "./Adapter";
3
3
  import { Observable } from "../interfaces/index";
4
+ import { Logger } from "@decaf-ts/logging";
4
5
  /**
5
6
  * @description Type representing possible ID formats for database events
6
7
  * @summary A union type that defines the possible formats for event identifiers in the persistence layer.
@@ -26,3 +27,8 @@ export interface AdapterDispatch extends Observable {
26
27
  close(): Promise<void>;
27
28
  updateObservers(table: string, event: OperationKeys | BulkCrudOperationKeys | string, id: EventIds): Promise<void>;
28
29
  }
30
+ export interface Migration<QUERYRUNNER, A extends Adapter<CONF, CONN, QUERY, FLAGS, CONTEXT>, CONF, CONN, QUERY, FLAGS extends RepositoryFlags = RepositoryFlags, CONTEXT extends Context<FLAGS> = Context<FLAGS>> {
31
+ transaction: boolean;
32
+ up(qr: QUERYRUNNER, adapter?: A, log?: Logger): Promise<void>;
33
+ down(qr: QUERYRUNNER, adapter?: A, log?: Logger): Promise<void>;
34
+ }
@@ -1,5 +1,7 @@
1
1
  import { Adapter } from "../persistence";
2
- import { Constructor, Model } from "@decaf-ts/decorator-validation";
2
+ import { Model } from "@decaf-ts/decorator-validation";
3
+ import { Constructor } from "@decaf-ts/decoration";
4
+ import { LoggedClass } from "@decaf-ts/logging";
3
5
  /**
4
6
  * @description Handles pagination for database queries
5
7
  * @summary Provides functionality for navigating through paginated query results
@@ -56,7 +58,7 @@ import { Constructor, Model } from "@decaf-ts/decorator-validation";
56
58
  * Adapter-->>Paginator: return results
57
59
  * Paginator-->>Client: return page results
58
60
  */
59
- export declare abstract class Paginator<M extends Model, R = M[], Q = any> {
61
+ export declare abstract class Paginator<M extends Model, R = M[], Q = any> extends LoggedClass {
60
62
  protected readonly adapter: Adapter<any, any, Q, any, any>;
61
63
  protected readonly query: Q;
62
64
  readonly size: number;
@@ -1,4 +1,5 @@
1
1
  import { PagingError } from "./errors.js";
2
+ import { LoggedClass } from "@decaf-ts/logging";
2
3
  /**
3
4
  * @description Handles pagination for database queries
4
5
  * @summary Provides functionality for navigating through paginated query results
@@ -55,7 +56,7 @@ import { PagingError } from "./errors.js";
55
56
  * Adapter-->>Paginator: return results
56
57
  * Paginator-->>Client: return page results
57
58
  */
58
- export class Paginator {
59
+ export class Paginator extends LoggedClass {
59
60
  get current() {
60
61
  return this._currentPage;
61
62
  }
@@ -71,6 +72,7 @@ export class Paginator {
71
72
  return this._statement;
72
73
  }
73
74
  constructor(adapter, query, size, clazz) {
75
+ super();
74
76
  this.adapter = adapter;
75
77
  this.query = query;
76
78
  this.size = size;
@@ -1 +1 @@
1
- {"version":3,"file":"Paginator.js","sourceRoot":"","sources":["../../../src/query/Paginator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,oBAAiB;AAIvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AACH,MAAM,OAAgB,SAAS;IAQ7B,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,IAAc,SAAS;QACrB,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,YACqB,OAAuC,EACvC,KAAQ,EAClB,IAAY,EACF,KAAqB;QAHrB,YAAO,GAAP,OAAO,CAAgC;QACvC,UAAK,GAAL,KAAK,CAAG;QAClB,SAAI,GAAJ,IAAI,CAAQ;QACF,UAAK,GAAL,KAAK,CAAgB;IACvC,CAAC;IAIJ,KAAK,CAAC,IAAI;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;IACrC,CAAC;IAES,YAAY,CAAC,IAAY;QACjC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;YACrC,MAAM,IAAI,WAAW,CACnB,sDAAsD,CACvD,CAAC;QACJ,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,WAAW,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW;YACpE,MAAM,IAAI,WAAW,CACnB,QAAQ,IAAI,CAAC,WAAW,qCAAqC,IAAI,EAAE,CACpE,CAAC;QACJ,OAAO,IAAI,CAAC;IACd,CAAC;CAGF"}
1
+ {"version":3,"file":"Paginator.js","sourceRoot":"","sources":["../../../src/query/Paginator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,oBAAiB;AAIvC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AACH,MAAM,OAAgB,SAIpB,SAAQ,WAAW;IAQnB,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,IAAc,SAAS;QACrB,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,YACqB,OAAuC,EACvC,KAAQ,EAClB,IAAY,EACF,KAAqB;QAExC,KAAK,EAAE,CAAC;QALW,YAAO,GAAP,OAAO,CAAgC;QACvC,UAAK,GAAL,KAAK,CAAG;QAClB,SAAI,GAAJ,IAAI,CAAQ;QACF,UAAK,GAAL,KAAK,CAAgB;IAG1C,CAAC;IAID,KAAK,CAAC,IAAI;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;IACrC,CAAC;IAES,YAAY,CAAC,IAAY;QACjC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;YACrC,MAAM,IAAI,WAAW,CACnB,sDAAsD,CACvD,CAAC;QACJ,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,WAAW,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW;YACpE,MAAM,IAAI,WAAW,CACnB,QAAQ,IAAI,CAAC,WAAW,qCAAqC,IAAI,EAAE,CACpE,CAAC;QACJ,OAAO,IAAI,CAAC;IACd,CAAC;CAGF"}
@@ -1,4 +1,4 @@
1
- import { type Constructor, Model } from "@decaf-ts/decorator-validation";
1
+ import { Model } from "@decaf-ts/decorator-validation";
2
2
  import type { Executor, RawExecutor } from "../interfaces";
3
3
  import type { FromSelector, GroupBySelector, OrderBySelector, SelectSelector } from "./selectors";
4
4
  import { Condition } from "./Condition";
@@ -8,6 +8,7 @@ import { Paginator } from "./Paginator";
8
8
  import { Adapter } from "../persistence";
9
9
  import { Logger } from "@decaf-ts/logging";
10
10
  import { LoggedClass } from "@decaf-ts/logging";
11
+ import { Constructor } from "@decaf-ts/decoration";
11
12
  /**
12
13
  * @description Base class for database query statements
13
14
  * @summary Provides a foundation for building and executing database queries
@@ -10,7 +10,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  var _a, _b, _c, _d;
11
11
  import { Model } from "@decaf-ts/decorator-validation";
12
12
  import { Condition } from "./Condition.js";
13
- import { findPrimaryKey, InternalError } from "@decaf-ts/db-decorators";
13
+ import { InternalError } from "@decaf-ts/db-decorators";
14
14
  import { final } from "./../utils/decorators.js";
15
15
  import { QueryError } from "./errors.js";
16
16
  import { LoggedClass } from "@decaf-ts/logging";
@@ -135,7 +135,7 @@ export class Statement extends LoggedClass {
135
135
  const results = await this.adapter.raw(rawInput);
136
136
  if (!this.selectSelector)
137
137
  return results;
138
- const pkAttr = findPrimaryKey(new this.fromSelector()).id;
138
+ const pkAttr = Model.pk(this.fromSelector);
139
139
  const processor = function recordProcessor(r) {
140
140
  const id = r[pkAttr];
141
141
  return this.adapter.revert(r, this.fromSelector, pkAttr, id);
@@ -1 +1 @@
1
- {"version":3,"file":"Statement.js","sourceRoot":"","sources":["../../../src/query/Statement.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Statement.js","sourceRoot":"","sources":["../../../src/query/Statement.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAQvD,OAAO,EAAE,SAAS,EAAE,uBAAoB;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,iCAA4B;AAe5C,OAAO,EAAE,UAAU,EAAE,oBAAiB;AAEtC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,MAAM,OAAgB,SACpB,SAAQ,WAAW;IAenB,YAAgC,OAAuC;QACrE,KAAK,EAAE,CAAC;QADsB,YAAO,GAAP,OAAO,CAAgC;IAEvE,CAAC;IAED,IAAuB,GAAG;QACxB,OAAQ,IAAI,CAAC,OAAe,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAClD,CAAC;IAWD,MAAM,CACJ,QAA0B;QAE1B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,gBAAgB,EAAE;YAC5C,KAAK,EAAE,QAAQ;YACf,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC;QACH,OAAO,IAAoE,CAAC;IAC9E,CAAC;IAGD,QAAQ,CACN,QAAW;QAEX,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC;QACjC,OAAO,IAAiC,CAAC;IAC3C,CAAC;IAGD,GAAG,CAA8B,QAAW;QAC1C,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;QAC5B,OAAO,IAA0B,CAAC;IACpC,CAAC;IAGD,GAAG,CAA8B,QAAW;QAC1C,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;QAC5B,OAAO,IAA0B,CAAC;IACpC,CAAC;IAGD,KAAK,CAA8B,QAAY;QAC7C,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;QAC9B,OAAO,IAA8B,CAAC;IACxC,CAAC;IAGM,IAAI,CAAC,QAAyB;QACnC,IAAI,CAAC,YAAY,GAAG,CAClB,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAC5C,CAAC;QACpB,IAAI,CAAC,IAAI,CAAC,YAAY;YACpB,MAAM,IAAI,UAAU,CAAC,kCAAkC,QAAQ,EAAE,CAAC,CAAC;QACrE,OAAO,IAAI,CAAC;IACd,CAAC;IAGM,KAAK,CAAC,SAAuB;QAClC,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAGM,OAAO,CACZ,QAA4B;QAE5B,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAGM,OAAO,CAAC,QAA4B;QACzC,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAGM,KAAK,CAAC,KAAa;QACxB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAGM,MAAM,CAAC,KAAa;QACzB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAGK,AAAN,KAAK,CAAC,OAAO;QACX,IAAI,CAAC;YACH,MAAM,KAAK,GAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,OAAO,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAM,CAAC;QACtC,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,MAAM,IAAI,aAAa,CAAC,CAAU,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAI,QAAW;QACtB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAI,QAAQ,CAAC,CAAC;QACpD,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE,OAAO,OAAO,CAAC;QACzC,MAAM,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAE3C,MAAM,SAAS,GAAG,SAAS,eAAe,CAExC,CAAM;YAEN,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;YACrB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CACxB,CAAC,EACD,IAAI,CAAC,YAAgC,EACrC,MAAM,EACN,EAAE,CACI,CAAC;QACX,CAAC,CAAC,IAAI,CAAC,IAAW,CAAC,CAAC;QAEpB,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YAAE,OAAO,OAAO,CAAC,GAAG,CAAC,SAAS,CAAM,CAAC;QAC/D,OAAO,SAAS,CAAC,OAAO,CAAM,CAAC;IACjC,CAAC;CAKF;AAjHC;IADC,KAAK,EAAE;;;;uCASP;AAGD;IADC,KAAK,EAAE;;yDAEI,CAAC,oBAAD,CAAC;;yCAIZ;AAGD;IADC,KAAK,EAAE;;yDACmC,CAAC,oBAAD,CAAC;;oCAG3C;AAGD;IADC,KAAK,EAAE;;yDACmC,CAAC,oBAAD,CAAC;;oCAG3C;AAGD;IADC,KAAK,EAAE;;yDACsC,CAAC,oBAAD,CAAC;;sCAG9C;AAGM;IADN,KAAK,EAAE;;;;qCAQP;AAGM;IADN,KAAK,EAAE;;qCACgB,SAAS;;sCAGhC;AAGM;IADN,KAAK,EAAE;;;;wCAMP;AAGM;IADN,KAAK,EAAE;;;;wCAIP;AAGM;IADN,KAAK,EAAE;;;;sCAIP;AAGM;IADN,KAAK,EAAE;;;;uCAIP;AAGK;IADL,KAAK,EAAE;;;;wCAQP"}
@@ -1,8 +1,9 @@
1
1
  import { GroupBySelector, LimitSelector, OffsetSelector, OrderBySelector, SelectSelector } from "./selectors";
2
2
  import { Executor } from "../interfaces";
3
- import { Constructor, Model } from "@decaf-ts/decorator-validation";
3
+ import { Model } from "@decaf-ts/decorator-validation";
4
4
  import { Condition } from "./Condition";
5
5
  import { Paginatable } from "../interfaces/Paginatable";
6
+ import { Constructor } from "@decaf-ts/decoration";
6
7
  /**
7
8
  * @summary GroupBy Option interface
8
9
  * @description Exposes the GROUP BY method and remaining options
@@ -1,5 +1,6 @@
1
+ import { Constructor } from "@decaf-ts/decoration";
1
2
  import { OrderDirection } from "../repository";
2
- import { Constructor, Model } from "@decaf-ts/decorator-validation";
3
+ import { Model } from "@decaf-ts/decorator-validation";
3
4
  /**
4
5
  * @description Type for selecting the data source in a query
5
6
  * @summary Defines the type for specifying the table or model to query from
@@ -4,8 +4,9 @@ import { RamContext } from "./RamContext";
4
4
  import { Dispatch } from "../persistence/Dispatch";
5
5
  import { Adapter, Sequence } from "../persistence";
6
6
  import { SequenceOptions } from "../interfaces";
7
- import { Constructor, Model } from "@decaf-ts/decorator-validation";
7
+ import { Model } from "@decaf-ts/decorator-validation";
8
8
  import { BaseError, OperationKeys } from "@decaf-ts/db-decorators";
9
+ import { Constructor } from "@decaf-ts/decoration";
9
10
  /**
10
11
  * @description In-memory adapter for data persistence
11
12
  * @summary The RamAdapter provides an in-memory implementation of the persistence layer.
@@ -3,11 +3,12 @@ import { RamContext } from "./RamContext.js";
3
3
  import { Repository } from "./../repository/Repository.js";
4
4
  import { Adapter, PersistenceKeys, Sequence } from "./../persistence/index.js";
5
5
  import { Lock } from "@decaf-ts/transactional-decorators";
6
- import { Decoration, hashObj, Model, propMetadata, } from "@decaf-ts/decorator-validation";
7
- import { BaseError, ConflictError, findPrimaryKey, InternalError, NotFoundError, onCreate, onCreateUpdate, } from "@decaf-ts/db-decorators";
6
+ import { hashObj, Model } from "@decaf-ts/decorator-validation";
7
+ import { BaseError, ConflictError, InternalError, NotFoundError, onCreate, onCreateUpdate, DBKeys, } from "@decaf-ts/db-decorators";
8
8
  import { RamSequence } from "./RamSequence.js";
9
9
  import { createdByOnRamCreateUpdate } from "./handlers.js";
10
10
  import { RamFlavour } from "./constants.js";
11
+ import { Decoration, Metadata, propMetadata, } from "@decaf-ts/decoration";
11
12
  /**
12
13
  * @description In-memory adapter for data persistence
13
14
  * @summary The RamAdapter provides an in-memory implementation of the persistence layer.
@@ -344,7 +345,8 @@ export class RamAdapter extends Adapter {
344
345
  const collection = this.tableFor(from);
345
346
  if (!collection)
346
347
  throw new InternalError(`Table ${from} not found in RamAdapter`);
347
- const { id, props } = findPrimaryKey(new from());
348
+ const id = Model.pk(from);
349
+ const props = Metadata.get(from, Metadata.key(DBKeys.ID, id));
348
350
  let result = Array.from(collection.entries()).map(([pk, r]) => this.revert(r, from, id, Sequence.parseValue(props.type, pk)));
349
351
  result = where ? result.filter(where) : result;
350
352
  if (sort)
@@ -446,8 +448,8 @@ export class RamAdapter extends Adapter {
446
448
  */
447
449
  static decoration() {
448
450
  super.decoration();
449
- const createdByKey = Repository.key(PersistenceKeys.CREATED_BY);
450
- const updatedByKey = Repository.key(PersistenceKeys.UPDATED_BY);
451
+ const createdByKey = PersistenceKeys.CREATED_BY;
452
+ const updatedByKey = PersistenceKeys.UPDATED_BY;
451
453
  Decoration.flavouredAs(RamFlavour)
452
454
  .for(createdByKey)
453
455
  .define(onCreate(createdByOnRamCreateUpdate), propMetadata(createdByKey, {}))
@@ -1 +1 @@
1
- {"version":3,"file":"RamAdapter.js","sourceRoot":"","sources":["../../../src/ram/RamAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RamAdapter.js","sourceRoot":"","sources":["../../../src/ram/RamAdapter.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  import { RawRamQuery } from "./types";
2
2
  import { Paginator } from "../query";
3
- import { Constructor, Model } from "@decaf-ts/decorator-validation";
3
+ import { Model } from "@decaf-ts/decorator-validation";
4
4
  import { Adapter } from "../persistence";
5
+ import { Constructor } from "@decaf-ts/decoration";
5
6
  /**
6
7
  * @description RAM-specific paginator implementation
7
8
  * @summary Extends the base Paginator class to provide pagination functionality for RAM adapter queries.
@@ -55,7 +55,7 @@ export class RamPaginator extends Paginator {
55
55
  const statement = this.prepare(this.statement);
56
56
  if (!this._recordCount || !this._totalPages) {
57
57
  this._totalPages = this._recordCount = 0;
58
- const results = await this.adapter.raw({ ...statement, limit: undefined }) || [];
58
+ const results = (await this.adapter.raw({ ...statement, limit: undefined })) || [];
59
59
  this._recordCount = results.length;
60
60
  if (this._recordCount > 0) {
61
61
  const size = statement?.limit || this.size;
@@ -1 +1 @@
1
- {"version":3,"file":"RamPaginator.js","sourceRoot":"","sources":["../../../src/ram/RamPaginator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,4BAAiB;AAIrC;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,OAAO,YAAiC,SAAQ,SAIrD;IACC,YACE,OAA+C,EAC/C,KAAqB,EACrB,IAAY,EACZ,KAAqB;QAErB,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;IAED;;;;;;OAMG;IACO,OAAO,CAAC,YAA4B;QAC5C,MAAM,KAAK,GAAqB,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;QAChE,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;QACxB,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,IAAI,CAAC,OAAe,CAAC;QACzB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/C,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;YACzC,MAAM,OAAO,GAAQ,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC;YACtF,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;YACnC,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAM,IAAI,GAAG,SAAS,EAAE,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC;gBAC3C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;YAC3D,CAAC;QACL,CAAC;QAED,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC/B,SAAS,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;QACxC,MAAM,OAAO,GAAU,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACzD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
1
+ {"version":3,"file":"RamPaginator.js","sourceRoot":"","sources":["../../../src/ram/RamPaginator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,4BAAiB;AAKrC;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,OAAO,YAAiC,SAAQ,SAIrD;IACC,YACE,OAA+C,EAC/C,KAAqB,EACrB,IAAY,EACZ,KAAqB;QAErB,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;IAED;;;;;;OAMG;IACO,OAAO,CAAC,YAA4B;QAC5C,MAAM,KAAK,GAAqB,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;QAChE,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;QACxB,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,IAAI,CAAC,OAAe,CAAC;QACzB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/C,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAC5C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;YACzC,MAAM,OAAO,GACX,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACrE,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;YACnC,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;gBAC1B,MAAM,IAAI,GAAG,SAAS,EAAE,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC;gBAC3C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;QAED,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC/B,SAAS,CAAC,IAAI,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;QACxC,MAAM,OAAO,GAAU,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACzD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
@@ -2,7 +2,7 @@ import { GroupOperator, Operator, QueryError, } from "./../query/index.js";
2
2
  import { RamPaginator } from "./RamPaginator.js";
3
3
  import { InternalError } from "@decaf-ts/db-decorators";
4
4
  import { Statement } from "./../query/Statement.js";
5
- import { Reflection } from "@decaf-ts/reflection";
5
+ import { Metadata } from "@decaf-ts/decoration";
6
6
  /**
7
7
  * @description RAM-specific query statement builder
8
8
  * @summary Extends the base Statement class to provide query building functionality for the RAM adapter.
@@ -46,10 +46,10 @@ export class RamStatement extends Statement {
46
46
  throw new InternalError("orderBySelector not set. Should be impossible");
47
47
  const selector = this.orderBySelector;
48
48
  const [key, direction] = selector;
49
- const type = Reflection.getTypeFromDecorator(el1, key);
49
+ const { designType: type } = Metadata.getPropDesignTypes(el1.constructor, key);
50
50
  if (!type)
51
51
  throw new QueryError(`type not compatible with sorting: ${type}`);
52
- switch (type) {
52
+ switch (type.name) {
53
53
  case "string":
54
54
  case "String":
55
55
  return ((direction === "asc" ? 1 : -1) *
@@ -1 +1 @@
1
- {"version":3,"file":"RamStatement.js","sourceRoot":"","sources":["../../../src/ram/RamStatement.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RamStatement.js","sourceRoot":"","sources":["../../../src/ram/RamStatement.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
- import { Constructor, Model } from "@decaf-ts/decorator-validation";
1
+ import { Model } from "@decaf-ts/decorator-validation";
2
2
  import { Repository } from "../repository";
3
3
  import { Context, RepositoryFlags } from "@decaf-ts/db-decorators";
4
4
  import { RamAdapter } from "./RamAdapter";
5
+ import { Constructor } from "@decaf-ts/decoration";
5
6
  /**
6
7
  * @description In-memory storage structure for the RAM adapter
7
8
  * @summary A nested Map structure that stores all entities by their table name and primary key.
@@ -2,7 +2,7 @@ import { BulkCrudOperationKeys, Context, IRepository, OperationKeys, Repository
2
2
  import { Observable } from "../interfaces/Observable";
3
3
  import { type Observer } from "../interfaces/Observer";
4
4
  import { Adapter } from "../persistence/Adapter";
5
- import { Constructor, Model } from "@decaf-ts/decorator-validation";
5
+ import { Model } from "@decaf-ts/decorator-validation";
6
6
  import { OrderDirection } from "./constants";
7
7
  import { SequenceOptions } from "../interfaces/SequenceOptions";
8
8
  import { Queriable } from "../interfaces/Queriable";
@@ -13,6 +13,7 @@ import { SelectSelector } from "../query/selectors";
13
13
  import { Logger } from "@decaf-ts/logging";
14
14
  import { ObserverHandler } from "../persistence/ObserverHandler";
15
15
  import { EventIds, InferredAdapterConfig, type ObserverFilter } from "../persistence";
16
+ import { Constructor } from "@decaf-ts/decoration";
16
17
  /**
17
18
  * @description Type alias for Repository class with simplified generic parameters.
18
19
  * @summary Provides a more concise way to reference the Repository class with its generic parameters.
@@ -7,18 +7,17 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
- import { Context, DBKeys, DefaultSeparator, enforceDBDecorators, findPrimaryKey, InternalError, ValidationError, OperationKeys, Repository as Rep, wrapMethodWithContext, } from "@decaf-ts/db-decorators";
10
+ import { Context, DefaultSeparator, enforceDBDecorators, InternalError, ValidationError, OperationKeys, Repository as Rep, wrapMethodWithContext, DBKeys, } from "@decaf-ts/db-decorators";
11
11
  import { Adapter } from "./../persistence/Adapter.js";
12
12
  import { Model } from "@decaf-ts/decorator-validation";
13
13
  import { PersistenceKeys } from "./../persistence/constants.js";
14
14
  import { OrderDirection } from "./constants.js";
15
- import { Reflection } from "@decaf-ts/reflection";
16
15
  import { Sequence } from "./../persistence/Sequence.js";
17
16
  import { Condition } from "./../query/Condition.js";
18
17
  import { getColumnName, getTableName } from "./../identity/utils.js";
19
- import { uses } from "./../persistence/decorators.js";
20
18
  import { ObserverHandler } from "./../persistence/ObserverHandler.js";
21
19
  import { final } from "./../utils/index.js";
20
+ import { DecorationKeys, DefaultFlavour, Metadata, uses, } from "@decaf-ts/decoration";
22
21
  /**
23
22
  * @description Core repository implementation for database operations on models on a table by table way.
24
23
  * @summary Provides CRUD operations, querying capabilities, and observer pattern implementation for model persistence.
@@ -123,10 +122,21 @@ export class Repository extends Rep {
123
122
  if (clazz) {
124
123
  Repository.register(clazz, this, this.adapter.alias);
125
124
  if (adapter) {
126
- const flavour = Reflect.getMetadata(Adapter.key(PersistenceKeys.ADAPTER), clazz);
127
- if (flavour && flavour !== adapter.flavour)
128
- throw new InternalError("Incompatible flavours");
129
- uses(adapter.flavour)(clazz);
125
+ // const flavour = Metadata.flavourOf(clazz);
126
+ // if (
127
+ // flavour &&
128
+ // flavour !== DefaultFlavour &&
129
+ // flavour !== adapter.flavour
130
+ // ) {
131
+ // this.log.warn(
132
+ // `Incompatible flavours detected between adapter (${adapter.flavour}) and model (${flavour})`
133
+ // );
134
+ // // throw new InternalError("Incompatible flavours");
135
+ // }
136
+ const flavour = Metadata.get(clazz, DecorationKeys.FLAVOUR);
137
+ if (flavour === DefaultFlavour) {
138
+ uses(adapter.flavour)(clazz);
139
+ }
130
140
  }
131
141
  }
132
142
  [this.createAll, this.readAll, this.updateAll, this.deleteAll].forEach((m) => {
@@ -590,8 +600,8 @@ export class Repository extends Rep {
590
600
  .for(this.updateObservers)
591
601
  .verbose(`Updating ${this.observerHandler.count()} observers for ${this}`);
592
602
  await this.observerHandler.updateObservers(this.log, table, event, Array.isArray(id)
593
- ? id.map((i) => Sequence.parseValue(this.pkProps.type, i))
594
- : Sequence.parseValue(this.pkProps.type, id), ...args);
603
+ ? id.map((i) => Sequence.parseValue(this.pkProps?.type, i))
604
+ : Sequence.parseValue(this.pkProps?.type, id), ...args);
595
605
  }
596
606
  /**
597
607
  * @description Alias for updateObservers.
@@ -618,9 +628,7 @@ export class Repository extends Rep {
618
628
  */
619
629
  static forModel(model, alias, ...args) {
620
630
  let repo;
621
- const _alias = alias ||
622
- Reflect.getMetadata(Adapter.key(PersistenceKeys.ADAPTER), model) ||
623
- Adapter.currentFlavour;
631
+ const _alias = alias || Metadata.flavourOf(model) || Adapter.currentFlavour;
624
632
  try {
625
633
  repo = this.get(model, _alias);
626
634
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
@@ -631,9 +639,8 @@ export class Repository extends Rep {
631
639
  if (repo instanceof Repository)
632
640
  return repo;
633
641
  const flavour = alias ||
634
- Reflect.getMetadata(Adapter.key(PersistenceKeys.ADAPTER), model) ||
635
- (repo &&
636
- Reflect.getMetadata(Adapter.key(PersistenceKeys.ADAPTER), repo)) ||
642
+ Metadata.flavourOf(model) ||
643
+ (repo && Metadata.get(repo, PersistenceKeys.ADAPTER)) ||
637
644
  Adapter.currentFlavour;
638
645
  const adapter = flavour
639
646
  ? Adapter.get(flavour)
@@ -730,8 +737,9 @@ export class Repository extends Rep {
730
737
  * @throws {InternalError} If no sequence options are defined for the model.
731
738
  */
732
739
  static getSequenceOptions(model) {
733
- const pk = findPrimaryKey(model).id;
734
- const metadata = Reflect.getMetadata(Repository.key(DBKeys.ID), model, pk);
740
+ const pkName = Model.pk(model.constructor);
741
+ const key = Metadata.key(DBKeys.ID, pkName);
742
+ const metadata = Metadata.get(model.constructor, key);
735
743
  if (!metadata)
736
744
  throw new InternalError("No sequence options defined for model. did you use the @pk decorator?");
737
745
  return metadata;
@@ -744,17 +752,10 @@ export class Repository extends Rep {
744
752
  * @return {Record<string, Record<string, IndexMetadata>>} A nested record of property names to index metadata.
745
753
  */
746
754
  static indexes(model) {
747
- const indexDecorators = Reflection.getAllPropertyDecorators(model instanceof Model ? model : new model(), DBKeys.REFLECT);
748
- return Object.entries(indexDecorators || {}).reduce((accum, [k, val]) => {
749
- const decs = val.filter((v) => v.key.startsWith(PersistenceKeys.INDEX));
750
- if (decs && decs.length) {
751
- for (const dec of decs) {
752
- const { key, props } = dec;
753
- accum[k] = accum[k] || {};
754
- accum[k][key] = props;
755
- }
756
- }
757
- return accum;
755
+ const indexDecorators = Metadata.get(model instanceof Model ? model.constructor : model, PersistenceKeys.INDEX);
756
+ return Object.keys(indexDecorators || {}).reduce((acum, t) => {
757
+ acum[t] = { [PersistenceKeys.INDEX]: indexDecorators[t] };
758
+ return acum;
758
759
  }, {});
759
760
  }
760
761
  /**
@@ -765,18 +766,7 @@ export class Repository extends Rep {
765
766
  * @return {string[]} An array of property names that are relations.
766
767
  */
767
768
  static relations(model) {
768
- const result = [];
769
- let prototype = model instanceof Model
770
- ? Object.getPrototypeOf(model)
771
- : model.prototype;
772
- while (prototype != null) {
773
- const props = prototype[PersistenceKeys.RELATIONS];
774
- if (props) {
775
- result.push(...props);
776
- }
777
- prototype = Object.getPrototypeOf(prototype);
778
- }
779
- return result;
769
+ return (Metadata.relations(model instanceof Model ? model.constructor : model) || []);
780
770
  }
781
771
  /**
782
772
  * @description Gets the table name for a model.