@viji-dev/core 0.11.2 → 0.11.4
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/artist-dts-p5.js +1 -1
- package/dist/artist-dts.js +1 -1
- package/dist/artist-global-p5.d.ts +1 -1
- package/dist/artist-global.d.ts +1 -1
- package/dist/docs-api.js +9862 -9862
- package/dist/{essentia-wasm.web-BSqfHACB.js → essentia-wasm.web-BqvCeDjy.js} +2 -2
- package/dist/{index-S7Vv0fhj.js → index-LgAeJ6JG.js} +47 -42
- package/dist/index.d.ts +35 -1
- package/dist/index.js +8 -7
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { g as kn } from "./index-
|
|
1
|
+
import { g as kn } from "./index-LgAeJ6JG.js";
|
|
2
2
|
function jn(Oe, ot) {
|
|
3
3
|
for (var ve = 0; ve < ot.length; ve++) {
|
|
4
4
|
const Z = ot[ve];
|
|
@@ -3374,4 +3374,4 @@ const xn = /* @__PURE__ */ kn(yi), Ln = /* @__PURE__ */ jn({
|
|
|
3374
3374
|
export {
|
|
3375
3375
|
Ln as e
|
|
3376
3376
|
};
|
|
3377
|
-
//# sourceMappingURL=essentia-wasm.web-
|
|
3377
|
+
//# sourceMappingURL=essentia-wasm.web-BqvCeDjy.js.map
|
|
@@ -1518,7 +1518,7 @@ class YB {
|
|
|
1518
1518
|
if (!this.isInitialized)
|
|
1519
1519
|
return this.initPromise ? this.initPromise : (this.initPromise = (async () => {
|
|
1520
1520
|
try {
|
|
1521
|
-
const A = await import("./essentia.js-core.es-CC_3Ap1i.js"), B = await import("./essentia-wasm.web-
|
|
1521
|
+
const A = await import("./essentia.js-core.es-CC_3Ap1i.js"), B = await import("./essentia-wasm.web-BqvCeDjy.js").then((g) => g.e), I = A.Essentia || A.default?.Essentia || A.default;
|
|
1522
1522
|
let Q = B.default || B.EssentiaWASM || B.default?.EssentiaWASM;
|
|
1523
1523
|
if (!Q)
|
|
1524
1524
|
throw new Error("WASM module not found - check essentia-wasm.web.js export");
|
|
@@ -1913,7 +1913,7 @@ class YB {
|
|
|
1913
1913
|
}
|
|
1914
1914
|
}
|
|
1915
1915
|
}
|
|
1916
|
-
const IA = 60, O = 200, UB = 85, SB = 180, NB = 200, pA = 4,
|
|
1916
|
+
const IA = 60, O = 200, UB = 85, SB = 180, NB = 200, pA = 4, hA = 10, bB = ["low", "lowMid", "mid", "highMid", "high"];
|
|
1917
1917
|
class HB {
|
|
1918
1918
|
// Autocorrelation state
|
|
1919
1919
|
onsetEnvelope = [];
|
|
@@ -2238,18 +2238,18 @@ class HB {
|
|
|
2238
2238
|
return { dominantInterval: 500, consistency: 0, sampleCount: 0 };
|
|
2239
2239
|
const Q = /* @__PURE__ */ new Map();
|
|
2240
2240
|
for (const s of I) {
|
|
2241
|
-
const G = Math.round(s /
|
|
2241
|
+
const G = Math.round(s / hA) * hA;
|
|
2242
2242
|
Q.set(G, (Q.get(G) || 0) + 1);
|
|
2243
2243
|
}
|
|
2244
2244
|
let g = 500, E = 0;
|
|
2245
2245
|
for (const [s, G] of Q) {
|
|
2246
2246
|
let o = G;
|
|
2247
|
-
const h = Math.round(s / 2 /
|
|
2247
|
+
const h = Math.round(s / 2 / hA) * hA;
|
|
2248
2248
|
o += (Q.get(h) || 0) * 0.5;
|
|
2249
2249
|
const R = s * 2;
|
|
2250
2250
|
o += (Q.get(R) || 0) * 0.5, o > E && (E = o, g = s);
|
|
2251
2251
|
}
|
|
2252
|
-
const C =
|
|
2252
|
+
const C = hA * 3;
|
|
2253
2253
|
let i = 0;
|
|
2254
2254
|
for (const s of I)
|
|
2255
2255
|
Math.abs(s - g) < C && i++, Math.abs(s - g / 2) < C && (i += 0.5), Math.abs(s - g * 2) < C && (i += 0.5);
|
|
@@ -4383,7 +4383,7 @@ Rejection rate: ${(I / A * 60).toFixed(1)} per minute
|
|
|
4383
4383
|
return this.events.length;
|
|
4384
4384
|
}
|
|
4385
4385
|
}
|
|
4386
|
-
const
|
|
4386
|
+
const FA = ["kick", "snare", "hat"], KA = 60, OA = 5e3, OB = 500, fB = 8, tA = 0.18, sA = 3, vB = 3e3, jB = 100, PB = 64, TB = 0.05, _B = 0.15, RA = 1;
|
|
4387
4387
|
function HA() {
|
|
4388
4388
|
return {
|
|
4389
4389
|
mode: "auto",
|
|
@@ -4524,11 +4524,11 @@ class BB {
|
|
|
4524
4524
|
* inadvertently overwritten.
|
|
4525
4525
|
*/
|
|
4526
4526
|
exportSessionState(A) {
|
|
4527
|
-
const B = A?.instruments ??
|
|
4527
|
+
const B = A?.instruments ?? FA, I = {};
|
|
4528
4528
|
for (const Q of B)
|
|
4529
4529
|
I[Q] = this.serializeInstrument(Q);
|
|
4530
4530
|
return {
|
|
4531
|
-
version:
|
|
4531
|
+
version: RA,
|
|
4532
4532
|
senderTime: performance.now(),
|
|
4533
4533
|
instruments: I
|
|
4534
4534
|
};
|
|
@@ -4554,9 +4554,9 @@ class BB {
|
|
|
4554
4554
|
* via the `version` field.
|
|
4555
4555
|
*/
|
|
4556
4556
|
importSessionState(A, B) {
|
|
4557
|
-
if (A.version !==
|
|
4557
|
+
if (A.version !== RA) return;
|
|
4558
4558
|
const I = performance.now();
|
|
4559
|
-
for (const Q of
|
|
4559
|
+
for (const Q of FA) {
|
|
4560
4560
|
const g = A.instruments[Q];
|
|
4561
4561
|
g && this.applyInstrumentPayload(Q, g, B, I);
|
|
4562
4562
|
}
|
|
@@ -4569,11 +4569,11 @@ class BB {
|
|
|
4569
4569
|
if (A === null || typeof A != "object")
|
|
4570
4570
|
return { code: "malformed", details: "payload is not an object" };
|
|
4571
4571
|
const B = A;
|
|
4572
|
-
return B.version !==
|
|
4572
|
+
return B.version !== RA ? {
|
|
4573
4573
|
code: "version-mismatch",
|
|
4574
|
-
details: `expected version ${
|
|
4574
|
+
details: `expected version ${RA}, got ${String(B.version)}`,
|
|
4575
4575
|
...typeof B.version == "number" ? { payloadVersion: B.version } : {},
|
|
4576
|
-
expectedVersion:
|
|
4576
|
+
expectedVersion: RA
|
|
4577
4577
|
} : typeof B.senderTime != "number" ? { code: "invalid-field", details: "senderTime must be a number", field: "senderTime" } : !B.instruments || typeof B.instruments != "object" ? { code: "invalid-field", details: "instruments must be an object", field: "instruments" } : null;
|
|
4578
4578
|
}
|
|
4579
4579
|
/**
|
|
@@ -4589,7 +4589,7 @@ class BB {
|
|
|
4589
4589
|
*/
|
|
4590
4590
|
processFrame(A, B, I) {
|
|
4591
4591
|
const Q = { ...A, events: [...A.events] }, g = [];
|
|
4592
|
-
for (const i of
|
|
4592
|
+
for (const i of FA) {
|
|
4593
4593
|
const a = this.state[i];
|
|
4594
4594
|
if (a.muted) {
|
|
4595
4595
|
if (Q.events = Q.events.filter((R) => R.type !== i), a.pendingTapEvents = [], a.mode === "pattern" && a.pattern && a.replayLastEventTime > 0)
|
|
@@ -4774,13 +4774,13 @@ class BB {
|
|
|
4774
4774
|
findMatchingPosition(A, B) {
|
|
4775
4775
|
if (!A.pattern) return -1;
|
|
4776
4776
|
const I = A.refinementIndex % A.pattern.length, Q = A.pattern[I];
|
|
4777
|
-
if (Math.abs(B - Q) / Q <=
|
|
4777
|
+
if (Math.abs(B - Q) / Q <= tA)
|
|
4778
4778
|
return I;
|
|
4779
4779
|
let g = -1, E = 1 / 0;
|
|
4780
4780
|
for (let C = 0; C < A.pattern.length; C++) {
|
|
4781
4781
|
if (C === I) continue;
|
|
4782
4782
|
const i = Math.abs(B - A.pattern[C]) / A.pattern[C];
|
|
4783
|
-
i <=
|
|
4783
|
+
i <= tA && i < E && (E = i, g = C);
|
|
4784
4784
|
}
|
|
4785
4785
|
return g;
|
|
4786
4786
|
}
|
|
@@ -4802,13 +4802,13 @@ class BB {
|
|
|
4802
4802
|
*/
|
|
4803
4803
|
tryRecognizePattern(A) {
|
|
4804
4804
|
const I = this.state[A].tapIOIs;
|
|
4805
|
-
if (I.length <
|
|
4806
|
-
const Q = Math.min(fB, Math.floor(I.length /
|
|
4805
|
+
if (I.length < sA) return null;
|
|
4806
|
+
const Q = Math.min(fB, Math.floor(I.length / sA));
|
|
4807
4807
|
for (let g = 1; g <= Q; g++) {
|
|
4808
|
-
const E =
|
|
4808
|
+
const E = sA * g;
|
|
4809
4809
|
if (I.length < E) continue;
|
|
4810
|
-
const C = g <= 2 ?
|
|
4811
|
-
for (let o = 0; o <
|
|
4810
|
+
const C = g <= 2 ? tA : tA * (2 / g), i = I.slice(-E), a = [];
|
|
4811
|
+
for (let o = 0; o < sA; o++)
|
|
4812
4812
|
a.push(i.slice(o * g, (o + 1) * g));
|
|
4813
4813
|
const s = a[0].map((o, h) => {
|
|
4814
4814
|
let R = 0;
|
|
@@ -4835,7 +4835,7 @@ class BB {
|
|
|
4835
4835
|
*/
|
|
4836
4836
|
applyPattern(A, B) {
|
|
4837
4837
|
const I = this.state[A];
|
|
4838
|
-
I.pattern = B, this.setMode(A, "pattern"), I.refinementIndex = 0, I.refinementCounts = new Array(B.length).fill(
|
|
4838
|
+
I.pattern = B, this.setMode(A, "pattern"), I.refinementIndex = 0, I.refinementCounts = new Array(B.length).fill(sA), (I.replayLastEventTime === 0 || I.replayLastEventTime < I.lastTapTime) && (I.replayLastEventTime = I.lastTapTime, I.replayIndex = 0);
|
|
4839
4839
|
}
|
|
4840
4840
|
createTapEvent(A, B, I) {
|
|
4841
4841
|
return {
|
|
@@ -4865,7 +4865,7 @@ class BB {
|
|
|
4865
4865
|
return g;
|
|
4866
4866
|
}
|
|
4867
4867
|
reset() {
|
|
4868
|
-
for (const A of
|
|
4868
|
+
for (const A of FA)
|
|
4869
4869
|
this.clear(A);
|
|
4870
4870
|
}
|
|
4871
4871
|
}
|
|
@@ -5010,8 +5010,8 @@ j.prototype._transform4 = function() {
|
|
|
5010
5010
|
var G = g >>> 2;
|
|
5011
5011
|
for (E = 0; E < B; E += g)
|
|
5012
5012
|
for (var o = E + G, h = E, R = 0; h < o; h += 2, R += Q) {
|
|
5013
|
-
const w = h, t = w + G, c = t + G, F = c + G, e = A[w], y = A[w + 1], M = A[t], n = A[t + 1], k = A[c], d = A[c + 1], l = A[F], Y = A[F + 1], U = e, Z = y, b = s[R], m = a * s[R + 1], q = M * b - n * m, r = M * m + n * b, p = s[2 * R], P = a * s[2 * R + 1], X = k * p - d * P, x = k * P + d * p, T = s[3 * R], u = a * s[3 * R + 1], _ = l * T - Y * u, K = l * u + Y * T, z = U + X, f = Z + x, N = U - X, L = Z - x, V = q + _, S = r + K, W = a * (q - _), v = a * (r - K), $ = z + V,
|
|
5014
|
-
A[w] = $, A[w + 1] =
|
|
5013
|
+
const w = h, t = w + G, c = t + G, F = c + G, e = A[w], y = A[w + 1], M = A[t], n = A[t + 1], k = A[c], d = A[c + 1], l = A[F], Y = A[F + 1], U = e, Z = y, b = s[R], m = a * s[R + 1], q = M * b - n * m, r = M * m + n * b, p = s[2 * R], P = a * s[2 * R + 1], X = k * p - d * P, x = k * P + d * p, T = s[3 * R], u = a * s[3 * R + 1], _ = l * T - Y * u, K = l * u + Y * T, z = U + X, f = Z + x, N = U - X, L = Z - x, V = q + _, S = r + K, W = a * (q - _), v = a * (r - K), $ = z + V, cA = f + S, MA = z - V, lA = f - S, nA = N + v, dA = L - W, JA = N - v, YA = L + W;
|
|
5014
|
+
A[w] = $, A[w + 1] = cA, A[t] = nA, A[t + 1] = dA, A[c] = MA, A[c + 1] = lA, A[F] = JA, A[F + 1] = YA;
|
|
5015
5015
|
}
|
|
5016
5016
|
}
|
|
5017
5017
|
};
|
|
@@ -5041,8 +5041,8 @@ j.prototype._realTransform4 = function() {
|
|
|
5041
5041
|
var G = g >>> 1, o = G >>> 1, h = o >>> 1;
|
|
5042
5042
|
for (E = 0; E < B; E += g)
|
|
5043
5043
|
for (var R = 0, w = 0; R <= h; R += 2, w += Q) {
|
|
5044
|
-
var t = E + R, c = t + o, F = c + o, e = F + o, y = A[t], M = A[t + 1], n = A[c], k = A[c + 1], d = A[F], l = A[F + 1], Y = A[e], U = A[e + 1], Z = y, b = M, m = s[w], q = a * s[w + 1], r = n * m - k * q, p = n * q + k * m, P = s[2 * w], X = a * s[2 * w + 1], x = d * P - l * X, T = d * X + l * P, u = s[3 * w], _ = a * s[3 * w + 1], K = Y * u - U * _, z = Y * _ + U * u, f = Z + x, N = b + T, L = Z - x, V = b - T, S = r + K, W = p + z, v = a * (r - K), $ = a * (p - z),
|
|
5045
|
-
if (A[t] =
|
|
5044
|
+
var t = E + R, c = t + o, F = c + o, e = F + o, y = A[t], M = A[t + 1], n = A[c], k = A[c + 1], d = A[F], l = A[F + 1], Y = A[e], U = A[e + 1], Z = y, b = M, m = s[w], q = a * s[w + 1], r = n * m - k * q, p = n * q + k * m, P = s[2 * w], X = a * s[2 * w + 1], x = d * P - l * X, T = d * X + l * P, u = s[3 * w], _ = a * s[3 * w + 1], K = Y * u - U * _, z = Y * _ + U * u, f = Z + x, N = b + T, L = Z - x, V = b - T, S = r + K, W = p + z, v = a * (r - K), $ = a * (p - z), cA = f + S, MA = N + W, lA = L + $, nA = V - v;
|
|
5045
|
+
if (A[t] = cA, A[t + 1] = MA, A[c] = lA, A[c + 1] = nA, R === 0) {
|
|
5046
5046
|
var dA = f - S, JA = N - W;
|
|
5047
5047
|
A[F] = dA, A[F + 1] = JA;
|
|
5048
5048
|
continue;
|
|
@@ -9302,7 +9302,7 @@ class sI {
|
|
|
9302
9302
|
this.internalDevice = { motion: null, orientation: null };
|
|
9303
9303
|
}
|
|
9304
9304
|
}
|
|
9305
|
-
class
|
|
9305
|
+
class oA {
|
|
9306
9306
|
/**
|
|
9307
9307
|
* Detects the renderer type from scene code comments
|
|
9308
9308
|
*
|
|
@@ -9475,6 +9475,10 @@ class tA {
|
|
|
9475
9475
|
return B === "shader" ? (Q.mouse.position = /\bu_mouse(\b|InCanvas|Delta|Wheel)/.test(I), Q.mouse.left = /\bu_mouse(Left|Pressed|WasPressed|WasReleased)\b/.test(I), Q.mouse.right = /\bu_mouseRight\b/.test(I), Q.mouse.middle = /\bu_mouseMiddle\b/.test(I), Q.pointer.position = /\bu_pointer(\b|Delta|InCanvas)/.test(I), Q.pointer.down = /\bu_pointer(Down|WasPressed|WasReleased)\b/.test(I), Q.touch = /\bu_touch/.test(I)) : (Q.mouse.position = /\bmouse\.(x|y|deltaX|deltaY|wheelDelta|wheelX|wheelY|wasMoved)\b/.test(I), Q.mouse.left = /\bmouse\.(leftButton|isPressed|wasPressed|wasReleased)\b/.test(I), Q.mouse.right = /\bmouse\.rightButton\b/.test(I), Q.mouse.middle = /\bmouse\.middleButton\b/.test(I), Q.pointer.position = /\bpointer\.(x|y|deltaX|deltaY)\b/.test(I), Q.pointer.down = /\bpointer\.(isDown|wasPressed|wasReleased)\b/.test(I), Q.touch = /\btouches\./.test(I)), Q;
|
|
9476
9476
|
}
|
|
9477
9477
|
}
|
|
9478
|
+
function SI(D) {
|
|
9479
|
+
const A = oA.detectRendererType(D);
|
|
9480
|
+
return oA.detectCapabilities(D, A);
|
|
9481
|
+
}
|
|
9478
9482
|
function RI(D) {
|
|
9479
9483
|
if (typeof D == "string")
|
|
9480
9484
|
return wI(D);
|
|
@@ -9490,7 +9494,7 @@ function RI(D) {
|
|
|
9490
9494
|
}
|
|
9491
9495
|
throw new Error(`Invalid color input: expected string or object, got ${typeof D}`);
|
|
9492
9496
|
}
|
|
9493
|
-
function
|
|
9497
|
+
function wA(D, A, B) {
|
|
9494
9498
|
const I = ZA(D, "r"), Q = ZA(A, "g"), g = ZA(B, "b");
|
|
9495
9499
|
return "#" + LA(I) + LA(Q) + LA(g);
|
|
9496
9500
|
}
|
|
@@ -9505,7 +9509,7 @@ function IB(D, A, B) {
|
|
|
9505
9509
|
let a = 0, s = 0, G = 0;
|
|
9506
9510
|
C < 1 ? (a = E, s = i, G = 0) : C < 2 ? (a = i, s = E, G = 0) : C < 3 ? (a = 0, s = E, G = i) : C < 4 ? (a = 0, s = i, G = E) : C < 5 ? (a = i, s = 0, G = E) : (a = E, s = 0, G = i);
|
|
9507
9511
|
const o = g - E;
|
|
9508
|
-
return
|
|
9512
|
+
return wA(
|
|
9509
9513
|
Math.round((a + o) * 255),
|
|
9510
9514
|
Math.round((s + o) * 255),
|
|
9511
9515
|
Math.round((G + o) * 255)
|
|
@@ -9547,7 +9551,7 @@ function FI(D) {
|
|
|
9547
9551
|
if (A.length !== 3)
|
|
9548
9552
|
throw new Error(`rgb() requires 3 arguments, got ${A.length}: rgb(${D})`);
|
|
9549
9553
|
const B = BA(A[0], "r"), I = BA(A[1], "g"), Q = BA(A[2], "b");
|
|
9550
|
-
return
|
|
9554
|
+
return wA(B, I, Q);
|
|
9551
9555
|
}
|
|
9552
9556
|
function tI(D) {
|
|
9553
9557
|
const A = kA(D);
|
|
@@ -9570,18 +9574,18 @@ function yI(D) {
|
|
|
9570
9574
|
const B = BA(A[0], "r"), I = BA(A[1], "g"), Q = BA(A[2], "b");
|
|
9571
9575
|
if (B < 0 || B > 1 || I < 0 || I > 1 || Q < 0 || Q > 1)
|
|
9572
9576
|
throw new Error(`vec3() components must be in 0..1, got: vec3(${B}, ${I}, ${Q})`);
|
|
9573
|
-
return
|
|
9577
|
+
return wA(
|
|
9574
9578
|
Math.round(B * 255),
|
|
9575
9579
|
Math.round(I * 255),
|
|
9576
9580
|
Math.round(Q * 255)
|
|
9577
9581
|
);
|
|
9578
9582
|
}
|
|
9579
9583
|
function kI(D) {
|
|
9580
|
-
const A =
|
|
9581
|
-
return
|
|
9584
|
+
const A = DA(D.r, "r"), B = DA(D.g, "g"), I = DA(D.b, "b");
|
|
9585
|
+
return wA(A, B, I);
|
|
9582
9586
|
}
|
|
9583
9587
|
function MI(D) {
|
|
9584
|
-
const A =
|
|
9588
|
+
const A = DA(D.h, "h"), B = DA(D.s, "s"), I = DA(D.b, "b");
|
|
9585
9589
|
return IB(A, B, I);
|
|
9586
9590
|
}
|
|
9587
9591
|
function lI(D, A, B) {
|
|
@@ -9593,7 +9597,7 @@ function lI(D, A, B) {
|
|
|
9593
9597
|
let a = 0, s = 0, G = 0;
|
|
9594
9598
|
C < 1 ? (a = E, s = i, G = 0) : C < 2 ? (a = i, s = E, G = 0) : C < 3 ? (a = 0, s = E, G = i) : C < 4 ? (a = 0, s = i, G = E) : C < 5 ? (a = i, s = 0, G = E) : (a = E, s = 0, G = i);
|
|
9595
9599
|
const o = g - E / 2;
|
|
9596
|
-
return
|
|
9600
|
+
return wA(
|
|
9597
9601
|
Math.round((a + o) * 255),
|
|
9598
9602
|
Math.round((s + o) * 255),
|
|
9599
9603
|
Math.round((G + o) * 255)
|
|
@@ -9613,7 +9617,7 @@ function _A(D, A) {
|
|
|
9613
9617
|
throw new Error(`Field '${A}' must use percent notation (e.g., 50%), got: '${D}'`);
|
|
9614
9618
|
return BA(D.slice(0, -1), A);
|
|
9615
9619
|
}
|
|
9616
|
-
function
|
|
9620
|
+
function DA(D, A) {
|
|
9617
9621
|
if (typeof D != "number" || !isFinite(D))
|
|
9618
9622
|
throw new Error(`Invalid color field '${A}': expected finite number, got ${D}`);
|
|
9619
9623
|
return D;
|
|
@@ -9789,7 +9793,7 @@ class mA {
|
|
|
9789
9793
|
// Canvas DOM interaction disabled in headless by default
|
|
9790
9794
|
// InteractionManager (viji.mouse/etc) always exists regardless
|
|
9791
9795
|
allowUserInteraction: A.allowUserInteraction ?? !this.isHeadless
|
|
9792
|
-
}, this.sceneRenderer =
|
|
9796
|
+
}, this.sceneRenderer = oA.detectRendererType(A.sceneCode), this.sceneCapabilities = oA.detectCapabilities(A.sceneCode, this.sceneRenderer), this.sceneRenderer === "p5" && (this.sceneP5CanvasMode = oA.detectP5CanvasMode(A.sceneCode)), this.sceneConsumesAnalysedFrame = oA.detectAnalysedFrameUse(A.sceneCode), A.videoStream && this.engineGroup.setMainVideoStream(A.videoStream);
|
|
9793
9797
|
for (const Q of A.videoStreams ?? [])
|
|
9794
9798
|
this.engineGroup.addAdditionalVideoStream(Q);
|
|
9795
9799
|
this.currentInteractionEnabled = this.config.allowUserInteraction, A.allowDeviceInteraction && (this.deviceSensorManager = new sI()), this.debugLog(`VijiCore created: ${this.instanceId} (headless: ${this.isHeadless}, sharedEngines: ${!!A.mediaSource})`);
|
|
@@ -11558,14 +11562,15 @@ function JI(D) {
|
|
|
11558
11562
|
expectedVersion: 1
|
|
11559
11563
|
} : typeof A.senderTime != "number" ? { code: "invalid-field", details: "senderTime must be a number", field: "senderTime" } : null;
|
|
11560
11564
|
}
|
|
11561
|
-
const
|
|
11565
|
+
const NI = "0.11.4";
|
|
11562
11566
|
export {
|
|
11563
11567
|
yA as A,
|
|
11564
11568
|
UI as C,
|
|
11565
11569
|
YI as I,
|
|
11566
|
-
|
|
11570
|
+
NI as V,
|
|
11567
11571
|
mA as a,
|
|
11568
|
-
|
|
11572
|
+
SI as b,
|
|
11573
|
+
J as c,
|
|
11569
11574
|
$B as g
|
|
11570
11575
|
};
|
|
11571
|
-
//# sourceMappingURL=index-
|
|
11576
|
+
//# sourceMappingURL=index-LgAeJ6JG.js.map
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Analyzes a scene's source code and returns the capabilities it declares,
|
|
3
|
+
* without constructing a core. Composes {@link SceneAnalyzer.detectRendererType}
|
|
4
|
+
* and {@link SceneAnalyzer.detectCapabilities} — the same two steps `VijiCore`
|
|
5
|
+
* performs at construction — so for a given core version the result is
|
|
6
|
+
* identical to a booted core's `getSceneData().capabilities`.
|
|
7
|
+
*
|
|
8
|
+
* Intended for out-of-engine consumers (e.g. server-side persistence of
|
|
9
|
+
* per-scene capabilities). The following properties are an intentional, kept
|
|
10
|
+
* contract:
|
|
11
|
+
* - **Pure and Node-safe** — static analysis only; the scene is never executed
|
|
12
|
+
* and no DOM, canvas, or worker API is touched. Callable in a bare Node
|
|
13
|
+
* process.
|
|
14
|
+
* - **Deterministic** — same code string, same result, within a core version.
|
|
15
|
+
* - **Inclusive-biased** — a capability the scene uses is never hidden; a
|
|
16
|
+
* rare ambiguous case may report an extra one.
|
|
17
|
+
* - **Safe on untrusted input** — linear-time scan and regexes with no throw
|
|
18
|
+
* paths on any string input.
|
|
19
|
+
*
|
|
20
|
+
* Note for consumers filtering on `video`: the flag means the scene reads the
|
|
21
|
+
* video *image* (pixels/texture). Shader scenes that consume only CV result
|
|
22
|
+
* uniforms report `cv.*` without `video`, so a "reacts to the camera" filter
|
|
23
|
+
* should test `video || any cv key`.
|
|
24
|
+
*
|
|
25
|
+
* @param sceneCode - The artist's scene code (native, p5, or shader)
|
|
26
|
+
* @returns The set of capabilities the scene declares it uses
|
|
27
|
+
* @example
|
|
28
|
+
* ```ts
|
|
29
|
+
* const caps = analyzeSceneCapabilities(scene.code);
|
|
30
|
+
* if (caps.audio) tags.push('audio');
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export declare function analyzeSceneCapabilities(sceneCode: string): SceneCapabilities;
|
|
34
|
+
|
|
1
35
|
declare interface AudioAnalysisState {
|
|
2
36
|
isConnected: boolean;
|
|
3
37
|
currentBPM: number;
|
|
@@ -2798,7 +2832,7 @@ declare type TrackingState = 'TRACKING' | 'LOCKED' | 'BREAKDOWN' | 'LOST';
|
|
|
2798
2832
|
/** Returned by `on*` listener registration calls; invoke to unsubscribe. */
|
|
2799
2833
|
export declare type Unsubscribe = () => void;
|
|
2800
2834
|
|
|
2801
|
-
export declare const VERSION = "0.11.
|
|
2835
|
+
export declare const VERSION = "0.11.4";
|
|
2802
2836
|
|
|
2803
2837
|
/**
|
|
2804
2838
|
* Real-time video API: drawable frame, dimensions, and the source-side
|
package/dist/index.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { A as
|
|
1
|
+
import { A as e, C as i, I as r, V as o, a as C, c as E, b as A } from "./index-LgAeJ6JG.js";
|
|
2
2
|
export {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
3
|
+
e as AudioSystem,
|
|
4
|
+
i as CV_FEATURE_KEYS,
|
|
5
|
+
r as INPUT_CAPABILITY_KEYS,
|
|
6
|
+
o as VERSION,
|
|
7
|
+
C as VijiCore,
|
|
8
|
+
E as VijiCoreError,
|
|
9
|
+
A as analyzeSceneCapabilities
|
|
9
10
|
};
|
|
10
11
|
//# sourceMappingURL=index.js.map
|