distark-render 1.1.11 → 1.1.12
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/README.md +0 -0
- package/assets/presets/jumping-jack.json +194 -0
- package/assets/tank.json +0 -0
- package/dist/cli/animate.d.ts +0 -0
- package/dist/cli/animate.d.ts.map +0 -0
- package/dist/cli/animate.js +0 -0
- package/dist/cli/animate.js.map +0 -0
- package/dist/cli/diff.d.ts +0 -0
- package/dist/cli/diff.d.ts.map +0 -0
- package/dist/cli/diff.js +0 -0
- package/dist/cli/diff.js.map +0 -0
- package/dist/cli/distark-check.d.ts +0 -0
- package/dist/cli/distark-check.d.ts.map +0 -0
- package/dist/cli/distark-check.js +16 -16
- package/dist/cli/distark-check.js.map +0 -0
- package/dist/cli/query.d.ts +0 -0
- package/dist/cli/query.d.ts.map +0 -0
- package/dist/cli/query.js +0 -0
- package/dist/cli/query.js.map +0 -0
- package/dist/cli/record.d.ts +0 -0
- package/dist/cli/record.d.ts.map +0 -0
- package/dist/cli/record.js +0 -0
- package/dist/cli/record.js.map +0 -0
- package/dist/cli/render.d.ts +0 -0
- package/dist/cli/render.d.ts.map +0 -0
- package/dist/cli/render.js +0 -0
- package/dist/cli/render.js.map +0 -0
- package/dist/cli/scene.d.ts +12 -2
- package/dist/cli/scene.d.ts.map +1 -1
- package/dist/cli/scene.js +235 -4
- package/dist/cli/scene.js.map +1 -1
- package/dist/cli/shared.d.ts +0 -0
- package/dist/cli/shared.d.ts.map +0 -0
- package/dist/cli/shared.js +0 -0
- package/dist/cli/shared.js.map +0 -0
- package/dist/cli/test.d.ts +0 -0
- package/dist/cli/test.d.ts.map +0 -0
- package/dist/cli/test.js +0 -0
- package/dist/cli/test.js.map +0 -0
- package/dist/cli/verify.d.ts +0 -0
- package/dist/cli/verify.d.ts.map +0 -0
- package/dist/cli/verify.js +0 -0
- package/dist/cli/verify.js.map +0 -0
- package/dist/modules/adapters/p5Renderer.d.ts +0 -0
- package/dist/modules/adapters/p5Renderer.d.ts.map +1 -1
- package/dist/modules/adapters/p5Renderer.js +17 -40
- package/dist/modules/adapters/p5Renderer.js.map +1 -1
- package/dist/modules/adapters/skiaRenderer.d.ts +0 -2
- package/dist/modules/adapters/skiaRenderer.d.ts.map +1 -1
- package/dist/modules/adapters/skiaRenderer.js +16 -47
- package/dist/modules/adapters/skiaRenderer.js.map +1 -1
- package/dist/modules/animationDiff.d.ts +0 -0
- package/dist/modules/animationDiff.d.ts.map +0 -0
- package/dist/modules/animationDiff.js +0 -0
- package/dist/modules/animationDiff.js.map +0 -0
- package/dist/modules/browserSceneRenderer.d.ts +0 -0
- package/dist/modules/browserSceneRenderer.d.ts.map +0 -0
- package/dist/modules/browserSceneRenderer.js +0 -0
- package/dist/modules/browserSceneRenderer.js.map +0 -0
- package/dist/modules/characterValidator.d.ts +41 -0
- package/dist/modules/characterValidator.d.ts.map +1 -0
- package/dist/modules/characterValidator.js +233 -0
- package/dist/modules/characterValidator.js.map +1 -0
- package/dist/modules/eyeSystem.d.ts +0 -0
- package/dist/modules/eyeSystem.d.ts.map +0 -0
- package/dist/modules/eyeSystem.js +0 -0
- package/dist/modules/eyeSystem.js.map +0 -0
- package/dist/modules/imageLoad.d.ts +8 -22
- package/dist/modules/imageLoad.d.ts.map +1 -1
- package/dist/modules/imageLoad.js +78 -203
- package/dist/modules/imageLoad.js.map +1 -1
- package/dist/modules/mouthSystem.d.ts +0 -0
- package/dist/modules/mouthSystem.d.ts.map +0 -0
- package/dist/modules/mouthSystem.js +0 -0
- package/dist/modules/mouthSystem.js.map +0 -0
- package/dist/modules/renderRig.d.ts +0 -0
- package/dist/modules/renderRig.d.ts.map +1 -1
- package/dist/modules/renderRig.js +4 -52
- package/dist/modules/renderRig.js.map +1 -1
- package/dist/modules/sceneRenderer.d.ts +1 -2
- package/dist/modules/sceneRenderer.d.ts.map +1 -1
- package/dist/modules/sceneRenderer.js +6 -9
- package/dist/modules/sceneRenderer.js.map +1 -1
- package/dist/tests/helpers.d.ts +0 -0
- package/dist/tests/helpers.d.ts.map +0 -0
- package/dist/tests/helpers.js +0 -0
- package/dist/tests/helpers.js.map +0 -0
- package/dist/tests/test-animation-diff-rendering.d.ts +0 -0
- package/dist/tests/test-animation-diff-rendering.d.ts.map +0 -0
- package/dist/tests/test-animation-diff-rendering.js +0 -0
- package/dist/tests/test-animation-diff-rendering.js.map +0 -0
- package/dist/tests/test-animation-diff.d.ts +0 -0
- package/dist/tests/test-animation-diff.d.ts.map +0 -0
- package/dist/tests/test-animation-diff.js +0 -0
- package/dist/tests/test-animation-diff.js.map +0 -0
- package/dist/tests/test-autofit.d.ts +0 -0
- package/dist/tests/test-autofit.d.ts.map +0 -0
- package/dist/tests/test-autofit.js +0 -0
- package/dist/tests/test-autofit.js.map +0 -0
- package/dist/tests/test-base-autofit.d.ts +0 -0
- package/dist/tests/test-base-autofit.d.ts.map +0 -0
- package/dist/tests/test-base-autofit.js +0 -0
- package/dist/tests/test-base-autofit.js.map +0 -0
- package/dist/tests/test-browser-scene.d.ts +0 -0
- package/dist/tests/test-browser-scene.d.ts.map +0 -0
- package/dist/tests/test-browser-scene.js +0 -0
- package/dist/tests/test-browser-scene.js.map +0 -0
- package/dist/tests/test-character-validator.d.ts +8 -0
- package/dist/tests/test-character-validator.d.ts.map +1 -0
- package/dist/tests/test-character-validator.js +445 -0
- package/dist/tests/test-character-validator.js.map +1 -0
- package/dist/tests/test-cli.d.ts +0 -0
- package/dist/tests/test-cli.d.ts.map +0 -0
- package/dist/tests/test-cli.js +0 -0
- package/dist/tests/test-cli.js.map +0 -0
- package/dist/tests/test-image-loading.d.ts +0 -0
- package/dist/tests/test-image-loading.d.ts.map +0 -0
- package/dist/tests/test-image-loading.js +0 -0
- package/dist/tests/test-image-loading.js.map +0 -0
- package/dist/tests/test-joint-movement.d.ts +0 -0
- package/dist/tests/test-joint-movement.d.ts.map +0 -0
- package/dist/tests/test-joint-movement.js +0 -0
- package/dist/tests/test-joint-movement.js.map +0 -0
- package/dist/tests/test-p5-image-types.d.ts +0 -0
- package/dist/tests/test-p5-image-types.d.ts.map +0 -0
- package/dist/tests/test-p5-image-types.js +0 -0
- package/dist/tests/test-p5-image-types.js.map +0 -0
- package/dist/tests/test-render-cache-visual.d.ts +0 -0
- package/dist/tests/test-render-cache-visual.d.ts.map +0 -0
- package/dist/tests/test-render-cache-visual.js +0 -0
- package/dist/tests/test-render-cache-visual.js.map +0 -0
- package/dist/tests/test-render-cache.d.ts +0 -0
- package/dist/tests/test-render-cache.d.ts.map +0 -0
- package/dist/tests/test-render-cache.js +0 -0
- package/dist/tests/test-render-cache.js.map +0 -0
- package/dist/tests/test-scene.d.ts +0 -0
- package/dist/tests/test-scene.d.ts.map +0 -0
- package/dist/tests/test-scene.js +0 -0
- package/dist/tests/test-scene.js.map +0 -0
- package/dist/tests/test-skia.d.ts +0 -0
- package/dist/tests/test-skia.d.ts.map +0 -0
- package/dist/tests/test-skia.js +0 -0
- package/dist/tests/test-skia.js.map +0 -0
- package/dist/tests/test-torso-pivot.d.ts +0 -0
- package/dist/tests/test-torso-pivot.d.ts.map +0 -0
- package/dist/tests/test-torso-pivot.js +0 -0
- package/dist/tests/test-torso-pivot.js.map +0 -0
- package/dist/tests/test-visual-verification.d.ts +0 -0
- package/dist/tests/test-visual-verification.d.ts.map +0 -0
- package/dist/tests/test-visual-verification.js +0 -0
- package/dist/tests/test-visual-verification.js.map +0 -0
- package/dist/types.d.ts +0 -0
- package/dist/types.d.ts.map +0 -0
- package/dist/types.js +0 -0
- package/dist/types.js.map +0 -0
- package/package.json +7 -1
- package/dist/tests/test-scene-object-svg-rerasterization.d.ts +0 -2
- package/dist/tests/test-scene-object-svg-rerasterization.d.ts.map +0 -1
- package/dist/tests/test-scene-object-svg-rerasterization.js +0 -86
- package/dist/tests/test-scene-object-svg-rerasterization.js.map +0 -1
- package/dist/tests/test-svg-rerasterization.d.ts +0 -2
- package/dist/tests/test-svg-rerasterization.d.ts.map +0 -1
- package/dist/tests/test-svg-rerasterization.js +0 -97
- package/dist/tests/test-svg-rerasterization.js.map +0 -1
|
@@ -18,12 +18,6 @@ export class P5ImageLoader extends ImageLoader {
|
|
|
18
18
|
* Inherits all caching, URL resolution, and batch loading from base class
|
|
19
19
|
*/
|
|
20
20
|
loadImage(key, imageData, onLoad, onError) {
|
|
21
|
-
const cached = this.getCachedImage(key);
|
|
22
|
-
if (cached) {
|
|
23
|
-
if (onLoad)
|
|
24
|
-
onLoad(key, cached);
|
|
25
|
-
return;
|
|
26
|
-
}
|
|
27
21
|
const imageUrl = this.resolveImageSource(imageData);
|
|
28
22
|
if (!imageUrl) {
|
|
29
23
|
console.warn(`Could not resolve image source for ${key}: ${imageData}`);
|
|
@@ -31,40 +25,23 @@ export class P5ImageLoader extends ImageLoader {
|
|
|
31
25
|
onError(key, 'Invalid image source');
|
|
32
26
|
return;
|
|
33
27
|
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
if (onLoad)
|
|
52
|
-
onLoad(key, img);
|
|
53
|
-
}, (err) => {
|
|
54
|
-
if (prepared?.kind === 'blob') {
|
|
55
|
-
URL.revokeObjectURL(prepared.objectUrl);
|
|
56
|
-
}
|
|
57
|
-
console.error(`Failed to load ${key}:`, err);
|
|
58
|
-
if (onError)
|
|
59
|
-
onError(key, err);
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
catch (err) {
|
|
63
|
-
console.error(`Failed to load ${key}:`, err);
|
|
64
|
-
if (onError)
|
|
65
|
-
onError(key, err instanceof Error ? err.message : err);
|
|
66
|
-
}
|
|
67
|
-
})();
|
|
28
|
+
// Check cache first (from base class)
|
|
29
|
+
const cached = this.getCachedImage(key);
|
|
30
|
+
if (cached) {
|
|
31
|
+
if (onLoad)
|
|
32
|
+
onLoad(key, cached);
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
// Use p5.loadImage
|
|
36
|
+
this.p5.loadImage(imageUrl, (img) => {
|
|
37
|
+
this.cacheImage(key, img);
|
|
38
|
+
if (onLoad)
|
|
39
|
+
onLoad(key, img);
|
|
40
|
+
}, (err) => {
|
|
41
|
+
console.error(`Failed to load ${key}:`, err);
|
|
42
|
+
if (onError)
|
|
43
|
+
onError(key, err);
|
|
44
|
+
});
|
|
68
45
|
}
|
|
69
46
|
/**
|
|
70
47
|
* Override to use p5.loadImage instead of createImageBitmap.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"p5Renderer.js","sourceRoot":"","sources":["../../../modules/adapters/p5Renderer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAIvD;;;GAGG;AACH,MAAM,OAAO,aAAc,SAAQ,WAAW;IAG1C,YAAY,UAAe,EAAE,QAAiB;QAC1C,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChB,IAAI,CAAC,EAAE,GAAG,UAAU,CAAC;IACzB,CAAC;IAED;;;OAGG;IACH,SAAS,CACL,GAAW,EACX,SAAiB,EACjB,MAAwC,EACxC,OAAsD;QAEtD,MAAM,
|
|
1
|
+
{"version":3,"file":"p5Renderer.js","sourceRoot":"","sources":["../../../modules/adapters/p5Renderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,8 +17,6 @@ export declare class SkiaImageLoader extends ImageLoader {
|
|
|
17
17
|
*/
|
|
18
18
|
loadImageAsync(key: string, imageData: string): Promise<any>;
|
|
19
19
|
loadAllRigImagesAsync(rigData: RigData): Promise<Record<string, any>>;
|
|
20
|
-
protected createSvgCanvas(svgSource: string, targetWidth: number, targetHeight: number): Promise<any>;
|
|
21
|
-
private getCanvasModule;
|
|
22
20
|
}
|
|
23
21
|
/**
|
|
24
22
|
* Skia Canvas Renderer - Complete rendering solution for Node.js
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skiaRenderer.d.ts","sourceRoot":"","sources":["../../../modules/adapters/skiaRenderer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE5E;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,WAAW;gBAChC,QAAQ,CAAC,EAAE,MAAM;IAI7B;;;OAGG;IACG,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"skiaRenderer.d.ts","sourceRoot":"","sources":["../../../modules/adapters/skiaRenderer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE5E;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,WAAW;gBAChC,QAAQ,CAAC,EAAE,MAAM;IAI7B;;;OAGG;IACG,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IA+B5D,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAgE9E;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,YAAa,SAAQ,oBAAoB;IAClD,OAAO,CAAC,YAAY,CAA2B;IAC/C,OAAO,CAAC,OAAO,CAAkB;gBAErB,QAAQ,CAAC,EAAE,MAAM;IAK7B;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAMjD;;OAEG;IACG,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAa/D;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAE,OAAO,CAAC,aAAa,CAAM,GAAG,aAAa;IAe9E;;;OAGG;IACH,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,UAAU,GAAE,OAAe,EAAE,WAAW,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI;IAgC/F;;;OAGG;IACH,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,EAAE,UAAU,GAAE,OAAe,GAAG,IAAI;IAgBlH;;;;;;OAMG;IACG,YAAY,CACd,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAC/E,OAAO,CAAC,IAAI,CAAC;IA+BhB;;OAEG;IACG,cAAc,CAChB,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,EAChC,MAAM,GAAE,KAAK,GAAG,MAAc,GAC/B,OAAO,CAAC,MAAM,CAAC;IAclB;;OAEG;IACH,KAAK,IAAI,OAAO;IAIhB;;OAEG;IACH,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAGzC"}
|
|
@@ -17,28 +17,29 @@ export class SkiaImageLoader extends ImageLoader {
|
|
|
17
17
|
* Note: This requires the @napi-rs/canvas package's loadImage function
|
|
18
18
|
*/
|
|
19
19
|
async loadImageAsync(key, imageData) {
|
|
20
|
+
const imageUrl = this.resolveImageSource(imageData);
|
|
21
|
+
if (!imageUrl) {
|
|
22
|
+
throw new Error(`Could not resolve image source for ${key}: ${imageData}`);
|
|
23
|
+
}
|
|
20
24
|
// Check cache first
|
|
21
25
|
const cached = this.getCachedImage(key);
|
|
22
26
|
if (cached) {
|
|
23
27
|
return cached;
|
|
24
28
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
this.attachSvgMetadata(canvas, prepared.svgSource, prepared.intrinsicWidth, prepared.intrinsicHeight, prepared.intrinsicWidth, prepared.intrinsicHeight);
|
|
33
|
-
this.cacheImage(key, canvas);
|
|
34
|
-
return canvas;
|
|
29
|
+
// Dynamic import to avoid browser compatibility issues
|
|
30
|
+
let loadImage;
|
|
31
|
+
try {
|
|
32
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
33
|
+
// @ts-ignore - Optional dependency
|
|
34
|
+
const module = await import('@napi-rs/canvas');
|
|
35
|
+
loadImage = module.loadImage;
|
|
35
36
|
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
URL.revokeObjectURL(prepared.objectUrl);
|
|
37
|
+
catch {
|
|
38
|
+
// Fallback to skia-canvas if @napi-rs/canvas is not available
|
|
39
|
+
const module = await import('skia-canvas');
|
|
40
|
+
loadImage = module.loadImage;
|
|
41
41
|
}
|
|
42
|
+
const img = await loadImage(imageUrl);
|
|
42
43
|
this.cacheImage(key, img);
|
|
43
44
|
return img;
|
|
44
45
|
}
|
|
@@ -100,38 +101,6 @@ export class SkiaImageLoader extends ImageLoader {
|
|
|
100
101
|
}
|
|
101
102
|
return loadedImages;
|
|
102
103
|
}
|
|
103
|
-
async createSvgCanvas(svgSource, targetWidth, targetHeight) {
|
|
104
|
-
const width = Math.max(1, Math.round(targetWidth || 1));
|
|
105
|
-
const height = Math.max(1, Math.round(targetHeight || 1));
|
|
106
|
-
const { createCanvas, loadImage } = await this.getCanvasModule();
|
|
107
|
-
const canvas = createCanvas(width, height);
|
|
108
|
-
const ctx = canvas.getContext('2d');
|
|
109
|
-
if (!ctx) {
|
|
110
|
-
throw new Error('Failed to create 2D context for SVG rasterization');
|
|
111
|
-
}
|
|
112
|
-
const image = await loadImage(`data:image/svg+xml;charset=utf-8,${encodeURIComponent(svgSource)}`);
|
|
113
|
-
ctx.clearRect(0, 0, width, height);
|
|
114
|
-
ctx.drawImage(image, 0, 0, width, height);
|
|
115
|
-
return canvas;
|
|
116
|
-
}
|
|
117
|
-
async getCanvasModule() {
|
|
118
|
-
try {
|
|
119
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
120
|
-
// @ts-ignore - Optional dependency
|
|
121
|
-
const module = await import('@napi-rs/canvas');
|
|
122
|
-
return {
|
|
123
|
-
createCanvas: module.createCanvas,
|
|
124
|
-
loadImage: module.loadImage,
|
|
125
|
-
};
|
|
126
|
-
}
|
|
127
|
-
catch {
|
|
128
|
-
const module = await import('skia-canvas');
|
|
129
|
-
return {
|
|
130
|
-
createCanvas: (width, height) => module.Canvas ? new module.Canvas(width, height) : module.createCanvas(width, height),
|
|
131
|
-
loadImage: module.loadImage,
|
|
132
|
-
};
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
104
|
}
|
|
136
105
|
/**
|
|
137
106
|
* Skia Canvas Renderer - Complete rendering solution for Node.js
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skiaRenderer.js","sourceRoot":"","sources":["../../../modules/adapters/skiaRenderer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skiaRenderer.js","sourceRoot":"","sources":["../../../modules/adapters/skiaRenderer.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Character Validator
|
|
3
|
+
*
|
|
4
|
+
* Validates a character rig JSON object and returns a list of issues.
|
|
5
|
+
* Errors = character will not work correctly.
|
|
6
|
+
* Warnings = character may look wrong or have limited expressiveness.
|
|
7
|
+
*
|
|
8
|
+
* This is the single source of truth for what constitutes a valid character.
|
|
9
|
+
* The Ruby mirror in app/models/artifact/character.rb implements the same rules.
|
|
10
|
+
*/
|
|
11
|
+
export type IssueSeverity = 'error' | 'warning';
|
|
12
|
+
export type IssueCategory = 'parts' | 'eyes' | 'mouth' | 'pivots' | 'zIndex' | 'dimensions';
|
|
13
|
+
export interface ValidationIssue {
|
|
14
|
+
field: string;
|
|
15
|
+
message: string;
|
|
16
|
+
severity: IssueSeverity;
|
|
17
|
+
category: IssueCategory;
|
|
18
|
+
}
|
|
19
|
+
export interface CharacterValidationResult {
|
|
20
|
+
/** true only when there are zero errors (warnings are allowed) */
|
|
21
|
+
valid: boolean;
|
|
22
|
+
issues: ValidationIssue[];
|
|
23
|
+
}
|
|
24
|
+
/** The 12 body part image paths every character must have */
|
|
25
|
+
export declare const REQUIRED_BODY_PARTS: readonly ["head", "torso", "leftUpperArm", "leftForearm", "leftHand", "rightUpperArm", "rightForearm", "rightHand", "leftThigh", "leftLeg", "rightThigh", "rightLeg"];
|
|
26
|
+
/** The 13 pivot point connections that chain all limbs */
|
|
27
|
+
export declare const REQUIRED_PIVOT_POINTS: readonly ["root_torso", "torso_head", "head_mouth", "torso_leftUpperArm", "leftUpperArm_leftForearm", "leftForearm_leftHand", "torso_rightUpperArm", "rightUpperArm_rightForearm", "rightForearm_rightHand", "torso_leftThigh", "leftThigh_leftLeg", "torso_rightThigh", "rightThigh_rightLeg"];
|
|
28
|
+
/** Every part that must have a z-index value */
|
|
29
|
+
export declare const REQUIRED_Z_INDEX_PARTS: readonly ["head", "mouth", "torso", "leftEye", "leftIris", "leftEyeLid", "rightEye", "rightIris", "rightEyeLid", "leftUpperArm", "leftForearm", "leftHand", "rightUpperArm", "rightForearm", "rightHand", "leftThigh", "leftLeg", "rightThigh", "rightLeg"];
|
|
30
|
+
/** Eye image hash fields required in the eyes object */
|
|
31
|
+
export declare const REQUIRED_EYE_IMAGES: readonly ["leftEyeImage", "rightEyeImage", "leftIris", "rightIris", "leftEyeLidOpen", "rightEyeLidOpen", "leftEyeLidHalfClosed", "rightEyeLidHalfClosed", "leftEyeLidClosed", "rightEyeLidClosed"];
|
|
32
|
+
/** Eye coordinate fields that must be numbers */
|
|
33
|
+
export declare const REQUIRED_EYE_COORDS: readonly ["leftEyeXCoor", "leftEyeYCoor", "rightEyeXCoor", "rightEyeYCoor", "leftEyeLidXCoor", "leftEyeLidYCoor", "rightEyeLidXCoor", "rightEyeLidYCoor", "leftIrisXCoor", "leftIrisYCoor", "rightIrisXCoor", "rightIrisYCoor"];
|
|
34
|
+
/** Iris size fields that must be positive numbers */
|
|
35
|
+
export declare const REQUIRED_IRIS_SIZES: readonly ["leftIrisWidth", "leftIrisHeight", "rightIrisWidth", "rightIrisHeight"];
|
|
36
|
+
/** Parts that must have a dimensionValues entry with width > 0 and height > 0 */
|
|
37
|
+
export declare const REQUIRED_DIMENSION_PARTS: readonly ["head", "torso", "mouth", "leftUpperArm", "leftForearm", "leftHand", "rightUpperArm", "rightForearm", "rightHand", "leftThigh", "leftLeg", "rightThigh", "rightLeg"];
|
|
38
|
+
/** Mouth shapes that represent the character talking */
|
|
39
|
+
export declare const TALKING_MOUTH_SHAPES: readonly ["open", "half-open", "wide-open", "slightly-open", "f", "l", "ds", "ee", "eh"];
|
|
40
|
+
export declare function validateCharacter(data: unknown): CharacterValidationResult;
|
|
41
|
+
//# sourceMappingURL=characterValidator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"characterValidator.d.ts","sourceRoot":"","sources":["../../modules/characterValidator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,SAAS,CAAC;AAChD,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,YAAY,CAAC;AAE5F,MAAM,WAAW,eAAe;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,aAAa,CAAC;IACxB,QAAQ,EAAE,aAAa,CAAC;CAC3B;AAED,MAAM,WAAW,yBAAyB;IACtC,kEAAkE;IAClE,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,eAAe,EAAE,CAAC;CAC7B;AAID,6DAA6D;AAC7D,eAAO,MAAM,mBAAmB,uKAMtB,CAAC;AAEX,0DAA0D;AAC1D,eAAO,MAAM,qBAAqB,iSAMxB,CAAC;AAEX,gDAAgD;AAChD,eAAO,MAAM,sBAAsB,6PAQzB,CAAC;AAEX,wDAAwD;AACxD,eAAO,MAAM,mBAAmB,oMAMtB,CAAC;AAEX,iDAAiD;AACjD,eAAO,MAAM,mBAAmB,iOAOtB,CAAC;AAEX,qDAAqD;AACrD,eAAO,MAAM,mBAAmB,mFAGtB,CAAC;AAEX,iFAAiF;AACjF,eAAO,MAAM,wBAAwB,gLAM3B,CAAC;AAEX,wDAAwD;AACxD,eAAO,MAAM,oBAAoB,0FAEvB,CAAC;AAyBX,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,yBAAyB,CAoL1E"}
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Character Validator
|
|
3
|
+
*
|
|
4
|
+
* Validates a character rig JSON object and returns a list of issues.
|
|
5
|
+
* Errors = character will not work correctly.
|
|
6
|
+
* Warnings = character may look wrong or have limited expressiveness.
|
|
7
|
+
*
|
|
8
|
+
* This is the single source of truth for what constitutes a valid character.
|
|
9
|
+
* The Ruby mirror in app/models/artifact/character.rb implements the same rules.
|
|
10
|
+
*/
|
|
11
|
+
// ─── Schema constants (exported so Ruby mirror + docs can reference them) ────
|
|
12
|
+
/** The 12 body part image paths every character must have */
|
|
13
|
+
export const REQUIRED_BODY_PARTS = [
|
|
14
|
+
'head', 'torso',
|
|
15
|
+
'leftUpperArm', 'leftForearm', 'leftHand',
|
|
16
|
+
'rightUpperArm', 'rightForearm', 'rightHand',
|
|
17
|
+
'leftThigh', 'leftLeg',
|
|
18
|
+
'rightThigh', 'rightLeg',
|
|
19
|
+
];
|
|
20
|
+
/** The 13 pivot point connections that chain all limbs */
|
|
21
|
+
export const REQUIRED_PIVOT_POINTS = [
|
|
22
|
+
'root_torso', 'torso_head', 'head_mouth',
|
|
23
|
+
'torso_leftUpperArm', 'leftUpperArm_leftForearm', 'leftForearm_leftHand',
|
|
24
|
+
'torso_rightUpperArm', 'rightUpperArm_rightForearm', 'rightForearm_rightHand',
|
|
25
|
+
'torso_leftThigh', 'leftThigh_leftLeg',
|
|
26
|
+
'torso_rightThigh', 'rightThigh_rightLeg',
|
|
27
|
+
];
|
|
28
|
+
/** Every part that must have a z-index value */
|
|
29
|
+
export const REQUIRED_Z_INDEX_PARTS = [
|
|
30
|
+
'head', 'mouth', 'torso',
|
|
31
|
+
'leftEye', 'leftIris', 'leftEyeLid',
|
|
32
|
+
'rightEye', 'rightIris', 'rightEyeLid',
|
|
33
|
+
'leftUpperArm', 'leftForearm', 'leftHand',
|
|
34
|
+
'rightUpperArm', 'rightForearm', 'rightHand',
|
|
35
|
+
'leftThigh', 'leftLeg',
|
|
36
|
+
'rightThigh', 'rightLeg',
|
|
37
|
+
];
|
|
38
|
+
/** Eye image hash fields required in the eyes object */
|
|
39
|
+
export const REQUIRED_EYE_IMAGES = [
|
|
40
|
+
'leftEyeImage', 'rightEyeImage',
|
|
41
|
+
'leftIris', 'rightIris',
|
|
42
|
+
'leftEyeLidOpen', 'rightEyeLidOpen',
|
|
43
|
+
'leftEyeLidHalfClosed', 'rightEyeLidHalfClosed',
|
|
44
|
+
'leftEyeLidClosed', 'rightEyeLidClosed',
|
|
45
|
+
];
|
|
46
|
+
/** Eye coordinate fields that must be numbers */
|
|
47
|
+
export const REQUIRED_EYE_COORDS = [
|
|
48
|
+
'leftEyeXCoor', 'leftEyeYCoor',
|
|
49
|
+
'rightEyeXCoor', 'rightEyeYCoor',
|
|
50
|
+
'leftEyeLidXCoor', 'leftEyeLidYCoor',
|
|
51
|
+
'rightEyeLidXCoor', 'rightEyeLidYCoor',
|
|
52
|
+
'leftIrisXCoor', 'leftIrisYCoor',
|
|
53
|
+
'rightIrisXCoor', 'rightIrisYCoor',
|
|
54
|
+
];
|
|
55
|
+
/** Iris size fields that must be positive numbers */
|
|
56
|
+
export const REQUIRED_IRIS_SIZES = [
|
|
57
|
+
'leftIrisWidth', 'leftIrisHeight',
|
|
58
|
+
'rightIrisWidth', 'rightIrisHeight',
|
|
59
|
+
];
|
|
60
|
+
/** Parts that must have a dimensionValues entry with width > 0 and height > 0 */
|
|
61
|
+
export const REQUIRED_DIMENSION_PARTS = [
|
|
62
|
+
'head', 'torso', 'mouth',
|
|
63
|
+
'leftUpperArm', 'leftForearm', 'leftHand',
|
|
64
|
+
'rightUpperArm', 'rightForearm', 'rightHand',
|
|
65
|
+
'leftThigh', 'leftLeg',
|
|
66
|
+
'rightThigh', 'rightLeg',
|
|
67
|
+
];
|
|
68
|
+
/** Mouth shapes that represent the character talking */
|
|
69
|
+
export const TALKING_MOUTH_SHAPES = [
|
|
70
|
+
'open', 'half-open', 'wide-open', 'slightly-open', 'f', 'l', 'ds', 'ee', 'eh',
|
|
71
|
+
];
|
|
72
|
+
// ─── Internal helpers ────────────────────────────────────────────────────────
|
|
73
|
+
function isValidHash(value) {
|
|
74
|
+
return typeof value === 'string' && value.length > 0 && !value.includes('[MEDIA_REMOVED]');
|
|
75
|
+
}
|
|
76
|
+
function isNum(value) {
|
|
77
|
+
return typeof value === 'number' && !isNaN(value);
|
|
78
|
+
}
|
|
79
|
+
function isPositiveNum(value) {
|
|
80
|
+
return isNum(value) && value > 0;
|
|
81
|
+
}
|
|
82
|
+
function asObj(value) {
|
|
83
|
+
if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
|
|
84
|
+
return value;
|
|
85
|
+
}
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
88
|
+
// ─── Main validator ──────────────────────────────────────────────────────────
|
|
89
|
+
export function validateCharacter(data) {
|
|
90
|
+
const issues = [];
|
|
91
|
+
function addError(field, message, category) {
|
|
92
|
+
issues.push({ field, message, severity: 'error', category });
|
|
93
|
+
}
|
|
94
|
+
function addWarning(field, message, category) {
|
|
95
|
+
issues.push({ field, message, severity: 'warning', category });
|
|
96
|
+
}
|
|
97
|
+
// Must be a plain object
|
|
98
|
+
const d = asObj(data);
|
|
99
|
+
if (!d) {
|
|
100
|
+
addError('root', 'Character data must be a plain object', 'parts');
|
|
101
|
+
return { valid: false, issues };
|
|
102
|
+
}
|
|
103
|
+
// ── imagePaths: 12 body parts ────────────────────────────────────────────
|
|
104
|
+
const imagePaths = asObj(d.imagePaths) ?? {};
|
|
105
|
+
for (const part of REQUIRED_BODY_PARTS) {
|
|
106
|
+
if (!isValidHash(imagePaths[part])) {
|
|
107
|
+
addError(`imagePaths.${part}`, `Body part "${part}" image is missing or removed`, 'parts');
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
// ── pivotPoints: 13 joints ───────────────────────────────────────────────
|
|
111
|
+
const pivotPoints = asObj(d.pivotPoints) ?? {};
|
|
112
|
+
for (const key of REQUIRED_PIVOT_POINTS) {
|
|
113
|
+
const pivot = asObj(pivotPoints[key]);
|
|
114
|
+
if (!pivot) {
|
|
115
|
+
addError(`pivotPoints.${key}`, `Pivot point "${key}" is missing`, 'pivots');
|
|
116
|
+
}
|
|
117
|
+
else if (!isNum(pivot.x) || !isNum(pivot.y)) {
|
|
118
|
+
addError(`pivotPoints.${key}`, `Pivot point "${key}" must have numeric x and y`, 'pivots');
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
// ── zIndexValues: 19 parts ───────────────────────────────────────────────
|
|
122
|
+
const zi = asObj(d.zIndexValues) ?? {};
|
|
123
|
+
for (const part of REQUIRED_Z_INDEX_PARTS) {
|
|
124
|
+
if (!isNum(zi[part])) {
|
|
125
|
+
addError(`zIndexValues.${part}`, `Z-index for "${part}" is missing`, 'zIndex');
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
// Z-index ordering rules (hard constraints)
|
|
129
|
+
const leftEyeLid = zi.leftEyeLid;
|
|
130
|
+
const leftIris = zi.leftIris;
|
|
131
|
+
const leftEye = zi.leftEye;
|
|
132
|
+
if (isNum(leftEyeLid) && isNum(leftIris) && isNum(leftEye)) {
|
|
133
|
+
if (!(leftEyeLid > leftIris && leftIris > leftEye)) {
|
|
134
|
+
addError('zIndexValues', `Left eye z-order must be leftEyeLid(${leftEyeLid}) > leftIris(${leftIris}) > leftEye(${leftEye})`, 'zIndex');
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
const rightEyeLid = zi.rightEyeLid;
|
|
138
|
+
const rightIris = zi.rightIris;
|
|
139
|
+
const rightEye = zi.rightEye;
|
|
140
|
+
if (isNum(rightEyeLid) && isNum(rightIris) && isNum(rightEye)) {
|
|
141
|
+
if (!(rightEyeLid > rightIris && rightIris > rightEye)) {
|
|
142
|
+
addError('zIndexValues', `Right eye z-order must be rightEyeLid(${rightEyeLid}) > rightIris(${rightIris}) > rightEye(${rightEye})`, 'zIndex');
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
const mouthZ = zi.mouth;
|
|
146
|
+
const headZ = zi.head;
|
|
147
|
+
if (isNum(mouthZ) && isNum(headZ)) {
|
|
148
|
+
if (!(mouthZ > headZ)) {
|
|
149
|
+
addError('zIndexValues', `mouth z-index(${mouthZ}) must be greater than head z-index(${headZ})`, 'zIndex');
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
// ── eyes: images, coords, iris sizes ────────────────────────────────────
|
|
153
|
+
const eyes = asObj(d.eyes) ?? {};
|
|
154
|
+
for (const img of REQUIRED_EYE_IMAGES) {
|
|
155
|
+
if (!isValidHash(eyes[img])) {
|
|
156
|
+
addError(`eyes.${img}`, `Eye image "${img}" is missing or removed`, 'eyes');
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
for (const coord of REQUIRED_EYE_COORDS) {
|
|
160
|
+
if (!isNum(eyes[coord])) {
|
|
161
|
+
addError(`eyes.${coord}`, `Eye coordinate "${coord}" must be a number`, 'eyes');
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
for (const sizeKey of REQUIRED_IRIS_SIZES) {
|
|
165
|
+
if (!isPositiveNum(eyes[sizeKey])) {
|
|
166
|
+
addError(`eyes.${sizeKey}`, `Iris size "${sizeKey}" must be a positive number`, 'eyes');
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
// ── eyeSockets: left and right, ≥ 3 points each ─────────────────────────
|
|
170
|
+
const sockets = asObj(d.eyeSockets) ?? {};
|
|
171
|
+
for (const side of ['left', 'right']) {
|
|
172
|
+
const socket = sockets[side];
|
|
173
|
+
if (!Array.isArray(socket)) {
|
|
174
|
+
addError(`eyeSockets.${side}`, `Eye socket "${side}" must be an array of points`, 'eyes');
|
|
175
|
+
}
|
|
176
|
+
else if (socket.length < 3) {
|
|
177
|
+
addError(`eyeSockets.${side}`, `Eye socket "${side}" must have at least 3 points (has ${socket.length})`, 'eyes');
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
const bad = socket.filter(p => {
|
|
181
|
+
const pt = asObj(p);
|
|
182
|
+
return !pt || !isNum(pt.x) || !isNum(pt.y);
|
|
183
|
+
});
|
|
184
|
+
if (bad.length > 0) {
|
|
185
|
+
addError(`eyeSockets.${side}`, `Eye socket "${side}" has ${bad.length} invalid point(s) — each must have numeric x and y`, 'eyes');
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
// ── mouth ────────────────────────────────────────────────────────────────
|
|
190
|
+
const mouth = asObj(d.mouth) ?? {};
|
|
191
|
+
if (!isValidHash(mouth.closed)) {
|
|
192
|
+
addError('mouth.closed', 'Mouth "closed" image is required', 'mouth');
|
|
193
|
+
}
|
|
194
|
+
if (!isNum(mouth.xCoor)) {
|
|
195
|
+
addError('mouth.xCoor', 'Mouth xCoor must be a number', 'mouth');
|
|
196
|
+
}
|
|
197
|
+
if (!isNum(mouth.yCoor)) {
|
|
198
|
+
addError('mouth.yCoor', 'Mouth yCoor must be a number', 'mouth');
|
|
199
|
+
}
|
|
200
|
+
const hasMouthSize = isPositiveNum(mouth.size);
|
|
201
|
+
const hasMouthDims = isPositiveNum(mouth.width) && isPositiveNum(mouth.height);
|
|
202
|
+
if (!hasMouthSize && !hasMouthDims) {
|
|
203
|
+
addError('mouth', 'Mouth needs size > 0, or both width > 0 and height > 0', 'mouth');
|
|
204
|
+
}
|
|
205
|
+
// ── dimensionValues: 13 parts ────────────────────────────────────────────
|
|
206
|
+
const dims = asObj(d.dimensionValues) ?? {};
|
|
207
|
+
for (const part of REQUIRED_DIMENSION_PARTS) {
|
|
208
|
+
const dim = asObj(dims[part]);
|
|
209
|
+
if (!dim) {
|
|
210
|
+
addError(`dimensionValues.${part}`, `Dimension for "${part}" is missing`, 'dimensions');
|
|
211
|
+
}
|
|
212
|
+
else if (!isPositiveNum(dim.width) || !isPositiveNum(dim.height)) {
|
|
213
|
+
addError(`dimensionValues.${part}`, `Dimension for "${part}" must have width > 0 and height > 0`, 'dimensions');
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
// ── Warnings ─────────────────────────────────────────────────────────────
|
|
217
|
+
// Pivot sanity: head pivot should be above (lower y) than torso root
|
|
218
|
+
const rootTorso = asObj(pivotPoints.root_torso);
|
|
219
|
+
const torsoHead = asObj(pivotPoints.torso_head);
|
|
220
|
+
if (rootTorso && torsoHead && isNum(rootTorso.y) && isNum(torsoHead.y)) {
|
|
221
|
+
if (torsoHead.y >= rootTorso.y) {
|
|
222
|
+
addWarning('pivotPoints.torso_head', `torso_head.y (${torsoHead.y}) should be less than root_torso.y (${rootTorso.y}) — head pivot should be above the torso root`, 'pivots');
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
// Mouth expressiveness: at least one talking shape should be present
|
|
226
|
+
const talkingAvailable = TALKING_MOUTH_SHAPES.filter(shape => isValidHash(mouth[shape]));
|
|
227
|
+
if (talkingAvailable.length === 0) {
|
|
228
|
+
addWarning('mouth', 'No talking mouth shapes found — character cannot animate speech. Add at least "open" or "slightly-open"', 'mouth');
|
|
229
|
+
}
|
|
230
|
+
const errorCount = issues.filter(i => i.severity === 'error').length;
|
|
231
|
+
return { valid: errorCount === 0, issues };
|
|
232
|
+
}
|
|
233
|
+
//# sourceMappingURL=characterValidator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"characterValidator.js","sourceRoot":"","sources":["../../modules/characterValidator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAkBH,gFAAgF;AAEhF,6DAA6D;AAC7D,MAAM,CAAC,MAAM,mBAAmB,GAAG;IAC/B,MAAM,EAAE,OAAO;IACf,cAAc,EAAE,aAAa,EAAE,UAAU;IACzC,eAAe,EAAE,cAAc,EAAE,WAAW;IAC5C,WAAW,EAAE,SAAS;IACtB,YAAY,EAAE,UAAU;CAClB,CAAC;AAEX,0DAA0D;AAC1D,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACjC,YAAY,EAAE,YAAY,EAAE,YAAY;IACxC,oBAAoB,EAAE,0BAA0B,EAAE,sBAAsB;IACxE,qBAAqB,EAAE,4BAA4B,EAAE,wBAAwB;IAC7E,iBAAiB,EAAE,mBAAmB;IACtC,kBAAkB,EAAE,qBAAqB;CACnC,CAAC;AAEX,gDAAgD;AAChD,MAAM,CAAC,MAAM,sBAAsB,GAAG;IAClC,MAAM,EAAE,OAAO,EAAE,OAAO;IACxB,SAAS,EAAE,UAAU,EAAE,YAAY;IACnC,UAAU,EAAE,WAAW,EAAE,aAAa;IACtC,cAAc,EAAE,aAAa,EAAE,UAAU;IACzC,eAAe,EAAE,cAAc,EAAE,WAAW;IAC5C,WAAW,EAAE,SAAS;IACtB,YAAY,EAAE,UAAU;CAClB,CAAC;AAEX,wDAAwD;AACxD,MAAM,CAAC,MAAM,mBAAmB,GAAG;IAC/B,cAAc,EAAE,eAAe;IAC/B,UAAU,EAAE,WAAW;IACvB,gBAAgB,EAAE,iBAAiB;IACnC,sBAAsB,EAAE,uBAAuB;IAC/C,kBAAkB,EAAE,mBAAmB;CACjC,CAAC;AAEX,iDAAiD;AACjD,MAAM,CAAC,MAAM,mBAAmB,GAAG;IAC/B,cAAc,EAAE,cAAc;IAC9B,eAAe,EAAE,eAAe;IAChC,iBAAiB,EAAE,iBAAiB;IACpC,kBAAkB,EAAE,kBAAkB;IACtC,eAAe,EAAE,eAAe;IAChC,gBAAgB,EAAE,gBAAgB;CAC5B,CAAC;AAEX,qDAAqD;AACrD,MAAM,CAAC,MAAM,mBAAmB,GAAG;IAC/B,eAAe,EAAE,gBAAgB;IACjC,gBAAgB,EAAE,iBAAiB;CAC7B,CAAC;AAEX,iFAAiF;AACjF,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACpC,MAAM,EAAE,OAAO,EAAE,OAAO;IACxB,cAAc,EAAE,aAAa,EAAE,UAAU;IACzC,eAAe,EAAE,cAAc,EAAE,WAAW;IAC5C,WAAW,EAAE,SAAS;IACtB,YAAY,EAAE,UAAU;CAClB,CAAC;AAEX,wDAAwD;AACxD,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAChC,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;CACvE,CAAC;AAEX,gFAAgF;AAEhF,SAAS,WAAW,CAAC,KAAc;IAC/B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;AAC/F,CAAC;AAED,SAAS,KAAK,CAAC,KAAc;IACzB,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACjC,OAAO,KAAK,CAAC,KAAK,CAAC,IAAK,KAAgB,GAAG,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,KAAK,CAAC,KAAc;IACzB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACvE,OAAO,KAAgC,CAAC;IAC5C,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,gFAAgF;AAEhF,MAAM,UAAU,iBAAiB,CAAC,IAAa;IAC3C,MAAM,MAAM,GAAsB,EAAE,CAAC;IAErC,SAAS,QAAQ,CAAC,KAAa,EAAE,OAAe,EAAE,QAAuB;QACrE,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,SAAS,UAAU,CAAC,KAAa,EAAE,OAAe,EAAE,QAAuB;QACvE,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,yBAAyB;IACzB,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;IACtB,IAAI,CAAC,CAAC,EAAE,CAAC;QACL,QAAQ,CAAC,MAAM,EAAE,uCAAuC,EAAE,OAAO,CAAC,CAAC;QACnE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IACpC,CAAC;IAED,4EAA4E;IAC5E,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IAC7C,KAAK,MAAM,IAAI,IAAI,mBAAmB,EAAE,CAAC;QACrC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YACjC,QAAQ,CAAC,cAAc,IAAI,EAAE,EAAE,cAAc,IAAI,+BAA+B,EAAE,OAAO,CAAC,CAAC;QAC/F,CAAC;IACL,CAAC;IAED,4EAA4E;IAC5E,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IAC/C,KAAK,MAAM,GAAG,IAAI,qBAAqB,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QACtC,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,QAAQ,CAAC,eAAe,GAAG,EAAE,EAAE,gBAAgB,GAAG,cAAc,EAAE,QAAQ,CAAC,CAAC;QAChF,CAAC;aAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5C,QAAQ,CAAC,eAAe,GAAG,EAAE,EAAE,gBAAgB,GAAG,6BAA6B,EAAE,QAAQ,CAAC,CAAC;QAC/F,CAAC;IACL,CAAC;IAED,4EAA4E;IAC5E,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IACvC,KAAK,MAAM,IAAI,IAAI,sBAAsB,EAAE,CAAC;QACxC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YACnB,QAAQ,CAAC,gBAAgB,IAAI,EAAE,EAAE,gBAAgB,IAAI,cAAc,EAAE,QAAQ,CAAC,CAAC;QACnF,CAAC;IACL,CAAC;IAED,4CAA4C;IAC5C,MAAM,UAAU,GAAG,EAAE,CAAC,UAAoB,CAAC;IAC3C,MAAM,QAAQ,GAAK,EAAE,CAAC,QAAoB,CAAC;IAC3C,MAAM,OAAO,GAAM,EAAE,CAAC,OAAoB,CAAC;IAC3C,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACzD,IAAI,CAAC,CAAC,UAAU,GAAG,QAAQ,IAAI,QAAQ,GAAG,OAAO,CAAC,EAAE,CAAC;YACjD,QAAQ,CAAC,cAAc,EACnB,uCAAuC,UAAU,gBAAgB,QAAQ,eAAe,OAAO,GAAG,EAClG,QAAQ,CAAC,CAAC;QAClB,CAAC;IACL,CAAC;IAED,MAAM,WAAW,GAAG,EAAE,CAAC,WAAqB,CAAC;IAC7C,MAAM,SAAS,GAAK,EAAE,CAAC,SAAqB,CAAC;IAC7C,MAAM,QAAQ,GAAM,EAAE,CAAC,QAAqB,CAAC;IAC7C,IAAI,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5D,IAAI,CAAC,CAAC,WAAW,GAAG,SAAS,IAAI,SAAS,GAAG,QAAQ,CAAC,EAAE,CAAC;YACrD,QAAQ,CAAC,cAAc,EACnB,yCAAyC,WAAW,iBAAiB,SAAS,gBAAgB,QAAQ,GAAG,EACzG,QAAQ,CAAC,CAAC;QAClB,CAAC;IACL,CAAC;IAED,MAAM,MAAM,GAAG,EAAE,CAAC,KAAe,CAAC;IAClC,MAAM,KAAK,GAAI,EAAE,CAAC,IAAe,CAAC;IAClC,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QAChC,IAAI,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC;YACpB,QAAQ,CAAC,cAAc,EACnB,iBAAiB,MAAM,uCAAuC,KAAK,GAAG,EACtE,QAAQ,CAAC,CAAC;QAClB,CAAC;IACL,CAAC;IAED,2EAA2E;IAC3E,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAEjC,KAAK,MAAM,GAAG,IAAI,mBAAmB,EAAE,CAAC;QACpC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC1B,QAAQ,CAAC,QAAQ,GAAG,EAAE,EAAE,cAAc,GAAG,yBAAyB,EAAE,MAAM,CAAC,CAAC;QAChF,CAAC;IACL,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,mBAAmB,EAAE,CAAC;QACtC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YACtB,QAAQ,CAAC,QAAQ,KAAK,EAAE,EAAE,mBAAmB,KAAK,oBAAoB,EAAE,MAAM,CAAC,CAAC;QACpF,CAAC;IACL,CAAC;IAED,KAAK,MAAM,OAAO,IAAI,mBAAmB,EAAE,CAAC;QACxC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YAChC,QAAQ,CAAC,QAAQ,OAAO,EAAE,EAAE,cAAc,OAAO,6BAA6B,EAAE,MAAM,CAAC,CAAC;QAC5F,CAAC;IACL,CAAC;IAED,2EAA2E;IAC3E,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IAC1C,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO,CAAU,EAAE,CAAC;QAC5C,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACzB,QAAQ,CAAC,cAAc,IAAI,EAAE,EAAE,eAAe,IAAI,8BAA8B,EAAE,MAAM,CAAC,CAAC;QAC9F,CAAC;aAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,QAAQ,CAAC,cAAc,IAAI,EAAE,EACzB,eAAe,IAAI,sCAAsC,MAAM,CAAC,MAAM,GAAG,EACzE,MAAM,CAAC,CAAC;QAChB,CAAC;aAAM,CAAC;YACJ,MAAM,GAAG,GAAI,MAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;gBACzC,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,OAAO,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/C,CAAC,CAAC,CAAC;YACH,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjB,QAAQ,CAAC,cAAc,IAAI,EAAE,EACzB,eAAe,IAAI,SAAS,GAAG,CAAC,MAAM,oDAAoD,EAC1F,MAAM,CAAC,CAAC;YAChB,CAAC;QACL,CAAC;IACL,CAAC;IAED,4EAA4E;IAC5E,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAEnC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7B,QAAQ,CAAC,cAAc,EAAE,kCAAkC,EAAE,OAAO,CAAC,CAAC;IAC1E,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACtB,QAAQ,CAAC,aAAa,EAAE,8BAA8B,EAAE,OAAO,CAAC,CAAC;IACrE,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACtB,QAAQ,CAAC,aAAa,EAAE,8BAA8B,EAAE,OAAO,CAAC,CAAC;IACrE,CAAC;IACD,MAAM,YAAY,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,YAAY,GAAG,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC/E,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,EAAE,CAAC;QACjC,QAAQ,CAAC,OAAO,EAAE,wDAAwD,EAAE,OAAO,CAAC,CAAC;IACzF,CAAC;IAED,4EAA4E;IAC5E,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;IAC5C,KAAK,MAAM,IAAI,IAAI,wBAAwB,EAAE,CAAC;QAC1C,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,GAAG,EAAE,CAAC;YACP,QAAQ,CAAC,mBAAmB,IAAI,EAAE,EAAE,kBAAkB,IAAI,cAAc,EAAE,YAAY,CAAC,CAAC;QAC5F,CAAC;aAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACjE,QAAQ,CAAC,mBAAmB,IAAI,EAAE,EAC9B,kBAAkB,IAAI,sCAAsC,EAC5D,YAAY,CAAC,CAAC;QACtB,CAAC;IACL,CAAC;IAED,4EAA4E;IAE5E,qEAAqE;IACrE,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAChD,IAAI,SAAS,IAAI,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,IAAK,SAAS,CAAC,CAAY,IAAK,SAAS,CAAC,CAAY,EAAE,CAAC;YACrD,UAAU,CACN,wBAAwB,EACxB,iBAAiB,SAAS,CAAC,CAAC,uCAAuC,SAAS,CAAC,CAAC,+CAA+C,EAC7H,QAAQ,CACX,CAAC;QACN,CAAC;IACL,CAAC;IAED,qEAAqE;IACrE,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzF,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,UAAU,CACN,OAAO,EACP,yGAAyG,EACzG,OAAO,CACV,CAAC;IACN,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,MAAM,CAAC;IACrE,OAAO,EAAE,KAAK,EAAE,UAAU,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;AAC/C,CAAC"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|