@uptimizr/sdk-core 0.2.0 → 0.4.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.
@@ -1 +1 @@
1
- {"version":3,"file":"aggregator.d.ts","sourceRoot":"","sources":["../../src/aggregation/aggregator.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAU9C,OAAO,KAAK,EAA8B,QAAQ,EAA0B,MAAM,eAAe,CAAC;AAElG;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,sCAAsC;IACtC,IAAI,CAAC,EAAE;QACL,6EAA6E;QAC7E,YAAY,EAAE,OAAO,CAAC;QACtB,0CAA0C;QAC1C,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,oDAAoD;IACpD,IAAI,CAAC,EAAE;QACL,8EAA8E;QAC9E,YAAY,EAAE,OAAO,CAAC;KACvB,CAAC;IACF,qDAAqD;IACrD,UAAU,CAAC,EAAE;QACX,4DAA4D;QAC5D,WAAW,EAAE,MAAM,CAAC;QACpB,+CAA+C;QAC/C,WAAW,EAAE,OAAO,CAAC;QACrB,qDAAqD;QACrD,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAkB,SAAQ,gBAAgB;IACzD,yEAAyE;IACzE,IAAI,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;CACnC;AAUD;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,UAAU;IACzB,kFAAkF;IAClF,MAAM,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IACjC,gFAAgF;IAChF,KAAK,IAAI,IAAI,CAAC;CACf;AAED,oCAAoC;AACpC,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,UAAU,CA6LvE"}
1
+ {"version":3,"file":"aggregator.d.ts","sourceRoot":"","sources":["../../src/aggregation/aggregator.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAU9C,OAAO,KAAK,EAA8B,QAAQ,EAA0B,MAAM,eAAe,CAAC;AAElG;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,sCAAsC;IACtC,IAAI,CAAC,EAAE;QACL,6EAA6E;QAC7E,YAAY,EAAE,OAAO,CAAC;QACtB,0CAA0C;QAC1C,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,oDAAoD;IACpD,IAAI,CAAC,EAAE;QACL,8EAA8E;QAC9E,YAAY,EAAE,OAAO,CAAC;KACvB,CAAC;IACF,qDAAqD;IACrD,UAAU,CAAC,EAAE;QACX,4DAA4D;QAC5D,WAAW,EAAE,MAAM,CAAC;QACpB,+CAA+C;QAC/C,WAAW,EAAE,OAAO,CAAC;QACrB,qDAAqD;QACrD,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAkB,SAAQ,gBAAgB;IACzD,yEAAyE;IACzE,IAAI,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;CACnC;AAUD;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,UAAU;IACzB,kFAAkF;IAClF,MAAM,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IACjC,gFAAgF;IAChF,KAAK,IAAI,IAAI,CAAC;CACf;AAED,oCAAoC;AACpC,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,UAAU,CA+LvE"}
@@ -39,6 +39,7 @@ export function createAggregator(options) {
39
39
  ...(percentiles ?? {}),
40
40
  ...(typeof s.dpr === "number" && s.dpr > 0 ? { dpr: s.dpr } : {}),
41
41
  ...(s.renderScale !== undefined ? { renderScale: s.renderScale } : {}),
42
+ ...(s.position ? { position: s.position } : {}),
42
43
  });
43
44
  }
44
45
  function handleNode(s) {
@@ -166,6 +167,7 @@ export function createAggregator(options) {
166
167
  mesh: snapshot.mesh,
167
168
  dwellMs: snapshot.dwellMs,
168
169
  ...(snapshot.source ? { source: snapshot.source } : {}),
170
+ ...(snapshot.uv ? { uv: snapshot.uv } : {}),
169
171
  });
170
172
  return;
171
173
  }
@@ -1 +1 @@
1
- {"version":3,"file":"aggregator.js","sourceRoot":"","sources":["../../src/aggregation/aggregator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aggregator.js","sourceRoot":"","sources":["../../src/aggregation/aggregator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEpD,OAAO,EACL,SAAS,EACT,mBAAmB,EACnB,aAAa,EACb,SAAS,EACT,sBAAsB,EACtB,OAAO,GAER,MAAM,WAAW,CAAC;AAuEnB,oCAAoC;AACpC,MAAM,UAAU,gBAAgB,CAAC,OAA0B;IACzD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAE1B,2BAA2B;IAC3B,IAAI,OAA2B,CAAC;IAEhC,qEAAqE;IACrE,MAAM,cAAc,GAAG,IAAI,GAAG,EAAsB,CAAC;IAErD,uCAAuC;IACvC,IAAI,MAAM,GAAG,IAAI,GAAG,EAAiC,CAAC;IACtD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAgB,CAAC;IAE3C,SAAS,UAAU,CAAC,CAAe;QACjC,MAAM,MAAM,GAAG,CAAC,CAAC,UAAU,CAAC;QAC5B,IAAI,WAES,CAAC;QACd,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACvC,IAAK,MAAM,CAAC,CAAC,CAAY,GAAG,CAAC,CAAC,WAAW;oBAAE,UAAU,EAAE,CAAC;YAC1D,CAAC;YACD,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACxD,WAAW,GAAG;gBACZ,cAAc,EAAE,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC;gBACzC,cAAc,EAAE,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC;gBACzC,UAAU;aACX,CAAC;QACJ,CAAC;QACD,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,EAAE,YAAY,IAAI,KAAK,CAAC;QACrD,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,EAAE,YAAY,IAAI,CAAC,CAAC;QAClD,IAAI,QAAQ,IAAI,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,CAAC,IAAI,SAAS,EAAE,CAAC;YAChF,OAAO;QACT,CAAC;QACD,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC;QAChB,IAAI,CAAC;YACH,IAAI,EAAE,YAAY;YAClB,GAAG,EAAE,CAAC,CAAC,GAAG;YACV,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC;YACtB,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK,QAAQ,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjE,GAAG,CAAC,CAAC,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClC,CAAC,CAAC;IACnB,CAAC;IAED,SAAS,UAAU,CAAC,CAAe;QACjC,MAAM,MAAM,GAAe,CAAC,CAAC,UAAU,IAAI,aAAa,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC/E,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM;YAClB,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,mBAAmB,CAAC,CAAC,MAAM,EAAE;YAC1C,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS;gBACzB,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,SAAS,CAAC,CAAC,SAAS,EAAE;gBACnC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACf,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,EAAE,YAAY,IAAI,KAAK,CAAC;QACrD,MAAM,IAAI,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,QAAQ,IAAI,IAAI,IAAI,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtE,OAAO;QACT,CAAC;QACD,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAChC,IAAI,CAAC;YACH,IAAI,EAAE,gBAAgB;YACtB,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,GAAG,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChE,GAAG,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvD,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACnC,CAAC,CAAC;IACnB,CAAC;IAED,SAAS,oBAAoB,CAAC,CAAyB;QACrD,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC;YAAE,OAAO;QAC1B,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU,EAAE,WAAW,IAAI,CAAC,CAAC;QACzD,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU,EAAE,WAAW,IAAI,KAAK,CAAC;QAC7D,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QACnC,KAAK,MAAM,GAAG,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;YAC3B,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,sBAAsB,CAC/C,CAAC,CAAC,MAAM,EACR,CAAC,CAAC,OAAO,EACT,MAAM,EACN,OAAO,EACP,GAAG,CAAC,MAAM,EACV,GAAG,CAAC,MAAM,EACV,WAAW,CACZ,CAAC;YACF,IAAI,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC/B,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,GAAG,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;gBAC5D,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAC5B,CAAC;YACD,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC;YAC1B,IAAI,QAAQ;gBAAE,GAAG,CAAC,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC;YACzC,IAAI,IAAI,GAAG,GAAG,CAAC,iBAAiB;gBAAE,GAAG,CAAC,iBAAiB,GAAG,IAAI,CAAC;YAC/D,IAAI,WAAW,IAAI,GAAG,CAAC,IAAI;gBAAE,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC;QACrD,CAAC;IACH,CAAC;IAED,SAAS,qBAAqB;QAC5B,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO;QAC9B,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,EAAE,SAAS,IAAI,IAAI,CAAC;QACxD,MAAM,OAAO,GAAG,MAAM,CAAC;QACvB,MAAM,GAAG,IAAI,GAAG,EAAiC,CAAC;QAClD,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC;YAClC,IAAI,GAAG,CAAC,SAAS,IAAI,CAAC;gBAAE,SAAS;YACjC,IAAI,MAAwB,CAAC;YAC7B,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;gBACf,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAClC,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC;oBACrD,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBAC/B,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;gBACnC,CAAC;YACH,CAAC;YACD,IAAI,CAAC;gBACH,IAAI,EAAE,iBAAiB;gBACvB,IAAI;gBACJ,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;gBACpC,GAAG,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzE,GAAG,CAAC,GAAG,CAAC,iBAAiB,GAAG,CAAC;oBAC3B,CAAC,CAAC,EAAE,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE;oBACtE,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAChB,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IAED,OAAO;QACL,MAAM,CAAC,QAAkB;YACvB,QAAQ,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACzB,KAAK,QAAQ;oBACX,IAAI,CAAC;wBACH,IAAI,EAAE,eAAe;wBACrB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;wBAC3B,SAAS,EAAE,QAAQ,CAAC,SAAS;wBAC7B,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACvD,GAAG,CAAC,QAAQ,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC5D,GAAG,CAAC,QAAQ,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACrE,GAAG,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC/D,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC7D,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBAC7C,CAAC,CAAC;oBACjB,OAAO;gBACT,KAAK,MAAM;oBACT,UAAU,CAAC,QAAQ,CAAC,CAAC;oBACrB,OAAO;gBACT,KAAK,MAAM;oBACT,UAAU,CAAC,QAAQ,CAAC,CAAC;oBACrB,OAAO;gBACT,KAAK,gBAAgB;oBACnB,oBAAoB,CAAC,QAAQ,CAAC,CAAC;oBAC/B,OAAO;gBACT,KAAK,iBAAiB;oBACpB,qBAAqB,EAAE,CAAC;oBACxB,OAAO;gBACT,KAAK,SAAS,CAAC,CAAC,CAAC;oBACf,MAAM,UAAU,GAAG,qBAAqB,CACtC,QAAQ,CAAC,KAAK,EACd,QAAQ,CAAC,GAAG,EACZ,QAAQ,CAAC,OAAO,IAAI,EAAE,CACvB,CAAC;oBACF,IAAI,CAAC,UAAU;wBAAE,OAAO;oBACxB,IAAI,CAAC;wBACH,IAAI,EAAE,gBAAgB;wBACtB,IAAI,EAAE,UAAU,CAAC,IAAI;wBACrB,UAAU,EAAE,QAAQ,CAAC,UAAU;wBAC/B,GAAG,CAAC,UAAU,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC/E,GAAG,CAAC,UAAU,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC5E,GAAG,CAAC,UAAU,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAClF,GAAG,CAAC,UAAU,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC5E,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBAC1C,CAAC,CAAC;oBACjB,OAAO;gBACT,CAAC;gBACD,KAAK,OAAO;oBACV,IAAI,CAAC;wBACH,IAAI,EAAE,aAAa;wBACnB,IAAI,EAAE,QAAQ,CAAC,IAAI;wBACnB,OAAO,EAAE,QAAQ,CAAC,OAAO;wBACzB,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACvD,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBAC9B,CAAC,CAAC;oBACjB,OAAO;YACX,CAAC;QACH,CAAC;QACD,KAAK;YACH,OAAO,GAAG,SAAS,CAAC;YACpB,cAAc,CAAC,KAAK,EAAE,CAAC;YACvB,MAAM,GAAG,IAAI,GAAG,EAAiC,CAAC;YAClD,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,+FAA+F;AAC/F,SAAS,aAAa,CAAC,MAAgC,EAAE,QAAgB;IACvE,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QAClC,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IACzD,CAAC;IACD,MAAM,CAAC,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,MAAM,GAAe,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC1E,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;IAC7B,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,QAAQ,EAAE,CAAC;QAC9F,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;IACzB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -47,6 +47,12 @@ export interface PerfSnapshot {
47
47
  jankFrameMs: number;
48
48
  dpr?: number;
49
49
  renderScale?: number;
50
+ /**
51
+ * Camera world position at sample time, when the connector captures it (#145).
52
+ * Threaded straight onto the emitted `frame_perf` so FPS can be voxel-binned
53
+ * spatially. Omitted when no camera is resolvable (e.g. headless perf capture).
54
+ */
55
+ position?: Vec3;
50
56
  }
51
57
  /**
52
58
  * A node/bone transform snapshot. Either already-decomposed (engines that expose
@@ -106,6 +112,8 @@ export interface HoverSnapshot {
106
112
  mesh: string;
107
113
  dwellMs: number;
108
114
  source?: string;
115
+ /** Texture-space UV `[u, v]` where the pointer dwelt on the mesh (#149), when resolvable. */
116
+ uv?: [number, number];
109
117
  }
110
118
  /** The union the aggregator ingests. */
111
119
  export type Snapshot = CameraSnapshot | PerfSnapshot | NodeSnapshot | VisibilityTickSnapshot | VisibilityFlushSnapshot | GestureSnapshot | HoverSnapshot;
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../src/aggregation/snapshot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../src/aggregation/snapshot.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../src/aggregation/snapshot.ts"],"names":[],"mappings":"AAwIA;;;;;GAKG;AACH,MAAM,UAAU,4BAA4B,CAAC,QAAkB;IAC7D,IAAI,QAAQ,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;QAChC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,QAAQ,CAAC,OAAO,KAAK,MAAM,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QACnD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC"}
1
+ {"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../src/aggregation/snapshot.ts"],"names":[],"mappings":"AAgJA;;;;;GAKG;AACH,MAAM,UAAU,4BAA4B,CAAC,QAAkB;IAC7D,IAAI,QAAQ,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;QAChC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,QAAQ,CAAC,OAAO,KAAK,MAAM,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QACnD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC"}
package/dist/client.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { CustomPropValue } from "@uptimizr/schema";
1
+ import type { CustomPropValue, Vec3 } from "@uptimizr/schema";
2
2
  import type { CapabilityChangeReport, Collector, EventInput, ResolvedConfig, StartMeta, TrackInputOptions, UptimizrConfig } from "./types.js";
3
3
  /**
4
4
  * The core Uptimizr client. Framework-agnostic: it owns the session, the event
@@ -32,6 +32,15 @@ export declare class UptimizrClient {
32
32
  private resizeTimer;
33
33
  private errorCount;
34
34
  private lastErrorKey;
35
+ /**
36
+ * Best-effort camera-position source (issue #154). A connector registers this
37
+ * via {@link CollectorContext.setPositionProvider}; the client queries it when
38
+ * emitting a spatially-meaningful diagnostic (`runtime_error` /
39
+ * `graphics_diagnostic`) that didn't already carry a `position`, so those events
40
+ * gain a world location for the spatial error heatmap. Returns `undefined` when
41
+ * no camera can be resolved; a throwing provider is swallowed (never breaks emit).
42
+ */
43
+ private positionProvider?;
35
44
  private readonly boundVisibility;
36
45
  private readonly boundPageHide;
37
46
  private readonly boundFocus;
@@ -52,6 +61,15 @@ export declare class UptimizrClient {
52
61
  * the scene is applied to `session_start`.
53
62
  */
54
63
  setScene(sceneId: string): void;
64
+ /**
65
+ * Register a best-effort camera-position source (issue #154). Connectors that
66
+ * can introspect the live camera (e.g. `@uptimizr/babylon`) call this so the
67
+ * client can stamp a world `position` on spatially-meaningful diagnostics
68
+ * (`runtime_error` / `graphics_diagnostic`) that don't already carry one,
69
+ * powering the spatial error heatmap. Pass `undefined` to clear it (e.g. on
70
+ * connector teardown). Last registration wins.
71
+ */
72
+ setPositionProvider(provider: (() => Vec3 | undefined) | undefined): void;
55
73
  /** Build the envelope and queue an event. */
56
74
  emit(input: EventInput): void;
57
75
  /**
@@ -63,6 +81,15 @@ export declare class UptimizrClient {
63
81
  * does not skew timestamps.
64
82
  */
65
83
  private emitInternal;
84
+ /**
85
+ * Attach a best-effort camera `position` to a spatially-meaningful diagnostic
86
+ * (issue #154). Only `runtime_error` / `graphics_diagnostic` are enriched, and
87
+ * only when the event doesn't already carry a `position` and a
88
+ * {@link positionProvider} is registered. Runs before `beforeSend` so deployers
89
+ * can still redact/drop it. A missing (`undefined`) or throwing provider leaves
90
+ * the event untouched — enrichment must never break emission.
91
+ */
92
+ private enrichPosition;
66
93
  /** Emit a developer-defined `custom` event. */
67
94
  track(name: string, props?: Record<string, CustomPropValue>): void;
68
95
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/client.js CHANGED
@@ -25,6 +25,8 @@ function resolveConfig(config) {
25
25
  captureLifecycle: config.captureLifecycle ?? true,
26
26
  resizeDebounceMs: config.resizeDebounceMs ?? DEFAULTS.resizeDebounceMs,
27
27
  captureErrors: config.captureErrors ?? false,
28
+ captureGraphicsDiagnostics: config.captureGraphicsDiagnostics ?? false,
29
+ captureShaderSource: config.captureShaderSource ?? false,
28
30
  debug: config.debug ?? false,
29
31
  };
30
32
  }
@@ -60,6 +62,15 @@ export class UptimizrClient {
60
62
  resizeTimer;
61
63
  errorCount = 0;
62
64
  lastErrorKey;
65
+ /**
66
+ * Best-effort camera-position source (issue #154). A connector registers this
67
+ * via {@link CollectorContext.setPositionProvider}; the client queries it when
68
+ * emitting a spatially-meaningful diagnostic (`runtime_error` /
69
+ * `graphics_diagnostic`) that didn't already carry a `position`, so those events
70
+ * gain a world location for the spatial error heatmap. Returns `undefined` when
71
+ * no camera can be resolved; a throwing provider is swallowed (never breaks emit).
72
+ */
73
+ positionProvider;
63
74
  boundVisibility = () => this.onVisibilityChange();
64
75
  boundPageHide = () => {
65
76
  void this.stop("hidden");
@@ -146,6 +157,17 @@ export class UptimizrClient {
146
157
  this.emit({ type: "scene_change" });
147
158
  }
148
159
  }
160
+ /**
161
+ * Register a best-effort camera-position source (issue #154). Connectors that
162
+ * can introspect the live camera (e.g. `@uptimizr/babylon`) call this so the
163
+ * client can stamp a world `position` on spatially-meaningful diagnostics
164
+ * (`runtime_error` / `graphics_diagnostic`) that don't already carry one,
165
+ * powering the spatial error heatmap. Pass `undefined` to clear it (e.g. on
166
+ * connector teardown). Last registration wins.
167
+ */
168
+ setPositionProvider(provider) {
169
+ this.positionProvider = provider;
170
+ }
149
171
  /** Build the envelope and queue an event. */
150
172
  emit(input) {
151
173
  if (!this.started || this.config.disabled) {
@@ -175,6 +197,7 @@ export class UptimizrClient {
175
197
  ...(this.currentScene !== DEFAULT_SCENE_ID ? { sceneId: this.currentScene } : {}),
176
198
  ...(this.pageMeta ? { pageMeta: this.pageMeta } : {}),
177
199
  };
200
+ this.enrichPosition(event);
178
201
  const finalEvent = this.beforeSend ? this.beforeSend(event) : event;
179
202
  if (!finalEvent) {
180
203
  return;
@@ -184,6 +207,31 @@ export class UptimizrClient {
184
207
  void this.flush();
185
208
  }
186
209
  }
210
+ /**
211
+ * Attach a best-effort camera `position` to a spatially-meaningful diagnostic
212
+ * (issue #154). Only `runtime_error` / `graphics_diagnostic` are enriched, and
213
+ * only when the event doesn't already carry a `position` and a
214
+ * {@link positionProvider} is registered. Runs before `beforeSend` so deployers
215
+ * can still redact/drop it. A missing (`undefined`) or throwing provider leaves
216
+ * the event untouched — enrichment must never break emission.
217
+ */
218
+ enrichPosition(event) {
219
+ if (event.type !== "runtime_error" && event.type !== "graphics_diagnostic") {
220
+ return;
221
+ }
222
+ if (this.positionProvider === undefined || event.position) {
223
+ return;
224
+ }
225
+ try {
226
+ const position = this.positionProvider();
227
+ if (position) {
228
+ event.position = position;
229
+ }
230
+ }
231
+ catch (err) {
232
+ this.log("positionProvider threw; emitting without position", err);
233
+ }
234
+ }
187
235
  /** Emit a developer-defined `custom` event. */
188
236
  track(name, props) {
189
237
  this.emit({ type: "custom", name, ...(props ? { props } : {}) });
@@ -361,6 +409,7 @@ export class UptimizrClient {
361
409
  trackInput: (action, opts) => this.trackInput(action, opts),
362
410
  reportCapabilityChange: (change) => this.reportCapabilityChange(change),
363
411
  setScene: (sceneId) => this.setScene(sceneId),
412
+ setPositionProvider: (provider) => this.setPositionProvider(provider),
364
413
  createAggregation: (config) => this.createAggregation(config),
365
414
  now: () => this.now(),
366
415
  };
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,301 @@
1
+ import type { GraphicsApi } from "@uptimizr/schema";
2
+ import type { CollectorContext } from "./types.js";
3
+ /**
4
+ * Structural view of a WebGPU `GPUDeviceLostInfo` (the value the `GPUDevice.lost`
5
+ * promise resolves with). Declared locally — rather than depending on
6
+ * `@webgpu/types` — so the helper stays dependency-free and tolerant of partial
7
+ * shapes across browsers.
8
+ *
9
+ * @see https://www.w3.org/TR/webgpu/#gpudevicelostinfo
10
+ */
11
+ export interface GpuDeviceLostInfoLike {
12
+ /** `"destroyed"` for a requested loss (`device.destroy()`); otherwise unknown. */
13
+ reason?: string;
14
+ /** Human-readable detail (driver/agent text). Length-capped before emit. */
15
+ message?: string;
16
+ }
17
+ /**
18
+ * Structural view of the one field we read off a WebGPU `GPUDevice`: its `lost`
19
+ * promise. We read structurally so connectors can keep their engine
20
+ * (`@babylonjs/core`, `three`) a peer dependency and stay version-tolerant.
21
+ */
22
+ export interface GpuDeviceLostLike {
23
+ lost?: Promise<GpuDeviceLostInfoLike>;
24
+ }
25
+ /** Tuning for how long we wait for an async-initialized WebGPU device. */
26
+ export interface WireGpuDeviceLostOptions {
27
+ /**
28
+ * Max number of times to poll for the device before giving up. Defaults to 20
29
+ * which, with the default {@link intervalMs}, spans ~5s — comfortably longer
30
+ * than a WebGPU backend's async init while staying bounded (no leak).
31
+ */
32
+ maxAttempts?: number;
33
+ /** Delay between device-acquisition attempts, in ms. Defaults to 250. */
34
+ intervalMs?: number;
35
+ }
36
+ /**
37
+ * Wire a WebGPU `GPUDevice.lost` into a `graphics_diagnostic` (ADR 0021 part 2,
38
+ * `category: "device-lost"`). Engine-agnostic: every connector that can have a
39
+ * WebGPU device hands a device *getter* here, so the gating, severity mapping,
40
+ * length-cap, and event shape live in exactly one place.
41
+ *
42
+ * Behavior:
43
+ * - **Opt-in gate.** No-ops (nothing scheduled, nothing emitted) unless
44
+ * `ctx.config.captureGraphicsDiagnostics` is on. (Unlike `context_lost`, which is
45
+ * always-on; device loss is the richer opt-in diagnostic.)
46
+ * - **Async device init.** A WebGPU backend builds its device asynchronously
47
+ * (three's `renderer.init()` / first `renderAsync`, Babylon's `initAsync`), so
48
+ * the device is frequently `undefined` at collector `start()` time. We therefore
49
+ * take a *getter* and **poll** it (bounded by {@link WireGpuDeviceLostOptions})
50
+ * until the device appears, rather than reading once and silently giving up.
51
+ * - **Severity.** `info` when `reason === "destroyed"` (an expected, app-requested
52
+ * loss via `device.destroy()`); `fatal` otherwise (an unrequested loss —
53
+ * rendering cannot continue).
54
+ * - **Marker.** Emits a single discrete incident (no `count`): device loss is rare
55
+ * and decisive, so the high-fidelity marker is the right default here.
56
+ * - **Privacy.** The optional `message` is locally truncated to
57
+ * {@link LIMITS.maxGraphicsDiagnosticMessageLength} and rides through `ctx.emit`,
58
+ * which applies the client's `beforeSend` for deployer-owned redaction.
59
+ *
60
+ * Teardown is cooperative: pass an `isActive` predicate (typically `() => !stopped`).
61
+ * It is checked before each poll and again when `device.lost` resolves, so neither a
62
+ * pending poll nor a late device loss emits after the collector has stopped.
63
+ *
64
+ * @param ctx Collector context (config + `emit`).
65
+ * @param getDevice Returns the WebGPU device, or `undefined`/`null` while it is
66
+ * still initializing or on WebGL (where it never appears — a clean no-op). Must
67
+ * not throw; read the field defensively (optional chaining).
68
+ * @param isActive Returns `false` once the collector has been torn down.
69
+ * @param options Polling bounds (mainly for tests).
70
+ */
71
+ export declare function wireGpuDeviceLost(ctx: CollectorContext, getDevice: () => GpuDeviceLostLike | undefined | null, isActive: () => boolean, options?: WireGpuDeviceLostOptions): void;
72
+ /**
73
+ * Shared **rate-limited rollup** for the noisy `graphics_diagnostic` signals
74
+ * (ADR 0021 part 2 decision 4 / ADR 0012): a burst of incidents coalesces into one
75
+ * `count`-bearing event instead of flooding ingestion. Tracks `count` plus the first
76
+ * representative payload; `emit` composes the event from those. Used by both
77
+ * `wireGpuUncapturedError` and `wireGlErrorSampling` so the aggregation logic lives once.
78
+ */
79
+ export interface DiagnosticRollup<T> {
80
+ /** Record one incident, capturing `first` on the very first record of a window. */
81
+ record(first: T): void;
82
+ /** Incidents accumulated in the current (un-flushed) window. */
83
+ readonly count: number;
84
+ /** Emit one aggregated event (if any) and reset the window. */
85
+ flush(): void;
86
+ /** Begin a bounded auto-flush interval. */
87
+ start(intervalMs: number): void;
88
+ /** Clear the interval and flush any remaining incidents. */
89
+ stop(): void;
90
+ }
91
+ export declare function createDiagnosticRollup<T>(emit: (count: number, first: T | undefined) => void): DiagnosticRollup<T>;
92
+ /**
93
+ * Structural view of a WebGPU `GPUError` (the value carried on an
94
+ * `uncapturederror` event). Declared locally so the helper stays dependency-free.
95
+ * The subtype is detected by constructor name to avoid depending on `@webgpu/types`.
96
+ *
97
+ * @see https://www.w3.org/TR/webgpu/#gpuerror
98
+ */
99
+ export interface GpuErrorLike {
100
+ /** Human-readable detail. Length-capped before it rides on a rollup. */
101
+ message?: string;
102
+ /** Set on the concrete error class; used to detect out-of-memory vs validation. */
103
+ constructor?: {
104
+ name?: string;
105
+ };
106
+ }
107
+ /** Structural view of the one WebGPU `uncapturederror` event field we read. */
108
+ interface GpuUncapturedErrorEventLike {
109
+ error?: GpuErrorLike;
110
+ }
111
+ /**
112
+ * The subset of `EventTarget` we use on a WebGPU device. Declared structurally so
113
+ * connectors keep their engine a peer dependency and stay version-tolerant.
114
+ */
115
+ export interface GpuDeviceErrorTargetLike {
116
+ addEventListener?: (type: "uncapturederror", listener: (e: GpuUncapturedErrorEventLike) => void) => void;
117
+ removeEventListener?: (type: "uncapturederror", listener: (e: GpuUncapturedErrorEventLike) => void) => void;
118
+ }
119
+ /** Tuning for the rate-limited `uncapturederror` rollup. */
120
+ export interface WireGpuUncapturedErrorOptions extends WireGpuDeviceLostOptions {
121
+ /**
122
+ * How often, in ms, to flush an accumulated rollup mid-session. Defaults to
123
+ * 30s. A flush also runs unconditionally at teardown. Set bursts coalesce into
124
+ * one event per interval, so an error storm cannot flood ingestion.
125
+ */
126
+ flushIntervalMs?: number;
127
+ }
128
+ /**
129
+ * Wire WebGPU `uncapturederror` into a **rate-limited per-session rollup**
130
+ * (ADR 0021 part 2, decision 4 / ADR 0012). This is the highest-volume diagnostic,
131
+ * so the default — and only — emission is aggregated: a burst of errors becomes a
132
+ * single `graphics_diagnostic` carrying `count: N` plus the first message, never N
133
+ * discrete events. Shared and engine-agnostic so every connector (Babylon, three,
134
+ * …) hands a device *getter* here and the gating, subtype mapping, length-cap,
135
+ * aggregation, and flush cadence live in exactly one place.
136
+ *
137
+ * Behavior:
138
+ * - **Opt-in gate.** No-ops unless `ctx.config.captureGraphicsDiagnostics` is on.
139
+ * - **Async device init.** Polls the getter (bounded, same as {@link wireGpuDeviceLost})
140
+ * until the WebGPU device appears, so a backend that builds its device async
141
+ * (three `renderer.init()`/`renderAsync`, Babylon `initAsync`) isn't missed.
142
+ * - **Subtype.** `GPUOutOfMemoryError` → `out-of-memory` (`severity: error`);
143
+ * anything else → `validation` (`severity: warning`). The most severe category
144
+ * seen wins for the rollup; the first message is kept.
145
+ * - **Rollup.** Accumulates `count` + first `message` and flushes one event on a
146
+ * bounded interval and again at teardown; emits nothing if no error occurred.
147
+ * - **Privacy.** `message` is truncated to {@link LIMITS.maxGraphicsDiagnosticMessageLength}
148
+ * and rides through `ctx.emit` (so `beforeSend` applies); raw shader source is excluded.
149
+ *
150
+ * @returns A teardown function that removes the listener, clears the timer, and
151
+ * flushes any pending rollup. Connectors call it from `stop()`/dispose.
152
+ * @param getDevice Returns the WebGPU device, or `undefined`/`null` while it is
153
+ * still initializing or on WebGL (a clean no-op). Must not throw.
154
+ * @param isActive Returns `false` once the collector is torn down — nothing emits after.
155
+ */
156
+ export declare function wireGpuUncapturedError(ctx: CollectorContext, getDevice: () => GpuDeviceErrorTargetLike | undefined | null, isActive: () => boolean, options?: WireGpuUncapturedErrorOptions): () => void;
157
+ /** Backends a shader/getError diagnostic can be tagged with. */
158
+ type ShaderBackend = "webgl" | "webgl2" | "webgpu";
159
+ /** Tuning for shader-compile capture (mainly for tests). */
160
+ export interface ShaderDiagnosticsOptions {
161
+ /** Max shader-compile diagnostics emitted per session (storm guard). Default 25. */
162
+ maxIncidents?: number;
163
+ }
164
+ /**
165
+ * Build a `graphics_diagnostic` for a shader compile/link **failure**. Pure and
166
+ * redaction-aware: the engine info log is the message (length-capped); raw shader
167
+ * `source` is appended **only** when the deployer opted in via `captureShaderSource`
168
+ * (ADR 0021 part 2 — source is application IP). Either way the result is capped to
169
+ * the schema limit and still rides through `beforeSend`.
170
+ */
171
+ export declare function buildShaderCompileDiagnostic(input: {
172
+ infoLog?: string;
173
+ source?: string;
174
+ backend?: ShaderBackend;
175
+ captureShaderSource: boolean;
176
+ }): {
177
+ type: "graphics_diagnostic";
178
+ severity: "error";
179
+ category: "shader-compile";
180
+ backend?: ShaderBackend;
181
+ message?: string;
182
+ };
183
+ /** Structural view of the WebGL context fields we read for shader diagnostics. */
184
+ export interface WebGlShaderContextLike {
185
+ COMPILE_STATUS: number;
186
+ LINK_STATUS: number;
187
+ compileShader(shader: object): void;
188
+ linkProgram(program: object): void;
189
+ getShaderParameter(shader: object, pname: number): unknown;
190
+ getProgramParameter(program: object, pname: number): unknown;
191
+ getShaderInfoLog(shader: object): string | null;
192
+ getProgramInfoLog(program: object): string | null;
193
+ getShaderSource?(shader: object): string | null;
194
+ }
195
+ /**
196
+ * Capture WebGL shader compile and program link **failures** as
197
+ * `graphics_diagnostic` (`category: shader-compile`). Wraps the context's
198
+ * `compileShader`/`linkProgram`; on a failed status it reads the matching info log
199
+ * (and, when `captureShaderSource` is on, the shader source) and emits one capped,
200
+ * redactable diagnostic. Bounded per session so a build loop cannot flood ingestion.
201
+ *
202
+ * Opt-in: no-ops unless `ctx.config.captureGraphicsDiagnostics`. Returns a detach
203
+ * fn that restores the original methods.
204
+ */
205
+ export declare function wireGlShaderDiagnostics(ctx: CollectorContext, gl: WebGlShaderContextLike, isActive: () => boolean, options?: ShaderDiagnosticsOptions): () => void;
206
+ /** Structural view of the WebGPU device + module fields we read for shader info. */
207
+ export interface WebGpuShaderDeviceLike {
208
+ createShaderModule(descriptor: {
209
+ code?: string;
210
+ }): WebGpuShaderModuleLike;
211
+ }
212
+ interface WebGpuShaderModuleLike {
213
+ getCompilationInfo?: () => Promise<{
214
+ messages?: ReadonlyArray<{
215
+ type?: string;
216
+ message?: string;
217
+ }>;
218
+ }>;
219
+ compilationInfo?: () => Promise<{
220
+ messages?: ReadonlyArray<{
221
+ type?: string;
222
+ message?: string;
223
+ }>;
224
+ }>;
225
+ }
226
+ /**
227
+ * Capture WebGPU shader-module compile errors as `graphics_diagnostic`
228
+ * (`category: shader-compile`). Wraps `device.createShaderModule` and inspects the
229
+ * module's async `compilationInfo()` for `error` messages. Source (`descriptor.code`)
230
+ * is included only when `captureShaderSource` is on. Opt-in + bounded; returns detach.
231
+ */
232
+ export declare function wireGpuShaderDiagnostics(ctx: CollectorContext, device: WebGpuShaderDeviceLike, isActive: () => boolean, options?: ShaderDiagnosticsOptions): () => void;
233
+ /** Tuning for opportunistic `gl.getError()` sampling. */
234
+ export interface GlErrorSamplingOptions {
235
+ /** Sampling interval in ms. Default 5000. NEVER per-frame (ADR forbids a sync stall). */
236
+ intervalMs?: number;
237
+ }
238
+ /** Structural view of the one method we poll: `gl.getError()`. */
239
+ export interface WebGlErrorContextLike {
240
+ getError(): number;
241
+ }
242
+ /**
243
+ * Opportunistically **sample** `gl.getError()` and emit a rate-limited rollup
244
+ * `graphics_diagnostic` (`category: validation`, ADR 0021 part 2). Runs on a low-rate
245
+ * timer — never per-frame, since `getError()` forces a sync GPU stall (ADR forbids it).
246
+ * Non-`NO_ERROR` results are aggregated into a single `count`ed event flushed on the
247
+ * next tick (and on teardown), so a storm cannot flood ingestion. WebGPU has no
248
+ * `getError`, so passing nothing makes this a clean no-op.
249
+ *
250
+ * Opt-in: no-ops unless `captureGraphicsDiagnostics`. Returns a detach fn that flushes
251
+ * any pending rollup and clears the timer.
252
+ */
253
+ export declare function wireGlErrorSampling(ctx: CollectorContext, gl: WebGlErrorContextLike, isActive: () => boolean, options?: GlErrorSamplingOptions): () => void;
254
+ /**
255
+ * The result a connector's context-creation probe hands to
256
+ * {@link wireContextCreationFailure}. Connectors read their engine/renderer
257
+ * structurally (to keep the engine a peer dependency) and reduce it to this small,
258
+ * engine-agnostic shape.
259
+ */
260
+ export interface ContextCreationProbe {
261
+ /**
262
+ * `true` when the engine could not obtain a usable GL/WebGPU context or adapter
263
+ * (e.g. `getContext()` / `requestAdapter()` returned null, or no backend is
264
+ * usable). `false` for a healthy context — the common case, a clean no-op.
265
+ */
266
+ failed: boolean;
267
+ /** The API that failed, when determinable; omit/`unknown` when it can't be told. */
268
+ backend?: GraphicsApi;
269
+ /** Optional engine/driver detail. Length-capped before emit. */
270
+ message?: string;
271
+ }
272
+ /**
273
+ * Emit a one-shot context-creation failure as a `graphics_diagnostic`
274
+ * (ADR 0021 part 2, `category: "context-loss"`, `severity: "fatal"`) when a
275
+ * connector cannot obtain a rendering context/adapter at init. Engine-agnostic:
276
+ * every connector reduces its backend-specific check to a {@link ContextCreationProbe}
277
+ * so the gating, length-cap, and event shape live in exactly one place.
278
+ *
279
+ * Behavior:
280
+ * - **Opt-in gate.** No-ops unless `ctx.config.captureGraphicsDiagnostics` is on
281
+ * (mirroring {@link wireGpuDeviceLost}; `context_lost` runtime loss stays
282
+ * always-on, this *creation* case is the richer opt-in diagnostic).
283
+ * - **Discrete marker.** Emits a single incident with no `count`: a creation
284
+ * failure is rare and decisive, so the high-fidelity marker is the right default.
285
+ * - **Backend.** `unknown` when the connector can't determine which API failed
286
+ * (no context means little to introspect).
287
+ * - **Ordering.** Connectors call this at `start()`. The client sets `started`
288
+ * before running collectors, so the marker queues right after `session_start`
289
+ * and is flushed by the normal cadence even though no transport round-trip has
290
+ * happened yet.
291
+ * - **Privacy.** Any `message` is truncated to
292
+ * {@link LIMITS.maxGraphicsDiagnosticMessageLength} and rides `ctx.emit`, which
293
+ * applies the client's `beforeSend` for deployer-owned redaction.
294
+ *
295
+ * @param ctx Collector context (config + `emit`).
296
+ * @param probe The connector's context-creation result. Must not throw; read the
297
+ * engine defensively (optional chaining) and pass `{ failed: false }` on doubt.
298
+ */
299
+ export declare function wireContextCreationFailure(ctx: CollectorContext, probe: ContextCreationProbe): void;
300
+ export {};
301
+ //# sourceMappingURL=graphicsDiagnostics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphicsDiagnostics.d.ts","sourceRoot":"","sources":["../src/graphicsDiagnostics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,409 @@
1
+ import { LIMITS } from "@uptimizr/schema";
2
+ const DEFAULT_MAX_ATTEMPTS = 20;
3
+ const DEFAULT_INTERVAL_MS = 250;
4
+ /**
5
+ * Wire a WebGPU `GPUDevice.lost` into a `graphics_diagnostic` (ADR 0021 part 2,
6
+ * `category: "device-lost"`). Engine-agnostic: every connector that can have a
7
+ * WebGPU device hands a device *getter* here, so the gating, severity mapping,
8
+ * length-cap, and event shape live in exactly one place.
9
+ *
10
+ * Behavior:
11
+ * - **Opt-in gate.** No-ops (nothing scheduled, nothing emitted) unless
12
+ * `ctx.config.captureGraphicsDiagnostics` is on. (Unlike `context_lost`, which is
13
+ * always-on; device loss is the richer opt-in diagnostic.)
14
+ * - **Async device init.** A WebGPU backend builds its device asynchronously
15
+ * (three's `renderer.init()` / first `renderAsync`, Babylon's `initAsync`), so
16
+ * the device is frequently `undefined` at collector `start()` time. We therefore
17
+ * take a *getter* and **poll** it (bounded by {@link WireGpuDeviceLostOptions})
18
+ * until the device appears, rather than reading once and silently giving up.
19
+ * - **Severity.** `info` when `reason === "destroyed"` (an expected, app-requested
20
+ * loss via `device.destroy()`); `fatal` otherwise (an unrequested loss —
21
+ * rendering cannot continue).
22
+ * - **Marker.** Emits a single discrete incident (no `count`): device loss is rare
23
+ * and decisive, so the high-fidelity marker is the right default here.
24
+ * - **Privacy.** The optional `message` is locally truncated to
25
+ * {@link LIMITS.maxGraphicsDiagnosticMessageLength} and rides through `ctx.emit`,
26
+ * which applies the client's `beforeSend` for deployer-owned redaction.
27
+ *
28
+ * Teardown is cooperative: pass an `isActive` predicate (typically `() => !stopped`).
29
+ * It is checked before each poll and again when `device.lost` resolves, so neither a
30
+ * pending poll nor a late device loss emits after the collector has stopped.
31
+ *
32
+ * @param ctx Collector context (config + `emit`).
33
+ * @param getDevice Returns the WebGPU device, or `undefined`/`null` while it is
34
+ * still initializing or on WebGL (where it never appears — a clean no-op). Must
35
+ * not throw; read the field defensively (optional chaining).
36
+ * @param isActive Returns `false` once the collector has been torn down.
37
+ * @param options Polling bounds (mainly for tests).
38
+ */
39
+ export function wireGpuDeviceLost(ctx, getDevice, isActive, options) {
40
+ if (!ctx.config.captureGraphicsDiagnostics)
41
+ return;
42
+ const maxAttempts = options?.maxAttempts ?? DEFAULT_MAX_ATTEMPTS;
43
+ const intervalMs = options?.intervalMs ?? DEFAULT_INTERVAL_MS;
44
+ let attempts = 0;
45
+ const attach = (device) => {
46
+ const lost = device.lost;
47
+ if (!lost || typeof lost.then !== "function")
48
+ return;
49
+ void lost.then((info) => {
50
+ if (!isActive())
51
+ return;
52
+ const reason = typeof info?.reason === "string" ? info.reason : undefined;
53
+ const severity = reason === "destroyed" ? "info" : "fatal";
54
+ const rawMessage = typeof info?.message === "string" ? info.message : undefined;
55
+ const message = rawMessage
56
+ ? rawMessage.slice(0, LIMITS.maxGraphicsDiagnosticMessageLength)
57
+ : undefined;
58
+ ctx.emit({
59
+ type: "graphics_diagnostic",
60
+ severity,
61
+ category: "device-lost",
62
+ backend: "webgpu",
63
+ ...(message ? { message } : {}),
64
+ });
65
+ });
66
+ };
67
+ const poll = () => {
68
+ if (!isActive())
69
+ return;
70
+ const device = getDevice();
71
+ if (device) {
72
+ attach(device);
73
+ return;
74
+ }
75
+ // Device not ready yet (async backend init). Retry on a bounded schedule; the
76
+ // WebGL path never produces a device, so this simply exhausts and stops.
77
+ attempts += 1;
78
+ if (attempts >= maxAttempts)
79
+ return;
80
+ setTimeout(poll, intervalMs);
81
+ };
82
+ poll();
83
+ }
84
+ export function createDiagnosticRollup(emit) {
85
+ let count = 0;
86
+ let first;
87
+ let timer;
88
+ const flush = () => {
89
+ if (count === 0)
90
+ return;
91
+ emit(count, first);
92
+ count = 0;
93
+ first = undefined;
94
+ };
95
+ return {
96
+ record(value) {
97
+ if (count === 0)
98
+ first = value;
99
+ count += 1;
100
+ },
101
+ get count() {
102
+ return count;
103
+ },
104
+ flush,
105
+ start(intervalMs) {
106
+ timer = setInterval(flush, intervalMs);
107
+ },
108
+ stop() {
109
+ if (timer)
110
+ clearInterval(timer);
111
+ timer = undefined;
112
+ flush();
113
+ },
114
+ };
115
+ }
116
+ const DEFAULT_FLUSH_INTERVAL_MS = 30_000;
117
+ /**
118
+ * Wire WebGPU `uncapturederror` into a **rate-limited per-session rollup**
119
+ * (ADR 0021 part 2, decision 4 / ADR 0012). This is the highest-volume diagnostic,
120
+ * so the default — and only — emission is aggregated: a burst of errors becomes a
121
+ * single `graphics_diagnostic` carrying `count: N` plus the first message, never N
122
+ * discrete events. Shared and engine-agnostic so every connector (Babylon, three,
123
+ * …) hands a device *getter* here and the gating, subtype mapping, length-cap,
124
+ * aggregation, and flush cadence live in exactly one place.
125
+ *
126
+ * Behavior:
127
+ * - **Opt-in gate.** No-ops unless `ctx.config.captureGraphicsDiagnostics` is on.
128
+ * - **Async device init.** Polls the getter (bounded, same as {@link wireGpuDeviceLost})
129
+ * until the WebGPU device appears, so a backend that builds its device async
130
+ * (three `renderer.init()`/`renderAsync`, Babylon `initAsync`) isn't missed.
131
+ * - **Subtype.** `GPUOutOfMemoryError` → `out-of-memory` (`severity: error`);
132
+ * anything else → `validation` (`severity: warning`). The most severe category
133
+ * seen wins for the rollup; the first message is kept.
134
+ * - **Rollup.** Accumulates `count` + first `message` and flushes one event on a
135
+ * bounded interval and again at teardown; emits nothing if no error occurred.
136
+ * - **Privacy.** `message` is truncated to {@link LIMITS.maxGraphicsDiagnosticMessageLength}
137
+ * and rides through `ctx.emit` (so `beforeSend` applies); raw shader source is excluded.
138
+ *
139
+ * @returns A teardown function that removes the listener, clears the timer, and
140
+ * flushes any pending rollup. Connectors call it from `stop()`/dispose.
141
+ * @param getDevice Returns the WebGPU device, or `undefined`/`null` while it is
142
+ * still initializing or on WebGL (a clean no-op). Must not throw.
143
+ * @param isActive Returns `false` once the collector is torn down — nothing emits after.
144
+ */
145
+ export function wireGpuUncapturedError(ctx, getDevice, isActive, options) {
146
+ if (!ctx.config.captureGraphicsDiagnostics)
147
+ return () => { };
148
+ const maxAttempts = options?.maxAttempts ?? DEFAULT_MAX_ATTEMPTS;
149
+ const intervalMs = options?.intervalMs ?? DEFAULT_INTERVAL_MS;
150
+ const flushIntervalMs = options?.flushIntervalMs ?? DEFAULT_FLUSH_INTERVAL_MS;
151
+ let attempts = 0;
152
+ let firstMessage;
153
+ let category = "validation";
154
+ let device;
155
+ let listener;
156
+ const rollup = createDiagnosticRollup((n, first) => {
157
+ const severity = category === "out-of-memory" ? "error" : "warning";
158
+ ctx.emit({
159
+ type: "graphics_diagnostic",
160
+ severity,
161
+ category,
162
+ backend: "webgpu",
163
+ count: n,
164
+ ...(first ? { message: first } : {}),
165
+ });
166
+ category = "validation";
167
+ });
168
+ const attach = (target) => {
169
+ if (typeof target.addEventListener !== "function")
170
+ return;
171
+ device = target;
172
+ listener = (e) => {
173
+ if (!isActive())
174
+ return;
175
+ const error = e?.error;
176
+ if (rollup.count === 0) {
177
+ const raw = typeof error?.message === "string" ? error.message : undefined;
178
+ firstMessage = raw ? raw.slice(0, LIMITS.maxGraphicsDiagnosticMessageLength) : undefined;
179
+ }
180
+ rollup.record(firstMessage);
181
+ if (error?.constructor?.name === "GPUOutOfMemoryError")
182
+ category = "out-of-memory";
183
+ };
184
+ target.addEventListener("uncapturederror", listener);
185
+ rollup.start(flushIntervalMs);
186
+ };
187
+ const poll = () => {
188
+ if (!isActive())
189
+ return;
190
+ const target = getDevice();
191
+ if (target) {
192
+ attach(target);
193
+ return;
194
+ }
195
+ attempts += 1;
196
+ if (attempts >= maxAttempts)
197
+ return;
198
+ setTimeout(poll, intervalMs);
199
+ };
200
+ poll();
201
+ return () => {
202
+ if (device && listener && typeof device.removeEventListener === "function") {
203
+ device.removeEventListener("uncapturederror", listener);
204
+ }
205
+ rollup.stop();
206
+ };
207
+ }
208
+ const DEFAULT_MAX_SHADER_INCIDENTS = 25;
209
+ /**
210
+ * Build a `graphics_diagnostic` for a shader compile/link **failure**. Pure and
211
+ * redaction-aware: the engine info log is the message (length-capped); raw shader
212
+ * `source` is appended **only** when the deployer opted in via `captureShaderSource`
213
+ * (ADR 0021 part 2 — source is application IP). Either way the result is capped to
214
+ * the schema limit and still rides through `beforeSend`.
215
+ */
216
+ export function buildShaderCompileDiagnostic(input) {
217
+ const log = input.infoLog?.trim() ?? "";
218
+ const includeSource = input.captureShaderSource && input.source ? input.source : "";
219
+ const raw = includeSource ? `${log}\n${includeSource}`.trim() : log;
220
+ const message = raw ? raw.slice(0, LIMITS.maxGraphicsDiagnosticMessageLength) : undefined;
221
+ return {
222
+ type: "graphics_diagnostic",
223
+ severity: "error",
224
+ category: "shader-compile",
225
+ ...(input.backend ? { backend: input.backend } : {}),
226
+ ...(message ? { message } : {}),
227
+ };
228
+ }
229
+ /**
230
+ * Capture WebGL shader compile and program link **failures** as
231
+ * `graphics_diagnostic` (`category: shader-compile`). Wraps the context's
232
+ * `compileShader`/`linkProgram`; on a failed status it reads the matching info log
233
+ * (and, when `captureShaderSource` is on, the shader source) and emits one capped,
234
+ * redactable diagnostic. Bounded per session so a build loop cannot flood ingestion.
235
+ *
236
+ * Opt-in: no-ops unless `ctx.config.captureGraphicsDiagnostics`. Returns a detach
237
+ * fn that restores the original methods.
238
+ */
239
+ export function wireGlShaderDiagnostics(ctx, gl, isActive, options) {
240
+ if (!ctx.config.captureGraphicsDiagnostics)
241
+ return () => { };
242
+ const max = options?.maxIncidents ?? DEFAULT_MAX_SHADER_INCIDENTS;
243
+ const backend = gl.LINK_STATUS != null ? "webgl2" : "webgl";
244
+ const wantSource = ctx.config.captureShaderSource;
245
+ let count = 0;
246
+ if (typeof gl.compileShader !== "function" || typeof gl.linkProgram !== "function")
247
+ return () => { };
248
+ const origCompile = gl.compileShader.bind(gl);
249
+ const origLink = gl.linkProgram.bind(gl);
250
+ const emit = (infoLog, source) => {
251
+ if (!isActive() || count >= max)
252
+ return;
253
+ count += 1;
254
+ ctx.emit(buildShaderCompileDiagnostic({
255
+ backend,
256
+ captureShaderSource: wantSource,
257
+ ...(infoLog ? { infoLog } : {}),
258
+ ...(source ? { source } : {}),
259
+ }));
260
+ };
261
+ gl.compileShader = function (shader) {
262
+ origCompile(shader);
263
+ if (!isActive())
264
+ return;
265
+ if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {
266
+ const source = wantSource && gl.getShaderSource ? gl.getShaderSource(shader) : undefined;
267
+ emit(gl.getShaderInfoLog(shader), source ?? undefined);
268
+ }
269
+ };
270
+ gl.linkProgram = function (program) {
271
+ origLink(program);
272
+ if (!isActive())
273
+ return;
274
+ if (!gl.getProgramParameter(program, gl.LINK_STATUS))
275
+ emit(gl.getProgramInfoLog(program));
276
+ };
277
+ return () => {
278
+ gl.compileShader = origCompile;
279
+ gl.linkProgram = origLink;
280
+ };
281
+ }
282
+ /**
283
+ * Capture WebGPU shader-module compile errors as `graphics_diagnostic`
284
+ * (`category: shader-compile`). Wraps `device.createShaderModule` and inspects the
285
+ * module's async `compilationInfo()` for `error` messages. Source (`descriptor.code`)
286
+ * is included only when `captureShaderSource` is on. Opt-in + bounded; returns detach.
287
+ */
288
+ export function wireGpuShaderDiagnostics(ctx, device, isActive, options) {
289
+ if (!ctx.config.captureGraphicsDiagnostics)
290
+ return () => { };
291
+ const max = options?.maxIncidents ?? DEFAULT_MAX_SHADER_INCIDENTS;
292
+ const wantSource = ctx.config.captureShaderSource;
293
+ let count = 0;
294
+ if (typeof device.createShaderModule !== "function")
295
+ return () => { };
296
+ const orig = device.createShaderModule.bind(device);
297
+ device.createShaderModule = function (descriptor) {
298
+ const module = orig(descriptor);
299
+ const info = module.getCompilationInfo ?? module.compilationInfo;
300
+ if (typeof info === "function") {
301
+ void info.call(module).then((result) => {
302
+ if (!isActive() || count >= max)
303
+ return;
304
+ const errors = (result?.messages ?? []).filter((m) => m?.type === "error");
305
+ if (errors.length === 0)
306
+ return;
307
+ count += 1;
308
+ ctx.emit(buildShaderCompileDiagnostic({
309
+ backend: "webgpu",
310
+ captureShaderSource: wantSource,
311
+ infoLog: errors.map((m) => m.message ?? "").join("\n"),
312
+ ...(descriptor?.code ? { source: descriptor.code } : {}),
313
+ }));
314
+ });
315
+ }
316
+ return module;
317
+ };
318
+ return () => {
319
+ device.createShaderModule = orig;
320
+ };
321
+ }
322
+ const DEFAULT_GL_ERROR_INTERVAL_MS = 5000;
323
+ const GL_NO_ERROR = 0;
324
+ /**
325
+ * Opportunistically **sample** `gl.getError()` and emit a rate-limited rollup
326
+ * `graphics_diagnostic` (`category: validation`, ADR 0021 part 2). Runs on a low-rate
327
+ * timer — never per-frame, since `getError()` forces a sync GPU stall (ADR forbids it).
328
+ * Non-`NO_ERROR` results are aggregated into a single `count`ed event flushed on the
329
+ * next tick (and on teardown), so a storm cannot flood ingestion. WebGPU has no
330
+ * `getError`, so passing nothing makes this a clean no-op.
331
+ *
332
+ * Opt-in: no-ops unless `captureGraphicsDiagnostics`. Returns a detach fn that flushes
333
+ * any pending rollup and clears the timer.
334
+ */
335
+ export function wireGlErrorSampling(ctx, gl, isActive, options) {
336
+ if (!ctx.config.captureGraphicsDiagnostics)
337
+ return () => { };
338
+ const intervalMs = options?.intervalMs ?? DEFAULT_GL_ERROR_INTERVAL_MS;
339
+ const rollup = createDiagnosticRollup((n, first) => {
340
+ ctx.emit({
341
+ type: "graphics_diagnostic",
342
+ severity: "warning",
343
+ category: "validation",
344
+ ...(first != null ? { code: `0x${first.toString(16)}` } : {}),
345
+ count: n,
346
+ });
347
+ });
348
+ const sample = () => {
349
+ if (!isActive())
350
+ return;
351
+ // Drain every pending GL error in one go: `getError()` reports one flag at a
352
+ // time, so we loop until NO_ERROR to fold a tick's full backlog into the rollup.
353
+ let code = gl.getError();
354
+ while (code !== GL_NO_ERROR) {
355
+ rollup.record(code);
356
+ code = gl.getError();
357
+ }
358
+ rollup.flush();
359
+ };
360
+ const timer = setInterval(sample, intervalMs);
361
+ return () => {
362
+ clearInterval(timer);
363
+ rollup.stop();
364
+ };
365
+ }
366
+ /**
367
+ * Emit a one-shot context-creation failure as a `graphics_diagnostic`
368
+ * (ADR 0021 part 2, `category: "context-loss"`, `severity: "fatal"`) when a
369
+ * connector cannot obtain a rendering context/adapter at init. Engine-agnostic:
370
+ * every connector reduces its backend-specific check to a {@link ContextCreationProbe}
371
+ * so the gating, length-cap, and event shape live in exactly one place.
372
+ *
373
+ * Behavior:
374
+ * - **Opt-in gate.** No-ops unless `ctx.config.captureGraphicsDiagnostics` is on
375
+ * (mirroring {@link wireGpuDeviceLost}; `context_lost` runtime loss stays
376
+ * always-on, this *creation* case is the richer opt-in diagnostic).
377
+ * - **Discrete marker.** Emits a single incident with no `count`: a creation
378
+ * failure is rare and decisive, so the high-fidelity marker is the right default.
379
+ * - **Backend.** `unknown` when the connector can't determine which API failed
380
+ * (no context means little to introspect).
381
+ * - **Ordering.** Connectors call this at `start()`. The client sets `started`
382
+ * before running collectors, so the marker queues right after `session_start`
383
+ * and is flushed by the normal cadence even though no transport round-trip has
384
+ * happened yet.
385
+ * - **Privacy.** Any `message` is truncated to
386
+ * {@link LIMITS.maxGraphicsDiagnosticMessageLength} and rides `ctx.emit`, which
387
+ * applies the client's `beforeSend` for deployer-owned redaction.
388
+ *
389
+ * @param ctx Collector context (config + `emit`).
390
+ * @param probe The connector's context-creation result. Must not throw; read the
391
+ * engine defensively (optional chaining) and pass `{ failed: false }` on doubt.
392
+ */
393
+ export function wireContextCreationFailure(ctx, probe) {
394
+ if (!ctx.config.captureGraphicsDiagnostics)
395
+ return;
396
+ if (!probe.failed)
397
+ return;
398
+ const message = probe.message
399
+ ? probe.message.slice(0, LIMITS.maxGraphicsDiagnosticMessageLength)
400
+ : undefined;
401
+ ctx.emit({
402
+ type: "graphics_diagnostic",
403
+ severity: "fatal",
404
+ category: "context-loss",
405
+ backend: probe.backend ?? "unknown",
406
+ ...(message ? { message } : {}),
407
+ });
408
+ }
409
+ //# sourceMappingURL=graphicsDiagnostics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphicsDiagnostics.js","sourceRoot":"","sources":["../src/graphicsDiagnostics.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -18,6 +18,8 @@ export type { DecomposedTransform } from "./matrix.js";
18
18
  export { createAggregator, collectSnapshotTransferables, percentileAsc, visibilityContribution, aabbClose, roundAabb, vec3Close, poseUnchanged, nodeSampleUnchanged, clamp01, } from "./aggregation/index.js";
19
19
  export type { Aggregator, AggregatorConfig, AggregatorOptions, Snapshot, SnapshotChannel, CameraSnapshot, PerfSnapshot, NodeSnapshot, VisibilityMeshObservation, VisibilityTickSnapshot, VisibilityFlushSnapshot, GestureSnapshot, HoverSnapshot, VisibilityContribution, CameraPose, NodeSample, } from "./aggregation/index.js";
20
20
  export { xrSource, xrHandedness } from "./xrInput.js";
21
+ export { wireGpuDeviceLost, wireGpuUncapturedError, wireContextCreationFailure, wireGlShaderDiagnostics, wireGpuShaderDiagnostics, wireGlErrorSampling, buildShaderCompileDiagnostic, createDiagnosticRollup, } from "./graphicsDiagnostics.js";
22
+ export type { GpuDeviceLostLike, GpuDeviceLostInfoLike, WireGpuDeviceLostOptions, GpuErrorLike, GpuDeviceErrorTargetLike, WireGpuUncapturedErrorOptions, ContextCreationProbe, DiagnosticRollup, ShaderDiagnosticsOptions, GlErrorSamplingOptions, WebGlShaderContextLike, WebGpuShaderDeviceLike, WebGlErrorContextLike, } from "./graphicsDiagnostics.js";
21
23
  export type { Collector, CollectorContext, CollectorHandle, BeforeSendHook, EventInput, ResolvedConfig, StartMeta, TrackInputOptions, CapabilityChangeReport, Transport, UptimizrConfig, } from "./types.js";
22
24
  export type { Processor, WorkerLike, WorkerFactory, WorkerProcessorOptions } from "./processor.js";
23
25
  export { createMainSink, createWorkerAggregationSink } from "./aggregationSink.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAClG,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AACjF,OAAO,EACL,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EACL,gBAAgB,EAChB,4BAA4B,EAC5B,aAAa,EACb,sBAAsB,EACtB,SAAS,EACT,SAAS,EACT,SAAS,EACT,aAAa,EACb,mBAAmB,EACnB,OAAO,GACR,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,QAAQ,EACR,eAAe,EACf,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,yBAAyB,EACzB,sBAAsB,EACtB,uBAAuB,EACvB,eAAe,EACf,aAAa,EACb,sBAAsB,EACtB,UAAU,EACV,UAAU,GACX,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEtD,YAAY,EACV,SAAS,EACT,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,UAAU,EACV,cAAc,EACd,SAAS,EACT,iBAAiB,EACjB,sBAAsB,EACtB,SAAS,EACT,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACnG,OAAO,EAAE,cAAc,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AACnF,YAAY,EAAE,eAAe,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AAE1F,YAAY,EACV,UAAU,EACV,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,GAChB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAClG,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AACjF,OAAO,EACL,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EACL,gBAAgB,EAChB,4BAA4B,EAC5B,aAAa,EACb,sBAAsB,EACtB,SAAS,EACT,SAAS,EACT,SAAS,EACT,aAAa,EACb,mBAAmB,EACnB,OAAO,GACR,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,QAAQ,EACR,eAAe,EACf,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,yBAAyB,EACzB,sBAAsB,EACtB,uBAAuB,EACvB,eAAe,EACf,aAAa,EACb,sBAAsB,EACtB,UAAU,EACV,UAAU,GACX,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,0BAA0B,EAC1B,uBAAuB,EACvB,wBAAwB,EACxB,mBAAmB,EACnB,4BAA4B,EAC5B,sBAAsB,GACvB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,iBAAiB,EACjB,qBAAqB,EACrB,wBAAwB,EACxB,YAAY,EACZ,wBAAwB,EACxB,6BAA6B,EAC7B,oBAAoB,EACpB,gBAAgB,EAChB,wBAAwB,EACxB,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,0BAA0B,CAAC;AAElC,YAAY,EACV,SAAS,EACT,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,UAAU,EACV,cAAc,EACd,SAAS,EACT,iBAAiB,EACjB,sBAAsB,EACtB,SAAS,EACT,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACnG,OAAO,EAAE,cAAc,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AACnF,YAAY,EAAE,eAAe,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AAE1F,YAAY,EACV,UAAU,EACV,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,GAChB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC"}
package/dist/index.js CHANGED
@@ -16,5 +16,6 @@ export { CANONICAL_FRAME, toCanonicalAabb, toCanonicalDirection, toCanonicalPosi
16
16
  export { decomposeWorldMatrix } from "./matrix.js";
17
17
  export { createAggregator, collectSnapshotTransferables, percentileAsc, visibilityContribution, aabbClose, roundAabb, vec3Close, poseUnchanged, nodeSampleUnchanged, clamp01, } from "./aggregation/index.js";
18
18
  export { xrSource, xrHandedness } from "./xrInput.js";
19
+ export { wireGpuDeviceLost, wireGpuUncapturedError, wireContextCreationFailure, wireGlShaderDiagnostics, wireGpuShaderDiagnostics, wireGlErrorSampling, buildShaderCompileDiagnostic, createDiagnosticRollup, } from "./graphicsDiagnostics.js";
19
20
  export { createMainSink, createWorkerAggregationSink } from "./aggregationSink.js";
20
21
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAClG,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AACjF,OAAO,EACL,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,EACL,gBAAgB,EAChB,4BAA4B,EAC5B,aAAa,EACb,sBAAsB,EACtB,SAAS,EACT,SAAS,EACT,SAAS,EACT,aAAa,EACb,mBAAmB,EACnB,OAAO,GACR,MAAM,wBAAwB,CAAC;AAmBhC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAiBtD,OAAO,EAAE,cAAc,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAClG,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AACjF,OAAO,EACL,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,EACL,gBAAgB,EAChB,4BAA4B,EAC5B,aAAa,EACb,sBAAsB,EACtB,SAAS,EACT,SAAS,EACT,SAAS,EACT,aAAa,EACb,mBAAmB,EACnB,OAAO,GACR,MAAM,wBAAwB,CAAC;AAmBhC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,0BAA0B,EAC1B,uBAAuB,EACvB,wBAAwB,EACxB,mBAAmB,EACnB,4BAA4B,EAC5B,sBAAsB,GACvB,MAAM,0BAA0B,CAAC;AAgClC,OAAO,EAAE,cAAc,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC"}
package/dist/types.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { AnyEvent, CapabilityChangeKind, CollectRequest, Connector, CustomPropValue, Device, Graphics, Handedness, InputSource, PageMeta, SceneMeta, SessionUser } from "@uptimizr/schema";
1
+ import type { AnyEvent, CapabilityChangeKind, CollectRequest, Connector, CustomPropValue, Device, Graphics, Handedness, InputSource, PageMeta, SceneMeta, SessionUser, Vec3 } from "@uptimizr/schema";
2
2
  import type { AggregatorConfig } from "./aggregation/aggregator.js";
3
3
  import type { Snapshot } from "./aggregation/snapshot.js";
4
4
  /**
@@ -72,6 +72,16 @@ export interface CollectorContext {
72
72
  reportCapabilityChange(change: CapabilityChangeReport): void;
73
73
  /** Switch the active scene/area (ADR 0010); emits a `scene_change` marker. */
74
74
  setScene(sceneId: string): void;
75
+ /**
76
+ * Register a best-effort camera-position source (issue #154). A connector that
77
+ * can introspect the live camera calls this so the client stamps a world
78
+ * `position` on spatially-meaningful diagnostics (`runtime_error` /
79
+ * `graphics_diagnostic`) that don't already carry one — powering the spatial
80
+ * error heatmap. The provider returns `undefined` when no camera can be
81
+ * resolved; pass `undefined` to clear a previously-registered provider (e.g. on
82
+ * teardown). Errors thrown by the provider are swallowed and never break emit.
83
+ */
84
+ setPositionProvider(provider: (() => Vec3 | undefined) | undefined): void;
75
85
  /**
76
86
  * Register an aggregation channel for the offload-eligible per-frame math
77
87
  * (ADR 0031 follow-up, #10) and obtain a `snapshot` emitter. A connector calls
@@ -161,6 +171,28 @@ export interface UptimizrConfig {
161
171
  * at most 50 are emitted per session.
162
172
  */
163
173
  captureErrors?: boolean;
174
+ /**
175
+ * Capture opt-in **engine diagnostics** (GPU-health signals) as
176
+ * `graphics_diagnostic` events — GPU errors/warnings, shader-compile failures,
177
+ * richer context-loss reasons, WebGPU `uncapturederror`, and sampled
178
+ * `gl.getError()` (ADR 0021 part 2). **Off by default**, mirroring
179
+ * `captureErrors`: the signals can be high-volume and their text can leak
180
+ * application IP, so the deployer opts in and redacts via `beforeSend`.
181
+ *
182
+ * This is the single shared gate the engine connectors read to decide whether to
183
+ * wire their backend-specific capture. It does **not** affect `context_lost` /
184
+ * `context_restored`, which are always-on and exempt from the opt-in.
185
+ */
186
+ captureGraphicsDiagnostics?: boolean;
187
+ /**
188
+ * Sub-opt-in to `captureGraphicsDiagnostics`: include **raw shader source** in
189
+ * shader-compile diagnostics (ADR 0021 part 2). **Off by default** — shader
190
+ * source is application IP, so even with diagnostics enabled the engine's
191
+ * compile/link error text is stripped of embedded source unless this is set.
192
+ * Length-capped and still passes through `beforeSend` when on. No effect when
193
+ * `captureGraphicsDiagnostics` is off.
194
+ */
195
+ captureShaderSource?: boolean;
164
196
  /** Emit debug logs to the console. */
165
197
  debug?: boolean;
166
198
  }
@@ -177,6 +209,8 @@ export interface ResolvedConfig {
177
209
  captureLifecycle: boolean;
178
210
  resizeDebounceMs: number;
179
211
  captureErrors: boolean;
212
+ captureGraphicsDiagnostics: boolean;
213
+ captureShaderSource: boolean;
180
214
  debug: boolean;
181
215
  }
182
216
  /** Optional metadata passed to `start`. */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,oBAAoB,EACpB,cAAc,EACd,SAAS,EACT,eAAe,EACf,MAAM,EACN,QAAQ,EACR,UAAU,EACV,WAAW,EACX,QAAQ,EACR,SAAS,EACT,WAAW,EACX,IAAI,EACL,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAE1D;;;GAGG;AACH,MAAM,MAAM,WAAW,GACnB,WAAW,GACX,WAAW,GACX,WAAW,GACX,IAAI,GACJ,YAAY,GACZ,KAAK,GACL,SAAS,GACT,UAAU,CAAC;AAEf;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,QAAQ,SAAS,MAAM,CAAC,GAC7C,CAAC,SAAS,QAAQ,GAChB,IAAI,CAAC,CAAC,EAAE,WAAW,CAAC,GACpB,KAAK,GACP,KAAK,CAAC;AAEV;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,2DAA2D;IAC3D,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,+DAA+D;IAC/D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qFAAqF;IACrF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sDAAsD;IACtD,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,sBAAsB;IACrC,wCAAwC;IACxC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,gFAAgF;IAChF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2EAA2E;IAC3E,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,kEAAkE;IAClE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC/C;AACD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,mEAAmE;IACnE,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,iDAAiD;IACjD,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,IAAI,CAAC;IACnE,+EAA+E;IAC/E,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC3D,yFAAyF;IACzF,sBAAsB,CAAC,MAAM,EAAE,sBAAsB,GAAG,IAAI,CAAC;IAC7D,8EAA8E;IAC9E,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC;;;;;;;;OAQG;IACH,mBAAmB,CAAC,QAAQ,EAAE,CAAC,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC;IAC1E;;;;;;;;;;;OAWG;IACH,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,GAAG,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;IAC1E,+DAA+D;IAC/D,GAAG,IAAI,MAAM,CAAC;CACf;AAED,sEAAsE;AACtE,MAAM,WAAW,eAAe;IAC9B,IAAI,IAAI,IAAI,CAAC;CACd;AAED;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,GAAG,EAAE,gBAAgB,GAAG,eAAe,GAAG,IAAI,CAAC;CACtD;AAED,uEAAuE;AACvE,MAAM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,QAAQ,KAAK,QAAQ,GAAG,IAAI,CAAC;AAElE,mDAAmD;AACnD,MAAM,WAAW,cAAc;IAC7B,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,uEAAuE;IACvE,QAAQ,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0DAA0D;IAC1D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kFAAkF;IAClF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qFAAqF;IACrF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wEAAwE;IACxE,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC5B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,MAAM,CAAC;IAC5B,sDAAsD;IACtD,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iEAAiE;IACjE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;;;;;;;;OAWG;IACH,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC;;;;;;;OAOG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,sCAAsC;IACtC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,oCAAoC;AACpC,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC3B,QAAQ,EAAE,OAAO,CAAC;IAClB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,0BAA0B,EAAE,OAAO,CAAC;IACpC,mBAAmB,EAAE,OAAO,CAAC;IAC7B,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,2CAA2C;AAC3C,MAAM,WAAW,SAAS;IACxB,qFAAqF;IACrF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wFAAwF;IACxF,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,sEAAsE;IACtE,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,uFAAuF;IACvF,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,mEAAmE;IACnE,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,6BAA6B;IAC7B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,4DAA4D;IAC5D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uptimizr/sdk-core",
3
- "version": "0.2.0",
3
+ "version": "0.4.0",
4
4
  "description": "Framework-agnostic Uptimizr capture runtime — session, batching, cookieless transport, and a pluggable collector system.",
5
5
  "keywords": [
6
6
  "uptimizr",
@@ -46,7 +46,7 @@
46
46
  ],
47
47
  "sideEffects": false,
48
48
  "dependencies": {
49
- "@uptimizr/schema": "0.3.0"
49
+ "@uptimizr/schema": "0.5.0"
50
50
  },
51
51
  "devDependencies": {
52
52
  "vitest": "^4.1.9"