@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/README.md +71 -4
- package/dist/__tests__/r32float-capability.unit.test.d.ts +2 -0
- package/dist/__tests__/r32float-capability.unit.test.d.ts.map +1 -0
- package/dist/capability/texture-format.d.ts +38 -0
- package/dist/capability/texture-format.d.ts.map +1 -0
- package/dist/errors.d.ts +13 -18
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.mjs.map +1 -1
- package/dist/index.d.ts +36 -28
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +76 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
- package/src/__tests__/command-encoder-spec-alignment.test-d.ts +9 -12
- package/src/__tests__/errors-instancing.unit.test.ts +2 -0
- package/src/__tests__/errors.test-d.ts +2 -0
- package/src/__tests__/r32float-capability.unit.test.ts +105 -0
- package/src/capability/texture-format.ts +137 -0
- package/src/errors.ts +16 -18
- package/src/index.ts +59 -28
- package/dist/.tsbuildinfo +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@forgeax/engine-rhi",
|
|
3
|
-
"version": "0.1.
|
|
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.
|
|
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)
|
|
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
|
|
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
|
-
*
|
|
230
|
-
*
|
|
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'
|
|
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
|
-
*
|
|
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
|
|
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"}
|