@pixi-ui-editor/schema 0.1.0 → 0.2.0
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 +11 -0
- package/dist/assetPaths.d.ts +7 -2
- package/dist/assetPaths.d.ts.map +1 -1
- package/dist/assetPaths.js +32 -12
- package/dist/assetPaths.js.map +1 -1
- package/dist/assetPaths.test.js +3 -3
- package/dist/assetPaths.test.js.map +1 -1
- package/dist/index.d.ts +11370 -5079
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +380 -27
- package/dist/index.js.map +1 -1
- package/dist/index.test-fixtures.d.ts.map +1 -1
- package/dist/index.test-fixtures.js +4 -0
- package/dist/index.test-fixtures.js.map +1 -1
- package/dist/index.test.js +124 -4
- package/dist/index.test.js.map +1 -1
- package/dist/prefabs.d.ts +88 -0
- package/dist/prefabs.d.ts.map +1 -0
- package/dist/prefabs.js +332 -0
- package/dist/prefabs.js.map +1 -0
- package/package.json +2 -1
package/README.md
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# @pixi-ui-editor/schema
|
|
2
|
+
|
|
3
|
+
Versioned document schema, validation and project-manifest format used by [Pixi UI Editor](https://github.com/AlexMariacho/pixi-ui-editor).
|
|
4
|
+
|
|
5
|
+
Consumed together with [`@pixi-ui-editor/runtime-pixi`](https://www.npmjs.com/package/@pixi-ui-editor/runtime-pixi), which renders documents validated against this schema.
|
|
6
|
+
|
|
7
|
+
## Install
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
pnpm add @pixi-ui-editor/schema
|
|
11
|
+
```
|
package/dist/assetPaths.d.ts
CHANGED
|
@@ -19,13 +19,18 @@ export declare function soundFileName(asset: {
|
|
|
19
19
|
mediaType: string;
|
|
20
20
|
};
|
|
21
21
|
}): string;
|
|
22
|
-
/**
|
|
23
|
-
export declare function
|
|
22
|
+
/** Human-readable, collision-safe directory name for an asset. Stable ID remains the identity boundary. */
|
|
23
|
+
export declare function assetDirectoryName(asset: Pick<Asset, "id" | "name">): string;
|
|
24
|
+
/** Package-relative path for one asset file. */
|
|
25
|
+
export declare function assetFilePath(asset: Pick<Asset, "id" | "name">, fileName: string): string;
|
|
24
26
|
export type AssetFileEntry = {
|
|
25
27
|
path: string;
|
|
26
28
|
fileName: string;
|
|
27
29
|
mediaType: string;
|
|
30
|
+
uri: string;
|
|
28
31
|
};
|
|
29
32
|
/** Every relative-path file entry an asset owns: multi-file assets (atlas/Spine) keep their original uploaded file names. */
|
|
30
33
|
export declare function collectAssetFileEntries(asset: Asset): AssetFileEntry[];
|
|
34
|
+
/** Rewrites every URI owned by an asset to its canonical package-relative location. */
|
|
35
|
+
export declare function rewriteAssetFileUris(asset: Asset): void;
|
|
31
36
|
//# sourceMappingURL=assetPaths.d.ts.map
|
package/dist/assetPaths.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assetPaths.d.ts","sourceRoot":"","sources":["../src/assetPaths.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAyBxC,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGjD;AAED,yHAAyH;AACzH,wBAAgB,aAAa,CAAC,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAAG,MAAM,CAG5F;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAAG,MAAM,CAG3F;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAAG,MAAM,CAG5F;AAED,
|
|
1
|
+
{"version":3,"file":"assetPaths.d.ts","sourceRoot":"","sources":["../src/assetPaths.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAyBxC,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGjD;AAED,yHAAyH;AACzH,wBAAgB,aAAa,CAAC,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAAG,MAAM,CAG5F;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAAG,MAAM,CAG3F;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAAG,MAAM,CAG5F;AAED,2GAA2G;AAC3G,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,GAAG,MAAM,CAAC,GAAG,MAAM,CAE5E;AAED,gDAAgD;AAChD,wBAAgB,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,GAAG,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEzF;AAED,MAAM,MAAM,cAAc,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhG,6HAA6H;AAC7H,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,KAAK,GAAG,cAAc,EAAE,CAetE;AAED,uFAAuF;AACvF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAavD"}
|
package/dist/assetPaths.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Single source of truth for `Asset -> project folder relative path` naming, shared by the exported ZIP
|
|
3
3
|
* package (`apps/editor-web/src/shared/exportPackage.ts`) and the IndexedDB working copy (`projectStore`):
|
|
4
|
-
* both must resolve the same asset to the same `assets/<assetId>/<fileName>` path.
|
|
4
|
+
* both must resolve the same asset to the same `assets/<assetName>_<assetId>/<fileName>` path.
|
|
5
5
|
*/
|
|
6
6
|
const IMAGE_EXTENSIONS = {
|
|
7
7
|
"image/png": ".png",
|
|
@@ -35,34 +35,54 @@ export function soundFileName(asset) {
|
|
|
35
35
|
const extension = SOUND_EXTENSIONS[asset.source.mediaType] ?? `.${sanitizeName(asset.source.mediaType.split("/")[1] ?? "bin")}`;
|
|
36
36
|
return `${sanitizeName(asset.name)}${extension}`;
|
|
37
37
|
}
|
|
38
|
-
/**
|
|
39
|
-
export function
|
|
40
|
-
return
|
|
38
|
+
/** Human-readable, collision-safe directory name for an asset. Stable ID remains the identity boundary. */
|
|
39
|
+
export function assetDirectoryName(asset) {
|
|
40
|
+
return `${sanitizeName(asset.name)}_${asset.id}`;
|
|
41
|
+
}
|
|
42
|
+
/** Package-relative path for one asset file. */
|
|
43
|
+
export function assetFilePath(asset, fileName) {
|
|
44
|
+
return `assets/${assetDirectoryName(asset)}/${fileName}`;
|
|
41
45
|
}
|
|
42
46
|
/** Every relative-path file entry an asset owns: multi-file assets (atlas/Spine) keep their original uploaded file names. */
|
|
43
47
|
export function collectAssetFileEntries(asset) {
|
|
44
48
|
if (asset.type === "image") {
|
|
45
49
|
const fileName = imageFileName(asset);
|
|
46
|
-
return [{ path: assetFilePath(asset
|
|
50
|
+
return [{ path: assetFilePath(asset, fileName), fileName, mediaType: asset.source.mediaType, uri: asset.source.uri }];
|
|
47
51
|
}
|
|
48
52
|
if (asset.type === "font") {
|
|
49
53
|
const fileName = fontFileName(asset);
|
|
50
|
-
return [{ path: assetFilePath(asset
|
|
54
|
+
return [{ path: assetFilePath(asset, fileName), fileName, mediaType: asset.source.mediaType, uri: asset.source.uri }];
|
|
51
55
|
}
|
|
52
56
|
if (asset.type === "sound") {
|
|
53
57
|
const fileName = soundFileName(asset);
|
|
54
|
-
return [{ path: assetFilePath(asset
|
|
58
|
+
return [{ path: assetFilePath(asset, fileName), fileName, mediaType: asset.source.mediaType, uri: asset.source.uri }];
|
|
55
59
|
}
|
|
56
60
|
if (asset.type === "atlas") {
|
|
57
61
|
return [
|
|
58
|
-
{ path: assetFilePath(asset
|
|
59
|
-
{ path: assetFilePath(asset
|
|
62
|
+
{ path: assetFilePath(asset, asset.files.json.name), fileName: asset.files.json.name, mediaType: asset.files.json.mediaType, uri: asset.files.json.uri },
|
|
63
|
+
{ path: assetFilePath(asset, asset.files.texture.name), fileName: asset.files.texture.name, mediaType: asset.files.texture.mediaType, uri: asset.files.texture.uri },
|
|
60
64
|
];
|
|
61
65
|
}
|
|
62
66
|
return [
|
|
63
|
-
{ path: assetFilePath(asset
|
|
64
|
-
{ path: assetFilePath(asset
|
|
65
|
-
...asset.files.textures.map((texture) => ({ path: assetFilePath(asset
|
|
67
|
+
{ path: assetFilePath(asset, asset.files.skeleton.name), fileName: asset.files.skeleton.name, mediaType: asset.files.skeleton.mediaType, uri: asset.files.skeleton.uri },
|
|
68
|
+
{ path: assetFilePath(asset, asset.files.atlas.name), fileName: asset.files.atlas.name, mediaType: asset.files.atlas.mediaType, uri: asset.files.atlas.uri },
|
|
69
|
+
...asset.files.textures.map((texture) => ({ path: assetFilePath(asset, texture.name), fileName: texture.name, mediaType: texture.mediaType, uri: texture.uri })),
|
|
66
70
|
];
|
|
67
71
|
}
|
|
72
|
+
/** Rewrites every URI owned by an asset to its canonical package-relative location. */
|
|
73
|
+
export function rewriteAssetFileUris(asset) {
|
|
74
|
+
if (asset.type === "image" || asset.type === "font" || asset.type === "sound") {
|
|
75
|
+
asset.source.uri = assetFilePath(asset, asset.type === "image" ? imageFileName(asset) : asset.type === "font" ? fontFileName(asset) : soundFileName(asset));
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
if (asset.type === "atlas") {
|
|
79
|
+
asset.files.json.uri = assetFilePath(asset, asset.files.json.name);
|
|
80
|
+
asset.files.texture.uri = assetFilePath(asset, asset.files.texture.name);
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
asset.files.skeleton.uri = assetFilePath(asset, asset.files.skeleton.name);
|
|
84
|
+
asset.files.atlas.uri = assetFilePath(asset, asset.files.atlas.name);
|
|
85
|
+
for (const texture of asset.files.textures)
|
|
86
|
+
texture.uri = assetFilePath(asset, texture.name);
|
|
87
|
+
}
|
|
68
88
|
//# sourceMappingURL=assetPaths.js.map
|
package/dist/assetPaths.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assetPaths.js","sourceRoot":"","sources":["../src/assetPaths.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,MAAM,gBAAgB,GAA2B;IAC/C,WAAW,EAAE,MAAM;IACnB,YAAY,EAAE,MAAM;IACpB,YAAY,EAAE,OAAO;IACrB,WAAW,EAAE,MAAM;IACnB,eAAe,EAAE,MAAM;IACvB,YAAY,EAAE,OAAO;CACtB,CAAC;AAEF,MAAM,gBAAgB,GAA2B;IAC/C,WAAW,EAAE,MAAM;IACnB,YAAY,EAAE,MAAM;IACpB,WAAW,EAAE,MAAM;IACnB,WAAW,EAAE,MAAM;IACnB,WAAW,EAAE,MAAM;CACpB,CAAC;AAEF,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC9E,OAAO,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AACrC,CAAC;AAED,yHAAyH;AACzH,MAAM,UAAU,aAAa,CAAC,KAAsD;IAClF,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,IAAI,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;IAChI,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,SAAS,EAAE,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAsD;IACjF,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC;IACjE,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAsD;IAClF,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,IAAI,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;IAChI,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,SAAS,EAAE,CAAC;AACnD,CAAC;AAED,
|
|
1
|
+
{"version":3,"file":"assetPaths.js","sourceRoot":"","sources":["../src/assetPaths.ts"],"names":[],"mappings":"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"}
|
package/dist/assetPaths.test.js
CHANGED
|
@@ -4,7 +4,7 @@ const assetId = "30000000-0000-4000-8000-000000000001";
|
|
|
4
4
|
describe("asset file naming", () => {
|
|
5
5
|
it("derives an image file name from the sanitized asset name and its mediaType extension", () => {
|
|
6
6
|
expect(imageFileName({ name: "Hero Icon", source: { mediaType: "image/jpeg" } })).toBe("Hero-Icon.jpg");
|
|
7
|
-
expect(assetFilePath(assetId, imageFileName({ name: "Hero Icon", source: { mediaType: "image/jpeg" } }))).toBe(`assets
|
|
7
|
+
expect(assetFilePath({ id: assetId, name: "Hero Icon" }, imageFileName({ name: "Hero Icon", source: { mediaType: "image/jpeg" } }))).toBe(`assets/Hero-Icon_${assetId}/Hero-Icon.jpg`);
|
|
8
8
|
});
|
|
9
9
|
it("keeps atlas/Spine file names as uploaded when composing their relative path, matching export output", () => {
|
|
10
10
|
const atlas = {
|
|
@@ -18,8 +18,8 @@ describe("asset file naming", () => {
|
|
|
18
18
|
frames: {},
|
|
19
19
|
};
|
|
20
20
|
expect(collectAssetFileEntries(atlas)).toEqual([
|
|
21
|
-
{ path: `assets
|
|
22
|
-
{ path: `assets
|
|
21
|
+
{ path: `assets/Sparkle-Sheet_${assetId}/sparkles.json`, fileName: "sparkles.json", mediaType: "application/json", uri: "assets/sparkles.json" },
|
|
22
|
+
{ path: `assets/Sparkle-Sheet_${assetId}/sparkles.png`, fileName: "sparkles.png", mediaType: "image/png", uri: "assets/sparkles.png" },
|
|
23
23
|
]);
|
|
24
24
|
});
|
|
25
25
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assetPaths.test.js","sourceRoot":"","sources":["../src/assetPaths.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGxF,MAAM,OAAO,GAAG,sCAAsC,CAAC;AAEvD,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,sFAAsF,EAAE,GAAG,EAAE;QAC9F,MAAM,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACxG,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"assetPaths.test.js","sourceRoot":"","sources":["../src/assetPaths.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGxF,MAAM,OAAO,GAAG,sCAAsC,CAAC;AAEvD,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,sFAAsF,EAAE,GAAG,EAAE;QAC9F,MAAM,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACxG,MAAM,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,aAAa,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,OAAO,gBAAgB,CAAC,CAAC;IACzL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qGAAqG,EAAE,GAAG,EAAE;QAC7G,MAAM,KAAK,GAAU;YACnB,EAAE,EAAE,OAAO;YACX,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,OAAO;YACb,KAAK,EAAE;gBACL,IAAI,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,sBAAsB,EAAE,SAAS,EAAE,kBAAkB,EAAE;gBAC3F,OAAO,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,qBAAqB,EAAE,SAAS,EAAE,WAAW,EAAE;aACtF;YACD,MAAM,EAAE,EAAE;SACX,CAAC;QACF,MAAM,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;YAC7C,EAAE,IAAI,EAAE,wBAAwB,OAAO,gBAAgB,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,kBAAkB,EAAE,GAAG,EAAE,sBAAsB,EAAE;YAChJ,EAAE,IAAI,EAAE,wBAAwB,OAAO,eAAe,EAAE,QAAQ,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,EAAE,qBAAqB,EAAE;SACvI,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|