@tstdl/base 0.82.4 → 0.82.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 (171) hide show
  1. package/api/types.d.ts +2 -1
  2. package/api/types.js.map +1 -1
  3. package/authentication/authentication-credentials.repository.d.ts +5 -0
  4. package/authentication/{authentication-credentials.service.js → authentication-credentials.repository.js} +6 -6
  5. package/authentication/authentication-credentials.repository.js.map +1 -0
  6. package/authentication/authentication-session.repository.d.ts +13 -4
  7. package/authentication/authentication-session.repository.js +2 -13
  8. package/authentication/authentication-session.repository.js.map +1 -1
  9. package/authentication/authentication.api.d.ts +28 -0
  10. package/authentication/authentication.api.js +53 -0
  11. package/authentication/authentication.api.js.map +1 -0
  12. package/authentication/authentication.service.d.ts +13 -13
  13. package/authentication/authentication.service.js +50 -25
  14. package/authentication/authentication.service.js.map +1 -1
  15. package/authentication/models/authentication-credentials.model.d.ts +7 -5
  16. package/authentication/models/authentication-credentials.model.js +28 -7
  17. package/authentication/models/authentication-credentials.model.js.map +1 -1
  18. package/authentication/models/authentication-session.model.d.ts +13 -6
  19. package/authentication/models/authentication-session.model.js +47 -9
  20. package/authentication/models/authentication-session.model.js.map +1 -1
  21. package/authentication/models/index.d.ts +1 -0
  22. package/authentication/models/index.js +1 -0
  23. package/authentication/models/index.js.map +1 -1
  24. package/authentication/models/token-payload-base.model.d.ts +5 -0
  25. package/{orm/test.js → authentication/models/token-payload-base.model.js} +19 -10
  26. package/authentication/models/token-payload-base.model.js.map +1 -0
  27. package/authentication/mongo/mongo-authentication-credentials.repository.d.ts +25 -0
  28. package/authentication/mongo/mongo-authentication-credentials.repository.js +65 -0
  29. package/authentication/mongo/mongo-authentication-credentials.repository.js.map +1 -0
  30. package/authentication/mongo/mongo-authentication-session.repository.d.ts +26 -0
  31. package/authentication/mongo/mongo-authentication-session.repository.js +64 -0
  32. package/authentication/mongo/mongo-authentication-session.repository.js.map +1 -0
  33. package/database/mongo/model/document.d.ts +0 -1
  34. package/database/mongo/model/document.js +1 -10
  35. package/database/mongo/model/document.js.map +1 -1
  36. package/database/mongo/module.js +0 -3
  37. package/database/mongo/module.js.map +1 -1
  38. package/database/mongo/query-converter.js.map +1 -1
  39. package/database/query.d.ts +1 -1
  40. package/examples/mail/basic.js +3 -3
  41. package/examples/mail/templates/hello-name.js +7 -2
  42. package/examples/mail/templates/hello-name.js.map +1 -1
  43. package/examples/pdf/basic.js +3 -3
  44. package/examples/pdf/templates/hello-name.js +1 -1
  45. package/examples/pdf/templates/hello-name.js.map +1 -1
  46. package/examples/template/basic.js +13 -7
  47. package/examples/template/basic.js.map +1 -1
  48. package/examples/template/templates/hello-jsx.d.ts +2 -0
  49. package/examples/template/templates/hello-jsx.js +15 -0
  50. package/examples/template/templates/hello-jsx.js.map +1 -0
  51. package/examples/template/templates/hello-name.js +1 -1
  52. package/examples/template/templates/hello-name.js.map +1 -1
  53. package/http/client/adapters/undici-http-client.adapter.js.map +1 -1
  54. package/http/types.d.ts +3 -3
  55. package/mail/mail.service.d.ts +4 -3
  56. package/mail/mail.service.js +5 -8
  57. package/mail/mail.service.js.map +1 -1
  58. package/mail/models/mail-log.model.d.ts +1 -1
  59. package/mail/models/mail-template.model.d.ts +1 -1
  60. package/mail/models/mail-template.model.js +2 -1
  61. package/mail/models/mail-template.model.js.map +1 -1
  62. package/notification/models/notification.model.d.ts +23 -5
  63. package/notification/models/notification.model.js +47 -3
  64. package/notification/models/notification.model.js.map +1 -1
  65. package/notification/notification.repository.d.ts +5 -0
  66. package/notification/notification.repository.js +7 -0
  67. package/notification/notification.repository.js.map +1 -0
  68. package/notification/notification.service.d.ts +2 -2
  69. package/notification/notification.service.js +4 -4
  70. package/notification/notification.service.js.map +1 -1
  71. package/package.json +6 -4
  72. package/pdf/pdf.service.d.ts +5 -4
  73. package/pdf/pdf.service.js +7 -6
  74. package/pdf/pdf.service.js.map +1 -1
  75. package/schema/schemas/assign.d.ts +3 -3
  76. package/schema/utils/schema.js.map +1 -1
  77. package/templates/providers/{file.provider-template.d.ts → file.template-provider.d.ts} +1 -1
  78. package/templates/providers/{file.provider-template.js → file.template-provider.js} +2 -2
  79. package/templates/providers/file.template-provider.js.map +1 -0
  80. package/templates/providers/memory.template-provider.d.ts +1 -1
  81. package/templates/providers/memory.template-provider.js +1 -1
  82. package/templates/providers/memory.template-provider.js.map +1 -1
  83. package/templates/renderers/handlebars.template-renderer.js.map +1 -1
  84. package/templates/renderers/jsx.template-renderer.d.ts +16 -0
  85. package/templates/renderers/jsx.template-renderer.js +40 -0
  86. package/templates/renderers/jsx.template-renderer.js.map +1 -0
  87. package/templates/renderers/mjml.template-renderer.d.ts +1 -1
  88. package/templates/renderers/string.template-renderer.d.ts +2 -2
  89. package/templates/renderers/string.template-renderer.js +1 -1
  90. package/templates/renderers/string.template-renderer.js.map +1 -1
  91. package/templates/resolvers/file.template-resolver.d.ts +2 -2
  92. package/templates/resolvers/jsx.template-resolver.d.ts +15 -0
  93. package/templates/resolvers/jsx.template-resolver.js +45 -0
  94. package/templates/resolvers/jsx.template-resolver.js.map +1 -0
  95. package/templates/resolvers/string.template-resolver.d.ts +1 -1
  96. package/templates/resolvers/string.template-resolver.js +1 -1
  97. package/templates/resolvers/string.template-resolver.js.map +1 -1
  98. package/templates/template.model.d.ts +3 -1
  99. package/templates/template.model.js +8 -1
  100. package/templates/template.model.js.map +1 -1
  101. package/templates/template.provider.d.ts +1 -1
  102. package/templates/template.renderer.d.ts +5 -2
  103. package/templates/template.renderer.js +6 -1
  104. package/templates/template.renderer.js.map +1 -1
  105. package/templates/template.resolver.d.ts +2 -2
  106. package/templates/template.service.d.ts +3 -2
  107. package/templates/template.service.js +6 -1
  108. package/templates/template.service.js.map +1 -1
  109. package/templates/tokens.d.ts +1 -1
  110. package/text/localization.service.js +1 -1
  111. package/text/localization.service.js.map +1 -1
  112. package/tsconfig.json +5 -0
  113. package/types.d.ts +6 -32
  114. package/utils/jwt.js +2 -2
  115. package/utils/jwt.js.map +1 -1
  116. package/utils/object/object.d.ts +1 -1
  117. package/utils/object/object.js +6 -5
  118. package/utils/object/object.js.map +1 -1
  119. package/authentication/authentication-credentials.service.d.ts +0 -6
  120. package/authentication/authentication-credentials.service.js.map +0 -1
  121. package/orm/decorators.d.ts +0 -26
  122. package/orm/decorators.js +0 -172
  123. package/orm/decorators.js.map +0 -1
  124. package/orm/entity-definition.model.d.ts +0 -51
  125. package/orm/entity-definition.model.js +0 -27
  126. package/orm/entity-definition.model.js.map +0 -1
  127. package/orm/index.d.ts +0 -1
  128. package/orm/index.js +0 -18
  129. package/orm/index.js.map +0 -1
  130. package/orm/models/entity.d.ts +0 -22
  131. package/orm/models/entity.js +0 -87
  132. package/orm/models/entity.js.map +0 -1
  133. package/orm/models/index.d.ts +0 -1
  134. package/orm/models/index.js +0 -18
  135. package/orm/models/index.js.map +0 -1
  136. package/orm/repository/mongo/classes.d.ts +0 -25
  137. package/orm/repository/mongo/classes.js +0 -33
  138. package/orm/repository/mongo/classes.js.map +0 -1
  139. package/orm/repository/mongo/module.d.ts +0 -8
  140. package/orm/repository/mongo/module.js +0 -88
  141. package/orm/repository/mongo/module.js.map +0 -1
  142. package/orm/repository/mongo/mongo-repository.d.ts +0 -11
  143. package/orm/repository/mongo/mongo-repository.js +0 -55
  144. package/orm/repository/mongo/mongo-repository.js.map +0 -1
  145. package/orm/repository/mongo/mongo-transaction.d.ts +0 -10
  146. package/orm/repository/mongo/mongo-transaction.js +0 -28
  147. package/orm/repository/mongo/mongo-transaction.js.map +0 -1
  148. package/orm/repository/repository.d.ts +0 -75
  149. package/orm/repository/repository.js +0 -182
  150. package/orm/repository/repository.js.map +0 -1
  151. package/orm/repository/transaction.d.ts +0 -26
  152. package/orm/repository/transaction.js +0 -65
  153. package/orm/repository/transaction.js.map +0 -1
  154. package/orm/sql/sql-repository.d.ts +0 -6
  155. package/orm/sql/sql-repository.js +0 -15
  156. package/orm/sql/sql-repository.js.map +0 -1
  157. package/orm/test.d.ts +0 -1
  158. package/orm/test.js.map +0 -1
  159. package/orm/types/definition.d.ts +0 -19
  160. package/orm/types/definition.js +0 -55
  161. package/orm/types/definition.js.map +0 -1
  162. package/orm/types/index.d.ts +0 -3
  163. package/orm/types/index.js +0 -20
  164. package/orm/types/index.js.map +0 -1
  165. package/orm/types/options.d.ts +0 -36
  166. package/orm/types/options.js +0 -5
  167. package/orm/types/options.js.map +0 -1
  168. package/orm/types/query.d.ts +0 -110
  169. package/orm/types/query.js +0 -10
  170. package/orm/types/query.js.map +0 -1
  171. package/templates/providers/file.provider-template.js.map +0 -1
@@ -1,55 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- var __param = (this && this.__param) || function (paramIndex, decorator) {
12
- return function (target, key) { decorator(target, key, paramIndex); }
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.MongoRepository = void 0;
16
- const container_1 = require("../../../container");
17
- const type_guards_1 = require("../../../utils/type-guards");
18
- const classes_1 = require("./classes");
19
- const mongo_transaction_1 = require("./mongo-transaction");
20
- let MongoRepository = class MongoRepository {
21
- options;
22
- client;
23
- collection;
24
- constructor(client, collection, options) {
25
- this.options = options;
26
- this.client = client;
27
- this.collection = collection;
28
- }
29
- initializeTransaction(isolationLevel) {
30
- const session = this.client.startSession({ causalConsistency: true });
31
- return new mongo_transaction_1.MongoTransaction(session, isolationLevel);
32
- }
33
- duplicateInstance() {
34
- return new MongoRepository(this.client, this.collection, this.options);
35
- }
36
- };
37
- MongoRepository = __decorate([
38
- __param(0, (0, container_1.forwardArg)(repositoryArgumentToMongoClientArgumentMapper)),
39
- __param(1, (0, container_1.forwardArg)(repositoryArgumentToCollectionArgumentMapper)),
40
- __param(2, (0, container_1.injectArg)()),
41
- __metadata("design:paramtypes", [classes_1.MongoClient,
42
- classes_1.Collection, Object])
43
- ], MongoRepository);
44
- exports.MongoRepository = MongoRepository;
45
- function repositoryArgumentToMongoClientArgumentMapper(config) {
46
- if ((0, type_guards_1.isFunction)(config) || (0, type_guards_1.isString)(config.mongo)) {
47
- return undefined;
48
- }
49
- return config.mongo?.connection;
50
- }
51
- function repositoryArgumentToCollectionArgumentMapper(config) {
52
- const collection = (0, type_guards_1.isFunction)(config) ? config.name : config.definition?.name ?? config.type?.name;
53
- return { collection: (0, type_guards_1.assertDefinedPass)(collection, 'Could not get collection name.') };
54
- }
55
- //# sourceMappingURL=mongo-repository.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mongo-repository.js","sourceRoot":"","sources":["../../../../source/orm/repository/mongo/mongo-repository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kDAAoD;AACpD,4DAA8E;AAK9E,uCAAoD;AACpD,2DAAuD;AAEhD,IAAM,eAAe,GAArB,MAAM,eAAe;IAOH;IANN,MAAM,CAAc;IACpB,UAAU,CAAa;IAExC,YACkH,MAAmB,EACjC,UAAsB,EACnG,OAA0B;QAA1B,YAAO,GAAP,OAAO,CAAmB;QAE/C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAES,qBAAqB,CAAC,cAA8B;QAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC;QACtE,OAAO,IAAI,oCAAgB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IACvD,CAAC;IAES,iBAAiB;QACzB,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAS,CAAC;IACjF,CAAC;CACF,CAAA;AArBY,eAAe;IAKvB,WAAA,IAAA,sBAAU,EAAsD,6CAA6C,CAAC,CAAA;IAC9G,WAAA,IAAA,sBAAU,EAAyC,4CAA4C,CAAC,CAAA;IAChG,WAAA,IAAA,qBAAS,GAAE,CAAA;qCAF4G,qBAAW;QACrB,oBAAU;GAN/G,eAAe,CAqB3B;AArBY,0CAAe;AAuB5B,SAAS,6CAA6C,CAAC,MAA0B;IAC/E,IAAI,IAAA,wBAAU,EAAC,MAAM,CAAC,IAAI,IAAA,sBAAQ,EAAC,MAAM,CAAC,KAAK,CAAC,EAAE;QAChD,OAAO,SAAS,CAAC;KAClB;IAED,OAAO,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC;AAClC,CAAC;AAED,SAAS,4CAA4C,CAAC,MAA0B;IAC9E,MAAM,UAAU,GAAG,IAAA,wBAAU,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC;IACnG,OAAO,EAAE,UAAU,EAAE,IAAA,+BAAiB,EAAC,UAAU,EAAE,gCAAgC,CAAC,EAAE,CAAC;AACzF,CAAC"}
@@ -1,10 +0,0 @@
1
- import type { ClientSession } from 'mongodb';
2
- import type { IsolationLevel } from '../transaction';
3
- import { Transaction } from '../transaction';
4
- export declare class MongoTransaction extends Transaction {
5
- private readonly session;
6
- constructor(session: ClientSession, isolationLevel: IsolationLevel);
7
- protected _commit(): void;
8
- protected _rollback(): Promise<void>;
9
- protected _release(): Promise<void>;
10
- }
@@ -1,28 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MongoTransaction = void 0;
4
- const units_1 = require("../../../utils/units");
5
- const transaction_1 = require("../transaction");
6
- class MongoTransaction extends transaction_1.Transaction {
7
- session;
8
- constructor(session, isolationLevel) {
9
- super(isolationLevel);
10
- this.session = session;
11
- }
12
- _commit() {
13
- this.session.startTransaction({
14
- readConcern: 'snapshot',
15
- writeConcern: { w: 'majority' },
16
- readPreference: 'primary',
17
- maxCommitTimeMS: 30 * units_1.millisecondsPerSecond
18
- });
19
- }
20
- async _rollback() {
21
- await this.session.abortTransaction();
22
- }
23
- async _release() {
24
- await this.session.endSession();
25
- }
26
- }
27
- exports.MongoTransaction = MongoTransaction;
28
- //# sourceMappingURL=mongo-transaction.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mongo-transaction.js","sourceRoot":"","sources":["../../../../source/orm/repository/mongo/mongo-transaction.ts"],"names":[],"mappings":";;;AAAA,gDAAsD;AAGtD,gDAA6C;AAE7C,MAAa,gBAAiB,SAAQ,yBAAW;IAC9B,OAAO,CAAgB;IAExC,YAAY,OAAsB,EAAE,cAA8B;QAChE,KAAK,CAAC,cAAc,CAAC,CAAC;QAEtB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAES,OAAO;QACf,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC;YAC5B,WAAW,EAAE,UAAU;YACvB,YAAY,EAAE,EAAE,CAAC,EAAE,UAAU,EAAE;YAC/B,cAAc,EAAE,SAAS;YACzB,eAAe,EAAE,EAAE,GAAG,6BAAqB;SAC5C,CAAC,CAAC;IACL,CAAC;IAES,KAAK,CAAC,SAAS;QACvB,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;IACxC,CAAC;IAES,KAAK,CAAC,QAAQ;QACtB,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;IAClC,CAAC;CACF;AAzBD,4CAyBC"}
@@ -1,75 +0,0 @@
1
- import type { Injectable } from "../../container";
2
- import { resolveArgumentType } from "../../container";
3
- import type { AbstractConstructor, DeepPartialObject, Record } from "../../types";
4
- import type { EntityDefinition, NormalizedEntityDefinition } from '../entity-definition.model';
5
- import type { Id, MaybeNewEntity } from '../models';
6
- import type { BaseOptions, DeleteManyOptions, DeleteOptions, HasOptions, InsertOptions, LoadManyOptions, LoadOptions, PatchManyOptions, PatchOptions, Query, SaveOptions } from '../types';
7
- import type { CollectionArgument } from './mongo/classes';
8
- import { IsolationLevel, Transaction } from './transaction';
9
- export type RepositoryOptions = AbstractConstructor | {
10
- type?: AbstractConstructor;
11
- definition?: EntityDefinition;
12
- };
13
- export type RepositoryArgument = RepositoryOptions & {
14
- mongo?: CollectionArgument;
15
- };
16
- export type EntityPatch<T extends Record> = DeepPartialObject<T>;
17
- export type UseTransactionHandler<R extends Repository<any>, Result> = (transaction: Transaction, repositoryWithTransaction: R) => Promise<Result>;
18
- export declare abstract class Repository<T extends Record> implements Injectable<RepositoryArgument> {
19
- private transaction;
20
- protected readonly options: RepositoryOptions;
21
- protected readonly type?: AbstractConstructor;
22
- protected readonly definition: EntityDefinition;
23
- protected readonly normalizedDefinition: NormalizedEntityDefinition;
24
- protected readonly notFoundErrorMessage: string;
25
- readonly [resolveArgumentType]: RepositoryArgument;
26
- constructor(options: RepositoryOptions);
27
- startTransaction(isolationLevel?: IsolationLevel): Promise<Transaction>;
28
- withTransaction(transactionOrIsolationLevel?: Transaction | IsolationLevel): Promise<this>;
29
- useTransaction<R>(handler: UseTransactionHandler<this, R>, isolationLevel?: IsolationLevel): Promise<R>;
30
- useTransaction<R>(transaction: Transaction, handler: UseTransactionHandler<this, R>): Promise<R>;
31
- protected abstract initializeTransaction(isolationLevel: IsolationLevel): Transaction | Promise<Transaction>;
32
- save<U extends T = T>(_entities: MaybeNewEntity<U> | MaybeNewEntity<U>[], _options: SaveOptions<T>): Promise<void>;
33
- saveAndLoad<U extends T = T>(entity: MaybeNewEntity<U>, options?: SaveOptions<T>): Promise<U>;
34
- saveAndLoad<U extends T = T>(entities: MaybeNewEntity<U>[], options?: SaveOptions<T>): Promise<U[]>;
35
- insert<U extends T = T>(entities: MaybeNewEntity<U> | MaybeNewEntity<U>[], options?: InsertOptions): Promise<void>;
36
- protected abstract insertInternal<U extends T = T>(entities: MaybeNewEntity<U> | MaybeNewEntity<U>[], options: InsertOptions): Promise<void>;
37
- protected abstract insertAndLoad<U extends T = T>(entity: MaybeNewEntity<U>, options: InsertOptions): Promise<U>;
38
- protected abstract insertAndLoad<U extends T = T>(entities: MaybeNewEntity<U>[], options: InsertOptions): Promise<U[]>;
39
- patch<U extends T = T>(idOrQuery: Id | Query<U>, patch: EntityPatch<U>, options?: PatchOptions<T>): Promise<void>;
40
- tryPatch<U extends T = T>(idOrQuery: Id | Query<U>, patch: EntityPatch<U>, options?: PatchOptions<T>): Promise<boolean>;
41
- protected abstract tryPatchByQuery<U extends T = T>(query: Query<U>, patch: EntityPatch<U>, options: PatchOptions<T>): Promise<boolean>;
42
- patchMany<U extends T = T>(idOrQuery: Id | Query<U>, patch: EntityPatch<U>, options?: PatchManyOptions<T>): Promise<number>;
43
- protected abstract patchManyByQuery<U extends T = T>(query: Query<U>, patch: EntityPatch<U>, options: PatchManyOptions<T>): Promise<number>;
44
- patchAndLoad<U extends T = T>(idOrQuery: Id | Query<U>, patch: EntityPatch<U>, options?: PatchOptions<T>): Promise<U>;
45
- tryPatchAndLoad<U extends T = T>(idOrQuery: Id | Query<U>, patch: EntityPatch<U>, options?: PatchOptions<T>): Promise<U | undefined>;
46
- protected abstract tryPatchAndLoadByQuery<U extends T = T>(query: Query<U>, patch: EntityPatch<U>, options: PatchOptions<T>): Promise<U | undefined>;
47
- patchAndLoadMany<U extends T = T>(idOrQuery: Id | Query<U>, patch: EntityPatch<U>, options?: PatchManyOptions<T>): Promise<U[]>;
48
- protected abstract patchAndLoadManyByQuery<U extends T = T>(query: Query<U>, patch: EntityPatch<U>, options: PatchManyOptions<T>): Promise<U[]>;
49
- has<U extends T = T>(idOrQuery: Id | Query<U>, options?: HasOptions): Promise<boolean>;
50
- protected abstract hasByQuery<U extends T = T>(query: Query<U>, options: HasOptions): Promise<boolean>;
51
- protected abstract count<U extends T = T>(query?: Query<U>): Promise<number>;
52
- load<U extends T = T>(idOrQuery: Id | Query<U>, options?: LoadOptions<T>): Promise<U>;
53
- tryLoad<U extends T = T>(idOrQuery: Id | Query<U>, options?: LoadOptions<T>): Promise<U | undefined>;
54
- protected abstract tryLoadByQuery<U extends T = T>(query: Query<U>, options: LoadOptions<T>): Promise<U | undefined>;
55
- loadAll<U extends T = T>(options?: LoadManyOptions<T>): Promise<U[]>;
56
- loadMany<U extends T = T>(idsOrQuery: Id[] | Query<U>, options?: LoadManyOptions<T>): Promise<U[]>;
57
- protected abstract loadManyByQuery<U extends T = T>(query: Query<U>, options: LoadManyOptions<T>): Promise<U[]>;
58
- loadManyCursor<U extends T = T>(idsOrQuery: Id[] | Query<U>, options?: LoadManyOptions<T>): AsyncIterable<U>;
59
- loadAllCursor<U extends T = T>(options?: LoadManyOptions<T>): AsyncIterable<U>;
60
- protected abstract loadManyByQueryCursor<U extends T = T>(query: Query<U>, options: LoadManyOptions<T>): AsyncIterable<U>;
61
- delete<U extends T = T>(idOrQuery: Id | Query<U>, options?: DeleteOptions<T>): Promise<void>;
62
- tryDelete<U extends T = T>(idOrQuery: Id | Query<U>, options?: DeleteOptions<T>): Promise<boolean>;
63
- protected abstract tryDeleteByQuery<U extends T = T>(query: Query<U>, options: DeleteOptions<T>): Promise<boolean>;
64
- deleteMany<U extends T = T>(idsOrQuery: Id[] | Query<U>, options?: DeleteManyOptions<T>): Promise<number>;
65
- protected abstract deleteManyByQuery<U extends T = T>(query: Query<U>, options: DeleteManyOptions<T>): Promise<number>;
66
- deleteAndLoad<U extends T = T>(idOrQuery: Id | Query<U>, options?: DeleteOptions<T>): Promise<U>;
67
- tryDeleteAndLoad<U extends T = T>(idOrQuery: Id | Query<U>, options?: DeleteOptions<T>): Promise<U | undefined>;
68
- protected abstract tryDeleteAndLoadByQuery<U extends T = T>(query: Query<U>, options: DeleteOptions<T>): Promise<U | undefined>;
69
- deleteAndLoadMany<U extends T = T>(idsOrQuery: Id[] | Query<U>, options?: DeleteManyOptions<T>): Promise<U[]>;
70
- protected abstract deleteAndLoadManyByQuery<U extends T = T>(query: Query<U>, options: DeleteManyOptions<T>): Promise<U[]>;
71
- protected abstract duplicateInstance(): this | Promise<this>;
72
- protected getQuery<U>(idOrQuery: Id | Id[] | Query<U>): Query<U>;
73
- protected getOptions<O extends BaseOptions>(options?: O): O;
74
- private throwNotFoundIfUndefinedPass;
75
- }
@@ -1,182 +0,0 @@
1
- "use strict";
2
- /* eslint-disable @typescript-eslint/member-ordering */
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.Repository = void 0;
5
- const container_1 = require("../../container");
6
- const error_1 = require("../../error");
7
- const not_found_error_1 = require("../../error/not-found.error");
8
- const date_time_1 = require("../../utils/date-time");
9
- const type_guards_1 = require("../../utils/type-guards");
10
- const decorators_1 = require("../decorators");
11
- const entity_definition_model_1 = require("../entity-definition.model");
12
- const models_1 = require("../models");
13
- const transaction_1 = require("./transaction");
14
- class Repository {
15
- transaction;
16
- options;
17
- type;
18
- definition;
19
- normalizedDefinition;
20
- notFoundErrorMessage;
21
- [container_1.resolveArgumentType];
22
- constructor(options) {
23
- this.options = options;
24
- this.type = (0, type_guards_1.isFunction)(options) ? options : options.type;
25
- this.definition = ((0, type_guards_1.isNotFunction)(options) ? options.definition : undefined) ?? (0, decorators_1.getEntityDefinition)((0, type_guards_1.assertDefinedPass)(this.type, 'Neither definition nor type provided.'));
26
- this.normalizedDefinition = (0, entity_definition_model_1.normalizeEntityDefinition)(this.definition);
27
- this.notFoundErrorMessage = `Entity in ${this.definition.name} not found.`;
28
- }
29
- /* transaction */
30
- async startTransaction(isolationLevel = transaction_1.IsolationLevel.RepeatableRead) {
31
- return this.initializeTransaction(isolationLevel);
32
- }
33
- async withTransaction(transactionOrIsolationLevel) {
34
- const instance = await this.duplicateInstance();
35
- instance.transaction = (transactionOrIsolationLevel instanceof transaction_1.Transaction) ? transactionOrIsolationLevel : await this.startTransaction(transactionOrIsolationLevel);
36
- return instance;
37
- }
38
- async useTransaction(handlerOrTransaction, handlerOrIsolationLevel) {
39
- const handler = (0, type_guards_1.isFunction)(handlerOrTransaction) ? handlerOrTransaction : (0, type_guards_1.assertFunctionPass)(handlerOrIsolationLevel);
40
- const isolationLevel = (0, type_guards_1.isFunction)(handlerOrTransaction) ? handlerOrIsolationLevel : undefined;
41
- const transaction = (0, type_guards_1.isFunction)(handlerOrTransaction) ? await this.startTransaction(isolationLevel) : handlerOrTransaction;
42
- return transaction.use(async () => handler(transaction, this));
43
- }
44
- /* save */
45
- async save(_entities, _options) {
46
- throw new error_1.NotImplementedError();
47
- }
48
- async saveAndLoad(_entities, _options) {
49
- throw new error_1.NotImplementedError();
50
- }
51
- /* insert */
52
- async insert(entities, options) {
53
- const actualOptions = this.getOptions(options);
54
- if (!(0, type_guards_1.isArray)(entities)) {
55
- const obj = {};
56
- for (const [field, definition] of this.normalizedDefinition.fieldsEntries) {
57
- if (definition.type == 'created') {
58
- obj[definition.name] = entities[field] ?? (0, date_time_1.currentTimestamp)();
59
- }
60
- }
61
- }
62
- return this.insert(entities, actualOptions);
63
- }
64
- /* patch */
65
- async patch(idOrQuery, patch, options) {
66
- const patched = await this.tryPatch(idOrQuery, patch, options);
67
- if (!patched) {
68
- throw new not_found_error_1.NotFoundError(this.notFoundErrorMessage);
69
- }
70
- }
71
- async tryPatch(idOrQuery, patch, options) {
72
- const query = this.getQuery(idOrQuery);
73
- const actualOptions = this.getOptions(options);
74
- return this.tryPatchByQuery(query, patch, actualOptions);
75
- }
76
- async patchMany(idOrQuery, patch, options) {
77
- const query = this.getQuery(idOrQuery);
78
- const actualOptions = this.getOptions(options);
79
- return this.patchManyByQuery(query, patch, actualOptions);
80
- }
81
- async patchAndLoad(idOrQuery, patch, options) {
82
- const entity = await this.tryPatchAndLoad(idOrQuery, patch, options);
83
- return this.throwNotFoundIfUndefinedPass(entity);
84
- }
85
- async tryPatchAndLoad(idOrQuery, patch, options) {
86
- const query = this.getQuery(idOrQuery);
87
- const actualOptions = this.getOptions(options);
88
- return this.tryPatchAndLoadByQuery(query, patch, actualOptions);
89
- }
90
- async patchAndLoadMany(idOrQuery, patch, options) {
91
- const query = this.getQuery(idOrQuery);
92
- const actualOptions = this.getOptions(options);
93
- return this.patchAndLoadManyByQuery(query, patch, actualOptions);
94
- }
95
- /* has */
96
- async has(idOrQuery, options) {
97
- const query = this.getQuery(idOrQuery);
98
- const actualOptions = this.getOptions(options);
99
- return this.hasByQuery(query, actualOptions);
100
- }
101
- /* load */
102
- async load(idOrQuery, options) {
103
- const entity = await this.tryLoad(idOrQuery, options);
104
- return this.throwNotFoundIfUndefinedPass(entity);
105
- }
106
- async tryLoad(idOrQuery, options) {
107
- const query = this.getQuery(idOrQuery);
108
- const actualOptions = this.getOptions(options);
109
- return this.tryLoadByQuery(query, actualOptions);
110
- }
111
- async loadAll(options) {
112
- return this.loadMany({}, options);
113
- }
114
- async loadMany(idsOrQuery, options) {
115
- const query = this.getQuery(idsOrQuery);
116
- const actualOptions = this.getOptions(options);
117
- return this.loadManyByQuery(query, actualOptions);
118
- }
119
- loadManyCursor(idsOrQuery, options) {
120
- const query = this.getQuery(idsOrQuery);
121
- const actualOptions = this.getOptions(options);
122
- return this.loadManyByQueryCursor(query, actualOptions);
123
- }
124
- loadAllCursor(options) {
125
- return this.loadManyCursor({}, options);
126
- }
127
- /* delete */
128
- async delete(idOrQuery, options) {
129
- const deleted = await this.tryDelete(idOrQuery, options);
130
- if (!deleted) {
131
- throw new not_found_error_1.NotFoundError(this.notFoundErrorMessage);
132
- }
133
- }
134
- async tryDelete(idOrQuery, options) {
135
- const query = this.getQuery(idOrQuery);
136
- const actualOptions = this.getOptions(options);
137
- return this.tryDeleteByQuery(query, actualOptions);
138
- }
139
- async deleteMany(idsOrQuery, options) {
140
- const query = this.getQuery(idsOrQuery);
141
- const actualOptions = this.getOptions(options);
142
- return this.deleteManyByQuery(query, actualOptions);
143
- }
144
- async deleteAndLoad(idOrQuery, options) {
145
- const query = this.getQuery(idOrQuery);
146
- const entity = await this.tryDeleteAndLoad(query, options);
147
- return this.throwNotFoundIfUndefinedPass(entity);
148
- }
149
- async tryDeleteAndLoad(idOrQuery, options) {
150
- const query = this.getQuery(idOrQuery);
151
- const actualOptions = this.getOptions(options);
152
- return this.tryDeleteAndLoadByQuery(query, actualOptions);
153
- }
154
- async deleteAndLoadMany(idsOrQuery, options) {
155
- const query = this.getQuery(idsOrQuery);
156
- const actualOptions = this.getOptions(options);
157
- return this.deleteAndLoadManyByQuery(query, actualOptions);
158
- }
159
- getQuery(idOrQuery) {
160
- const query = (0, models_1.isId)(idOrQuery) ? { id: idOrQuery }
161
- : (0, type_guards_1.isArray)(idOrQuery) ? { id: { $in: idOrQuery } }
162
- : idOrQuery;
163
- return query;
164
- }
165
- getOptions(options) {
166
- if ((0, type_guards_1.isDefined)(this.transaction)) {
167
- return {
168
- ...options,
169
- transaction: options?.transaction ?? this.transaction
170
- };
171
- }
172
- return options ?? {};
173
- }
174
- throwNotFoundIfUndefinedPass(entity) {
175
- if ((0, type_guards_1.isUndefined)(entity)) {
176
- throw new not_found_error_1.NotFoundError(this.notFoundErrorMessage);
177
- }
178
- return entity;
179
- }
180
- }
181
- exports.Repository = Repository;
182
- //# sourceMappingURL=repository.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"repository.js","sourceRoot":"","sources":["../../../source/orm/repository/repository.ts"],"names":[],"mappings":"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"}
@@ -1,26 +0,0 @@
1
- import type { Observable } from 'rxjs';
2
- export declare enum IsolationLevel {
3
- ReadUncommitted = 0,
4
- ReadCommitted = 1,
5
- RepeatableRead = 2,
6
- Serializable = 3
7
- }
8
- export declare abstract class Transaction {
9
- private readonly afterCommitSubject;
10
- protected useCounter: number;
11
- protected done: boolean;
12
- readonly isolationLevel: IsolationLevel;
13
- manualCommit: boolean;
14
- readonly afterCommit$: Observable<void>;
15
- constructor(isolationLevel: IsolationLevel);
16
- withManualCommit(): void;
17
- /**
18
- * Enters automatic transaction handling. Transaction will be commited when all use-calls are done or rolled back when one throws.
19
- */
20
- use<T>(handler: () => Promise<T>): Promise<T>;
21
- commit(): Promise<void>;
22
- rollback(): Promise<void>;
23
- protected abstract _commit(): void | Promise<void>;
24
- protected abstract _rollback(): void | Promise<void>;
25
- protected abstract _release(): void | Promise<void>;
26
- }
@@ -1,65 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Transaction = exports.IsolationLevel = void 0;
4
- const rxjs_1 = require("rxjs");
5
- var IsolationLevel;
6
- (function (IsolationLevel) {
7
- IsolationLevel[IsolationLevel["ReadUncommitted"] = 0] = "ReadUncommitted";
8
- IsolationLevel[IsolationLevel["ReadCommitted"] = 1] = "ReadCommitted";
9
- IsolationLevel[IsolationLevel["RepeatableRead"] = 2] = "RepeatableRead";
10
- IsolationLevel[IsolationLevel["Serializable"] = 3] = "Serializable";
11
- })(IsolationLevel = exports.IsolationLevel || (exports.IsolationLevel = {}));
12
- class Transaction {
13
- afterCommitSubject;
14
- useCounter;
15
- done;
16
- isolationLevel;
17
- manualCommit;
18
- afterCommit$;
19
- constructor(isolationLevel) {
20
- this.isolationLevel = isolationLevel;
21
- this.useCounter = 0;
22
- this.done = false;
23
- this.manualCommit = false;
24
- this.afterCommitSubject = new rxjs_1.Subject();
25
- this.afterCommit$ = this.afterCommitSubject.asObservable();
26
- }
27
- withManualCommit() {
28
- this.manualCommit = true;
29
- }
30
- /**
31
- * Enters automatic transaction handling. Transaction will be commited when all use-calls are done or rolled back when one throws.
32
- */
33
- async use(handler) {
34
- this.useCounter++;
35
- try {
36
- const result = await handler();
37
- return result;
38
- }
39
- catch (error) {
40
- if (!this.done) {
41
- await this.rollback();
42
- }
43
- throw error;
44
- }
45
- finally {
46
- this.useCounter--;
47
- if ((this.useCounter == 0) && !this.done && !this.manualCommit) {
48
- await this.commit();
49
- }
50
- }
51
- }
52
- async commit() {
53
- this.done = true;
54
- await this._commit();
55
- await this._release();
56
- this.afterCommitSubject.next();
57
- }
58
- async rollback() {
59
- this.done = true;
60
- await this._rollback();
61
- await this._release();
62
- }
63
- }
64
- exports.Transaction = Transaction;
65
- //# sourceMappingURL=transaction.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../../source/orm/repository/transaction.ts"],"names":[],"mappings":";;;AACA,+BAA+B;AAE/B,IAAY,cAKX;AALD,WAAY,cAAc;IACxB,yEAAmB,CAAA;IACnB,qEAAiB,CAAA;IACjB,uEAAkB,CAAA;IAClB,mEAAgB,CAAA;AAClB,CAAC,EALW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAKzB;AAED,MAAsB,WAAW;IACd,kBAAkB,CAAgB;IAEzC,UAAU,CAAS;IACnB,IAAI,CAAU;IAEf,cAAc,CAAiB;IAExC,YAAY,CAAU;IAEb,YAAY,CAAmB;IAExC,YAAY,cAA8B;QACxC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAE1B,IAAI,CAAC,kBAAkB,GAAG,IAAI,cAAO,EAAE,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;IAC7D,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAI,OAAyB;QACpC,IAAI,CAAC,UAAU,EAAE,CAAC;QAElB,IAAI;YACF,MAAM,MAAM,GAAG,MAAM,OAAO,EAAE,CAAC;YAC/B,OAAO,MAAM,CAAC;SACf;QACD,OAAO,KAAK,EAAE;YACZ,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;gBACd,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;aACvB;YAED,MAAM,KAAK,CAAC;SACb;gBACO;YACN,IAAI,CAAC,UAAU,EAAE,CAAC;YAElB,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;gBAC9D,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;aACrB;SACF;IACH,CAAC;IAED,KAAK,CAAC,MAAM;QACV,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEjB,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QAEtB,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEjB,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACvB,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;IACxB,CAAC;CAKF;AAvED,kCAuEC"}
@@ -1,6 +0,0 @@
1
- import type { EntityDefinition } from '../types';
2
- export declare class SqlRepository {
3
- private readonly definition;
4
- constructor(definition: EntityDefinition);
5
- initialize(): Promise<void>;
6
- }
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SqlRepository = void 0;
4
- const error_1 = require("../../error");
5
- class SqlRepository {
6
- definition;
7
- constructor(definition) {
8
- this.definition = definition;
9
- }
10
- async initialize() {
11
- throw new error_1.NotImplementedError();
12
- }
13
- }
14
- exports.SqlRepository = SqlRepository;
15
- //# sourceMappingURL=sql-repository.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sql-repository.js","sourceRoot":"","sources":["../../../source/orm/sql/sql-repository.ts"],"names":[],"mappings":";;;AAAA,uCAA8C;AAG9C,MAAa,aAAa;IACP,UAAU,CAAmB;IAE9C,YAAY,UAA4B;QACtC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,IAAI,2BAAmB,EAAE,CAAC;IAClC,CAAC;CACF;AAVD,sCAUC"}
package/orm/test.d.ts DELETED
@@ -1 +0,0 @@
1
- export {};
package/orm/test.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"test.js","sourceRoot":"","sources":["../../source/orm/test.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,sCAA2C;AAG3C,IAAM,UAAU,GAAhB,MAAM,UAAU;IAEd,IAAI,CAAS;CACd,CAAA;AAFC;IAAC,IAAA,iBAAQ,GAAE;;wCACE;AAFT,UAAU;IADf,IAAA,cAAK,GAAE;GACF,UAAU,CAGf"}
@@ -1,19 +0,0 @@
1
- import type { OneOrMany, Record, Type } from "../../types";
2
- export type EntityDefinition = {
3
- name: string;
4
- tableName?: string;
5
- properties: Record;
6
- indexes?: IndexDefinition[];
7
- };
8
- export type EntityPropertyType = 'any' | 'string' | 'number' | 'boolean';
9
- export type PropertyDefinition = {
10
- type: OneOrMany<EntityPropertyType>;
11
- array?: boolean;
12
- nullable?: boolean;
13
- unique?: boolean;
14
- };
15
- export type IndexDefinition = {
16
- properties: string[];
17
- unique?: boolean;
18
- };
19
- export declare function getEntityDefinitionFromSchema(type: Type): EntityDefinition | null;
@@ -1,55 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getEntityDefinitionFromSchema = void 0;
4
- const not_supported_error_1 = require("../../error/not-supported.error");
5
- const reflection_1 = require("../../reflection");
6
- const schema_1 = require("../../schema");
7
- const array_1 = require("../../utils/array");
8
- const object_1 = require("../../utils/object/object");
9
- const type_guards_1 = require("../../utils/type-guards");
10
- function getEntityDefinitionFromSchema(type) {
11
- const metadata = reflection_1.reflectionRegistry.getMetadata(type);
12
- if ((0, type_guards_1.isUndefined)(metadata)) {
13
- return null;
14
- }
15
- const properties = {};
16
- const schema = (0, schema_1.tryGetObjectSchemaFromReflection)(type);
17
- if ((0, type_guards_1.isNotNull)(schema)) {
18
- for (const [key, property] of (0, object_1.objectEntries)(schema.properties)) {
19
- const valueTypes = (0, schema_1.getSchemaValueTypes)(property);
20
- const valueTypesWithoutNullAndUndefined = valueTypes.filter((valueType) => (valueType != 'null') && (valueType != 'undefined'));
21
- const types = (0, array_1.toArray)(valueTypesWithoutNullAndUndefined).map(schemaValueTypeToEntityPropertyType);
22
- properties[key] = {
23
- type: (types.length > 1) ? types : types[0],
24
- array: ((0, schema_1.isValueSchema)(property) && (property.array == true)),
25
- nullable: valueTypes.includes('null') || valueTypes.includes('undefined') || ((0, schema_1.isValueSchema)(property) && ((property.nullable == true) || (property.optional == true)))
26
- };
27
- }
28
- }
29
- const definition = {
30
- name: type.name,
31
- properties,
32
- indexes: []
33
- };
34
- return definition;
35
- }
36
- exports.getEntityDefinitionFromSchema = getEntityDefinitionFromSchema;
37
- function schemaValueTypeToEntityPropertyType(valueType) {
38
- if ((valueType == 'undefined') || (valueType == 'null')) {
39
- throw new Error('null and undefined are not supported');
40
- }
41
- if (valueType == String) {
42
- return 'string';
43
- }
44
- if (valueType == Number) {
45
- return 'number';
46
- }
47
- if (valueType == Boolean) {
48
- return 'boolean';
49
- }
50
- if (valueType == 'any') {
51
- return 'any';
52
- }
53
- throw new not_supported_error_1.NotSupportedError(`ValueType ${(0, schema_1.getValueTypeName)(valueType)} not supported.`);
54
- }
55
- //# sourceMappingURL=definition.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../source/orm/types/definition.ts"],"names":[],"mappings":";;;AAAA,yEAAgE;AAChE,iDAAkD;AAElD,yCAAkH;AAElH,6CAAwC;AACxC,sDAAsD;AACtD,yDAA6D;AAuB7D,SAAgB,6BAA6B,CAAC,IAAU;IACtD,MAAM,QAAQ,GAAG,+BAAkB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAEtD,IAAI,IAAA,yBAAW,EAAC,QAAQ,CAAC,EAAE;QACzB,OAAO,IAAI,CAAC;KACb;IAED,MAAM,UAAU,GAA4C,EAAE,CAAC;IAE/D,MAAM,MAAM,GAAG,IAAA,yCAAgC,EAAC,IAAI,CAAC,CAAC;IAEtD,IAAI,IAAA,uBAAS,EAAC,MAAM,CAAC,EAAE;QACrB,KAAK,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,IAAA,sBAAa,EAAC,MAAM,CAAC,UAAU,CAAC,EAAE;YAC9D,MAAM,UAAU,GAAG,IAAA,4BAAmB,EAAC,QAAQ,CAAC,CAAC;YACjD,MAAM,iCAAiC,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,WAAW,CAAC,CAAC,CAAC;YAEhI,MAAM,KAAK,GAAG,IAAA,eAAO,EAAC,iCAAiC,CAAC,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;YAElG,UAAU,CAAC,GAAG,CAAC,GAAG;gBAChB,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE;gBAC5C,KAAK,EAAE,CAAC,IAAA,sBAAa,EAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC;gBAC5D,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,IAAA,sBAAa,EAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC;aACvK,CAAC;SACH;KACF;IAED,MAAM,UAAU,GAAqB;QACnC,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,UAAU;QACV,OAAO,EAAE,EAAE;KACZ,CAAC;IAEF,OAAO,UAAU,CAAC;AACpB,CAAC;AAjCD,sEAiCC;AAED,SAAS,mCAAmC,CAAC,SAA4B;IACvE,IAAI,CAAC,SAAS,IAAI,WAAW,CAAC,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,EAAE;QACvD,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;KACzD;IAED,IAAI,SAAS,IAAI,MAAM,EAAE;QACvB,OAAO,QAAQ,CAAC;KACjB;IAED,IAAI,SAAS,IAAI,MAAM,EAAE;QACvB,OAAO,QAAQ,CAAC;KACjB;IAED,IAAI,SAAS,IAAI,OAAO,EAAE;QACxB,OAAO,SAAS,CAAC;KAClB;IAED,IAAI,SAAS,IAAI,KAAK,EAAE;QACtB,OAAO,KAAK,CAAC;KACd;IAED,MAAM,IAAI,uCAAiB,CAAC,aAAa,IAAA,yBAAgB,EAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;AACzF,CAAC"}
@@ -1,3 +0,0 @@
1
- export * from './definition';
2
- export * from './options';
3
- export * from './query';
@@ -1,20 +0,0 @@
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
- __exportStar(require("./definition"), exports);
18
- __exportStar(require("./options"), exports);
19
- __exportStar(require("./query"), exports);
20
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../source/orm/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,4CAA0B;AAC1B,0CAAwB"}