@forgeax/engine-rhi 0.1.20 → 0.1.23

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forgeax/engine-rhi",
3
- "version": "0.1.20",
3
+ "version": "0.1.23",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -26,7 +26,7 @@
26
26
  "LICENSE"
27
27
  ],
28
28
  "dependencies": {
29
- "@forgeax/engine-types": "0.1.20",
29
+ "@forgeax/engine-types": "0.1.23",
30
30
  "@webgpu/types": "^0.1.71"
31
31
  },
32
32
  "forgeax": {
@@ -2,7 +2,8 @@
2
2
  // `@webgpu/types` GPUCommandEncoder (research F-1 / plan-strategy D-S4).
3
3
  //
4
4
  // Asserts (will be RED until w3 lands the impl):
5
- // - 12 spec methods (9 direct + 3 GPUDebugCommandsMixin) exist on RhiCommandEncoder
5
+ // - 12 spec methods (9 direct + 3 GPUDebugCommandsMixin) plus one ForgeaX
6
+ // compound operation exist on RhiCommandEncoder
6
7
  // - `copyBufferToBuffer` exposes both spec overloads (3-arg shorthand + 5-arg full form)
7
8
  // - `finish()` returns Result<CommandBuffer, RhiError>
8
9
  // - method NAMES align byte-for-byte with `@webgpu/types` GPUCommandEncoder
@@ -14,13 +15,14 @@ import { describe, expectTypeOf, it } from 'vitest';
14
15
  import type {
15
16
  Buffer,
16
17
  CommandBuffer,
18
+ ComputePassDescriptor,
17
19
  QuerySet,
18
20
  Result,
19
21
  RhiCommandEncoder,
20
22
  RhiError,
21
23
  } from '../index';
22
24
 
23
- describe('w2 - RhiCommandEncoder spec method set (12 methods)', () => {
25
+ describe('w2 - RhiCommandEncoder spec method set (12 spec + 1 compound)', () => {
24
26
  it('exposes beginRenderPass(desc): RhiRenderPassEncoder', () => {
25
27
  expectTypeOf<RhiCommandEncoder['beginRenderPass']>().toBeFunction();
26
28
  });
@@ -29,6 +31,11 @@ describe('w2 - RhiCommandEncoder spec method set (12 methods)', () => {
29
31
  expectTypeOf<RhiCommandEncoder['beginComputePass']>().toBeFunction();
30
32
  });
31
33
 
34
+ it('exposes encodeEmptyComputePass(desc): void as a ForgeaX compound operation', () => {
35
+ type Expected = (desc: ComputePassDescriptor) => void;
36
+ expectTypeOf<RhiCommandEncoder['encodeEmptyComputePass']>().toMatchTypeOf<Expected>();
37
+ });
38
+
32
39
  it('exposes copyBufferToBuffer (5-arg full form per spec)', () => {
33
40
  // 5-arg overload must be callable (research F-1 finding):
34
41
  // copyBufferToBuffer(src, srcOffset, dst, dstOffset, size): void
@@ -104,14 +111,4 @@ describe('w2 - RhiCommandEncoder spec method set (12 methods)', () => {
104
111
  Result<CommandBuffer, RhiError>
105
112
  >();
106
113
  });
107
-
108
- // w38 (M5 / K-3): writeTimestamp on the CommandEncoder entry only.
109
- // CPE/RPE inside-pass timestamp writes are deferred to
110
- // feat-future-rhi-perf-timestamp-pass per K-3 decision.
111
- it('exposes writeTimestamp(querySet, queryIndex): void (K-3 CommandEncoder-only)', () => {
112
- type Method = RhiCommandEncoder['writeTimestamp'];
113
- expectTypeOf<Method>().toBeFunction();
114
- type Expected = (querySet: QuerySet, queryIndex: number) => void;
115
- expectTypeOf<Expected>().toMatchTypeOf<Method>();
116
- });
117
114
  });
@@ -83,6 +83,8 @@ describe('M2 / w8 — RhiErrorCode 21st member instancing-exceeds-uniform-cap',
83
83
  return 'empty-worlds';
84
84
  case 'render-system-owner-out-of-range':
85
85
  return 'owner-oob';
86
+ case 'rhi-texture-format-capability-unavailable':
87
+ return 'texture-format-unavailable';
86
88
  }
87
89
  // No default — tsc strict guards: union drift here triggers compile-time red.
88
90
  }
@@ -178,6 +178,8 @@ describe('MVP-1.7 — RhiErrorCode closed union 20 members', () => {
178
178
  return 'empty-worlds';
179
179
  case 'render-system-owner-out-of-range':
180
180
  return 'owner-oob';
181
+ case 'rhi-texture-format-capability-unavailable':
182
+ return 'texture-format-unavailable';
181
183
  }
182
184
  // No default — TS guards: union drift here triggers compile-time red.
183
185
  }
@@ -0,0 +1,105 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import {
3
+ createUnavailableR32FloatReceipt,
4
+ R32FLOAT_MIP_SAMPLED_STORAGE_PROFILE,
5
+ type RhiTextureFormatProbeStage,
6
+ validateR32FloatReceipt,
7
+ } from '../capability/texture-format';
8
+
9
+ const stages: readonly RhiTextureFormatProbeStage[] = [
10
+ 'texture-create',
11
+ 'mip-view',
12
+ 'sampled-storage-bind-group',
13
+ 'pipeline-bind',
14
+ 'finish',
15
+ 'submit',
16
+ 'completion',
17
+ 'readback',
18
+ ];
19
+
20
+ describe('r32float-mip-sampled-storage profile', () => {
21
+ it('keeps the profile closed and records every required stage', () => {
22
+ const receipt = createUnavailableR32FloatReceipt({
23
+ deviceGeneration: 7,
24
+ failedStage: 'readback',
25
+ detail: 'readback was not completed',
26
+ });
27
+
28
+ expect(receipt.profile).toBe(R32FLOAT_MIP_SAMPLED_STORAGE_PROFILE);
29
+ expect(receipt.verdict).toBe('unavailable');
30
+ expect(receipt.evidence).toBe('real');
31
+ expect(receipt.deviceGeneration).toBe(7);
32
+ expect(receipt.stages.map((stage) => stage.stage)).toEqual(stages);
33
+ expect(receipt.stages.find((stage) => stage.stage === 'readback')).toMatchObject({
34
+ verdict: 'unavailable',
35
+ evidence: 'real',
36
+ detail: 'readback was not completed',
37
+ });
38
+ });
39
+
40
+ it.each(stages)('rejects a receipt missing the %s stage', (missingStage) => {
41
+ const receipt = createUnavailableR32FloatReceipt({
42
+ deviceGeneration: 1,
43
+ failedStage: missingStage,
44
+ detail: `missing ${missingStage}`,
45
+ });
46
+ const incomplete = {
47
+ ...receipt,
48
+ stages: receipt.stages.filter((stage) => stage.stage !== missingStage),
49
+ };
50
+
51
+ const result = validateR32FloatReceipt(incomplete);
52
+ expect(result.ok).toBe(false);
53
+ if (!result.ok) {
54
+ expect(result.error.code).toBe('rhi-texture-format-capability-unavailable');
55
+ expect(result.error.detail).toMatchObject({ stage: missingStage });
56
+ }
57
+ });
58
+
59
+ it('rejects a receipt with an admitted verdict that lacks readback evidence', () => {
60
+ const receipt = createUnavailableR32FloatReceipt({
61
+ deviceGeneration: 3,
62
+ failedStage: 'readback',
63
+ detail: 'readback was not completed',
64
+ });
65
+ const admitted = {
66
+ ...receipt,
67
+ verdict: 'admitted' as const,
68
+ stages: receipt.stages.map((stage) => ({
69
+ ...stage,
70
+ verdict: 'admitted' as const,
71
+ evidence: 'real' as const,
72
+ })),
73
+ readback: undefined,
74
+ };
75
+
76
+ const result = validateR32FloatReceipt(admitted);
77
+ expect(result.ok).toBe(false);
78
+ if (!result.ok) {
79
+ expect(result.error.code).toBe('rhi-texture-format-capability-unavailable');
80
+ expect(result.error.detail).toMatchObject({ stage: 'readback' });
81
+ }
82
+ });
83
+
84
+ it('rejects a profile with a filtered sample type or incomplete usage contract', () => {
85
+ const receipt = createUnavailableR32FloatReceipt({
86
+ deviceGeneration: 4,
87
+ failedStage: 'sampled-storage-bind-group',
88
+ detail: 'sampled/storage binding contract was rejected',
89
+ });
90
+ const invalid = {
91
+ ...receipt,
92
+ sampleType: 'float' as const,
93
+ usages: ['texture-binding'] as const,
94
+ };
95
+
96
+ const result = validateR32FloatReceipt(
97
+ invalid as unknown as Parameters<typeof validateR32FloatReceipt>[0],
98
+ );
99
+ expect(result.ok).toBe(false);
100
+ if (!result.ok) {
101
+ expect(result.error.code).toBe('rhi-texture-format-capability-unavailable');
102
+ expect(result.error.detail).toMatchObject({ stage: 'sampled-storage-bind-group' });
103
+ }
104
+ });
105
+ });
@@ -0,0 +1,137 @@
1
+ import { err, ok, type Result, RhiError } from '../errors';
2
+
3
+ /** The only format profile currently admitted by the reflection fallback path. */
4
+ export const R32FLOAT_MIP_SAMPLED_STORAGE_PROFILE = 'r32float-mip-sampled-storage' as const;
5
+
6
+ export type RhiTextureFormatProfile = typeof R32FLOAT_MIP_SAMPLED_STORAGE_PROFILE;
7
+ export type RhiTextureFormatProbeVerdict = 'admitted' | 'unavailable' | 'structural-only';
8
+ export type RhiTextureFormatProbeEvidence = 'real' | 'structural';
9
+ export type RhiTextureFormatProbeStage =
10
+ | 'texture-create'
11
+ | 'mip-view'
12
+ | 'sampled-storage-bind-group'
13
+ | 'pipeline-bind'
14
+ | 'finish'
15
+ | 'submit'
16
+ | 'completion'
17
+ | 'readback';
18
+
19
+ export const R32FLOAT_PROBE_STAGES: readonly RhiTextureFormatProbeStage[] = [
20
+ 'texture-create',
21
+ 'mip-view',
22
+ 'sampled-storage-bind-group',
23
+ 'pipeline-bind',
24
+ 'finish',
25
+ 'submit',
26
+ 'completion',
27
+ 'readback',
28
+ ];
29
+
30
+ export interface RhiTextureFormatProbeStageReceipt {
31
+ readonly stage: RhiTextureFormatProbeStage;
32
+ readonly verdict: RhiTextureFormatProbeVerdict;
33
+ readonly evidence: RhiTextureFormatProbeEvidence;
34
+ readonly detail?: string | undefined;
35
+ }
36
+
37
+ export interface RhiTextureFormatReadback {
38
+ readonly byteLength: number;
39
+ readonly values: readonly number[];
40
+ }
41
+
42
+ export interface RhiTextureFormatCapabilityReceipt {
43
+ readonly profile: RhiTextureFormatProfile;
44
+ readonly verdict: RhiTextureFormatProbeVerdict;
45
+ readonly evidence: RhiTextureFormatProbeEvidence;
46
+ readonly deviceGeneration: number;
47
+ readonly stages: readonly RhiTextureFormatProbeStageReceipt[];
48
+ readonly sampleType: 'unfilterable-float';
49
+ readonly usages: readonly ['texture-binding', 'storage-binding', 'copy-src'];
50
+ readonly readback?: RhiTextureFormatReadback | undefined;
51
+ readonly probeExecutions: number;
52
+ }
53
+
54
+ export interface CreateUnavailableR32FloatReceiptOptions {
55
+ readonly deviceGeneration: number;
56
+ readonly failedStage: RhiTextureFormatProbeStage;
57
+ readonly detail: string;
58
+ readonly evidence?: RhiTextureFormatProbeEvidence | undefined;
59
+ }
60
+
61
+ export function createUnavailableR32FloatReceipt(
62
+ options: CreateUnavailableR32FloatReceiptOptions,
63
+ ): RhiTextureFormatCapabilityReceipt {
64
+ const failureIndex = R32FLOAT_PROBE_STAGES.indexOf(options.failedStage);
65
+ const evidence = options.evidence ?? 'real';
66
+ return {
67
+ profile: R32FLOAT_MIP_SAMPLED_STORAGE_PROFILE,
68
+ verdict: 'unavailable',
69
+ evidence,
70
+ deviceGeneration: options.deviceGeneration,
71
+ stages: R32FLOAT_PROBE_STAGES.map((stage, index) => ({
72
+ stage,
73
+ verdict: index < failureIndex ? 'admitted' : 'unavailable',
74
+ evidence,
75
+ ...(stage === options.failedStage ? { detail: options.detail } : {}),
76
+ })),
77
+ sampleType: 'unfilterable-float',
78
+ usages: ['texture-binding', 'storage-binding', 'copy-src'],
79
+ probeExecutions: 1,
80
+ };
81
+ }
82
+
83
+ export function validateR32FloatReceipt(
84
+ receipt: RhiTextureFormatCapabilityReceipt,
85
+ ): Result<RhiTextureFormatCapabilityReceipt, RhiError> {
86
+ const missing = R32FLOAT_PROBE_STAGES.find(
87
+ (stage) => !receipt.stages.some((entry) => entry.stage === stage),
88
+ );
89
+ if (missing !== undefined) {
90
+ return unavailable(receipt, missing, `required stage ${missing} is missing`);
91
+ }
92
+ if (receipt.profile !== R32FLOAT_MIP_SAMPLED_STORAGE_PROFILE) {
93
+ return unavailable(receipt, 'texture-create', 'profile is not the closed r32float profile');
94
+ }
95
+ if (receipt.sampleType !== 'unfilterable-float') {
96
+ return unavailable(
97
+ receipt,
98
+ 'sampled-storage-bind-group',
99
+ 'sample type must be unfilterable-float',
100
+ );
101
+ }
102
+ if (
103
+ receipt.usages.length !== 3 ||
104
+ receipt.usages[0] !== 'texture-binding' ||
105
+ receipt.usages[1] !== 'storage-binding' ||
106
+ receipt.usages[2] !== 'copy-src'
107
+ ) {
108
+ return unavailable(
109
+ receipt,
110
+ 'sampled-storage-bind-group',
111
+ 'sampled, storage, and readback usages are required',
112
+ );
113
+ }
114
+ if (receipt.verdict === 'admitted' && receipt.readback === undefined) {
115
+ return unavailable(receipt, 'readback', 'admitted profiles require real readback evidence');
116
+ }
117
+ return ok(receipt);
118
+ }
119
+
120
+ function unavailable(
121
+ receipt: RhiTextureFormatCapabilityReceipt,
122
+ stage: RhiTextureFormatProbeStage,
123
+ detail: string,
124
+ ): Result<never, RhiError> {
125
+ return err(
126
+ new RhiError({
127
+ code: 'rhi-texture-format-capability-unavailable',
128
+ expected: `r32float profile stage ${stage} to be complete`,
129
+ hint: 'retain fallback-only rendering and retry the owner-owned device probe',
130
+ detail: {
131
+ stage,
132
+ deviceGeneration: receipt.deviceGeneration,
133
+ reason: detail,
134
+ },
135
+ }),
136
+ );
137
+ }
package/src/errors.ts CHANGED
@@ -143,7 +143,8 @@ export type RhiErrorCode =
143
143
  | 'rhi-descriptor-invalid'
144
144
  | 'instancing-exceeds-uniform-cap'
145
145
  | 'render-system-empty-worlds'
146
- | 'render-system-owner-out-of-range';
146
+ | 'render-system-owner-out-of-range'
147
+ | 'rhi-texture-format-capability-unavailable';
147
148
 
148
149
  /**
149
150
  * Detail structure exclusive to the `shader-compile-failed` path.
@@ -225,24 +226,13 @@ export interface LimitExceededDetail {
225
226
  }
226
227
 
227
228
  /**
228
- * Detail structure exclusive to the `'render-system-multi-light'` path
229
- * (feat-20260519-light-casters-point-spot-pbr M3 / w20 + plan-strategy
230
- * section 8 (3) (b)).
231
- *
232
- * Emitted by the RenderSystem record stage when first-slice cap exceedance
233
- * is detected: `type` discriminates the offending bucket
234
- * (`'directional'` for N>1 / `'point'` or `'spot'` for N>4); `got`
235
- * carries the observed entity count so AI users can branch via property
236
- * access (`err.detail.type === 'point' && err.detail.got > 4`) rather
237
- * than parsing the message string (charter proposition 4 + F-3 contract
238
- * surface).
239
- *
240
- * Single live emit point: the RenderSystem record stage three-bucket
241
- * fail-fast (`packages/runtime/src/render-system-record.ts`). Minor
242
- * additive evolution per AGENTS.md error model evolution contract.
229
+ * Detail structure exclusive to the `'render-system-multi-light'` path.
230
+ * The only remaining cardinality rule is one global DirectionalLight; all
231
+ * PointLight, SpotLight, and RectArea lights are admitted through the shared
232
+ * shared Cluster corpus and are admitted by the same local-light contract.
243
233
  */
244
234
  export interface RhiMultiLightDetail {
245
- readonly type: 'directional' | 'point' | 'spot';
235
+ readonly type: 'directional';
246
236
  readonly got: number;
247
237
  }
248
238
 
@@ -331,6 +321,13 @@ export interface RhiOwnerOutOfRangeDetail {
331
321
  readonly worldCount: number;
332
322
  }
333
323
 
324
+ /** Detail for an incomplete device-owned texture-format profile probe. */
325
+ export interface RhiTextureFormatCapabilityUnavailableDetail {
326
+ readonly stage: string;
327
+ readonly deviceGeneration: number;
328
+ readonly reason: string;
329
+ }
330
+
334
331
  /**
335
332
  * Tagged union of `.detail` shapes carried by structured errors.
336
333
  *
@@ -360,7 +357,8 @@ export type RhiErrorDetail =
360
357
  | LimitExceededDetail
361
358
  | RhiMultiLightDetail
362
359
  | RhiInstancingExceedsUniformCapDetail
363
- | RhiOwnerOutOfRangeDetail;
360
+ | RhiOwnerOutOfRangeDetail
361
+ | RhiTextureFormatCapabilityUnavailableDetail;
364
362
 
365
363
  /**
366
364
  * Structured RHI error.
package/src/index.ts CHANGED
@@ -56,6 +56,7 @@ import type {
56
56
  FilterMode,
57
57
  TextureFormat,
58
58
  } from '@forgeax/engine-types';
59
+ import type { RhiTextureFormatCapabilityReceipt } from './capability/texture-format';
59
60
  import type { Result, RhiError } from './errors';
60
61
 
61
62
  // ============================================================================
@@ -211,6 +212,22 @@ export interface Texture {
211
212
  readonly [RhiTextureBrand]: void;
212
213
  }
213
214
 
215
+ /** RHI-safe source for a texture-to-buffer copy. */
216
+ export interface TextureCopySource {
217
+ readonly texture: Texture;
218
+ readonly mipLevel?: number | undefined;
219
+ readonly origin?: GPUOrigin3D | undefined;
220
+ readonly aspect?: GPUTextureAspect | undefined;
221
+ }
222
+
223
+ /** RHI-safe destination for a texture-to-buffer copy. */
224
+ export interface BufferCopyDestination {
225
+ readonly buffer: Buffer;
226
+ readonly offset?: number | undefined;
227
+ readonly bytesPerRow: number;
228
+ readonly rowsPerImage?: number | undefined;
229
+ }
230
+
214
231
  /** RHI-owned destination for queue.writeTexture. The resource handle remains opaque. */
215
232
  export interface TextureWriteDestination {
216
233
  readonly texture: Texture;
@@ -1078,7 +1095,7 @@ export interface RhiCaps {
1078
1095
  * spec minimum = 4, defaults to 8 on mainstream backends.
1079
1096
  * HDRP deferred pipeline requires >= 4 (3 g-buffer RT + 1 depth);
1080
1097
  * installPipeline checks this cap at install time and throws
1081
- * `hdrp-deferred-caps-insufficient` on violation (charter P3).
1098
+ * a structured Standard transport refusal on violation (charter P3).
1082
1099
  * @note add-only minor (feat-20260612-hdrp-deferred-shading-learn-render-5-8
1083
1100
  * M1 / w5); no existing field is modified.
1084
1101
  */
@@ -1462,6 +1479,9 @@ export interface RhiDevice {
1462
1479
  /** Numeric-limits layer. */
1463
1480
  readonly limits: RhiLimits;
1464
1481
 
1482
+ /** Probe the complete r32float sampled/storage/readback profile once per device generation. */
1483
+ probeTextureFormatCapability(): Promise<Result<RhiTextureFormatCapabilityReceipt, RhiError>>;
1484
+
1465
1485
  /** Create GPU buffer. */
1466
1486
  createBuffer(desc: BufferDescriptor): Result<Buffer, RhiError>;
1467
1487
  /** Create GPU texture. */
@@ -1755,7 +1775,8 @@ export interface RhiQueue {
1755
1775
  /** GPU command encoder - records render / compute passes + resource copies.
1756
1776
  *
1757
1777
  * Method NAMES align byte-for-byte with `@webgpu/types.GPUCommandEncoder` +
1758
- * `GPUDebugCommandsMixin` (research F-1 / D-S4). 12 methods total:
1778
+ * `GPUDebugCommandsMixin` (research F-1 / D-S4). 12 spec methods plus one
1779
+ * ForgeaX compound operation:
1759
1780
  * - 9 direct: beginRenderPass / beginComputePass / copyBufferToBuffer /
1760
1781
  * copyBufferToTexture / copyTextureToBuffer / copyTextureToTexture /
1761
1782
  * clearBuffer / resolveQuerySet / finish
@@ -1786,6 +1807,17 @@ export interface RhiCommandEncoder {
1786
1807
  * const pass = encoder.beginComputePass();
1787
1808
  */
1788
1809
  beginComputePass(desc?: ComputePassDescriptor | undefined): RhiComputePassEncoder;
1810
+ /**
1811
+ * Record an empty timestamp-enabled compute pass and close it immediately.
1812
+ *
1813
+ * This is a ForgeaX compound recording operation equivalent to
1814
+ * `const pass = encoder.beginComputePass(desc); pass.end()`; it is not a
1815
+ * native `GPUCommandEncoder` method and does not write a timestamp directly.
1816
+ *
1817
+ * @throws RhiError code === 'command-encoder-finished' when invoked on a
1818
+ * finished encoder.
1819
+ */
1820
+ encodeEmptyComputePass(desc: ComputePassDescriptor): void;
1789
1821
  /** Copy a sub-region of a Buffer to another Buffer (5-arg full form).
1790
1822
  *
1791
1823
  * Spec anchor: [@webgpu/types.GPUCommandEncoder.copyBufferToBuffer].
@@ -1836,6 +1868,18 @@ export interface RhiCommandEncoder {
1836
1868
  destination: GPUTexelCopyBufferInfo,
1837
1869
  copySize: GPUExtent3DStrict,
1838
1870
  ): void;
1871
+ /** Opaque RHI handle form for renderer-owned readback. */
1872
+ copyTextureToBuffer(
1873
+ source: TextureCopySource,
1874
+ destination: BufferCopyDestination,
1875
+ copySize: GPUExtent3DStrict,
1876
+ ): void;
1877
+ /** Union form for decorators that transparently forward either handle form. */
1878
+ copyTextureToBuffer(
1879
+ source: GPUTexelCopyTextureInfo | TextureCopySource,
1880
+ destination: GPUTexelCopyBufferInfo | BufferCopyDestination,
1881
+ copySize: GPUExtent3DStrict,
1882
+ ): void;
1839
1883
  /** Copy a Texture sub-region to a Texture sub-region.
1840
1884
  *
1841
1885
  * Spec anchor: [@webgpu/types.GPUCommandEncoder.copyTextureToTexture].
@@ -1882,32 +1926,6 @@ export interface RhiCommandEncoder {
1882
1926
  destination: Buffer,
1883
1927
  destinationOffset: number,
1884
1928
  ): Result<void, RhiError>;
1885
- /**
1886
- * Write a u64 GPU timestamp into a timestamp QuerySet at queryIndex.
1887
- *
1888
- * Spec anchor: W3C WebGPU §queries / [@webgpu/types.GPUCommandEncoder].
1889
- * dawn `TimestampOnCommandEncoder` reference (research §2.4): the entry is
1890
- * gated on the `'timestamp-query'` device feature. K-3 decision
1891
- * (plan-strategy §2): the forgeax form ships ONLY this CommandEncoder
1892
- * entry; CPE/RPE inside-pass timestamp writes are deferred to
1893
- * `feat-future-rhi-perf-timestamp-pass` (additive minor evolution).
1894
- *
1895
- * Return shape: `void` per spec literal alignment. When
1896
- * `caps.timestampQuery === false` the shim fans out a structured
1897
- * `'feature-not-enabled'` RhiError through the engine `onError` channel
1898
- * (the forgeax form keeps the spec void return; AI users probe the gate
1899
- * via `device.caps.timestampQuery` BEFORE calling this entry, charter
1900
- * proposition 4 explicit failure forward-reachable).
1901
- *
1902
- * @throws RhiError code === 'command-encoder-finished' when invoked on a finished encoder (dual-channel; see beginRenderPass JSDoc for the recovery pattern).
1903
- * @example
1904
- * if (device.caps.timestampQuery) {
1905
- * encoder.writeTimestamp(qs, 0);
1906
- * // ... draw / dispatch ...
1907
- * encoder.writeTimestamp(qs, 1);
1908
- * }
1909
- */
1910
- writeTimestamp(querySet: QuerySet, queryIndex: number): void;
1911
1929
  /** Push a labelled debug group (GPUDebugCommandsMixin).
1912
1930
  *
1913
1931
  * Spec anchor: [@webgpu/types.GPUDebugCommandsMixin.pushDebugGroup].
@@ -2193,6 +2211,19 @@ export interface RhiComputePipelineOps {
2193
2211
  // re-export errors (charter proposition 1: single entry shows the full surface)
2194
2212
  // ============================================================================
2195
2213
 
2214
+ export {
2215
+ type CreateUnavailableR32FloatReceiptOptions,
2216
+ createUnavailableR32FloatReceipt,
2217
+ R32FLOAT_MIP_SAMPLED_STORAGE_PROFILE,
2218
+ R32FLOAT_PROBE_STAGES,
2219
+ type RhiTextureFormatCapabilityReceipt,
2220
+ type RhiTextureFormatProbeEvidence,
2221
+ type RhiTextureFormatProbeStage,
2222
+ type RhiTextureFormatProbeStageReceipt,
2223
+ type RhiTextureFormatProbeVerdict,
2224
+ type RhiTextureFormatReadback,
2225
+ validateR32FloatReceipt,
2226
+ } from './capability/texture-format';
2196
2227
  export type {
2197
2228
  DrawOwnerSplit,
2198
2229
  LimitExceededDetail,
package/dist/.tsbuildinfo DELETED
@@ -1 +0,0 @@
1
- {"fileNames":["../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/.pnpm/typescript@6.0.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../node_modules/.pnpm/@webgpu+types@0.1.71/node_modules/@webgpu/types/dist/index.d.ts","../../types/dist/animation-target.d.ts","../../types/dist/asset-errors.d.ts","../../types/dist/result.d.ts","../../types/dist/asset-evidence.d.ts","../../types/dist/asset.d.ts","../../types/dist/material/color-space.d.ts","../../types/dist/material/asset.d.ts","../../types/dist/vfx.d.ts","../../types/dist/asset-runtime.d.ts","../../types/dist/handle.d.ts","../../types/dist/material/errors.d.ts","../../types/dist/material/resolve.d.ts","../../types/dist/material/index.d.ts","../../types/dist/asset-producer.d.ts","../../types/dist/catalog.d.ts","../../types/dist/runtime-scope.d.ts","../../types/dist/texture/asset.d.ts","../../types/dist/texture/errors.d.ts","../../types/dist/texture/layout.d.ts","../../types/dist/texture/index.d.ts","../../types/dist/derive-paramschema.d.ts","../../types/dist/import.d.ts","../../types/dist/index.d.ts","../src/errors.ts","../src/index.ts","../../../node_modules/.pnpm/@vitest+pretty-format@4.1.11/node_modules/@vitest/pretty-format/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+utils@4.1.11/node_modules/@vitest/utils/dist/display.d.ts","../../../node_modules/.pnpm/@vitest+utils@4.1.11/node_modules/@vitest/utils/dist/types.d.ts","../../../node_modules/.pnpm/@vitest+utils@4.1.11/node_modules/@vitest/utils/dist/helpers.d.ts","../../../node_modules/.pnpm/@vitest+utils@4.1.11/node_modules/@vitest/utils/dist/timers.d.ts","../../../node_modules/.pnpm/@vitest+utils@4.1.11/node_modules/@vitest/utils/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+utils@4.1.11/node_modules/@vitest/utils/dist/types.d-BCElaP-c.d.ts","../../../node_modules/.pnpm/@vitest+utils@4.1.11/node_modules/@vitest/utils/dist/diff.d.ts","../../../node_modules/.pnpm/@vitest+runner@4.1.11/node_modules/@vitest/runner/dist/tasks.d-DEYaIMIu.d.ts","../../../node_modules/.pnpm/@vitest+runner@4.1.11/node_modules/@vitest/runner/dist/index.d.ts","../../../node_modules/.pnpm/vitest@4.1.11_@types+node@20.19.40_@vitest+browser-playwright@4.1.11_@vitest+coverage-v_127da6c4db5f633b4e0a459eab2c3062/node_modules/vitest/dist/chunks/traces.d.D2T_R8rx.d.ts","../../../node_modules/.pnpm/vite@8.0.10_@types+node@20.19.40_esbuild@0.27.7_jiti@1.21.7/node_modules/vite/types/hmrPayload.d.ts","../../../node_modules/.pnpm/vite@8.0.10_@types+node@20.19.40_esbuild@0.27.7_jiti@1.21.7/node_modules/vite/dist/node/chunks/moduleRunnerTransport.d.ts","../../../node_modules/.pnpm/vite@8.0.10_@types+node@20.19.40_esbuild@0.27.7_jiti@1.21.7/node_modules/vite/types/customEvent.d.ts","../../../node_modules/.pnpm/vite@8.0.10_@types+node@20.19.40_esbuild@0.27.7_jiti@1.21.7/node_modules/vite/types/hot.d.ts","../../../node_modules/.pnpm/vite@8.0.10_@types+node@20.19.40_esbuild@0.27.7_jiti@1.21.7/node_modules/vite/dist/node/module-runner.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@4.1.11/node_modules/@vitest/snapshot/dist/environment.d-DOJxxZV9.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@4.1.11/node_modules/@vitest/snapshot/dist/rawSnapshot.d-D_X3-62x.d.ts","../../../node_modules/.pnpm/@vitest+snapshot@4.1.11/node_modules/@vitest/snapshot/dist/index.d.ts","../../../node_modules/.pnpm/vitest@4.1.11_@types+node@20.19.40_@vitest+browser-playwright@4.1.11_@vitest+coverage-v_127da6c4db5f633b4e0a459eab2c3062/node_modules/vitest/dist/chunks/config.d.A1h_Y6Jt.d.ts","../../../node_modules/.pnpm/vitest@4.1.11_@types+node@20.19.40_@vitest+browser-playwright@4.1.11_@vitest+coverage-v_127da6c4db5f633b4e0a459eab2c3062/node_modules/vitest/dist/chunks/environment.d.CrsxCzP1.d.ts","../../../node_modules/.pnpm/vitest@4.1.11_@types+node@20.19.40_@vitest+browser-playwright@4.1.11_@vitest+coverage-v_127da6c4db5f633b4e0a459eab2c3062/node_modules/vitest/dist/chunks/rpc.d.B_8sPU0w.d.ts","../../../node_modules/.pnpm/vitest@4.1.11_@types+node@20.19.40_@vitest+browser-playwright@4.1.11_@vitest+coverage-v_127da6c4db5f633b4e0a459eab2c3062/node_modules/vitest/dist/chunks/worker.d.ZpHpO4yb.d.ts","../../../node_modules/.pnpm/vitest@4.1.11_@types+node@20.19.40_@vitest+browser-playwright@4.1.11_@vitest+coverage-v_127da6c4db5f633b4e0a459eab2c3062/node_modules/vitest/dist/chunks/browser.d.BcoexmFG.d.ts","../../../node_modules/.pnpm/@vitest+spy@4.1.11/node_modules/@vitest/spy/optional-types.d.ts","../../../node_modules/.pnpm/@vitest+spy@4.1.11/node_modules/@vitest/spy/dist/index.d.ts","../../../node_modules/.pnpm/tinyrainbow@3.1.0/node_modules/tinyrainbow/dist/index.d.ts","../../../node_modules/.pnpm/@standard-schema+spec@1.1.0/node_modules/@standard-schema/spec/dist/index.d.ts","../../../node_modules/.pnpm/@types+deep-eql@4.0.2/node_modules/@types/deep-eql/index.d.ts","../../../node_modules/.pnpm/assertion-error@2.0.1/node_modules/assertion-error/index.d.ts","../../../node_modules/.pnpm/@types+chai@5.2.3/node_modules/@types/chai/index.d.ts","../../../node_modules/.pnpm/@vitest+expect@4.1.11/node_modules/@vitest/expect/dist/index.d.ts","../../../node_modules/.pnpm/@vitest+runner@4.1.11/node_modules/@vitest/runner/dist/utils.d.ts","../../../node_modules/.pnpm/tinybench@2.9.0/node_modules/tinybench/dist/index.d.ts","../../../node_modules/.pnpm/vitest@4.1.11_@types+node@20.19.40_@vitest+browser-playwright@4.1.11_@vitest+coverage-v_127da6c4db5f633b4e0a459eab2c3062/node_modules/vitest/dist/chunks/benchmark.d.DAaHLpsq.d.ts","../../../node_modules/.pnpm/vitest@4.1.11_@types+node@20.19.40_@vitest+browser-playwright@4.1.11_@vitest+coverage-v_127da6c4db5f633b4e0a459eab2c3062/node_modules/vitest/dist/chunks/global.d.DVsSRdQ5.d.ts","../../../node_modules/.pnpm/vitest@4.1.11_@types+node@20.19.40_@vitest+browser-playwright@4.1.11_@vitest+coverage-v_127da6c4db5f633b4e0a459eab2c3062/node_modules/vitest/optional-runtime-types.d.ts","../../../node_modules/.pnpm/@vitest+mocker@4.1.11_vite@8.0.10_@types+node@20.19.40_esbuild@0.27.7_jiti@1.21.7_/node_modules/@vitest/mocker/dist/types.d-BjI5eAwu.d.ts","../../../node_modules/.pnpm/@vitest+mocker@4.1.11_vite@8.0.10_@types+node@20.19.40_esbuild@0.27.7_jiti@1.21.7_/node_modules/@vitest/mocker/dist/index.d-B41z0AuW.d.ts","../../../node_modules/.pnpm/@vitest+mocker@4.1.11_vite@8.0.10_@types+node@20.19.40_esbuild@0.27.7_jiti@1.21.7_/node_modules/@vitest/mocker/dist/index.d.ts","../../../node_modules/.pnpm/vitest@4.1.11_@types+node@20.19.40_@vitest+browser-playwright@4.1.11_@vitest+coverage-v_127da6c4db5f633b4e0a459eab2c3062/node_modules/vitest/dist/chunks/suite.d.udJtyAgw.d.ts","../../../node_modules/.pnpm/vitest@4.1.11_@types+node@20.19.40_@vitest+browser-playwright@4.1.11_@vitest+coverage-v_127da6c4db5f633b4e0a459eab2c3062/node_modules/vitest/dist/chunks/evaluatedModules.d.BxJ5omdx.d.ts","../../../node_modules/.pnpm/vitest@4.1.11_@types+node@20.19.40_@vitest+browser-playwright@4.1.11_@vitest+coverage-v_127da6c4db5f633b4e0a459eab2c3062/node_modules/vitest/dist/runners.d.ts","../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/utils.d.ts","../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/overloads.d.ts","../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/branding.d.ts","../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/messages.d.ts","../../../node_modules/.pnpm/expect-type@1.3.0/node_modules/expect-type/dist/index.d.ts","../../../node_modules/.pnpm/vitest@4.1.11_@types+node@20.19.40_@vitest+browser-playwright@4.1.11_@vitest+coverage-v_127da6c4db5f633b4e0a459eab2c3062/node_modules/vitest/dist/index.d.ts","../src/__tests__/async-form.test-d.ts","../src/__tests__/binding-resource.test-d.ts","../src/__tests__/buffer-mapping.test-d.ts","../src/__tests__/canvasContext.test-d.ts","../src/__tests__/caps-three-way.unit.test.ts","../src/__tests__/caps.test-d.ts","../src/__tests__/command-encoder-spec-alignment.test-d.ts","../src/__tests__/createComputePipeline.test-d.ts","../src/__tests__/createQuerySet.test-d.ts","../src/__tests__/createTextureView.test-d.ts","../src/__tests__/descriptor-mirror.test-d.ts","../src/__tests__/draw-validation-errors.test.ts","../src/__tests__/errors-instancing.unit.test.ts","../src/__tests__/errors.test-d.ts","../src/__tests__/limit-exceeded-detail.test-d.ts","../src/__tests__/mapped-buffer.test-d.ts","../src/__tests__/opaque-handle.test-d.ts","../src/__tests__/owner-out-of-range-role.test.ts","../src/__tests__/queue-writes.test-d.ts","../src/__tests__/render-pass-encoder-spec-alignment.test-d.ts","../src/__tests__/requestAdapter.test-d.ts"],"fileIdsList":[[114,115],[87,93,111,112,113,116],[123],[123,124],[91,93,94],[91,93],[91],[86,91,102,103],[86,91,102],[110],[86,92],[86],[88],[86,87,88,89,90],[129,130],[129,130,131,132],[129,131],[129],[97],[97,98,99,100],[99],[95,118,119,121],[95,96,108,121],[86,93,95,96,104,121],[101],[86,95,96,104,117,120,121],[95,96,101,104,121],[95,118,119,120,121],[95,101,105,106,107,121],[86,91,93,95,96,101,104,105,106,107,108,109,111,117,118,119,120,121,122,125,126,127,128,133],[86,93,95,96,104,105,118,119,120,121,126],[85,134],[60,85,134],[84,134],[60,83],[60,83,84],[62,63,65],[62,63,65,83],[64],[63,65,74],[83],[62,74,75,76,83],[61,62,63,65,67,68,69,70,73,74,75,76,77,80,81,82],[66,83],[67],[66,67,71,72],[63,67,71],[74,75],[63,77],[77,78,79],[63,77,78]],"fileInfos":[{"version":"bcd24271a113971ba9eb71ff8cb01bc6b0f872a85c23fdbe5d93065b375933cd","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f88bedbeb09c6f5a6645cb24c7c55f1aa22d19ae96c8e6959cbd8b85a707bc6","impliedFormat":1},{"version":"7fe93b39b810eadd916be8db880dd7f0f7012a5cc6ffb62de8f62a2117fa6f1f","impliedFormat":1},{"version":"bb0074cc08b84a2374af33d8bf044b80851ccc9e719a5e202eacf40db2c31600","impliedFormat":1},{"version":"1a7daebe4f45fb03d9ec53d60008fbf9ac45a697fdc89e4ce218bc94b94f94d6","impliedFormat":1},{"version":"f94b133a3cb14a288803be545ac2683e0d0ff6661bcd37e31aaaec54fc382aed","impliedFormat":1},{"version":"f59d0650799f8782fd74cf73c19223730c6d1b9198671b1c5b3a38e1188b5953","impliedFormat":1},{"version":"8a15b4607d9a499e2dbeed9ec0d3c0d7372c850b2d5f1fb259e8f6d41d468a84","impliedFormat":1},{"version":"26e0fe14baee4e127f4365d1ae0b276f400562e45e19e35fd2d4c296684715e6","impliedFormat":1},{"version":"d6b1eba8496bdd0eed6fc8a685768fe01b2da4a0388b5fe7df558290bffcf32f","affectsGlobalScope":true,"impliedFormat":1},{"version":"7f57fc4404ff020bc45b9c620aff2b40f700b95fe31164024c453a5e3c163c54","impliedFormat":1},{"version":"eadcffda2aa84802c73938e589b9e58248d74c59cb7fcbca6474e3435ac15504","affectsGlobalScope":true,"impliedFormat":1},{"version":"105ba8ff7ba746404fe1a2e189d1d3d2e0eb29a08c18dded791af02f29fb4711","affectsGlobalScope":true,"impliedFormat":1},{"version":"00343ca5b2e3d48fa5df1db6e32ea2a59afab09590274a6cccb1dbae82e60c7c","affectsGlobalScope":true,"impliedFormat":1},{"version":"ebd9f816d4002697cb2864bea1f0b70a103124e18a8cd9645eeccc09bdf80ab4","affectsGlobalScope":true,"impliedFormat":1},{"version":"2c1afac30a01772cd2a9a298a7ce7706b5892e447bb46bdbeef720f7b5da77ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"7b0225f483e4fa685625ebe43dd584bb7973bbd84e66a6ba7bbe175ee1048b4f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c0a4b8ac6ce74679c1da2b3795296f5896e31c38e888469a8e0f99dc3305de60","affectsGlobalScope":true,"impliedFormat":1},{"version":"3084a7b5f569088e0146533a00830e206565de65cae2239509168b11434cd84f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5079c53f0f141a0698faa903e76cb41cd664e3efb01cc17a5c46ec2eb0bef42","affectsGlobalScope":true,"impliedFormat":1},{"version":"32cafbc484dea6b0ab62cf8473182bbcb23020d70845b406f80b7526f38ae862","affectsGlobalScope":true,"impliedFormat":1},{"version":"fca4cdcb6d6c5ef18a869003d02c9f0fd95df8cfaf6eb431cd3376bc034cad36","affectsGlobalScope":true,"impliedFormat":1},{"version":"b93ec88115de9a9dc1b602291b85baf825c85666bf25985cc5f698073892b467","affectsGlobalScope":true,"impliedFormat":1},{"version":"f5c06dcc3fe849fcb297c247865a161f995cc29de7aa823afdd75aaaddc1419b","affectsGlobalScope":true,"impliedFormat":1},{"version":"b77e16112127a4b169ef0b8c3a4d730edf459c5f25fe52d5e436a6919206c4d7","affectsGlobalScope":true,"impliedFormat":1},{"version":"fbffd9337146eff822c7c00acbb78b01ea7ea23987f6c961eba689349e744f8c","affectsGlobalScope":true,"impliedFormat":1},{"version":"a995c0e49b721312f74fdfb89e4ba29bd9824c770bbb4021d74d2bf560e4c6bd","affectsGlobalScope":true,"impliedFormat":1},{"version":"c7b3542146734342e440a84b213384bfa188835537ddbda50d30766f0593aff9","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce6180fa19b1cccd07ee7f7dbb9a367ac19c0ed160573e4686425060b6df7f57","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f02e2476bccb9dbe21280d6090f0df17d2f66b74711489415a8aa4df73c9675","affectsGlobalScope":true,"impliedFormat":1},{"version":"45e3ab34c1c013c8ab2dc1ba4c80c780744b13b5676800ae2e3be27ae862c40c","affectsGlobalScope":true,"impliedFormat":1},{"version":"805c86f6cca8d7702a62a844856dbaa2a3fd2abef0536e65d48732441dde5b5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e42e397f1a5a77994f0185fd1466520691456c772d06bf843e5084ceb879a0ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"f4c2b41f90c95b1c532ecc874bd3c111865793b23aebcc1c3cbbabcd5d76ffb0","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab26191cfad5b66afa11b8bf935ef1cd88fabfcb28d30b2dfa6fad877d050332","affectsGlobalScope":true,"impliedFormat":1},{"version":"2088bc26531e38fb05eedac2951480db5309f6be3fa4a08d2221abb0f5b4200d","affectsGlobalScope":true,"impliedFormat":1},{"version":"cb9d366c425fea79716a8fb3af0d78e6b22ebbab3bd64d25063b42dc9f531c1e","affectsGlobalScope":true,"impliedFormat":1},{"version":"500934a8089c26d57ebdb688fc9757389bb6207a3c8f0674d68efa900d2abb34","affectsGlobalScope":true,"impliedFormat":1},{"version":"689da16f46e647cef0d64b0def88910e818a5877ca5379ede156ca3afb780ac3","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc21cc8b6fee4f4c2440d08035b7ea3c06b3511314c8bab6bef7a92de58a2593","affectsGlobalScope":true,"impliedFormat":1},{"version":"7ca53d13d2957003abb47922a71866ba7cb2068f8d154877c596d63c359fed25","affectsGlobalScope":true,"impliedFormat":1},{"version":"54725f8c4df3d900cb4dac84b64689ce29548da0b4e9b7c2de61d41c79293611","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5594bc3076ac29e6c1ebda77939bc4c8833de72f654b6e376862c0473199323","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f3eb332c2d73e729f3364fcc0c2b375e72a121e8157d25a82d67a138c83a95c","affectsGlobalScope":true,"impliedFormat":1},{"version":"6f4427f9642ce8d500970e4e69d1397f64072ab73b97e476b4002a646ac743b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"48915f327cd1dea4d7bd358d9dc7732f58f9e1626a29cc0c05c8c692419d9bb7","affectsGlobalScope":true,"impliedFormat":1},{"version":"b7bf9377723203b5a6a4b920164df22d56a43f593269ba6ae1fdc97774b68855","affectsGlobalScope":true,"impliedFormat":1},{"version":"db9709688f82c9e5f65a119c64d835f906efe5f559d08b11642d56eb85b79357","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b25b8c874acd1a4cf8444c3617e037d444d19080ac9f634b405583fd10ce1f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"37be57d7c90cf1f8112ee2636a068d8fd181289f82b744160ec56a7dc158a9f5","affectsGlobalScope":true,"impliedFormat":1},{"version":"a917a49ac94cd26b754ab84e113369a75d1a47a710661d7cd25e961cc797065f","affectsGlobalScope":true,"impliedFormat":1},{"version":"6d3261badeb7843d157ef3e6f5d1427d0eeb0af0cf9df84a62cfd29fd47ac86e","affectsGlobalScope":true,"impliedFormat":1},{"version":"195daca651dde22f2167ac0d0a05e215308119a3100f5e6268e8317d05a92526","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b11e4285cd2bb164a4dc09248bdec69e9842517db4ca47c1ba913011e44ff2f","affectsGlobalScope":true,"impliedFormat":1},{"version":"0508571a52475e245b02bc50fa1394065a0a3d05277fbf5120c3784b85651799","affectsGlobalScope":true,"impliedFormat":1},{"version":"8f9af488f510c3015af3cc8c267a9e9d96c4dd38a1fdff0e11dc5a544711415b","affectsGlobalScope":true,"impliedFormat":1},{"version":"fc611fea8d30ea72c6bbfb599c9b4d393ce22e2f5bfef2172534781e7d138104","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ce14b81c5cc821994aa8ec1d42b220dd41b27fcc06373bce3958af7421b77d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3a048b3e9302ef9a34ef4ebb9aecfb28b66abb3bce577206a79fee559c230da","affectsGlobalScope":true,"impliedFormat":1},{"version":"d2e5cfb2397ec8cacfd30de0e6f7992eb7db7b02cc83b7c43ef58bcd5aa88bc3","affectsGlobalScope":true,"impliedFormat":1},"89fe170d9a59f81cd9a9d95de3278f108ff91491810b2529cc0ffb502a57b6c0","0b4928041c807c01b33b1fa028236df635c52f7acff5a40f2c2d0d677b53428b","5ad2e5b8b17893d0eb1f11a1b6e8c03b17344be03a6a72a624cd38ab05fe4d5c","6a1e553079e654a1771463e9eeb98ea4f7bb4b6417a5237d4fdf9b546d49647f","7f11be86b9ac5c2cd5127cd9d40ccc7694c58868a3157692a153d452fc171525","6e3488ee1183ea915eb43f08aebc5f75e30be25aef1f678d1965324bdd7506e1","bc2f20caa6ccca429df0bf6a6f21506c4b00f9b171fdc3a4b6ada1775252db31","a318d8734523d9e750681e7b8e685ef817d4049c5612451f4e849da8b2b572a9","8b52dd8be86f44f871db89a6c1f77f7585688d53141ff55b6c5fac3eb67b1241","beae2d03867dde9fdf8da461c7e7e84da71612842422d4b482ab1c2a15fe6b12","2aa457dd6699d3015c3c98457ac72a2dd47349f75a1edddbace0ee86dd7177c9","51342c51a9090c0bc8bae60c5ec1a0f46d6d44db84392f12a8cd46e6d8a9f617","ae777307a0baeb9b5d7ba18e6a029a54eb0b612b1491591dcedb020cc8d36f97","d7ba738e316b7baed10ca49cc156b57b8c973b747bec6612e62a925e9f7f33a4","1d5292578fcf0329a43ef19fe2481d7d1cde75e75610019a7897c70dcfff0b31","459b3765e622008ed590474ae6b61ab55107a7b9529a28d05087a6fef51d7248","d4acac107ca8b949e32947d9b5afa27721584f4ffd7ad7a4008fae892a4ec913","b52569fa5c5793a182d033b2fc7443e27205625dc67782a03d2e2e972a2918f3","097ebdc98e0de1205b1104df5038026ca5830b80faee3707b78e7c28ce6dde55","1ae177260d032e05e62f0432227af19a857b327fa604a9b34baa535f44db130e","e1f11ad703121f97a74001059d054aba25c9c4662af44da05ead0a247fe18742","d9c64d02dfe3a9c74da35fdbcc645cf4e8d4ca0f4162ec312de51474103ac3a7","a16a95d9dce4750a2611fc21abd4fc2c68653f267b059e2e4cb41a4dcefa56ce",{"version":"846a8ee09d95cd6f27e70e3ae398dcd393964d684b1f507e072cc6b8b74a9126","signature":"8d6101c60d99ac57af23b947db35bedaa5580f2e7ae126c5b39841aa423cd242"},{"version":"9e5623de4f0d8b46a807d9696780f9313055801429b523e32cb19827c5ebc16b","signature":"f14ce5399bc86b5fcb006ca2b7d8ec1f1156d0b2adda7f1f4f79ac8c782a3f52"},{"version":"3a582c6e8906f5b094ccf0de6cc6f4f8a54b05a34f52517aba5c9c7f704f6b28","impliedFormat":99},{"version":"0528f6d21f7a02d4092895090d2dd86104bd5a3e79eced96d5a1a7dd90943d17","impliedFormat":99},{"version":"b5ce343886d23392be9c8280e9f24a87f1d7d3667f6672c2fe4aa61fa4ece7d4","impliedFormat":99},{"version":"72ce5b734c05da85c85a6f6dc05823b051d6aa41acaedeeb1d17c72f3b4efa72","impliedFormat":99},{"version":"b0857bb28fd5236ace84280f79a25093f919fd0eff13e47cc26ea03de60a7294","impliedFormat":99},{"version":"5e43e0824f10cd8c48e7a8c5c673638488925a12c31f0f9e0957965c290eb14c","impliedFormat":99},{"version":"ef13c73d6157a32933c612d476c1524dd674cf5b9a88571d7d6a0d147544d529","impliedFormat":99},{"version":"49ab4f1d153a252779958fc87b700743d32b5ffa42addd70ae23ad3f429daa5c","impliedFormat":99},{"version":"53cf4076f42b29b8d411259d168d51b3a0274c42c8814e5b44dfa8803a35d4fc","impliedFormat":99},{"version":"a39461ee1f27cf3e6cfd63d21045713d26d521da55ea4d8efccb705f689e6dbb","impliedFormat":99},{"version":"61bb64660ee150f3ab618340e15cca0a81664801bede7c966ca0eca3a952fe63","impliedFormat":99},{"version":"3b89216a7e38a454985ad17bb2ff85792837dc812f2a89fa5f60ad0a2e216fa7","impliedFormat":99},{"version":"16fe60bb544cfedfd2b5bb2f7d0b3957be7978706d57d9f06edc9c0c8dbdba23","impliedFormat":99},{"version":"82179358c2d9d7347f1602dc9300039a2250e483137b38ebf31d4d2e5519c181","impliedFormat":99},{"version":"4e003c868b0d8f8ad200b96cbc653e18e513fa23e1c19c4fe3cc25d4394efc47","impliedFormat":99},{"version":"605450898939e8abce51e8085a41b60640278337a969c33cd6b169e7c4f9c3f2","impliedFormat":99},{"version":"42a12f2faa483c9b48195ed794d22698162274e755f6e07219c2351c4f08d732","impliedFormat":99},{"version":"ec0c42bb0f465e4993f2bc68a6ce9df9a2dcbc7b83e21748f82f1b69561938e3","impliedFormat":99},{"version":"f50ff37a9cbbe74475f426474d9827083c7c2c138a954d28f1690df338f69291","impliedFormat":99},{"version":"61fd6c17235d530c40f543dd7c40afab091d91c1ef890baeed30db6d82b04b28","impliedFormat":99},{"version":"bcbd3becd08b4515225880abea0dbfbbf0d1181ce3af8f18f72f61edbe4febfb","impliedFormat":99},{"version":"091767bc841f937654ed597d49e023ed59850355e746ae1a6f20ab31076ee1fb","impliedFormat":99},{"version":"19c6d6135af59693698d384050b45a8a049493500add442f58e4bd7c8a255ab6","impliedFormat":99},{"version":"6a0dba12d55314638a8c51108b20fe2f68f1364a619d098918bda91c22dec154","impliedFormat":99},{"version":"c76c02846ba7d40b9b3488f0e8d75d02cbdee2f0bc5fcd55dd3bd2e1457646ea","impliedFormat":99},{"version":"4ead13a482c539b77394b2a97e3b877b809eac596390371cea490286f53b996a","impliedFormat":99},{"version":"06db2f8ba1d1dfacf04529cb731081ab23f133f29c7608ebdfbcab356996827c","impliedFormat":99},{"version":"bdd14f07b4eca0b4b5203b85b8dbc4d084c749fa590bee5ea613e1641dcd3b29","impliedFormat":99},{"version":"427fe2004642504828c1476d0af4270e6ad4db6de78c0b5da3e4c5ca95052a99","impliedFormat":1},{"version":"2eeffcee5c1661ddca53353929558037b8cf305ffb86a803512982f99bcab50d","impliedFormat":99},{"version":"9afb4cb864d297e4092a79ee2871b5d3143ea14153f62ef0bb04ede25f432030","affectsGlobalScope":true,"impliedFormat":99},{"version":"5c935b7fc4ddc1410ea1cd7cd4e35ed106a6e4920dd27a9480a40fd224359dc3","affectsGlobalScope":true,"impliedFormat":99},{"version":"2b39c6cf59088713babbfc3e20ee85f1375d40e66953156fa658346b8346f24f","impliedFormat":99},{"version":"69bf2422313487956e4dacf049f30cb91b34968912058d244cb19e4baa24da97","impliedFormat":99},{"version":"6987dfb4b0c4e02112cc4e548e7a77b3d9ddfeffa8c8a2db13ceac361a4567d9","impliedFormat":99},{"version":"4ffba3c5848b4fe62ee59b754fd5f256ad9656a0db6d37b9a2a8cb40dfc7ac21","impliedFormat":99},{"version":"c76c02846ba7d40b9b3488f0e8d75d02cbdee2f0bc5fcd55dd3bd2e1457646ea","impliedFormat":99},{"version":"5e2ba3d18d78aebbde1f34bde356e41e9c76eeaeaeee56a37036596a9eff4211","impliedFormat":99},{"version":"8280ae8ccc0493b32d1742d585357ab9f0a508ea050af25a5a20d64010d0a5cf","impliedFormat":99},{"version":"7adfd9f9056ecd4ae6c65fde2a98654960c662714c73f048478959d04c09e144","impliedFormat":99},{"version":"32b35cf0dc3a1b1a7118b61c34ce2ad1a29695851679f9ec34e0776f2ece2a69","impliedFormat":99},{"version":"b413fbc6658fe2774f8bf9a15cf4c53e586fc38a2d5256b3b9647da242c14389","impliedFormat":99},{"version":"59e5e964b84fdb2378e9455e4e59405030e4ed2b4c6f891ce395f17796af3cbb","impliedFormat":99},{"version":"c30a41267fc04c6518b17e55dcb2b810f267af4314b0b6d7df1c33a76ce1b330","impliedFormat":1},{"version":"72422d0bac4076912385d0c10911b82e4694fc106e2d70added091f88f0824ba","impliedFormat":1},{"version":"da251b82c25bee1d93f9fd80c5a61d945da4f708ca21285541d7aff83ecb8200","impliedFormat":1},{"version":"64db14db2bf37ac089766fdb3c7e1160fabc10e9929bc2deeede7237e4419fc8","impliedFormat":1},{"version":"98b94085c9f78eba36d3d2314affe973e8994f99864b8708122750788825c771","impliedFormat":1},{"version":"90ba95a763101bb61b8a799731a2ed60b5016b8135c1a2d5186862d4b534d4a1","impliedFormat":99},{"version":"2b541eb8235699616906f09a3c11d8158f1c0a6da5d459a8b9bfa8c83130bb83","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"e675588727dc18f22373aedbb812a257a20357b73926c737d5045e26d787c905","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"66d5c0f1647f95774cd6ef91532fd795a0f23862388842909ac0e6653ed2bf92","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"b976dcfae30de7a78f8953952f04c61c0cc6e06929eea66bec63940fb937ac27","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"d80c801636f9c1eed652232270d0068b5eb69f80d8dfe66ed32034d7a6b3de70","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"de3709e6fbb0362e80780b908a9f965980e8bea8e54e1e2e3bef570eeb329bc5","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"7e30947b6b3c5f59b4b62c114a386f59181dab0eb6f7c8ca0104cf17dab7f77a","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"2c242faf9f1aee5b366ba8f3e87bc200085defe40e5b5c921863719650d05ce5","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"f390e8a17a277a8eeded348ccb2b9f73ea7befab53d932d82f41b5c7cf82d14f","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"098f1b58886d54f7cfaa133966d9e455f7e276b0a10c0e8a5bf97d732ebc74e7","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"91a601f8420efb0bd4b67b39340661fcb4d33f4553d92b009cb5810078152269","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"899cef1592ffe1b525da46bf1114052ec8e7d9da1becbee9c0e751a638b23d7e","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"b5de7f8e83ac214ae6c6dc75951d59df3e9d3adf2d9a0d202313617b8be2b085","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"d12ba3e8c6e3965317d8949dafc4a61baf596525a74404533faeb51f646e30f0","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"7215f1c4a517ec6b16b476b452c8c4887c52d0b6fb00855ccd2ca279d39139c3","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"a21843d8b7c981a75a7b6ffa8c1f37aa9274d1271a6cae94dcd4ba2fc8fee9e7","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"00348783237f22fd00734efe7ab508cefc3b3335625defcdd894180366fa6135","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"85872bc7efe5b6e64a43bead69a401042f489c42003526bac6548e1e238cc4bd","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"bf2e955565d1a50f41be31707ff57dd2216499f7af853f347fc0c24180d1304c","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"4e5aeac3de683ce776e48c8521f6e3225f57a65f2c9cb669ac7febac2da0f143","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"7dcab7460da07c1a8196ee865d007b808dec280850f8c6fe05d8380c5b7c53ac","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"}],"root":[84,85,[135,155]],"options":{"composite":true,"declaration":true,"declarationMap":true,"emitDeclarationOnly":true,"exactOptionalPropertyTypes":true,"module":99,"noFallthroughCasesInSwitch":true,"noImplicitOverride":true,"noImplicitReturns":true,"noUncheckedIndexedAccess":true,"noUnusedLocals":true,"noUnusedParameters":true,"outDir":"./","rootDir":"../src","skipLibCheck":true,"strict":true,"target":9,"tsBuildInfoFile":"./.tsbuildinfo","useDefineForClassFields":true,"verbatimModuleSyntax":true},"referencedMap":[[116,1],[117,2],[124,3],[125,4],[95,5],[94,6],[118,5],[102,7],[104,8],[103,9],[111,10],[93,11],[87,12],[89,13],[91,14],[92,12],[131,15],[133,16],[132,17],[130,18],[98,19],[101,20],[99,19],[100,21],[120,22],[109,23],[105,24],[106,7],[127,25],[121,26],[107,27],[126,28],[108,29],[134,30],[128,31],[135,32],[136,32],[137,33],[138,32],[139,32],[140,32],[141,32],[142,32],[143,32],[144,32],[145,32],[146,34],[147,34],[148,34],[149,34],[150,32],[151,32],[152,34],[153,33],[154,32],[155,32],[84,35],[85,36],[64,37],[69,38],[65,39],[75,40],[81,41],[70,41],[82,42],[83,43],[67,44],[66,45],[73,46],[72,47],[76,48],[78,49],[80,50],[79,51]],"latestChangedDtsFile":"./__tests__/requestAdapter.test-d.d.ts","version":"6.0.3"}