callman-core 1.19.0 → 1.20.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 (75) hide show
  1. package/dist/host/db/connectionMapping.d.ts +4 -0
  2. package/dist/host/db/connectionMapping.d.ts.map +1 -1
  3. package/dist/host/db/connectionMapping.js +4 -0
  4. package/dist/host/db/connectionMapping.js.map +1 -1
  5. package/dist/host/db/pgClientConfig.d.ts +11 -0
  6. package/dist/host/db/pgClientConfig.d.ts.map +1 -0
  7. package/dist/host/db/pgClientConfig.js +83 -0
  8. package/dist/host/db/pgClientConfig.js.map +1 -0
  9. package/dist/host/db/pgSessionManager.d.ts +18 -0
  10. package/dist/host/db/pgSessionManager.d.ts.map +1 -0
  11. package/dist/host/db/pgSessionManager.js +162 -0
  12. package/dist/host/db/pgSessionManager.js.map +1 -0
  13. package/dist/host/db/postgresAdapter.d.ts.map +1 -1
  14. package/dist/host/db/postgresAdapter.js +7 -36
  15. package/dist/host/db/postgresAdapter.js.map +1 -1
  16. package/dist/host/db/queryExecutor.d.ts +4 -0
  17. package/dist/host/db/queryExecutor.d.ts.map +1 -1
  18. package/dist/host/db/queryExecutor.js +40 -2
  19. package/dist/host/db/queryExecutor.js.map +1 -1
  20. package/dist/host/db/sqlState.d.ts +2 -0
  21. package/dist/host/db/sqlState.d.ts.map +1 -0
  22. package/dist/host/db/sqlState.js +14 -0
  23. package/dist/host/db/sqlState.js.map +1 -0
  24. package/dist/host/db/types.d.ts +13 -0
  25. package/dist/host/db/types.d.ts.map +1 -1
  26. package/dist/host/index.d.ts +3 -0
  27. package/dist/host/index.d.ts.map +1 -1
  28. package/dist/host/index.js +7 -0
  29. package/dist/host/index.js.map +1 -1
  30. package/dist/scenario-runner/adapters/connection-config.d.ts +4 -0
  31. package/dist/scenario-runner/adapters/connection-config.d.ts.map +1 -1
  32. package/dist/scenario-runner/adapters/db-executor.d.ts +7 -1
  33. package/dist/scenario-runner/adapters/db-executor.d.ts.map +1 -1
  34. package/dist/scenario-runner/adapters/db-executor.js +106 -1
  35. package/dist/scenario-runner/adapters/db-executor.js.map +1 -1
  36. package/dist/scenario-runner/adapters/index.d.ts +1 -1
  37. package/dist/scenario-runner/adapters/index.d.ts.map +1 -1
  38. package/dist/scenario-runner/adapters/index.js +8 -1
  39. package/dist/scenario-runner/adapters/index.js.map +1 -1
  40. package/dist/scenario-runner/adapters/types.d.ts +8 -0
  41. package/dist/scenario-runner/adapters/types.d.ts.map +1 -1
  42. package/dist/scenario-runner/condition.d.ts +1 -0
  43. package/dist/scenario-runner/condition.d.ts.map +1 -1
  44. package/dist/scenario-runner/condition.js +127 -2
  45. package/dist/scenario-runner/condition.js.map +1 -1
  46. package/dist/scenario-runner/conditionTypes.d.ts +1 -1
  47. package/dist/scenario-runner/conditionTypes.d.ts.map +1 -1
  48. package/dist/scenario-runner/runScenario.d.ts.map +1 -1
  49. package/dist/scenario-runner/runScenario.js +42 -1
  50. package/dist/scenario-runner/runScenario.js.map +1 -1
  51. package/dist/scenario-runner/types.d.ts +27 -0
  52. package/dist/scenario-runner/types.d.ts.map +1 -1
  53. package/dist-cjs/host/db/connectionMapping.js +4 -0
  54. package/dist-cjs/host/db/connectionMapping.js.map +1 -1
  55. package/dist-cjs/host/db/pgClientConfig.js +90 -0
  56. package/dist-cjs/host/db/pgClientConfig.js.map +1 -0
  57. package/dist-cjs/host/db/pgSessionManager.js +170 -0
  58. package/dist-cjs/host/db/pgSessionManager.js.map +1 -0
  59. package/dist-cjs/host/db/postgresAdapter.js +7 -36
  60. package/dist-cjs/host/db/postgresAdapter.js.map +1 -1
  61. package/dist-cjs/host/db/queryExecutor.js +40 -2
  62. package/dist-cjs/host/db/queryExecutor.js.map +1 -1
  63. package/dist-cjs/host/db/sqlState.js +18 -0
  64. package/dist-cjs/host/db/sqlState.js.map +1 -0
  65. package/dist-cjs/host/index.js +16 -1
  66. package/dist-cjs/host/index.js.map +1 -1
  67. package/dist-cjs/scenario-runner/adapters/db-executor.js +108 -2
  68. package/dist-cjs/scenario-runner/adapters/db-executor.js.map +1 -1
  69. package/dist-cjs/scenario-runner/adapters/index.js +10 -1
  70. package/dist-cjs/scenario-runner/adapters/index.js.map +1 -1
  71. package/dist-cjs/scenario-runner/condition.js +129 -3
  72. package/dist-cjs/scenario-runner/condition.js.map +1 -1
  73. package/dist-cjs/scenario-runner/runScenario.js +42 -1
  74. package/dist-cjs/scenario-runner/runScenario.js.map +1 -1
  75. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/host/db/types.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,OAAO,CAAC;AAEnF,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAC;AAErD,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,kBAAkB,CAAC;AAE/D,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,gBAAgB,CAAC;IACvB,cAAc,EAAE,gBAAgB,CAAC;IACjC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;IAEd,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,gBAAgB,CAAC;IACvB,cAAc,EAAE,gBAAgB,CAAC;IACjC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;IAEd,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,qBAAqB;IACpC,YAAY,EAAE,MAAM,CAAC;IAGrB,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;IAEd,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;IACnB,KAAK,EAAE,YAAY,CAAC;IACpB,OAAO,CAAC,EAAE,iBAAiB,CAAC;CAC7B;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,YAAY,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,gBAAgB,CAAC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/host/db/types.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,14 @@
1
1
  export { buildDbExecuteCapability, runConfiguredDbQuery, runRedisCommandsForPhase, buildRedisValueCache, buildRedisCapability, type ConnectionRuntime, type ConnectionRuntimeMap, type DbConnectionRuntime, type RedisConnectionRuntime, type DbNodeConfig, type RequestDatabaseRuntimeConfig, type RequestRedisRuntimeConfig, type ScriptTemplateContext, } from "./connections.js";
2
2
  export { executeQuery, executeResolvedDbQuery, testDbConnection, } from "./db/queryExecutor.js";
3
+ export { executePostgresQueryInSession, releasePostgresSessionsForRun, closeAllPostgresSessions, __setPgSessionDriverForTests, __getPgSessionCountForTests, type PgSessionExecuteInput, type PgSessionTransactionMode, } from "./db/pgSessionManager.js";
3
4
  export { executeMongoQuery, testMongoConnection, __setMongoDriverForTests, } from "./db/mongoAdapter.js";
4
5
  export { executePostgresQuery, testPostgresConnection, __setPostgresDriverForTests, } from "./db/postgresAdapter.js";
5
6
  export { executeMysqlQuery, testMysqlConnection, __setMysqlDriverForTests, } from "./db/mysqlAdapter.js";
6
7
  export { executeOracleQuery, testOracleConnection, __setOracleDriverForTests, } from "./db/oracleAdapter.js";
7
8
  export { executeMssqlQuery, testMssqlConnection, __setMssqlDriverForTests, } from "./db/mssqlAdapter.js";
8
9
  export { stripTrailingSqlTerminator } from "./db/sqlNormalize.js";
10
+ export { buildPgSslConfig, buildPgClientConfig } from "./db/pgClientConfig.js";
11
+ export { extractSqlState } from "./db/sqlState.js";
9
12
  export { renderDbQueryReference } from "./db/db-query-reference.js";
10
13
  export { normalizeOracleConnectString, OracleConnectStringError, } from "./db/oracleConnectString.js";
11
14
  export { databaseConfigToDbConnection, type CoreDbProvider, type DatabaseConnectionConfigLike, } from "./db/connectionMapping.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/host/index.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,EACpB,oBAAoB,EACpB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,YAAY,EACjB,KAAK,4BAA4B,EACjC,KAAK,yBAAyB,EAC9B,KAAK,qBAAqB,GAC3B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,YAAY,EACZ,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EACL,4BAA4B,EAC5B,wBAAwB,GACzB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,4BAA4B,EAC5B,KAAK,cAAc,EACnB,KAAK,4BAA4B,GAClC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,GAC3B,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,EACxB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,GAC3B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,KAAK,2BAA2B,EAChC,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,GACxB,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/host/index.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,EACpB,oBAAoB,EACpB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,YAAY,EACjB,KAAK,4BAA4B,EACjC,KAAK,yBAAyB,EAC9B,KAAK,qBAAqB,GAC3B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,YAAY,EACZ,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAK/B,OAAO,EACL,6BAA6B,EAC7B,6BAA6B,EAC7B,wBAAwB,EACxB,4BAA4B,EAC5B,2BAA2B,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,wBAAwB,GAC9B,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EACL,4BAA4B,EAC5B,wBAAwB,GACzB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,4BAA4B,EAC5B,KAAK,cAAc,EACnB,KAAK,4BAA4B,GAClC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,GAC3B,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,EACxB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,GAC3B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,KAAK,2BAA2B,EAChC,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,GACxB,MAAM,kBAAkB,CAAC"}
@@ -3,6 +3,11 @@
3
3
  // runner execute `pm.db.*` and `pm.redis` without an external host process.
4
4
  export { buildDbExecuteCapability, runConfiguredDbQuery, runRedisCommandsForPhase, buildRedisValueCache, buildRedisCapability, } from "./connections.js";
5
5
  export { executeQuery, executeResolvedDbQuery, testDbConnection, } from "./db/queryExecutor.js";
6
+ // Run-scoped Postgres sessions for `useSession` db nodes (BEGIN…ROLLBACK
7
+ // spanning multiple nodes). Hosts wire `releasePostgresSessionsForRun` into
8
+ // the `databaseSessionRelease` driver and `closeAllPostgresSessions` into
9
+ // process shutdown.
10
+ export { executePostgresQueryInSession, releasePostgresSessionsForRun, closeAllPostgresSessions, __setPgSessionDriverForTests, __getPgSessionCountForTests, } from "./db/pgSessionManager.js";
6
11
  // Individual adapters + connectivity checks, so hosts (Electron, backend) call
7
12
  // the single shared implementation instead of duplicating driver logic.
8
13
  export { executeMongoQuery, testMongoConnection, __setMongoDriverForTests, } from "./db/mongoAdapter.js";
@@ -11,6 +16,8 @@ export { executeMysqlQuery, testMysqlConnection, __setMysqlDriverForTests, } fro
11
16
  export { executeOracleQuery, testOracleConnection, __setOracleDriverForTests, } from "./db/oracleAdapter.js";
12
17
  export { executeMssqlQuery, testMssqlConnection, __setMssqlDriverForTests, } from "./db/mssqlAdapter.js";
13
18
  export { stripTrailingSqlTerminator } from "./db/sqlNormalize.js";
19
+ export { buildPgSslConfig, buildPgClientConfig } from "./db/pgClientConfig.js";
20
+ export { extractSqlState } from "./db/sqlState.js";
14
21
  export { renderDbQueryReference } from "./db/db-query-reference.js";
15
22
  export { normalizeOracleConnectString, OracleConnectStringError, } from "./db/oracleConnectString.js";
16
23
  export { databaseConfigToDbConnection, } from "./db/connectionMapping.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/host/index.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,6EAA6E;AAC7E,4EAA4E;AAE5E,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,EACpB,oBAAoB,GASrB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,YAAY,EACZ,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAC/B,+EAA+E;AAC/E,wEAAwE;AACxE,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EACL,4BAA4B,EAC5B,wBAAwB,GACzB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,4BAA4B,GAG7B,MAAM,2BAA2B,CAAC;AAanC,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,GAIzB,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/host/index.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,6EAA6E;AAC7E,4EAA4E;AAE5E,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,EACpB,oBAAoB,GASrB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,YAAY,EACZ,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAC/B,yEAAyE;AACzE,4EAA4E;AAC5E,0EAA0E;AAC1E,oBAAoB;AACpB,OAAO,EACL,6BAA6B,EAC7B,6BAA6B,EAC7B,wBAAwB,EACxB,4BAA4B,EAC5B,2BAA2B,GAG5B,MAAM,0BAA0B,CAAC;AAClC,+EAA+E;AAC/E,wEAAwE;AACxE,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EACL,4BAA4B,EAC5B,wBAAwB,GACzB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,4BAA4B,GAG7B,MAAM,2BAA2B,CAAC;AAanC,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,GAIzB,MAAM,yBAAyB,CAAC"}
@@ -9,6 +9,10 @@ export interface DatabaseConnectionConfig {
9
9
  username?: string;
10
10
  password?: string;
11
11
  ssl?: boolean;
12
+ sslMode?: "disable" | "require" | "verify-ca" | "verify-full";
13
+ caCert?: string;
14
+ clientCert?: string;
15
+ clientKey?: string;
12
16
  }
13
17
  export interface RedisConnectionConfig {
14
18
  host: string;
@@ -1 +1 @@
1
- {"version":3,"file":"connection-config.d.ts","sourceRoot":"","sources":["../../../src/scenario-runner/adapters/connection-config.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,sBAAsB,GAAG,UAAU,GAAG,kBAAkB,CAAC;AAErE,MAAM,WAAW,wBAAwB;IACvC,cAAc,EAAE,sBAAsB,CAAC;IACvC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,GAAG,eAAe,GAAG,eAAe,CAAC;CAC7D;AAED,MAAM,WAAW,4BAA4B;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,uBAAuB,GAC/B,wBAAwB,GACxB,qBAAqB,GACrB,qBAAqB,GACrB,4BAA4B,CAAC"}
1
+ {"version":3,"file":"connection-config.d.ts","sourceRoot":"","sources":["../../../src/scenario-runner/adapters/connection-config.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,sBAAsB,GAAG,UAAU,GAAG,kBAAkB,CAAC;AAErE,MAAM,WAAW,wBAAwB;IACvC,cAAc,EAAE,sBAAsB,CAAC;IACvC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,OAAO,CAAC;IAId,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,aAAa,CAAC;IAC9D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,GAAG,eAAe,GAAG,eAAe,CAAC;CAC7D;AAED,MAAM,WAAW,4BAA4B;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,uBAAuB,GAC/B,wBAAwB,GACxB,qBAAqB,GACrB,qBAAqB,GACrB,4BAA4B,CAAC"}
@@ -1,4 +1,10 @@
1
- import type { ScenarioDbExecutionInput, ScenarioDbExecutionResult } from "../types.js";
1
+ import type { DbScenarioExpectedError, ScenarioDbExecutionInput, ScenarioDbExecutionResult } from "../types.js";
2
2
  import type { ScenarioRuntimeAdapterFactoryOptions } from "./types.js";
3
+ import { extractSqlState } from "../../host/db/sqlState.js";
4
+ export { extractSqlState };
5
+ export declare const matchDbExpectedError: (expectation: DbScenarioExpectedError, message: string, sqlState: string | undefined) => {
6
+ matched: boolean;
7
+ mismatchReason: string | null;
8
+ };
3
9
  export declare const buildDbExecutor: (options: ScenarioRuntimeAdapterFactoryOptions) => (input: ScenarioDbExecutionInput) => Promise<ScenarioDbExecutionResult>;
4
10
  //# sourceMappingURL=db-executor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"db-executor.d.ts","sourceRoot":"","sources":["../../../src/scenario-runner/adapters/db-executor.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,wBAAwB,EACxB,yBAAyB,EAC1B,MAAM,aAAa,CAAC;AAGrB,OAAO,KAAK,EAAE,oCAAoC,EAAE,MAAM,YAAY,CAAC;AAEvE,eAAO,MAAM,eAAe,GAC1B,SAAS,oCAAoC,MAEtC,OAAO,wBAAwB,KAAG,OAAO,CAAC,yBAAyB,CAyCzE,CAAC"}
1
+ {"version":3,"file":"db-executor.d.ts","sourceRoot":"","sources":["../../../src/scenario-runner/adapters/db-executor.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,uBAAuB,EACvB,wBAAwB,EACxB,yBAAyB,EAC1B,MAAM,aAAa,CAAC;AAGrB,OAAO,KAAK,EAAE,oCAAoC,EAAE,MAAM,YAAY,CAAC;AAEvE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,EAAE,eAAe,EAAE,CAAC;AAI3B,eAAO,MAAM,oBAAoB,GAC/B,aAAa,uBAAuB,EACpC,SAAS,MAAM,EACf,UAAU,MAAM,GAAG,SAAS,KAC3B;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;CAgCnD,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,SAAS,oCAAoC,MAEtC,OAAO,wBAAwB,KAAG,OAAO,CAAC,yBAAyB,CA+GzE,CAAC"}
@@ -2,15 +2,87 @@
2
2
  // Resolves the workspace connection, defers the actual query execution
3
3
  // to the host-supplied `databaseExecutor` driver (mongoose / oracledb /
4
4
  // postgres / etc.), wraps the result in the scenario adapter shape.
5
+ //
6
+ // Also owns the two stored-function-testing semantics that must behave
7
+ // identically on every host: session capability detection (a `useSession`
8
+ // node on a host without `databaseSessionRelease` fails fast instead of
9
+ // silently running autocommit) and expected-error evaluation (pgTAP
10
+ // `throws_ok` equivalent — a matching failure PASSES the node).
5
11
  import { withAbortAndTimeout } from "./helpers/abort.js";
12
+ import { extractSqlState } from "../../host/db/sqlState.js";
13
+ export { extractSqlState };
14
+ // Shared with hosts that build their own dbExecutor (desktop's IPC-backed
15
+ // adapter) so expectError semantics never drift between runners.
16
+ export const matchDbExpectedError = (expectation, message, sqlState) => {
17
+ const wantedState = expectation.sqlState?.trim();
18
+ const wantedPattern = expectation.messagePattern?.trim();
19
+ if (wantedState && wantedState.toUpperCase() !== (sqlState ?? "").toUpperCase()) {
20
+ return {
21
+ matched: false,
22
+ mismatchReason: `expected SQLSTATE ${wantedState}, got ${sqlState ?? "none"}`,
23
+ };
24
+ }
25
+ if (wantedPattern) {
26
+ let re;
27
+ try {
28
+ re = new RegExp(wantedPattern);
29
+ }
30
+ catch {
31
+ return {
32
+ matched: false,
33
+ mismatchReason: `invalid expectError.messagePattern regex: ${wantedPattern}`,
34
+ };
35
+ }
36
+ if (!re.test(message)) {
37
+ return {
38
+ matched: false,
39
+ mismatchReason: `error message did not match /${wantedPattern}/`,
40
+ };
41
+ }
42
+ }
43
+ if (!wantedState && !wantedPattern) {
44
+ // An empty expectation still means "this query must fail".
45
+ return { matched: true, mismatchReason: null };
46
+ }
47
+ return { matched: true, mismatchReason: null };
48
+ };
6
49
  export const buildDbExecutor = (options) => async (input) => {
7
50
  const connection = await options.resolveConnection(input.node.data.config.connectionId);
51
+ const expectError = input.node.data.config.expectError;
52
+ const hasExpectation = Boolean(expectError && (expectError.sqlState?.trim() || expectError.messagePattern?.trim()));
53
+ if (input.session && !options.drivers.databaseSessionRelease) {
54
+ return {
55
+ rawResult: { success: false, rows: [], rowCount: 0, error: "sessions unsupported" },
56
+ dbResult: null,
57
+ outputData: null,
58
+ failureMessage: "This node uses a scenario DB session, but the current runner does not support DB sessions. Run it via a host with session support or disable 'Run in scenario transaction'.",
59
+ };
60
+ }
8
61
  try {
9
62
  const result = await withAbortAndTimeout(options.drivers.databaseExecutor({
10
63
  connection,
11
64
  resolvedQuery: input.resolvedQuery,
12
65
  resolvedParams: input.resolvedParams,
66
+ session: input.session,
13
67
  }), options.nodeTimeoutMs, `Database node ${input.stepId}`, input.signal);
68
+ if (hasExpectation) {
69
+ return {
70
+ rawResult: {
71
+ success: false,
72
+ rows: result.rows,
73
+ rowCount: result.rowCount,
74
+ error: "expected an error but the query succeeded",
75
+ },
76
+ dbResult: result.rows,
77
+ outputData: { rows: result.rows, rowCount: result.rowCount },
78
+ failureMessage: `Expected the query to fail (${[
79
+ expectError?.sqlState ? `SQLSTATE ${expectError.sqlState}` : null,
80
+ expectError?.messagePattern ? `message /${expectError.messagePattern}/` : null,
81
+ ]
82
+ .filter(Boolean)
83
+ .join(", ")}), but it succeeded.`,
84
+ };
85
+ }
14
86
  return {
15
87
  rawResult: {
16
88
  success: true,
@@ -27,16 +99,49 @@ export const buildDbExecutor = (options) => async (input) => {
27
99
  }
28
100
  catch (error) {
29
101
  const message = error instanceof Error ? error.message : String(error);
102
+ const sqlState = extractSqlState(error);
103
+ if (hasExpectation && expectError) {
104
+ const { matched, mismatchReason } = matchDbExpectedError(expectError, message, sqlState);
105
+ if (matched) {
106
+ const expectedError = { sqlState: sqlState ?? null, message };
107
+ return {
108
+ rawResult: {
109
+ success: true,
110
+ rows: [],
111
+ rowCount: 0,
112
+ ...(sqlState ? { sqlState } : {}),
113
+ },
114
+ dbResult: null,
115
+ outputData: { expectedError, rows: [], rowCount: 0 },
116
+ failureMessage: null,
117
+ };
118
+ }
119
+ return {
120
+ rawResult: {
121
+ success: false,
122
+ rows: [],
123
+ rowCount: 0,
124
+ error: message,
125
+ ...(sqlState ? { sqlState } : {}),
126
+ },
127
+ dbResult: null,
128
+ outputData: null,
129
+ failureMessage: `Query failed, but not as expected (${mismatchReason}). Actual error: ${message}`,
130
+ };
131
+ }
30
132
  return {
31
133
  rawResult: {
32
134
  success: false,
33
135
  rows: [],
34
136
  rowCount: 0,
35
137
  error: message,
138
+ ...(sqlState ? { sqlState } : {}),
36
139
  },
37
140
  dbResult: null,
38
141
  outputData: null,
39
- failureMessage: message || "Database query failed.",
142
+ failureMessage: sqlState
143
+ ? `${sqlState}: ${message || "Database query failed."}`
144
+ : message || "Database query failed.",
40
145
  };
41
146
  }
42
147
  };
@@ -1 +1 @@
1
- {"version":3,"file":"db-executor.js","sourceRoot":"","sources":["../../../src/scenario-runner/adapters/db-executor.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,uEAAuE;AACvE,wEAAwE;AACxE,oEAAoE;AAOpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAGzD,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,OAA6C,EAC7C,EAAE,CACF,KAAK,EAAE,KAA+B,EAAsC,EAAE;IAC5E,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAExF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,mBAAmB,CACtC,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC;YAC/B,UAAU;YACV,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,cAAc,EAAE,KAAK,CAAC,cAAc;SACrC,CAAC,EACF,OAAO,CAAC,aAAa,EACrB,iBAAiB,KAAK,CAAC,MAAM,EAAE,EAC/B,KAAK,CAAC,MAAM,CACb,CAAC;QACF,OAAO;YACL,SAAS,EAAE;gBACT,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;aAC1B;YACD,QAAQ,EAAE,MAAM,CAAC,IAAI;YACrB,UAAU,EAAE;gBACV,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;aAC1B;YACD,cAAc,EAAE,IAAI;SACrB,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO;YACL,SAAS,EAAE;gBACT,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,EAAE;gBACR,QAAQ,EAAE,CAAC;gBACX,KAAK,EAAE,OAAO;aACf;YACD,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,IAAI;YAChB,cAAc,EAAE,OAAO,IAAI,wBAAwB;SACpD,CAAC;IACJ,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"db-executor.js","sourceRoot":"","sources":["../../../src/scenario-runner/adapters/db-executor.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import type { ScenarioRuntimeAdapters } from "../types.js";
2
2
  import type { ScenarioRuntimeAdapterFactoryOptions } from "./types.js";
3
3
  export declare const buildScenarioRuntimeAdapters: (options: ScenarioRuntimeAdapterFactoryOptions) => ScenarioRuntimeAdapters;
4
- export { buildDbExecutor } from "./db-executor.js";
4
+ export { buildDbExecutor, extractSqlState, matchDbExpectedError, } from "./db-executor.js";
5
5
  export { buildKafkaExecutor } from "./kafka-executor.js";
6
6
  export { buildNotificationExecutor } from "./notification-executor.js";
7
7
  export { buildRedisExecutor } from "./redis-executor.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/scenario-runner/adapters/index.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAU3D,OAAO,KAAK,EAAE,oCAAoC,EAAE,MAAM,YAAY,CAAC;AAEvE,eAAO,MAAM,4BAA4B,GACvC,SAAS,oCAAoC,KAC5C,uBASD,CAAC;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAIjE,OAAO,EACL,8BAA8B,EAC9B,KAAK,wBAAwB,GAC9B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,KAAK,mBAAmB,GACzB,MAAM,+BAA+B,CAAC;AAEvC,YAAY,EACV,oBAAoB,EACpB,qBAAqB,EACrB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,0BAA0B,EAC1B,yBAAyB,EACzB,sBAAsB,EACtB,6BAA6B,EAC7B,oCAAoC,GACrC,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,uBAAuB,EACvB,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,4BAA4B,EAC5B,qBAAqB,GACtB,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/scenario-runner/adapters/index.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAU3D,OAAO,KAAK,EAAE,oCAAoC,EAAE,MAAM,YAAY,CAAC;AAEvE,eAAO,MAAM,4BAA4B,GACvC,SAAS,oCAAoC,KAC5C,uBAiBD,CAAC;AAGH,OAAO,EACL,eAAe,EACf,eAAe,EACf,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAIjE,OAAO,EACL,8BAA8B,EAC9B,KAAK,wBAAwB,GAC9B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,KAAK,mBAAmB,GACzB,MAAM,+BAA+B,CAAC;AAEvC,YAAY,EACV,oBAAoB,EACpB,qBAAqB,EACrB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,0BAA0B,EAC1B,yBAAyB,EACzB,sBAAsB,EACtB,6BAA6B,EAC7B,oCAAoC,GACrC,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,uBAAuB,EACvB,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,EACrB,4BAA4B,EAC5B,qBAAqB,GACtB,MAAM,wBAAwB,CAAC"}
@@ -21,9 +21,16 @@ export const buildScenarioRuntimeAdapters = (options) => ({
21
21
  websocketExecutor: buildWebsocketExecutor(options),
22
22
  scriptExecutor: options.scriptExecutor ?? buildScriptExecutor(options),
23
23
  notificationExecutor: options.notificationExecutor ?? buildNotificationExecutor(options),
24
+ // Present only when the host driver supports run-scoped DB sessions —
25
+ // its absence is how the runner detects "sessions unsupported here".
26
+ ...(options.drivers.databaseSessionRelease
27
+ ? {
28
+ dbSessionRelease: (input) => options.drivers.databaseSessionRelease(input),
29
+ }
30
+ : {}),
24
31
  });
25
32
  // Re-exports so callers don't have to import from sibling files.
26
- export { buildDbExecutor } from "./db-executor.js";
33
+ export { buildDbExecutor, extractSqlState, matchDbExpectedError, } from "./db-executor.js";
27
34
  export { buildKafkaExecutor } from "./kafka-executor.js";
28
35
  export { buildNotificationExecutor } from "./notification-executor.js";
29
36
  export { buildRedisExecutor } from "./redis-executor.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/scenario-runner/adapters/index.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,EAAE;AACF,gEAAgE;AAChE,6DAA6D;AAC7D,qEAAqE;AACrE,qEAAqE;AACrE,uEAAuE;AACvE,wDAAwD;AAIxD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAIjE,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAC1C,OAA6C,EACpB,EAAE,CAAC,CAAC;IAC7B,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC;IAC9C,UAAU,EAAE,eAAe,CAAC,OAAO,CAAC;IACpC,aAAa,EAAE,kBAAkB,CAAC,OAAO,CAAC;IAC1C,aAAa,EAAE,kBAAkB,CAAC,OAAO,CAAC;IAC1C,iBAAiB,EAAE,sBAAsB,CAAC,OAAO,CAAC;IAClD,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,mBAAmB,CAAC,OAAO,CAAC;IACtE,oBAAoB,EAClB,OAAO,CAAC,oBAAoB,IAAI,yBAAyB,CAAC,OAAO,CAAC;CACrE,CAAC,CAAC;AAEH,iEAAiE;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,yEAAyE;AACzE,0EAA0E;AAC1E,sEAAsE;AACtE,OAAO,EACL,8BAA8B,GAE/B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,GAEzB,MAAM,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/scenario-runner/adapters/index.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,EAAE;AACF,gEAAgE;AAChE,6DAA6D;AAC7D,qEAAqE;AACrE,qEAAqE;AACrE,uEAAuE;AACvE,wDAAwD;AAIxD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAIjE,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAC1C,OAA6C,EACpB,EAAE,CAAC,CAAC;IAC7B,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC;IAC9C,UAAU,EAAE,eAAe,CAAC,OAAO,CAAC;IACpC,aAAa,EAAE,kBAAkB,CAAC,OAAO,CAAC;IAC1C,aAAa,EAAE,kBAAkB,CAAC,OAAO,CAAC;IAC1C,iBAAiB,EAAE,sBAAsB,CAAC,OAAO,CAAC;IAClD,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,mBAAmB,CAAC,OAAO,CAAC;IACtE,oBAAoB,EAClB,OAAO,CAAC,oBAAoB,IAAI,yBAAyB,CAAC,OAAO,CAAC;IACpE,sEAAsE;IACtE,qEAAqE;IACrE,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,sBAAsB;QACxC,CAAC,CAAC;YACE,gBAAgB,EAAE,CAAC,KAAwD,EAAE,EAAE,CAC7E,OAAO,CAAC,OAAO,CAAC,sBAAuB,CAAC,KAAK,CAAC;SACjD;QACH,CAAC,CAAC,EAAE,CAAC;CACR,CAAC,CAAC;AAEH,iEAAiE;AACjE,OAAO,EACL,eAAe,EACf,eAAe,EACf,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,yEAAyE;AACzE,0EAA0E;AAC1E,sEAAsE;AACtE,OAAO,EACL,8BAA8B,GAE/B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,GAEzB,MAAM,+BAA+B,CAAC"}
@@ -32,6 +32,10 @@ export interface DatabaseExecuteInput {
32
32
  connection: ScenarioConnectionRuntime;
33
33
  resolvedQuery: string;
34
34
  resolvedParams?: unknown[];
35
+ session?: {
36
+ runId: string;
37
+ transactionMode: "none" | "rollback" | "commit";
38
+ };
35
39
  }
36
40
  export interface DatabaseExecuteResult {
37
41
  rows: unknown[];
@@ -79,6 +83,10 @@ export interface ScenarioRuntimeAdapterDrivers {
79
83
  kafkaExecutor: (input: KafkaCaptureInput) => Promise<KafkaCaptureOutcome>;
80
84
  kafkaPublishExecutor?: (input: KafkaPublishInput) => Promise<ScenarioKafkaPublishResult>;
81
85
  websocketExecutor?: (input: import("../types.js").ScenarioWebsocketExecutionInput) => Promise<import("../types.js").ScenarioWebsocketExecutionResult>;
86
+ databaseSessionRelease?: (input: {
87
+ runId: string;
88
+ outcome: "commit" | "rollback";
89
+ }) => Promise<void>;
82
90
  }
83
91
  export interface ScenarioRuntimeAdapterFactoryOptions {
84
92
  workspaceId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/scenario-runner/adapters/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/scenario-runner/adapters/types.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@ export declare const CONDITION_OPERATOR_META: Array<{
10
10
  label: string;
11
11
  value: ConditionOperator;
12
12
  }>;
13
+ export declare const isArrayRightConditionOperator: (operator: ConditionOperator) => boolean;
13
14
  export declare const resolveConditionRuntimeValue: (runtimeScope: ConditionRuntimeScope, path: string) => {
14
15
  value: unknown;
15
16
  exists: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"condition.d.ts","sourceRoot":"","sources":["../../src/scenario-runner/condition.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"condition.d.ts","sourceRoot":"","sources":["../../src/scenario-runner/condition.ts"],"names":[],"mappings":"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"}
@@ -249,6 +249,8 @@ export const CONDITION_OPERATOR_META = [
249
249
  { category: "Existence", isUnary: true, label: "Not Null", value: "not_null" },
250
250
  { category: "Collection", label: "In", value: "in" },
251
251
  { category: "Collection", label: "Not In", value: "not_in" },
252
+ { category: "Collection", label: "Contains Row", value: "contains_row" },
253
+ { category: "Collection", label: "Set Equals (unordered)", value: "set_equals_unordered" },
252
254
  ];
253
255
  const OPERATOR_ALIAS_MAP = [
254
256
  { alias: "!==", operator: "strict_not_equals" },
@@ -261,7 +263,11 @@ const OPERATOR_ALIAS_MAP = [
261
263
  { alias: "<", operator: "less_than" },
262
264
  { alias: "not_contains", operator: "not_contains" },
263
265
  { alias: "not contains", operator: "not_contains" },
266
+ { alias: "contains_row", operator: "contains_row" },
267
+ { alias: "contains row", operator: "contains_row" },
264
268
  { alias: "contains", operator: "contains" },
269
+ { alias: "set_equals_unordered", operator: "set_equals_unordered" },
270
+ { alias: "set equals", operator: "set_equals_unordered" },
265
271
  { alias: "starts_with", operator: "starts_with" },
266
272
  { alias: "starts with", operator: "starts_with" },
267
273
  { alias: "ends_with", operator: "ends_with" },
@@ -340,6 +346,12 @@ const isNumericOperator = (operator) => operator === "greater_than" ||
340
346
  operator === "less_or_equal" ||
341
347
  operator === "between";
342
348
  const isCollectionOperator = (operator) => operator === "in" || operator === "not_in";
349
+ // Operators whose right operand is an array literal (drives the default
350
+ // operand type and the builder UIs' type lock).
351
+ export const isArrayRightConditionOperator = (operator) => operator === "between" ||
352
+ operator === "in" ||
353
+ operator === "not_in" ||
354
+ operator === "set_equals_unordered";
343
355
  const getOperatorToken = (operator) => {
344
356
  switch (operator) {
345
357
  case "equals":
@@ -386,6 +398,10 @@ const getOperatorToken = (operator) => {
386
398
  return "in";
387
399
  case "not_in":
388
400
  return "not in";
401
+ case "contains_row":
402
+ return "contains_row";
403
+ case "set_equals_unordered":
404
+ return "set_equals_unordered";
389
405
  default:
390
406
  return "==";
391
407
  }
@@ -580,9 +596,13 @@ const getDefaultRightOperand = (operator) => {
580
596
  if (isUnaryOperator(operator)) {
581
597
  return undefined;
582
598
  }
583
- if (operator === "between" || isCollectionOperator(operator)) {
599
+ if (isArrayRightConditionOperator(operator)) {
584
600
  return createConditionOperand("literal", "array", operator === "between" ? [0, 1] : []);
585
601
  }
602
+ if (operator === "contains_row") {
603
+ // JSON object literal — "{ column: expected }" row matcher.
604
+ return createConditionOperand("literal", "string", "{}");
605
+ }
586
606
  return createConditionOperand("literal", "string", "");
587
607
  };
588
608
  const parseLegacyConditionOperator = (value) => LEGACY_OPERATOR_MAP[value] ?? "equals";
@@ -1342,6 +1362,105 @@ const buildConditionRegex = (value) => {
1342
1362
  }
1343
1363
  return new RegExp(trimmed);
1344
1364
  };
1365
+ // --- Result-set assertion helpers (DB rows) -----------------------------
1366
+ // Accept an object literal typed as string ('{"tier":"GOLD"}') or an actual
1367
+ // record from a runtime path.
1368
+ const coerceRecordOperand = (value) => {
1369
+ if (isRecord(value))
1370
+ return value;
1371
+ if (typeof value === "string") {
1372
+ try {
1373
+ const parsed = JSON.parse(value);
1374
+ return isRecord(parsed) ? parsed : null;
1375
+ }
1376
+ catch {
1377
+ return null;
1378
+ }
1379
+ }
1380
+ return null;
1381
+ };
1382
+ const coerceArrayOperand = (value) => {
1383
+ if (Array.isArray(value))
1384
+ return value;
1385
+ if (typeof value === "string") {
1386
+ try {
1387
+ const parsed = JSON.parse(value);
1388
+ return Array.isArray(parsed) ? parsed : null;
1389
+ }
1390
+ catch {
1391
+ return null;
1392
+ }
1393
+ }
1394
+ return null;
1395
+ };
1396
+ // "Some row matches every expected key" — pgTAP-ish `results_ne`-lite for
1397
+ // side-effect table checks: {{Ledger.rows}} contains_row {"tier":"GOLD",
1398
+ // "cashback": 2.5}. Values compare loosely so pg numeric strings match
1399
+ // number literals.
1400
+ const evaluateContainsRow = (leftValue, rightValue) => {
1401
+ const rows = coerceArrayOperand(leftValue);
1402
+ const expected = coerceRecordOperand(rightValue);
1403
+ if (!rows || !expected)
1404
+ return false;
1405
+ const keys = Object.keys(expected);
1406
+ if (keys.length === 0)
1407
+ return rows.length > 0;
1408
+ return rows.some((row) => isRecord(row) &&
1409
+ keys.every((key) => compareLooseEquality(row[key], expected[key])));
1410
+ };
1411
+ // Multiset equality, order-insensitive (pgTAP `bag_eq` equivalent). Values
1412
+ // are canonicalized first: numeric strings become numbers ("2.50" → 2.5) and
1413
+ // object keys sort, so row order and numeric formatting don't matter.
1414
+ const canonicalizeForSetEquality = (value) => {
1415
+ if (typeof value === "string") {
1416
+ const trimmed = value.trim();
1417
+ if (trimmed !== "" && !Number.isNaN(Number(trimmed))) {
1418
+ const asNumber = Number(trimmed);
1419
+ if (Number.isFinite(asNumber))
1420
+ return asNumber;
1421
+ }
1422
+ return value;
1423
+ }
1424
+ if (Array.isArray(value))
1425
+ return value.map(canonicalizeForSetEquality);
1426
+ if (isRecord(value)) {
1427
+ const record = value;
1428
+ return Object.fromEntries(Object.keys(record)
1429
+ .sort()
1430
+ .map((key) => [key, canonicalizeForSetEquality(record[key])]));
1431
+ }
1432
+ return value;
1433
+ };
1434
+ const evaluateSetEqualsUnordered = (leftValue, rightValue) => {
1435
+ const leftArray = coerceArrayOperand(leftValue);
1436
+ const rightArray = coerceArrayOperand(rightValue);
1437
+ if (!leftArray || !rightArray || leftArray.length !== rightArray.length)
1438
+ return false;
1439
+ const serialize = (entry) => {
1440
+ try {
1441
+ return JSON.stringify(canonicalizeForSetEquality(entry)) ?? "null";
1442
+ }
1443
+ catch {
1444
+ return String(entry);
1445
+ }
1446
+ };
1447
+ const counts = new Map();
1448
+ for (const entry of leftArray) {
1449
+ const key = serialize(entry);
1450
+ counts.set(key, (counts.get(key) ?? 0) + 1);
1451
+ }
1452
+ for (const entry of rightArray) {
1453
+ const key = serialize(entry);
1454
+ const current = counts.get(key);
1455
+ if (!current)
1456
+ return false;
1457
+ if (current === 1)
1458
+ counts.delete(key);
1459
+ else
1460
+ counts.set(key, current - 1);
1461
+ }
1462
+ return counts.size === 0;
1463
+ };
1345
1464
  const compareLooseEquality = (left, right) => {
1346
1465
  if (Array.isArray(left) || Array.isArray(right) || isRecord(left) || isRecord(right)) {
1347
1466
  try {
@@ -1551,6 +1670,12 @@ export const evaluateConditionRule = (rule, runtimeScope) => {
1551
1670
  ? !right.value.some((entry) => compareLooseEquality(left.value, entry))
1552
1671
  : false;
1553
1672
  break;
1673
+ case "contains_row":
1674
+ result = evaluateContainsRow(left.value, right?.value);
1675
+ break;
1676
+ case "set_equals_unordered":
1677
+ result = evaluateSetEqualsUnordered(left.value, right?.value);
1678
+ break;
1554
1679
  default:
1555
1680
  result = false;
1556
1681
  break;
@@ -1822,7 +1947,7 @@ export const updateConditionRuleOperator = (rootGroup, ruleId, operator) => upda
1822
1947
  ? { right: undefined }
1823
1948
  : {
1824
1949
  right: rule.right &&
1825
- ((operator !== "between" && operator !== "in" && operator !== "not_in") ||
1950
+ (!isArrayRightConditionOperator(operator) ||
1826
1951
  rule.right.valueType === "array")
1827
1952
  ? cloneConditionOperand(rule.right)
1828
1953
  : getDefaultRightOperand(operator),