@carbonenginejs/runtime-resource 0.8.0 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
- package/NOTICE +29 -29
- package/README.md +67 -548
- package/dist/CjsMotherLode.js +1271 -1271
- package/dist/CjsResMan.js +3005 -3005
- package/dist/CjsResManQueue.js +214 -214
- package/dist/CjsResource.js +566 -566
- package/dist/CjsResourceSource.js +59 -59
- package/dist/_virtual/_rollupPluginBabelHelpers.js +153 -153
- package/dist/format/CjsBlueReader.js +269 -269
- package/dist/format/CjsFormat.js +192 -192
- package/dist/format/CjsReader.js +18 -18
- package/dist/format/CjsResourceProbe.js +277 -277
- package/dist/format/payloadContract.js +173 -173
- package/dist/formats/black/CjsBlackFormat.js +278 -278
- package/dist/formats/black/core/CjsBlackBinaryReader.js +153 -153
- package/dist/formats/black/core/CjsBlackPropertyReaders.js +382 -382
- package/dist/formats/black/core/CjsBlackReader.js +639 -639
- package/dist/formats/black/core/CjsBlackSchemaRegistry.js +433 -433
- package/dist/formats/black/core/black-schema-v1-2026-07-11.json.js +4 -4
- package/dist/formats/black/core/blackConstants.js +7 -7
- package/dist/formats/black/core/blackDefinitions.js +10 -10
- package/dist/formats/black/core/blackEnums.js +6 -6
- package/dist/formats/black/core/blackSchema.js +3 -3
- package/dist/formats/black/core/blackVersion.js +22 -22
- package/dist/formats/black/core/helpers.js +182 -182
- package/dist/formats/black/core/schema.js +4 -4
- package/dist/formats/black/index.js +2 -2
- package/dist/formats/bnk/CjsBnkFormat.js +125 -125
- package/dist/formats/bnk/core/graph.js +140 -140
- package/dist/formats/bnk/core/helpers.js +409 -409
- package/dist/formats/bnk/core/musicNodes.js +489 -489
- package/dist/formats/bnk/core/soundbanksInfo.js +246 -246
- package/dist/formats/bnk/index.js +2 -2
- package/dist/formats/cmf/CjsCmfFormat.js +497 -497
- package/dist/formats/cmf/core/binary.js +118 -118
- package/dist/formats/cmf/core/buffers.js +233 -233
- package/dist/formats/cmf/core/constants.js +47 -47
- package/dist/formats/cmf/core/gr2Anim.js +453 -453
- package/dist/formats/cmf/core/helpers.js +287 -287
- package/dist/formats/cmf/core/pack.js +276 -276
- package/dist/formats/cmf/core/schema.js +364 -364
- package/dist/formats/cmf/core/shared.js +268 -268
- package/dist/formats/cmf/core/writer.js +517 -517
- package/dist/formats/cmf/index.js +2 -2
- package/dist/formats/dds/CjsDdsFormat.js +193 -193
- package/dist/formats/dds/core/bc6h.js +288 -288
- package/dist/formats/dds/core/bc7.js +251 -251
- package/dist/formats/dds/core/helpers.js +815 -815
- package/dist/formats/dds/index.js +2 -2
- package/dist/formats/fbx/CjsFbxFormat.js +266 -266
- package/dist/formats/fbx/core/helpers.js +3901 -3901
- package/dist/formats/fbx/index.js +2 -2
- package/dist/formats/flac/CjsFlacFormat.js +87 -87
- package/dist/formats/flac/core/helpers.js +295 -295
- package/dist/formats/flac/index.js +2 -2
- package/dist/formats/gif/CjsGifFormat.js +87 -87
- package/dist/formats/gif/core/helpers.js +360 -360
- package/dist/formats/gif/index.js +2 -2
- package/dist/formats/gltf/CjsGltfFormat.js +290 -290
- package/dist/formats/gltf/core/helpers.js +292 -292
- package/dist/formats/gltf/core/json.js +79 -79
- package/dist/formats/gltf/core/parser.js +666 -666
- package/dist/formats/gltf/core/targets.js +163 -163
- package/dist/formats/gltf/index.js +2 -2
- package/dist/formats/gr2/CjsGr2Format.js +46 -0
- package/dist/formats/gr2/CjsGr2Format.js.map +1 -0
- package/dist/formats/gr2/core/CjsFormatGr2.js +273 -0
- package/dist/formats/gr2/core/CjsFormatGr2.js.map +1 -0
- package/dist/formats/gr2/core/bitknit2.js +280 -0
- package/dist/formats/gr2/core/bitknit2.js.map +1 -0
- package/dist/formats/gr2/core/curves.js +1047 -0
- package/dist/formats/gr2/core/curves.js.map +1 -0
- package/dist/formats/gr2/core/gsf.js +72 -0
- package/dist/formats/gr2/core/gsf.js.map +1 -0
- package/dist/formats/gr2/core/helpers.js +332 -0
- package/dist/formats/gr2/core/helpers.js.map +1 -0
- package/dist/formats/gr2/core/json.js +622 -0
- package/dist/formats/gr2/core/json.js.map +1 -0
- package/dist/formats/gr2/core/oodle1.js +388 -0
- package/dist/formats/gr2/core/oodle1.js.map +1 -0
- package/dist/formats/gr2/core/reader.js +617 -0
- package/dist/formats/gr2/core/reader.js.map +1 -0
- package/dist/formats/gr2/core/tangents.js +48 -0
- package/dist/formats/gr2/core/tangents.js.map +1 -0
- package/dist/formats/gr2/core/targets.js +351 -0
- package/dist/formats/gr2/core/targets.js.map +1 -0
- package/dist/formats/gr2/index.js +3 -0
- package/dist/formats/gr2/index.js.map +1 -0
- package/dist/formats/index.js +30 -23
- package/dist/formats/index.js.map +1 -1
- package/dist/formats/jpeg/CjsJpegFormat.js +206 -206
- package/dist/formats/jpeg/core/helpers.js +350 -350
- package/dist/formats/jpeg/core/jpeg.js +377 -377
- package/dist/formats/jpeg/index.js +2 -2
- package/dist/formats/mp3/CjsMp3Format.js +192 -192
- package/dist/formats/mp3/core/helpers.js +338 -338
- package/dist/formats/mp3/index.js +2 -2
- package/dist/formats/mp4/CjsMp4Format.js +191 -191
- package/dist/formats/mp4/core/helpers.js +449 -449
- package/dist/formats/mp4/index.js +2 -2
- package/dist/formats/obj/CjsObjFormat.js +253 -253
- package/dist/formats/obj/core/helpers.js +573 -573
- package/dist/formats/obj/core/json.js +64 -64
- package/dist/formats/obj/core/parser.js +321 -321
- package/dist/formats/obj/index.js +2 -2
- package/dist/formats/ogg/CjsOggFormat.js +88 -88
- package/dist/formats/ogg/core/helpers.js +387 -387
- package/dist/formats/ogg/core/imdct.js +178 -178
- package/dist/formats/ogg/core/vorbis.js +999 -999
- package/dist/formats/ogg/index.js +2 -2
- package/dist/formats/png/CjsPngFormat.js +195 -195
- package/dist/formats/png/core/helpers.js +583 -583
- package/dist/formats/png/index.js +2 -2
- package/dist/formats/red/CjsRedFormat.js +261 -261
- package/dist/formats/red/core/CjsRedReader.js +194 -194
- package/dist/formats/red/core/blackDefinitions.js +3 -3
- package/dist/formats/red/core/helpers.js +139 -139
- package/dist/formats/red/core/redGraph.js +68 -68
- package/dist/formats/red/core/schema.js +4 -4
- package/dist/formats/red/index.js +2 -2
- package/dist/formats/stl/CjsStlFormat.js +365 -365
- package/dist/formats/stl/core/helpers.js +261 -261
- package/dist/formats/stl/core/json.js +51 -51
- package/dist/formats/stl/core/stl.js +629 -629
- package/dist/formats/stl/core/targets.js +163 -163
- package/dist/formats/stl/index.js +2 -2
- package/dist/formats/tga/CjsTgaFormat.js +192 -192
- package/dist/formats/tga/core/helpers.js +446 -446
- package/dist/formats/tga/index.js +2 -2
- package/dist/formats/wav/CjsWavFormat.js +192 -192
- package/dist/formats/wav/core/helpers.js +328 -328
- package/dist/formats/wav/index.js +2 -2
- package/dist/formats/webm/CjsWebmFormat.js +191 -191
- package/dist/formats/webm/core/helpers.js +537 -537
- package/dist/formats/webm/index.js +2 -2
- package/dist/formats/webp/CjsWebpFormat.js +86 -86
- package/dist/formats/webp/core/helpers.js +214 -214
- package/dist/formats/webp/index.js +2 -2
- package/dist/formats/wem/CjsWemFormat.js +241 -241
- package/dist/formats/wem/core/bitStream.js +259 -259
- package/dist/formats/wem/core/codebookLibrary.js +164 -164
- package/dist/formats/wem/core/helpers.js +417 -417
- package/dist/formats/wem/core/packedCodebooksAotuv603.js +30 -30
- package/dist/formats/wem/core/ptadpcm.js +77 -77
- package/dist/formats/wem/core/resolve.js +121 -121
- package/dist/formats/wem/core/wemToOgg.js +485 -485
- package/dist/formats/wem/index.js +2 -2
- package/dist/formats/yaml/CjsYamlFormat.js +83 -83
- package/dist/formats/yaml/core/CjsYamlReader.js +305 -305
- package/dist/formats/yaml/core/helpers.js +160 -160
- package/dist/formats/yaml/index.js +2 -2
- package/dist/index.js +49 -48
- package/dist/index.js.map +1 -1
- package/dist/resourcePath.js +18 -18
- package/dist/resourceStates.js +9 -9
- package/dist/resources/AudioGeometryResData.js +47 -47
- package/dist/resources/GStateBindingCallbackData.js +31 -31
- package/dist/resources/MeshDecalData.js +37 -37
- package/dist/resources/MeshDecalLodData.js +34 -34
- package/dist/resources/Tr2EffectRes.js +71 -71
- package/dist/resources/Tr2GrannyIntersectionResult.js +60 -60
- package/dist/resources/Tr2GrannyStateRes.js +44 -44
- package/dist/resources/Tr2ImageRes.js +114 -114
- package/dist/resources/Tr2LightProfileRes.js +40 -40
- package/dist/resources/Tr2MaterialArea.js +34 -34
- package/dist/resources/Tr2MaterialMesh.js +31 -31
- package/dist/resources/Tr2MaterialRes.js +34 -34
- package/dist/resources/Tr2ShaderPermutation.js +43 -43
- package/dist/resources/Tr2TextureLodManager.js +80 -80
- package/dist/resources/Tr2TextureLodUpdateRequest.js +37 -37
- package/dist/resources/Tr2TexturePackChannel.js +37 -37
- package/dist/resources/Tr2TexturePipeline.js +52 -52
- package/dist/resources/Tr2TexturePipelineParams.js +34 -34
- package/dist/resources/Tr2TexturePipelineStepCompress.js +40 -40
- package/dist/resources/Tr2TexturePipelineStepGenerateMips.js +22 -0
- package/dist/resources/Tr2TexturePipelineStepGenerateMips.js.map +1 -0
- package/dist/resources/Tr2TexturePipelineStepLimitSize.js +34 -34
- package/dist/resources/Tr2TexturePipelineStepLoad.js +31 -31
- package/dist/resources/Tr2TexturePipelineStepPack.js +43 -43
- package/dist/resources/TriGeometryRes.js +239 -239
- package/dist/resources/TriGeometryResAreaData.js +59 -59
- package/dist/resources/TriGeometryResJointData.js +38 -38
- package/dist/resources/TriGeometryResLodData.js +88 -88
- package/dist/resources/TriGeometryResMeshData.js +63 -63
- package/dist/resources/TriGeometryResSkeletonData.js +34 -34
- package/dist/resources/TriGrannyRes.js +43 -43
- package/dist/resources/TriJointBinding.js +38 -38
- package/dist/resources/TriMorphTargetGeometryConstants.js +46 -46
- package/dist/resources/TriRtGeometryConstants.js +88 -88
- package/dist/resources/TriTextureRes.js +304 -304
- package/dist/resources/enums.js +18 -18
- package/dist/resources/resourceBoundary.js +47 -47
- package/dist/resources/texturePipelineBehavior.js +308 -308
- package/dist/texture/CjsTextureArrayRes.js +406 -406
- package/dist/texture/CjsTextureParameterProxy.js +133 -133
- package/docs/README.md +69 -0
- package/docs/architecture.md +86 -0
- package/docs/concepts/resource-lifecycle.md +217 -0
- package/docs/formats/README.md +104 -0
- package/{FORMAT-PROVENANCE.md → docs/formats/provenance.md} +173 -155
- package/docs/formats/stl.md +37 -0
- package/docs/formats/wwise.md +44 -0
- package/docs/reference/events.md +92 -0
- package/docs/reference/motherlode-cache.md +244 -0
- package/docs/reference/queues.md +102 -0
- package/docs/reference/reload.md +107 -0
- package/docs/reference/texture-arrays.md +113 -0
- package/docs/reference/texture-pipeline.md +53 -0
- package/docs/roadmap.md +104 -0
- package/format-notices/black/LICENSE +21 -21
- package/format-notices/black/NOTICE +47 -47
- package/format-notices/bnk/LICENSE +21 -21
- package/format-notices/bnk/NOTICE +20 -20
- package/format-notices/cmf/LICENSE +21 -21
- package/format-notices/cmf/NOTICE +36 -36
- package/format-notices/dds/LICENSE +21 -21
- package/format-notices/dds/NOTICE +14 -14
- package/format-notices/fbx/LICENSE +21 -21
- package/format-notices/fbx/NOTICE +14 -14
- package/format-notices/flac/LICENSE +21 -21
- package/format-notices/flac/NOTICE +14 -14
- package/format-notices/gif/LICENSE +21 -21
- package/format-notices/gif/NOTICE +14 -14
- package/format-notices/gltf/LICENSE +21 -21
- package/format-notices/gltf/NOTICE +27 -27
- package/format-notices/gr2/LICENSE +21 -0
- package/format-notices/gr2/NOTICE +60 -0
- package/format-notices/gr2/THIRD-PARTY-NOTICES.md +93 -0
- package/format-notices/jpeg/LICENSE +21 -21
- package/format-notices/jpeg/NOTICE +14 -14
- package/format-notices/mp3/LICENSE +21 -21
- package/format-notices/mp3/NOTICE +14 -14
- package/format-notices/mp4/LICENSE +21 -21
- package/format-notices/mp4/NOTICE +14 -14
- package/format-notices/obj/LICENSE +21 -21
- package/format-notices/obj/NOTICE +26 -26
- package/format-notices/ogg/LICENSE +21 -21
- package/format-notices/ogg/NOTICE +28 -28
- package/format-notices/png/LICENSE +21 -21
- package/format-notices/png/NOTICE +14 -14
- package/format-notices/red/LICENSE +21 -21
- package/format-notices/red/NOTICE +31 -31
- package/format-notices/stl/LICENSE +21 -21
- package/format-notices/stl/NOTICE +21 -21
- package/format-notices/tga/LICENSE +21 -21
- package/format-notices/tga/NOTICE +14 -14
- package/format-notices/wav/LICENSE +21 -21
- package/format-notices/wav/NOTICE +14 -14
- package/format-notices/webm/LICENSE +21 -21
- package/format-notices/webm/NOTICE +14 -14
- package/format-notices/webp/LICENSE +21 -21
- package/format-notices/webp/NOTICE +14 -14
- package/format-notices/wem/LICENSE +57 -57
- package/format-notices/wem/NOTICE +33 -33
- package/format-notices/yaml/LICENSE +21 -21
- package/format-notices/yaml/NOTICE +44 -44
- package/package.json +52 -51
- package/resource-lifecycle.md +0 -679
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,206 +1,206 @@
|
|
|
1
|
-
import { DEFAULT_VALUES, normalizeValues, readWithValues, inspectWithValues, isSupportedWithValues, toJsonValue, isJPEG, toBytes, isJPG, OUTPUT_JSON, OUTPUT_RAW, OUTPUT_RGBA, OUTPUT_IMAGE } from './core/helpers.js';
|
|
2
|
-
|
|
3
|
-
const FORMAT_NAME = "CjsJpegFormat";
|
|
4
|
-
class CjsJpegFormat {
|
|
5
|
-
#values = DEFAULT_VALUES;
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Create a reusable JPEG format profile.
|
|
9
|
-
*
|
|
10
|
-
* @param {object} [options] Default read/inspect options.
|
|
11
|
-
*/
|
|
12
|
-
constructor(options = {}) {
|
|
13
|
-
this.SetValues(options);
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Merge options into this profile.
|
|
18
|
-
*
|
|
19
|
-
* @param {object} [options] Values to merge.
|
|
20
|
-
* @returns {CjsJpegFormat} This format profile.
|
|
21
|
-
*/
|
|
22
|
-
SetValues(options = {}) {
|
|
23
|
-
this.#values = normalizeValues(this.#values, {
|
|
24
|
-
inputType: "jpeg",
|
|
25
|
-
...options
|
|
26
|
-
}, FORMAT_NAME);
|
|
27
|
-
return this;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* Get normalized profile values with optional per-call overrides.
|
|
32
|
-
*
|
|
33
|
-
* @param {object} [options] Per-call values.
|
|
34
|
-
* @returns {object} Normalized read values.
|
|
35
|
-
*/
|
|
36
|
-
GetValues(options = {}) {
|
|
37
|
-
return normalizeValues(this.#values, {
|
|
38
|
-
inputType: "jpeg",
|
|
39
|
-
...options
|
|
40
|
-
}, FORMAT_NAME);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* Read JPEG bytes with this profile.
|
|
45
|
-
*
|
|
46
|
-
* @param {Uint8Array|ArrayBuffer|DataView} input JPEG bytes.
|
|
47
|
-
* @param {object} [options] Per-call values.
|
|
48
|
-
* @returns {object} GPU-free raw/debug payload for the selected emit target.
|
|
49
|
-
*/
|
|
50
|
-
Read(input, options = {}) {
|
|
51
|
-
return readWithValues(input, this.GetValues(options), "jpeg");
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* Read JPEG bytes asynchronously with this profile.
|
|
56
|
-
*
|
|
57
|
-
* @param {Uint8Array|ArrayBuffer|DataView} input JPEG bytes.
|
|
58
|
-
* @param {object} [options] Per-call values.
|
|
59
|
-
* @returns {Promise<object>} GPU-free raw/debug payload for the selected emit target.
|
|
60
|
-
*/
|
|
61
|
-
async ReadAsync(input, options = {}) {
|
|
62
|
-
return this.Read(input, options);
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* Inspect JPEG bytes without decoding image data.
|
|
67
|
-
*
|
|
68
|
-
* @param {Uint8Array|ArrayBuffer|DataView} input JPEG bytes.
|
|
69
|
-
* @param {object} [options] Per-call values.
|
|
70
|
-
* @returns {object} JPEG marker/header metadata.
|
|
71
|
-
*/
|
|
72
|
-
Inspect(input, options = {}) {
|
|
73
|
-
return inspectWithValues(input, this.GetValues(options), "jpeg");
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
/**
|
|
77
|
-
* Report whether JPEG input and requested output variants are supported.
|
|
78
|
-
*
|
|
79
|
-
* @param {Uint8Array|ArrayBuffer|DataView} input JPEG bytes.
|
|
80
|
-
* @param {object} [options] Per-call values.
|
|
81
|
-
* @returns {object} Support/probe report.
|
|
82
|
-
*/
|
|
83
|
-
IsSupported(input, options = {}) {
|
|
84
|
-
return isSupportedWithValues(input, this.GetValues(options), "jpeg");
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
/**
|
|
88
|
-
* Convert format output into JSON-compatible debug data.
|
|
89
|
-
*
|
|
90
|
-
* @param {any} value Format output.
|
|
91
|
-
* @returns {any} JSON-compatible value.
|
|
92
|
-
*/
|
|
93
|
-
ToJSON(value) {
|
|
94
|
-
return toJsonValue(value);
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
/**
|
|
98
|
-
* One-shot JPEG read.
|
|
99
|
-
*
|
|
100
|
-
* @param {Uint8Array|ArrayBuffer|DataView} input JPEG bytes.
|
|
101
|
-
* @param {object} [options] Read options.
|
|
102
|
-
* @returns {object} GPU-free raw/debug payload for the selected emit target.
|
|
103
|
-
*/
|
|
104
|
-
static read(input, options = {}) {
|
|
105
|
-
return readWithValues(input, normalizeValues(DEFAULT_VALUES, {
|
|
106
|
-
inputType: "jpeg",
|
|
107
|
-
...options
|
|
108
|
-
}, FORMAT_NAME), "jpeg");
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
/**
|
|
112
|
-
* One-shot asynchronous JPEG read.
|
|
113
|
-
*
|
|
114
|
-
* @param {Uint8Array|ArrayBuffer|DataView} input JPEG bytes.
|
|
115
|
-
* @param {object} [options] Read options.
|
|
116
|
-
* @returns {Promise<object>} GPU-free raw/debug payload for the selected emit target.
|
|
117
|
-
*/
|
|
118
|
-
static async readAsync(input, options = {}) {
|
|
119
|
-
return CjsJpegFormat.read(input, options);
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
/**
|
|
123
|
-
* One-shot JPEG inspection.
|
|
124
|
-
*
|
|
125
|
-
* @param {Uint8Array|ArrayBuffer|DataView} input JPEG bytes.
|
|
126
|
-
* @param {object} [options] Inspect options.
|
|
127
|
-
* @returns {object} JPEG marker/header metadata.
|
|
128
|
-
*/
|
|
129
|
-
static inspect(input, options = {}) {
|
|
130
|
-
return inspectWithValues(input, normalizeValues(DEFAULT_VALUES, {
|
|
131
|
-
inputType: "jpeg",
|
|
132
|
-
...options
|
|
133
|
-
}, FORMAT_NAME), "jpeg");
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
/**
|
|
137
|
-
* One-shot JPEG support probe.
|
|
138
|
-
*
|
|
139
|
-
* @param {Uint8Array|ArrayBuffer|DataView} input JPEG bytes.
|
|
140
|
-
* @param {object} [options] Probe options.
|
|
141
|
-
* @returns {object} Support/probe report.
|
|
142
|
-
*/
|
|
143
|
-
static isSupported(input, options = {}) {
|
|
144
|
-
return isSupportedWithValues(input, normalizeValues(DEFAULT_VALUES, {
|
|
145
|
-
inputType: "jpeg",
|
|
146
|
-
...options
|
|
147
|
-
}, FORMAT_NAME), "jpeg");
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
/**
|
|
151
|
-
* Convert format output into JSON-compatible debug data.
|
|
152
|
-
*
|
|
153
|
-
* @param {any} value Format output.
|
|
154
|
-
* @returns {any} JSON-compatible value.
|
|
155
|
-
*/
|
|
156
|
-
static toJSON(value) {
|
|
157
|
-
return toJsonValue(value);
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
/**
|
|
161
|
-
* Test whether bytes look like a JPEG file.
|
|
162
|
-
*
|
|
163
|
-
* @param {Uint8Array|ArrayBuffer|DataView} input Candidate JPEG bytes.
|
|
164
|
-
* @returns {boolean} True when a JPEG SOI marker is present.
|
|
165
|
-
*/
|
|
166
|
-
static isJPEG(input) {
|
|
167
|
-
try {
|
|
168
|
-
return isJPEG(toBytes(input));
|
|
169
|
-
} catch {
|
|
170
|
-
return false;
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
/**
|
|
175
|
-
* Test whether bytes look like a JPG/JPEG file.
|
|
176
|
-
*
|
|
177
|
-
* @param {Uint8Array|ArrayBuffer|DataView} input Candidate JPG bytes.
|
|
178
|
-
* @returns {boolean} True when a JPEG SOI marker is present.
|
|
179
|
-
*/
|
|
180
|
-
static isJPG(input) {
|
|
181
|
-
try {
|
|
182
|
-
return isJPG(toBytes(input));
|
|
183
|
-
} catch {
|
|
184
|
-
return false;
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
/**
|
|
189
|
-
* Emit targets for this format (canonical frozen enum).
|
|
190
|
-
*/
|
|
191
|
-
static Output = Object.freeze({
|
|
192
|
-
IMAGE: OUTPUT_IMAGE,
|
|
193
|
-
RGBA: OUTPUT_RGBA,
|
|
194
|
-
RAW: OUTPUT_RAW,
|
|
195
|
-
JSON: OUTPUT_JSON
|
|
196
|
-
});
|
|
197
|
-
static OUTPUT_JPEG_JSON = "jpegJson";
|
|
198
|
-
static type = Object.freeze(["image"]);
|
|
199
|
-
static mediaTypes = Object.freeze(["image"]);
|
|
200
|
-
static inputTypes = Object.freeze(["jpg", "jpeg"]);
|
|
201
|
-
static outputTypes = Object.freeze([OUTPUT_IMAGE, OUTPUT_RGBA]);
|
|
202
|
-
static debugOutputTypes = Object.freeze(["jpegJson", OUTPUT_RAW]);
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
export { CjsJpegFormat };
|
|
206
|
-
//# sourceMappingURL=CjsJpegFormat.js.map
|
|
1
|
+
import { DEFAULT_VALUES, normalizeValues, readWithValues, inspectWithValues, isSupportedWithValues, toJsonValue, isJPEG, toBytes, isJPG, OUTPUT_JSON, OUTPUT_RAW, OUTPUT_RGBA, OUTPUT_IMAGE } from './core/helpers.js';
|
|
2
|
+
|
|
3
|
+
const FORMAT_NAME = "CjsJpegFormat";
|
|
4
|
+
class CjsJpegFormat {
|
|
5
|
+
#values = DEFAULT_VALUES;
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Create a reusable JPEG format profile.
|
|
9
|
+
*
|
|
10
|
+
* @param {object} [options] Default read/inspect options.
|
|
11
|
+
*/
|
|
12
|
+
constructor(options = {}) {
|
|
13
|
+
this.SetValues(options);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Merge options into this profile.
|
|
18
|
+
*
|
|
19
|
+
* @param {object} [options] Values to merge.
|
|
20
|
+
* @returns {CjsJpegFormat} This format profile.
|
|
21
|
+
*/
|
|
22
|
+
SetValues(options = {}) {
|
|
23
|
+
this.#values = normalizeValues(this.#values, {
|
|
24
|
+
inputType: "jpeg",
|
|
25
|
+
...options
|
|
26
|
+
}, FORMAT_NAME);
|
|
27
|
+
return this;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Get normalized profile values with optional per-call overrides.
|
|
32
|
+
*
|
|
33
|
+
* @param {object} [options] Per-call values.
|
|
34
|
+
* @returns {object} Normalized read values.
|
|
35
|
+
*/
|
|
36
|
+
GetValues(options = {}) {
|
|
37
|
+
return normalizeValues(this.#values, {
|
|
38
|
+
inputType: "jpeg",
|
|
39
|
+
...options
|
|
40
|
+
}, FORMAT_NAME);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Read JPEG bytes with this profile.
|
|
45
|
+
*
|
|
46
|
+
* @param {Uint8Array|ArrayBuffer|DataView} input JPEG bytes.
|
|
47
|
+
* @param {object} [options] Per-call values.
|
|
48
|
+
* @returns {object} GPU-free raw/debug payload for the selected emit target.
|
|
49
|
+
*/
|
|
50
|
+
Read(input, options = {}) {
|
|
51
|
+
return readWithValues(input, this.GetValues(options), "jpeg");
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Read JPEG bytes asynchronously with this profile.
|
|
56
|
+
*
|
|
57
|
+
* @param {Uint8Array|ArrayBuffer|DataView} input JPEG bytes.
|
|
58
|
+
* @param {object} [options] Per-call values.
|
|
59
|
+
* @returns {Promise<object>} GPU-free raw/debug payload for the selected emit target.
|
|
60
|
+
*/
|
|
61
|
+
async ReadAsync(input, options = {}) {
|
|
62
|
+
return this.Read(input, options);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Inspect JPEG bytes without decoding image data.
|
|
67
|
+
*
|
|
68
|
+
* @param {Uint8Array|ArrayBuffer|DataView} input JPEG bytes.
|
|
69
|
+
* @param {object} [options] Per-call values.
|
|
70
|
+
* @returns {object} JPEG marker/header metadata.
|
|
71
|
+
*/
|
|
72
|
+
Inspect(input, options = {}) {
|
|
73
|
+
return inspectWithValues(input, this.GetValues(options), "jpeg");
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Report whether JPEG input and requested output variants are supported.
|
|
78
|
+
*
|
|
79
|
+
* @param {Uint8Array|ArrayBuffer|DataView} input JPEG bytes.
|
|
80
|
+
* @param {object} [options] Per-call values.
|
|
81
|
+
* @returns {object} Support/probe report.
|
|
82
|
+
*/
|
|
83
|
+
IsSupported(input, options = {}) {
|
|
84
|
+
return isSupportedWithValues(input, this.GetValues(options), "jpeg");
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Convert format output into JSON-compatible debug data.
|
|
89
|
+
*
|
|
90
|
+
* @param {any} value Format output.
|
|
91
|
+
* @returns {any} JSON-compatible value.
|
|
92
|
+
*/
|
|
93
|
+
ToJSON(value) {
|
|
94
|
+
return toJsonValue(value);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* One-shot JPEG read.
|
|
99
|
+
*
|
|
100
|
+
* @param {Uint8Array|ArrayBuffer|DataView} input JPEG bytes.
|
|
101
|
+
* @param {object} [options] Read options.
|
|
102
|
+
* @returns {object} GPU-free raw/debug payload for the selected emit target.
|
|
103
|
+
*/
|
|
104
|
+
static read(input, options = {}) {
|
|
105
|
+
return readWithValues(input, normalizeValues(DEFAULT_VALUES, {
|
|
106
|
+
inputType: "jpeg",
|
|
107
|
+
...options
|
|
108
|
+
}, FORMAT_NAME), "jpeg");
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* One-shot asynchronous JPEG read.
|
|
113
|
+
*
|
|
114
|
+
* @param {Uint8Array|ArrayBuffer|DataView} input JPEG bytes.
|
|
115
|
+
* @param {object} [options] Read options.
|
|
116
|
+
* @returns {Promise<object>} GPU-free raw/debug payload for the selected emit target.
|
|
117
|
+
*/
|
|
118
|
+
static async readAsync(input, options = {}) {
|
|
119
|
+
return CjsJpegFormat.read(input, options);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* One-shot JPEG inspection.
|
|
124
|
+
*
|
|
125
|
+
* @param {Uint8Array|ArrayBuffer|DataView} input JPEG bytes.
|
|
126
|
+
* @param {object} [options] Inspect options.
|
|
127
|
+
* @returns {object} JPEG marker/header metadata.
|
|
128
|
+
*/
|
|
129
|
+
static inspect(input, options = {}) {
|
|
130
|
+
return inspectWithValues(input, normalizeValues(DEFAULT_VALUES, {
|
|
131
|
+
inputType: "jpeg",
|
|
132
|
+
...options
|
|
133
|
+
}, FORMAT_NAME), "jpeg");
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* One-shot JPEG support probe.
|
|
138
|
+
*
|
|
139
|
+
* @param {Uint8Array|ArrayBuffer|DataView} input JPEG bytes.
|
|
140
|
+
* @param {object} [options] Probe options.
|
|
141
|
+
* @returns {object} Support/probe report.
|
|
142
|
+
*/
|
|
143
|
+
static isSupported(input, options = {}) {
|
|
144
|
+
return isSupportedWithValues(input, normalizeValues(DEFAULT_VALUES, {
|
|
145
|
+
inputType: "jpeg",
|
|
146
|
+
...options
|
|
147
|
+
}, FORMAT_NAME), "jpeg");
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Convert format output into JSON-compatible debug data.
|
|
152
|
+
*
|
|
153
|
+
* @param {any} value Format output.
|
|
154
|
+
* @returns {any} JSON-compatible value.
|
|
155
|
+
*/
|
|
156
|
+
static toJSON(value) {
|
|
157
|
+
return toJsonValue(value);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* Test whether bytes look like a JPEG file.
|
|
162
|
+
*
|
|
163
|
+
* @param {Uint8Array|ArrayBuffer|DataView} input Candidate JPEG bytes.
|
|
164
|
+
* @returns {boolean} True when a JPEG SOI marker is present.
|
|
165
|
+
*/
|
|
166
|
+
static isJPEG(input) {
|
|
167
|
+
try {
|
|
168
|
+
return isJPEG(toBytes(input));
|
|
169
|
+
} catch {
|
|
170
|
+
return false;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* Test whether bytes look like a JPG/JPEG file.
|
|
176
|
+
*
|
|
177
|
+
* @param {Uint8Array|ArrayBuffer|DataView} input Candidate JPG bytes.
|
|
178
|
+
* @returns {boolean} True when a JPEG SOI marker is present.
|
|
179
|
+
*/
|
|
180
|
+
static isJPG(input) {
|
|
181
|
+
try {
|
|
182
|
+
return isJPG(toBytes(input));
|
|
183
|
+
} catch {
|
|
184
|
+
return false;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
/**
|
|
189
|
+
* Emit targets for this format (canonical frozen enum).
|
|
190
|
+
*/
|
|
191
|
+
static Output = Object.freeze({
|
|
192
|
+
IMAGE: OUTPUT_IMAGE,
|
|
193
|
+
RGBA: OUTPUT_RGBA,
|
|
194
|
+
RAW: OUTPUT_RAW,
|
|
195
|
+
JSON: OUTPUT_JSON
|
|
196
|
+
});
|
|
197
|
+
static OUTPUT_JPEG_JSON = "jpegJson";
|
|
198
|
+
static type = Object.freeze(["image"]);
|
|
199
|
+
static mediaTypes = Object.freeze(["image"]);
|
|
200
|
+
static inputTypes = Object.freeze(["jpg", "jpeg"]);
|
|
201
|
+
static outputTypes = Object.freeze([OUTPUT_IMAGE, OUTPUT_RGBA]);
|
|
202
|
+
static debugOutputTypes = Object.freeze(["jpegJson", OUTPUT_RAW]);
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
export { CjsJpegFormat };
|
|
206
|
+
//# sourceMappingURL=CjsJpegFormat.js.map
|