@shotstack/shotstack-canvas 2.0.9 → 2.0.11
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/dist/entry.node.cjs +2634 -2531
- package/dist/entry.node.d.cts +33 -20
- package/dist/entry.node.d.ts +33 -20
- package/dist/entry.node.js +2629 -2533
- package/dist/entry.web.d.ts +31 -20
- package/dist/entry.web.js +753 -682
- package/dist/{hb-V6YBF7AQ.js → hb-HSWG3Q47.js} +2 -2
- package/dist/{hbjs-PXJWBHW7.js → hbjs-VGYWXH44.js} +2 -2
- package/package.json +2 -2
package/dist/entry.web.js
CHANGED
|
@@ -19,9 +19,9 @@ import {
|
|
|
19
19
|
__toESM
|
|
20
20
|
} from "./chunk-FPPKRKBX.js";
|
|
21
21
|
|
|
22
|
-
// node_modules/fast-deep-equal/index.js
|
|
22
|
+
// node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal/index.js
|
|
23
23
|
var require_fast_deep_equal = __commonJS({
|
|
24
|
-
"node_modules/fast-deep-equal/index.js"(exports, module) {
|
|
24
|
+
"node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal/index.js"(exports, module) {
|
|
25
25
|
"use strict";
|
|
26
26
|
module.exports = function equal(a, b) {
|
|
27
27
|
if (a === b) return true;
|
|
@@ -54,9 +54,9 @@ var require_fast_deep_equal = __commonJS({
|
|
|
54
54
|
}
|
|
55
55
|
});
|
|
56
56
|
|
|
57
|
-
// node_modules/base64-js/index.js
|
|
57
|
+
// node_modules/.pnpm/base64-js@1.5.1/node_modules/base64-js/index.js
|
|
58
58
|
var require_base64_js = __commonJS({
|
|
59
|
-
"node_modules/base64-js/index.js"(exports) {
|
|
59
|
+
"node_modules/.pnpm/base64-js@1.5.1/node_modules/base64-js/index.js"(exports) {
|
|
60
60
|
"use strict";
|
|
61
61
|
exports.byteLength = byteLength2;
|
|
62
62
|
exports.toByteArray = toByteArray;
|
|
@@ -155,9 +155,9 @@ var require_base64_js = __commonJS({
|
|
|
155
155
|
}
|
|
156
156
|
});
|
|
157
157
|
|
|
158
|
-
// node_modules/tiny-inflate/index.js
|
|
158
|
+
// node_modules/.pnpm/tiny-inflate@1.0.3/node_modules/tiny-inflate/index.js
|
|
159
159
|
var require_tiny_inflate = __commonJS({
|
|
160
|
-
"node_modules/tiny-inflate/index.js"(exports, module) {
|
|
160
|
+
"node_modules/.pnpm/tiny-inflate@1.0.3/node_modules/tiny-inflate/index.js"(exports, module) {
|
|
161
161
|
"use strict";
|
|
162
162
|
var TINF_OK = 0;
|
|
163
163
|
var TINF_DATA_ERROR = -3;
|
|
@@ -399,9 +399,9 @@ var require_tiny_inflate = __commonJS({
|
|
|
399
399
|
}
|
|
400
400
|
});
|
|
401
401
|
|
|
402
|
-
// node_modules/unicode-trie/swap.js
|
|
402
|
+
// node_modules/.pnpm/unicode-trie@2.0.0/node_modules/unicode-trie/swap.js
|
|
403
403
|
var require_swap = __commonJS({
|
|
404
|
-
"node_modules/unicode-trie/swap.js"(exports, module) {
|
|
404
|
+
"node_modules/.pnpm/unicode-trie@2.0.0/node_modules/unicode-trie/swap.js"(exports, module) {
|
|
405
405
|
"use strict";
|
|
406
406
|
var isBigEndian2 = new Uint8Array(new Uint32Array([305419896]).buffer)[0] === 18;
|
|
407
407
|
var swap = (b, n, m) => {
|
|
@@ -427,9 +427,9 @@ var require_swap = __commonJS({
|
|
|
427
427
|
}
|
|
428
428
|
});
|
|
429
429
|
|
|
430
|
-
// node_modules/unicode-trie/index.js
|
|
430
|
+
// node_modules/.pnpm/unicode-trie@2.0.0/node_modules/unicode-trie/index.js
|
|
431
431
|
var require_unicode_trie = __commonJS({
|
|
432
|
-
"node_modules/unicode-trie/index.js"(exports, module) {
|
|
432
|
+
"node_modules/.pnpm/unicode-trie@2.0.0/node_modules/unicode-trie/index.js"(exports, module) {
|
|
433
433
|
"use strict";
|
|
434
434
|
var inflate = require_tiny_inflate();
|
|
435
435
|
var { swap32LE } = require_swap();
|
|
@@ -500,9 +500,9 @@ var require_unicode_trie = __commonJS({
|
|
|
500
500
|
}
|
|
501
501
|
});
|
|
502
502
|
|
|
503
|
-
// node_modules/dfa/index.js
|
|
503
|
+
// node_modules/.pnpm/dfa@1.2.0/node_modules/dfa/index.js
|
|
504
504
|
var require_dfa = __commonJS({
|
|
505
|
-
"node_modules/dfa/index.js"(exports, module) {
|
|
505
|
+
"node_modules/.pnpm/dfa@1.2.0/node_modules/dfa/index.js"(exports, module) {
|
|
506
506
|
"use strict";
|
|
507
507
|
var INITIAL_STATE = 1;
|
|
508
508
|
var FAIL_STATE = 0;
|
|
@@ -570,9 +570,9 @@ var require_dfa = __commonJS({
|
|
|
570
570
|
}
|
|
571
571
|
});
|
|
572
572
|
|
|
573
|
-
// node_modules/clone/clone.js
|
|
573
|
+
// node_modules/.pnpm/clone@2.1.2/node_modules/clone/clone.js
|
|
574
574
|
var require_clone = __commonJS({
|
|
575
|
-
"node_modules/clone/clone.js"(exports, module) {
|
|
575
|
+
"node_modules/.pnpm/clone@2.1.2/node_modules/clone/clone.js"(exports, module) {
|
|
576
576
|
"use strict";
|
|
577
577
|
var clone2 = (function() {
|
|
578
578
|
"use strict";
|
|
@@ -767,9 +767,9 @@ var require_clone = __commonJS({
|
|
|
767
767
|
}
|
|
768
768
|
});
|
|
769
769
|
|
|
770
|
-
// node_modules/brotli/dec/streams.js
|
|
770
|
+
// node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/dec/streams.js
|
|
771
771
|
var require_streams = __commonJS({
|
|
772
|
-
"node_modules/brotli/dec/streams.js"(exports) {
|
|
772
|
+
"node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/dec/streams.js"(exports) {
|
|
773
773
|
"use strict";
|
|
774
774
|
function BrotliInput(buffer) {
|
|
775
775
|
this.buffer = buffer;
|
|
@@ -800,9 +800,9 @@ var require_streams = __commonJS({
|
|
|
800
800
|
}
|
|
801
801
|
});
|
|
802
802
|
|
|
803
|
-
// node_modules/brotli/dec/bit_reader.js
|
|
803
|
+
// node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/dec/bit_reader.js
|
|
804
804
|
var require_bit_reader = __commonJS({
|
|
805
|
-
"node_modules/brotli/dec/bit_reader.js"(exports, module) {
|
|
805
|
+
"node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/dec/bit_reader.js"(exports, module) {
|
|
806
806
|
"use strict";
|
|
807
807
|
var BROTLI_READ_SIZE = 4096;
|
|
808
808
|
var BROTLI_IBUF_SIZE = 2 * BROTLI_READ_SIZE + 32;
|
|
@@ -903,17 +903,17 @@ var require_bit_reader = __commonJS({
|
|
|
903
903
|
}
|
|
904
904
|
});
|
|
905
905
|
|
|
906
|
-
// node_modules/brotli/dec/dictionary.bin.js
|
|
906
|
+
// node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/dec/dictionary.bin.js
|
|
907
907
|
var require_dictionary_bin = __commonJS({
|
|
908
|
-
"node_modules/brotli/dec/dictionary.bin.js"(exports, module) {
|
|
908
|
+
"node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/dec/dictionary.bin.js"(exports, module) {
|
|
909
909
|
"use strict";
|
|
910
910
|
module.exports = "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";
|
|
911
911
|
}
|
|
912
912
|
});
|
|
913
913
|
|
|
914
|
-
// node_modules/brotli/dec/dictionary-browser.js
|
|
914
|
+
// node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/dec/dictionary-browser.js
|
|
915
915
|
var require_dictionary_browser = __commonJS({
|
|
916
|
-
"node_modules/brotli/dec/dictionary-browser.js"(exports) {
|
|
916
|
+
"node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/dec/dictionary-browser.js"(exports) {
|
|
917
917
|
"use strict";
|
|
918
918
|
var base643 = require_base64_js();
|
|
919
919
|
exports.init = function() {
|
|
@@ -924,9 +924,9 @@ var require_dictionary_browser = __commonJS({
|
|
|
924
924
|
}
|
|
925
925
|
});
|
|
926
926
|
|
|
927
|
-
// node_modules/brotli/dec/dictionary.js
|
|
927
|
+
// node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/dec/dictionary.js
|
|
928
928
|
var require_dictionary = __commonJS({
|
|
929
|
-
"node_modules/brotli/dec/dictionary.js"(exports) {
|
|
929
|
+
"node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/dec/dictionary.js"(exports) {
|
|
930
930
|
"use strict";
|
|
931
931
|
var data = require_dictionary_browser();
|
|
932
932
|
exports.init = function() {
|
|
@@ -991,9 +991,9 @@ var require_dictionary = __commonJS({
|
|
|
991
991
|
}
|
|
992
992
|
});
|
|
993
993
|
|
|
994
|
-
// node_modules/brotli/dec/huffman.js
|
|
994
|
+
// node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/dec/huffman.js
|
|
995
995
|
var require_huffman = __commonJS({
|
|
996
|
-
"node_modules/brotli/dec/huffman.js"(exports) {
|
|
996
|
+
"node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/dec/huffman.js"(exports) {
|
|
997
997
|
"use strict";
|
|
998
998
|
function HuffmanCode(bits, value) {
|
|
999
999
|
this.bits = bits;
|
|
@@ -1092,9 +1092,9 @@ var require_huffman = __commonJS({
|
|
|
1092
1092
|
}
|
|
1093
1093
|
});
|
|
1094
1094
|
|
|
1095
|
-
// node_modules/brotli/dec/context.js
|
|
1095
|
+
// node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/dec/context.js
|
|
1096
1096
|
var require_context = __commonJS({
|
|
1097
|
-
"node_modules/brotli/dec/context.js"(exports) {
|
|
1097
|
+
"node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/dec/context.js"(exports) {
|
|
1098
1098
|
"use strict";
|
|
1099
1099
|
exports.lookup = new Uint8Array([
|
|
1100
1100
|
/* CONTEXT_UTF8, last byte. */
|
|
@@ -2920,9 +2920,9 @@ var require_context = __commonJS({
|
|
|
2920
2920
|
}
|
|
2921
2921
|
});
|
|
2922
2922
|
|
|
2923
|
-
// node_modules/brotli/dec/prefix.js
|
|
2923
|
+
// node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/dec/prefix.js
|
|
2924
2924
|
var require_prefix = __commonJS({
|
|
2925
|
-
"node_modules/brotli/dec/prefix.js"(exports) {
|
|
2925
|
+
"node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/dec/prefix.js"(exports) {
|
|
2926
2926
|
"use strict";
|
|
2927
2927
|
function PrefixCodeRange(offset, nbits) {
|
|
2928
2928
|
this.offset = offset;
|
|
@@ -3033,9 +3033,9 @@ var require_prefix = __commonJS({
|
|
|
3033
3033
|
}
|
|
3034
3034
|
});
|
|
3035
3035
|
|
|
3036
|
-
// node_modules/brotli/dec/transform.js
|
|
3036
|
+
// node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/dec/transform.js
|
|
3037
3037
|
var require_transform = __commonJS({
|
|
3038
|
-
"node_modules/brotli/dec/transform.js"(exports) {
|
|
3038
|
+
"node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/dec/transform.js"(exports) {
|
|
3039
3039
|
"use strict";
|
|
3040
3040
|
var BrotliDictionary = require_dictionary();
|
|
3041
3041
|
var kIdentity = 0;
|
|
@@ -3248,9 +3248,9 @@ var require_transform = __commonJS({
|
|
|
3248
3248
|
}
|
|
3249
3249
|
});
|
|
3250
3250
|
|
|
3251
|
-
// node_modules/brotli/dec/decode.js
|
|
3251
|
+
// node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/dec/decode.js
|
|
3252
3252
|
var require_decode = __commonJS({
|
|
3253
|
-
"node_modules/brotli/dec/decode.js"(exports) {
|
|
3253
|
+
"node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/dec/decode.js"(exports) {
|
|
3254
3254
|
"use strict";
|
|
3255
3255
|
var BrotliInput = require_streams().BrotliInput;
|
|
3256
3256
|
var BrotliOutput = require_streams().BrotliOutput;
|
|
@@ -4101,15 +4101,15 @@ var require_decode = __commonJS({
|
|
|
4101
4101
|
}
|
|
4102
4102
|
});
|
|
4103
4103
|
|
|
4104
|
-
// node_modules/brotli/decompress.js
|
|
4104
|
+
// node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/decompress.js
|
|
4105
4105
|
var require_decompress = __commonJS({
|
|
4106
|
-
"node_modules/brotli/decompress.js"(exports, module) {
|
|
4106
|
+
"node_modules/.pnpm/brotli@1.3.3/node_modules/brotli/decompress.js"(exports, module) {
|
|
4107
4107
|
"use strict";
|
|
4108
4108
|
module.exports = require_decode().BrotliDecompressBuffer;
|
|
4109
4109
|
}
|
|
4110
4110
|
});
|
|
4111
4111
|
|
|
4112
|
-
// node_modules/zod/v4/classic/external.js
|
|
4112
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/classic/external.js
|
|
4113
4113
|
var external_exports = {};
|
|
4114
4114
|
__export(external_exports, {
|
|
4115
4115
|
$brand: () => $brand,
|
|
@@ -4350,7 +4350,7 @@ __export(external_exports, {
|
|
|
4350
4350
|
xor: () => xor
|
|
4351
4351
|
});
|
|
4352
4352
|
|
|
4353
|
-
// node_modules/zod/v4/core/index.js
|
|
4353
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/index.js
|
|
4354
4354
|
var core_exports2 = {};
|
|
4355
4355
|
__export(core_exports2, {
|
|
4356
4356
|
$ZodAny: () => $ZodAny,
|
|
@@ -4628,7 +4628,7 @@ __export(core_exports2, {
|
|
|
4628
4628
|
version: () => version
|
|
4629
4629
|
});
|
|
4630
4630
|
|
|
4631
|
-
// node_modules/zod/v4/core/core.js
|
|
4631
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/core.js
|
|
4632
4632
|
var NEVER = Object.freeze({
|
|
4633
4633
|
status: "aborted"
|
|
4634
4634
|
});
|
|
@@ -4703,7 +4703,7 @@ function config(newConfig) {
|
|
|
4703
4703
|
return globalConfig;
|
|
4704
4704
|
}
|
|
4705
4705
|
|
|
4706
|
-
// node_modules/zod/v4/core/util.js
|
|
4706
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/util.js
|
|
4707
4707
|
var util_exports = {};
|
|
4708
4708
|
__export(util_exports, {
|
|
4709
4709
|
BIGINT_FORMAT_RANGES: () => BIGINT_FORMAT_RANGES,
|
|
@@ -5382,7 +5382,7 @@ var Class = class {
|
|
|
5382
5382
|
}
|
|
5383
5383
|
};
|
|
5384
5384
|
|
|
5385
|
-
// node_modules/zod/v4/core/errors.js
|
|
5385
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/errors.js
|
|
5386
5386
|
var initializer = (inst, def) => {
|
|
5387
5387
|
inst.name = "$ZodError";
|
|
5388
5388
|
Object.defineProperty(inst, "_zod", {
|
|
@@ -5518,7 +5518,7 @@ function prettifyError(error48) {
|
|
|
5518
5518
|
return lines.join("\n");
|
|
5519
5519
|
}
|
|
5520
5520
|
|
|
5521
|
-
// node_modules/zod/v4/core/parse.js
|
|
5521
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/parse.js
|
|
5522
5522
|
var _parse = (_Err) => (schema, value, _ctx, _params) => {
|
|
5523
5523
|
const ctx = _ctx ? Object.assign(_ctx, { async: false }) : { async: false };
|
|
5524
5524
|
const result = schema._zod.run({ value, issues: [] }, ctx);
|
|
@@ -5606,7 +5606,7 @@ var _safeDecodeAsync = (_Err) => async (schema, value, _ctx) => {
|
|
|
5606
5606
|
};
|
|
5607
5607
|
var safeDecodeAsync = /* @__PURE__ */ _safeDecodeAsync($ZodRealError);
|
|
5608
5608
|
|
|
5609
|
-
// node_modules/zod/v4/core/regexes.js
|
|
5609
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/regexes.js
|
|
5610
5610
|
var regexes_exports = {};
|
|
5611
5611
|
__export(regexes_exports, {
|
|
5612
5612
|
base64: () => base64,
|
|
@@ -5763,7 +5763,7 @@ var sha512_hex = /^[0-9a-fA-F]{128}$/;
|
|
|
5763
5763
|
var sha512_base64 = /* @__PURE__ */ fixedBase64(86, "==");
|
|
5764
5764
|
var sha512_base64url = /* @__PURE__ */ fixedBase64url(86);
|
|
5765
5765
|
|
|
5766
|
-
// node_modules/zod/v4/core/checks.js
|
|
5766
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/checks.js
|
|
5767
5767
|
var $ZodCheck = /* @__PURE__ */ $constructor("$ZodCheck", (inst, def) => {
|
|
5768
5768
|
var _a5;
|
|
5769
5769
|
inst._zod ?? (inst._zod = {});
|
|
@@ -6311,7 +6311,7 @@ var $ZodCheckOverwrite = /* @__PURE__ */ $constructor("$ZodCheckOverwrite", (ins
|
|
|
6311
6311
|
};
|
|
6312
6312
|
});
|
|
6313
6313
|
|
|
6314
|
-
// node_modules/zod/v4/core/doc.js
|
|
6314
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/doc.js
|
|
6315
6315
|
var Doc = class {
|
|
6316
6316
|
constructor(args = []) {
|
|
6317
6317
|
this.content = [];
|
|
@@ -6347,14 +6347,14 @@ var Doc = class {
|
|
|
6347
6347
|
}
|
|
6348
6348
|
};
|
|
6349
6349
|
|
|
6350
|
-
// node_modules/zod/v4/core/versions.js
|
|
6350
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/versions.js
|
|
6351
6351
|
var version = {
|
|
6352
6352
|
major: 4,
|
|
6353
6353
|
minor: 3,
|
|
6354
6354
|
patch: 6
|
|
6355
6355
|
};
|
|
6356
6356
|
|
|
6357
|
-
// node_modules/zod/v4/core/schemas.js
|
|
6357
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/schemas.js
|
|
6358
6358
|
var $ZodType = /* @__PURE__ */ $constructor("$ZodType", (inst, def) => {
|
|
6359
6359
|
var _a5;
|
|
6360
6360
|
inst ?? (inst = {});
|
|
@@ -8325,7 +8325,7 @@ function handleRefineResult(result, payload, input, inst) {
|
|
|
8325
8325
|
}
|
|
8326
8326
|
}
|
|
8327
8327
|
|
|
8328
|
-
// node_modules/zod/v4/locales/index.js
|
|
8328
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/index.js
|
|
8329
8329
|
var locales_exports = {};
|
|
8330
8330
|
__export(locales_exports, {
|
|
8331
8331
|
ar: () => ar_default,
|
|
@@ -8379,7 +8379,7 @@ __export(locales_exports, {
|
|
|
8379
8379
|
zhTW: () => zh_TW_default
|
|
8380
8380
|
});
|
|
8381
8381
|
|
|
8382
|
-
// node_modules/zod/v4/locales/ar.js
|
|
8382
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/ar.js
|
|
8383
8383
|
var error = () => {
|
|
8384
8384
|
const Sizable = {
|
|
8385
8385
|
string: { unit: "\u062D\u0631\u0641", verb: "\u0623\u0646 \u064A\u062D\u0648\u064A" },
|
|
@@ -8486,7 +8486,7 @@ function ar_default() {
|
|
|
8486
8486
|
};
|
|
8487
8487
|
}
|
|
8488
8488
|
|
|
8489
|
-
// node_modules/zod/v4/locales/az.js
|
|
8489
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/az.js
|
|
8490
8490
|
var error2 = () => {
|
|
8491
8491
|
const Sizable = {
|
|
8492
8492
|
string: { unit: "simvol", verb: "olmal\u0131d\u0131r" },
|
|
@@ -8592,7 +8592,7 @@ function az_default() {
|
|
|
8592
8592
|
};
|
|
8593
8593
|
}
|
|
8594
8594
|
|
|
8595
|
-
// node_modules/zod/v4/locales/be.js
|
|
8595
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/be.js
|
|
8596
8596
|
function getBelarusianPlural(count, one, few, many) {
|
|
8597
8597
|
const absCount = Math.abs(count);
|
|
8598
8598
|
const lastDigit = absCount % 10;
|
|
@@ -8749,7 +8749,7 @@ function be_default() {
|
|
|
8749
8749
|
};
|
|
8750
8750
|
}
|
|
8751
8751
|
|
|
8752
|
-
// node_modules/zod/v4/locales/bg.js
|
|
8752
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/bg.js
|
|
8753
8753
|
var error4 = () => {
|
|
8754
8754
|
const Sizable = {
|
|
8755
8755
|
string: { unit: "\u0441\u0438\u043C\u0432\u043E\u043B\u0430", verb: "\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430" },
|
|
@@ -8870,7 +8870,7 @@ function bg_default() {
|
|
|
8870
8870
|
};
|
|
8871
8871
|
}
|
|
8872
8872
|
|
|
8873
|
-
// node_modules/zod/v4/locales/ca.js
|
|
8873
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/ca.js
|
|
8874
8874
|
var error5 = () => {
|
|
8875
8875
|
const Sizable = {
|
|
8876
8876
|
string: { unit: "car\xE0cters", verb: "contenir" },
|
|
@@ -8979,7 +8979,7 @@ function ca_default() {
|
|
|
8979
8979
|
};
|
|
8980
8980
|
}
|
|
8981
8981
|
|
|
8982
|
-
// node_modules/zod/v4/locales/cs.js
|
|
8982
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/cs.js
|
|
8983
8983
|
var error6 = () => {
|
|
8984
8984
|
const Sizable = {
|
|
8985
8985
|
string: { unit: "znak\u016F", verb: "m\xEDt" },
|
|
@@ -9091,7 +9091,7 @@ function cs_default() {
|
|
|
9091
9091
|
};
|
|
9092
9092
|
}
|
|
9093
9093
|
|
|
9094
|
-
// node_modules/zod/v4/locales/da.js
|
|
9094
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/da.js
|
|
9095
9095
|
var error7 = () => {
|
|
9096
9096
|
const Sizable = {
|
|
9097
9097
|
string: { unit: "tegn", verb: "havde" },
|
|
@@ -9207,7 +9207,7 @@ function da_default() {
|
|
|
9207
9207
|
};
|
|
9208
9208
|
}
|
|
9209
9209
|
|
|
9210
|
-
// node_modules/zod/v4/locales/de.js
|
|
9210
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/de.js
|
|
9211
9211
|
var error8 = () => {
|
|
9212
9212
|
const Sizable = {
|
|
9213
9213
|
string: { unit: "Zeichen", verb: "zu haben" },
|
|
@@ -9316,7 +9316,7 @@ function de_default() {
|
|
|
9316
9316
|
};
|
|
9317
9317
|
}
|
|
9318
9318
|
|
|
9319
|
-
// node_modules/zod/v4/locales/en.js
|
|
9319
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/en.js
|
|
9320
9320
|
var error9 = () => {
|
|
9321
9321
|
const Sizable = {
|
|
9322
9322
|
string: { unit: "characters", verb: "to have" },
|
|
@@ -9425,7 +9425,7 @@ function en_default() {
|
|
|
9425
9425
|
};
|
|
9426
9426
|
}
|
|
9427
9427
|
|
|
9428
|
-
// node_modules/zod/v4/locales/eo.js
|
|
9428
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/eo.js
|
|
9429
9429
|
var error10 = () => {
|
|
9430
9430
|
const Sizable = {
|
|
9431
9431
|
string: { unit: "karaktrojn", verb: "havi" },
|
|
@@ -9535,7 +9535,7 @@ function eo_default() {
|
|
|
9535
9535
|
};
|
|
9536
9536
|
}
|
|
9537
9537
|
|
|
9538
|
-
// node_modules/zod/v4/locales/es.js
|
|
9538
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/es.js
|
|
9539
9539
|
var error11 = () => {
|
|
9540
9540
|
const Sizable = {
|
|
9541
9541
|
string: { unit: "caracteres", verb: "tener" },
|
|
@@ -9668,7 +9668,7 @@ function es_default() {
|
|
|
9668
9668
|
};
|
|
9669
9669
|
}
|
|
9670
9670
|
|
|
9671
|
-
// node_modules/zod/v4/locales/fa.js
|
|
9671
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/fa.js
|
|
9672
9672
|
var error12 = () => {
|
|
9673
9673
|
const Sizable = {
|
|
9674
9674
|
string: { unit: "\u06A9\u0627\u0631\u0627\u06A9\u062A\u0631", verb: "\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F" },
|
|
@@ -9783,7 +9783,7 @@ function fa_default() {
|
|
|
9783
9783
|
};
|
|
9784
9784
|
}
|
|
9785
9785
|
|
|
9786
|
-
// node_modules/zod/v4/locales/fi.js
|
|
9786
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/fi.js
|
|
9787
9787
|
var error13 = () => {
|
|
9788
9788
|
const Sizable = {
|
|
9789
9789
|
string: { unit: "merkki\xE4", subject: "merkkijonon" },
|
|
@@ -9896,7 +9896,7 @@ function fi_default() {
|
|
|
9896
9896
|
};
|
|
9897
9897
|
}
|
|
9898
9898
|
|
|
9899
|
-
// node_modules/zod/v4/locales/fr.js
|
|
9899
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/fr.js
|
|
9900
9900
|
var error14 = () => {
|
|
9901
9901
|
const Sizable = {
|
|
9902
9902
|
string: { unit: "caract\xE8res", verb: "avoir" },
|
|
@@ -10005,7 +10005,7 @@ function fr_default() {
|
|
|
10005
10005
|
};
|
|
10006
10006
|
}
|
|
10007
10007
|
|
|
10008
|
-
// node_modules/zod/v4/locales/fr-CA.js
|
|
10008
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/fr-CA.js
|
|
10009
10009
|
var error15 = () => {
|
|
10010
10010
|
const Sizable = {
|
|
10011
10011
|
string: { unit: "caract\xE8res", verb: "avoir" },
|
|
@@ -10113,7 +10113,7 @@ function fr_CA_default() {
|
|
|
10113
10113
|
};
|
|
10114
10114
|
}
|
|
10115
10115
|
|
|
10116
|
-
// node_modules/zod/v4/locales/he.js
|
|
10116
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/he.js
|
|
10117
10117
|
var error16 = () => {
|
|
10118
10118
|
const TypeNames = {
|
|
10119
10119
|
string: { label: "\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA", gender: "f" },
|
|
@@ -10308,7 +10308,7 @@ function he_default() {
|
|
|
10308
10308
|
};
|
|
10309
10309
|
}
|
|
10310
10310
|
|
|
10311
|
-
// node_modules/zod/v4/locales/hu.js
|
|
10311
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/hu.js
|
|
10312
10312
|
var error17 = () => {
|
|
10313
10313
|
const Sizable = {
|
|
10314
10314
|
string: { unit: "karakter", verb: "legyen" },
|
|
@@ -10417,7 +10417,7 @@ function hu_default() {
|
|
|
10417
10417
|
};
|
|
10418
10418
|
}
|
|
10419
10419
|
|
|
10420
|
-
// node_modules/zod/v4/locales/hy.js
|
|
10420
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/hy.js
|
|
10421
10421
|
function getArmenianPlural(count, one, many) {
|
|
10422
10422
|
return Math.abs(count) === 1 ? one : many;
|
|
10423
10423
|
}
|
|
@@ -10565,7 +10565,7 @@ function hy_default() {
|
|
|
10565
10565
|
};
|
|
10566
10566
|
}
|
|
10567
10567
|
|
|
10568
|
-
// node_modules/zod/v4/locales/id.js
|
|
10568
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/id.js
|
|
10569
10569
|
var error19 = () => {
|
|
10570
10570
|
const Sizable = {
|
|
10571
10571
|
string: { unit: "karakter", verb: "memiliki" },
|
|
@@ -10672,7 +10672,7 @@ function id_default() {
|
|
|
10672
10672
|
};
|
|
10673
10673
|
}
|
|
10674
10674
|
|
|
10675
|
-
// node_modules/zod/v4/locales/is.js
|
|
10675
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/is.js
|
|
10676
10676
|
var error20 = () => {
|
|
10677
10677
|
const Sizable = {
|
|
10678
10678
|
string: { unit: "stafi", verb: "a\xF0 hafa" },
|
|
@@ -10782,7 +10782,7 @@ function is_default() {
|
|
|
10782
10782
|
};
|
|
10783
10783
|
}
|
|
10784
10784
|
|
|
10785
|
-
// node_modules/zod/v4/locales/it.js
|
|
10785
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/it.js
|
|
10786
10786
|
var error21 = () => {
|
|
10787
10787
|
const Sizable = {
|
|
10788
10788
|
string: { unit: "caratteri", verb: "avere" },
|
|
@@ -10891,7 +10891,7 @@ function it_default() {
|
|
|
10891
10891
|
};
|
|
10892
10892
|
}
|
|
10893
10893
|
|
|
10894
|
-
// node_modules/zod/v4/locales/ja.js
|
|
10894
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/ja.js
|
|
10895
10895
|
var error22 = () => {
|
|
10896
10896
|
const Sizable = {
|
|
10897
10897
|
string: { unit: "\u6587\u5B57", verb: "\u3067\u3042\u308B" },
|
|
@@ -10999,7 +10999,7 @@ function ja_default() {
|
|
|
10999
10999
|
};
|
|
11000
11000
|
}
|
|
11001
11001
|
|
|
11002
|
-
// node_modules/zod/v4/locales/ka.js
|
|
11002
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/ka.js
|
|
11003
11003
|
var error23 = () => {
|
|
11004
11004
|
const Sizable = {
|
|
11005
11005
|
string: { unit: "\u10E1\u10D8\u10DB\u10D1\u10DD\u10DA\u10DD", verb: "\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1" },
|
|
@@ -11112,7 +11112,7 @@ function ka_default() {
|
|
|
11112
11112
|
};
|
|
11113
11113
|
}
|
|
11114
11114
|
|
|
11115
|
-
// node_modules/zod/v4/locales/km.js
|
|
11115
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/km.js
|
|
11116
11116
|
var error24 = () => {
|
|
11117
11117
|
const Sizable = {
|
|
11118
11118
|
string: { unit: "\u178F\u17BD\u17A2\u1780\u17D2\u179F\u179A", verb: "\u1782\u17BD\u179A\u1798\u17B6\u1793" },
|
|
@@ -11223,12 +11223,12 @@ function km_default() {
|
|
|
11223
11223
|
};
|
|
11224
11224
|
}
|
|
11225
11225
|
|
|
11226
|
-
// node_modules/zod/v4/locales/kh.js
|
|
11226
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/kh.js
|
|
11227
11227
|
function kh_default() {
|
|
11228
11228
|
return km_default();
|
|
11229
11229
|
}
|
|
11230
11230
|
|
|
11231
|
-
// node_modules/zod/v4/locales/ko.js
|
|
11231
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/ko.js
|
|
11232
11232
|
var error25 = () => {
|
|
11233
11233
|
const Sizable = {
|
|
11234
11234
|
string: { unit: "\uBB38\uC790", verb: "to have" },
|
|
@@ -11340,7 +11340,7 @@ function ko_default() {
|
|
|
11340
11340
|
};
|
|
11341
11341
|
}
|
|
11342
11342
|
|
|
11343
|
-
// node_modules/zod/v4/locales/lt.js
|
|
11343
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/lt.js
|
|
11344
11344
|
var capitalizeFirstCharacter = (text) => {
|
|
11345
11345
|
return text.charAt(0).toUpperCase() + text.slice(1);
|
|
11346
11346
|
};
|
|
@@ -11544,7 +11544,7 @@ function lt_default() {
|
|
|
11544
11544
|
};
|
|
11545
11545
|
}
|
|
11546
11546
|
|
|
11547
|
-
// node_modules/zod/v4/locales/mk.js
|
|
11547
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/mk.js
|
|
11548
11548
|
var error27 = () => {
|
|
11549
11549
|
const Sizable = {
|
|
11550
11550
|
string: { unit: "\u0437\u043D\u0430\u0446\u0438", verb: "\u0434\u0430 \u0438\u043C\u0430\u0430\u0442" },
|
|
@@ -11654,7 +11654,7 @@ function mk_default() {
|
|
|
11654
11654
|
};
|
|
11655
11655
|
}
|
|
11656
11656
|
|
|
11657
|
-
// node_modules/zod/v4/locales/ms.js
|
|
11657
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/ms.js
|
|
11658
11658
|
var error28 = () => {
|
|
11659
11659
|
const Sizable = {
|
|
11660
11660
|
string: { unit: "aksara", verb: "mempunyai" },
|
|
@@ -11762,7 +11762,7 @@ function ms_default() {
|
|
|
11762
11762
|
};
|
|
11763
11763
|
}
|
|
11764
11764
|
|
|
11765
|
-
// node_modules/zod/v4/locales/nl.js
|
|
11765
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/nl.js
|
|
11766
11766
|
var error29 = () => {
|
|
11767
11767
|
const Sizable = {
|
|
11768
11768
|
string: { unit: "tekens", verb: "heeft" },
|
|
@@ -11873,7 +11873,7 @@ function nl_default() {
|
|
|
11873
11873
|
};
|
|
11874
11874
|
}
|
|
11875
11875
|
|
|
11876
|
-
// node_modules/zod/v4/locales/no.js
|
|
11876
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/no.js
|
|
11877
11877
|
var error30 = () => {
|
|
11878
11878
|
const Sizable = {
|
|
11879
11879
|
string: { unit: "tegn", verb: "\xE5 ha" },
|
|
@@ -11982,7 +11982,7 @@ function no_default() {
|
|
|
11982
11982
|
};
|
|
11983
11983
|
}
|
|
11984
11984
|
|
|
11985
|
-
// node_modules/zod/v4/locales/ota.js
|
|
11985
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/ota.js
|
|
11986
11986
|
var error31 = () => {
|
|
11987
11987
|
const Sizable = {
|
|
11988
11988
|
string: { unit: "harf", verb: "olmal\u0131d\u0131r" },
|
|
@@ -12092,7 +12092,7 @@ function ota_default() {
|
|
|
12092
12092
|
};
|
|
12093
12093
|
}
|
|
12094
12094
|
|
|
12095
|
-
// node_modules/zod/v4/locales/ps.js
|
|
12095
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/ps.js
|
|
12096
12096
|
var error32 = () => {
|
|
12097
12097
|
const Sizable = {
|
|
12098
12098
|
string: { unit: "\u062A\u0648\u06A9\u064A", verb: "\u0648\u0644\u0631\u064A" },
|
|
@@ -12207,7 +12207,7 @@ function ps_default() {
|
|
|
12207
12207
|
};
|
|
12208
12208
|
}
|
|
12209
12209
|
|
|
12210
|
-
// node_modules/zod/v4/locales/pl.js
|
|
12210
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/pl.js
|
|
12211
12211
|
var error33 = () => {
|
|
12212
12212
|
const Sizable = {
|
|
12213
12213
|
string: { unit: "znak\xF3w", verb: "mie\u0107" },
|
|
@@ -12317,7 +12317,7 @@ function pl_default() {
|
|
|
12317
12317
|
};
|
|
12318
12318
|
}
|
|
12319
12319
|
|
|
12320
|
-
// node_modules/zod/v4/locales/pt.js
|
|
12320
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/pt.js
|
|
12321
12321
|
var error34 = () => {
|
|
12322
12322
|
const Sizable = {
|
|
12323
12323
|
string: { unit: "caracteres", verb: "ter" },
|
|
@@ -12426,7 +12426,7 @@ function pt_default() {
|
|
|
12426
12426
|
};
|
|
12427
12427
|
}
|
|
12428
12428
|
|
|
12429
|
-
// node_modules/zod/v4/locales/ru.js
|
|
12429
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/ru.js
|
|
12430
12430
|
function getRussianPlural(count, one, few, many) {
|
|
12431
12431
|
const absCount = Math.abs(count);
|
|
12432
12432
|
const lastDigit = absCount % 10;
|
|
@@ -12583,7 +12583,7 @@ function ru_default() {
|
|
|
12583
12583
|
};
|
|
12584
12584
|
}
|
|
12585
12585
|
|
|
12586
|
-
// node_modules/zod/v4/locales/sl.js
|
|
12586
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/sl.js
|
|
12587
12587
|
var error36 = () => {
|
|
12588
12588
|
const Sizable = {
|
|
12589
12589
|
string: { unit: "znakov", verb: "imeti" },
|
|
@@ -12693,7 +12693,7 @@ function sl_default() {
|
|
|
12693
12693
|
};
|
|
12694
12694
|
}
|
|
12695
12695
|
|
|
12696
|
-
// node_modules/zod/v4/locales/sv.js
|
|
12696
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/sv.js
|
|
12697
12697
|
var error37 = () => {
|
|
12698
12698
|
const Sizable = {
|
|
12699
12699
|
string: { unit: "tecken", verb: "att ha" },
|
|
@@ -12804,7 +12804,7 @@ function sv_default() {
|
|
|
12804
12804
|
};
|
|
12805
12805
|
}
|
|
12806
12806
|
|
|
12807
|
-
// node_modules/zod/v4/locales/ta.js
|
|
12807
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/ta.js
|
|
12808
12808
|
var error38 = () => {
|
|
12809
12809
|
const Sizable = {
|
|
12810
12810
|
string: { unit: "\u0B8E\u0BB4\u0BC1\u0BA4\u0BCD\u0BA4\u0BC1\u0B95\u0BCD\u0B95\u0BB3\u0BCD", verb: "\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD" },
|
|
@@ -12915,7 +12915,7 @@ function ta_default() {
|
|
|
12915
12915
|
};
|
|
12916
12916
|
}
|
|
12917
12917
|
|
|
12918
|
-
// node_modules/zod/v4/locales/th.js
|
|
12918
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/th.js
|
|
12919
12919
|
var error39 = () => {
|
|
12920
12920
|
const Sizable = {
|
|
12921
12921
|
string: { unit: "\u0E15\u0E31\u0E27\u0E2D\u0E31\u0E01\u0E29\u0E23", verb: "\u0E04\u0E27\u0E23\u0E21\u0E35" },
|
|
@@ -13026,7 +13026,7 @@ function th_default() {
|
|
|
13026
13026
|
};
|
|
13027
13027
|
}
|
|
13028
13028
|
|
|
13029
|
-
// node_modules/zod/v4/locales/tr.js
|
|
13029
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/tr.js
|
|
13030
13030
|
var error40 = () => {
|
|
13031
13031
|
const Sizable = {
|
|
13032
13032
|
string: { unit: "karakter", verb: "olmal\u0131" },
|
|
@@ -13132,7 +13132,7 @@ function tr_default() {
|
|
|
13132
13132
|
};
|
|
13133
13133
|
}
|
|
13134
13134
|
|
|
13135
|
-
// node_modules/zod/v4/locales/uk.js
|
|
13135
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/uk.js
|
|
13136
13136
|
var error41 = () => {
|
|
13137
13137
|
const Sizable = {
|
|
13138
13138
|
string: { unit: "\u0441\u0438\u043C\u0432\u043E\u043B\u0456\u0432", verb: "\u043C\u0430\u0442\u0438\u043C\u0435" },
|
|
@@ -13241,12 +13241,12 @@ function uk_default() {
|
|
|
13241
13241
|
};
|
|
13242
13242
|
}
|
|
13243
13243
|
|
|
13244
|
-
// node_modules/zod/v4/locales/ua.js
|
|
13244
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/ua.js
|
|
13245
13245
|
function ua_default() {
|
|
13246
13246
|
return uk_default();
|
|
13247
13247
|
}
|
|
13248
13248
|
|
|
13249
|
-
// node_modules/zod/v4/locales/ur.js
|
|
13249
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/ur.js
|
|
13250
13250
|
var error42 = () => {
|
|
13251
13251
|
const Sizable = {
|
|
13252
13252
|
string: { unit: "\u062D\u0631\u0648\u0641", verb: "\u06C1\u0648\u0646\u0627" },
|
|
@@ -13357,7 +13357,7 @@ function ur_default() {
|
|
|
13357
13357
|
};
|
|
13358
13358
|
}
|
|
13359
13359
|
|
|
13360
|
-
// node_modules/zod/v4/locales/uz.js
|
|
13360
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/uz.js
|
|
13361
13361
|
var error43 = () => {
|
|
13362
13362
|
const Sizable = {
|
|
13363
13363
|
string: { unit: "belgi", verb: "bo\u2018lishi kerak" },
|
|
@@ -13467,7 +13467,7 @@ function uz_default() {
|
|
|
13467
13467
|
};
|
|
13468
13468
|
}
|
|
13469
13469
|
|
|
13470
|
-
// node_modules/zod/v4/locales/vi.js
|
|
13470
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/vi.js
|
|
13471
13471
|
var error44 = () => {
|
|
13472
13472
|
const Sizable = {
|
|
13473
13473
|
string: { unit: "k\xFD t\u1EF1", verb: "c\xF3" },
|
|
@@ -13576,7 +13576,7 @@ function vi_default() {
|
|
|
13576
13576
|
};
|
|
13577
13577
|
}
|
|
13578
13578
|
|
|
13579
|
-
// node_modules/zod/v4/locales/zh-CN.js
|
|
13579
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/zh-CN.js
|
|
13580
13580
|
var error45 = () => {
|
|
13581
13581
|
const Sizable = {
|
|
13582
13582
|
string: { unit: "\u5B57\u7B26", verb: "\u5305\u542B" },
|
|
@@ -13686,7 +13686,7 @@ function zh_CN_default() {
|
|
|
13686
13686
|
};
|
|
13687
13687
|
}
|
|
13688
13688
|
|
|
13689
|
-
// node_modules/zod/v4/locales/zh-TW.js
|
|
13689
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/zh-TW.js
|
|
13690
13690
|
var error46 = () => {
|
|
13691
13691
|
const Sizable = {
|
|
13692
13692
|
string: { unit: "\u5B57\u5143", verb: "\u64C1\u6709" },
|
|
@@ -13794,7 +13794,7 @@ function zh_TW_default() {
|
|
|
13794
13794
|
};
|
|
13795
13795
|
}
|
|
13796
13796
|
|
|
13797
|
-
// node_modules/zod/v4/locales/yo.js
|
|
13797
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/locales/yo.js
|
|
13798
13798
|
var error47 = () => {
|
|
13799
13799
|
const Sizable = {
|
|
13800
13800
|
string: { unit: "\xE0mi", verb: "n\xED" },
|
|
@@ -13902,7 +13902,7 @@ function yo_default() {
|
|
|
13902
13902
|
};
|
|
13903
13903
|
}
|
|
13904
13904
|
|
|
13905
|
-
// node_modules/zod/v4/core/registries.js
|
|
13905
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/registries.js
|
|
13906
13906
|
var _a;
|
|
13907
13907
|
var $output = /* @__PURE__ */ Symbol("ZodOutput");
|
|
13908
13908
|
var $input = /* @__PURE__ */ Symbol("ZodInput");
|
|
@@ -13952,7 +13952,7 @@ function registry() {
|
|
|
13952
13952
|
(_a = globalThis).__zod_globalRegistry ?? (_a.__zod_globalRegistry = registry());
|
|
13953
13953
|
var globalRegistry = globalThis.__zod_globalRegistry;
|
|
13954
13954
|
|
|
13955
|
-
// node_modules/zod/v4/core/api.js
|
|
13955
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/api.js
|
|
13956
13956
|
// @__NO_SIDE_EFFECTS__
|
|
13957
13957
|
function _string(Class2, params) {
|
|
13958
13958
|
return new Class2({
|
|
@@ -14991,7 +14991,7 @@ function _stringFormat(Class2, format, fnOrRegex, _params = {}) {
|
|
|
14991
14991
|
return inst;
|
|
14992
14992
|
}
|
|
14993
14993
|
|
|
14994
|
-
// node_modules/zod/v4/core/to-json-schema.js
|
|
14994
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/to-json-schema.js
|
|
14995
14995
|
function initializeContext(params) {
|
|
14996
14996
|
let target = params?.target ?? "draft-2020-12";
|
|
14997
14997
|
if (target === "draft-4")
|
|
@@ -15343,7 +15343,7 @@ var createStandardJSONSchemaMethod = (schema, io, processors = {}) => (params) =
|
|
|
15343
15343
|
return finalize(ctx, schema);
|
|
15344
15344
|
};
|
|
15345
15345
|
|
|
15346
|
-
// node_modules/zod/v4/core/json-schema-processors.js
|
|
15346
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/json-schema-processors.js
|
|
15347
15347
|
var formatMap = {
|
|
15348
15348
|
guid: "uuid",
|
|
15349
15349
|
url: "uri",
|
|
@@ -15894,7 +15894,7 @@ function toJSONSchema(input, params) {
|
|
|
15894
15894
|
return finalize(ctx, input);
|
|
15895
15895
|
}
|
|
15896
15896
|
|
|
15897
|
-
// node_modules/zod/v4/core/json-schema-generator.js
|
|
15897
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/json-schema-generator.js
|
|
15898
15898
|
var JSONSchemaGenerator = class {
|
|
15899
15899
|
/** @deprecated Access via ctx instead */
|
|
15900
15900
|
get metadataRegistry() {
|
|
@@ -15969,10 +15969,10 @@ var JSONSchemaGenerator = class {
|
|
|
15969
15969
|
}
|
|
15970
15970
|
};
|
|
15971
15971
|
|
|
15972
|
-
// node_modules/zod/v4/core/json-schema.js
|
|
15972
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/json-schema.js
|
|
15973
15973
|
var json_schema_exports = {};
|
|
15974
15974
|
|
|
15975
|
-
// node_modules/zod/v4/classic/schemas.js
|
|
15975
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/classic/schemas.js
|
|
15976
15976
|
var schemas_exports2 = {};
|
|
15977
15977
|
__export(schemas_exports2, {
|
|
15978
15978
|
ZodAny: () => ZodAny,
|
|
@@ -16141,7 +16141,7 @@ __export(schemas_exports2, {
|
|
|
16141
16141
|
xor: () => xor
|
|
16142
16142
|
});
|
|
16143
16143
|
|
|
16144
|
-
// node_modules/zod/v4/classic/checks.js
|
|
16144
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/classic/checks.js
|
|
16145
16145
|
var checks_exports2 = {};
|
|
16146
16146
|
__export(checks_exports2, {
|
|
16147
16147
|
endsWith: () => _endsWith,
|
|
@@ -16175,7 +16175,7 @@ __export(checks_exports2, {
|
|
|
16175
16175
|
uppercase: () => _uppercase
|
|
16176
16176
|
});
|
|
16177
16177
|
|
|
16178
|
-
// node_modules/zod/v4/classic/iso.js
|
|
16178
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/classic/iso.js
|
|
16179
16179
|
var iso_exports = {};
|
|
16180
16180
|
__export(iso_exports, {
|
|
16181
16181
|
ZodISODate: () => ZodISODate,
|
|
@@ -16216,7 +16216,7 @@ function duration2(params) {
|
|
|
16216
16216
|
return _isoDuration(ZodISODuration, params);
|
|
16217
16217
|
}
|
|
16218
16218
|
|
|
16219
|
-
// node_modules/zod/v4/classic/errors.js
|
|
16219
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/classic/errors.js
|
|
16220
16220
|
var initializer2 = (inst, issues) => {
|
|
16221
16221
|
$ZodError.init(inst, issues);
|
|
16222
16222
|
inst.name = "ZodError";
|
|
@@ -16256,7 +16256,7 @@ var ZodRealError = $constructor("ZodError", initializer2, {
|
|
|
16256
16256
|
Parent: Error
|
|
16257
16257
|
});
|
|
16258
16258
|
|
|
16259
|
-
// node_modules/zod/v4/classic/parse.js
|
|
16259
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/classic/parse.js
|
|
16260
16260
|
var parse2 = /* @__PURE__ */ _parse(ZodRealError);
|
|
16261
16261
|
var parseAsync2 = /* @__PURE__ */ _parseAsync(ZodRealError);
|
|
16262
16262
|
var safeParse2 = /* @__PURE__ */ _safeParse(ZodRealError);
|
|
@@ -16270,7 +16270,7 @@ var safeDecode2 = /* @__PURE__ */ _safeDecode(ZodRealError);
|
|
|
16270
16270
|
var safeEncodeAsync2 = /* @__PURE__ */ _safeEncodeAsync(ZodRealError);
|
|
16271
16271
|
var safeDecodeAsync2 = /* @__PURE__ */ _safeDecodeAsync(ZodRealError);
|
|
16272
16272
|
|
|
16273
|
-
// node_modules/zod/v4/classic/schemas.js
|
|
16273
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/classic/schemas.js
|
|
16274
16274
|
var ZodType = /* @__PURE__ */ $constructor("ZodType", (inst, def) => {
|
|
16275
16275
|
$ZodType.init(inst, def);
|
|
16276
16276
|
Object.assign(inst["~standard"], {
|
|
@@ -17349,7 +17349,7 @@ function preprocess(fn, schema) {
|
|
|
17349
17349
|
return pipe(transform(fn), schema);
|
|
17350
17350
|
}
|
|
17351
17351
|
|
|
17352
|
-
// node_modules/zod/v4/classic/compat.js
|
|
17352
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/classic/compat.js
|
|
17353
17353
|
var ZodIssueCode = {
|
|
17354
17354
|
invalid_type: "invalid_type",
|
|
17355
17355
|
too_big: "too_big",
|
|
@@ -17375,7 +17375,7 @@ var ZodFirstPartyTypeKind;
|
|
|
17375
17375
|
/* @__PURE__ */ (function(ZodFirstPartyTypeKind2) {
|
|
17376
17376
|
})(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));
|
|
17377
17377
|
|
|
17378
|
-
// node_modules/zod/v4/classic/from-json-schema.js
|
|
17378
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/classic/from-json-schema.js
|
|
17379
17379
|
var z = {
|
|
17380
17380
|
...schemas_exports2,
|
|
17381
17381
|
...checks_exports2,
|
|
@@ -17849,7 +17849,7 @@ function fromJSONSchema(schema, params) {
|
|
|
17849
17849
|
return convertSchema(schema, ctx);
|
|
17850
17850
|
}
|
|
17851
17851
|
|
|
17852
|
-
// node_modules/zod/v4/classic/coerce.js
|
|
17852
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/classic/coerce.js
|
|
17853
17853
|
var coerce_exports = {};
|
|
17854
17854
|
__export(coerce_exports, {
|
|
17855
17855
|
bigint: () => bigint3,
|
|
@@ -17874,7 +17874,7 @@ function date4(params) {
|
|
|
17874
17874
|
return _coercedDate(ZodDate, params);
|
|
17875
17875
|
}
|
|
17876
17876
|
|
|
17877
|
-
// node_modules/zod/v4/classic/external.js
|
|
17877
|
+
// node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/classic/external.js
|
|
17878
17878
|
config(en_default());
|
|
17879
17879
|
|
|
17880
17880
|
// src/schema/zod-schema.ts
|
|
@@ -17897,8 +17897,7 @@ import {
|
|
|
17897
17897
|
svgTransformSchema,
|
|
17898
17898
|
svgGradientStopSchema,
|
|
17899
17899
|
richCaptionActiveSchema as baseCaptionActiveSchema,
|
|
17900
|
-
richCaptionWordAnimationSchema as baseCaptionWordAnimationSchema
|
|
17901
|
-
wordTimingSchema as baseWordTimingSchema
|
|
17900
|
+
richCaptionWordAnimationSchema as baseCaptionWordAnimationSchema
|
|
17902
17901
|
} from "@shotstack/schemas/zod";
|
|
17903
17902
|
|
|
17904
17903
|
// src/config/canvas-constants.ts
|
|
@@ -18055,7 +18054,7 @@ var CanvasRichTextAssetSchema = richTextAssetSchema.extend({
|
|
|
18055
18054
|
customFonts: external_exports.array(customFontSchema).optional()
|
|
18056
18055
|
}).strict();
|
|
18057
18056
|
var CanvasSvgAssetSchema = svgAssetSchema;
|
|
18058
|
-
var wordTimingSchema =
|
|
18057
|
+
var wordTimingSchema = external_exports.object({
|
|
18059
18058
|
text: external_exports.string().min(1),
|
|
18060
18059
|
start: external_exports.number().min(0),
|
|
18061
18060
|
end: external_exports.number().min(0),
|
|
@@ -18096,27 +18095,18 @@ var richCaptionAssetSchema = external_exports.object({
|
|
|
18096
18095
|
stroke: canvasStrokeSchema.optional(),
|
|
18097
18096
|
shadow: canvasShadowSchema.optional(),
|
|
18098
18097
|
background: canvasBackgroundSchema.optional(),
|
|
18098
|
+
border: borderSchema.optional(),
|
|
18099
18099
|
padding: paddingSchema.optional(),
|
|
18100
18100
|
align: canvasAlignmentSchema.optional(),
|
|
18101
18101
|
active: richCaptionActiveSchema.optional(),
|
|
18102
18102
|
wordAnimation: richCaptionWordAnimationSchema.optional(),
|
|
18103
|
-
position: external_exports.enum(["top", "center", "bottom"]).default("bottom"),
|
|
18104
|
-
maxWidth: external_exports.number().min(0.1).max(1).default(0.9),
|
|
18105
|
-
maxLines: external_exports.number().int().min(1).max(10).default(2),
|
|
18106
18103
|
customFonts: external_exports.array(customFontSchema).optional()
|
|
18107
18104
|
}).superRefine((data, ctx) => {
|
|
18108
|
-
if (data.src && data.words) {
|
|
18109
|
-
ctx.addIssue({
|
|
18110
|
-
code: external_exports.ZodIssueCode.custom,
|
|
18111
|
-
message: "src and words are mutually exclusive",
|
|
18112
|
-
path: ["src"]
|
|
18113
|
-
});
|
|
18114
|
-
}
|
|
18115
18105
|
if (!data.src && !data.words) {
|
|
18116
18106
|
ctx.addIssue({
|
|
18117
18107
|
code: external_exports.ZodIssueCode.custom,
|
|
18118
18108
|
message: "Either src or words must be provided",
|
|
18119
|
-
path: ["
|
|
18109
|
+
path: ["src"]
|
|
18120
18110
|
});
|
|
18121
18111
|
}
|
|
18122
18112
|
});
|
|
@@ -18300,10 +18290,10 @@ async function initHB(wasmBaseURL) {
|
|
|
18300
18290
|
}
|
|
18301
18291
|
};
|
|
18302
18292
|
}
|
|
18303
|
-
const hbModule = await import("./hb-
|
|
18293
|
+
const hbModule = await import("./hb-HSWG3Q47.js");
|
|
18304
18294
|
const hbFactory = hbModule.default || hbModule;
|
|
18305
18295
|
const hbInstance = await hbFactory({ wasmBinary });
|
|
18306
|
-
const hbjsModule = await import("./hbjs-
|
|
18296
|
+
const hbjsModule = await import("./hbjs-VGYWXH44.js");
|
|
18307
18297
|
const hbjsWrapper = hbjsModule.default || hbjsModule;
|
|
18308
18298
|
const hb = hbjsWrapper(hbInstance);
|
|
18309
18299
|
if (!hb || typeof hb.createBuffer !== "function" || typeof hb.createFont !== "function") {
|
|
@@ -18319,7 +18309,7 @@ async function initHB(wasmBaseURL) {
|
|
|
18319
18309
|
}
|
|
18320
18310
|
}
|
|
18321
18311
|
|
|
18322
|
-
// node_modules/restructure/src/DecodeStream.js
|
|
18312
|
+
// node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/DecodeStream.js
|
|
18323
18313
|
var ENCODING_MAPPING = {
|
|
18324
18314
|
utf16le: "utf-16le",
|
|
18325
18315
|
ucs2: "utf-16le",
|
|
@@ -18394,7 +18384,7 @@ for (let key of Object.getOwnPropertyNames(DataView.prototype)) {
|
|
|
18394
18384
|
}
|
|
18395
18385
|
}
|
|
18396
18386
|
|
|
18397
|
-
// node_modules/restructure/src/EncodeStream.js
|
|
18387
|
+
// node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/EncodeStream.js
|
|
18398
18388
|
var textEncoder = new TextEncoder();
|
|
18399
18389
|
var isBigEndian = new Uint8Array(new Uint16Array([4660]).buffer)[0] == 18;
|
|
18400
18390
|
var EncodeStream = class {
|
|
@@ -18505,7 +18495,7 @@ for (let key of Object.getOwnPropertyNames(DataView.prototype)) {
|
|
|
18505
18495
|
}
|
|
18506
18496
|
}
|
|
18507
18497
|
|
|
18508
|
-
// node_modules/restructure/src/Base.js
|
|
18498
|
+
// node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/Base.js
|
|
18509
18499
|
var Base = class {
|
|
18510
18500
|
fromBuffer(buffer) {
|
|
18511
18501
|
let stream = new DecodeStream(buffer);
|
|
@@ -18520,7 +18510,7 @@ var Base = class {
|
|
|
18520
18510
|
}
|
|
18521
18511
|
};
|
|
18522
18512
|
|
|
18523
|
-
// node_modules/restructure/src/Number.js
|
|
18513
|
+
// node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/Number.js
|
|
18524
18514
|
var NumberT = class extends Base {
|
|
18525
18515
|
constructor(type, endian = "BE") {
|
|
18526
18516
|
super();
|
|
@@ -18583,7 +18573,7 @@ var fixed32be = new Fixed(32, "BE");
|
|
|
18583
18573
|
var fixed32 = fixed32be;
|
|
18584
18574
|
var fixed32le = new Fixed(32, "LE");
|
|
18585
18575
|
|
|
18586
|
-
// node_modules/restructure/src/utils.js
|
|
18576
|
+
// node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/utils.js
|
|
18587
18577
|
function resolveLength(length, stream, parent) {
|
|
18588
18578
|
let res;
|
|
18589
18579
|
if (typeof length === "number") {
|
|
@@ -18611,7 +18601,7 @@ var PropertyDescriptor = class {
|
|
|
18611
18601
|
}
|
|
18612
18602
|
};
|
|
18613
18603
|
|
|
18614
|
-
// node_modules/restructure/src/Array.js
|
|
18604
|
+
// node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/Array.js
|
|
18615
18605
|
var ArrayT = class extends Base {
|
|
18616
18606
|
constructor(type, length, lengthType = "count") {
|
|
18617
18607
|
super();
|
|
@@ -18689,7 +18679,7 @@ var ArrayT = class extends Base {
|
|
|
18689
18679
|
}
|
|
18690
18680
|
};
|
|
18691
18681
|
|
|
18692
|
-
// node_modules/restructure/src/LazyArray.js
|
|
18682
|
+
// node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/LazyArray.js
|
|
18693
18683
|
var LazyArray = class extends ArrayT {
|
|
18694
18684
|
decode(stream, parent) {
|
|
18695
18685
|
const { pos } = stream;
|
|
@@ -18749,7 +18739,7 @@ var LazyArrayValue = class {
|
|
|
18749
18739
|
}
|
|
18750
18740
|
};
|
|
18751
18741
|
|
|
18752
|
-
// node_modules/restructure/src/Bitfield.js
|
|
18742
|
+
// node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/Bitfield.js
|
|
18753
18743
|
var Bitfield = class extends Base {
|
|
18754
18744
|
constructor(type, flags = []) {
|
|
18755
18745
|
super();
|
|
@@ -18784,7 +18774,7 @@ var Bitfield = class extends Base {
|
|
|
18784
18774
|
}
|
|
18785
18775
|
};
|
|
18786
18776
|
|
|
18787
|
-
// node_modules/restructure/src/Buffer.js
|
|
18777
|
+
// node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/Buffer.js
|
|
18788
18778
|
var BufferT = class extends Base {
|
|
18789
18779
|
constructor(length) {
|
|
18790
18780
|
super();
|
|
@@ -18812,7 +18802,7 @@ var BufferT = class extends Base {
|
|
|
18812
18802
|
}
|
|
18813
18803
|
};
|
|
18814
18804
|
|
|
18815
|
-
// node_modules/restructure/src/Optional.js
|
|
18805
|
+
// node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/Optional.js
|
|
18816
18806
|
var Optional = class extends Base {
|
|
18817
18807
|
constructor(type, condition = true) {
|
|
18818
18808
|
super();
|
|
@@ -18850,7 +18840,7 @@ var Optional = class extends Base {
|
|
|
18850
18840
|
}
|
|
18851
18841
|
};
|
|
18852
18842
|
|
|
18853
|
-
// node_modules/restructure/src/Reserved.js
|
|
18843
|
+
// node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/Reserved.js
|
|
18854
18844
|
var Reserved = class extends Base {
|
|
18855
18845
|
constructor(type, count = 1) {
|
|
18856
18846
|
super();
|
|
@@ -18870,7 +18860,7 @@ var Reserved = class extends Base {
|
|
|
18870
18860
|
}
|
|
18871
18861
|
};
|
|
18872
18862
|
|
|
18873
|
-
// node_modules/restructure/src/String.js
|
|
18863
|
+
// node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/String.js
|
|
18874
18864
|
var StringT = class extends Base {
|
|
18875
18865
|
constructor(length, encoding = "ascii") {
|
|
18876
18866
|
super();
|
|
@@ -18989,7 +18979,7 @@ function byteLength(string4, encoding) {
|
|
|
18989
18979
|
}
|
|
18990
18980
|
}
|
|
18991
18981
|
|
|
18992
|
-
// node_modules/restructure/src/Struct.js
|
|
18982
|
+
// node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/Struct.js
|
|
18993
18983
|
var Struct = class extends Base {
|
|
18994
18984
|
constructor(fields = {}) {
|
|
18995
18985
|
super();
|
|
@@ -19083,7 +19073,7 @@ var Struct = class extends Base {
|
|
|
19083
19073
|
}
|
|
19084
19074
|
};
|
|
19085
19075
|
|
|
19086
|
-
// node_modules/restructure/src/VersionedStruct.js
|
|
19076
|
+
// node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/VersionedStruct.js
|
|
19087
19077
|
var getPath = (object2, pathArray) => {
|
|
19088
19078
|
return pathArray.reduce((prevObj, key) => prevObj && prevObj[key], object2);
|
|
19089
19079
|
};
|
|
@@ -19198,7 +19188,7 @@ var VersionedStruct = class _VersionedStruct extends Struct {
|
|
|
19198
19188
|
}
|
|
19199
19189
|
};
|
|
19200
19190
|
|
|
19201
|
-
// node_modules/restructure/src/Pointer.js
|
|
19191
|
+
// node_modules/.pnpm/restructure@3.0.2/node_modules/restructure/src/Pointer.js
|
|
19202
19192
|
var Pointer = class extends Base {
|
|
19203
19193
|
constructor(offsetType, type, options = {}) {
|
|
19204
19194
|
super();
|
|
@@ -19355,7 +19345,7 @@ var VoidPointer = class {
|
|
|
19355
19345
|
}
|
|
19356
19346
|
};
|
|
19357
19347
|
|
|
19358
|
-
// node_modules/@swc/helpers/esm/_define_property.js
|
|
19348
|
+
// node_modules/.pnpm/@swc+helpers@0.5.19/node_modules/@swc/helpers/esm/_define_property.js
|
|
19359
19349
|
function _define_property(obj, key, value) {
|
|
19360
19350
|
if (key in obj) {
|
|
19361
19351
|
Object.defineProperty(obj, key, { value, enumerable: true, configurable: true, writable: true });
|
|
@@ -19363,7 +19353,7 @@ function _define_property(obj, key, value) {
|
|
|
19363
19353
|
return obj;
|
|
19364
19354
|
}
|
|
19365
19355
|
|
|
19366
|
-
// node_modules/tslib/tslib.es6.mjs
|
|
19356
|
+
// node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/tslib.es6.mjs
|
|
19367
19357
|
function __decorate(decorators, target, key, desc) {
|
|
19368
19358
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
19369
19359
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -19371,10 +19361,10 @@ function __decorate(decorators, target, key, desc) {
|
|
|
19371
19361
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
19372
19362
|
}
|
|
19373
19363
|
|
|
19374
|
-
// node_modules/fontkit/dist/browser-module.mjs
|
|
19364
|
+
// node_modules/.pnpm/fontkit@2.0.4/node_modules/fontkit/dist/browser-module.mjs
|
|
19375
19365
|
var import_fast_deep_equal = __toESM(require_fast_deep_equal(), 1);
|
|
19376
19366
|
|
|
19377
|
-
// node_modules/unicode-properties/dist/module.mjs
|
|
19367
|
+
// node_modules/.pnpm/unicode-properties@1.4.1/node_modules/unicode-properties/dist/module.mjs
|
|
19378
19368
|
var import_base64_js = __toESM(require_base64_js(), 1);
|
|
19379
19369
|
var import_unicode_trie = __toESM(require_unicode_trie(), 1);
|
|
19380
19370
|
function $parcel$interopDefault(a) {
|
|
@@ -19418,7 +19408,7 @@ function $747425b437e121da$export$e33ad6871e762338(codePoint) {
|
|
|
19418
19408
|
return category === "Mn" || category === "Me" || category === "Mc";
|
|
19419
19409
|
}
|
|
19420
19410
|
|
|
19421
|
-
// node_modules/fontkit/dist/browser-module.mjs
|
|
19411
|
+
// node_modules/.pnpm/fontkit@2.0.4/node_modules/fontkit/dist/browser-module.mjs
|
|
19422
19412
|
var import_unicode_trie2 = __toESM(require_unicode_trie(), 1);
|
|
19423
19413
|
var import_dfa = __toESM(require_dfa(), 1);
|
|
19424
19414
|
var import_clone = __toESM(require_clone(), 1);
|
|
@@ -33280,6 +33270,589 @@ function parseHex6(hex3, alpha = 1) {
|
|
|
33280
33270
|
return { r, g, b, a: alpha };
|
|
33281
33271
|
}
|
|
33282
33272
|
|
|
33273
|
+
// src/core/rich-caption-animator.ts
|
|
33274
|
+
var ANIMATION_DURATIONS = {
|
|
33275
|
+
karaoke: 0,
|
|
33276
|
+
highlight: 0,
|
|
33277
|
+
pop: 200,
|
|
33278
|
+
fade: 150,
|
|
33279
|
+
slide: 250,
|
|
33280
|
+
bounce: 400,
|
|
33281
|
+
typewriter: 0,
|
|
33282
|
+
none: 0
|
|
33283
|
+
};
|
|
33284
|
+
var DEFAULT_ANIMATION_STATE = {
|
|
33285
|
+
opacity: 1,
|
|
33286
|
+
scale: 1,
|
|
33287
|
+
translateX: 0,
|
|
33288
|
+
translateY: 0,
|
|
33289
|
+
fillProgress: 1,
|
|
33290
|
+
isActive: false,
|
|
33291
|
+
visibleCharacters: -1
|
|
33292
|
+
};
|
|
33293
|
+
function easeOutQuad2(t) {
|
|
33294
|
+
return t * (2 - t);
|
|
33295
|
+
}
|
|
33296
|
+
function easeInOutQuad(t) {
|
|
33297
|
+
return t < 0.5 ? 2 * t * t : 1 - Math.pow(-2 * t + 2, 2) / 2;
|
|
33298
|
+
}
|
|
33299
|
+
function easeOutBack(t) {
|
|
33300
|
+
const c1 = 1.70158;
|
|
33301
|
+
const c3 = c1 + 1;
|
|
33302
|
+
return 1 + c3 * Math.pow(t - 1, 3) + c1 * Math.pow(t - 1, 2);
|
|
33303
|
+
}
|
|
33304
|
+
function easeOutCirc(t) {
|
|
33305
|
+
return Math.sqrt(1 - Math.pow(t - 1, 2));
|
|
33306
|
+
}
|
|
33307
|
+
function easeOutBounce(t) {
|
|
33308
|
+
const n1 = 7.5625;
|
|
33309
|
+
const d1 = 2.75;
|
|
33310
|
+
if (t < 1 / d1) {
|
|
33311
|
+
return n1 * t * t;
|
|
33312
|
+
}
|
|
33313
|
+
if (t < 2 / d1) {
|
|
33314
|
+
return n1 * (t -= 1.5 / d1) * t + 0.75;
|
|
33315
|
+
}
|
|
33316
|
+
if (t < 2.5 / d1) {
|
|
33317
|
+
return n1 * (t -= 2.25 / d1) * t + 0.9375;
|
|
33318
|
+
}
|
|
33319
|
+
return n1 * (t -= 2.625 / d1) * t + 0.984375;
|
|
33320
|
+
}
|
|
33321
|
+
function clamp(value, min, max) {
|
|
33322
|
+
return Math.min(Math.max(value, min), max);
|
|
33323
|
+
}
|
|
33324
|
+
function calculateAnimationProgress(ctx) {
|
|
33325
|
+
if (ctx.animationDuration <= 0) {
|
|
33326
|
+
return ctx.currentTime >= ctx.wordStart ? 1 : 0;
|
|
33327
|
+
}
|
|
33328
|
+
const elapsed = ctx.currentTime - ctx.wordStart;
|
|
33329
|
+
return clamp(elapsed / ctx.animationDuration, 0, 1);
|
|
33330
|
+
}
|
|
33331
|
+
function calculateWordProgress(ctx) {
|
|
33332
|
+
const duration3 = ctx.wordEnd - ctx.wordStart;
|
|
33333
|
+
if (duration3 <= 0) {
|
|
33334
|
+
return ctx.currentTime >= ctx.wordStart ? 1 : 0;
|
|
33335
|
+
}
|
|
33336
|
+
const elapsed = ctx.currentTime - ctx.wordStart;
|
|
33337
|
+
return clamp(elapsed / duration3, 0, 1);
|
|
33338
|
+
}
|
|
33339
|
+
function isWordActive(ctx) {
|
|
33340
|
+
return ctx.currentTime >= ctx.wordStart && ctx.currentTime < ctx.wordEnd;
|
|
33341
|
+
}
|
|
33342
|
+
function calculateKaraokeState(ctx, speed) {
|
|
33343
|
+
const isActive = isWordActive(ctx);
|
|
33344
|
+
const wordDuration = ctx.wordEnd - ctx.wordStart;
|
|
33345
|
+
const adjustedDuration = wordDuration / speed;
|
|
33346
|
+
const adjustedEnd = ctx.wordStart + adjustedDuration;
|
|
33347
|
+
const adjustedCtx = { ...ctx, wordEnd: adjustedEnd };
|
|
33348
|
+
if (ctx.currentTime < ctx.wordStart) {
|
|
33349
|
+
return {
|
|
33350
|
+
fillProgress: 0,
|
|
33351
|
+
isActive: false,
|
|
33352
|
+
opacity: 1
|
|
33353
|
+
};
|
|
33354
|
+
}
|
|
33355
|
+
if (ctx.currentTime >= adjustedEnd) {
|
|
33356
|
+
return {
|
|
33357
|
+
fillProgress: 1,
|
|
33358
|
+
isActive: false,
|
|
33359
|
+
opacity: 1
|
|
33360
|
+
};
|
|
33361
|
+
}
|
|
33362
|
+
return {
|
|
33363
|
+
fillProgress: calculateWordProgress(adjustedCtx),
|
|
33364
|
+
isActive,
|
|
33365
|
+
opacity: 1
|
|
33366
|
+
};
|
|
33367
|
+
}
|
|
33368
|
+
function calculateHighlightState(ctx) {
|
|
33369
|
+
const isActive = isWordActive(ctx);
|
|
33370
|
+
return {
|
|
33371
|
+
isActive,
|
|
33372
|
+
fillProgress: isActive ? 1 : 0,
|
|
33373
|
+
opacity: 1
|
|
33374
|
+
};
|
|
33375
|
+
}
|
|
33376
|
+
function calculatePopState(ctx, activeScale, speed) {
|
|
33377
|
+
if (ctx.currentTime < ctx.wordStart) {
|
|
33378
|
+
return {
|
|
33379
|
+
scale: 0.5,
|
|
33380
|
+
opacity: 0,
|
|
33381
|
+
isActive: false
|
|
33382
|
+
};
|
|
33383
|
+
}
|
|
33384
|
+
const adjustedDuration = ctx.animationDuration / speed;
|
|
33385
|
+
const adjustedCtx = { ...ctx, animationDuration: adjustedDuration };
|
|
33386
|
+
const progress = calculateAnimationProgress(adjustedCtx);
|
|
33387
|
+
const easedProgress = easeOutBack(progress);
|
|
33388
|
+
const startScale = 0.5;
|
|
33389
|
+
const endScale = isWordActive(ctx) ? activeScale : 1;
|
|
33390
|
+
const scale = startScale + (endScale - startScale) * easedProgress;
|
|
33391
|
+
return {
|
|
33392
|
+
scale: Math.min(scale, activeScale),
|
|
33393
|
+
opacity: easedProgress,
|
|
33394
|
+
isActive: isWordActive(ctx)
|
|
33395
|
+
};
|
|
33396
|
+
}
|
|
33397
|
+
function calculateFadeState(ctx, speed) {
|
|
33398
|
+
if (ctx.currentTime < ctx.wordStart) {
|
|
33399
|
+
return {
|
|
33400
|
+
opacity: 0,
|
|
33401
|
+
isActive: false
|
|
33402
|
+
};
|
|
33403
|
+
}
|
|
33404
|
+
const adjustedDuration = ctx.animationDuration / speed;
|
|
33405
|
+
const adjustedCtx = { ...ctx, animationDuration: adjustedDuration };
|
|
33406
|
+
const progress = calculateAnimationProgress(adjustedCtx);
|
|
33407
|
+
const easedProgress = easeInOutQuad(progress);
|
|
33408
|
+
return {
|
|
33409
|
+
opacity: easedProgress,
|
|
33410
|
+
isActive: isWordActive(ctx)
|
|
33411
|
+
};
|
|
33412
|
+
}
|
|
33413
|
+
function calculateSlideState(ctx, direction, speed, fontSize) {
|
|
33414
|
+
const slideDistance = fontSize * 1.5;
|
|
33415
|
+
if (ctx.currentTime < ctx.wordStart) {
|
|
33416
|
+
const offset2 = getDirectionOffset(direction, slideDistance);
|
|
33417
|
+
return {
|
|
33418
|
+
translateX: offset2.x,
|
|
33419
|
+
translateY: offset2.y,
|
|
33420
|
+
opacity: 0,
|
|
33421
|
+
isActive: false
|
|
33422
|
+
};
|
|
33423
|
+
}
|
|
33424
|
+
const adjustedDuration = ctx.animationDuration / speed;
|
|
33425
|
+
const adjustedCtx = { ...ctx, animationDuration: adjustedDuration };
|
|
33426
|
+
const progress = calculateAnimationProgress(adjustedCtx);
|
|
33427
|
+
const easedProgress = easeOutCirc(progress);
|
|
33428
|
+
const offset = getDirectionOffset(direction, slideDistance);
|
|
33429
|
+
const translateX = offset.x * (1 - easedProgress);
|
|
33430
|
+
const translateY = offset.y * (1 - easedProgress);
|
|
33431
|
+
return {
|
|
33432
|
+
translateX,
|
|
33433
|
+
translateY,
|
|
33434
|
+
opacity: easeOutQuad2(progress),
|
|
33435
|
+
isActive: isWordActive(ctx)
|
|
33436
|
+
};
|
|
33437
|
+
}
|
|
33438
|
+
function getDirectionOffset(direction, distance) {
|
|
33439
|
+
switch (direction) {
|
|
33440
|
+
case "left":
|
|
33441
|
+
return { x: -distance, y: 0 };
|
|
33442
|
+
case "right":
|
|
33443
|
+
return { x: distance, y: 0 };
|
|
33444
|
+
case "up":
|
|
33445
|
+
return { x: 0, y: -distance };
|
|
33446
|
+
case "down":
|
|
33447
|
+
return { x: 0, y: distance };
|
|
33448
|
+
}
|
|
33449
|
+
}
|
|
33450
|
+
function calculateBounceState(ctx, speed, fontSize) {
|
|
33451
|
+
const bounceDistance = fontSize * 0.8;
|
|
33452
|
+
if (ctx.currentTime < ctx.wordStart) {
|
|
33453
|
+
return {
|
|
33454
|
+
translateY: -bounceDistance,
|
|
33455
|
+
opacity: 0,
|
|
33456
|
+
isActive: false
|
|
33457
|
+
};
|
|
33458
|
+
}
|
|
33459
|
+
const adjustedDuration = ctx.animationDuration / speed;
|
|
33460
|
+
const adjustedCtx = { ...ctx, animationDuration: adjustedDuration };
|
|
33461
|
+
const progress = calculateAnimationProgress(adjustedCtx);
|
|
33462
|
+
const easedProgress = easeOutBounce(progress);
|
|
33463
|
+
return {
|
|
33464
|
+
translateY: -bounceDistance * (1 - easedProgress),
|
|
33465
|
+
opacity: easeOutQuad2(progress),
|
|
33466
|
+
isActive: isWordActive(ctx)
|
|
33467
|
+
};
|
|
33468
|
+
}
|
|
33469
|
+
function calculateTypewriterState(ctx, charCount, speed) {
|
|
33470
|
+
const wordDuration = ctx.wordEnd - ctx.wordStart;
|
|
33471
|
+
const adjustedDuration = wordDuration / speed;
|
|
33472
|
+
const adjustedEnd = ctx.wordStart + adjustedDuration;
|
|
33473
|
+
const adjustedCtx = { ...ctx, wordEnd: adjustedEnd };
|
|
33474
|
+
if (ctx.currentTime < ctx.wordStart) {
|
|
33475
|
+
return {
|
|
33476
|
+
visibleCharacters: 0,
|
|
33477
|
+
opacity: 1,
|
|
33478
|
+
isActive: false
|
|
33479
|
+
};
|
|
33480
|
+
}
|
|
33481
|
+
if (ctx.currentTime >= adjustedEnd) {
|
|
33482
|
+
return {
|
|
33483
|
+
visibleCharacters: charCount,
|
|
33484
|
+
opacity: 1,
|
|
33485
|
+
isActive: false
|
|
33486
|
+
};
|
|
33487
|
+
}
|
|
33488
|
+
const progress = calculateWordProgress(adjustedCtx);
|
|
33489
|
+
const visibleCharacters = Math.ceil(progress * charCount);
|
|
33490
|
+
return {
|
|
33491
|
+
visibleCharacters: clamp(visibleCharacters, 0, charCount),
|
|
33492
|
+
opacity: 1,
|
|
33493
|
+
isActive: isWordActive(ctx)
|
|
33494
|
+
};
|
|
33495
|
+
}
|
|
33496
|
+
function calculateNoneState(ctx) {
|
|
33497
|
+
return {
|
|
33498
|
+
opacity: 1,
|
|
33499
|
+
isActive: isWordActive(ctx)
|
|
33500
|
+
};
|
|
33501
|
+
}
|
|
33502
|
+
function calculateWordAnimationState(wordStart, wordEnd, currentTime, config2, activeScale = 1, charCount = 0, fontSize = 48) {
|
|
33503
|
+
const safeSpeed = config2.speed > 0 ? config2.speed : 1;
|
|
33504
|
+
const ctx = {
|
|
33505
|
+
wordStart,
|
|
33506
|
+
wordEnd,
|
|
33507
|
+
currentTime,
|
|
33508
|
+
animationDuration: ANIMATION_DURATIONS[config2.style]
|
|
33509
|
+
};
|
|
33510
|
+
const baseState = { ...DEFAULT_ANIMATION_STATE };
|
|
33511
|
+
let partialState;
|
|
33512
|
+
switch (config2.style) {
|
|
33513
|
+
case "karaoke":
|
|
33514
|
+
partialState = calculateKaraokeState(ctx, safeSpeed);
|
|
33515
|
+
break;
|
|
33516
|
+
case "highlight":
|
|
33517
|
+
partialState = calculateHighlightState(ctx);
|
|
33518
|
+
break;
|
|
33519
|
+
case "pop":
|
|
33520
|
+
partialState = calculatePopState(ctx, activeScale, safeSpeed);
|
|
33521
|
+
break;
|
|
33522
|
+
case "fade":
|
|
33523
|
+
partialState = calculateFadeState(ctx, safeSpeed);
|
|
33524
|
+
break;
|
|
33525
|
+
case "slide":
|
|
33526
|
+
partialState = calculateSlideState(ctx, config2.direction, safeSpeed, fontSize);
|
|
33527
|
+
break;
|
|
33528
|
+
case "bounce":
|
|
33529
|
+
partialState = calculateBounceState(ctx, safeSpeed, fontSize);
|
|
33530
|
+
break;
|
|
33531
|
+
case "typewriter":
|
|
33532
|
+
partialState = calculateTypewriterState(ctx, charCount, safeSpeed);
|
|
33533
|
+
break;
|
|
33534
|
+
case "none":
|
|
33535
|
+
default:
|
|
33536
|
+
partialState = calculateNoneState(ctx);
|
|
33537
|
+
break;
|
|
33538
|
+
}
|
|
33539
|
+
const mergedState = { ...baseState, ...partialState };
|
|
33540
|
+
if (mergedState.isActive && activeScale !== 1 && config2.style !== "pop") {
|
|
33541
|
+
mergedState.scale = activeScale;
|
|
33542
|
+
}
|
|
33543
|
+
return mergedState;
|
|
33544
|
+
}
|
|
33545
|
+
function calculateAnimationStatesForGroup(words, currentTime, config2, activeScale = 1, fontSize = 48) {
|
|
33546
|
+
const states = /* @__PURE__ */ new Map();
|
|
33547
|
+
for (const word of words) {
|
|
33548
|
+
const state = calculateWordAnimationState(
|
|
33549
|
+
word.startTime,
|
|
33550
|
+
word.endTime,
|
|
33551
|
+
currentTime,
|
|
33552
|
+
config2,
|
|
33553
|
+
activeScale,
|
|
33554
|
+
word.text.length,
|
|
33555
|
+
fontSize
|
|
33556
|
+
);
|
|
33557
|
+
states.set(word.wordIndex, state);
|
|
33558
|
+
}
|
|
33559
|
+
return states;
|
|
33560
|
+
}
|
|
33561
|
+
function getDefaultAnimationConfig() {
|
|
33562
|
+
return {
|
|
33563
|
+
style: "highlight",
|
|
33564
|
+
speed: 1,
|
|
33565
|
+
direction: "up"
|
|
33566
|
+
};
|
|
33567
|
+
}
|
|
33568
|
+
|
|
33569
|
+
// src/core/rich-caption-generator.ts
|
|
33570
|
+
var ASCENT_RATIO = 0.8;
|
|
33571
|
+
var DESCENT_RATIO = 0.2;
|
|
33572
|
+
var WORD_BG_OPACITY = 1;
|
|
33573
|
+
var WORD_BG_BORDER_RADIUS = 4;
|
|
33574
|
+
var WORD_BG_PADDING_RATIO = 0.12;
|
|
33575
|
+
function extractFontConfig(asset) {
|
|
33576
|
+
const font = asset.font;
|
|
33577
|
+
const active = asset.active?.font;
|
|
33578
|
+
const baseColor = font?.color ?? "#ffffff";
|
|
33579
|
+
const explicitActiveColor = active?.color;
|
|
33580
|
+
const animStyle = asset.wordAnimation?.style ?? "highlight";
|
|
33581
|
+
const isFillAnimation = animStyle === "karaoke" || animStyle === "highlight";
|
|
33582
|
+
const DEFAULT_ACTIVE_COLOR = "#ffff00";
|
|
33583
|
+
const activeColor = explicitActiveColor ?? (isFillAnimation ? DEFAULT_ACTIVE_COLOR : baseColor);
|
|
33584
|
+
return {
|
|
33585
|
+
family: font?.family ?? "Roboto",
|
|
33586
|
+
size: font?.size ?? 24,
|
|
33587
|
+
weight: String(font?.weight ?? "400"),
|
|
33588
|
+
baseColor,
|
|
33589
|
+
activeColor,
|
|
33590
|
+
baseOpacity: font?.opacity ?? 1,
|
|
33591
|
+
activeOpacity: active?.opacity ?? font?.opacity ?? 1,
|
|
33592
|
+
letterSpacing: asset.style?.letterSpacing ?? 0
|
|
33593
|
+
};
|
|
33594
|
+
}
|
|
33595
|
+
function extractStrokeConfig(asset, isActive) {
|
|
33596
|
+
const baseStroke = asset.stroke;
|
|
33597
|
+
const activeStroke = asset.active?.stroke;
|
|
33598
|
+
if (!baseStroke && !activeStroke) {
|
|
33599
|
+
return void 0;
|
|
33600
|
+
}
|
|
33601
|
+
if (isActive && activeStroke) {
|
|
33602
|
+
return {
|
|
33603
|
+
width: activeStroke.width ?? baseStroke?.width ?? 0,
|
|
33604
|
+
color: activeStroke.color ?? baseStroke?.color ?? "#000000",
|
|
33605
|
+
opacity: activeStroke.opacity ?? baseStroke?.opacity ?? 1
|
|
33606
|
+
};
|
|
33607
|
+
}
|
|
33608
|
+
if (baseStroke) {
|
|
33609
|
+
return {
|
|
33610
|
+
width: baseStroke.width ?? 0,
|
|
33611
|
+
color: baseStroke.color ?? "#000000",
|
|
33612
|
+
opacity: baseStroke.opacity ?? 1
|
|
33613
|
+
};
|
|
33614
|
+
}
|
|
33615
|
+
return void 0;
|
|
33616
|
+
}
|
|
33617
|
+
function extractShadowConfig(asset) {
|
|
33618
|
+
const shadow = asset.shadow;
|
|
33619
|
+
if (!shadow) {
|
|
33620
|
+
return void 0;
|
|
33621
|
+
}
|
|
33622
|
+
return {
|
|
33623
|
+
offsetX: shadow.offsetX ?? 0,
|
|
33624
|
+
offsetY: shadow.offsetY ?? 0,
|
|
33625
|
+
blur: shadow.blur ?? 0,
|
|
33626
|
+
color: shadow.color ?? "#000000",
|
|
33627
|
+
opacity: shadow.opacity ?? 0.5
|
|
33628
|
+
};
|
|
33629
|
+
}
|
|
33630
|
+
function extractBackgroundConfig(asset, isActive, fontSize) {
|
|
33631
|
+
const fontBackground = asset.font?.background;
|
|
33632
|
+
const activeBackground = asset.active?.font?.background;
|
|
33633
|
+
const bgColor = isActive && activeBackground ? activeBackground : fontBackground;
|
|
33634
|
+
if (!bgColor) {
|
|
33635
|
+
return void 0;
|
|
33636
|
+
}
|
|
33637
|
+
const wordBgPadding = Math.round(fontSize * WORD_BG_PADDING_RATIO);
|
|
33638
|
+
return {
|
|
33639
|
+
color: bgColor,
|
|
33640
|
+
opacity: WORD_BG_OPACITY,
|
|
33641
|
+
borderRadius: WORD_BG_BORDER_RADIUS,
|
|
33642
|
+
padding: wordBgPadding
|
|
33643
|
+
};
|
|
33644
|
+
}
|
|
33645
|
+
function extractCaptionPadding(asset) {
|
|
33646
|
+
const padding = asset.padding;
|
|
33647
|
+
if (!padding) {
|
|
33648
|
+
return { top: 0, right: 0, bottom: 0, left: 0 };
|
|
33649
|
+
}
|
|
33650
|
+
if (typeof padding === "number") {
|
|
33651
|
+
return { top: padding, right: padding, bottom: padding, left: padding };
|
|
33652
|
+
}
|
|
33653
|
+
return {
|
|
33654
|
+
top: padding.top ?? 0,
|
|
33655
|
+
right: padding.right ?? 0,
|
|
33656
|
+
bottom: padding.bottom ?? 0,
|
|
33657
|
+
left: padding.left ?? 0
|
|
33658
|
+
};
|
|
33659
|
+
}
|
|
33660
|
+
function extractCaptionBackground(asset) {
|
|
33661
|
+
const bg = asset.background;
|
|
33662
|
+
if (!bg || !bg.color) {
|
|
33663
|
+
return void 0;
|
|
33664
|
+
}
|
|
33665
|
+
return {
|
|
33666
|
+
color: bg.color,
|
|
33667
|
+
opacity: bg.opacity ?? 1,
|
|
33668
|
+
borderRadius: bg.borderRadius ?? 0
|
|
33669
|
+
};
|
|
33670
|
+
}
|
|
33671
|
+
function extractCaptionBorder(asset) {
|
|
33672
|
+
const border = asset.border;
|
|
33673
|
+
if (!border || !border.width || border.width <= 0) {
|
|
33674
|
+
return void 0;
|
|
33675
|
+
}
|
|
33676
|
+
return {
|
|
33677
|
+
width: border.width,
|
|
33678
|
+
color: border.color ?? "#000000",
|
|
33679
|
+
opacity: border.opacity ?? 1,
|
|
33680
|
+
radius: border.radius ?? 0
|
|
33681
|
+
};
|
|
33682
|
+
}
|
|
33683
|
+
function extractAnimationConfig(asset) {
|
|
33684
|
+
const wordAnim = asset.wordAnimation;
|
|
33685
|
+
if (!wordAnim) {
|
|
33686
|
+
return getDefaultAnimationConfig();
|
|
33687
|
+
}
|
|
33688
|
+
return {
|
|
33689
|
+
style: wordAnim.style ?? "highlight",
|
|
33690
|
+
speed: wordAnim.speed ?? 1,
|
|
33691
|
+
direction: wordAnim.direction ?? "up"
|
|
33692
|
+
};
|
|
33693
|
+
}
|
|
33694
|
+
function extractActiveScale(asset) {
|
|
33695
|
+
return asset.active?.scale ?? 1;
|
|
33696
|
+
}
|
|
33697
|
+
function createDrawCaptionWordOp(word, animState, asset, fontConfig) {
|
|
33698
|
+
const isActive = animState.isActive;
|
|
33699
|
+
const displayText = animState.visibleCharacters >= 0 && animState.visibleCharacters < word.text.length ? word.text.slice(0, animState.visibleCharacters) : word.text;
|
|
33700
|
+
return {
|
|
33701
|
+
op: "DrawCaptionWord",
|
|
33702
|
+
text: displayText,
|
|
33703
|
+
x: word.x,
|
|
33704
|
+
y: word.y,
|
|
33705
|
+
width: word.width,
|
|
33706
|
+
fontSize: fontConfig.size,
|
|
33707
|
+
fontFamily: fontConfig.family,
|
|
33708
|
+
fontWeight: fontConfig.weight,
|
|
33709
|
+
baseColor: fontConfig.baseColor,
|
|
33710
|
+
activeColor: fontConfig.activeColor,
|
|
33711
|
+
baseOpacity: fontConfig.baseOpacity,
|
|
33712
|
+
activeOpacity: fontConfig.activeOpacity,
|
|
33713
|
+
fillProgress: animState.fillProgress,
|
|
33714
|
+
transform: {
|
|
33715
|
+
scale: animState.scale,
|
|
33716
|
+
translateX: animState.translateX,
|
|
33717
|
+
translateY: animState.translateY,
|
|
33718
|
+
opacity: animState.opacity
|
|
33719
|
+
},
|
|
33720
|
+
isRTL: word.isRTL,
|
|
33721
|
+
visibleCharacters: animState.visibleCharacters,
|
|
33722
|
+
letterSpacing: fontConfig.letterSpacing > 0 ? fontConfig.letterSpacing : void 0,
|
|
33723
|
+
stroke: extractStrokeConfig(asset, isActive),
|
|
33724
|
+
shadow: extractShadowConfig(asset),
|
|
33725
|
+
background: extractBackgroundConfig(asset, isActive, fontConfig.size)
|
|
33726
|
+
};
|
|
33727
|
+
}
|
|
33728
|
+
function calculateGroupBounds(activeGroup, padding, frameWidth, activeScale, fontSize) {
|
|
33729
|
+
let minY = Infinity;
|
|
33730
|
+
let maxY = -Infinity;
|
|
33731
|
+
for (const line of activeGroup.lines) {
|
|
33732
|
+
const lineY = line.y - line.height * ASCENT_RATIO;
|
|
33733
|
+
const lineBottom = line.y + line.height * DESCENT_RATIO;
|
|
33734
|
+
if (lineY < minY) minY = lineY;
|
|
33735
|
+
if (lineBottom > maxY) maxY = lineBottom;
|
|
33736
|
+
}
|
|
33737
|
+
const scaleExpansion = activeScale > 1 ? (activeScale - 1) * fontSize : 0;
|
|
33738
|
+
return {
|
|
33739
|
+
bgX: 0,
|
|
33740
|
+
bgY: minY - padding.top - scaleExpansion,
|
|
33741
|
+
bgWidth: frameWidth,
|
|
33742
|
+
bgHeight: maxY - minY + padding.top + padding.bottom + scaleExpansion * 2
|
|
33743
|
+
};
|
|
33744
|
+
}
|
|
33745
|
+
function generateRichCaptionDrawOps(asset, layout, frameTimeMs, layoutEngine, config2) {
|
|
33746
|
+
if (layout.store.length === 0) {
|
|
33747
|
+
return [];
|
|
33748
|
+
}
|
|
33749
|
+
const visibleWords = layoutEngine.getVisibleWordsAtTime(layout, frameTimeMs);
|
|
33750
|
+
if (visibleWords.length === 0) {
|
|
33751
|
+
return [];
|
|
33752
|
+
}
|
|
33753
|
+
const animConfig = extractAnimationConfig(asset);
|
|
33754
|
+
const activeScale = extractActiveScale(asset);
|
|
33755
|
+
const fontConfig = extractFontConfig(asset);
|
|
33756
|
+
const animationStates = calculateAnimationStatesForGroup(
|
|
33757
|
+
visibleWords,
|
|
33758
|
+
frameTimeMs,
|
|
33759
|
+
animConfig,
|
|
33760
|
+
activeScale,
|
|
33761
|
+
fontConfig.size
|
|
33762
|
+
);
|
|
33763
|
+
const ops = [];
|
|
33764
|
+
const activeGroup = layout.groups.find(
|
|
33765
|
+
(g) => frameTimeMs >= g.startTime && frameTimeMs <= g.endTime
|
|
33766
|
+
);
|
|
33767
|
+
if (activeGroup && activeGroup.lines.length > 0) {
|
|
33768
|
+
const padding = extractCaptionPadding(asset);
|
|
33769
|
+
const { bgX, bgY, bgWidth, bgHeight } = calculateGroupBounds(
|
|
33770
|
+
activeGroup,
|
|
33771
|
+
padding,
|
|
33772
|
+
config2.frameWidth,
|
|
33773
|
+
activeScale,
|
|
33774
|
+
fontConfig.size
|
|
33775
|
+
);
|
|
33776
|
+
const captionBg = extractCaptionBackground(asset);
|
|
33777
|
+
if (captionBg) {
|
|
33778
|
+
ops.push({
|
|
33779
|
+
op: "DrawCaptionBackground",
|
|
33780
|
+
x: bgX,
|
|
33781
|
+
y: bgY,
|
|
33782
|
+
width: bgWidth,
|
|
33783
|
+
height: bgHeight,
|
|
33784
|
+
color: captionBg.color,
|
|
33785
|
+
opacity: captionBg.opacity,
|
|
33786
|
+
borderRadius: captionBg.borderRadius
|
|
33787
|
+
});
|
|
33788
|
+
}
|
|
33789
|
+
const borderConfig = extractCaptionBorder(asset);
|
|
33790
|
+
if (borderConfig) {
|
|
33791
|
+
const halfBorder = borderConfig.width / 2;
|
|
33792
|
+
ops.push({
|
|
33793
|
+
op: "RectangleStroke",
|
|
33794
|
+
x: bgX + halfBorder,
|
|
33795
|
+
y: bgY + halfBorder,
|
|
33796
|
+
width: bgWidth - borderConfig.width,
|
|
33797
|
+
height: bgHeight - borderConfig.width,
|
|
33798
|
+
stroke: {
|
|
33799
|
+
width: borderConfig.width,
|
|
33800
|
+
color: borderConfig.color,
|
|
33801
|
+
opacity: borderConfig.opacity
|
|
33802
|
+
},
|
|
33803
|
+
borderRadius: borderConfig.radius > 0 ? borderConfig.radius : void 0
|
|
33804
|
+
});
|
|
33805
|
+
}
|
|
33806
|
+
}
|
|
33807
|
+
const nonActiveOps = [];
|
|
33808
|
+
const activeOps = [];
|
|
33809
|
+
for (const word of visibleWords) {
|
|
33810
|
+
const animState = animationStates.get(word.wordIndex);
|
|
33811
|
+
if (!animState) {
|
|
33812
|
+
continue;
|
|
33813
|
+
}
|
|
33814
|
+
if (animState.opacity <= 0) {
|
|
33815
|
+
continue;
|
|
33816
|
+
}
|
|
33817
|
+
const drawOp = createDrawCaptionWordOp(word, animState, asset, fontConfig);
|
|
33818
|
+
if (animState.isActive) {
|
|
33819
|
+
activeOps.push(drawOp);
|
|
33820
|
+
} else {
|
|
33821
|
+
nonActiveOps.push(drawOp);
|
|
33822
|
+
}
|
|
33823
|
+
}
|
|
33824
|
+
ops.push(...nonActiveOps, ...activeOps);
|
|
33825
|
+
return ops;
|
|
33826
|
+
}
|
|
33827
|
+
function generateRichCaptionFrame(asset, layout, frameTimeMs, layoutEngine, config2) {
|
|
33828
|
+
const ops = generateRichCaptionDrawOps(
|
|
33829
|
+
asset,
|
|
33830
|
+
layout,
|
|
33831
|
+
frameTimeMs,
|
|
33832
|
+
layoutEngine,
|
|
33833
|
+
config2
|
|
33834
|
+
);
|
|
33835
|
+
const activeWord = layoutEngine.getActiveWordAtTime(layout, frameTimeMs);
|
|
33836
|
+
return {
|
|
33837
|
+
ops,
|
|
33838
|
+
visibleWordCount: ops.length,
|
|
33839
|
+
activeWordIndex: activeWord?.wordIndex ?? -1
|
|
33840
|
+
};
|
|
33841
|
+
}
|
|
33842
|
+
function createDefaultGeneratorConfig(frameWidth = 1920, frameHeight = 1080, pixelRatio = 1) {
|
|
33843
|
+
return {
|
|
33844
|
+
frameWidth,
|
|
33845
|
+
frameHeight,
|
|
33846
|
+
pixelRatio
|
|
33847
|
+
};
|
|
33848
|
+
}
|
|
33849
|
+
function isDrawCaptionWordOp(op) {
|
|
33850
|
+
return op.op === "DrawCaptionWord";
|
|
33851
|
+
}
|
|
33852
|
+
function getDrawCaptionWordOps(ops) {
|
|
33853
|
+
return ops.filter(isDrawCaptionWordOp);
|
|
33854
|
+
}
|
|
33855
|
+
|
|
33283
33856
|
// src/painters/web.ts
|
|
33284
33857
|
function createWebPainter(canvas) {
|
|
33285
33858
|
const ctx = canvas.getContext("2d");
|
|
@@ -33529,10 +34102,9 @@ function createWebPainter(canvas) {
|
|
|
33529
34102
|
if (wordOp.letterSpacing) {
|
|
33530
34103
|
ctx.letterSpacing = `${wordOp.letterSpacing}px`;
|
|
33531
34104
|
}
|
|
33532
|
-
const
|
|
33533
|
-
const
|
|
33534
|
-
const
|
|
33535
|
-
const bgDescent = wordOp.fontSize * 0.2;
|
|
34105
|
+
const bgTextWidth = wordOp.width;
|
|
34106
|
+
const bgAscent = wordOp.fontSize * ASCENT_RATIO;
|
|
34107
|
+
const bgDescent = wordOp.fontSize * DESCENT_RATIO;
|
|
33536
34108
|
const bgTextHeight = bgAscent + bgDescent;
|
|
33537
34109
|
const bgX = -wordOp.background.padding;
|
|
33538
34110
|
const bgY = -bgAscent - wordOp.background.padding;
|
|
@@ -33564,8 +34136,8 @@ function createWebPainter(canvas) {
|
|
|
33564
34136
|
}
|
|
33565
34137
|
const metrics = ctx.measureText(displayText);
|
|
33566
34138
|
const textWidth = metrics.width;
|
|
33567
|
-
const ascent = metrics.actualBoundingBoxAscent ?? wordOp.fontSize *
|
|
33568
|
-
const descent = metrics.actualBoundingBoxDescent ?? wordOp.fontSize *
|
|
34139
|
+
const ascent = metrics.actualBoundingBoxAscent ?? wordOp.fontSize * ASCENT_RATIO;
|
|
34140
|
+
const descent = metrics.actualBoundingBoxDescent ?? wordOp.fontSize * DESCENT_RATIO;
|
|
33569
34141
|
const textHeight = ascent + descent;
|
|
33570
34142
|
if (wordOp.shadow) {
|
|
33571
34143
|
const shadowC = parseHex6(wordOp.shadow.color, wordOp.shadow.opacity);
|
|
@@ -34856,7 +35428,7 @@ function extractSvgDimensions(svgString) {
|
|
|
34856
35428
|
return { width, height };
|
|
34857
35429
|
}
|
|
34858
35430
|
|
|
34859
|
-
// node_modules/lru-cache/dist/esm/index.min.js
|
|
35431
|
+
// node_modules/.pnpm/lru-cache@11.2.6/node_modules/lru-cache/dist/esm/index.min.js
|
|
34860
35432
|
var M = typeof performance == "object" && performance && typeof performance.now == "function" ? performance : Date;
|
|
34861
35433
|
var I = /* @__PURE__ */ new Set();
|
|
34862
35434
|
var R = typeof process == "object" && process ? process : {};
|
|
@@ -35624,7 +36196,7 @@ var CaptionLayoutEngine = class {
|
|
|
35624
36196
|
}
|
|
35625
36197
|
}
|
|
35626
36198
|
const wordGroups = groupWordsByPause(store, config2.pauseThreshold);
|
|
35627
|
-
const pixelMaxWidth = config2.
|
|
36199
|
+
const pixelMaxWidth = config2.availableWidth;
|
|
35628
36200
|
let spaceWidth;
|
|
35629
36201
|
if (config2.measureTextWidth) {
|
|
35630
36202
|
const fontString = `${config2.fontWeight} ${config2.fontSize}px "${config2.fontFamily}"`;
|
|
@@ -35654,31 +36226,45 @@ var CaptionLayoutEngine = class {
|
|
|
35654
36226
|
};
|
|
35655
36227
|
});
|
|
35656
36228
|
const allWordIndices = lines.flatMap((l) => l.wordIndices);
|
|
36229
|
+
if (allWordIndices.length === 0) {
|
|
36230
|
+
return null;
|
|
36231
|
+
}
|
|
35657
36232
|
return {
|
|
35658
36233
|
wordIndices: allWordIndices,
|
|
35659
36234
|
startTime: store.startTimes[allWordIndices[0]],
|
|
35660
36235
|
endTime: store.endTimes[allWordIndices[allWordIndices.length - 1]],
|
|
35661
36236
|
lines
|
|
35662
36237
|
};
|
|
35663
|
-
});
|
|
36238
|
+
}).filter((g) => g !== null);
|
|
35664
36239
|
});
|
|
35665
36240
|
const calculateGroupY = (group) => {
|
|
35666
36241
|
const totalHeight = group.lines.length * config2.fontSize * config2.lineHeight;
|
|
35667
|
-
switch (config2.
|
|
36242
|
+
switch (config2.verticalAlign) {
|
|
35668
36243
|
case "top":
|
|
35669
36244
|
return config2.fontSize * 1.5;
|
|
35670
36245
|
case "bottom":
|
|
35671
36246
|
return config2.frameHeight - totalHeight - config2.fontSize * 0.5;
|
|
35672
|
-
case "
|
|
36247
|
+
case "middle":
|
|
35673
36248
|
default:
|
|
35674
36249
|
return (config2.frameHeight - totalHeight) / 2 + config2.fontSize;
|
|
35675
36250
|
}
|
|
35676
36251
|
};
|
|
36252
|
+
const calculateLineX = (lineWidth) => {
|
|
36253
|
+
switch (config2.horizontalAlign) {
|
|
36254
|
+
case "left":
|
|
36255
|
+
return config2.paddingLeft;
|
|
36256
|
+
case "right":
|
|
36257
|
+
return config2.frameWidth - lineWidth - config2.paddingLeft;
|
|
36258
|
+
case "center":
|
|
36259
|
+
default:
|
|
36260
|
+
return (config2.frameWidth - lineWidth) / 2;
|
|
36261
|
+
}
|
|
36262
|
+
};
|
|
35677
36263
|
for (const group of groups) {
|
|
35678
36264
|
const baseY = calculateGroupY(group);
|
|
35679
36265
|
for (let lineIdx = 0; lineIdx < group.lines.length; lineIdx++) {
|
|
35680
36266
|
const line = group.lines[lineIdx];
|
|
35681
|
-
line.x = (
|
|
36267
|
+
line.x = calculateLineX(line.width);
|
|
35682
36268
|
line.y = baseY + lineIdx * config2.fontSize * config2.lineHeight;
|
|
35683
36269
|
let xCursor = line.x;
|
|
35684
36270
|
for (const wordIdx of line.wordIndices) {
|
|
@@ -35739,527 +36325,6 @@ var CaptionLayoutEngine = class {
|
|
|
35739
36325
|
}
|
|
35740
36326
|
};
|
|
35741
36327
|
|
|
35742
|
-
// src/core/rich-caption-animator.ts
|
|
35743
|
-
var ANIMATION_DURATIONS = {
|
|
35744
|
-
karaoke: 0,
|
|
35745
|
-
highlight: 0,
|
|
35746
|
-
pop: 200,
|
|
35747
|
-
fade: 150,
|
|
35748
|
-
slide: 250,
|
|
35749
|
-
bounce: 400,
|
|
35750
|
-
typewriter: 0,
|
|
35751
|
-
none: 0
|
|
35752
|
-
};
|
|
35753
|
-
var DEFAULT_ANIMATION_STATE = {
|
|
35754
|
-
opacity: 1,
|
|
35755
|
-
scale: 1,
|
|
35756
|
-
translateX: 0,
|
|
35757
|
-
translateY: 0,
|
|
35758
|
-
fillProgress: 1,
|
|
35759
|
-
isActive: false,
|
|
35760
|
-
visibleCharacters: -1
|
|
35761
|
-
};
|
|
35762
|
-
function easeOutQuad2(t) {
|
|
35763
|
-
return t * (2 - t);
|
|
35764
|
-
}
|
|
35765
|
-
function easeInOutQuad(t) {
|
|
35766
|
-
return t < 0.5 ? 2 * t * t : 1 - Math.pow(-2 * t + 2, 2) / 2;
|
|
35767
|
-
}
|
|
35768
|
-
function easeOutBack(t) {
|
|
35769
|
-
const c1 = 1.70158;
|
|
35770
|
-
const c3 = c1 + 1;
|
|
35771
|
-
return 1 + c3 * Math.pow(t - 1, 3) + c1 * Math.pow(t - 1, 2);
|
|
35772
|
-
}
|
|
35773
|
-
function easeOutCirc(t) {
|
|
35774
|
-
return Math.sqrt(1 - Math.pow(t - 1, 2));
|
|
35775
|
-
}
|
|
35776
|
-
function easeOutBounce(t) {
|
|
35777
|
-
const n1 = 7.5625;
|
|
35778
|
-
const d1 = 2.75;
|
|
35779
|
-
if (t < 1 / d1) {
|
|
35780
|
-
return n1 * t * t;
|
|
35781
|
-
}
|
|
35782
|
-
if (t < 2 / d1) {
|
|
35783
|
-
return n1 * (t -= 1.5 / d1) * t + 0.75;
|
|
35784
|
-
}
|
|
35785
|
-
if (t < 2.5 / d1) {
|
|
35786
|
-
return n1 * (t -= 2.25 / d1) * t + 0.9375;
|
|
35787
|
-
}
|
|
35788
|
-
return n1 * (t -= 2.625 / d1) * t + 0.984375;
|
|
35789
|
-
}
|
|
35790
|
-
function clamp(value, min, max) {
|
|
35791
|
-
return Math.min(Math.max(value, min), max);
|
|
35792
|
-
}
|
|
35793
|
-
function calculateAnimationProgress(ctx) {
|
|
35794
|
-
if (ctx.animationDuration <= 0) {
|
|
35795
|
-
return ctx.currentTime >= ctx.wordStart ? 1 : 0;
|
|
35796
|
-
}
|
|
35797
|
-
const elapsed = ctx.currentTime - ctx.wordStart;
|
|
35798
|
-
return clamp(elapsed / ctx.animationDuration, 0, 1);
|
|
35799
|
-
}
|
|
35800
|
-
function calculateWordProgress(ctx) {
|
|
35801
|
-
const duration3 = ctx.wordEnd - ctx.wordStart;
|
|
35802
|
-
if (duration3 <= 0) {
|
|
35803
|
-
return ctx.currentTime >= ctx.wordStart ? 1 : 0;
|
|
35804
|
-
}
|
|
35805
|
-
const elapsed = ctx.currentTime - ctx.wordStart;
|
|
35806
|
-
return clamp(elapsed / duration3, 0, 1);
|
|
35807
|
-
}
|
|
35808
|
-
function isWordActive(ctx) {
|
|
35809
|
-
return ctx.currentTime >= ctx.wordStart && ctx.currentTime < ctx.wordEnd;
|
|
35810
|
-
}
|
|
35811
|
-
function calculateKaraokeState(ctx, speed) {
|
|
35812
|
-
const isActive = isWordActive(ctx);
|
|
35813
|
-
const wordDuration = ctx.wordEnd - ctx.wordStart;
|
|
35814
|
-
const adjustedDuration = wordDuration / speed;
|
|
35815
|
-
const adjustedEnd = ctx.wordStart + adjustedDuration;
|
|
35816
|
-
const adjustedCtx = { ...ctx, wordEnd: adjustedEnd };
|
|
35817
|
-
if (ctx.currentTime < ctx.wordStart) {
|
|
35818
|
-
return {
|
|
35819
|
-
fillProgress: 0,
|
|
35820
|
-
isActive: false,
|
|
35821
|
-
opacity: 1
|
|
35822
|
-
};
|
|
35823
|
-
}
|
|
35824
|
-
if (ctx.currentTime >= adjustedEnd) {
|
|
35825
|
-
return {
|
|
35826
|
-
fillProgress: 1,
|
|
35827
|
-
isActive: false,
|
|
35828
|
-
opacity: 1
|
|
35829
|
-
};
|
|
35830
|
-
}
|
|
35831
|
-
return {
|
|
35832
|
-
fillProgress: calculateWordProgress(adjustedCtx),
|
|
35833
|
-
isActive,
|
|
35834
|
-
opacity: 1
|
|
35835
|
-
};
|
|
35836
|
-
}
|
|
35837
|
-
function calculateHighlightState(ctx) {
|
|
35838
|
-
const isActive = isWordActive(ctx);
|
|
35839
|
-
return {
|
|
35840
|
-
isActive,
|
|
35841
|
-
fillProgress: isActive ? 1 : 0,
|
|
35842
|
-
opacity: 1
|
|
35843
|
-
};
|
|
35844
|
-
}
|
|
35845
|
-
function calculatePopState(ctx, activeScale, speed) {
|
|
35846
|
-
if (ctx.currentTime < ctx.wordStart) {
|
|
35847
|
-
return {
|
|
35848
|
-
scale: 0.5,
|
|
35849
|
-
opacity: 0,
|
|
35850
|
-
isActive: false
|
|
35851
|
-
};
|
|
35852
|
-
}
|
|
35853
|
-
const adjustedDuration = ctx.animationDuration / speed;
|
|
35854
|
-
const adjustedCtx = { ...ctx, animationDuration: adjustedDuration };
|
|
35855
|
-
const progress = calculateAnimationProgress(adjustedCtx);
|
|
35856
|
-
const easedProgress = easeOutBack(progress);
|
|
35857
|
-
const startScale = 0.5;
|
|
35858
|
-
const endScale = isWordActive(ctx) ? activeScale : 1;
|
|
35859
|
-
const scale = startScale + (endScale - startScale) * easedProgress;
|
|
35860
|
-
return {
|
|
35861
|
-
scale: Math.min(scale, activeScale),
|
|
35862
|
-
opacity: easedProgress,
|
|
35863
|
-
isActive: isWordActive(ctx)
|
|
35864
|
-
};
|
|
35865
|
-
}
|
|
35866
|
-
function calculateFadeState(ctx, speed) {
|
|
35867
|
-
if (ctx.currentTime < ctx.wordStart) {
|
|
35868
|
-
return {
|
|
35869
|
-
opacity: 0,
|
|
35870
|
-
isActive: false
|
|
35871
|
-
};
|
|
35872
|
-
}
|
|
35873
|
-
const adjustedDuration = ctx.animationDuration / speed;
|
|
35874
|
-
const adjustedCtx = { ...ctx, animationDuration: adjustedDuration };
|
|
35875
|
-
const progress = calculateAnimationProgress(adjustedCtx);
|
|
35876
|
-
const easedProgress = easeInOutQuad(progress);
|
|
35877
|
-
return {
|
|
35878
|
-
opacity: easedProgress,
|
|
35879
|
-
isActive: isWordActive(ctx)
|
|
35880
|
-
};
|
|
35881
|
-
}
|
|
35882
|
-
function calculateSlideState(ctx, direction, speed, fontSize) {
|
|
35883
|
-
const slideDistance = fontSize * 1.5;
|
|
35884
|
-
if (ctx.currentTime < ctx.wordStart) {
|
|
35885
|
-
const offset2 = getDirectionOffset(direction, slideDistance);
|
|
35886
|
-
return {
|
|
35887
|
-
translateX: offset2.x,
|
|
35888
|
-
translateY: offset2.y,
|
|
35889
|
-
opacity: 0,
|
|
35890
|
-
isActive: false
|
|
35891
|
-
};
|
|
35892
|
-
}
|
|
35893
|
-
const adjustedDuration = ctx.animationDuration / speed;
|
|
35894
|
-
const adjustedCtx = { ...ctx, animationDuration: adjustedDuration };
|
|
35895
|
-
const progress = calculateAnimationProgress(adjustedCtx);
|
|
35896
|
-
const easedProgress = easeOutCirc(progress);
|
|
35897
|
-
const offset = getDirectionOffset(direction, slideDistance);
|
|
35898
|
-
const translateX = offset.x * (1 - easedProgress);
|
|
35899
|
-
const translateY = offset.y * (1 - easedProgress);
|
|
35900
|
-
return {
|
|
35901
|
-
translateX,
|
|
35902
|
-
translateY,
|
|
35903
|
-
opacity: easeOutQuad2(progress),
|
|
35904
|
-
isActive: isWordActive(ctx)
|
|
35905
|
-
};
|
|
35906
|
-
}
|
|
35907
|
-
function getDirectionOffset(direction, distance) {
|
|
35908
|
-
switch (direction) {
|
|
35909
|
-
case "left":
|
|
35910
|
-
return { x: -distance, y: 0 };
|
|
35911
|
-
case "right":
|
|
35912
|
-
return { x: distance, y: 0 };
|
|
35913
|
-
case "up":
|
|
35914
|
-
return { x: 0, y: -distance };
|
|
35915
|
-
case "down":
|
|
35916
|
-
return { x: 0, y: distance };
|
|
35917
|
-
}
|
|
35918
|
-
}
|
|
35919
|
-
function calculateBounceState(ctx, speed, fontSize) {
|
|
35920
|
-
const bounceDistance = fontSize * 0.8;
|
|
35921
|
-
if (ctx.currentTime < ctx.wordStart) {
|
|
35922
|
-
return {
|
|
35923
|
-
translateY: -bounceDistance,
|
|
35924
|
-
opacity: 0,
|
|
35925
|
-
isActive: false
|
|
35926
|
-
};
|
|
35927
|
-
}
|
|
35928
|
-
const adjustedDuration = ctx.animationDuration / speed;
|
|
35929
|
-
const adjustedCtx = { ...ctx, animationDuration: adjustedDuration };
|
|
35930
|
-
const progress = calculateAnimationProgress(adjustedCtx);
|
|
35931
|
-
const easedProgress = easeOutBounce(progress);
|
|
35932
|
-
return {
|
|
35933
|
-
translateY: -bounceDistance * (1 - easedProgress),
|
|
35934
|
-
opacity: easeOutQuad2(progress),
|
|
35935
|
-
isActive: isWordActive(ctx)
|
|
35936
|
-
};
|
|
35937
|
-
}
|
|
35938
|
-
function calculateTypewriterState(ctx, charCount, speed) {
|
|
35939
|
-
const wordDuration = ctx.wordEnd - ctx.wordStart;
|
|
35940
|
-
const adjustedDuration = wordDuration / speed;
|
|
35941
|
-
const adjustedEnd = ctx.wordStart + adjustedDuration;
|
|
35942
|
-
const adjustedCtx = { ...ctx, wordEnd: adjustedEnd };
|
|
35943
|
-
if (ctx.currentTime < ctx.wordStart) {
|
|
35944
|
-
return {
|
|
35945
|
-
visibleCharacters: 0,
|
|
35946
|
-
opacity: 1,
|
|
35947
|
-
isActive: false
|
|
35948
|
-
};
|
|
35949
|
-
}
|
|
35950
|
-
if (ctx.currentTime >= adjustedEnd) {
|
|
35951
|
-
return {
|
|
35952
|
-
visibleCharacters: charCount,
|
|
35953
|
-
opacity: 1,
|
|
35954
|
-
isActive: false
|
|
35955
|
-
};
|
|
35956
|
-
}
|
|
35957
|
-
const progress = calculateWordProgress(adjustedCtx);
|
|
35958
|
-
const visibleCharacters = Math.ceil(progress * charCount);
|
|
35959
|
-
return {
|
|
35960
|
-
visibleCharacters: clamp(visibleCharacters, 0, charCount),
|
|
35961
|
-
opacity: 1,
|
|
35962
|
-
isActive: isWordActive(ctx)
|
|
35963
|
-
};
|
|
35964
|
-
}
|
|
35965
|
-
function calculateNoneState(ctx) {
|
|
35966
|
-
return {
|
|
35967
|
-
opacity: 1,
|
|
35968
|
-
isActive: isWordActive(ctx)
|
|
35969
|
-
};
|
|
35970
|
-
}
|
|
35971
|
-
function calculateWordAnimationState(wordStart, wordEnd, currentTime, config2, activeScale = 1, charCount = 0, fontSize = 48) {
|
|
35972
|
-
const ctx = {
|
|
35973
|
-
wordStart,
|
|
35974
|
-
wordEnd,
|
|
35975
|
-
currentTime,
|
|
35976
|
-
animationDuration: ANIMATION_DURATIONS[config2.style]
|
|
35977
|
-
};
|
|
35978
|
-
const baseState = { ...DEFAULT_ANIMATION_STATE };
|
|
35979
|
-
let partialState;
|
|
35980
|
-
switch (config2.style) {
|
|
35981
|
-
case "karaoke":
|
|
35982
|
-
partialState = calculateKaraokeState(ctx, config2.speed);
|
|
35983
|
-
break;
|
|
35984
|
-
case "highlight":
|
|
35985
|
-
partialState = calculateHighlightState(ctx);
|
|
35986
|
-
break;
|
|
35987
|
-
case "pop":
|
|
35988
|
-
partialState = calculatePopState(ctx, activeScale, config2.speed);
|
|
35989
|
-
break;
|
|
35990
|
-
case "fade":
|
|
35991
|
-
partialState = calculateFadeState(ctx, config2.speed);
|
|
35992
|
-
break;
|
|
35993
|
-
case "slide":
|
|
35994
|
-
partialState = calculateSlideState(ctx, config2.direction, config2.speed, fontSize);
|
|
35995
|
-
break;
|
|
35996
|
-
case "bounce":
|
|
35997
|
-
partialState = calculateBounceState(ctx, config2.speed, fontSize);
|
|
35998
|
-
break;
|
|
35999
|
-
case "typewriter":
|
|
36000
|
-
partialState = calculateTypewriterState(ctx, charCount, config2.speed);
|
|
36001
|
-
break;
|
|
36002
|
-
case "none":
|
|
36003
|
-
default:
|
|
36004
|
-
partialState = calculateNoneState(ctx);
|
|
36005
|
-
break;
|
|
36006
|
-
}
|
|
36007
|
-
return { ...baseState, ...partialState };
|
|
36008
|
-
}
|
|
36009
|
-
function calculateAnimationStatesForGroup(words, currentTime, config2, activeScale = 1, fontSize = 48) {
|
|
36010
|
-
const states = /* @__PURE__ */ new Map();
|
|
36011
|
-
for (const word of words) {
|
|
36012
|
-
const state = calculateWordAnimationState(
|
|
36013
|
-
word.startTime,
|
|
36014
|
-
word.endTime,
|
|
36015
|
-
currentTime,
|
|
36016
|
-
config2,
|
|
36017
|
-
activeScale,
|
|
36018
|
-
word.text.length,
|
|
36019
|
-
fontSize
|
|
36020
|
-
);
|
|
36021
|
-
states.set(word.wordIndex, state);
|
|
36022
|
-
}
|
|
36023
|
-
return states;
|
|
36024
|
-
}
|
|
36025
|
-
function getDefaultAnimationConfig() {
|
|
36026
|
-
return {
|
|
36027
|
-
style: "highlight",
|
|
36028
|
-
speed: 1,
|
|
36029
|
-
direction: "up"
|
|
36030
|
-
};
|
|
36031
|
-
}
|
|
36032
|
-
|
|
36033
|
-
// src/core/rich-caption-generator.ts
|
|
36034
|
-
function extractFontConfig(asset) {
|
|
36035
|
-
const font = asset.font;
|
|
36036
|
-
const active = asset.active?.font;
|
|
36037
|
-
return {
|
|
36038
|
-
family: font?.family ?? "Roboto",
|
|
36039
|
-
size: font?.size ?? 24,
|
|
36040
|
-
weight: String(font?.weight ?? "400"),
|
|
36041
|
-
baseColor: font?.color ?? "#ffffff",
|
|
36042
|
-
activeColor: active?.color ?? "#ffffff",
|
|
36043
|
-
baseOpacity: font?.opacity ?? 1,
|
|
36044
|
-
activeOpacity: active?.opacity ?? 1,
|
|
36045
|
-
letterSpacing: asset.style?.letterSpacing ?? 0
|
|
36046
|
-
};
|
|
36047
|
-
}
|
|
36048
|
-
function extractStrokeConfig(asset, isActive) {
|
|
36049
|
-
const baseStroke = asset.stroke;
|
|
36050
|
-
const activeStroke = asset.active?.stroke;
|
|
36051
|
-
if (!baseStroke && !activeStroke) {
|
|
36052
|
-
return void 0;
|
|
36053
|
-
}
|
|
36054
|
-
if (isActive && activeStroke) {
|
|
36055
|
-
return {
|
|
36056
|
-
width: activeStroke.width ?? baseStroke?.width ?? 0,
|
|
36057
|
-
color: activeStroke.color ?? baseStroke?.color ?? "#000000",
|
|
36058
|
-
opacity: activeStroke.opacity ?? baseStroke?.opacity ?? 1
|
|
36059
|
-
};
|
|
36060
|
-
}
|
|
36061
|
-
if (baseStroke) {
|
|
36062
|
-
return {
|
|
36063
|
-
width: baseStroke.width ?? 0,
|
|
36064
|
-
color: baseStroke.color ?? "#000000",
|
|
36065
|
-
opacity: baseStroke.opacity ?? 1
|
|
36066
|
-
};
|
|
36067
|
-
}
|
|
36068
|
-
return void 0;
|
|
36069
|
-
}
|
|
36070
|
-
function extractShadowConfig(asset) {
|
|
36071
|
-
const shadow = asset.shadow;
|
|
36072
|
-
if (!shadow) {
|
|
36073
|
-
return void 0;
|
|
36074
|
-
}
|
|
36075
|
-
return {
|
|
36076
|
-
offsetX: shadow.offsetX ?? 0,
|
|
36077
|
-
offsetY: shadow.offsetY ?? 0,
|
|
36078
|
-
blur: shadow.blur ?? 0,
|
|
36079
|
-
color: shadow.color ?? "#000000",
|
|
36080
|
-
opacity: shadow.opacity ?? 0.5
|
|
36081
|
-
};
|
|
36082
|
-
}
|
|
36083
|
-
function extractBackgroundConfig(asset, isActive) {
|
|
36084
|
-
const fontBackground = asset.font?.background;
|
|
36085
|
-
const activeBackground = asset.active?.font?.background;
|
|
36086
|
-
const bgColor = isActive && activeBackground ? activeBackground : fontBackground;
|
|
36087
|
-
if (!bgColor) {
|
|
36088
|
-
return void 0;
|
|
36089
|
-
}
|
|
36090
|
-
const paddingValues = extractCaptionPadding(asset);
|
|
36091
|
-
const paddingValue = Math.max(paddingValues.top, paddingValues.right, paddingValues.bottom, paddingValues.left);
|
|
36092
|
-
return {
|
|
36093
|
-
color: bgColor,
|
|
36094
|
-
opacity: 1,
|
|
36095
|
-
borderRadius: 4,
|
|
36096
|
-
padding: paddingValue
|
|
36097
|
-
};
|
|
36098
|
-
}
|
|
36099
|
-
function extractCaptionPadding(asset) {
|
|
36100
|
-
const padding = asset.padding;
|
|
36101
|
-
if (!padding) {
|
|
36102
|
-
return { top: 0, right: 0, bottom: 0, left: 0 };
|
|
36103
|
-
}
|
|
36104
|
-
if (typeof padding === "number") {
|
|
36105
|
-
return { top: padding, right: padding, bottom: padding, left: padding };
|
|
36106
|
-
}
|
|
36107
|
-
return {
|
|
36108
|
-
top: padding.top ?? 0,
|
|
36109
|
-
right: padding.right ?? 0,
|
|
36110
|
-
bottom: padding.bottom ?? 0,
|
|
36111
|
-
left: padding.left ?? 0
|
|
36112
|
-
};
|
|
36113
|
-
}
|
|
36114
|
-
function extractCaptionBackground(asset) {
|
|
36115
|
-
const bg = asset.background;
|
|
36116
|
-
if (!bg || !bg.color) {
|
|
36117
|
-
return void 0;
|
|
36118
|
-
}
|
|
36119
|
-
return {
|
|
36120
|
-
color: bg.color,
|
|
36121
|
-
opacity: bg.opacity ?? 1
|
|
36122
|
-
};
|
|
36123
|
-
}
|
|
36124
|
-
function extractAnimationConfig(asset) {
|
|
36125
|
-
const wordAnim = asset.wordAnimation;
|
|
36126
|
-
if (!wordAnim) {
|
|
36127
|
-
return getDefaultAnimationConfig();
|
|
36128
|
-
}
|
|
36129
|
-
return {
|
|
36130
|
-
style: wordAnim.style ?? "highlight",
|
|
36131
|
-
speed: wordAnim.speed ?? 1,
|
|
36132
|
-
direction: wordAnim.direction ?? "up"
|
|
36133
|
-
};
|
|
36134
|
-
}
|
|
36135
|
-
function extractActiveScale(asset) {
|
|
36136
|
-
return asset.active?.scale ?? 1;
|
|
36137
|
-
}
|
|
36138
|
-
function createDrawCaptionWordOp(word, animState, asset, fontConfig) {
|
|
36139
|
-
const isActive = animState.isActive;
|
|
36140
|
-
const displayText = animState.visibleCharacters >= 0 && animState.visibleCharacters < word.text.length ? word.text.slice(0, animState.visibleCharacters) : word.text;
|
|
36141
|
-
return {
|
|
36142
|
-
op: "DrawCaptionWord",
|
|
36143
|
-
text: displayText,
|
|
36144
|
-
x: word.x,
|
|
36145
|
-
y: word.y,
|
|
36146
|
-
width: word.width,
|
|
36147
|
-
fontSize: fontConfig.size,
|
|
36148
|
-
fontFamily: fontConfig.family,
|
|
36149
|
-
fontWeight: fontConfig.weight,
|
|
36150
|
-
baseColor: fontConfig.baseColor,
|
|
36151
|
-
activeColor: fontConfig.activeColor,
|
|
36152
|
-
baseOpacity: fontConfig.baseOpacity,
|
|
36153
|
-
activeOpacity: fontConfig.activeOpacity,
|
|
36154
|
-
fillProgress: animState.fillProgress,
|
|
36155
|
-
transform: {
|
|
36156
|
-
scale: animState.scale,
|
|
36157
|
-
translateX: animState.translateX,
|
|
36158
|
-
translateY: animState.translateY,
|
|
36159
|
-
opacity: animState.opacity
|
|
36160
|
-
},
|
|
36161
|
-
isRTL: word.isRTL,
|
|
36162
|
-
visibleCharacters: animState.visibleCharacters,
|
|
36163
|
-
letterSpacing: fontConfig.letterSpacing > 0 ? fontConfig.letterSpacing : void 0,
|
|
36164
|
-
stroke: extractStrokeConfig(asset, isActive),
|
|
36165
|
-
shadow: extractShadowConfig(asset),
|
|
36166
|
-
background: extractBackgroundConfig(asset, isActive)
|
|
36167
|
-
};
|
|
36168
|
-
}
|
|
36169
|
-
function generateRichCaptionDrawOps(asset, layout, frameTimeMs, layoutEngine, _config) {
|
|
36170
|
-
if (layout.store.length === 0) {
|
|
36171
|
-
return [];
|
|
36172
|
-
}
|
|
36173
|
-
const visibleWords = layoutEngine.getVisibleWordsAtTime(layout, frameTimeMs);
|
|
36174
|
-
if (visibleWords.length === 0) {
|
|
36175
|
-
return [];
|
|
36176
|
-
}
|
|
36177
|
-
const animConfig = extractAnimationConfig(asset);
|
|
36178
|
-
const activeScale = extractActiveScale(asset);
|
|
36179
|
-
const fontConfig = extractFontConfig(asset);
|
|
36180
|
-
const animationStates = calculateAnimationStatesForGroup(
|
|
36181
|
-
visibleWords,
|
|
36182
|
-
frameTimeMs,
|
|
36183
|
-
animConfig,
|
|
36184
|
-
activeScale,
|
|
36185
|
-
fontConfig.size
|
|
36186
|
-
);
|
|
36187
|
-
const ops = [];
|
|
36188
|
-
const captionBg = extractCaptionBackground(asset);
|
|
36189
|
-
if (captionBg) {
|
|
36190
|
-
const activeGroup = layout.groups.find(
|
|
36191
|
-
(g) => frameTimeMs >= g.startTime && frameTimeMs <= g.endTime
|
|
36192
|
-
);
|
|
36193
|
-
if (activeGroup && activeGroup.lines.length > 0) {
|
|
36194
|
-
const padding = extractCaptionPadding(asset);
|
|
36195
|
-
let minX = Infinity;
|
|
36196
|
-
let maxX = -Infinity;
|
|
36197
|
-
let minY = Infinity;
|
|
36198
|
-
let maxY = -Infinity;
|
|
36199
|
-
for (const line of activeGroup.lines) {
|
|
36200
|
-
const lineX = line.x;
|
|
36201
|
-
const lineRight = line.x + line.width;
|
|
36202
|
-
const lineY = line.y - line.height * 0.8;
|
|
36203
|
-
const lineBottom = line.y + line.height * 0.2;
|
|
36204
|
-
if (lineX < minX) minX = lineX;
|
|
36205
|
-
if (lineRight > maxX) maxX = lineRight;
|
|
36206
|
-
if (lineY < minY) minY = lineY;
|
|
36207
|
-
if (lineBottom > maxY) maxY = lineBottom;
|
|
36208
|
-
}
|
|
36209
|
-
ops.push({
|
|
36210
|
-
op: "DrawCaptionBackground",
|
|
36211
|
-
x: minX - padding.left,
|
|
36212
|
-
y: minY - padding.top,
|
|
36213
|
-
width: maxX - minX + padding.left + padding.right,
|
|
36214
|
-
height: maxY - minY + padding.top + padding.bottom,
|
|
36215
|
-
color: captionBg.color,
|
|
36216
|
-
opacity: captionBg.opacity,
|
|
36217
|
-
borderRadius: 8
|
|
36218
|
-
});
|
|
36219
|
-
}
|
|
36220
|
-
}
|
|
36221
|
-
for (const word of visibleWords) {
|
|
36222
|
-
const animState = animationStates.get(word.wordIndex);
|
|
36223
|
-
if (!animState) {
|
|
36224
|
-
continue;
|
|
36225
|
-
}
|
|
36226
|
-
if (animState.opacity <= 0) {
|
|
36227
|
-
continue;
|
|
36228
|
-
}
|
|
36229
|
-
const drawOp = createDrawCaptionWordOp(word, animState, asset, fontConfig);
|
|
36230
|
-
ops.push(drawOp);
|
|
36231
|
-
}
|
|
36232
|
-
return ops;
|
|
36233
|
-
}
|
|
36234
|
-
function generateRichCaptionFrame(asset, layout, frameTimeMs, layoutEngine, config2) {
|
|
36235
|
-
const ops = generateRichCaptionDrawOps(
|
|
36236
|
-
asset,
|
|
36237
|
-
layout,
|
|
36238
|
-
frameTimeMs,
|
|
36239
|
-
layoutEngine,
|
|
36240
|
-
config2
|
|
36241
|
-
);
|
|
36242
|
-
const activeWord = layoutEngine.getActiveWordAtTime(layout, frameTimeMs);
|
|
36243
|
-
return {
|
|
36244
|
-
ops,
|
|
36245
|
-
visibleWordCount: ops.length,
|
|
36246
|
-
activeWordIndex: activeWord?.wordIndex ?? -1
|
|
36247
|
-
};
|
|
36248
|
-
}
|
|
36249
|
-
function createDefaultGeneratorConfig(frameWidth = 1920, frameHeight = 1080, pixelRatio = 1) {
|
|
36250
|
-
return {
|
|
36251
|
-
frameWidth,
|
|
36252
|
-
frameHeight,
|
|
36253
|
-
pixelRatio
|
|
36254
|
-
};
|
|
36255
|
-
}
|
|
36256
|
-
function isDrawCaptionWordOp(op) {
|
|
36257
|
-
return op.op === "DrawCaptionWord";
|
|
36258
|
-
}
|
|
36259
|
-
function getDrawCaptionWordOps(ops) {
|
|
36260
|
-
return ops.filter(isDrawCaptionWordOp);
|
|
36261
|
-
}
|
|
36262
|
-
|
|
36263
36328
|
// src/core/subtitle-parser.ts
|
|
36264
36329
|
function detectSubtitleFormat(content) {
|
|
36265
36330
|
const firstNewline = content.indexOf("\n");
|
|
@@ -37101,12 +37166,17 @@ async function createTextEngine(opts = {}) {
|
|
|
37101
37166
|
};
|
|
37102
37167
|
}
|
|
37103
37168
|
export {
|
|
37169
|
+
ASCENT_RATIO,
|
|
37104
37170
|
CanvasRichCaptionAssetSchema,
|
|
37105
37171
|
CanvasRichTextAssetSchema,
|
|
37106
37172
|
CanvasSvgAssetSchema,
|
|
37107
37173
|
CaptionLayoutEngine,
|
|
37174
|
+
DESCENT_RATIO,
|
|
37108
37175
|
FontRegistry,
|
|
37109
37176
|
MediaRecorderFallback,
|
|
37177
|
+
WORD_BG_BORDER_RADIUS,
|
|
37178
|
+
WORD_BG_OPACITY,
|
|
37179
|
+
WORD_BG_PADDING_RATIO,
|
|
37110
37180
|
WebCodecsEncoder,
|
|
37111
37181
|
WordTimingStore,
|
|
37112
37182
|
arcToCubicBeziers,
|
|
@@ -37123,6 +37193,7 @@ export {
|
|
|
37123
37193
|
createWebPainter,
|
|
37124
37194
|
detectPlatform,
|
|
37125
37195
|
detectSubtitleFormat,
|
|
37196
|
+
extractCaptionPadding,
|
|
37126
37197
|
findWordAtTime,
|
|
37127
37198
|
generateRichCaptionDrawOps,
|
|
37128
37199
|
generateRichCaptionFrame,
|