@entity-access/entity-access 1.0.45 → 1.0.47

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 (116) hide show
  1. package/.vscode/launch.json +20 -1
  2. package/dist/common/Logger.d.ts +8 -1
  3. package/dist/common/Logger.d.ts.map +1 -1
  4. package/dist/common/Logger.js +18 -1
  5. package/dist/common/Logger.js.map +1 -1
  6. package/dist/common/ObjectPool.d.ts +42 -0
  7. package/dist/common/ObjectPool.d.ts.map +1 -0
  8. package/dist/common/ObjectPool.js +86 -0
  9. package/dist/common/ObjectPool.js.map +1 -0
  10. package/dist/common/sleep.d.ts +3 -0
  11. package/dist/common/sleep.d.ts.map +1 -0
  12. package/dist/common/sleep.js +17 -0
  13. package/dist/common/sleep.js.map +1 -0
  14. package/dist/decorators/Column.js +1 -1
  15. package/dist/decorators/Column.js.map +1 -1
  16. package/dist/di/di.d.ts +2 -2
  17. package/dist/di/di.d.ts.map +1 -1
  18. package/dist/di/di.js +33 -19
  19. package/dist/di/di.js.map +1 -1
  20. package/dist/drivers/base/BaseDriver.d.ts.map +1 -1
  21. package/dist/drivers/base/BaseDriver.js.map +1 -1
  22. package/dist/drivers/postgres/PostgreSqlDriver.d.ts +2 -2
  23. package/dist/drivers/postgres/PostgreSqlDriver.d.ts.map +1 -1
  24. package/dist/drivers/postgres/PostgreSqlDriver.js +54 -25
  25. package/dist/drivers/postgres/PostgreSqlDriver.js.map +1 -1
  26. package/dist/drivers/sql-server/ExpressionToSqlServer.d.ts +2 -1
  27. package/dist/drivers/sql-server/ExpressionToSqlServer.d.ts.map +1 -1
  28. package/dist/drivers/sql-server/ExpressionToSqlServer.js +3 -0
  29. package/dist/drivers/sql-server/ExpressionToSqlServer.js.map +1 -1
  30. package/dist/eternity/ActivitySuspendedError.d.ts +3 -0
  31. package/dist/eternity/ActivitySuspendedError.d.ts.map +1 -0
  32. package/dist/eternity/ActivitySuspendedError.js +3 -0
  33. package/dist/eternity/ActivitySuspendedError.js.map +1 -0
  34. package/dist/eternity/EternityContext.d.ts +27 -0
  35. package/dist/eternity/EternityContext.d.ts.map +1 -0
  36. package/dist/eternity/EternityContext.js +230 -0
  37. package/dist/eternity/EternityContext.js.map +1 -0
  38. package/dist/eternity/EternityStorage.d.ts +40 -0
  39. package/dist/eternity/EternityStorage.d.ts.map +1 -0
  40. package/dist/eternity/EternityStorage.js +217 -0
  41. package/dist/eternity/EternityStorage.js.map +1 -0
  42. package/dist/eternity/Workflow.d.ts +24 -0
  43. package/dist/eternity/Workflow.d.ts.map +1 -0
  44. package/dist/eternity/Workflow.js +49 -0
  45. package/dist/eternity/Workflow.js.map +1 -0
  46. package/dist/eternity/WorkflowClock.d.ts +5 -0
  47. package/dist/eternity/WorkflowClock.d.ts.map +1 -0
  48. package/dist/eternity/WorkflowClock.js +18 -0
  49. package/dist/eternity/WorkflowClock.js.map +1 -0
  50. package/dist/eternity/WorkflowRegistry.d.ts +13 -0
  51. package/dist/eternity/WorkflowRegistry.d.ts.map +1 -0
  52. package/dist/eternity/WorkflowRegistry.js +24 -0
  53. package/dist/eternity/WorkflowRegistry.js.map +1 -0
  54. package/dist/migrations/Migrations.d.ts.map +1 -1
  55. package/dist/migrations/Migrations.js +1 -0
  56. package/dist/migrations/Migrations.js.map +1 -1
  57. package/dist/model/EntityContext.d.ts +1 -1
  58. package/dist/model/EntityContext.d.ts.map +1 -1
  59. package/dist/model/EntityContext.js +2 -1
  60. package/dist/model/EntityContext.js.map +1 -1
  61. package/dist/model/EntityQuery.d.ts.map +1 -1
  62. package/dist/model/EntityQuery.js +1 -3
  63. package/dist/model/EntityQuery.js.map +1 -1
  64. package/dist/query/ast/DebugStringVisitor.d.ts +3 -1
  65. package/dist/query/ast/DebugStringVisitor.d.ts.map +1 -1
  66. package/dist/query/ast/DebugStringVisitor.js +6 -0
  67. package/dist/query/ast/DebugStringVisitor.js.map +1 -1
  68. package/dist/query/ast/ExpressionToSql.d.ts +3 -1
  69. package/dist/query/ast/ExpressionToSql.d.ts.map +1 -1
  70. package/dist/query/ast/ExpressionToSql.js +19 -3
  71. package/dist/query/ast/ExpressionToSql.js.map +1 -1
  72. package/dist/query/ast/Expressions.d.ts +10 -7
  73. package/dist/query/ast/Expressions.d.ts.map +1 -1
  74. package/dist/query/ast/Expressions.js +12 -4
  75. package/dist/query/ast/Expressions.js.map +1 -1
  76. package/dist/query/ast/Visitor.d.ts +3 -1
  77. package/dist/query/ast/Visitor.d.ts.map +1 -1
  78. package/dist/query/ast/Visitor.js +10 -0
  79. package/dist/query/ast/Visitor.js.map +1 -1
  80. package/dist/query/parser/ArrowToExpression.d.ts +2 -2
  81. package/dist/query/parser/ArrowToExpression.d.ts.map +1 -1
  82. package/dist/query/parser/ArrowToExpression.js +2 -2
  83. package/dist/query/parser/ArrowToExpression.js.map +1 -1
  84. package/dist/tests/eternity/eternity-tests.d.ts +3 -0
  85. package/dist/tests/eternity/eternity-tests.d.ts.map +1 -0
  86. package/dist/tests/eternity/eternity-tests.js +91 -0
  87. package/dist/tests/eternity/eternity-tests.js.map +1 -0
  88. package/dist/tests/security/tests/place-order.js +6 -2
  89. package/dist/tests/security/tests/place-order.js.map +1 -1
  90. package/dist/tsconfig.tsbuildinfo +1 -1
  91. package/package.json +1 -1
  92. package/src/common/Logger.ts +25 -2
  93. package/src/common/ObjectPool.ts +124 -0
  94. package/src/common/sleep.ts +16 -0
  95. package/src/decorators/Column.ts +1 -1
  96. package/src/di/di.ts +37 -20
  97. package/src/drivers/base/BaseDriver.ts +2 -1
  98. package/src/drivers/postgres/PostgreSqlDriver.ts +59 -32
  99. package/src/drivers/sql-server/ExpressionToSqlServer.ts +5 -1
  100. package/src/eternity/ActivitySuspendedError.ts +3 -0
  101. package/src/eternity/EternityContext.ts +254 -0
  102. package/src/eternity/EternityStorage.ts +180 -0
  103. package/src/eternity/Workflow.ts +55 -0
  104. package/src/eternity/WorkflowClock.ts +10 -0
  105. package/src/eternity/WorkflowRegistry.ts +34 -0
  106. package/src/migrations/Migrations.ts +2 -0
  107. package/src/model/EntityContext.ts +3 -2
  108. package/src/model/EntityQuery.ts +1 -2
  109. package/src/query/ast/DebugStringVisitor.ts +10 -1
  110. package/src/query/ast/ExpressionToSql.ts +22 -4
  111. package/src/query/ast/Expressions.ts +17 -5
  112. package/src/query/ast/Visitor.ts +11 -1
  113. package/src/query/parser/ArrowToExpression.ts +2 -2
  114. package/src/tests/eternity/eternity-tests.ts +108 -0
  115. package/src/tests/security/tests/place-order.ts +6 -2
  116. package/test.js +38 -3
package/test.js CHANGED
@@ -2,10 +2,26 @@ import { readdir } from "fs/promises";
2
2
  import PostgreSqlDriver from "./dist/drivers/postgres/PostgreSqlDriver.js";
3
3
  import SqlServerDriver from "./dist/drivers/sql-server/SqlServerDriver.js";
4
4
  import * as ports from "tcp-port-used";
5
+ import path from "path";
5
6
 
6
7
  const host = process.env.POSTGRES_HOST ?? "localhost";
7
8
  const postGresPort = Number(process.env.POSTGRES_PORT ?? 5432);
8
9
 
10
+ /**
11
+ * @type string
12
+ */
13
+ let testFile;
14
+ const testFileIndex = process.argv.indexOf("--test-file");
15
+ if (testFileIndex !== -1) {
16
+ testFile = process.argv[testFileIndex+1];
17
+ }
18
+ testFile = testFile ? testFile.replace("/src/", "/dist/").replace("\\src\\","\\dist\\").replace(".ts", ".js") : void 0;
19
+ if (testFile) {
20
+ if (testFile.startsWith(".")) {
21
+ testFile = path.resolve(testFile);
22
+ }
23
+ console.log(`Executing test - ${testFile}`);
24
+ }
9
25
  // if (process.argv.includes("test-db")) {
10
26
  // // wait for ports to open...
11
27
  // console.log("Waiting for port to be open");
@@ -22,14 +38,15 @@ let start = Date.now();
22
38
  export default class TestRunner {
23
39
 
24
40
  static get drivers() {
25
- const database = "D" + start++;
41
+ const database = "D" + (start++);
26
42
  return [
27
43
  new PostgreSqlDriver({
28
44
  database,
29
45
  host,
30
46
  user: "postgres",
31
47
  password: "abcd123",
32
- port: postGresPort
48
+ port: postGresPort,
49
+ // deleteDatabase: async (driver) => [driver.config.database = "postgres", await driver.executeQuery(`DROP DATABASE IF EXISTS "${database}" WITH (FORCE)`)]
33
50
  }),
34
51
  new SqlServerDriver({
35
52
  database,
@@ -40,7 +57,17 @@ export default class TestRunner {
40
57
  options: {
41
58
  encrypt: true, // for azure
42
59
  trustServerCertificate: true // change to true for local dev / self-signed certs
43
- }
60
+ },
61
+ // deleteDatabase: async (driver) => {
62
+ // try {
63
+ // driver.config.database = "master";
64
+ // await driver.executeQuery(`USE master;
65
+ // ALTER DATABASE ${database} SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
66
+ // DROP DATABASE ${database}`);
67
+ // } catch {
68
+
69
+ // }
70
+ // }
44
71
  })
45
72
  ];
46
73
  }
@@ -62,6 +89,7 @@ export default class TestRunner {
62
89
  await r;
63
90
  }
64
91
  results.push({ name });
92
+ await thisParam.driver.config.deleteDatabase?.(thisParam.driver);
65
93
  } catch (error) {
66
94
  results.unshift({ name, error });
67
95
  }
@@ -77,6 +105,13 @@ export default class TestRunner {
77
105
  continue;
78
106
  }
79
107
  if (iterator.name.endsWith(".js")) {
108
+ if (testFile) {
109
+ if (next !== testFile) {
110
+ if(testFile !== path.resolve(next)) {
111
+ continue;
112
+ }
113
+ }
114
+ }
80
115
  for (const driver of this.drivers) {
81
116
  tasks.push(this.runTest(next, { driver, db }));
82
117
  }