typeson-registry 13.1.0 → 13.2.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.
@@ -1110,6 +1110,79 @@
1110
1110
 
1111
1111
  // See also typed-arrays!
1112
1112
 
1113
+ /* globals AudioData -- Polyfills */
1114
+
1115
+ /**
1116
+ * @type {import('typeson').TypeSpecSet}
1117
+ */
1118
+ var audiodata = {
1119
+ audiodata: {
1120
+ test: function test(x) {
1121
+ return toStringTag(x) === 'AudioData';
1122
+ },
1123
+ replace: function replace(audioData) {
1124
+ var format = audioData.format,
1125
+ sampleRate = audioData.sampleRate,
1126
+ numberOfFrames = audioData.numberOfFrames,
1127
+ numberOfChannels = audioData.numberOfChannels,
1128
+ timestamp = audioData.timestamp;
1129
+
1130
+ // 2. Determine plane layout based on audio format
1131
+ var isPlanar = format.endsWith('-planar');
1132
+ var numPlanes = isPlanar ? numberOfChannels : 1;
1133
+
1134
+ // 3. Per the AudioData API, planes are laid out back-to-back
1135
+ // within a single buffer, so compute their sizes up front
1136
+ var planeSizes = [];
1137
+ var totalSize = 0;
1138
+ for (var i = 0; i < numPlanes; i++) {
1139
+ var size = audioData.allocationSize({
1140
+ planeIndex: i
1141
+ });
1142
+ planeSizes.push(size);
1143
+ totalSize += size;
1144
+ }
1145
+
1146
+ // 4. Copy the raw binary data out of each plane into its slot
1147
+ var data = new ArrayBuffer(totalSize);
1148
+ var offset = 0;
1149
+ for (var _i = 0; _i < numPlanes; _i++) {
1150
+ var planeView = new Uint8Array(data, offset, planeSizes[_i]);
1151
+ audioData.copyTo(planeView, {
1152
+ planeIndex: _i
1153
+ });
1154
+ offset += planeSizes[_i];
1155
+ }
1156
+
1157
+ // 5. Return a clean, serializable manifest
1158
+ return {
1159
+ format: format,
1160
+ sampleRate: sampleRate,
1161
+ numberOfFrames: numberOfFrames,
1162
+ numberOfChannels: numberOfChannels,
1163
+ timestamp: timestamp,
1164
+ data: data
1165
+ };
1166
+ },
1167
+ revive: function revive(_ref) {
1168
+ var format = _ref.format,
1169
+ sampleRate = _ref.sampleRate,
1170
+ numberOfFrames = _ref.numberOfFrames,
1171
+ numberOfChannels = _ref.numberOfChannels,
1172
+ timestamp = _ref.timestamp,
1173
+ data = _ref.data;
1174
+ return new AudioData({
1175
+ format: format,
1176
+ sampleRate: sampleRate,
1177
+ numberOfFrames: numberOfFrames,
1178
+ numberOfChannels: numberOfChannels,
1179
+ timestamp: timestamp,
1180
+ data: new Uint8Array(data)
1181
+ });
1182
+ }
1183
+ }
1184
+ };
1185
+
1113
1186
  /**
1114
1187
  * @type {import('typeson').TypeSpecSet}
1115
1188
  */
@@ -2792,7 +2865,8 @@
2792
2865
  typeof DOMRect !== 'undefined' ? domrect : [], /* c8 ignore next */
2793
2866
  typeof DOMPoint !== 'undefined' ? dompoint : [], /* c8 ignore next */
2794
2867
  typeof DOMQuad !== 'undefined' ? domquad : [], /* c8 ignore next */
2795
- typeof DOMMatrix !== 'undefined' ? dommatrix : []);
2868
+ typeof DOMMatrix !== 'undefined' ? dommatrix : [], /* c8 ignore next */
2869
+ typeof AudioData !== 'undefined' ? audiodata : []);
2796
2870
 
2797
2871
  /**
2798
2872
  * @type {import('typeson').Preset}
@@ -2879,6 +2953,7 @@
2879
2953
  exports.Undefined = Undefined;
2880
2954
  exports.arrayNonindexKeys = arrayNonindexKeys;
2881
2955
  exports.arraybuffer = arraybuffer;
2956
+ exports.audiodata = audiodata;
2882
2957
  exports.bigint = bigint;
2883
2958
  exports.bigintObject = bigintObject;
2884
2959
  exports.blob = blob;