@viji-dev/core 0.7.4 → 0.7.6

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.
@@ -1,4 +1,4 @@
1
- import { g as kn } from "./index-DmQ5U_50.js";
1
+ import { g as kn } from "./index-DkwlRK6X.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-BgpNs-yB.js.map
3377
+ //# sourceMappingURL=essentia-wasm.web-B9C3y5iZ.js.map
@@ -536,7 +536,7 @@ class DB {
536
536
  }
537
537
  }
538
538
  }
539
- const oB = "" + new URL("assets/viji.worker-Dq2EQ0Wd.js", import.meta.url).href, hB = new URL("assets/wasm/vision_wasm_internal.js", import.meta.url).href, RB = new URL("assets/wasm/vision_wasm_internal.wasm", import.meta.url).href, wB = new URL("assets/wasm/vision_wasm_nosimd_internal.js", import.meta.url).href, sB = new URL("assets/wasm/vision_wasm_nosimd_internal.wasm", import.meta.url).href;
539
+ const oB = "" + new URL("assets/viji.worker-D4GXsHWY.js", import.meta.url).href, hB = new URL("assets/wasm/vision_wasm_internal.js", import.meta.url).href, RB = new URL("assets/wasm/vision_wasm_internal.wasm", import.meta.url).href, wB = new URL("assets/wasm/vision_wasm_nosimd_internal.js", import.meta.url).href, sB = new URL("assets/wasm/vision_wasm_nosimd_internal.wasm", import.meta.url).href;
540
540
  class FB {
541
541
  constructor(A, B, I) {
542
542
  this.iframeManager = A, this.sceneCode = B, this.init = I;
@@ -1520,7 +1520,7 @@ class YB {
1520
1520
  if (!this.isInitialized)
1521
1521
  return this.initPromise ? this.initPromise : (this.initPromise = (async () => {
1522
1522
  try {
1523
- const A = await import("./essentia.js-core.es-CC_3Ap1i.js"), B = await import("./essentia-wasm.web-BgpNs-yB.js").then((g) => g.e), I = A.Essentia || A.default?.Essentia || A.default;
1523
+ const A = await import("./essentia.js-core.es-CC_3Ap1i.js"), B = await import("./essentia-wasm.web-B9C3y5iZ.js").then((g) => g.e), I = A.Essentia || A.default?.Essentia || A.default;
1524
1524
  let Q = B.default || B.EssentiaWASM || B.default?.EssentiaWASM;
1525
1525
  if (!Q)
1526
1526
  throw new Error("WASM module not found - check essentia-wasm.web.js export");
@@ -8406,4 +8406,4 @@ export {
8406
8406
  S as b,
8407
8407
  vB as g
8408
8408
  };
8409
- //# sourceMappingURL=index-DmQ5U_50.js.map
8409
+ //# sourceMappingURL=index-DkwlRK6X.js.map
package/dist/index.d.ts CHANGED
@@ -1442,7 +1442,13 @@ declare interface NumberConfig {
1442
1442
  min?: number;
1443
1443
  /** Inclusive maximum value. Default: `100`. */
1444
1444
  max?: number;
1445
- /** Increment between values. Default: `1`. */
1445
+ /**
1446
+ * Increment between values. When omitted, auto-derives from `min`/`max` as
1447
+ * the largest power of 10 giving ~100 positions across the range (e.g.,
1448
+ * range `0..1` → `0.01`, range `0..100` → `1`, range `0.1..5` → `0.01`).
1449
+ * Specify explicitly for integer counts (`step: 1`) or fine precision
1450
+ * (`step: 0.001`).
1451
+ */
1446
1452
  step?: number;
1447
1453
  /** Display name shown next to the input in the parameter UI. Required. */
1448
1454
  label: string;
@@ -1521,6 +1527,13 @@ declare type ParameterCategory = 'audio' | 'video' | 'interaction' | 'general';
1521
1527
  export declare interface ParameterConfig {
1522
1528
  min?: number;
1523
1529
  max?: number;
1530
+ /**
1531
+ * Increment between values. When omitted, auto-derives from `min`/`max` as
1532
+ * the largest power of 10 giving ~100 positions across the range (e.g.,
1533
+ * range `0..1` → `0.01`, range `0..100` → `1`, range `0.1..5` → `0.01`).
1534
+ * Specify explicitly for integer counts (`step: 1`) or fine precision
1535
+ * (`step: 0.001`).
1536
+ */
1524
1537
  step?: number;
1525
1538
  options?: string[] | number[];
1526
1539
  maxLength?: number;
@@ -1721,6 +1734,10 @@ export declare type Resolution = {
1721
1734
  * inspection, a per-argument byte cap (`consoleArgMaxBytes`), and an argument
1722
1735
  * count cap (`consoleMaxArgsPerCall`). High-cardinality logs are rate-limited
1723
1736
  * by `consoleMaxUniqueSignaturesPerSecond`.
1737
+ *
1738
+ * Coalescing semantics match `SceneRuntimeError`: `count` and `firstSeenAt`
1739
+ * are cumulative for the scene session (monotonically non-decreasing across
1740
+ * coalescing windows), reset only when the worker terminates.
1724
1741
  */
1725
1742
  export declare interface SceneConsoleMessage {
1726
1743
  /** Console method invoked. */
@@ -1729,9 +1746,19 @@ export declare interface SceneConsoleMessage {
1729
1746
  args: string[];
1730
1747
  /** Stable hash of `level` and the stringified arguments, used for coalescing. */
1731
1748
  signatureHash: string;
1732
- /** Number of occurrences of this signature accumulated in the current window. */
1749
+ /**
1750
+ * Cumulative number of occurrences of this signature since it was first
1751
+ * seen in this scene session. Monotonically non-decreasing across
1752
+ * coalescing windows; each fire carries the up-to-date total. Consumers
1753
+ * that maintain a per-signature view should REPLACE their stored count
1754
+ * with this value on each fire, not add to it.
1755
+ */
1733
1756
  count: number;
1734
- /** Millisecond timestamp of the first occurrence of this signature in the current window. */
1757
+ /**
1758
+ * Millisecond timestamp of the FIRST occurrence of this signature in this
1759
+ * scene session. Set once and unchanged for every subsequent fire of the
1760
+ * same signature.
1761
+ */
1735
1762
  firstSeenAt: number;
1736
1763
  /** Millisecond timestamp of the most recent occurrence. */
1737
1764
  lastSeenAt: number;
@@ -1759,9 +1786,15 @@ export declare type SceneErrorCode = 'SCENE_CODE_ERROR' | 'RENDER_ERROR' | 'UNCA
1759
1786
  /**
1760
1787
  * Structured scene runtime error envelope surfaced via `VijiCore.onSceneRuntimeError`.
1761
1788
  *
1762
- * Identical signatures are coalesced inside the worker: the first occurrence in
1763
- * a window fires with `count: 1`, subsequent occurrences increment `count`, and
1764
- * a trailing rollup fires at window close if more than one occurrence was seen.
1789
+ * Identical signatures are coalesced inside the worker. The first ever
1790
+ * occurrence of a signature in this scene session fires immediately with
1791
+ * `count: 1`; further occurrences within the coalescing window are absorbed
1792
+ * silently and emitted as a single trailing rollup with the up-to-date
1793
+ * cumulative count at window close. Subsequent bursts of the same signature
1794
+ * refire a leading edge with the up-to-date cumulative count and re-arm the
1795
+ * rollup timer. `count` and `firstSeenAt` are cumulative for the scene
1796
+ * session — they persist across coalescing windows and are reset only when
1797
+ * the worker terminates (scene teardown).
1765
1798
  *
1766
1799
  * The host-side `console.error('Scene error:', data)` tee continues to fire
1767
1800
  * alongside the listener (never silenced based on listener presence).
@@ -1785,9 +1818,20 @@ export declare interface SceneRuntimeError {
1785
1818
  code: SceneErrorCode;
1786
1819
  /** Stable hash of `message` and the first artist stack frame, used for coalescing. */
1787
1820
  signatureHash: string;
1788
- /** Number of occurrences of this signature accumulated in the current window. */
1821
+ /**
1822
+ * Cumulative number of occurrences of this signature since it was first
1823
+ * seen in this scene session. Monotonically non-decreasing across
1824
+ * coalescing windows; each fire carries the up-to-date total. Consumers
1825
+ * that maintain a per-signature view should REPLACE their stored count
1826
+ * with this value on each fire, not add to it.
1827
+ */
1789
1828
  count: number;
1790
- /** Millisecond timestamp of the first occurrence of this signature in the current window. */
1829
+ /**
1830
+ * Millisecond timestamp of the FIRST occurrence of this signature in this
1831
+ * scene session. Set once and unchanged for every subsequent fire of the
1832
+ * same signature — `Date.now() - firstSeenAt` is the lifetime of the
1833
+ * signature in this session, useful for chronicity reasoning.
1834
+ */
1791
1835
  firstSeenAt: number;
1792
1836
  /** Millisecond timestamp of the most recent occurrence. */
1793
1837
  lastSeenAt: number;
@@ -2170,7 +2214,13 @@ declare interface SliderConfig {
2170
2214
  min?: number;
2171
2215
  /** Inclusive maximum value of the slider. Default: `100`. */
2172
2216
  max?: number;
2173
- /** Increment between values. Default: `1`. */
2217
+ /**
2218
+ * Increment between values. When omitted, auto-derives from `min`/`max` as
2219
+ * the largest power of 10 giving ~100 positions across the range (e.g.,
2220
+ * range `0..1` → `0.01`, range `0..100` → `1`, range `0.1..5` → `0.01`,
2221
+ * range `0..1000` → `10`). Specify explicitly for integer counts
2222
+ * (`step: 1` on a range of `3..30`) or fine precision (`step: 0.001`).
2223
+ */
2174
2224
  step?: number;
2175
2225
  /** Display name shown next to the control in the parameter UI. Required. */
2176
2226
  label: string;
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { A as a, V as i, a as s, b as e } from "./index-DmQ5U_50.js";
1
+ import { A as a, V as i, a as s, b as e } from "./index-DkwlRK6X.js";
2
2
  export {
3
3
  a as AudioSystem,
4
4
  i as VERSION,
package/package.json CHANGED
@@ -1,100 +1,100 @@
1
- {
2
- "name": "@viji-dev/core",
3
- "version": "0.7.4",
4
- "description": "Universal execution engine for Viji Creative scenes",
5
- "type": "module",
6
- "main": "./dist/index.js",
7
- "module": "./dist/index.js",
8
- "types": "./dist/index.d.ts",
9
- "exports": {
10
- ".": {
11
- "import": "./dist/index.js",
12
- "types": "./dist/index.d.ts"
13
- },
14
- "./artist-global": {
15
- "types": "./dist/artist-global.d.ts"
16
- },
17
- "./artist-dts": {
18
- "import": "./dist/artist-dts.js",
19
- "types": "./dist/artist-dts.d.ts"
20
- },
21
- "./artist-jsdoc": {
22
- "types": "./dist/artist-jsdoc.d.ts"
23
- },
24
- "./artist-js-ambient": {
25
- "types": "./dist/artist-js-ambient.d.ts"
26
- },
27
- "./artist-dts-p5": {
28
- "import": "./dist/artist-dts-p5.js",
29
- "types": "./dist/artist-dts-p5.d.ts"
30
- },
31
- "./artist-global-p5": {
32
- "types": "./dist/artist-global-p5.d.ts"
33
- },
34
- "./shader-uniforms": {
35
- "import": "./dist/shader-uniforms.js",
36
- "types": "./dist/shader-uniforms.d.ts"
37
- },
38
- "./docs-api": {
39
- "import": "./dist/docs-api.js",
40
- "types": "./dist/docs-api.d.ts"
41
- }
42
- },
43
- "files": [
44
- "dist/*.js",
45
- "dist/*.d.ts",
46
- "dist/assets",
47
- "!dist/**/*.map",
48
- "README.md"
49
- ],
50
- "scripts": {
51
- "prebuild": "node scripts/prebuild-clean.mjs",
52
- "build": "vite build && node scripts/copy-tasks-assets.mjs && node scripts/build-artist-types.mjs && node scripts/build-docs-api.mjs",
53
- "build:docs": "node scripts/build-docs-api.mjs",
54
- "lint:ai-prompts-drift": "node scripts/lint-ai-prompts-drift.mjs",
55
- "dev": "vite build --watch",
56
- "integration": "vite --config integration-example/vite.config.ts",
57
- "test": "vitest",
58
- "test:coverage": "vitest --coverage",
59
- "type-check": "tsc --noEmit",
60
- "lint": "eslint src --ext .ts"
61
- },
62
- "keywords": [
63
- "viji",
64
- "creative",
65
- "webgl",
66
- "audio-reactive",
67
- "canvas",
68
- "webworker"
69
- ],
70
- "author": "Viji Team",
71
- "license": "SEE LICENSE IN LICENSE",
72
- "devDependencies": {
73
- "@types/node": "^20.0.0",
74
- "@types/p5": "^1.7.6",
75
- "@typescript-eslint/eslint-plugin": "^6.0.0",
76
- "@typescript-eslint/parser": "^6.0.0",
77
- "@vitest/coverage-v8": "^1.0.0",
78
- "dts-bundle-generator": "^9.5.1",
79
- "eslint": "^8.0.0",
80
- "github-slugger": "^2.0.0",
81
- "happy-dom": "^18.0.1",
82
- "mdast-util-to-string": "^4.0.0",
83
- "remark-parse": "^11.0.0",
84
- "typescript": "^5.0.0",
85
- "unified": "^11.0.5",
86
- "vite": "^5.0.0",
87
- "vite-plugin-dts": "^3.0.0",
88
- "vitest": "^1.0.0"
89
- },
90
- "engines": {
91
- "node": ">=18.0.0"
92
- },
93
- "dependencies": {
94
- "@mediapipe/tasks-vision": "^0.10.20",
95
- "@noble/curves": "^2.2.0",
96
- "essentia.js": "^0.1.3",
97
- "fft.js": "^4.0.4",
98
- "sucrase": "^3.35.1"
99
- }
100
- }
1
+ {
2
+ "name": "@viji-dev/core",
3
+ "version": "0.7.6",
4
+ "description": "Universal execution engine for Viji Creative scenes",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "module": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "import": "./dist/index.js",
12
+ "types": "./dist/index.d.ts"
13
+ },
14
+ "./artist-global": {
15
+ "types": "./dist/artist-global.d.ts"
16
+ },
17
+ "./artist-dts": {
18
+ "import": "./dist/artist-dts.js",
19
+ "types": "./dist/artist-dts.d.ts"
20
+ },
21
+ "./artist-jsdoc": {
22
+ "types": "./dist/artist-jsdoc.d.ts"
23
+ },
24
+ "./artist-js-ambient": {
25
+ "types": "./dist/artist-js-ambient.d.ts"
26
+ },
27
+ "./artist-dts-p5": {
28
+ "import": "./dist/artist-dts-p5.js",
29
+ "types": "./dist/artist-dts-p5.d.ts"
30
+ },
31
+ "./artist-global-p5": {
32
+ "types": "./dist/artist-global-p5.d.ts"
33
+ },
34
+ "./shader-uniforms": {
35
+ "import": "./dist/shader-uniforms.js",
36
+ "types": "./dist/shader-uniforms.d.ts"
37
+ },
38
+ "./docs-api": {
39
+ "import": "./dist/docs-api.js",
40
+ "types": "./dist/docs-api.d.ts"
41
+ }
42
+ },
43
+ "files": [
44
+ "dist/*.js",
45
+ "dist/*.d.ts",
46
+ "dist/assets",
47
+ "!dist/**/*.map",
48
+ "README.md"
49
+ ],
50
+ "scripts": {
51
+ "prebuild": "node scripts/prebuild-clean.mjs",
52
+ "build": "vite build && node scripts/copy-tasks-assets.mjs && node scripts/build-artist-types.mjs && node scripts/build-docs-api.mjs",
53
+ "build:docs": "node scripts/build-docs-api.mjs",
54
+ "lint:ai-prompts-drift": "node scripts/lint-ai-prompts-drift.mjs",
55
+ "dev": "vite build --watch",
56
+ "integration": "vite --config integration-example/vite.config.ts",
57
+ "test": "vitest",
58
+ "test:coverage": "vitest --coverage",
59
+ "type-check": "tsc --noEmit",
60
+ "lint": "eslint src --ext .ts"
61
+ },
62
+ "keywords": [
63
+ "viji",
64
+ "creative",
65
+ "webgl",
66
+ "audio-reactive",
67
+ "canvas",
68
+ "webworker"
69
+ ],
70
+ "author": "Viji Team",
71
+ "license": "SEE LICENSE IN LICENSE",
72
+ "devDependencies": {
73
+ "@types/node": "^20.0.0",
74
+ "@types/p5": "^1.7.6",
75
+ "@typescript-eslint/eslint-plugin": "^6.0.0",
76
+ "@typescript-eslint/parser": "^6.0.0",
77
+ "@vitest/coverage-v8": "^1.0.0",
78
+ "dts-bundle-generator": "^9.5.1",
79
+ "eslint": "^8.0.0",
80
+ "github-slugger": "^2.0.0",
81
+ "happy-dom": "^18.0.1",
82
+ "mdast-util-to-string": "^4.0.0",
83
+ "remark-parse": "^11.0.0",
84
+ "typescript": "^5.0.0",
85
+ "unified": "^11.0.5",
86
+ "vite": "^5.0.0",
87
+ "vite-plugin-dts": "^3.0.0",
88
+ "vitest": "^1.0.0"
89
+ },
90
+ "engines": {
91
+ "node": ">=18.0.0"
92
+ },
93
+ "dependencies": {
94
+ "@mediapipe/tasks-vision": "^0.10.20",
95
+ "@noble/curves": "^2.2.0",
96
+ "essentia.js": "^0.1.3",
97
+ "fft.js": "^4.0.4",
98
+ "sucrase": "^3.35.1"
99
+ }
100
+ }