node-av 0.0.1

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.
Files changed (175) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/LICENSE.md +22 -0
  3. package/README.md +377 -0
  4. package/binding.gyp +78 -0
  5. package/dist/api/bitstream-filter.d.ts +246 -0
  6. package/dist/api/bitstream-filter.js +369 -0
  7. package/dist/api/bitstream-filter.js.map +1 -0
  8. package/dist/api/decoder.d.ts +257 -0
  9. package/dist/api/decoder.js +424 -0
  10. package/dist/api/decoder.js.map +1 -0
  11. package/dist/api/encoder.d.ts +298 -0
  12. package/dist/api/encoder.js +574 -0
  13. package/dist/api/encoder.js.map +1 -0
  14. package/dist/api/filter.d.ts +457 -0
  15. package/dist/api/filter.js +876 -0
  16. package/dist/api/filter.js.map +1 -0
  17. package/dist/api/hardware.d.ts +318 -0
  18. package/dist/api/hardware.js +558 -0
  19. package/dist/api/hardware.js.map +1 -0
  20. package/dist/api/index.d.ts +12 -0
  21. package/dist/api/index.js +20 -0
  22. package/dist/api/index.js.map +1 -0
  23. package/dist/api/io-stream.d.ts +109 -0
  24. package/dist/api/io-stream.js +124 -0
  25. package/dist/api/io-stream.js.map +1 -0
  26. package/dist/api/media-input.d.ts +295 -0
  27. package/dist/api/media-input.js +456 -0
  28. package/dist/api/media-input.js.map +1 -0
  29. package/dist/api/media-output.d.ts +274 -0
  30. package/dist/api/media-output.js +486 -0
  31. package/dist/api/media-output.js.map +1 -0
  32. package/dist/api/pipeline.d.ts +117 -0
  33. package/dist/api/pipeline.js +836 -0
  34. package/dist/api/pipeline.js.map +1 -0
  35. package/dist/api/types.d.ts +440 -0
  36. package/dist/api/types.js +2 -0
  37. package/dist/api/types.js.map +1 -0
  38. package/dist/api/utilities/audio-sample.d.ts +115 -0
  39. package/dist/api/utilities/audio-sample.js +110 -0
  40. package/dist/api/utilities/audio-sample.js.map +1 -0
  41. package/dist/api/utilities/channel-layout.d.ts +83 -0
  42. package/dist/api/utilities/channel-layout.js +87 -0
  43. package/dist/api/utilities/channel-layout.js.map +1 -0
  44. package/dist/api/utilities/image.d.ts +177 -0
  45. package/dist/api/utilities/image.js +183 -0
  46. package/dist/api/utilities/image.js.map +1 -0
  47. package/dist/api/utilities/index.d.ts +8 -0
  48. package/dist/api/utilities/index.js +17 -0
  49. package/dist/api/utilities/index.js.map +1 -0
  50. package/dist/api/utilities/media-type.d.ts +56 -0
  51. package/dist/api/utilities/media-type.js +60 -0
  52. package/dist/api/utilities/media-type.js.map +1 -0
  53. package/dist/api/utilities/pixel-format.d.ts +94 -0
  54. package/dist/api/utilities/pixel-format.js +102 -0
  55. package/dist/api/utilities/pixel-format.js.map +1 -0
  56. package/dist/api/utilities/sample-format.d.ts +132 -0
  57. package/dist/api/utilities/sample-format.js +144 -0
  58. package/dist/api/utilities/sample-format.js.map +1 -0
  59. package/dist/api/utilities/streaming.d.ts +104 -0
  60. package/dist/api/utilities/streaming.js +137 -0
  61. package/dist/api/utilities/streaming.js.map +1 -0
  62. package/dist/api/utilities/timestamp.d.ts +187 -0
  63. package/dist/api/utilities/timestamp.js +200 -0
  64. package/dist/api/utilities/timestamp.js.map +1 -0
  65. package/dist/api/utils.d.ts +61 -0
  66. package/dist/api/utils.js +330 -0
  67. package/dist/api/utils.js.map +1 -0
  68. package/dist/index.d.ts +2 -0
  69. package/dist/index.js +5 -0
  70. package/dist/index.js.map +1 -0
  71. package/dist/lib/audio-fifo.d.ts +339 -0
  72. package/dist/lib/audio-fifo.js +365 -0
  73. package/dist/lib/audio-fifo.js.map +1 -0
  74. package/dist/lib/binding.d.ts +192 -0
  75. package/dist/lib/binding.js +70 -0
  76. package/dist/lib/binding.js.map +1 -0
  77. package/dist/lib/bitstream-filter-context.d.ts +345 -0
  78. package/dist/lib/bitstream-filter-context.js +407 -0
  79. package/dist/lib/bitstream-filter-context.js.map +1 -0
  80. package/dist/lib/bitstream-filter.d.ts +124 -0
  81. package/dist/lib/bitstream-filter.js +138 -0
  82. package/dist/lib/bitstream-filter.js.map +1 -0
  83. package/dist/lib/channel-layouts.d.ts +51 -0
  84. package/dist/lib/channel-layouts.js +55 -0
  85. package/dist/lib/channel-layouts.js.map +1 -0
  86. package/dist/lib/codec-context.d.ts +763 -0
  87. package/dist/lib/codec-context.js +974 -0
  88. package/dist/lib/codec-context.js.map +1 -0
  89. package/dist/lib/codec-parameters.d.ts +362 -0
  90. package/dist/lib/codec-parameters.js +460 -0
  91. package/dist/lib/codec-parameters.js.map +1 -0
  92. package/dist/lib/codec-parser.d.ts +185 -0
  93. package/dist/lib/codec-parser.js +193 -0
  94. package/dist/lib/codec-parser.js.map +1 -0
  95. package/dist/lib/codec.d.ts +432 -0
  96. package/dist/lib/codec.js +492 -0
  97. package/dist/lib/codec.js.map +1 -0
  98. package/dist/lib/constants.d.ts +2037 -0
  99. package/dist/lib/constants.js +1659 -0
  100. package/dist/lib/constants.js.map +1 -0
  101. package/dist/lib/dictionary.d.ts +371 -0
  102. package/dist/lib/dictionary.js +406 -0
  103. package/dist/lib/dictionary.js.map +1 -0
  104. package/dist/lib/error.d.ts +216 -0
  105. package/dist/lib/error.js +254 -0
  106. package/dist/lib/error.js.map +1 -0
  107. package/dist/lib/filter-context.d.ts +445 -0
  108. package/dist/lib/filter-context.js +505 -0
  109. package/dist/lib/filter-context.js.map +1 -0
  110. package/dist/lib/filter-graph.d.ts +556 -0
  111. package/dist/lib/filter-graph.js +608 -0
  112. package/dist/lib/filter-graph.js.map +1 -0
  113. package/dist/lib/filter-inout.d.ts +205 -0
  114. package/dist/lib/filter-inout.js +264 -0
  115. package/dist/lib/filter-inout.js.map +1 -0
  116. package/dist/lib/filter.d.ts +231 -0
  117. package/dist/lib/filter.js +260 -0
  118. package/dist/lib/filter.js.map +1 -0
  119. package/dist/lib/format-context.d.ts +798 -0
  120. package/dist/lib/format-context.js +845 -0
  121. package/dist/lib/format-context.js.map +1 -0
  122. package/dist/lib/frame.d.ts +784 -0
  123. package/dist/lib/frame.js +933 -0
  124. package/dist/lib/frame.js.map +1 -0
  125. package/dist/lib/hardware-device-context.d.ts +407 -0
  126. package/dist/lib/hardware-device-context.js +429 -0
  127. package/dist/lib/hardware-device-context.js.map +1 -0
  128. package/dist/lib/hardware-frames-context.d.ts +374 -0
  129. package/dist/lib/hardware-frames-context.js +430 -0
  130. package/dist/lib/hardware-frames-context.js.map +1 -0
  131. package/dist/lib/index.d.ts +31 -0
  132. package/dist/lib/index.js +54 -0
  133. package/dist/lib/index.js.map +1 -0
  134. package/dist/lib/input-format.d.ts +216 -0
  135. package/dist/lib/input-format.js +246 -0
  136. package/dist/lib/input-format.js.map +1 -0
  137. package/dist/lib/io-context.d.ts +495 -0
  138. package/dist/lib/io-context.js +550 -0
  139. package/dist/lib/io-context.js.map +1 -0
  140. package/dist/lib/log.d.ts +201 -0
  141. package/dist/lib/log.js +219 -0
  142. package/dist/lib/log.js.map +1 -0
  143. package/dist/lib/native-types.d.ts +719 -0
  144. package/dist/lib/native-types.js +2 -0
  145. package/dist/lib/native-types.js.map +1 -0
  146. package/dist/lib/option.d.ts +589 -0
  147. package/dist/lib/option.js +853 -0
  148. package/dist/lib/option.js.map +1 -0
  149. package/dist/lib/output-format.d.ts +179 -0
  150. package/dist/lib/output-format.js +205 -0
  151. package/dist/lib/output-format.js.map +1 -0
  152. package/dist/lib/packet.d.ts +487 -0
  153. package/dist/lib/packet.js +558 -0
  154. package/dist/lib/packet.js.map +1 -0
  155. package/dist/lib/rational.d.ts +210 -0
  156. package/dist/lib/rational.js +233 -0
  157. package/dist/lib/rational.js.map +1 -0
  158. package/dist/lib/software-resample-context.d.ts +572 -0
  159. package/dist/lib/software-resample-context.js +610 -0
  160. package/dist/lib/software-resample-context.js.map +1 -0
  161. package/dist/lib/software-scale-context.d.ts +290 -0
  162. package/dist/lib/software-scale-context.js +308 -0
  163. package/dist/lib/software-scale-context.js.map +1 -0
  164. package/dist/lib/stream.d.ts +322 -0
  165. package/dist/lib/stream.js +408 -0
  166. package/dist/lib/stream.js.map +1 -0
  167. package/dist/lib/types.d.ts +59 -0
  168. package/dist/lib/types.js +8 -0
  169. package/dist/lib/types.js.map +1 -0
  170. package/dist/lib/utilities.d.ts +346 -0
  171. package/dist/lib/utilities.js +424 -0
  172. package/dist/lib/utilities.js.map +1 -0
  173. package/install/check.js +113 -0
  174. package/install/ffmpeg.js +163 -0
  175. package/package.json +107 -0
@@ -0,0 +1,330 @@
1
+ /**
2
+ * Parse bitrate string to bigint.
3
+ *
4
+ * Supports suffixes: K (kilo), M (mega), G (giga).
5
+ *
6
+ * Converts human-readable bitrate strings to numeric values.
7
+ *
8
+ * @param str - Bitrate string (e.g., '5M', '192k')
9
+ *
10
+ * @returns Bitrate as bigint
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * parseBitrate('5M') // 5000000n
15
+ * parseBitrate('192k') // 192000n
16
+ * parseBitrate('1.5G') // 1500000000n
17
+ * ```
18
+ */
19
+ export function parseBitrate(str) {
20
+ const match = /^(\d+(?:\.\d+)?)\s*([KMG])?$/i.exec(str);
21
+ if (!match) {
22
+ throw new Error(`Invalid bitrate: ${str}`);
23
+ }
24
+ let value = parseFloat(match[1]);
25
+ const unit = match[2]?.toUpperCase();
26
+ switch (unit) {
27
+ case 'K':
28
+ value *= 1000;
29
+ break;
30
+ case 'M':
31
+ value *= 1000000;
32
+ break;
33
+ case 'G':
34
+ value *= 1000000000;
35
+ break;
36
+ }
37
+ return BigInt(Math.floor(value));
38
+ }
39
+ // (c) https://github.com/shinyoshiaki/werift-webrtc/tree/develop/packages/rtp
40
+ class BitWriter {
41
+ bitLength;
42
+ value = 0;
43
+ constructor(bitLength) {
44
+ this.bitLength = bitLength;
45
+ }
46
+ set(size, startIndex, value) {
47
+ value &= (1 << size) - 1;
48
+ this.value |= value << (this.bitLength - size - startIndex);
49
+ return this;
50
+ }
51
+ get buffer() {
52
+ const length = Math.ceil(this.bitLength / 8);
53
+ const buf = Buffer.alloc(length);
54
+ buf.writeUIntBE(this.value, 0, length);
55
+ return buf;
56
+ }
57
+ }
58
+ function getBit(bits, startIndex, length = 1) {
59
+ let bin = bits.toString(2).split('');
60
+ bin = [...Array(8 - bin.length).fill('0'), ...bin];
61
+ const s = bin.slice(startIndex, startIndex + length).join('');
62
+ const v = Number.parseInt(s, 2);
63
+ return v;
64
+ }
65
+ export const ExtensionProfiles = {
66
+ OneByte: 0xbede, // 48862
67
+ TwoByte: 0x1000, // 4096
68
+ };
69
+ const seqNumOffset = 2;
70
+ const timestampOffset = 4;
71
+ const ssrcOffset = 8;
72
+ const csrcOffset = 12;
73
+ const csrcSize = 4;
74
+ /*
75
+ * 0 1 2 3
76
+ * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
77
+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
78
+ * |V=2|P|X| CC |M| PT | sequence number |
79
+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
80
+ * | timestamp |
81
+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
82
+ * | synchronization source (SSRC) identifier |
83
+ * +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
84
+ * | contributing source (CSRC) identifiers |
85
+ * | .... |
86
+ * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
87
+ */
88
+ export class RtpHeader {
89
+ version = 2;
90
+ padding = false;
91
+ paddingSize = 0;
92
+ extension = false;
93
+ marker = false;
94
+ payloadOffset = 0;
95
+ payloadType = 0;
96
+ sequenceNumber = 0;
97
+ timestamp = 0;
98
+ ssrc = 0;
99
+ csrcLength = 0;
100
+ csrc = [];
101
+ extensionProfile = ExtensionProfiles.OneByte;
102
+ /** deserialize only */
103
+ extensionLength;
104
+ extensions = [];
105
+ constructor(props = {}) {
106
+ Object.assign(this, props);
107
+ }
108
+ static deSerialize(rawPacket) {
109
+ const h = new RtpHeader();
110
+ let currOffset = 0;
111
+ const v_p_x_cc = rawPacket[currOffset++];
112
+ h.version = getBit(v_p_x_cc, 0, 2);
113
+ h.padding = getBit(v_p_x_cc, 2) > 0;
114
+ h.extension = getBit(v_p_x_cc, 3) > 0;
115
+ h.csrcLength = getBit(v_p_x_cc, 4, 4);
116
+ h.csrc = [...Array(h.csrcLength)].map(() => {
117
+ const csrc = rawPacket.readUInt32BE(currOffset);
118
+ currOffset += 4;
119
+ return csrc;
120
+ });
121
+ currOffset += csrcOffset - 1;
122
+ const m_pt = rawPacket[1];
123
+ h.marker = getBit(m_pt, 0) > 0;
124
+ h.payloadType = getBit(m_pt, 1, 7);
125
+ h.sequenceNumber = rawPacket.readUInt16BE(seqNumOffset);
126
+ h.timestamp = rawPacket.readUInt32BE(timestampOffset);
127
+ h.ssrc = rawPacket.readUInt32BE(ssrcOffset);
128
+ for (let i = 0; i < h.csrc.length; i++) {
129
+ const offset = csrcOffset + i * csrcSize;
130
+ h.csrc[i] = rawPacket.subarray(offset).readUInt32BE();
131
+ }
132
+ if (h.extension) {
133
+ h.extensionProfile = rawPacket.subarray(currOffset).readUInt16BE();
134
+ currOffset += 2;
135
+ const extensionLength = rawPacket.subarray(currOffset).readUInt16BE() * 4;
136
+ h.extensionLength = extensionLength;
137
+ currOffset += 2;
138
+ switch (h.extensionProfile) {
139
+ // RFC 8285 RTP One Byte Header Extension
140
+ case ExtensionProfiles.OneByte:
141
+ {
142
+ const end = currOffset + extensionLength;
143
+ while (currOffset < end) {
144
+ if (rawPacket[currOffset] === 0x00) {
145
+ currOffset++;
146
+ continue;
147
+ }
148
+ const extId = rawPacket[currOffset] >> 4;
149
+ const len = (rawPacket[currOffset] & (rawPacket[currOffset] ^ 0xf0)) + 1; // and not &^
150
+ currOffset++;
151
+ if (extId === 0xf) {
152
+ break;
153
+ }
154
+ const extension = {
155
+ id: extId,
156
+ payload: rawPacket.subarray(currOffset, currOffset + len),
157
+ };
158
+ h.extensions = [...h.extensions, extension];
159
+ currOffset += len;
160
+ }
161
+ }
162
+ break;
163
+ // RFC 8285 RTP Two Byte Header Extension
164
+ case ExtensionProfiles.TwoByte:
165
+ {
166
+ const end = currOffset + extensionLength;
167
+ while (currOffset < end) {
168
+ if (rawPacket[currOffset] === 0x00) {
169
+ currOffset++;
170
+ continue;
171
+ }
172
+ const extId = rawPacket[currOffset];
173
+ currOffset++;
174
+ const len = rawPacket[currOffset];
175
+ currOffset++;
176
+ const extension = {
177
+ id: extId,
178
+ payload: rawPacket.subarray(currOffset, currOffset + len),
179
+ };
180
+ h.extensions = [...h.extensions, extension];
181
+ currOffset += len;
182
+ }
183
+ }
184
+ break;
185
+ default:
186
+ {
187
+ const extension = {
188
+ id: 0,
189
+ payload: rawPacket.subarray(currOffset, currOffset + extensionLength),
190
+ };
191
+ h.extensions = [...h.extensions, extension];
192
+ currOffset += h.extensions[0].payload.length;
193
+ }
194
+ break;
195
+ }
196
+ }
197
+ h.payloadOffset = currOffset;
198
+ if (h.padding) {
199
+ h.paddingSize = rawPacket[rawPacket.length - 1];
200
+ }
201
+ return h;
202
+ }
203
+ get serializeSize() {
204
+ const { csrc, extensionProfile, extensions } = this;
205
+ let size = 12 + csrc.length * csrcSize;
206
+ if (extensions.length > 0 || this.extension === true) {
207
+ let extSize = 4;
208
+ switch (extensionProfile) {
209
+ case ExtensionProfiles.OneByte:
210
+ for (const extension of extensions) {
211
+ extSize += 1 + extension.payload.length;
212
+ }
213
+ break;
214
+ case ExtensionProfiles.TwoByte:
215
+ for (const extension of extensions) {
216
+ extSize += 2 + extension.payload.length;
217
+ }
218
+ break;
219
+ default:
220
+ extSize += extensions[0].payload.length;
221
+ }
222
+ size += Math.floor((extSize + 3) / 4) * 4;
223
+ }
224
+ return size;
225
+ }
226
+ serialize(size) {
227
+ const buf = Buffer.alloc(size);
228
+ let offset = 0;
229
+ const v_p_x_cc = new BitWriter(8);
230
+ v_p_x_cc.set(2, 0, this.version);
231
+ if (this.padding)
232
+ v_p_x_cc.set(1, 2, 1);
233
+ if (this.extensions.length > 0)
234
+ this.extension = true;
235
+ if (this.extension)
236
+ v_p_x_cc.set(1, 3, 1);
237
+ v_p_x_cc.set(4, 4, this.csrc.length);
238
+ buf.writeUInt8(v_p_x_cc.value, offset++);
239
+ const m_pt = new BitWriter(8);
240
+ if (this.marker)
241
+ m_pt.set(1, 0, 1);
242
+ m_pt.set(7, 1, this.payloadType);
243
+ buf.writeUInt8(m_pt.value, offset++);
244
+ buf.writeUInt16BE(this.sequenceNumber, seqNumOffset);
245
+ offset += 2;
246
+ buf.writeUInt32BE(this.timestamp, timestampOffset);
247
+ offset += 4;
248
+ buf.writeUInt32BE(this.ssrc, ssrcOffset);
249
+ offset += 4;
250
+ for (const csrc of this.csrc) {
251
+ buf.writeUInt32BE(csrc, offset);
252
+ offset += 4;
253
+ }
254
+ if (this.extension) {
255
+ const extHeaderPos = offset;
256
+ buf.writeUInt16BE(this.extensionProfile, offset);
257
+ offset += 4;
258
+ const startExtensionsPos = offset;
259
+ switch (this.extensionProfile) {
260
+ case ExtensionProfiles.OneByte:
261
+ for (const extension of this.extensions) {
262
+ buf.writeUInt8((extension.id << 4) | (extension.payload.length - 1), offset++);
263
+ extension.payload.copy(buf, offset);
264
+ offset += extension.payload.length;
265
+ }
266
+ break;
267
+ case ExtensionProfiles.TwoByte:
268
+ for (const extension of this.extensions) {
269
+ buf.writeUInt8(extension.id, offset++);
270
+ buf.writeUInt8(extension.payload.length, offset++);
271
+ extension.payload.copy(buf, offset);
272
+ offset += extension.payload.length;
273
+ }
274
+ break;
275
+ default: {
276
+ const extLen = this.extensions[0].payload.length;
277
+ if (extLen % 4 != 0) {
278
+ throw new Error();
279
+ }
280
+ this.extensions[0].payload.copy(buf, offset);
281
+ offset += extLen;
282
+ }
283
+ }
284
+ const extSize = offset - startExtensionsPos;
285
+ const roundedExtSize = Math.trunc((extSize + 3) / 4) * 4;
286
+ buf.writeUInt16BE(Math.trunc(roundedExtSize / 4), extHeaderPos + 2);
287
+ // padding 4 bytes boundaries
288
+ for (let i = 0; i < roundedExtSize - extSize; i++) {
289
+ buf.writeUInt8(0, offset);
290
+ offset++;
291
+ }
292
+ }
293
+ this.payloadOffset = offset;
294
+ return buf;
295
+ }
296
+ }
297
+ export class RtpPacket {
298
+ header;
299
+ payload;
300
+ constructor(header, payload) {
301
+ this.header = header;
302
+ this.payload = payload;
303
+ }
304
+ get serializeSize() {
305
+ return this.header.serializeSize + this.payload.length;
306
+ }
307
+ clone() {
308
+ return new RtpPacket(new RtpHeader({ ...this.header }), this.payload);
309
+ }
310
+ serialize() {
311
+ let buf = this.header.serialize(this.header.serializeSize + this.payload.length);
312
+ const { payloadOffset } = this.header;
313
+ this.payload.copy(buf, payloadOffset);
314
+ if (this.header.padding) {
315
+ const padding = Buffer.alloc(this.header.paddingSize);
316
+ padding.writeUInt8(this.header.paddingSize, this.header.paddingSize - 1);
317
+ buf = Buffer.concat([buf, padding]);
318
+ }
319
+ return buf;
320
+ }
321
+ static deSerialize(buf) {
322
+ const header = RtpHeader.deSerialize(buf);
323
+ const p = new RtpPacket(header, buf.subarray(header.payloadOffset, buf.length - header.paddingSize));
324
+ return p;
325
+ }
326
+ clear() {
327
+ this.payload = null;
328
+ }
329
+ }
330
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/api/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './lib/index.js';
2
+ export * from './api/index.js';
package/dist/index.js ADDED
@@ -0,0 +1,5 @@
1
+ // Export low-level API
2
+ export * from './lib/index.js';
3
+ // Export high-level API
4
+ export * from './api/index.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,uBAAuB;AACvB,cAAc,gBAAgB,CAAC;AAE/B,wBAAwB;AACxB,cAAc,gBAAgB,CAAC"}