@proteinjs/db 1.48.0 → 1.49.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/.eslintrc.js +1 -1
  2. package/.prettierignore +2 -1
  3. package/CHANGELOG.md +20 -0
  4. package/dist/generated/index.d.ts.map +1 -1
  5. package/dist/generated/index.js +1 -3
  6. package/dist/generated/index.js.map +1 -1
  7. package/dist/generated/test/index.d.ts.map +1 -1
  8. package/dist/generated/test/index.js +1 -3
  9. package/dist/generated/test/index.js.map +1 -1
  10. package/dist/index.d.ts +1 -1
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +4 -5
  13. package/dist/index.js.map +1 -1
  14. package/dist/src/Db.js +2 -2
  15. package/dist/src/Db.js.map +1 -1
  16. package/dist/src/MigrationRunner.js +2 -2
  17. package/dist/src/MigrationRunner.js.map +1 -1
  18. package/dist/src/Table.d.ts +16 -1
  19. package/dist/src/Table.d.ts.map +1 -1
  20. package/dist/src/Table.js +14 -0
  21. package/dist/src/Table.js.map +1 -1
  22. package/dist/src/auth/TableAuth.d.ts +4 -0
  23. package/dist/src/auth/TableAuth.d.ts.map +1 -1
  24. package/dist/src/auth/TableAuth.js +12 -0
  25. package/dist/src/auth/TableAuth.js.map +1 -1
  26. package/dist/src/auth/TableServiceAuth.d.ts.map +1 -1
  27. package/dist/src/auth/TableServiceAuth.js +5 -0
  28. package/dist/src/auth/TableServiceAuth.js.map +1 -1
  29. package/dist/src/schema/SchemaOperations.d.ts +4 -3
  30. package/dist/src/schema/SchemaOperations.d.ts.map +1 -1
  31. package/dist/src/schema/TableManager.d.ts +24 -6
  32. package/dist/src/schema/TableManager.d.ts.map +1 -1
  33. package/dist/src/schema/TableManager.js +93 -26
  34. package/dist/src/schema/TableManager.js.map +1 -1
  35. package/dist/src/source/SourceRecord.d.ts +2 -2
  36. package/dist/src/source/{SourceRecordLoader.d.ts → SourceRecordSyncRunner.d.ts} +15 -7
  37. package/dist/src/source/SourceRecordSyncRunner.d.ts.map +1 -0
  38. package/dist/src/source/{SourceRecordLoader.js → SourceRecordSyncRunner.js} +46 -31
  39. package/dist/src/source/SourceRecordSyncRunner.js.map +1 -0
  40. package/dist/src/tables/MigrationTable.d.ts +10 -2
  41. package/dist/src/tables/MigrationTable.d.ts.map +1 -1
  42. package/dist/src/tables/MigrationTable.js +12 -4
  43. package/dist/src/tables/MigrationTable.js.map +1 -1
  44. package/dist/test/DurableTable.test.d.ts +2 -0
  45. package/dist/test/DurableTable.test.d.ts.map +1 -0
  46. package/dist/test/DurableTable.test.js +172 -0
  47. package/dist/test/DurableTable.test.js.map +1 -0
  48. package/dist/test/MigrationAuth.test.js +12 -9
  49. package/dist/test/MigrationAuth.test.js.map +1 -1
  50. package/dist/test/SchemaReconcileLines.test.d.ts +2 -0
  51. package/dist/test/SchemaReconcileLines.test.d.ts.map +1 -0
  52. package/dist/test/SchemaReconcileLines.test.js +176 -0
  53. package/dist/test/SchemaReconcileLines.test.js.map +1 -0
  54. package/dist/test/SourceRecordLoaderQualifiedName.test.d.ts +2 -0
  55. package/dist/test/SourceRecordLoaderQualifiedName.test.d.ts.map +1 -0
  56. package/dist/test/SourceRecordLoaderQualifiedName.test.js +79 -0
  57. package/dist/test/SourceRecordLoaderQualifiedName.test.js.map +1 -0
  58. package/dist/test/SourceRecordSyncRunner.test.d.ts +2 -0
  59. package/dist/test/SourceRecordSyncRunner.test.d.ts.map +1 -0
  60. package/dist/test/{SourceRecordLoader.test.js → SourceRecordSyncRunner.test.js} +63 -7
  61. package/dist/test/SourceRecordSyncRunner.test.js.map +1 -0
  62. package/dist/test/TableManagerCreateOrder.test.d.ts +2 -0
  63. package/dist/test/TableManagerCreateOrder.test.d.ts.map +1 -0
  64. package/dist/test/TableManagerCreateOrder.test.js +66 -0
  65. package/dist/test/TableManagerCreateOrder.test.js.map +1 -0
  66. package/dist/test/reusable/SourceRecordSyncTests.d.ts.map +1 -1
  67. package/dist/test/reusable/SourceRecordSyncTests.js +3 -5
  68. package/dist/test/reusable/SourceRecordSyncTests.js.map +1 -1
  69. package/dist/test/reusable/TableManagerTests.d.ts.map +1 -1
  70. package/dist/test/reusable/TableManagerTests.js +180 -0
  71. package/dist/test/reusable/TableManagerTests.js.map +1 -1
  72. package/generated/index.ts +20 -19
  73. package/generated/test/index.ts +54 -53
  74. package/index.ts +3 -4
  75. package/package.json +4 -4
  76. package/src/Db.ts +2 -2
  77. package/src/MigrationRunner.ts +2 -2
  78. package/src/Table.ts +16 -1
  79. package/src/auth/TableAuth.ts +14 -0
  80. package/src/auth/TableServiceAuth.ts +6 -1
  81. package/src/schema/SchemaOperations.ts +4 -3
  82. package/src/schema/TableManager.ts +84 -26
  83. package/src/source/SourceRecord.ts +2 -2
  84. package/src/source/{SourceRecordLoader.ts → SourceRecordSyncRunner.ts} +31 -13
  85. package/src/tables/MigrationTable.ts +12 -4
  86. package/test/DurableTable.test.ts +156 -0
  87. package/test/MigrationAuth.test.ts +7 -5
  88. package/test/SchemaReconcileLines.test.ts +127 -0
  89. package/test/SourceRecordLoaderQualifiedName.test.ts +63 -0
  90. package/test/{SourceRecordLoader.test.ts → SourceRecordSyncRunner.test.ts} +75 -8
  91. package/test/TableManagerCreateOrder.test.ts +78 -0
  92. package/test/reusable/SourceRecordSyncTests.ts +3 -5
  93. package/test/reusable/TableManagerTests.ts +95 -0
  94. package/dist/src/source/SourceRecordLoader.d.ts.map +0 -1
  95. package/dist/src/source/SourceRecordLoader.js.map +0 -1
  96. package/dist/test/SourceRecordLoader.test.d.ts +0 -2
  97. package/dist/test/SourceRecordLoader.test.d.ts.map +0 -1
  98. package/dist/test/SourceRecordLoader.test.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SourceRecordSyncRunner.js","sourceRoot":"","sources":["../../../src/source/SourceRecordSyncRunner.ts"],"names":[],"mappings":"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"}
@@ -68,10 +68,18 @@ export declare class MigrationTable extends Table<Migration> {
68
68
  * the service api, and the runner writes run state via the db api as the calling user.
69
69
  * INSERT deliberately has no door — for anyone, break-glass included: ledger rows are born
70
70
  * from source declarations only (boot-time loading rides getDbAsSystem, which bypasses
71
- * doors), so a caller-path insert could only mint a row no source owns. The generic record
72
- * surfaces derive their affordances from these doors (db-ui renders no create button here).
71
+ * doors), so a caller-path insert could only mint a row no source owns. DELETE has no door
72
+ * either: the ledger is {@link MigrationTable.durable}. The generic record surfaces derive
73
+ * their affordances from these doors (db-ui renders no create button and no delete act here).
73
74
  */
74
75
  auth: Table<Migration>['auth'];
76
+ /**
77
+ * The ledger keeps every row: run history is the record of what ran against this database, so
78
+ * no caller deletes it (the house's rule: migration rows are durable records; a row that must go
79
+ * goes by hand in the database's own console). The source-record sync keeps
80
+ * removed migrations' rows too ({@link MigrationTable.sourceRecordOptions} `onSourceRemoved`).
81
+ */
82
+ durable: boolean;
75
83
  /**
76
84
  * The row scan: WHICH migration (name — the loader's class name), what it does, how the run
77
85
  * went, WHEN it ran ("Ran at" = start_time, the one timestamp that answers "when did it
@@ -1 +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;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IACxD,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,GAAG,IAAI,CAAC,CAAC;CAChC;AAED,qBAAa,cAAe,SAAQ,KAAK,CAAC,SAAS,CAAC;IAC3C,IAAI,SAAe;IAC1B;;;;;;;;OAQG;IACI,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAGnC;IACF;;;;;;;;;;;;;;OAcG;IACI,EAAE,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAQ/B;IACF;;;;;OAKG;IACI,OAAO;;;;;;;;;;;;;;;;;;;;;;MAeX;IACI,mBAAmB,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,qBAAqB,CAAC,CASjE;CACH"}
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;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IACxD,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,GAAG,IAAI,CAAC,CAAC;CAChC;AAED,qBAAa,cAAe,SAAQ,KAAK,CAAC,SAAS,CAAC;IAC3C,IAAI,SAAe;IAC1B;;;;;;;;;OASG;IACI,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAGnC;IACF;;;;;OAKG;IACI,OAAO,UAAQ;IACtB;;;;;;;;;;;;;;OAcG;IACI,EAAE,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAQ/B;IACF;;;;;OAKG;IACI,OAAO;;;;;;;;;;;;;;;;;;;;;;MAeX;IACI,mBAAmB,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,qBAAqB,CAAC,CASjE;CACH"}
@@ -66,13 +66,21 @@ var MigrationTable = /** @class */ (function (_super) {
66
66
  * the service api, and the runner writes run state via the db api as the calling user.
67
67
  * INSERT deliberately has no door — for anyone, break-glass included: ledger rows are born
68
68
  * from source declarations only (boot-time loading rides getDbAsSystem, which bypasses
69
- * doors), so a caller-path insert could only mint a row no source owns. The generic record
70
- * surfaces derive their affordances from these doors (db-ui renders no create button here).
69
+ * doors), so a caller-path insert could only mint a row no source owns. DELETE has no door
70
+ * either: the ledger is {@link MigrationTable.durable}. The generic record surfaces derive
71
+ * their affordances from these doors (db-ui renders no create button and no delete act here).
71
72
  */
72
73
  _this.auth = {
73
- db: { query: { permission: 'dev' }, update: { permission: 'dev' }, delete: { permission: 'dev' } },
74
- service: { query: { permission: 'dev' }, update: { permission: 'dev' }, delete: { permission: 'dev' } },
74
+ db: { query: { permission: 'dev' }, update: { permission: 'dev' } },
75
+ service: { query: { permission: 'dev' }, update: { permission: 'dev' } },
75
76
  };
77
+ /**
78
+ * The ledger keeps every row: run history is the record of what ran against this database, so
79
+ * no caller deletes it (the house's rule: migration rows are durable records; a row that must go
80
+ * goes by hand in the database's own console). The source-record sync keeps
81
+ * removed migrations' rows too ({@link MigrationTable.sourceRecordOptions} `onSourceRemoved`).
82
+ */
83
+ _this.durable = true;
76
84
  /**
77
85
  * The row scan: WHICH migration (name — the loader's class name), what it does, how the run
78
86
  * went, WHEN it ran ("Ran at" = start_time, the one timestamp that answers "when did it
@@ -1 +1 @@
1
- {"version":3,"file":"MigrationTable.js","sourceRoot":"","sources":["../../../src/tables/MigrationTable.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MigrationTable.js","sourceRoot":"","sources":["../../../src/tables/MigrationTable.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,sCAAuF;AACvF,kCAAiC;AACjC,uDAA+E;AA8D/E;IAAoC,kCAAgB;IAApD;QAAA,qEA+EC;QA9EQ,UAAI,GAAG,WAAW,CAAC;QAC1B;;;;;;;;;WASG;QACI,UAAI,GAA6B;YACtC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE;YACnE,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE;SACzE,CAAC;QACF;;;;;WAKG;QACI,aAAO,GAAG,IAAI,CAAC;QACtB;;;;;;;;;;;;;;WAcG;QACI,QAAE,GAA2B;YAClC,WAAW,EAAE;gBACX,OAAO,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC;gBACxF,IAAI,EAAE;oBACJ,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE;oBAChC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;iBAC5B;aACF;SACF,CAAC;QACF;;;;;WAKG;QACI,aAAO,GAAG,IAAA,sCAAuB,EAAY;YAClD,IAAI,EAAE,IAAI,sBAAY,CAAC,MAAM,CAAC;YAC9B,WAAW,EAAE,IAAI,sBAAY,CAAC,aAAa,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,CAAC;YACrF,MAAM,EAAE,IAAI,uBAAa,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,CAAC;YACtE,aAAa,EAAE,IAAI,uBAAa,CAAC,iBAAiB,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,CAAC;YACtF,OAAO,EAAE,IAAI,uBAAa,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,CAAC;YACxE,MAAM,EAAE,IAAI,sBAAY,CAAC,QAAQ,EAAE,EAAE,YAAY,EAAE;oBAAY,sBAAA,UAAU,EAAA;yBAAA,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC;YACtG,SAAS,EAAE,IAAI,wBAAc,CAAC,YAAY,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC;YAC1F,QAAQ,EAAE,IAAI,sBAAY,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC;YACpE,OAAO,EAAE,IAAI,wBAAc,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC;YACrE,0FAA0F;YAC1F,wEAAwE;YACxE,MAAM,EAAE,IAAI,sBAAY,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC;YAC/E,cAAc,EAAE,IAAI,sBAAY,CAAC,iBAAiB,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC;YACvF,YAAY,EAAE,IAAI,sBAAY,CAAC,eAAe,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC;SACrF,CAAC,CAAC;QACI,yBAAmB,GAA4C;YACpE,yFAAyF;YACzF,eAAe,EAAE,MAAM;YACvB,0FAA0F;YAC1F,qFAAqF;YACrF,eAAe,EAAE,UAAC,EAAQ;oBAAN,IAAI,UAAA;gBAAO,OAAA,CAAC,EAAE,IAAI,MAAA,EAAE,CAAC;YAAV,CAAU;YACzC,EAAE,EAAE;gBACF,WAAW,EAAE,IAAI;aAClB;SACF,CAAC;;IACJ,CAAC;IAAD,qBAAC;AAAD,CAAC,AA/ED,CAAoC,aAAK,GA+ExC;AA/EY,wCAAc"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=DurableTable.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DurableTable.test.d.ts","sourceRoot":"","sources":["../../test/DurableTable.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,172 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ var user_auth_1 = require("@proteinjs/user-auth");
19
+ var Table_1 = require("../src/Table");
20
+ var Record_1 = require("../src/Record");
21
+ var Columns_1 = require("../src/Columns");
22
+ var TableAuth_1 = require("../src/auth/TableAuth");
23
+ var TableServiceAuth_1 = require("../src/auth/TableServiceAuth");
24
+ var MigrationTable_1 = require("../src/tables/MigrationTable");
25
+ var setUser = function (roles) {
26
+ user_auth_1.UserAuth.userRepo = {
27
+ getUser: function () { return ({ email: 'user@test.local', roles: roles }); },
28
+ };
29
+ };
30
+ var setMapping = function (mapping) {
31
+ user_auth_1.UserAuth.permissionRolesMapping = {
32
+ getRoles: function (permission) { return mapping[permission]; },
33
+ };
34
+ };
35
+ /** Every door open to the 'ledger' permission — the delete door included. */
36
+ var OpenLedgerTable = /** @class */ (function (_super) {
37
+ __extends(OpenLedgerTable, _super);
38
+ function OpenLedgerTable() {
39
+ var _this = _super !== null && _super.apply(this, arguments) || this;
40
+ _this.name = 'open_ledger_test';
41
+ _this.auth = {
42
+ db: { all: { permission: 'ledger' } },
43
+ service: { all: { permission: 'ledger' } },
44
+ };
45
+ _this.columns = (0, Record_1.withRecordColumns)({
46
+ title: new Columns_1.StringColumn('title'),
47
+ });
48
+ return _this;
49
+ }
50
+ return OpenLedgerTable;
51
+ }(Table_1.Table));
52
+ /** The same doors, declared durable: the declared delete doors do not reopen what durability closes. */
53
+ var DurableLedgerTable = /** @class */ (function (_super) {
54
+ __extends(DurableLedgerTable, _super);
55
+ function DurableLedgerTable() {
56
+ var _this = _super !== null && _super.apply(this, arguments) || this;
57
+ _this.name = 'durable_ledger_test';
58
+ _this.durable = true;
59
+ return _this;
60
+ }
61
+ return DurableLedgerTable;
62
+ }(OpenLedgerTable));
63
+ /** Durable with no auth block at all: admin's break-glass default does not reach delete either. */
64
+ var DurableNoAuthTable = /** @class */ (function (_super) {
65
+ __extends(DurableNoAuthTable, _super);
66
+ function DurableNoAuthTable() {
67
+ var _this = _super !== null && _super.apply(this, arguments) || this;
68
+ _this.name = 'durable_no_auth_test';
69
+ _this.durable = true;
70
+ _this.columns = (0, Record_1.withRecordColumns)({
71
+ title: new Columns_1.StringColumn('title'),
72
+ });
73
+ return _this;
74
+ }
75
+ return DurableNoAuthTable;
76
+ }(Table_1.Table));
77
+ /** What the refusal is, read by shape (the router reads a `ServiceRefusal` the same way). */
78
+ var refusalOf = function (act) {
79
+ try {
80
+ act();
81
+ }
82
+ catch (error) {
83
+ return { name: error === null || error === void 0 ? void 0 : error.name, status: error === null || error === void 0 ? void 0 : error.status, message: error === null || error === void 0 ? void 0 : error.message };
84
+ }
85
+ return undefined;
86
+ };
87
+ describe('a durable table keeps its rows', function () {
88
+ beforeEach(function () {
89
+ setMapping({ ledger: ['ledger-keeper'] });
90
+ });
91
+ afterEach(function () {
92
+ user_auth_1.UserAuth.userRepo = undefined;
93
+ user_auth_1.UserAuth.permissionRolesMapping = undefined;
94
+ });
95
+ it('the delete door refuses every caller on both apis — a 403 refusal naming the table, whatever auth declares', function () {
96
+ var auth = new TableAuth_1.TableAuth();
97
+ var _loop_1 = function (table) {
98
+ for (var _b = 0, _c = [['ledger-keeper'], ['admin']]; _b < _c.length; _b++) {
99
+ var roles = _c[_b];
100
+ setUser(roles);
101
+ var _loop_2 = function (api) {
102
+ var refusal = refusalOf(function () { return auth.canDelete(table, api); });
103
+ expect(refusal).toEqual({
104
+ name: 'ServiceRefusal',
105
+ status: 403,
106
+ message: "Table ".concat(table.name, " is durable: its rows are never deleted"),
107
+ });
108
+ // The capability read the record surfaces derive their acts from agrees with the door.
109
+ expect(auth.canPerform(table, 'delete', api)).toBe(false);
110
+ };
111
+ for (var _d = 0, _e = ['db', 'service']; _d < _e.length; _d++) {
112
+ var api = _e[_d];
113
+ _loop_2(api);
114
+ }
115
+ }
116
+ };
117
+ for (var _i = 0, _a = [new DurableLedgerTable(), new DurableNoAuthTable()]; _i < _a.length; _i++) {
118
+ var table = _a[_i];
119
+ _loop_1(table);
120
+ }
121
+ });
122
+ it('the service door passes the refusal to the caller as it is — not a generic denial, not a failure', function () {
123
+ setUser(['admin']);
124
+ var table = new DurableLedgerTable();
125
+ var refusal = refusalOf(function () { return new TableServiceAuth_1.TableServiceAuth().canAccess('delete', [table, { id: 'entry-1' }]); });
126
+ expect(refusal).toEqual({
127
+ name: 'ServiceRefusal',
128
+ status: 403,
129
+ message: 'Table durable_ledger_test is durable: its rows are never deleted',
130
+ });
131
+ });
132
+ it('the durable table keeps every other door it declares', function () {
133
+ setUser(['ledger-keeper']);
134
+ var auth = new TableAuth_1.TableAuth();
135
+ var table = new DurableLedgerTable();
136
+ var _loop_3 = function (api) {
137
+ expect(function () { return auth.canQuery(table, api); }).not.toThrow();
138
+ expect(function () { return auth.canInsert(table, api); }).not.toThrow();
139
+ expect(function () { return auth.canUpdate(table, api); }).not.toThrow();
140
+ };
141
+ for (var _i = 0, _a = ['db', 'service']; _i < _a.length; _i++) {
142
+ var api = _a[_i];
143
+ _loop_3(api);
144
+ }
145
+ expect(new TableServiceAuth_1.TableServiceAuth().canAccess('query', [table, {}])).toBe(true);
146
+ expect(new TableServiceAuth_1.TableServiceAuth().canAccess('update', [table, { id: 'entry-1', title: 't' }])).toBe(true);
147
+ });
148
+ it('a table that does not declare it keeps its delete doors exactly as declared', function () {
149
+ var auth = new TableAuth_1.TableAuth();
150
+ var table = new OpenLedgerTable();
151
+ setUser(['ledger-keeper']);
152
+ var _loop_4 = function (api) {
153
+ expect(function () { return auth.canDelete(table, api); }).not.toThrow();
154
+ expect(auth.canPerform(table, 'delete', api)).toBe(true);
155
+ };
156
+ for (var _i = 0, _a = ['db', 'service']; _i < _a.length; _i++) {
157
+ var api = _a[_i];
158
+ _loop_4(api);
159
+ }
160
+ expect(new TableServiceAuth_1.TableServiceAuth().canAccess('delete', [table, { id: 'entry-1' }])).toBe(true);
161
+ setUser(['someone-else']);
162
+ expect(function () { return auth.canDelete(table, 'service'); }).toThrow('User is not authorized to delete records from table: open_ledger_test');
163
+ });
164
+ it('the migration ledger is durable', function () {
165
+ setUser(['admin']);
166
+ var table = new MigrationTable_1.MigrationTable();
167
+ var refusal = refusalOf(function () { return new TableServiceAuth_1.TableServiceAuth().canAccess('delete', [table, { id: 'migration-1' }]); });
168
+ expect(refusal === null || refusal === void 0 ? void 0 : refusal.status).toBe(403);
169
+ expect(refusal === null || refusal === void 0 ? void 0 : refusal.message).toBe('Table migration is durable: its rows are never deleted');
170
+ });
171
+ });
172
+ //# sourceMappingURL=DurableTable.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DurableTable.test.js","sourceRoot":"","sources":["../../test/DurableTable.test.ts"],"names":[],"mappings":"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"}
@@ -90,17 +90,20 @@ describe('migrations ride the dev permission', function () {
90
90
  }
91
91
  }
92
92
  });
93
- it('delete keeps its dev door (ledger hygiene stays possible)', function () {
94
- setUser(['dev-crew']);
93
+ it('delete has no door — for anyone, break-glass included: the ledger is durable', function () {
95
94
  var auth = new TableAuth_1.TableAuth();
96
95
  var table = new MigrationTable_1.MigrationTable();
97
- var _loop_5 = function (api) {
98
- expect(function () { return auth.canDelete(table, api); }).not.toThrow();
99
- expect(auth.canPerform(table, 'delete', api)).toBe(true);
100
- };
101
- for (var _i = 0, _a = ['db', 'service']; _i < _a.length; _i++) {
102
- var api = _a[_i];
103
- _loop_5(api);
96
+ for (var _i = 0, _a = [['dev-crew'], ['admin']]; _i < _a.length; _i++) {
97
+ var roles = _a[_i];
98
+ setUser(roles);
99
+ var _loop_5 = function (api) {
100
+ expect(function () { return auth.canDelete(table, api); }).toThrow('Table migration is durable: its rows are never deleted');
101
+ expect(auth.canPerform(table, 'delete', api)).toBe(false);
102
+ };
103
+ for (var _b = 0, _c = ['db', 'service']; _b < _c.length; _b++) {
104
+ var api = _c[_b];
105
+ _loop_5(api);
106
+ }
104
107
  }
105
108
  });
106
109
  });
@@ -1 +1 @@
1
- {"version":3,"file":"MigrationAuth.test.js","sourceRoot":"","sources":["../../test/MigrationAuth.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MigrationAuth.test.js","sourceRoot":"","sources":["../../test/MigrationAuth.test.ts"],"names":[],"mappings":";;AAAA,kDAAgD;AAChD,6FAA6F;AAC7F,6FAA6F;AAC7F,uEAAsE;AACtE,oDAA+C;AAC/C,0DAAyD;AACzD,+DAA8D;AAC9D,mDAAkD;AAgBlD,IAAM,OAAO,GAAG,UAAC,KAAe;IAC7B,oBAAyC,CAAC,QAAQ,GAAG;QACpD,OAAO,EAAE,cAAM,OAAA,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,OAAA,EAAE,CAAC,EAArC,CAAqC;KACrD,CAAC;AACJ,CAAC,CAAC;AAEF,IAAM,UAAU,GAAG,UAAC,OAA2C;IAC5D,oBAAyC,CAAC,sBAAsB,GAAG;QAClE,QAAQ,EAAE,UAAC,UAAkB,IAAK,OAAA,OAAO,CAAC,UAAU,CAAC,EAAnB,CAAmB;KACtD,CAAC;AACJ,CAAC,CAAC;AAEF,IAAM,gBAAgB,GAAG;IACvB,IAAM,MAAM,GAAG,IAAI,mBAAM,CAAC,cAAc,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC9F,OAAO,yBAAW,CAAC,aAAa,CAAC,IAAI,iCAAe,EAAE,EAAE,MAAM,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC;AACzF,CAAC,CAAC;AAEF,QAAQ,CAAC,oCAAoC,EAAE;IAC7C,UAAU,CAAC;QACT,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC;QACP,oBAAyC,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC/D,oBAAyC,CAAC,sBAAsB,GAAG,SAAS,CAAC;IAChF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0FAA0F,EAAE;QAC7F,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QACtB,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEtC,IAAM,IAAI,GAAG,IAAI,qBAAS,EAAE,CAAC;QAC7B,IAAM,KAAK,GAAG,IAAI,+BAAc,EAAE,CAAC;gCAExB,GAAG;YACZ,MAAM,CAAC,cAAM,OAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,EAAzB,CAAyB,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACtD,MAAM,CAAC,cAAM,OAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,EAA1B,CAA0B,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;;QAHzD,sFAAsF;QACtF,KAAkB,UAA0B,EAA1B,KAAA,CAAC,IAAI,EAAE,SAAS,CAAU,EAA1B,cAA0B,EAA1B,IAA0B;YAAvC,IAAM,GAAG,SAAA;oBAAH,GAAG;SAGb;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE;QACrE,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QACtB,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEvC,IAAM,IAAI,GAAG,IAAI,qBAAS,EAAE,CAAC;QAC7B,IAAM,KAAK,GAAG,IAAI,+BAAc,EAAE,CAAC;gCACxB,GAAG;YACZ,MAAM,CAAC,cAAM,OAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,EAAzB,CAAyB,CAAC,CAAC,OAAO,CAAC,kDAAkD,CAAC,CAAC;YACpG,MAAM,CAAC,cAAM,OAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,EAA1B,CAA0B,CAAC,CAAC,OAAO,CAAC,8DAA8D,CAAC,CAAC;;QAFnH,KAAkB,UAA0B,EAA1B,KAAA,CAAC,IAAI,EAAE,SAAS,CAAU,EAA1B,cAA0B,EAA1B,IAA0B;YAAvC,IAAM,GAAG,SAAA;oBAAH,GAAG;SAGb;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE;QAC3C,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QACnB,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEtC,IAAM,IAAI,GAAG,IAAI,qBAAS,EAAE,CAAC;QAC7B,IAAM,KAAK,GAAG,IAAI,+BAAc,EAAE,CAAC;gCACxB,GAAG;YACZ,MAAM,CAAC,cAAM,OAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,EAAzB,CAAyB,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACtD,MAAM,CAAC,cAAM,OAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,EAA1B,CAA0B,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;;QAFzD,KAAkB,UAA0B,EAA1B,KAAA,CAAC,IAAI,EAAE,SAAS,CAAU,EAA1B,cAA0B,EAA1B,IAA0B;YAAvC,IAAM,GAAG,SAAA;oBAAH,GAAG;SAGb;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2GAA2G,EAAE;QAC9G,IAAM,IAAI,GAAG,IAAI,qBAAS,EAAE,CAAC;QAC7B,IAAM,KAAK,GAAG,IAAI,+BAAc,EAAE,CAAC;QACnC,KAAoB,UAAyB,EAAzB,MAAC,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,EAAzB,cAAyB,EAAzB,IAAyB,EAAE;YAA1C,IAAM,KAAK,SAAA;YACd,OAAO,CAAC,KAAK,CAAC,CAAC;oCACJ,GAAG;gBACZ,MAAM,CAAC,cAAM,OAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,EAA1B,CAA0B,CAAC,CAAC,OAAO,CAC9C,gEAAgE,CACjE,CAAC;gBACF,wFAAwF;gBACxF,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;;YAL5D,KAAkB,UAA0B,EAA1B,KAAA,CAAC,IAAI,EAAE,SAAS,CAAU,EAA1B,cAA0B,EAA1B,IAA0B;gBAAvC,IAAM,GAAG,SAAA;wBAAH,GAAG;aAMb;SACF;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8EAA8E,EAAE;QACjF,IAAM,IAAI,GAAG,IAAI,qBAAS,EAAE,CAAC;QAC7B,IAAM,KAAK,GAAG,IAAI,+BAAc,EAAE,CAAC;QACnC,KAAoB,UAAyB,EAAzB,MAAC,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,EAAzB,cAAyB,EAAzB,IAAyB,EAAE;YAA1C,IAAM,KAAK,SAAA;YACd,OAAO,CAAC,KAAK,CAAC,CAAC;oCACJ,GAAG;gBACZ,MAAM,CAAC,cAAM,OAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,EAA1B,CAA0B,CAAC,CAAC,OAAO,CAAC,wDAAwD,CAAC,CAAC;gBAC3G,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;;YAF5D,KAAkB,UAA0B,EAA1B,KAAA,CAAC,IAAI,EAAE,SAAS,CAAU,EAA1B,cAA0B,EAA1B,IAA0B;gBAAvC,IAAM,GAAG,SAAA;wBAAH,GAAG;aAGb;SACF;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=SchemaReconcileLines.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SchemaReconcileLines.test.d.ts","sourceRoot":"","sources":["../../test/SchemaReconcileLines.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,176 @@
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
+ var util_1 = require("util");
51
+ var logger_1 = require("@proteinjs/logger");
52
+ var TableManager_1 = require("../src/schema/TableManager");
53
+ /**
54
+ * The schema-reconcile WARN lines (`TableManager.reconcileConcurrentSchemaChange`) carry the
55
+ * error a driver rejected with — never text copied out of it.
56
+ *
57
+ * A backend words a schema error itself and can quote row data in it (a unique index whose
58
+ * backfill meets duplicate rows names the duplicate key). A driver marks such an error so the
59
+ * logger prints its status and the driver's sentence in its place (`LogLineErrors`) — which the
60
+ * logger can only do for the error OBJECT. These lines used to interpolate the error's `details`
61
+ * / `message` into their own message, where nothing can recognize it.
62
+ *
63
+ * Judged at the log WRITER, as the text a writer would print, for each of the three outcomes
64
+ * that log: tolerated, still absent, a genuine conflict.
65
+ */
66
+ // A fixture value shaped like row content (not a real credential).
67
+ var VALUE = 'rst_reconcile_5d41402abc4b2a76b9719d911017c592';
68
+ var SENTENCE = 'Failed when executing schema update (ALREADY_EXISTS, code 6): what the statement creates already exists';
69
+ var noChanges = function () {
70
+ return ({
71
+ columnsToCreate: [],
72
+ columnsToRename: [],
73
+ columnsToAlter: [],
74
+ columnsWithForeignKeysToDrop: [],
75
+ columnsWithUniqueConstraintsToDrop: [],
76
+ indexesToCreate: [],
77
+ indexesToDrop: [],
78
+ });
79
+ };
80
+ /** What a driver rejects with when the backend refuses a schema change — marked, as a driver marks it. */
81
+ var backendError = function () {
82
+ var message = "6 ALREADY_EXISTS: Duplicate name in schema: ledger_by_email. duplicate key: {String(\"".concat(VALUE, "\")}");
83
+ var error = Object.assign(new Error(message), { code: 6, details: message });
84
+ logger_1.LogLineErrors.mark(error, function () { return ({ code: 6, sentence: SENTENCE, facts: { status: 'ALREADY_EXISTS' } }); });
85
+ return error;
86
+ };
87
+ var printedLine = function (log) { var _a, _b; return [(_a = log.message) !== null && _a !== void 0 ? _a : '', (0, util_1.inspect)(log.obj, { depth: 10, maxStringLength: null }), (_b = JSON.stringify(log.obj)) !== null && _b !== void 0 ? _b : ''].join('\n'); };
88
+ describe('the schema-reconcile lines carry the error itself, never its text', function () {
89
+ var table = { name: 'ledger' };
90
+ var captured;
91
+ var managerWhere = function (live) {
92
+ var manager = new TableManager_1.TableManager({}, {}, { isAlreadyExistsError: function () { return true; } }, { tableExists: function () { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
93
+ return [2 /*return*/, live.exists];
94
+ }); }); } });
95
+ var internals = manager;
96
+ internals.logger = new logger_1.Logger({
97
+ name: 'TableManager',
98
+ logWriter: { write: function (log) { return captured.push(log); } },
99
+ });
100
+ internals.getTableChanges = function () { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
101
+ return [2 /*return*/, live.changes];
102
+ }); }); };
103
+ internals.delay = function () { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
104
+ return [2 /*return*/, undefined];
105
+ }); }); };
106
+ return internals;
107
+ };
108
+ beforeEach(function () {
109
+ captured = [];
110
+ });
111
+ var expectTheErrorNotItsText = function (line, error) {
112
+ expect(error.message).toContain(VALUE);
113
+ expect(printedLine(line)).not.toContain(VALUE);
114
+ expect(printedLine(line)).not.toContain('Duplicate name in schema');
115
+ expect(line.obj.error).toBeInstanceOf(Error);
116
+ expect(line.obj.error.message).toBe(SENTENCE);
117
+ expect(line.message).toContain('ledger');
118
+ };
119
+ test('tolerated: the table is there with the intended definition', function () { return __awaiter(void 0, void 0, void 0, function () {
120
+ var error;
121
+ return __generator(this, function (_a) {
122
+ switch (_a.label) {
123
+ case 0:
124
+ error = backendError();
125
+ return [4 /*yield*/, managerWhere({ exists: true, changes: noChanges() }).reconcileConcurrentSchemaChange([table], error)];
126
+ case 1:
127
+ _a.sent();
128
+ expect(captured).toHaveLength(1);
129
+ expect(captured[0].message).toContain('tolerated concurrent ALREADY_EXISTS');
130
+ expectTheErrorNotItsText(captured[0], error);
131
+ return [2 /*return*/];
132
+ }
133
+ });
134
+ }); });
135
+ test('still absent after every re-read: the original error is thrown as it is', function () { return __awaiter(void 0, void 0, void 0, function () {
136
+ var error, thrown;
137
+ return __generator(this, function (_a) {
138
+ switch (_a.label) {
139
+ case 0:
140
+ error = backendError();
141
+ return [4 /*yield*/, managerWhere({ exists: false, changes: noChanges() })
142
+ .reconcileConcurrentSchemaChange([table], error)
143
+ .catch(function (each) { return each; })];
144
+ case 1:
145
+ thrown = _a.sent();
146
+ expect(thrown).toBe(error);
147
+ expect(captured).toHaveLength(1);
148
+ expect(captured[0].message).toContain('still absent');
149
+ expectTheErrorNotItsText(captured[0], error);
150
+ return [2 /*return*/];
151
+ }
152
+ });
153
+ }); });
154
+ test('a genuine conflict: the live schema differs from the intended definition', function () { return __awaiter(void 0, void 0, void 0, function () {
155
+ var error, changes, thrown;
156
+ return __generator(this, function (_a) {
157
+ switch (_a.label) {
158
+ case 0:
159
+ error = backendError();
160
+ changes = __assign(__assign({}, noChanges()), { columnsToCreate: ['email'] });
161
+ return [4 /*yield*/, managerWhere({ exists: true, changes: changes })
162
+ .reconcileConcurrentSchemaChange([table], error)
163
+ .catch(function (each) { return each; })];
164
+ case 1:
165
+ thrown = _a.sent();
166
+ expect(thrown).toBe(error);
167
+ expect(captured).toHaveLength(1);
168
+ expect(captured[0].message).toContain('genuine conflict');
169
+ expect(captured[0].obj.remainingChanges).toEqual(changes);
170
+ expectTheErrorNotItsText(captured[0], error);
171
+ return [2 /*return*/];
172
+ }
173
+ });
174
+ }); });
175
+ });
176
+ //# sourceMappingURL=SchemaReconcileLines.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SchemaReconcileLines.test.js","sourceRoot":"","sources":["../../test/SchemaReconcileLines.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=SourceRecordLoaderQualifiedName.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SourceRecordLoaderQualifiedName.test.d.ts","sourceRoot":"","sources":["../../test/SourceRecordLoaderQualifiedName.test.ts"],"names":[],"mappings":""}