@proteinjs/db 1.0.2

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 (165) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/LICENSE +21 -0
  3. package/dist/generated/index.d.ts +11 -0
  4. package/dist/generated/index.d.ts.map +1 -0
  5. package/dist/generated/index.js +59 -0
  6. package/dist/generated/index.js.map +1 -0
  7. package/dist/index.d.ts +21 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +37 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/src/Columns.d.ts +100 -0
  12. package/dist/src/Columns.d.ts.map +1 -0
  13. package/dist/src/Columns.js +381 -0
  14. package/dist/src/Columns.js.map +1 -0
  15. package/dist/src/Db.d.ts +46 -0
  16. package/dist/src/Db.d.ts.map +1 -0
  17. package/dist/src/Db.js +393 -0
  18. package/dist/src/Db.js.map +1 -0
  19. package/dist/src/MigrationRunner.d.ts +10 -0
  20. package/dist/src/MigrationRunner.d.ts.map +1 -0
  21. package/dist/src/MigrationRunner.js +124 -0
  22. package/dist/src/MigrationRunner.js.map +1 -0
  23. package/dist/src/QueryBuilderFactory.d.ts +8 -0
  24. package/dist/src/QueryBuilderFactory.d.ts.map +1 -0
  25. package/dist/src/QueryBuilderFactory.js +21 -0
  26. package/dist/src/QueryBuilderFactory.js.map +1 -0
  27. package/dist/src/Record.d.ts +38 -0
  28. package/dist/src/Record.d.ts.map +1 -0
  29. package/dist/src/Record.js +209 -0
  30. package/dist/src/Record.js.map +1 -0
  31. package/dist/src/RecordIterator.d.ts +13 -0
  32. package/dist/src/RecordIterator.d.ts.map +1 -0
  33. package/dist/src/RecordIterator.js +98 -0
  34. package/dist/src/RecordIterator.js.map +1 -0
  35. package/dist/src/StatementConfigFactory.d.ts +11 -0
  36. package/dist/src/StatementConfigFactory.d.ts.map +1 -0
  37. package/dist/src/StatementConfigFactory.js +31 -0
  38. package/dist/src/StatementConfigFactory.js.map +1 -0
  39. package/dist/src/Table.d.ts +98 -0
  40. package/dist/src/Table.d.ts.map +1 -0
  41. package/dist/src/Table.js +56 -0
  42. package/dist/src/Table.js.map +1 -0
  43. package/dist/src/auth/TableAuth.d.ts +29 -0
  44. package/dist/src/auth/TableAuth.d.ts.map +1 -0
  45. package/dist/src/auth/TableAuth.js +45 -0
  46. package/dist/src/auth/TableAuth.js.map +1 -0
  47. package/dist/src/auth/TableServiceAuth.d.ts +5 -0
  48. package/dist/src/auth/TableServiceAuth.d.ts.map +1 -0
  49. package/dist/src/auth/TableServiceAuth.js +37 -0
  50. package/dist/src/auth/TableServiceAuth.js.map +1 -0
  51. package/dist/src/opt/moment.d.ts +4 -0
  52. package/dist/src/opt/moment.d.ts.map +1 -0
  53. package/dist/src/opt/moment.js +9 -0
  54. package/dist/src/opt/moment.js.map +1 -0
  55. package/dist/src/reference/Reference.d.ts +26 -0
  56. package/dist/src/reference/Reference.d.ts.map +1 -0
  57. package/dist/src/reference/Reference.js +90 -0
  58. package/dist/src/reference/Reference.js.map +1 -0
  59. package/dist/src/reference/ReferenceArray.d.ts +29 -0
  60. package/dist/src/reference/ReferenceArray.d.ts.map +1 -0
  61. package/dist/src/reference/ReferenceArray.js +101 -0
  62. package/dist/src/reference/ReferenceArray.js.map +1 -0
  63. package/dist/src/schema/SchemaMetadata.d.ts +27 -0
  64. package/dist/src/schema/SchemaMetadata.d.ts.map +1 -0
  65. package/dist/src/schema/SchemaMetadata.js +227 -0
  66. package/dist/src/schema/SchemaMetadata.js.map +1 -0
  67. package/dist/src/schema/SchemaOperations.d.ts +40 -0
  68. package/dist/src/schema/SchemaOperations.d.ts.map +1 -0
  69. package/dist/src/schema/SchemaOperations.js +3 -0
  70. package/dist/src/schema/SchemaOperations.js.map +1 -0
  71. package/dist/src/schema/TableManager.d.ts +21 -0
  72. package/dist/src/schema/TableManager.d.ts.map +1 -0
  73. package/dist/src/schema/TableManager.js +254 -0
  74. package/dist/src/schema/TableManager.js.map +1 -0
  75. package/dist/src/serializers/GraphSerializer.d.ts +13 -0
  76. package/dist/src/serializers/GraphSerializer.d.ts.map +1 -0
  77. package/dist/src/serializers/GraphSerializer.js +21 -0
  78. package/dist/src/serializers/GraphSerializer.js.map +1 -0
  79. package/dist/src/serializers/QueryBuilderSerializer.d.ts +19 -0
  80. package/dist/src/serializers/QueryBuilderSerializer.d.ts.map +1 -0
  81. package/dist/src/serializers/QueryBuilderSerializer.js +32 -0
  82. package/dist/src/serializers/QueryBuilderSerializer.js.map +1 -0
  83. package/dist/src/serializers/ReferenceArraySerializer.d.ts +15 -0
  84. package/dist/src/serializers/ReferenceArraySerializer.d.ts.map +1 -0
  85. package/dist/src/serializers/ReferenceArraySerializer.js +23 -0
  86. package/dist/src/serializers/ReferenceArraySerializer.js.map +1 -0
  87. package/dist/src/serializers/ReferenceSerializer.d.ts +15 -0
  88. package/dist/src/serializers/ReferenceSerializer.d.ts.map +1 -0
  89. package/dist/src/serializers/ReferenceSerializer.js +23 -0
  90. package/dist/src/serializers/ReferenceSerializer.js.map +1 -0
  91. package/dist/src/serializers/TableSerializer.d.ts +13 -0
  92. package/dist/src/serializers/TableSerializer.d.ts.map +1 -0
  93. package/dist/src/serializers/TableSerializer.js +19 -0
  94. package/dist/src/serializers/TableSerializer.js.map +1 -0
  95. package/dist/src/services/DbService.d.ts +19 -0
  96. package/dist/src/services/DbService.d.ts.map +1 -0
  97. package/dist/src/services/DbService.js +6 -0
  98. package/dist/src/services/DbService.js.map +1 -0
  99. package/dist/src/services/MigrationRunnerService.d.ts +6 -0
  100. package/dist/src/services/MigrationRunnerService.d.ts.map +1 -0
  101. package/dist/src/services/MigrationRunnerService.js +6 -0
  102. package/dist/src/services/MigrationRunnerService.js.map +1 -0
  103. package/dist/src/source/SourceRecord.d.ts +44 -0
  104. package/dist/src/source/SourceRecord.d.ts.map +1 -0
  105. package/dist/src/source/SourceRecord.js +49 -0
  106. package/dist/src/source/SourceRecord.js.map +1 -0
  107. package/dist/src/source/SourceRecordLoader.d.ts +6 -0
  108. package/dist/src/source/SourceRecordLoader.d.ts.map +1 -0
  109. package/dist/src/source/SourceRecordLoader.js +156 -0
  110. package/dist/src/source/SourceRecordLoader.js.map +1 -0
  111. package/dist/src/source/SourceRecordRepo.d.ts +8 -0
  112. package/dist/src/source/SourceRecordRepo.d.ts.map +1 -0
  113. package/dist/src/source/SourceRecordRepo.js +20 -0
  114. package/dist/src/source/SourceRecordRepo.js.map +1 -0
  115. package/dist/src/tables/MigrationTable.d.ts +41 -0
  116. package/dist/src/tables/MigrationTable.d.ts.map +1 -0
  117. package/dist/src/tables/MigrationTable.js +86 -0
  118. package/dist/src/tables/MigrationTable.js.map +1 -0
  119. package/dist/src/tables/tables.d.ts +6 -0
  120. package/dist/src/tables/tables.d.ts.map +1 -0
  121. package/dist/src/tables/tables.js +8 -0
  122. package/dist/src/tables/tables.js.map +1 -0
  123. package/dist/test/CrudTests.d.ts +20 -0
  124. package/dist/test/CrudTests.d.ts.map +1 -0
  125. package/dist/test/CrudTests.js +251 -0
  126. package/dist/test/CrudTests.js.map +1 -0
  127. package/dist/test/TableManagerTests.d.ts +8 -0
  128. package/dist/test/TableManagerTests.d.ts.map +1 -0
  129. package/dist/test/TableManagerTests.js +687 -0
  130. package/dist/test/TableManagerTests.js.map +1 -0
  131. package/generated/index.ts +55 -0
  132. package/index.ts +25 -0
  133. package/jest.config.js +18 -0
  134. package/package.json +45 -0
  135. package/src/Columns.ts +257 -0
  136. package/src/Db.ts +195 -0
  137. package/src/MigrationRunner.ts +62 -0
  138. package/src/QueryBuilderFactory.ts +18 -0
  139. package/src/Record.ts +113 -0
  140. package/src/RecordIterator.ts +44 -0
  141. package/src/StatementConfigFactory.ts +36 -0
  142. package/src/Table.ts +124 -0
  143. package/src/auth/TableAuth.ts +60 -0
  144. package/src/auth/TableServiceAuth.ts +32 -0
  145. package/src/opt/moment.ts +4 -0
  146. package/src/reference/Reference.ts +45 -0
  147. package/src/reference/ReferenceArray.ts +56 -0
  148. package/src/schema/SchemaMetadata.ts +115 -0
  149. package/src/schema/SchemaOperations.ts +44 -0
  150. package/src/schema/TableManager.ts +198 -0
  151. package/src/serializers/GraphSerializer.ts +22 -0
  152. package/src/serializers/QueryBuilderSerializer.ts +39 -0
  153. package/src/serializers/ReferenceArraySerializer.ts +26 -0
  154. package/src/serializers/ReferenceSerializer.ts +26 -0
  155. package/src/serializers/TableSerializer.ts +20 -0
  156. package/src/services/DbService.ts +19 -0
  157. package/src/services/MigrationRunnerService.ts +7 -0
  158. package/src/source/SourceRecord.ts +75 -0
  159. package/src/source/SourceRecordLoader.ts +68 -0
  160. package/src/source/SourceRecordRepo.ts +17 -0
  161. package/src/tables/MigrationTable.ts +36 -0
  162. package/src/tables/tables.ts +6 -0
  163. package/test/CrudTests.ts +110 -0
  164. package/test/TableManagerTests.ts +382 -0
  165. package/tsconfig.json +23 -0
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getDbService = void 0;
4
+ var service_1 = require("@proteinjs/service");
5
+ exports.getDbService = (0, service_1.serviceFactory)('@proteinjs/db/DbService');
6
+ //# sourceMappingURL=DbService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DbService.js","sourceRoot":"","sources":["../../../src/services/DbService.ts"],"names":[],"mappings":";;;AAAA,8CAA6D;AAKhD,QAAA,YAAY,GAAG,IAAA,wBAAc,EAAY,yBAAyB,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { Service } from '@proteinjs/service';
2
+ export declare const getMigrationRunnerService: () => MigrationRunnerService;
3
+ export interface MigrationRunnerService extends Service {
4
+ runMigration(id: string): Promise<void>;
5
+ }
6
+ //# sourceMappingURL=MigrationRunnerService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MigrationRunnerService.d.ts","sourceRoot":"","sources":["../../../src/services/MigrationRunnerService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAkB,MAAM,oBAAoB,CAAC;AAE7D,eAAO,MAAM,yBAAyB,8BAAiF,CAAC;AAExH,MAAM,WAAW,sBAAuB,SAAQ,OAAO;IACrD,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getMigrationRunnerService = void 0;
4
+ var service_1 = require("@proteinjs/service");
5
+ exports.getMigrationRunnerService = (0, service_1.serviceFactory)('@proteinjs/db/MigrationRunnerService');
6
+ //# sourceMappingURL=MigrationRunnerService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MigrationRunnerService.js","sourceRoot":"","sources":["../../../src/services/MigrationRunnerService.ts"],"names":[],"mappings":";;;AAAA,8CAA6D;AAEhD,QAAA,yBAAyB,GAAG,IAAA,wBAAc,EAAyB,sCAAsC,CAAC,CAAC"}
@@ -0,0 +1,44 @@
1
+ import { Loadable } from '@proteinjs/reflection';
2
+ import { Columns, Table } from '../Table';
3
+ import { Record as DbRecord } from '../Record';
4
+ export declare const getSourceRecordLoaders: <T extends SourceRecord = SourceRecord>() => SourceRecordLoader<T>[];
5
+ export declare function getSourceRecordTables(): Table<any>[];
6
+ export declare function isSourceRecordTable(table: Table<any>): boolean;
7
+ export interface SourceRecord extends DbRecord {
8
+ isLoadedFromSource?: boolean;
9
+ }
10
+ /**
11
+ * Wrapper function to add default Record and SourceRecord columns to your table's columns.
12
+ *
13
+ * Note: using this requires an explicit dependency on moment@2.29.4 in your package (since transient dependencies are brittle by typescript's standards)
14
+ *
15
+ * @param columns your columns
16
+ * @param hideFromUi if true, source record columns are hidden from RecordTable and RecordForm
17
+ * @returns recordColumns & sourceRecordColumns & your columns
18
+ */
19
+ export declare function withSourceRecordColumns<T extends SourceRecord>(columns: Columns<Omit<T, keyof SourceRecord>>, hideFromUi?: boolean): Columns<SourceRecord> & Columns<Omit<T, keyof SourceRecord>>;
20
+ type InferRecordFromTable<T> = T extends Table<infer R> ? R : never;
21
+ type InferRecordWithoutTimestamps<T> = Omit<InferRecordFromTable<T>, 'created' | 'updated'>;
22
+ type RequiredProperties<T> = Pick<T, {
23
+ [K in keyof T]: T extends Record<K, T[K]> ? K : never;
24
+ }[keyof T]>;
25
+ type OptionalProperties<T> = Pick<T, {
26
+ [K in keyof T]: T extends Record<K, T[K]> ? never : K;
27
+ }[keyof T]>;
28
+ /**
29
+ * Use this to load a record from source into the db.
30
+ *
31
+ * On Db.init, the record will be inserted if it doesn't exist, and updated if it does exist to mirror what is in source.
32
+ *
33
+ * If the SourceRecordLoader is deleted from source, the record will be deleted from the db on server startup. This will also be the behavior if id is changed - the record with the old id will be deleted.
34
+ */
35
+ export interface SourceRecordLoader<T extends SourceRecord> extends Loadable {
36
+ table: Table<T>;
37
+ record: {
38
+ [P in keyof RequiredProperties<InferRecordWithoutTimestamps<Table<T>>>]: RequiredProperties<InferRecordWithoutTimestamps<Table<T>>>[P];
39
+ } & {
40
+ [P in keyof OptionalProperties<InferRecordWithoutTimestamps<Table<T>>>]?: OptionalProperties<InferRecordWithoutTimestamps<Table<T>>>[P];
41
+ };
42
+ }
43
+ export {};
44
+ //# sourceMappingURL=SourceRecord.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SourceRecord.d.ts","sourceRoot":"","sources":["../../../src/source/SourceRecord.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAoB,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAa,MAAM,UAAU,CAAC;AACrD,OAAO,EAAE,MAAM,IAAI,QAAQ,EAAqB,MAAM,WAAW,CAAC;AAGlE,eAAO,MAAM,sBAAsB,sEAAyI,CAAC;AAE7K,wBAAgB,qBAAqB,iBASpC;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,WAQpD;AAED,MAAM,WAAW,YAAa,SAAQ,QAAQ;IAC5C,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAQD;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,YAAY,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,YAAY,CAAC,CAAC,CAEjM;AAED,KAAK,oBAAoB,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AACpE,KAAK,4BAA4B,CAAC,CAAC,IAAI,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,SAAS,GAAC,SAAS,CAAC,CAAC;AAC1F,KAAK,kBAAkB,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE;KAClC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;CACtD,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACZ,KAAK,kBAAkB,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE;KAClC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC;CACtD,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAEZ;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB,CAAC,CAAC,SAAS,YAAY,CAAE,SAAQ,QAAQ;IAC1E,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAChB,MAAM,EAAE;SACL,CAAC,IAAI,MAAM,kBAAkB,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACvI,GAAG;SACD,CAAC,IAAI,MAAM,kBAAkB,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACxI,CAAA;CACF"}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.withSourceRecordColumns = exports.isSourceRecordTable = exports.getSourceRecordTables = exports.getSourceRecordLoaders = void 0;
4
+ var reflection_1 = require("@proteinjs/reflection");
5
+ var Table_1 = require("../Table");
6
+ var Record_1 = require("../Record");
7
+ var Columns_1 = require("../Columns");
8
+ var getSourceRecordLoaders = function () { return reflection_1.SourceRepository.get().objects('@proteinjs/db/SourceRecordLoader'); };
9
+ exports.getSourceRecordLoaders = getSourceRecordLoaders;
10
+ function getSourceRecordTables() {
11
+ var tables = (0, Table_1.getTables)();
12
+ var sourceRecordTables = [];
13
+ for (var _i = 0, tables_1 = tables; _i < tables_1.length; _i++) {
14
+ var table = tables_1[_i];
15
+ if (isSourceRecordTable(table))
16
+ sourceRecordTables.push(table);
17
+ }
18
+ return sourceRecordTables;
19
+ }
20
+ exports.getSourceRecordTables = getSourceRecordTables;
21
+ function isSourceRecordTable(table) {
22
+ for (var columnPropertyName in table.columns) {
23
+ var column = table.columns[columnPropertyName];
24
+ if (column.name == getSourceRecordColumns().isLoadedFromSource.name)
25
+ return true;
26
+ }
27
+ return false;
28
+ }
29
+ exports.isSourceRecordTable = isSourceRecordTable;
30
+ var getSourceRecordColumns = function (hideFromUi) {
31
+ if (hideFromUi === void 0) { hideFromUi = true; }
32
+ return {
33
+ isLoadedFromSource: new Columns_1.BooleanColumn('is_loaded_from_source', { ui: { hidden: hideFromUi } }),
34
+ };
35
+ };
36
+ /**
37
+ * Wrapper function to add default Record and SourceRecord columns to your table's columns.
38
+ *
39
+ * Note: using this requires an explicit dependency on moment@2.29.4 in your package (since transient dependencies are brittle by typescript's standards)
40
+ *
41
+ * @param columns your columns
42
+ * @param hideFromUi if true, source record columns are hidden from RecordTable and RecordForm
43
+ * @returns recordColumns & sourceRecordColumns & your columns
44
+ */
45
+ function withSourceRecordColumns(columns, hideFromUi) {
46
+ return Object.assign(Object.assign({}, getSourceRecordColumns(hideFromUi)), (0, Record_1.withRecordColumns)(columns));
47
+ }
48
+ exports.withSourceRecordColumns = withSourceRecordColumns;
49
+ //# sourceMappingURL=SourceRecord.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SourceRecord.js","sourceRoot":"","sources":["../../../src/source/SourceRecord.ts"],"names":[],"mappings":";;;AAAA,oDAAmE;AACnE,kCAAqD;AACrD,oCAAkE;AAClE,sCAA2C;AAEpC,IAAM,sBAAsB,GAAG,cAA6C,OAAA,6BAAgB,CAAC,GAAG,EAAE,CAAC,OAAO,CAAwB,kCAAkC,CAAC,EAAzF,CAAyF,CAAC;AAAhK,QAAA,sBAAsB,0BAA0I;AAE7K,SAAgB,qBAAqB;IACnC,IAAM,MAAM,GAAG,IAAA,iBAAS,GAAE,CAAC;IAC3B,IAAM,kBAAkB,GAAiB,EAAE,CAAC;IAC5C,KAAkB,UAAM,EAAN,iBAAM,EAAN,oBAAM,EAAN,IAAM,EAAE;QAArB,IAAI,KAAK,eAAA;QACZ,IAAI,mBAAmB,CAAC,KAAK,CAAC;YAC5B,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAClC;IAED,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AATD,sDASC;AAED,SAAgB,mBAAmB,CAAC,KAAiB;IACnD,KAAK,IAAI,kBAAkB,IAAI,KAAK,CAAC,OAAO,EAAE;QAC5C,IAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QACjD,IAAI,MAAM,CAAC,IAAI,IAAI,sBAAsB,EAAE,CAAC,kBAAkB,CAAC,IAAI;YACjE,OAAO,IAAI,CAAC;KACf;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AARD,kDAQC;AAMD,IAAM,sBAAsB,GAAG,UAAC,UAAiB;IAAjB,2BAAA,EAAA,iBAAiB;IAC/C,OAAO;QACL,kBAAkB,EAAE,IAAI,uBAAa,CAAC,uBAAuB,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC;KAC/F,CAAC;AACJ,CAAC,CAAA;AAED;;;;;;;;GAQG;AACH,SAAgB,uBAAuB,CAAyB,OAA6C,EAAE,UAAoB;IACjI,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,sBAAsB,CAAC,UAAU,CAAC,CAAC,EAAE,IAAA,0BAAiB,EAAW,OAAO,CAAQ,CAAC,CAAC;AAC3H,CAAC;AAFD,0DAEC"}
@@ -0,0 +1,6 @@
1
+ export declare class SourceRecordLoader {
2
+ private logger;
3
+ load(): Promise<void>;
4
+ private getSourceRecordsMap;
5
+ }
6
+ //# sourceMappingURL=SourceRecordLoader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SourceRecordLoader.d.ts","sourceRoot":"","sources":["../../../src/source/SourceRecordLoader.ts"],"names":[],"mappings":"AASA,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAqC;IAE7C,IAAI;YAoCI,mBAAmB;CAmBlC"}
@@ -0,0 +1,156 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
49
+ Object.defineProperty(exports, "__esModule", { value: true });
50
+ exports.SourceRecordLoader = void 0;
51
+ var util_1 = require("@proteinjs/util");
52
+ var db_query_1 = require("@proteinjs/db-query");
53
+ var SourceRecord_1 = require("./SourceRecord");
54
+ var Db_1 = require("../Db");
55
+ var SourceRecordRepo_1 = require("./SourceRecordRepo");
56
+ var SourceRecordLoader = /** @class */ (function () {
57
+ function SourceRecordLoader() {
58
+ this.logger = new util_1.Logger(this.constructor.name);
59
+ }
60
+ SourceRecordLoader.prototype.load = function () {
61
+ return __awaiter(this, void 0, void 0, function () {
62
+ var sourceRecordsMap, db, _a, _b, _c, _i, tableName, insertCount, updateCount, deleteCount, table, sourceRecordIds, qb, sourceRecords, _d, sourceRecords_1, sourceRecord, count, dbSourceRecord;
63
+ return __generator(this, function (_e) {
64
+ switch (_e.label) {
65
+ case 0: return [4 /*yield*/, this.getSourceRecordsMap()];
66
+ case 1:
67
+ sourceRecordsMap = _e.sent();
68
+ db = (0, Db_1.getSystemDb)();
69
+ _a = sourceRecordsMap;
70
+ _b = [];
71
+ for (_c in _a)
72
+ _b.push(_c);
73
+ _i = 0;
74
+ _e.label = 2;
75
+ case 2:
76
+ if (!(_i < _b.length)) return [3 /*break*/, 13];
77
+ _c = _b[_i];
78
+ if (!(_c in _a)) return [3 /*break*/, 12];
79
+ tableName = _c;
80
+ insertCount = 0;
81
+ updateCount = 0;
82
+ deleteCount = 0;
83
+ table = sourceRecordsMap[tableName].table;
84
+ sourceRecordIds = sourceRecordsMap[tableName].recordIds;
85
+ if (!!table.sourceRecordOptions.doNotDeleteSourceRecordsFromDb) return [3 /*break*/, 4];
86
+ qb = db_query_1.QueryBuilder.fromObject({ isLoadedFromSource: true }, table.name);
87
+ if (sourceRecordIds.length > 0)
88
+ qb.condition({ field: 'id', operator: 'NOT IN', value: sourceRecordIds });
89
+ return [4 /*yield*/, db.delete(table, qb)];
90
+ case 3:
91
+ deleteCount = _e.sent();
92
+ _e.label = 4;
93
+ case 4:
94
+ sourceRecords = sourceRecordsMap[tableName].records;
95
+ _d = 0, sourceRecords_1 = sourceRecords;
96
+ _e.label = 5;
97
+ case 5:
98
+ if (!(_d < sourceRecords_1.length)) return [3 /*break*/, 11];
99
+ sourceRecord = sourceRecords_1[_d];
100
+ sourceRecord.isLoadedFromSource = true;
101
+ return [4 /*yield*/, db.update(table, sourceRecord)];
102
+ case 6:
103
+ count = _e.sent();
104
+ if (!(count > 0)) return [3 /*break*/, 7];
105
+ updateCount += count;
106
+ return [3 /*break*/, 9];
107
+ case 7: return [4 /*yield*/, db.insert(table, sourceRecord)];
108
+ case 8:
109
+ dbSourceRecord = _e.sent();
110
+ sourceRecord = __assign(__assign({}, sourceRecord), dbSourceRecord);
111
+ insertCount += 1;
112
+ _e.label = 9;
113
+ case 9:
114
+ new SourceRecordRepo_1.SourceRecordRepo().loadSourceRecord(table.name, sourceRecord);
115
+ _e.label = 10;
116
+ case 10:
117
+ _d++;
118
+ return [3 /*break*/, 5];
119
+ case 11:
120
+ this.logger.info("(".concat(table.name, ") Loaded ").concat(sourceRecords.length, " ").concat(sourceRecords.length == 1 ? 'record' : 'records', " from source (inserts: ").concat(insertCount, ", updates: ").concat(updateCount, ", deletes: ").concat(deleteCount, ")"));
121
+ _e.label = 12;
122
+ case 12:
123
+ _i++;
124
+ return [3 /*break*/, 2];
125
+ case 13: return [2 /*return*/];
126
+ }
127
+ });
128
+ });
129
+ };
130
+ SourceRecordLoader.prototype.getSourceRecordsMap = function () {
131
+ return __awaiter(this, void 0, void 0, function () {
132
+ var sourceRecordsMap, sourceRecordTables, _i, sourceRecordTables_1, sourceRecordTable, sourceRecordLoaders, _a, sourceRecordLoaders_1, sourceRecordLoader;
133
+ return __generator(this, function (_b) {
134
+ sourceRecordsMap = {};
135
+ sourceRecordTables = (0, SourceRecord_1.getSourceRecordTables)();
136
+ for (_i = 0, sourceRecordTables_1 = sourceRecordTables; _i < sourceRecordTables_1.length; _i++) {
137
+ sourceRecordTable = sourceRecordTables_1[_i];
138
+ if (!sourceRecordsMap[sourceRecordTable.name])
139
+ sourceRecordsMap[sourceRecordTable.name] = { table: sourceRecordTable, records: [], recordIds: [] };
140
+ }
141
+ sourceRecordLoaders = (0, SourceRecord_1.getSourceRecordLoaders)();
142
+ for (_a = 0, sourceRecordLoaders_1 = sourceRecordLoaders; _a < sourceRecordLoaders_1.length; _a++) {
143
+ sourceRecordLoader = sourceRecordLoaders_1[_a];
144
+ if (!sourceRecordsMap[sourceRecordLoader.table.name])
145
+ sourceRecordsMap[sourceRecordLoader.table.name] = { table: sourceRecordLoader.table, records: [], recordIds: [] };
146
+ sourceRecordsMap[sourceRecordLoader.table.name].records.push(sourceRecordLoader.record);
147
+ sourceRecordsMap[sourceRecordLoader.table.name].recordIds.push(sourceRecordLoader.record.id);
148
+ }
149
+ return [2 /*return*/, sourceRecordsMap];
150
+ });
151
+ });
152
+ };
153
+ return SourceRecordLoader;
154
+ }());
155
+ exports.SourceRecordLoader = SourceRecordLoader;
156
+ //# sourceMappingURL=SourceRecordLoader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SourceRecordLoader.js","sourceRoot":"","sources":["../../../src/source/SourceRecordLoader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { SourceRecord } from './SourceRecord';
2
+ export declare class SourceRecordRepo {
3
+ private static SOURCE_RECORD_MAP;
4
+ private getKey;
5
+ loadSourceRecord(tableName: string, sourceRecord: SourceRecord): void;
6
+ getSourceRecord<T extends SourceRecord = SourceRecord>(tableName: string, sourceRecordId: string): T | undefined;
7
+ }
8
+ //# sourceMappingURL=SourceRecordRepo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SourceRecordRepo.d.ts","sourceRoot":"","sources":["../../../src/source/SourceRecordRepo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAqC;IAErE,OAAO,CAAC,MAAM;IAId,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,GAAG,IAAI;IAIrE,eAAe,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,CAAC,GAAC,SAAS;CAG/G"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SourceRecordRepo = void 0;
4
+ var SourceRecordRepo = /** @class */ (function () {
5
+ function SourceRecordRepo() {
6
+ }
7
+ SourceRecordRepo.prototype.getKey = function (tableName, recordId) {
8
+ return "".concat(tableName, ":").concat(recordId);
9
+ };
10
+ SourceRecordRepo.prototype.loadSourceRecord = function (tableName, sourceRecord) {
11
+ SourceRecordRepo.SOURCE_RECORD_MAP[this.getKey(tableName, sourceRecord.id)] = sourceRecord;
12
+ };
13
+ SourceRecordRepo.prototype.getSourceRecord = function (tableName, sourceRecordId) {
14
+ return SourceRecordRepo.SOURCE_RECORD_MAP[this.getKey(tableName, sourceRecordId)];
15
+ };
16
+ SourceRecordRepo.SOURCE_RECORD_MAP = {};
17
+ return SourceRecordRepo;
18
+ }());
19
+ exports.SourceRecordRepo = SourceRecordRepo;
20
+ //# sourceMappingURL=SourceRecordRepo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SourceRecordRepo.js","sourceRoot":"","sources":["../../../src/source/SourceRecordRepo.ts"],"names":[],"mappings":";;;AAEA;IAAA;IAcA,CAAC;IAXS,iCAAM,GAAd,UAAe,SAAiB,EAAE,QAAgB;QAChD,OAAO,UAAG,SAAS,cAAI,QAAQ,CAAE,CAAC;IACpC,CAAC;IAED,2CAAgB,GAAhB,UAAiB,SAAiB,EAAE,YAA0B;QAC5D,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC,GAAG,YAAY,CAAC;IAC7F,CAAC;IAED,0CAAe,GAAf,UAAuD,SAAiB,EAAE,cAAsB;QAC9F,OAAO,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,cAAc,CAAC,CAAM,CAAC;IACzF,CAAC;IAZc,kCAAiB,GAAkC,EAAE,CAAC;IAavE,uBAAC;CAAA,AAdD,IAcC;AAdY,4CAAgB"}
@@ -0,0 +1,41 @@
1
+ import { Moment } from '../opt/moment';
2
+ import { Table } from '../Table';
3
+ import { SourceRecord } from '../source/SourceRecord';
4
+ export interface Migration extends SourceRecord {
5
+ description: string;
6
+ status?: 'proposed' | 'running' | 'success' | 'failure';
7
+ failureMessage?: string;
8
+ failureStack?: string;
9
+ startTime?: Moment;
10
+ endTime?: Moment;
11
+ duration?: string;
12
+ output?: any;
13
+ run: () => Promise<any | void>;
14
+ }
15
+ export declare class MigrationTable extends Table<Migration> {
16
+ name: string;
17
+ columns: {
18
+ id: import("../Table").Column<string, any>;
19
+ created: import("../Table").Column<Moment, any>;
20
+ updated: import("../Table").Column<Moment, any>;
21
+ isLoadedFromSource: import("../Table").Column<boolean | undefined, any>;
22
+ } & {} & {
23
+ description: import("../Table").Column<string, any>;
24
+ status: import("../Table").Column<"proposed" | "running" | "success" | "failure" | undefined, any>;
25
+ failureMessage: import("../Table").Column<string | undefined, any>;
26
+ failureStack: import("../Table").Column<string | undefined, any>;
27
+ startTime: import("../Table").Column<Moment | undefined, any>;
28
+ endTime: import("../Table").Column<Moment | undefined, any>;
29
+ duration: import("../Table").Column<string | undefined, any>;
30
+ output: import("../Table").Column<any, any>;
31
+ } & {
32
+ output?: import("../Table").Column<any, any> | undefined;
33
+ };
34
+ sourceRecordOptions: {
35
+ doNotDeleteSourceRecordsFromDb: boolean;
36
+ ui: {
37
+ hideColumns: boolean;
38
+ };
39
+ };
40
+ }
41
+ //# sourceMappingURL=MigrationTable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MigrationTable.d.ts","sourceRoot":"","sources":["../../../src/tables/MigrationTable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,YAAY,EAA2B,MAAM,wBAAwB,CAAC;AAE/E,MAAM,WAAW,SAAU,SAAQ,YAAY;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,UAAU,GAAC,SAAS,GAAC,SAAS,GAAC,SAAS,CAAC;IAClD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,GAAG,EAAE,MAAM,OAAO,CAAC,GAAG,GAAC,IAAI,CAAC,CAAC;CAC9B;AAED,qBAAa,cAAe,SAAQ,KAAK,CAAC,SAAS,CAAC;IAC3C,IAAI,SAAe;IACpB,OAAO;;;;;;;;;;;;;;;;MASX;IACK,mBAAmB;;;;;MAKxB;CACH"}
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
18
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
19
+ return new (P || (P = Promise))(function (resolve, reject) {
20
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
21
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
22
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
23
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
24
+ });
25
+ };
26
+ var __generator = (this && this.__generator) || function (thisArg, body) {
27
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
28
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
29
+ function verb(n) { return function (v) { return step([n, v]); }; }
30
+ function step(op) {
31
+ if (f) throw new TypeError("Generator is already executing.");
32
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
33
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
34
+ if (y = 0, t) op = [op[0] & 2, t.value];
35
+ switch (op[0]) {
36
+ case 0: case 1: t = op; break;
37
+ case 4: _.label++; return { value: op[1], done: false };
38
+ case 5: _.label++; y = op[1]; op = [0]; continue;
39
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
40
+ default:
41
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
42
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
43
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
44
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
45
+ if (t[2]) _.ops.pop();
46
+ _.trys.pop(); continue;
47
+ }
48
+ op = body.call(thisArg, _);
49
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
50
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
51
+ }
52
+ };
53
+ Object.defineProperty(exports, "__esModule", { value: true });
54
+ exports.MigrationTable = void 0;
55
+ var Columns_1 = require("../Columns");
56
+ var Table_1 = require("../Table");
57
+ var SourceRecord_1 = require("../source/SourceRecord");
58
+ var MigrationTable = /** @class */ (function (_super) {
59
+ __extends(MigrationTable, _super);
60
+ function MigrationTable() {
61
+ var _this = _super !== null && _super.apply(this, arguments) || this;
62
+ _this.name = 'migration';
63
+ _this.columns = (0, SourceRecord_1.withSourceRecordColumns)({
64
+ description: new Columns_1.StringColumn('description', {}, 4000),
65
+ status: new Columns_1.StringColumn('status', { defaultValue: function () { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
66
+ return [2 /*return*/, 'proposed'];
67
+ }); }); } }),
68
+ failureMessage: new Columns_1.StringColumn('failure_message', {}, 4000),
69
+ failureStack: new Columns_1.StringColumn('failure_stack', {}, 'MAX'),
70
+ startTime: new Columns_1.DateTimeColumn('start_time'),
71
+ endTime: new Columns_1.DateTimeColumn('end_time'),
72
+ duration: new Columns_1.StringColumn('duration'),
73
+ output: new Columns_1.ObjectColumn('output'),
74
+ });
75
+ _this.sourceRecordOptions = {
76
+ doNotDeleteSourceRecordsFromDb: true,
77
+ ui: {
78
+ hideColumns: true,
79
+ },
80
+ };
81
+ return _this;
82
+ }
83
+ return MigrationTable;
84
+ }(Table_1.Table));
85
+ exports.MigrationTable = MigrationTable;
86
+ //# sourceMappingURL=MigrationTable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MigrationTable.js","sourceRoot":"","sources":["../../../src/tables/MigrationTable.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,sCAAwE;AACxE,kCAAiC;AACjC,uDAA+E;AAc/E;IAAoC,kCAAgB;IAApD;QAAA,qEAkBC;QAjBQ,UAAI,GAAG,WAAW,CAAC;QACpB,aAAO,GAAG,IAAA,sCAAuB,EAAY;YACjD,WAAW,EAAE,IAAI,sBAAY,CAAC,aAAa,EAAE,EAAE,EAAE,IAAI,CAAC;YACtD,MAAM,EAAE,IAAI,sBAAY,CAAC,QAAQ,EAAE,EAAE,YAAY,EAAE;oBAAY,sBAAA,UAAU,EAAA;yBAAA,EAAE,CAAC;YAC5E,cAAc,EAAE,IAAI,sBAAY,CAAC,iBAAiB,EAAE,EAAE,EAAE,IAAI,CAAC;YAC7D,YAAY,EAAE,IAAI,sBAAY,CAAC,eAAe,EAAE,EAAE,EAAE,KAAK,CAAC;YAC1D,SAAS,EAAE,IAAI,wBAAc,CAAC,YAAY,CAAC;YAC3C,OAAO,EAAE,IAAI,wBAAc,CAAC,UAAU,CAAC;YACvC,QAAQ,EAAE,IAAI,sBAAY,CAAC,UAAU,CAAC;YACtC,MAAM,EAAE,IAAI,sBAAY,CAAC,QAAQ,CAAC;SACpC,CAAC,CAAC;QACK,yBAAmB,GAAG;YAC3B,8BAA8B,EAAE,IAAI;YACpC,EAAE,EAAE;gBACF,WAAW,EAAE,IAAI;aAClB;SACF,CAAC;;IACJ,CAAC;IAAD,qBAAC;AAAD,CAAC,AAlBD,CAAoC,aAAK,GAkBxC;AAlBY,wCAAc"}
@@ -0,0 +1,6 @@
1
+ import { Table } from '../Table';
2
+ import { Migration } from './MigrationTable';
3
+ export declare const tables: {
4
+ Migration: Table<Migration>;
5
+ };
6
+ //# sourceMappingURL=tables.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tables.d.ts","sourceRoot":"","sources":["../../../src/tables/tables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,SAAS,EAAkB,MAAM,kBAAkB,CAAC;AAE7D,eAAO,MAAM,MAAM;;CAElB,CAAA"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.tables = void 0;
4
+ var MigrationTable_1 = require("./MigrationTable");
5
+ exports.tables = {
6
+ Migration: new MigrationTable_1.MigrationTable(),
7
+ };
8
+ //# sourceMappingURL=tables.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tables.js","sourceRoot":"","sources":["../../../src/tables/tables.ts"],"names":[],"mappings":";;;AACA,mDAA6D;AAEhD,QAAA,MAAM,GAAG;IACpB,SAAS,EAAE,IAAI,+BAAc,EAAsB;CACpD,CAAA"}
@@ -0,0 +1,20 @@
1
+ import { DbDriver } from '../src/Db';
2
+ import { Record } from '../src/Record';
3
+ import { Table } from '../src/Table';
4
+ export interface Employee extends Record {
5
+ name: string;
6
+ department?: string;
7
+ }
8
+ export declare class EmployeeTable extends Table<Employee> {
9
+ name: string;
10
+ columns: {
11
+ id: import("../src/Table").Column<string, any>;
12
+ created: import("../src/Table").Column<import("moment").Moment, any>;
13
+ updated: import("../src/Table").Column<import("moment").Moment, any>;
14
+ } & {} & {
15
+ name: import("../src/Table").Column<string, any>;
16
+ department: import("../src/Table").Column<string | undefined, any>;
17
+ } & {};
18
+ }
19
+ export declare const crudTests: (driver: DbDriver, dropTable: (table: Table<any>) => Promise<void>) => () => void;
20
+ //# sourceMappingURL=CrudTests.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CrudTests.d.ts","sourceRoot":"","sources":["../../test/CrudTests.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAM,MAAM,WAAW,CAAC;AACzC,OAAO,EAAqB,MAAM,EAAE,MAAM,eAAe,CAAC;AAE1D,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAErC,MAAM,WAAW,QAAS,SAAQ,MAAM;IACvC,IAAI,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,aAAc,SAAQ,KAAK,CAAC,QAAQ,CAAC;IACjD,IAAI,SAAsB;IAC1B,OAAO;;;;;;;WAGJ;CACH;AAED,eAAO,MAAM,SAAS,WACZ,QAAQ,qBACG,MAAM,GAAG,CAAC,KAAK,QAAQ,IAAI,CAAC,eAwFhD,CAAA"}