@vvfx/svg2ir 0.0.1-beta.0 → 0.0.1-beta.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 +86 -48
- package/dist/{svg2ge-adapter → adapter/svg2ge}/assemble.d.ts +2 -2
- package/dist/adapter/svg2ge/convert.d.ts +7 -0
- package/dist/{svg2ge-adapter → adapter/svg2ge}/normalize-shape-animation.d.ts +1 -1
- package/dist/{svg2ge-adapter → adapter/svg2ge}/post-process/apply-shape-geometry-animation.d.ts +1 -1
- package/dist/{svg2ge-adapter → adapter/svg2ge}/post-process/apply-shape-paint-animation.d.ts +1 -1
- package/dist/{svg2ge-adapter → adapter/svg2ge}/post-process/rewrite-text-components.d.ts +1 -1
- package/dist/{svg2ge-adapter → adapter/svg2ge}/pre-process.d.ts +1 -1
- package/dist/{svg2ge-adapter → adapter/svg2ge}/types.d.ts +2 -2
- package/dist/adapter/svg2layers/assemble.d.ts +23 -0
- package/dist/adapter/svg2layers/baking/build-baked-layers.d.ts +13 -0
- package/dist/adapter/svg2layers/baking/normalize-layer-blending.d.ts +10 -0
- package/dist/adapter/svg2layers/baking/plan-graphic-baking.d.ts +18 -0
- package/dist/adapter/svg2layers/baking/resolve-baking-warnings.d.ts +4 -0
- package/dist/adapter/svg2layers/convert.d.ts +4 -0
- package/dist/{svg2layers-adapter → adapter/svg2layers}/converter/diagnostics/collect-warnings.d.ts +1 -1
- package/dist/adapter/svg2layers/converter/image/inspect-mask.d.ts +3 -0
- package/dist/{svg2layers-adapter → adapter/svg2layers}/converter/layers/build-layers.d.ts +1 -1
- package/dist/{svg2layers-adapter → adapter/svg2layers}/converter/layers/conversion-session.d.ts +2 -2
- package/dist/{svg2layers-adapter → adapter/svg2layers}/converter/text/parse-text-runs.d.ts +1 -1
- package/dist/{svg2layers-adapter → adapter/svg2layers}/converter/text/text-layout.d.ts +2 -2
- package/dist/{svg2layers-adapter → adapter/svg2layers}/matrix.d.ts +1 -1
- package/dist/adapter/svg2layers/strip-layer-animation.d.ts +5 -0
- package/dist/{svg2layers-adapter → adapter/svg2layers}/types.d.ts +8 -1
- package/dist/common/types.d.ts +7 -3
- package/dist/index.d.ts +6 -6
- package/dist/index.js +1324 -103
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1323 -103
- package/dist/index.mjs.map +1 -1
- package/dist/node.js +1326 -105
- package/dist/node.js.map +1 -1
- package/dist/node.mjs +1325 -105
- package/dist/node.mjs.map +1 -1
- package/dist/parse-svg/build-element-tree-path.d.ts +2 -0
- package/dist/svg-rasterizer/prepare-snapshot.d.ts +9 -0
- package/dist/svg-rasterizer/rasterize-svg.d.ts +11 -0
- package/dist/svg2ir/assemble.d.ts +3 -1
- package/dist/svg2ir/convert.d.ts +5 -2
- package/dist/svg2ir/converter/layers/conversion-session.d.ts +2 -0
- package/dist/svg2ir/converter/text/font-metrics.d.ts +2 -0
- package/package.json +5 -5
- package/dist/convert.d.ts +0 -19
- package/dist/svg2ge-adapter/convert.d.ts +0 -5
- package/dist/svg2layers-adapter/assemble.d.ts +0 -8
- package/dist/svg2layers-adapter/convert.d.ts +0 -4
- /package/dist/{svg2ge-adapter → adapter/svg2ge}/converter/animation.d.ts +0 -0
- /package/dist/{svg2ge-adapter → adapter/svg2ge}/converter/data-path.d.ts +0 -0
- /package/dist/{svg2ge-adapter → adapter/svg2ge}/post-process/apply-fonts.d.ts +0 -0
- /package/dist/{svg2ge-adapter → adapter/svg2ge}/post-process/paint-animation-sampling.d.ts +0 -0
- /package/dist/{svg2ge-adapter → adapter/svg2ge}/post-process/restore-gradient-uv.d.ts +0 -0
- /package/dist/{svg2layers-adapter → adapter/svg2layers}/converter/image/convert-image-layer.d.ts +0 -0
- /package/dist/{svg2layers-adapter → adapter/svg2layers}/converter/layers/registry.d.ts +0 -0
- /package/dist/{svg2layers-adapter → adapter/svg2layers}/converter/layers/resolve-visual-state.d.ts +0 -0
- /package/dist/{svg2layers-adapter → adapter/svg2layers}/converter/text/convert-text-layer.d.ts +0 -0
- /package/dist/{svg2layers-adapter → adapter/svg2layers}/converter/transform/build-transform.d.ts +0 -0
- /package/dist/{svg2layers-adapter → adapter/svg2layers}/post-process/inline-image-resources.d.ts +0 -0
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export interface SVGSnapshotContext {
|
|
2
|
+
root: Element;
|
|
3
|
+
target: Element;
|
|
4
|
+
elements: readonly Element[];
|
|
5
|
+
dependencies: ReadonlySet<Element>;
|
|
6
|
+
readStyle: (element: Element) => CSSStyleDeclaration;
|
|
7
|
+
}
|
|
8
|
+
/** Preserve selector context until styles are frozen, then isolate the requested paint subtree. */
|
|
9
|
+
export declare function prepareSVGSnapshot(source: string, path: string, size: [number, number], inspect?: (context: SVGSnapshotContext) => void): string;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type SVGSnapshotContext } from './prepare-snapshot';
|
|
2
|
+
interface RasterizedSVG {
|
|
3
|
+
url: string;
|
|
4
|
+
/** Logical viewport pixels, independent of raster resolution. */
|
|
5
|
+
bbox: [number, number, number, number];
|
|
6
|
+
}
|
|
7
|
+
/** Render an SVG subtree as a cropped PNG, or return null if it has no visible pixels. */
|
|
8
|
+
export declare function rasterizeSVG(source: string, path: string, size: [number, number], scale?: number, inspect?: (context: SVGSnapshotContext) => void): Promise<RasterizedSVG | null>;
|
|
9
|
+
/** No DOM access at module initialization: the Node entry also imports this module. */
|
|
10
|
+
export declare function canRasterizeSVG(): boolean;
|
|
11
|
+
export {};
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { type IRScene } from '@vvfx/animation-ir';
|
|
2
|
-
import type { ConvertOptions } from '../common/types';
|
|
2
|
+
import type { ConvertOptions, SVG2IRWarning } from '../common/types';
|
|
3
3
|
import type { SVGPreservedPaintAnimation, SVGPreservedShapeAnimation, SVGPreservedTextData } from '../svg-preserved-data';
|
|
4
4
|
export interface ParseSVGToIROptions extends ConvertOptions {
|
|
5
|
+
layerSourceCollector?: Map<string, string>;
|
|
6
|
+
warningSourceCollector?: Map<SVG2IRWarning, string>;
|
|
5
7
|
textDataCollector?: Map<string, SVGPreservedTextData>;
|
|
6
8
|
paintAnimationsCollector?: Map<string, SVGPreservedPaintAnimation[]>;
|
|
7
9
|
shapeAnimationCollector?: Map<string, SVGPreservedShapeAnimation>;
|
package/dist/svg2ir/convert.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import type { ConvertOptions, ConvertResult, SVGSource } from '../common/types';
|
|
1
|
+
import type { ConvertOptions, ConvertResult, SVG2IRWarning, SVGSource } from '../common/types';
|
|
2
2
|
import type { SVGPreservedData, SVGPreservedPaintAnimation, SVGPreservedShapeAnimation, SVGPreservedTextData } from '../svg-preserved-data';
|
|
3
3
|
interface SVGPreservedDataCollectors {
|
|
4
|
+
layerSourceCollector?: Map<string, string>;
|
|
5
|
+
warningSourceCollector?: Map<SVG2IRWarning, string>;
|
|
4
6
|
textDataByLayerId: Map<string, SVGPreservedTextData>;
|
|
5
7
|
paintAnimationsByLayerId: Map<string, SVGPreservedPaintAnimation[]>;
|
|
6
8
|
shapeAnimationsByLayerId: Map<string, SVGPreservedShapeAnimation>;
|
|
@@ -12,9 +14,10 @@ interface SVGPreservedDataCollectors {
|
|
|
12
14
|
*/
|
|
13
15
|
export declare function convertSVGToIR(source: SVGSource, options?: ConvertOptions): ConvertResult;
|
|
14
16
|
export type SplitSVGOptions = ConvertOptions;
|
|
15
|
-
export interface
|
|
17
|
+
export interface SVGConversionContext extends ConvertResult {
|
|
16
18
|
preservedData: SVGPreservedData;
|
|
17
19
|
}
|
|
20
|
+
export type SplitSVGResult = SVGConversionContext;
|
|
18
21
|
/** Convert SVG to IR and retain the GE-side data needed for source-specific lowering. */
|
|
19
22
|
export declare function splitSVG(source: SVGSource, options?: SplitSVGOptions): SplitSVGResult;
|
|
20
23
|
export declare function parseSVGToIRWithPreservedData(source: SVGSource, options?: ConvertOptions, collectors?: SVGPreservedDataCollectors): ConvertResult;
|
|
@@ -5,6 +5,8 @@ import type { SVG2IRWarning } from '../../../common/types';
|
|
|
5
5
|
import type { SVGPreservedPaintAnimation, SVGPreservedShapeAnimation, SVGPreservedTextData } from '../../../svg-preserved-data';
|
|
6
6
|
/** 构造 layer 转换会话所需的输入。 */
|
|
7
7
|
export interface SVGLayerBuildOptions {
|
|
8
|
+
layerSourceCollector?: Map<string, string>;
|
|
9
|
+
warningSourceCollector?: Map<SVG2IRWarning, string>;
|
|
8
10
|
frameRate: number;
|
|
9
11
|
durationSeconds: number;
|
|
10
12
|
emit: (warning: SVG2IRWarning) => void;
|
|
@@ -44,6 +44,8 @@ export declare function greedySpaceForDx(target: number, table: Array<{
|
|
|
44
44
|
ch: string;
|
|
45
45
|
w: number;
|
|
46
46
|
}>): string;
|
|
47
|
+
/** 去除单个字体族名的 CSS 字符串引号。 */
|
|
48
|
+
export declare function normalizeFontFamilyName(fontFamily: string): string;
|
|
47
49
|
/** 构造与 Effects Runtime getFontDesc 一致的 CSS font 简写字符串,用于 Canvas measureText。 */
|
|
48
50
|
export declare function buildCanvasFontDesc(fontSize: number, fontFamily: string, fontWeight: IRFontWeight, fontStyle: string): string;
|
|
49
51
|
/** 文本宽度估算。优先使用调用方提供的 Canvas measureText,否则使用字符级启发式系数。 */
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vvfx/svg2ir",
|
|
3
|
-
"version": "0.0.1-beta.
|
|
3
|
+
"version": "0.0.1-beta.12",
|
|
4
4
|
"description": "SVG to Animation IR and Galacean Effects conversion engine",
|
|
5
5
|
"module": "./dist/index.mjs",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -21,11 +21,11 @@
|
|
|
21
21
|
}
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@galacean/effects-specification": "2.
|
|
24
|
+
"@galacean/effects-specification": "2.8.1",
|
|
25
25
|
"@svgdotjs/svg.js": "3.2.7",
|
|
26
26
|
"svgdom": "0.1.14",
|
|
27
|
-
"@vvfx/
|
|
28
|
-
"@vvfx/
|
|
27
|
+
"@vvfx/ge-ir": "0.0.1-beta.12",
|
|
28
|
+
"@vvfx/animation-ir": "0.0.1-beta.12"
|
|
29
29
|
},
|
|
30
30
|
"contributors": [
|
|
31
31
|
{
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"converter"
|
|
52
52
|
],
|
|
53
53
|
"engines": {
|
|
54
|
-
"node": ">=
|
|
54
|
+
"node": ">=24"
|
|
55
55
|
},
|
|
56
56
|
"scripts": {
|
|
57
57
|
"prebuild": "pnpm clean",
|
package/dist/convert.d.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import type { ConvertOptions, SVGSource } from './common/types';
|
|
2
|
-
import type { SVGPreservedData } from './svg-preserved-data';
|
|
3
|
-
import type { SVGImageResourceLoader, SVGToLayersResult } from './svg2layers-adapter/types';
|
|
4
|
-
import type { SVGToGEOptions, SVGToGEResult } from './svg2ge-adapter/types';
|
|
5
|
-
export interface SVGConversionOptions extends ConvertOptions {
|
|
6
|
-
outputFormat?: 'ge' | 'layers';
|
|
7
|
-
fonts?: SVGToGEOptions['fonts'];
|
|
8
|
-
/** layers 图片读取回调;默认使用 fetch,已有 data URL 无需读取。 */
|
|
9
|
-
loadImage?: SVGImageResourceLoader;
|
|
10
|
-
}
|
|
11
|
-
export interface SVGToLayersOptions extends SVGConversionOptions {
|
|
12
|
-
outputFormat: 'layers';
|
|
13
|
-
}
|
|
14
|
-
/** SVG 多格式输出入口,默认返回 GE 场景。 */
|
|
15
|
-
export declare function convertSVG(source: SVGSource, options: SVGToLayersOptions, preservedData?: SVGPreservedData): Promise<SVGToLayersResult>;
|
|
16
|
-
export declare function convertSVG(source: SVGSource, options?: SVGToGEOptions & {
|
|
17
|
-
outputFormat?: 'ge';
|
|
18
|
-
}, preservedData?: SVGPreservedData): SVGToGEResult;
|
|
19
|
-
export declare function convertSVG(source: SVGSource, options?: SVGConversionOptions, preservedData?: SVGPreservedData): SVGToGEResult | Promise<SVGToLayersResult>;
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import type { SVGSource } from '../common/types';
|
|
2
|
-
import type { SVGPreservedData } from '../svg-preserved-data';
|
|
3
|
-
import type { SVGToGEOptions, SVGToGEResult } from './types';
|
|
4
|
-
/** SVG→GE 显式入口。传入 preservedData 时应用 SVG 专属后处理。 */
|
|
5
|
-
export declare function convertSVGToGE(source: SVGSource, options?: SVGToGEOptions, preservedData?: SVGPreservedData): SVGToGEResult;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { IRScene } from '@vvfx/animation-ir';
|
|
2
|
-
import { type ConvertOptions, type SVG2IRWarning } from '../common/types';
|
|
3
|
-
import type { SVGPreservedData } from '../svg-preserved-data';
|
|
4
|
-
import type { SVGStaticLayer } from './types';
|
|
5
|
-
export declare function assembleSVGStaticLayers(scene: IRScene, options: ConvertOptions, warnings: SVG2IRWarning[], preservedData?: SVGPreservedData): {
|
|
6
|
-
size: [number, number];
|
|
7
|
-
data: SVGStaticLayer[];
|
|
8
|
-
};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type { ConvertOptions, SVGSource } from '../common/types';
|
|
2
|
-
import type { SVGPreservedData } from '../svg-preserved-data';
|
|
3
|
-
import type { SVGImageResourceLoader, SVGToLayersResult } from './types';
|
|
4
|
-
export declare function convertSVGToLayers(source: SVGSource, options: ConvertOptions, loadImage?: SVGImageResourceLoader, preservedData?: SVGPreservedData): Promise<SVGToLayersResult>;
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/dist/{svg2layers-adapter → adapter/svg2layers}/converter/image/convert-image-layer.d.ts
RENAMED
|
File without changes
|
|
File without changes
|
/package/dist/{svg2layers-adapter → adapter/svg2layers}/converter/layers/resolve-visual-state.d.ts
RENAMED
|
File without changes
|
/package/dist/{svg2layers-adapter → adapter/svg2layers}/converter/text/convert-text-layer.d.ts
RENAMED
|
File without changes
|
/package/dist/{svg2layers-adapter → adapter/svg2layers}/converter/transform/build-transform.d.ts
RENAMED
|
File without changes
|
/package/dist/{svg2layers-adapter → adapter/svg2layers}/post-process/inline-image-resources.d.ts
RENAMED
|
File without changes
|