@uptimizr/sdk-core 0.1.2 → 0.3.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.
- package/dist/aggregation/aggregator.d.ts +62 -0
- package/dist/aggregation/aggregator.d.ts.map +1 -0
- package/dist/aggregation/aggregator.js +194 -0
- package/dist/aggregation/aggregator.js.map +1 -0
- package/dist/aggregation/index.d.ts +14 -0
- package/dist/aggregation/index.d.ts.map +1 -0
- package/dist/aggregation/index.js +11 -0
- package/dist/aggregation/index.js.map +1 -0
- package/dist/aggregation/math.d.ts +63 -0
- package/dist/aggregation/math.d.ts.map +1 -0
- package/dist/aggregation/math.js +118 -0
- package/dist/aggregation/math.js.map +1 -0
- package/dist/aggregation/snapshot.d.ts +123 -0
- package/dist/aggregation/snapshot.d.ts.map +1 -0
- package/dist/aggregation/snapshot.js +16 -0
- package/dist/aggregation/snapshot.js.map +1 -0
- package/dist/aggregationSink.d.ts +67 -0
- package/dist/aggregationSink.d.ts.map +1 -0
- package/dist/aggregationSink.js +110 -0
- package/dist/aggregationSink.js.map +1 -0
- package/dist/client.d.ts +22 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +71 -3
- package/dist/client.js.map +1 -1
- package/dist/graphicsDiagnostics.d.ts +301 -0
- package/dist/graphicsDiagnostics.d.ts.map +1 -0
- package/dist/graphicsDiagnostics.js +409 -0
- package/dist/graphicsDiagnostics.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/offloadProtocol.d.ts +52 -8
- package/dist/offloadProtocol.d.ts.map +1 -1
- package/dist/offloadWorker.js +38 -7
- package/dist/offloadWorker.js.map +1 -1
- package/dist/processor.d.ts +2 -0
- package/dist/processor.d.ts.map +1 -1
- package/dist/processor.js +1 -1
- package/dist/processor.js.map +1 -1
- package/dist/types.d.ts +39 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -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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"}
|