@uql/core 0.4.89 → 0.4.92

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 (44) hide show
  1. package/README.md +35 -35
  2. package/package.json +4 -4
  3. package/dialect/abstractSqlDialect-spec.d.ts +0 -49
  4. package/dialect/abstractSqlDialect-spec.js +0 -765
  5. package/dialect/mysqlDialect.spec.d.ts +0 -6
  6. package/dialect/mysqlDialect.spec.js +0 -33
  7. package/dialect/postgresDialect.spec.d.ts +0 -1
  8. package/dialect/postgresDialect.spec.js +0 -139
  9. package/dialect/sqliteDialect.spec.d.ts +0 -1
  10. package/dialect/sqliteDialect.spec.js +0 -12
  11. package/entity/decorator/definition.spec.d.ts +0 -1
  12. package/entity/decorator/definition.spec.js +0 -725
  13. package/entity/decorator/relation.spec.d.ts +0 -1
  14. package/entity/decorator/relation.spec.js +0 -55
  15. package/options.spec.d.ts +0 -1
  16. package/options.spec.js +0 -27
  17. package/querier/abstractQuerier-it.d.ts +0 -41
  18. package/querier/abstractQuerier-it.js +0 -410
  19. package/querier/abstractSqlQuerier-it.d.ts +0 -9
  20. package/querier/abstractSqlQuerier-it.js +0 -19
  21. package/querier/abstractSqlQuerier-spec.d.ts +0 -53
  22. package/querier/abstractSqlQuerier-spec.js +0 -607
  23. package/querier/decorator/injectQuerier.spec.d.ts +0 -1
  24. package/querier/decorator/injectQuerier.spec.js +0 -108
  25. package/querier/decorator/transactional.spec.d.ts +0 -1
  26. package/querier/decorator/transactional.spec.js +0 -239
  27. package/repository/genericRepository.spec.d.ts +0 -1
  28. package/repository/genericRepository.spec.js +0 -86
  29. package/test/entityMock.d.ts +0 -180
  30. package/test/entityMock.js +0 -451
  31. package/test/index.d.ts +0 -3
  32. package/test/index.js +0 -7
  33. package/test/it.util.d.ts +0 -4
  34. package/test/it.util.js +0 -60
  35. package/test/spec.util.d.ts +0 -13
  36. package/test/spec.util.js +0 -54
  37. package/util/dialect.util.spec.d.ts +0 -1
  38. package/util/dialect.util.spec.js +0 -23
  39. package/util/object.util.spec.d.ts +0 -1
  40. package/util/object.util.spec.js +0 -26
  41. package/util/sql.util.spec.d.ts +0 -1
  42. package/util/sql.util.spec.js +0 -164
  43. package/util/string.util.spec.d.ts +0 -1
  44. package/util/string.util.spec.js +0 -26
@@ -1,6 +0,0 @@
1
- import { AbstractSqlDialectSpec } from './abstractSqlDialect-spec';
2
- export declare class MySqlDialectSpec extends AbstractSqlDialectSpec {
3
- constructor();
4
- shouldBeginTransaction(): void;
5
- shouldFind$text(): void;
6
- }
@@ -1,33 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MySqlDialectSpec = void 0;
4
- const test_1 = require("@uql/core/test");
5
- const abstractSqlDialect_spec_1 = require("./abstractSqlDialect-spec");
6
- const mysqlDialect_1 = require("./mysqlDialect");
7
- class MySqlDialectSpec extends abstractSqlDialect_spec_1.AbstractSqlDialectSpec {
8
- constructor() {
9
- super(new mysqlDialect_1.MySqlDialect());
10
- }
11
- shouldBeginTransaction() {
12
- expect(this.dialect.beginTransactionCommand).toBe('START TRANSACTION');
13
- }
14
- shouldFind$text() {
15
- expect(this.dialect.find(test_1.Item, {
16
- $project: ['id'],
17
- $filter: { $text: { $fields: ['name', 'description'], $value: 'some text' }, creatorId: 1 },
18
- $limit: 30,
19
- })).toBe("SELECT `id` FROM `Item` WHERE MATCH(`name`, `description`) AGAINST('some text') AND `creatorId` = 1 LIMIT 30");
20
- expect(this.dialect.find(test_1.User, {
21
- $project: { id: true },
22
- $filter: {
23
- $text: { $fields: ['name'], $value: 'something' },
24
- name: { $ne: 'other unwanted' },
25
- creatorId: 1,
26
- },
27
- $limit: 10,
28
- })).toBe("SELECT `id` FROM `User` WHERE MATCH(`name`) AGAINST('something') AND `name` <> 'other unwanted' AND `creatorId` = 1 LIMIT 10");
29
- }
30
- }
31
- exports.MySqlDialectSpec = MySqlDialectSpec;
32
- (0, test_1.createSpec)(new MySqlDialectSpec());
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXlzcWxEaWFsZWN0LnNwZWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGlhbGVjdC9teXNxbERpYWxlY3Quc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5Q0FBd0Q7QUFDeEQsdUVBQW1FO0FBQ25FLGlEQUE4QztBQUU5QyxNQUFhLGdCQUFpQixTQUFRLGdEQUFzQjtJQUMxRDtRQUNFLEtBQUssQ0FBQyxJQUFJLDJCQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFUSxzQkFBc0I7UUFDN0IsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRVEsZUFBZTtRQUN0QixNQUFNLENBQ0osSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBSSxFQUFFO1lBQ3RCLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQztZQUNoQixPQUFPLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFDLEVBQUU7WUFDM0YsTUFBTSxFQUFFLEVBQUU7U0FDWCxDQUFDLENBQ0gsQ0FBQyxJQUFJLENBQUMsOEdBQThHLENBQUMsQ0FBQztRQUV2SCxNQUFNLENBQ0osSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBSSxFQUFFO1lBQ3RCLFFBQVEsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUU7WUFDdEIsT0FBTyxFQUFFO2dCQUNQLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUU7Z0JBQ2pELElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxnQkFBZ0IsRUFBRTtnQkFDL0IsU0FBUyxFQUFFLENBQUM7YUFDYjtZQUNELE1BQU0sRUFBRSxFQUFFO1NBQ1gsQ0FBQyxDQUNILENBQUMsSUFBSSxDQUFDLDhIQUE4SCxDQUFDLENBQUM7SUFDekksQ0FBQztDQUNGO0FBOUJELDRDQThCQztBQUVELElBQUEsaUJBQVUsRUFBQyxJQUFJLGdCQUFnQixFQUFFLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZVNwZWMsIEl0ZW0sIFVzZXIgfSBmcm9tICdAdXFsL2NvcmUvdGVzdCc7XG5pbXBvcnQgeyBBYnN0cmFjdFNxbERpYWxlY3RTcGVjIH0gZnJvbSAnLi9hYnN0cmFjdFNxbERpYWxlY3Qtc3BlYyc7XG5pbXBvcnQgeyBNeVNxbERpYWxlY3QgfSBmcm9tICcuL215c3FsRGlhbGVjdCc7XG5cbmV4cG9ydCBjbGFzcyBNeVNxbERpYWxlY3RTcGVjIGV4dGVuZHMgQWJzdHJhY3RTcWxEaWFsZWN0U3BlYyB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKG5ldyBNeVNxbERpYWxlY3QoKSk7XG4gIH1cblxuICBvdmVycmlkZSBzaG91bGRCZWdpblRyYW5zYWN0aW9uKCkge1xuICAgIGV4cGVjdCh0aGlzLmRpYWxlY3QuYmVnaW5UcmFuc2FjdGlvbkNvbW1hbmQpLnRvQmUoJ1NUQVJUIFRSQU5TQUNUSU9OJyk7XG4gIH1cblxuICBvdmVycmlkZSBzaG91bGRGaW5kJHRleHQoKSB7XG4gICAgZXhwZWN0KFxuICAgICAgdGhpcy5kaWFsZWN0LmZpbmQoSXRlbSwge1xuICAgICAgICAkcHJvamVjdDogWydpZCddLFxuICAgICAgICAkZmlsdGVyOiB7ICR0ZXh0OiB7ICRmaWVsZHM6IFsnbmFtZScsICdkZXNjcmlwdGlvbiddLCAkdmFsdWU6ICdzb21lIHRleHQnIH0sIGNyZWF0b3JJZDogMSB9LFxuICAgICAgICAkbGltaXQ6IDMwLFxuICAgICAgfSlcbiAgICApLnRvQmUoXCJTRUxFQ1QgYGlkYCBGUk9NIGBJdGVtYCBXSEVSRSBNQVRDSChgbmFtZWAsIGBkZXNjcmlwdGlvbmApIEFHQUlOU1QoJ3NvbWUgdGV4dCcpIEFORCBgY3JlYXRvcklkYCA9IDEgTElNSVQgMzBcIik7XG5cbiAgICBleHBlY3QoXG4gICAgICB0aGlzLmRpYWxlY3QuZmluZChVc2VyLCB7XG4gICAgICAgICRwcm9qZWN0OiB7IGlkOiB0cnVlIH0sXG4gICAgICAgICRmaWx0ZXI6IHtcbiAgICAgICAgICAkdGV4dDogeyAkZmllbGRzOiBbJ25hbWUnXSwgJHZhbHVlOiAnc29tZXRoaW5nJyB9LFxuICAgICAgICAgIG5hbWU6IHsgJG5lOiAnb3RoZXIgdW53YW50ZWQnIH0sXG4gICAgICAgICAgY3JlYXRvcklkOiAxLFxuICAgICAgICB9LFxuICAgICAgICAkbGltaXQ6IDEwLFxuICAgICAgfSlcbiAgICApLnRvQmUoXCJTRUxFQ1QgYGlkYCBGUk9NIGBVc2VyYCBXSEVSRSBNQVRDSChgbmFtZWApIEFHQUlOU1QoJ3NvbWV0aGluZycpIEFORCBgbmFtZWAgPD4gJ290aGVyIHVud2FudGVkJyBBTkQgYGNyZWF0b3JJZGAgPSAxIExJTUlUIDEwXCIpO1xuICB9XG59XG5cbmNyZWF0ZVNwZWMobmV3IE15U3FsRGlhbGVjdFNwZWMoKSk7XG4iXX0=
@@ -1 +0,0 @@
1
- export {};
@@ -1,139 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const test_1 = require("@uql/core/test");
4
- const postgresDialect_1 = require("./postgresDialect");
5
- class PostgresDialectSpec {
6
- constructor() {
7
- this.dialect = new postgresDialect_1.PostgresDialect();
8
- }
9
- shouldBeValidEscapeCharacter() {
10
- expect(this.dialect.escapeIdChar).toBe('"');
11
- }
12
- shouldBeginTransaction() {
13
- expect(this.dialect.beginTransactionCommand).toBe('BEGIN TRANSACTION');
14
- }
15
- shouldInsertMany() {
16
- expect(this.dialect.insert(test_1.User, [
17
- {
18
- name: 'Some name 1',
19
- email: 'someemail1@example.com',
20
- createdAt: 123,
21
- },
22
- {
23
- name: 'Some name 2',
24
- email: 'someemail2@example.com',
25
- createdAt: 456,
26
- },
27
- {
28
- name: 'Some name 3',
29
- email: 'someemail3@example.com',
30
- createdAt: 789,
31
- },
32
- ])).toBe('INSERT INTO "User" ("name", "email", "createdAt") VALUES' +
33
- " ('Some name 1', 'someemail1@example.com', 123)" +
34
- ", ('Some name 2', 'someemail2@example.com', 456)" +
35
- ", ('Some name 3', 'someemail3@example.com', 789)" +
36
- ' RETURNING "id" "id"');
37
- }
38
- shouldInsertOne() {
39
- expect(this.dialect.insert(test_1.User, {
40
- name: 'Some Name',
41
- email: 'someemail@example.com',
42
- createdAt: 123,
43
- })).toBe(`INSERT INTO "User" ("name", "email", "createdAt") VALUES ('Some Name', 'someemail@example.com', 123) RETURNING "id" "id"`);
44
- }
45
- shouldInsertWithOnInsertId() {
46
- expect(this.dialect.insert(test_1.TaxCategory, {
47
- name: 'Some Name',
48
- createdAt: 123,
49
- })).toMatch(/^INSERT INTO "TaxCategory" \("name", "createdAt", "pk"\) VALUES \('Some Name', 123, '.+'\) RETURNING "pk" "id"$/);
50
- }
51
- shouldFind$istartsWith() {
52
- expect(this.dialect.find(test_1.User, {
53
- $project: ['id'],
54
- $filter: { name: { $istartsWith: 'Some' } },
55
- $sort: { name: 1, id: -1 },
56
- $skip: 0,
57
- $limit: 50,
58
- })).toBe(`SELECT "id" FROM "User" WHERE "name" ILIKE 'Some%' ORDER BY "name", "id" DESC LIMIT 50 OFFSET 0`);
59
- expect(this.dialect.find(test_1.User, {
60
- $project: { id: true },
61
- $filter: { name: { $istartsWith: 'Some', $ne: 'Something' } },
62
- $sort: { name: 1, id: -1 },
63
- $skip: 0,
64
- $limit: 50,
65
- })).toBe(`SELECT "id" FROM "User" WHERE ("name" ILIKE 'Some%' AND "name" <> 'Something') ORDER BY "name", "id" DESC LIMIT 50 OFFSET 0`);
66
- }
67
- shouldFind$iendsWith() {
68
- expect(this.dialect.find(test_1.User, {
69
- $project: ['id'],
70
- $filter: { name: { $iendsWith: 'Some' } },
71
- $sort: { name: 1, id: -1 },
72
- $skip: 0,
73
- $limit: 50,
74
- })).toBe(`SELECT "id" FROM "User" WHERE "name" ILIKE '%Some' ORDER BY "name", "id" DESC LIMIT 50 OFFSET 0`);
75
- expect(this.dialect.find(test_1.User, {
76
- $project: { id: true },
77
- $filter: { name: { $iendsWith: 'Some', $ne: 'Something' } },
78
- $sort: { name: 1, id: -1 },
79
- $skip: 0,
80
- $limit: 50,
81
- })).toBe(`SELECT "id" FROM "User" WHERE ("name" ILIKE '%Some' AND "name" <> 'Something') ORDER BY "name", "id" DESC LIMIT 50 OFFSET 0`);
82
- }
83
- shouldFind$iincludes() {
84
- expect(this.dialect.find(test_1.User, {
85
- $project: ['id'],
86
- $filter: { name: { $iincludes: 'Some' } },
87
- $sort: { name: 1, id: -1 },
88
- $skip: 0,
89
- $limit: 50,
90
- })).toBe(`SELECT "id" FROM "User" WHERE "name" ILIKE '%Some%' ORDER BY "name", "id" DESC LIMIT 50 OFFSET 0`);
91
- expect(this.dialect.find(test_1.User, {
92
- $project: { id: true },
93
- $filter: { name: { $iincludes: 'Some', $ne: 'Something' } },
94
- $sort: { name: 1, id: -1 },
95
- $skip: 0,
96
- $limit: 50,
97
- })).toBe(`SELECT "id" FROM "User" WHERE ("name" ILIKE '%Some%' AND "name" <> 'Something') ORDER BY "name", "id" DESC LIMIT 50 OFFSET 0`);
98
- }
99
- shouldFind$ilike() {
100
- expect(this.dialect.find(test_1.User, {
101
- $project: ['id'],
102
- $filter: { name: { $ilike: 'Some' } },
103
- $sort: { name: 1, id: -1 },
104
- $skip: 0,
105
- $limit: 50,
106
- })).toBe(`SELECT "id" FROM "User" WHERE "name" ILIKE 'Some' ORDER BY "name", "id" DESC LIMIT 50 OFFSET 0`);
107
- expect(this.dialect.find(test_1.User, {
108
- $project: { id: true },
109
- $filter: { name: { $ilike: 'Some', $ne: 'Something' } },
110
- $sort: { name: 1, id: -1 },
111
- $skip: 0,
112
- $limit: 50,
113
- })).toBe(`SELECT "id" FROM "User" WHERE ("name" ILIKE 'Some' AND "name" <> 'Something') ORDER BY "name", "id" DESC LIMIT 50 OFFSET 0`);
114
- }
115
- shouldFind$regex() {
116
- expect(this.dialect.find(test_1.User, {
117
- $project: { id: true },
118
- $filter: { name: { $regex: '^some' } },
119
- })).toBe(`SELECT "id" FROM "User" WHERE "name" ~ '^some'`);
120
- }
121
- shouldFind$text() {
122
- expect(this.dialect.find(test_1.Item, {
123
- $project: { id: true },
124
- $filter: { $text: { $fields: ['name', 'description'], $value: 'some text' }, code: '1' },
125
- $limit: 30,
126
- })).toBe(`SELECT "id" FROM "Item" WHERE to_tsvector("name" || ' ' || "description") @@ to_tsquery('some text') AND "code" = '1' LIMIT 30`);
127
- expect(this.dialect.find(test_1.User, {
128
- $project: { id: true },
129
- $filter: {
130
- $text: { $fields: ['name'], $value: 'something' },
131
- name: { $ne: 'other unwanted' },
132
- creatorId: 1,
133
- },
134
- $limit: 10,
135
- })).toBe(`SELECT "id" FROM "User" WHERE to_tsvector("name") @@ to_tsquery('something') AND "name" <> 'other unwanted' AND "creatorId" = 1 LIMIT 10`);
136
- }
137
- }
138
- (0, test_1.createSpec)(new PostgresDialectSpec());
139
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zdGdyZXNEaWFsZWN0LnNwZWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGlhbGVjdC9wb3N0Z3Jlc0RpYWxlY3Quc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHlDQUFxRTtBQUNyRSx1REFBb0Q7QUFFcEQsTUFBTSxtQkFBbUI7SUFBekI7UUFDVyxZQUFPLEdBQUcsSUFBSSxpQ0FBZSxFQUFFLENBQUM7SUFpTDNDLENBQUM7SUEvS0MsNEJBQTRCO1FBQzFCLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsc0JBQXNCO1FBQ3BCLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVELGdCQUFnQjtRQUNkLE1BQU0sQ0FDSixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQUFJLEVBQUU7WUFDeEI7Z0JBQ0UsSUFBSSxFQUFFLGFBQWE7Z0JBQ25CLEtBQUssRUFBRSx3QkFBd0I7Z0JBQy9CLFNBQVMsRUFBRSxHQUFHO2FBQ2Y7WUFDRDtnQkFDRSxJQUFJLEVBQUUsYUFBYTtnQkFDbkIsS0FBSyxFQUFFLHdCQUF3QjtnQkFDL0IsU0FBUyxFQUFFLEdBQUc7YUFDZjtZQUNEO2dCQUNFLElBQUksRUFBRSxhQUFhO2dCQUNuQixLQUFLLEVBQUUsd0JBQXdCO2dCQUMvQixTQUFTLEVBQUUsR0FBRzthQUNmO1NBQ0YsQ0FBQyxDQUNILENBQUMsSUFBSSxDQUNKLDBEQUEwRDtZQUN4RCxpREFBaUQ7WUFDakQsa0RBQWtEO1lBQ2xELGtEQUFrRDtZQUNsRCxzQkFBc0IsQ0FDekIsQ0FBQztJQUNKLENBQUM7SUFFRCxlQUFlO1FBQ2IsTUFBTSxDQUNKLElBQUksQ0FBQyxPQUFPLENBQUMsTUFB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QUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFO2dCQUNqRCxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQy9CLFNBQVMsRUFBRSxDQUFDO2FBQ2I7WUFDRCxNQUFNLEVBQUUsRUFBRTtTQUNYLENBQUMsQ0FDSCxDQUFDLElBQUksQ0FDSiwwSUFBMEksQ0FDM0ksQ0FBQztJQUNKLENBQUM7Q0FDRjtBQUVELElBQUEsaUJBQVUsRUFBQyxJQUFJLG1CQUFtQixFQUFFLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFVzZXIsIEl0ZW0sIGNyZWF0ZVNwZWMsIFRheENhdGVnb3J5IH0gZnJvbSAnQHVxbC9jb3JlL3Rlc3QnO1xuaW1wb3J0IHsgUG9zdGdyZXNEaWFsZWN0IH0gZnJvbSAnLi9wb3N0Z3Jlc0RpYWxlY3QnO1xuXG5jbGFzcyBQb3N0Z3Jlc0RpYWxlY3RTcGVjIHtcbiAgcmVhZG9ubHkgZGlhbGVjdCA9IG5ldyBQb3N0Z3Jlc0RpYWxlY3QoKTtcblxuICBzaG91bGRCZVZhbGlkRXNjYXBlQ2hhcmFjdGVyKCkge1xuICAgIGV4cGVjdCh0aGlzLmRpYWxlY3QuZXNjYXBlSWRDaGFyKS50b0JlKCdcIicpO1xuICB9XG5cbiAgc2hvdWxkQmVnaW5UcmFuc2FjdGlvbigpIHtcbiAgICBleHBlY3QodGhpcy5kaWFsZWN0LmJlZ2luVHJhbnNhY3Rpb25Db21tYW5kKS50b0JlKCdCRUdJTiBUUkFOU0FDVElPTicpO1xuICB9XG5cbiAgc2hvdWxkSW5zZXJ0TWFueSgpIHtcbiAgICBleHBlY3QoXG4gICAgICB0aGlzLmRpYWxlY3QuaW5zZXJ0KFVzZXIsIFtcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdTb21lIG5hbWUgMScsXG4gICAgICAgICAgZW1haWw6ICdzb21lZW1haWwxQGV4YW1wbGUuY29tJyxcbiAgICAgICAgICBjcmVhdGVkQXQ6IDEyMyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdTb21lIG5hbWUgMicsXG4gICAgICAgICAgZW1haWw6ICdzb21lZW1haWwyQGV4YW1wbGUuY29tJyxcbiAgICAgICAgICBjcmVhdGVkQXQ6IDQ1NixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdTb21lIG5hbWUgMycsXG4gICAgICAgICAgZW1haWw6ICdzb21lZW1haWwzQGV4YW1wbGUuY29tJyxcbiAgICAgICAgICBjcmVhdGVkQXQ6IDc4OSxcbiAgICAgICAgfSxcbiAgICAgIF0pXG4gICAgKS50b0JlKFxuICAgICAgJ0lOU0VSVCBJTlRPIFwiVXNlclwiIChcIm5hbWVcIiwgXCJlbWFpbFwiLCBcImNyZWF0ZWRBdFwiKSBWQUxVRVMnICtcbiAgICAgICAgXCIgKCdTb21lIG5hbWUgMScsICdzb21lZW1haWwxQGV4YW1wbGUuY29tJywgMTIzKVwiICtcbiAgICAgICAgXCIsICgnU29tZSBuYW1lIDInLCAnc29tZWVtYWlsMkBleGFtcGxlLmNvbScsIDQ1NilcIiArXG4gICAgICAgIFwiLCAoJ1NvbWUgbmFtZSAzJywgJ3NvbWVlbWFpbDNAZXhhbXBsZS5jb20nLCA3ODkpXCIgK1xuICAgICAgICAnIFJFVFVSTklORyBcImlkXCIgXCJpZFwiJ1xuICAgICk7XG4gIH1cblxuICBzaG91bGRJbnNlcnRPbmUoKSB7XG4gICAgZXhwZWN0KFxuICAgICAgdGhpcy5kaWFsZWN0Lmluc2VydChVc2VyLCB7XG4gICAgICAgIG5hbWU6ICdTb21lIE5hbWUnLFxuICAgICAgICBlbWFpbDogJ3NvbWVlbWFpbEBleGFtcGxlLmNvbScsXG4gICAgICAgIGNyZWF0ZWRBdDogMTIzLFxuICAgICAgfSlcbiAgICApLnRvQmUoYElOU0VSVCBJTlRPIFwiVXNlclwiIChcIm5hbWVcIiwgXCJlbWFpbFwiLCBcImNyZWF0ZWRBdFwiKSBWQUxVRVMgKCdTb21lIE5hbWUnLCAnc29tZWVtYWlsQGV4YW1wbGUuY29tJywgMTIzKSBSRVRVUk5JTkcgXCJpZFwiIFwiaWRcImApO1xuICB9XG5cbiAgc2hvdWxkSW5zZXJ0V2l0aE9uSW5zZXJ0SWQoKSB7XG4gICAgZXhwZWN0KFxuICAgICAgdGhpcy5kaWFsZWN0Lmluc2VydChUYXhDYXRlZ29yeSwge1xuICAgICAgICBuYW1lOiAnU29tZSBOYW1lJyxcbiAgICAgICAgY3JlYXRlZEF0OiAxMjMsXG4gICAgICB9KVxuICAgICkudG9NYXRjaCgvXklOU0VSVCBJTlRPIFwiVGF4Q2F0ZWdvcnlcIiBcXChcIm5hbWVcIiwgXCJjcmVhdGVkQXRcIiwgXCJwa1wiXFwpIFZBTFVFUyBcXCgnU29tZSBOYW1lJywgMTIzLCAnLisnXFwpIFJFVFVSTklORyBcInBrXCIgXCJpZFwiJC8pO1xuICB9XG5cbiAgc2hvdWxkRmluZCRpc3RhcnRzV2l0aCgpIHtcbiAgICBleHBlY3QoXG4gICAgICB0aGlzLmRpYWxlY3QuZmluZChVc2VyLCB7XG4gICAgICAgICRwcm9qZWN0OiBbJ2lkJ10sXG4gICAgICAgICRmaWx0ZXI6IHsgbmFtZTogeyAkaXN0YXJ0c1dpdGg6ICdTb21lJyB9IH0sXG4gICAgICAgICRzb3J0OiB7IG5hbWU6IDEsIGlkOiAtMSB9LFxuICAgICAgICAkc2tpcDogMCxcbiAgICAgICAgJGxpbWl0OiA1MCxcbiAgICAgIH0pXG4gICAgKS50b0JlKGBTRUxFQ1QgXCJpZFwiIEZST00gXCJVc2VyXCIgV0hFUkUgXCJuYW1lXCIgSUxJS0UgJ1NvbWUlJyBPUkRFUiBCWSBcIm5hbWVcIiwgXCJpZFwiIERFU0MgTElNSVQgNTAgT0ZGU0VUIDBgKTtcblxuICAgIGV4cGVjdChcbiAgICAgIHRoaXMuZGlhbGVjdC5maW5kKFVzZXIsIHtcbiAgICAgICAgJHByb2plY3Q6IHsgaWQ6IHRydWUgfSxcbiAgICAgICAgJGZpbHRlcjogeyBuYW1lOiB7ICRpc3RhcnRzV2l0aDogJ1NvbWUnLCAkbmU6ICdTb21ldGhpbmcnIH0gfSxcbiAgICAgICAgJHNvcnQ6IHsgbmFtZTogMSwgaWQ6IC0xIH0sXG4gICAgICAgICRza2lwOiAwLFxuICAgICAgICAkbGltaXQ6IDUwLFxuICAgICAgfSlcbiAgICApLnRvQmUoYFNFTEVDVCBcImlkXCIgRlJPTSBcIlVzZXJcIiBXSEVSRSAoXCJuYW1lXCIgSUxJS0UgJ1NvbWUlJyBBTkQgXCJuYW1lXCIgPD4gJ1NvbWV0aGluZycpIE9SREVSIEJZIFwibmFtZVwiLCBcImlkXCIgREVTQyBMSU1JVCA1MCBPRkZTRVQgMGApO1xuICB9XG5cbiAgc2hvdWxkRmluZCRpZW5kc1dpdGgoKSB7XG4gICAgZXhwZWN0KFxuICAgICAgdGhpcy5kaWFsZWN0LmZpbmQoVXNlciwge1xuICAgICAgICAkcHJvamVjdDogWydpZCddLFxuICAgICAgICAkZmlsdGVyOiB7IG5hbWU6IHsgJGllbmRzV2l0aDogJ1NvbWUnIH0gfSxcbiAgICAgICAgJHNvcnQ6IHsgbmFtZTogMSwgaWQ6IC0xIH0sXG4gICAgICAgICRza2lwOiAwLFxuICAgICAgICAkbGltaXQ6IDUwLFxuICAgICAgfSlcbiAgICApLnRvQmUoYFNFTEVDVCBcImlkXCIgRlJPTSBcIlVzZXJcIiBXSEVSRSBcIm5hbWVcIiBJTElLRSAnJVNvbWUnIE9SREVSIEJZIFwibmFtZVwiLCBcImlkXCIgREVTQyBMSU1JVCA1MCBPRkZTRVQgMGApO1xuXG4gICAgZXhwZWN0KFxuICAgICAgdGhpcy5kaWFsZWN0LmZpbmQoVXNlciwge1xuICAgICAgICAkcHJvamVjdDogeyBpZDogdHJ1ZSB9LFxuICAgICAgICAkZmlsdGVyOiB7IG5hbWU6IHsgJGllbmRzV2l0aDogJ1NvbWUnLCAkbmU6ICdTb21ldGhpbmcnIH0gfSxcbiAgICAgICAgJHNvcnQ6IHsgbmFtZTogMSwgaWQ6IC0xIH0sXG4gICAgICAgICRza2lwOiAwLFxuICAgICAgICAkbGltaXQ6IDUwLFxuICAgICAgfSlcbiAgICApLnRvQmUoYFNFTEVDVCBcImlkXCIgRlJPTSBcIlVzZXJcIiBXSEVSRSAoXCJuYW1lXCIgSUxJS0UgJyVTb21lJyBBTkQgXCJuYW1lXCIgPD4gJ1NvbWV0aGluZycpIE9SREVSIEJZIFwibmFtZVwiLCBcImlkXCIgREVTQyBMSU1JVCA1MCBPRkZTRVQgMGApO1xuICB9XG5cbiAgc2hvdWxkRmluZCRpaW5jbHVkZXMoKSB7XG4gICAgZXhwZWN0KFxuICAgICAgdGhpcy5kaWFsZWN0LmZpbmQoVXNlciwge1xuICAgICAgICAkcHJvamVjdDogWydpZCddLFxuICAgICAgICAkZmlsdGVyOiB7IG5hbWU6IHsgJGlpbmNsdWRlczogJ1NvbWUnIH0gfSxcbiAgICAgICAgJHNvcnQ6IHsgbmFtZTogMSwgaWQ6IC0xIH0sXG4gICAgICAgICRza2lwOiAwLFxuICAgICAgICAkbGltaXQ6IDUwLFxuICAgICAgfSlcbiAgICApLnRvQmUoYFNFTEVDVCBcImlkXCIgRlJPTSBcIlVzZXJcIiBXSEVSRSBcIm5hbWVcIiBJTElLRSAnJVNvbWUlJyBPUkRFUiBCWSBcIm5hbWVcIiwgXCJpZFwiIERFU0MgTElNSVQgNTAgT0ZGU0VUIDBgKTtcblxuICAgIGV4cGVjdChcbiAgICAgIHRoaXMuZGlhbGVjdC5maW5kKFVzZXIsIHtcbiAgICAgICAgJHByb2plY3Q6IHsgaWQ6IHRydWUgfSxcbiAgICAgICAgJGZpbHRlcjogeyBuYW1lOiB7ICRpaW5jbHVkZXM6ICdTb21lJywgJG5lOiAnU29tZXRoaW5nJyB9IH0sXG4gICAgICAgICRzb3J0OiB7IG5hbWU6IDEsIGlkOiAtMSB9LFxuICAgICAgICAkc2tpcDogMCxcbiAgICAgICAgJGxpbWl0OiA1MCxcbiAgICAgIH0pXG4gICAgKS50b0JlKGBTRUxFQ1QgXCJpZFwiIEZST00gXCJVc2VyXCIgV0hFUkUgKFwibmFtZVwiIElMSUtFICclU29tZSUnIEFORCBcIm5hbWVcIiA8PiAnU29tZXRoaW5nJykgT1JERVIgQlkgXCJuYW1lXCIsIFwiaWRcIiBERVNDIExJTUlUIDUwIE9GRlNFVCAwYCk7XG4gIH1cblxuICBzaG91bGRGaW5kJGlsaWtlKCkge1xuICAgIGV4cGVjdChcbiAgICAgIHRoaXMuZGlhbGVjdC5maW5kKFVzZXIsIHtcbiAgICAgICAgJHByb2plY3Q6IFsnaWQnXSxcbiAgICAgICAgJGZpbHRlcjogeyBuYW1lOiB7ICRpbGlrZTogJ1NvbWUnIH0gfSxcbiAgICAgICAgJHNvcnQ6IHsgbmFtZTogMSwgaWQ6IC0xIH0sXG4gICAgICAgICRza2lwOiAwLFxuICAgICAgICAkbGltaXQ6IDUwLFxuICAgICAgfSlcbiAgICApLnRvQmUoYFNFTEVDVCBcImlkXCIgRlJPTSBcIlVzZXJcIiBXSEVSRSBcIm5hbWVcIiBJTElLRSAnU29tZScgT1JERVIgQlkgXCJuYW1lXCIsIFwiaWRcIiBERVNDIExJTUlUIDUwIE9GRlNFVCAwYCk7XG5cbiAgICBleHBlY3QoXG4gICAgICB0aGlzLmRpYWxlY3QuZmluZChVc2VyLCB7XG4gICAgICAgICRwcm9qZWN0OiB7IGlkOiB0cnVlIH0sXG4gICAgICAgICRmaWx0ZXI6IHsgbmFtZTogeyAkaWxpa2U6ICdTb21lJywgJG5lOiAnU29tZXRoaW5nJyB9IH0sXG4gICAgICAgICRzb3J0OiB7IG5hbWU6IDEsIGlkOiAtMSB9LFxuICAgICAgICAkc2tpcDogMCxcbiAgICAgICAgJGxpbWl0OiA1MCxcbiAgICAgIH0pXG4gICAgKS50b0JlKGBTRUxFQ1QgXCJpZFwiIEZST00gXCJVc2VyXCIgV0hFUkUgKFwibmFtZVwiIElMSUtFICdTb21lJyBBTkQgXCJuYW1lXCIgPD4gJ1NvbWV0aGluZycpIE9SREVSIEJZIFwibmFtZVwiLCBcImlkXCIgREVTQyBMSU1JVCA1MCBPRkZTRVQgMGApO1xuICB9XG5cbiAgc2hvdWxkRmluZCRyZWdleCgpIHtcbiAgICBleHBlY3QoXG4gICAgICB0aGlzLmRpYWxlY3QuZmluZChVc2VyLCB7XG4gICAgICAgICRwcm9qZWN0OiB7IGlkOiB0cnVlIH0sXG4gICAgICAgICRmaWx0ZXI6IHsgbmFtZTogeyAkcmVnZXg6ICdec29tZScgfSB9LFxuICAgICAgfSlcbiAgICApLnRvQmUoYFNFTEVDVCBcImlkXCIgRlJPTSBcIlVzZXJcIiBXSEVSRSBcIm5hbWVcIiB+ICdec29tZSdgKTtcbiAgfVxuXG4gIHNob3VsZEZpbmQkdGV4dCgpIHtcbiAgICBleHBlY3QoXG4gICAgICB0aGlzLmRpYWxlY3QuZmluZChJdGVtLCB7XG4gICAgICAgICRwcm9qZWN0OiB7IGlkOiB0cnVlIH0sXG4gICAgICAgICRmaWx0ZXI6IHsgJHRleHQ6IHsgJGZpZWxkczogWyduYW1lJywgJ2Rlc2NyaXB0aW9uJ10sICR2YWx1ZTogJ3NvbWUgdGV4dCcgfSwgY29kZTogJzEnIH0sXG4gICAgICAgICRsaW1pdDogMzAsXG4gICAgICB9KVxuICAgICkudG9CZShgU0VMRUNUIFwiaWRcIiBGUk9NIFwiSXRlbVwiIFdIRVJFIHRvX3RzdmVjdG9yKFwibmFtZVwiIHx8ICcgJyB8fCBcImRlc2NyaXB0aW9uXCIpIEBAIHRvX3RzcXVlcnkoJ3NvbWUgdGV4dCcpIEFORCBcImNvZGVcIiA9ICcxJyBMSU1JVCAzMGApO1xuXG4gICAgZXhwZWN0KFxuICAgICAgdGhpcy5kaWFsZWN0LmZpbmQoVXNlciwge1xuICAgICAgICAkcHJvamVjdDogeyBpZDogdHJ1ZSB9LFxuICAgICAgICAkZmlsdGVyOiB7XG4gICAgICAgICAgJHRleHQ6IHsgJGZpZWxkczogWyduYW1lJ10sICR2YWx1ZTogJ3NvbWV0aGluZycgfSxcbiAgICAgICAgICBuYW1lOiB7ICRuZTogJ290aGVyIHVud2FudGVkJyB9LFxuICAgICAgICAgIGNyZWF0b3JJZDogMSxcbiAgICAgICAgfSxcbiAgICAgICAgJGxpbWl0OiAxMCxcbiAgICAgIH0pXG4gICAgKS50b0JlKFxuICAgICAgYFNFTEVDVCBcImlkXCIgRlJPTSBcIlVzZXJcIiBXSEVSRSB0b190c3ZlY3RvcihcIm5hbWVcIikgQEAgdG9fdHNxdWVyeSgnc29tZXRoaW5nJykgQU5EIFwibmFtZVwiIDw+ICdvdGhlciB1bndhbnRlZCcgQU5EIFwiY3JlYXRvcklkXCIgPSAxIExJTUlUIDEwYFxuICAgICk7XG4gIH1cbn1cblxuY3JlYXRlU3BlYyhuZXcgUG9zdGdyZXNEaWFsZWN0U3BlYygpKTtcbiJdfQ==
@@ -1 +0,0 @@
1
- export {};
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const test_1 = require("@uql/core/test");
4
- const abstractSqlDialect_spec_1 = require("./abstractSqlDialect-spec");
5
- const sqliteDialect_1 = require("./sqliteDialect");
6
- class SqliteDialectSpec extends abstractSqlDialect_spec_1.AbstractSqlDialectSpec {
7
- constructor() {
8
- super(new sqliteDialect_1.SqliteDialect());
9
- }
10
- }
11
- (0, test_1.createSpec)(new SqliteDialectSpec());
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3FsaXRlRGlhbGVjdC5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RpYWxlY3Qvc3FsaXRlRGlhbGVjdC5zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEseUNBQXdEO0FBQ3hELHVFQUFtRTtBQUNuRSxtREFBZ0Q7QUFFaEQsTUFBTSxpQkFBa0IsU0FBUSxnREFBc0I7SUFDcEQ7UUFDRSxLQUFLLENBQUMsSUFBSSw2QkFBYSxFQUFFLENBQUMsQ0FBQztJQUM3QixDQUFDO0NBQ0Y7QUFFRCxJQUFBLGlCQUFVLEVBQUMsSUFBSSxpQkFBaUIsRUFBRSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVTcGVjLCBJdGVtLCBVc2VyIH0gZnJvbSAnQHVxbC9jb3JlL3Rlc3QnO1xuaW1wb3J0IHsgQWJzdHJhY3RTcWxEaWFsZWN0U3BlYyB9IGZyb20gJy4vYWJzdHJhY3RTcWxEaWFsZWN0LXNwZWMnO1xuaW1wb3J0IHsgU3FsaXRlRGlhbGVjdCB9IGZyb20gJy4vc3FsaXRlRGlhbGVjdCc7XG5cbmNsYXNzIFNxbGl0ZURpYWxlY3RTcGVjIGV4dGVuZHMgQWJzdHJhY3RTcWxEaWFsZWN0U3BlYyB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKG5ldyBTcWxpdGVEaWFsZWN0KCkpO1xuICB9XG59XG5cbmNyZWF0ZVNwZWMobmV3IFNxbGl0ZURpYWxlY3RTcGVjKCkpO1xuIl19
@@ -1 +0,0 @@
1
- export {};