@alwaysmeticulous/sdk-bundles-api 2.316.0 → 2.321.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.
@@ -21,6 +21,13 @@ export interface MeticulousPrismaExtension {
21
21
  * to call across the bundle boundary.
22
22
  */
23
23
  export type MeticulousIORedisWrapper = <T>(client: T) => T;
24
+ /**
25
+ * Wraps a postgres.js `sql` instance so its queries are recorded (record mode) or served from
26
+ * recordings (replay mode), returning the same instance. Apply it where you construct the
27
+ * client: `const sql = handle.withMeticulousPostgres(postgres(connectionString))`. Safe to call
28
+ * across the bundle boundary.
29
+ */
30
+ export type MeticulousPostgresJsWrapper = <T>(sql: T) => T;
24
31
  export interface BackendRecorderHandle {
25
32
  stopRecording: () => Promise<void>;
26
33
  /**
@@ -68,5 +75,29 @@ export interface BackendRecorderHandle {
68
75
  * guard with `handle?.withMeticulousIORedis`.
69
76
  */
70
77
  withMeticulousIORedis?: MeticulousIORedisWrapper;
78
+ /**
79
+ * The Meticulous postgres.js wrapper. Apply it to your `sql` instance
80
+ * (`const sql = handle.withMeticulousPostgres(postgres(connectionString))`) so its queries
81
+ * are recorded (record mode) or served from recordings (replay mode).
82
+ *
83
+ * Required to capture postgres.js in apps whose bundler inlines it — a Vite SSR graph
84
+ * (React Router, TanStack Start), Next.js / Turbopack and similar — because `postgres` then
85
+ * never passes through Node's module loader and the recorder's require-hook instrumentation
86
+ * can never fire. The only seam is the app's own code, so wrap the instance where you
87
+ * construct it.
88
+ *
89
+ * Every postgres.js query funnels through one internal method, so the wrapper instruments
90
+ * that rather than the instance: one call therefore also covers read-replica clients and any
91
+ * other client in the process. The instrumentation dispatches at query time, so it is safe to
92
+ * apply at module-load time; when the recorder is disabled or uninitialised it passes through
93
+ * (no-op).
94
+ *
95
+ * Apply it outermost if other instrumentation also wraps the client (e.g. Sentry's
96
+ * `instrumentPostgresJsSql`).
97
+ *
98
+ * Optional so older recorder bundles (which predate this field) still satisfy the type;
99
+ * guard with `handle?.withMeticulousPostgres`.
100
+ */
101
+ withMeticulousPostgres?: MeticulousPostgresJsWrapper;
71
102
  }
72
103
  //# sourceMappingURL=init-backend-recorder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"init-backend-recorder.d.ts","sourceRoot":"","sources":["../../../src/backend-recorder/bundle-to-sdk/init-backend-recorder.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE;QACL,cAAc,EAAE,CAAC,MAAM,EAAE;YACvB,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,SAAS,EAAE,MAAM,CAAC;YAClB,IAAI,EAAE,OAAO,CAAC;YACd,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;SAC5C,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;KACxB,CAAC;CACH;AAED;;;;;GAKG;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC;AAE3D,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnC;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,yBAAyB,CAAC,EAAE,yBAAyB,CAAC;IAEtD;;;;;;;;;;;;;;;;OAgBG;IACH,qBAAqB,CAAC,EAAE,wBAAwB,CAAC;CAClD"}
1
+ {"version":3,"file":"init-backend-recorder.d.ts","sourceRoot":"","sources":["../../../src/backend-recorder/bundle-to-sdk/init-backend-recorder.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE;QACL,cAAc,EAAE,CAAC,MAAM,EAAE;YACvB,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,SAAS,EAAE,MAAM,CAAC;YAClB,IAAI,EAAE,OAAO,CAAC;YACd,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;SAC5C,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;KACxB,CAAC;CACH;AAED;;;;;GAKG;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC;AAE3D;;;;;GAKG;AACH,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;AAE3D,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnC;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,yBAAyB,CAAC,EAAE,yBAAyB,CAAC;IAEtD;;;;;;;;;;;;;;;;OAgBG;IACH,qBAAqB,CAAC,EAAE,wBAAwB,CAAC;IAEjD;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,sBAAsB,CAAC,EAAE,2BAA2B,CAAC;CACtD"}
package/dist/index.d.ts CHANGED
@@ -14,5 +14,5 @@ export { MeticulousPublicApi, MeticulousPressureObserver, MeticulousPressureObse
14
14
  export { MeticulousPrivateApi } from "./window-api/private-window-api";
15
15
  export { RunCrawlOptions, RunCrawlResult, } from "./crawler/sdk-to-bundle/run-crawl";
16
16
  export { BackendRecorderConfig } from "./backend-recorder/sdk-to-bundle/init-backend-recorder";
17
- export { BackendRecorderHandle, MeticulousPrismaExtension, MeticulousIORedisWrapper, } from "./backend-recorder/bundle-to-sdk/init-backend-recorder";
17
+ export { BackendRecorderHandle, MeticulousPrismaExtension, MeticulousIORedisWrapper, MeticulousPostgresJsWrapper, } from "./backend-recorder/bundle-to-sdk/init-backend-recorder";
18
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EACL,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,0BAA0B,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,OAAO,EACL,4BAA4B,EAC5B,YAAY,EACZ,6BAA6B,EAC7B,eAAe,EACf,+BAA+B,EAC/B,sBAAsB,EACtB,uCAAuC,EACvC,WAAW,EACX,sBAAsB,EACtB,kBAAkB,EAClB,wBAAwB,EACxB,2BAA2B,EAC3B,kCAAkC,EAClC,oBAAoB,EACpB,kCAAkC,EAClC,2BAA2B,EAC3B,uBAAuB,EACvB,oBAAoB,EACpB,sBAAsB,EACtB,YAAY,EACZ,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,oDAAoD,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sDAAsD,CAAC;AAC7F,OAAO,EAAE,8BAA8B,EAAE,MAAM,gEAAgE,CAAC;AAChH,OAAO,EAAE,mCAAmC,EAAE,MAAM,sEAAsE,CAAC;AAC3H,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,uBAAuB,EACvB,wBAAwB,EACxB,eAAe,EACf,sBAAsB,GACvB,MAAM,sDAAsD,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gEAAgE,CAAC;AACnG,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,sEAAsE,CAAC;AAC9E,OAAO,EACL,2BAA2B,EAC3B,eAAe,EACf,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oDAAoD,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oDAAoD,CAAC;AACxF,OAAO,EACL,mBAAmB,EACnB,0BAA0B,EAC1B,qCAAqC,EACrC,wBAAwB,EACxB,wBAAwB,EACxB,uBAAuB,EACvB,2BAA2B,EAC3B,0BAA0B,EAC1B,iCAAiC,EACjC,0BAA0B,EAC1B,iCAAiC,GAClC,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EACL,eAAe,EACf,cAAc,GACf,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,wDAAwD,CAAC;AAC/F,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,wDAAwD,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EACL,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,0BAA0B,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,OAAO,EACL,4BAA4B,EAC5B,YAAY,EACZ,6BAA6B,EAC7B,eAAe,EACf,+BAA+B,EAC/B,sBAAsB,EACtB,uCAAuC,EACvC,WAAW,EACX,sBAAsB,EACtB,kBAAkB,EAClB,wBAAwB,EACxB,2BAA2B,EAC3B,kCAAkC,EAClC,oBAAoB,EACpB,kCAAkC,EAClC,2BAA2B,EAC3B,uBAAuB,EACvB,oBAAoB,EACpB,sBAAsB,EACtB,YAAY,EACZ,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,oDAAoD,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sDAAsD,CAAC;AAC7F,OAAO,EAAE,8BAA8B,EAAE,MAAM,gEAAgE,CAAC;AAChH,OAAO,EAAE,mCAAmC,EAAE,MAAM,sEAAsE,CAAC;AAC3H,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,uBAAuB,EACvB,wBAAwB,EACxB,eAAe,EACf,sBAAsB,GACvB,MAAM,sDAAsD,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gEAAgE,CAAC;AACnG,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,sEAAsE,CAAC;AAC9E,OAAO,EACL,2BAA2B,EAC3B,eAAe,EACf,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oDAAoD,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oDAAoD,CAAC;AACxF,OAAO,EACL,mBAAmB,EACnB,0BAA0B,EAC1B,qCAAqC,EACrC,wBAAwB,EACxB,wBAAwB,EACxB,uBAAuB,EACvB,2BAA2B,EAC3B,0BAA0B,EAC1B,iCAAiC,EACjC,0BAA0B,EAC1B,iCAAiC,GAClC,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EACL,eAAe,EACf,cAAc,GACf,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,wDAAwD,CAAC;AAC/F,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,wBAAwB,EACxB,2BAA2B,GAC5B,MAAM,wDAAwD,CAAC"}
@@ -60,6 +60,13 @@ export interface ReplayAndStoreResultsResult {
60
60
  * Only present on replays from March 2025 and later.
61
61
  */
62
62
  comparedAgainstReplayWithDifferentLogicVersion?: boolean;
63
+ /**
64
+ * How long this replay spent blocked waiting for its base session to finish,
65
+ * after its own replay work was done. The orchestrator uses it to work out
66
+ * whether base waits extended the chunk's wall clock, which is what makes
67
+ * them cost compute.
68
+ */
69
+ baseSessionWaitMs?: number;
63
70
  }
64
71
  export interface BeforeUserEventResult {
65
72
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"execute-replay.d.ts","sourceRoot":"","sources":["../../../src/replay-orchestrator/bundle-to-sdk/execute-replay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,MAAM,EACN,eAAe,EACf,oBAAoB,EACrB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,WAAW,EAAE,OAAO,CAAC,2BAA2B,CAAC,CAAC;IAElD;;;;;OAKG;IACH,mBAAmB,EAAE,sBAAsB,EAAE,CAAC;IAE9C;;OAEG;IACH,cAAc,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1D;;OAEG;IACH,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,sBAAuB,SAAQ,eAAe;IAC7D;;;OAGG;IACH,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAEhC;;OAEG;IACH,gCAAgC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAErE;;;OAGG;IACH,wBAAwB,EAAE,MAAM,CAAC;IAEjC;;;OAGG;IACH,wBAAwB,EAAE,MAAM,CAAC;IAEjC;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC;;;;;;OAMG;IACH,8CAA8C,CAAC,EAAE,OAAO,CAAC;CAC1D;AAED,MAAM,WAAW,qBAAqB;IACpC;;;;;OAKG;IACH,2BAA2B,CAAC,EAAE,MAAM,CAAC;CACtC;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAChC,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;CAC5B"}
1
+ {"version":3,"file":"execute-replay.d.ts","sourceRoot":"","sources":["../../../src/replay-orchestrator/bundle-to-sdk/execute-replay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,MAAM,EACN,eAAe,EACf,oBAAoB,EACrB,MAAM,uBAAuB,CAAC;AAE/B,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,WAAW,EAAE,OAAO,CAAC,2BAA2B,CAAC,CAAC;IAElD;;;;;OAKG;IACH,mBAAmB,EAAE,sBAAsB,EAAE,CAAC;IAE9C;;OAEG;IACH,cAAc,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1D;;OAEG;IACH,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,sBAAuB,SAAQ,eAAe;IAC7D;;;OAGG;IACH,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAEhC;;OAEG;IACH,gCAAgC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAErE;;;OAGG;IACH,wBAAwB,EAAE,MAAM,CAAC;IAEjC;;;OAGG;IACH,wBAAwB,EAAE,MAAM,CAAC;IAEjC;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC;;;;;;OAMG;IACH,8CAA8C,CAAC,EAAE,OAAO,CAAC;IAEzD;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,qBAAqB;IACpC;;;;;OAKG;IACH,2BAA2B,CAAC,EAAE,MAAM,CAAC;CACtC;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAChC,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;CAC5B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alwaysmeticulous/sdk-bundles-api",
3
- "version": "2.316.0",
3
+ "version": "2.321.0",
4
4
  "description": "Meticulous common types",
5
5
  "license": "ISC",
6
6
  "main": "dist/index.js",
@@ -9,7 +9,7 @@
9
9
  "dist"
10
10
  ],
11
11
  "dependencies": {
12
- "@alwaysmeticulous/api": "2.312.0"
12
+ "@alwaysmeticulous/api": "2.321.0"
13
13
  },
14
14
  "author": {
15
15
  "name": "The Meticulous Team",