@flighthq/tilemap-formats 0.5.1-next.685.f72fc7f → 0.5.1-next.704.19c91ec
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 +2 -2
- package/dist/tiledJsonParse.d.ts +3 -3
- package/dist/tiledJsonParse.d.ts.map +1 -1
- package/dist/tiledJsonParse.js +70 -18
- package/dist/tiledJsonParse.js.map +1 -1
- package/dist/tiledXmlParse.d.ts +3 -3
- package/dist/tiledXmlParse.d.ts.map +1 -1
- package/dist/tiledXmlParse.js +75 -17
- package/dist/tiledXmlParse.js.map +1 -1
- package/package.json +5 -5
- package/src/tiledJsonParse.test.ts +120 -4
- package/src/tiledXmlParse.test.ts +138 -4
package/README.md
CHANGED
|
@@ -13,5 +13,5 @@ Import the supported application-facing API from `@flighthq/tilemap-formats`. Th
|
|
|
13
13
|
This package is part of the locked-version Flight SDK graph. Applications may instead install and import `@flighthq/sdk` when package-level tree shaking is sufficient.
|
|
14
14
|
|
|
15
15
|
- [Flight project](https://github.com/flighthq/flight)
|
|
16
|
-
- [Source for @flighthq/tilemap-formats@0.5.1-next.
|
|
17
|
-
- [License](https://github.com/flighthq/flight/blob/
|
|
16
|
+
- [Source for @flighthq/tilemap-formats@0.5.1-next.704.19c91ec](https://github.com/flighthq/flight/tree/19c91ec3e569d6b3b471682726465a79fba9f8cb/packages/tilemap-formats)
|
|
17
|
+
- [License](https://github.com/flighthq/flight/blob/19c91ec3e569d6b3b471682726465a79fba9f8cb/LICENSE.md)
|
package/dist/tiledJsonParse.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { TiledMap, TiledParseOptions, TiledTileset } from '@flighthq/types/contract';
|
|
2
|
-
export declare function parseTiledTilesetJson(text: string, _options?: Readonly<TiledParseOptions
|
|
3
|
-
export declare function parseTiledTmj(text: string, options?: Readonly<TiledParseOptions
|
|
1
|
+
import type { ImportDiagnostic, TiledMap, TiledParseOptions, TiledTileset } from '@flighthq/types/contract';
|
|
2
|
+
export declare function parseTiledTilesetJson(text: string, _options?: Readonly<TiledParseOptions>, diagnostics?: ImportDiagnostic[]): TiledTileset | null;
|
|
3
|
+
export declare function parseTiledTmj(text: string, options?: Readonly<TiledParseOptions>, diagnostics?: ImportDiagnostic[]): TiledMap | null;
|
|
4
4
|
//# sourceMappingURL=tiledJsonParse.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tiledJsonParse.d.ts","sourceRoot":"","sources":["../src/tiledJsonParse.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tiledJsonParse.d.ts","sourceRoot":"","sources":["../src/tiledJsonParse.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gBAAgB,EAGhB,QAAQ,EAGR,iBAAiB,EAIjB,YAAY,EAKb,MAAM,0BAA0B,CAAC;AAUlC,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EACtC,WAAW,CAAC,EAAE,gBAAgB,EAAE,GAC/B,YAAY,GAAG,IAAI,CAarB;AAID,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EACrC,WAAW,CAAC,EAAE,gBAAgB,EAAE,GAC/B,QAAQ,GAAG,IAAI,CAqCjB"}
|
package/dist/tiledJsonParse.js
CHANGED
|
@@ -1,27 +1,41 @@
|
|
|
1
|
+
import { reportImportDiagnostic } from '@flighthq/importdiagnostics/contract';
|
|
2
|
+
import { ImportDiagnosticSeverity } from '@flighthq/types/contract';
|
|
1
3
|
import { parseTiledColor } from './tiledColor';
|
|
2
4
|
import { decodeTiledBase64Layer, decodeTiledCsvLayer } from './tiledLayerData';
|
|
3
5
|
// JSON front-end of the Tiled codec: TMJ maps and standalone TSJ tilesets. The same DTO builders as
|
|
4
6
|
// the XML front-end, walking a parsed JSON tree instead of an XML one.
|
|
5
7
|
// Parses a standalone TSJ tileset document into a `TiledTileset`, or null on malformed JSON.
|
|
6
|
-
export function parseTiledTilesetJson(text, _options) {
|
|
8
|
+
export function parseTiledTilesetJson(text, _options, diagnostics) {
|
|
7
9
|
const root = parseJson(text);
|
|
8
|
-
if (root === null)
|
|
10
|
+
if (root === null) {
|
|
11
|
+
reportImportDiagnostic(diagnostics, ImportDiagnosticSeverity.Reject, 'tiled.json-malformed', 'parseTiledTilesetJson', { path: 'tileset' });
|
|
9
12
|
return null;
|
|
10
|
-
|
|
13
|
+
}
|
|
14
|
+
return buildTiledTilesetFromJson(root, diagnostics, 'tileset');
|
|
11
15
|
}
|
|
12
16
|
// Parses a TMJ map document into a faithful `TiledMap`, or null on malformed JSON. A compressed tile
|
|
13
17
|
// layer with no `inflate` seam is preserved as an all-zero grid.
|
|
14
|
-
export function parseTiledTmj(text, options) {
|
|
18
|
+
export function parseTiledTmj(text, options, diagnostics) {
|
|
15
19
|
const root = parseJson(text);
|
|
16
|
-
if (root === null)
|
|
20
|
+
if (root === null) {
|
|
21
|
+
reportImportDiagnostic(diagnostics, ImportDiagnosticSeverity.Reject, 'tiled.json-malformed', 'parseTiledTmj', {
|
|
22
|
+
path: 'map',
|
|
23
|
+
});
|
|
17
24
|
return null;
|
|
25
|
+
}
|
|
26
|
+
if (diagnostics !== undefined) {
|
|
27
|
+
reportMissingJsonField(root, 'height', diagnostics, 'parseTiledTmj', 'map');
|
|
28
|
+
reportMissingJsonField(root, 'tileheight', diagnostics, 'parseTiledTmj', 'map');
|
|
29
|
+
reportMissingJsonField(root, 'tilewidth', diagnostics, 'parseTiledTmj', 'map');
|
|
30
|
+
reportMissingJsonField(root, 'width', diagnostics, 'parseTiledTmj', 'map');
|
|
31
|
+
}
|
|
18
32
|
const background = strField(root, 'backgroundcolor');
|
|
19
33
|
return {
|
|
20
34
|
backgroundColor: background !== null ? parseTiledColor(background) : null,
|
|
21
35
|
height: numField(root, 'height', 0),
|
|
22
36
|
infinite: boolField(root, 'infinite', false),
|
|
23
37
|
layers: arrayField(root, 'layers')
|
|
24
|
-
.map((layer) => buildTiledLayerFromJson(layer, options))
|
|
38
|
+
.map((layer, index) => buildTiledLayerFromJson(layer, options, diagnostics, diagnostics === undefined ? '' : `map.layers[${index}]`))
|
|
25
39
|
.filter((layer) => layer !== null),
|
|
26
40
|
orientation: asOrientation(strField(root, 'orientation')),
|
|
27
41
|
properties: buildTiledPropertiesFromJson(root),
|
|
@@ -29,7 +43,7 @@ export function parseTiledTmj(text, options) {
|
|
|
29
43
|
tileHeight: numField(root, 'tileheight', 0),
|
|
30
44
|
tileWidth: numField(root, 'tilewidth', 0),
|
|
31
45
|
tiledVersion: strField(root, 'tiledversion'),
|
|
32
|
-
tilesets: arrayField(root, 'tilesets').map(buildTiledTilesetRefFromJson),
|
|
46
|
+
tilesets: arrayField(root, 'tilesets').map((tileset, index) => buildTiledTilesetRefFromJson(tileset, diagnostics, diagnostics === undefined ? '' : `map.tilesets[${index}]`)),
|
|
33
47
|
version: stringOr(numOrString(root.version), '1.0'),
|
|
34
48
|
width: numField(root, 'width', 0),
|
|
35
49
|
};
|
|
@@ -74,7 +88,7 @@ function buildTiledLayerBaseFromJson(obj) {
|
|
|
74
88
|
visible: boolField(obj, 'visible', true),
|
|
75
89
|
};
|
|
76
90
|
}
|
|
77
|
-
function buildTiledLayerDataFromJson(obj, width, height, options) {
|
|
91
|
+
function buildTiledLayerDataFromJson(obj, width, height, options, diagnostics, path = '') {
|
|
78
92
|
const grid = new Uint32Array(width * height);
|
|
79
93
|
const data = obj.data;
|
|
80
94
|
let decoded = null;
|
|
@@ -82,25 +96,45 @@ function buildTiledLayerDataFromJson(obj, width, height, options) {
|
|
|
82
96
|
decoded = Uint32Array.from(data, (v) => (typeof v === 'number' ? v >>> 0 : 0));
|
|
83
97
|
}
|
|
84
98
|
else if (typeof data === 'string') {
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
99
|
+
const encoding = strField(obj, 'encoding');
|
|
100
|
+
if (encoding === 'csv') {
|
|
101
|
+
decoded = decodeTiledCsvLayer(data);
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
if (encoding === null) {
|
|
105
|
+
reportMissingRequiredField(diagnostics, 'buildTiledLayerDataFromJson', path, 'encoding');
|
|
106
|
+
}
|
|
107
|
+
else if (encoding !== 'base64') {
|
|
108
|
+
reportImportDiagnostic(diagnostics, ImportDiagnosticSeverity.Recover, 'tiled.layer-encoding-invalid', 'buildTiledLayerDataFromJson', { encoding, path: `${path}.encoding` });
|
|
109
|
+
}
|
|
110
|
+
const compression = asCompression(strField(obj, 'compression'));
|
|
111
|
+
if (compression !== null && options?.inflate === undefined) {
|
|
112
|
+
reportImportDiagnostic(diagnostics, ImportDiagnosticSeverity.Recover, 'tiled.layer-inflate-unavailable', 'buildTiledLayerDataFromJson', { compression, path });
|
|
113
|
+
}
|
|
114
|
+
decoded = decodeTiledBase64Layer(data, compression, options?.inflate);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
else if (data === undefined) {
|
|
118
|
+
reportMissingRequiredField(diagnostics, 'buildTiledLayerDataFromJson', path);
|
|
89
119
|
}
|
|
90
120
|
if (decoded === null)
|
|
91
121
|
return grid;
|
|
92
122
|
grid.set(decoded.subarray(0, grid.length));
|
|
93
123
|
return grid;
|
|
94
124
|
}
|
|
95
|
-
function buildTiledLayerFromJson(obj, options) {
|
|
125
|
+
function buildTiledLayerFromJson(obj, options, diagnostics, path = '') {
|
|
96
126
|
const base = buildTiledLayerBaseFromJson(obj);
|
|
97
127
|
const type = strField(obj, 'type');
|
|
98
128
|
if (type === 'tilelayer') {
|
|
129
|
+
if (diagnostics !== undefined) {
|
|
130
|
+
reportMissingJsonField(obj, 'height', diagnostics, 'buildTiledLayerFromJson', path);
|
|
131
|
+
reportMissingJsonField(obj, 'width', diagnostics, 'buildTiledLayerFromJson', path);
|
|
132
|
+
}
|
|
99
133
|
const width = numField(obj, 'width', 0);
|
|
100
134
|
const height = numField(obj, 'height', 0);
|
|
101
135
|
return {
|
|
102
136
|
...base,
|
|
103
|
-
data: buildTiledLayerDataFromJson(obj, width, height, options),
|
|
137
|
+
data: buildTiledLayerDataFromJson(obj, width, height, options, diagnostics, diagnostics === undefined ? '' : `${path}.data`),
|
|
104
138
|
height,
|
|
105
139
|
type: 'tilelayer',
|
|
106
140
|
width,
|
|
@@ -116,11 +150,14 @@ function buildTiledLayerFromJson(obj, options) {
|
|
|
116
150
|
return {
|
|
117
151
|
...base,
|
|
118
152
|
layers: arrayField(obj, 'layers')
|
|
119
|
-
.map((layer) => buildTiledLayerFromJson(layer, options))
|
|
153
|
+
.map((layer, index) => buildTiledLayerFromJson(layer, options, diagnostics, diagnostics === undefined ? '' : `${path}.layers[${index}]`))
|
|
120
154
|
.filter((layer) => layer !== null),
|
|
121
155
|
type: 'group',
|
|
122
156
|
};
|
|
123
157
|
}
|
|
158
|
+
if (type === null) {
|
|
159
|
+
reportImportDiagnostic(diagnostics, ImportDiagnosticSeverity.Drop, 'tiled.required-field-missing', 'buildTiledLayerFromJson', { path: `${path}.type` });
|
|
160
|
+
}
|
|
124
161
|
return null;
|
|
125
162
|
}
|
|
126
163
|
function buildTiledObjectFromJson(obj) {
|
|
@@ -148,7 +185,12 @@ function buildTiledPropertiesFromJson(obj) {
|
|
|
148
185
|
return { name: strField(property, 'name') ?? '', type, value: coercePropertyValue(type, raw) };
|
|
149
186
|
});
|
|
150
187
|
}
|
|
151
|
-
function buildTiledTilesetFromJson(obj) {
|
|
188
|
+
function buildTiledTilesetFromJson(obj, diagnostics, path = '') {
|
|
189
|
+
if (diagnostics !== undefined) {
|
|
190
|
+
reportMissingJsonField(obj, 'name', diagnostics, 'buildTiledTilesetFromJson', path);
|
|
191
|
+
reportMissingJsonField(obj, 'tileheight', diagnostics, 'buildTiledTilesetFromJson', path);
|
|
192
|
+
reportMissingJsonField(obj, 'tilewidth', diagnostics, 'buildTiledTilesetFromJson', path);
|
|
193
|
+
}
|
|
152
194
|
return {
|
|
153
195
|
columns: numField(obj, 'columns', 0),
|
|
154
196
|
image: strField(obj, 'image'),
|
|
@@ -164,12 +206,12 @@ function buildTiledTilesetFromJson(obj) {
|
|
|
164
206
|
tiles: arrayField(obj, 'tiles').map(buildTiledTilesetTileFromJson),
|
|
165
207
|
};
|
|
166
208
|
}
|
|
167
|
-
function buildTiledTilesetRefFromJson(obj) {
|
|
209
|
+
function buildTiledTilesetRefFromJson(obj, diagnostics, path = '') {
|
|
168
210
|
const source = strField(obj, 'source');
|
|
169
211
|
return {
|
|
170
212
|
firstGid: numField(obj, 'firstgid', 1),
|
|
171
213
|
source,
|
|
172
|
-
tileset: source !== null ? null : buildTiledTilesetFromJson(obj),
|
|
214
|
+
tileset: source !== null ? null : buildTiledTilesetFromJson(obj, diagnostics, path),
|
|
173
215
|
};
|
|
174
216
|
}
|
|
175
217
|
function buildTiledTilesetTileFromJson(obj) {
|
|
@@ -226,6 +268,16 @@ function parsePointsField(obj, key) {
|
|
|
226
268
|
return null;
|
|
227
269
|
return value.filter(isJsonObject).map((point) => ({ x: numField(point, 'x', 0), y: numField(point, 'y', 0) }));
|
|
228
270
|
}
|
|
271
|
+
function reportMissingJsonField(obj, key, diagnostics, origin, path) {
|
|
272
|
+
if (diagnostics === undefined || obj[key] !== undefined)
|
|
273
|
+
return;
|
|
274
|
+
reportMissingRequiredField(diagnostics, origin, path, key);
|
|
275
|
+
}
|
|
276
|
+
function reportMissingRequiredField(diagnostics, origin, path, field) {
|
|
277
|
+
reportImportDiagnostic(diagnostics, ImportDiagnosticSeverity.Recover, 'tiled.required-field-missing', origin, {
|
|
278
|
+
path: field === undefined ? path : `${path}.${field}`,
|
|
279
|
+
});
|
|
280
|
+
}
|
|
229
281
|
function stringOr(value, fallback) {
|
|
230
282
|
if (value === null)
|
|
231
283
|
return fallback;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tiledJsonParse.js","sourceRoot":"","sources":["../src/tiledJsonParse.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tiledJsonParse.js","sourceRoot":"","sources":["../src/tiledJsonParse.ts"],"names":[],"mappings":"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"}
|
package/dist/tiledXmlParse.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { TiledMap, TiledParseOptions, TiledTileset } from '@flighthq/types/contract';
|
|
2
|
-
export declare function parseTiledTileset(text: string, _options?: Readonly<TiledParseOptions
|
|
3
|
-
export declare function parseTiledTmx(text: string, options?: Readonly<TiledParseOptions
|
|
1
|
+
import type { ImportDiagnostic, TiledMap, TiledParseOptions, TiledTileset } from '@flighthq/types/contract';
|
|
2
|
+
export declare function parseTiledTileset(text: string, _options?: Readonly<TiledParseOptions>, diagnostics?: ImportDiagnostic[]): TiledTileset | null;
|
|
3
|
+
export declare function parseTiledTmx(text: string, options?: Readonly<TiledParseOptions>, diagnostics?: ImportDiagnostic[]): TiledMap | null;
|
|
4
4
|
//# sourceMappingURL=tiledXmlParse.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tiledXmlParse.d.ts","sourceRoot":"","sources":["../src/tiledXmlParse.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tiledXmlParse.d.ts","sourceRoot":"","sources":["../src/tiledXmlParse.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gBAAgB,EAGhB,QAAQ,EAGR,iBAAiB,EAIjB,YAAY,EAKb,MAAM,0BAA0B,CAAC;AAmBlC,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EACtC,WAAW,CAAC,EAAE,gBAAgB,EAAE,GAC/B,YAAY,GAAG,IAAI,CAgBrB;AAID,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,QAAQ,CAAC,iBAAiB,CAAC,EACrC,WAAW,CAAC,EAAE,gBAAgB,EAAE,GAC/B,QAAQ,GAAG,IAAI,CAwDjB"}
|
package/dist/tiledXmlParse.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { reportImportDiagnostic } from '@flighthq/importdiagnostics/contract';
|
|
2
|
+
import { ImportDiagnosticSeverity } from '@flighthq/types/contract';
|
|
1
3
|
import { getXmlElementAttribute, getXmlElementChildByName, getXmlElementChildrenByName, parseXmlDocument, } from '@flighthq/xml/contract';
|
|
2
4
|
import { parseTiledColor } from './tiledColor';
|
|
3
5
|
import { decodeTiledBase64Layer, decodeTiledCsvLayer } from './tiledLayerData';
|
|
@@ -6,25 +8,53 @@ import { decodeTiledBase64Layer, decodeTiledCsvLayer } from './tiledLayerData';
|
|
|
6
8
|
// decoding, color, and GID handling come from the representation-independent primitives.
|
|
7
9
|
// Parses a standalone TSX tileset document into a `TiledTileset`, or null when the root is not a
|
|
8
10
|
// `<tileset>` element.
|
|
9
|
-
export function parseTiledTileset(text, _options) {
|
|
11
|
+
export function parseTiledTileset(text, _options, diagnostics) {
|
|
10
12
|
const root = parseXmlDocument(text);
|
|
11
|
-
if (root === null
|
|
13
|
+
if (root === null) {
|
|
14
|
+
reportImportDiagnostic(diagnostics, ImportDiagnosticSeverity.Reject, 'tiled.xml-malformed', 'parseTiledTileset', {
|
|
15
|
+
path: 'tileset',
|
|
16
|
+
});
|
|
12
17
|
return null;
|
|
13
|
-
|
|
18
|
+
}
|
|
19
|
+
if (root.name !== 'tileset') {
|
|
20
|
+
reportImportDiagnostic(diagnostics, ImportDiagnosticSeverity.Reject, 'tiled.root-unexpected', 'parseTiledTileset', {
|
|
21
|
+
actual: root.name,
|
|
22
|
+
path: 'tileset',
|
|
23
|
+
});
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
return buildTiledTilesetFromXml(root, diagnostics, 'tileset');
|
|
14
27
|
}
|
|
15
28
|
// Parses a TMX map document into a faithful `TiledMap`, or null when the root is not a `<map>`
|
|
16
29
|
// element. A compressed tile layer with no `inflate` seam is preserved as an all-zero grid.
|
|
17
|
-
export function parseTiledTmx(text, options) {
|
|
30
|
+
export function parseTiledTmx(text, options, diagnostics) {
|
|
18
31
|
const root = parseXmlDocument(text);
|
|
19
|
-
if (root === null
|
|
32
|
+
if (root === null) {
|
|
33
|
+
reportImportDiagnostic(diagnostics, ImportDiagnosticSeverity.Reject, 'tiled.xml-malformed', 'parseTiledTmx', {
|
|
34
|
+
path: 'map',
|
|
35
|
+
});
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
if (root.name !== 'map') {
|
|
39
|
+
reportImportDiagnostic(diagnostics, ImportDiagnosticSeverity.Reject, 'tiled.root-unexpected', 'parseTiledTmx', {
|
|
40
|
+
actual: root.name,
|
|
41
|
+
path: 'map',
|
|
42
|
+
});
|
|
20
43
|
return null;
|
|
44
|
+
}
|
|
45
|
+
if (diagnostics !== undefined) {
|
|
46
|
+
reportMissingXmlAttribute(root, 'height', diagnostics, 'parseTiledTmx', 'map');
|
|
47
|
+
reportMissingXmlAttribute(root, 'tileheight', diagnostics, 'parseTiledTmx', 'map');
|
|
48
|
+
reportMissingXmlAttribute(root, 'tilewidth', diagnostics, 'parseTiledTmx', 'map');
|
|
49
|
+
reportMissingXmlAttribute(root, 'width', diagnostics, 'parseTiledTmx', 'map');
|
|
50
|
+
}
|
|
21
51
|
const tilesets = [];
|
|
22
|
-
for (const element of getXmlElementChildrenByName(root, 'tileset')) {
|
|
23
|
-
tilesets.push(buildTiledTilesetRefFromXml(element));
|
|
52
|
+
for (const [index, element] of getXmlElementChildrenByName(root, 'tileset').entries()) {
|
|
53
|
+
tilesets.push(buildTiledTilesetRefFromXml(element, diagnostics, diagnostics === undefined ? '' : `map.tilesets[${index}]`));
|
|
24
54
|
}
|
|
25
55
|
const layers = [];
|
|
26
56
|
for (const element of root.children) {
|
|
27
|
-
const layer = buildTiledLayerFromXml(element, options);
|
|
57
|
+
const layer = buildTiledLayerFromXml(element, options, diagnostics, diagnostics === undefined ? '' : `map.layers[${layers.length}]`);
|
|
28
58
|
if (layer !== null)
|
|
29
59
|
layers.push(layer);
|
|
30
60
|
}
|
|
@@ -73,14 +103,18 @@ function buildTiledLayerBaseFromXml(element) {
|
|
|
73
103
|
visible: attrBool(element, 'visible', true),
|
|
74
104
|
};
|
|
75
105
|
}
|
|
76
|
-
function buildTiledLayerFromXml(element, options) {
|
|
106
|
+
function buildTiledLayerFromXml(element, options, diagnostics, path = '') {
|
|
77
107
|
const base = buildTiledLayerBaseFromXml(element);
|
|
78
108
|
if (element.name === 'layer') {
|
|
109
|
+
if (diagnostics !== undefined) {
|
|
110
|
+
reportMissingXmlAttribute(element, 'height', diagnostics, 'buildTiledLayerFromXml', path);
|
|
111
|
+
reportMissingXmlAttribute(element, 'width', diagnostics, 'buildTiledLayerFromXml', path);
|
|
112
|
+
}
|
|
79
113
|
const width = attrNumber(element, 'width', 0);
|
|
80
114
|
const height = attrNumber(element, 'height', 0);
|
|
81
115
|
return {
|
|
82
116
|
...base,
|
|
83
|
-
data: buildTiledLayerDataFromXml(element, width, height, options),
|
|
117
|
+
data: buildTiledLayerDataFromXml(element, width, height, options, diagnostics, diagnostics === undefined ? '' : `${path}.data`),
|
|
84
118
|
height,
|
|
85
119
|
type: 'tilelayer',
|
|
86
120
|
width,
|
|
@@ -100,7 +134,7 @@ function buildTiledLayerFromXml(element, options) {
|
|
|
100
134
|
if (element.name === 'group') {
|
|
101
135
|
const layers = [];
|
|
102
136
|
for (const child of element.children) {
|
|
103
|
-
const layer = buildTiledLayerFromXml(child, options);
|
|
137
|
+
const layer = buildTiledLayerFromXml(child, options, diagnostics, diagnostics === undefined ? '' : `${path}.layers[${layers.length}]`);
|
|
104
138
|
if (layer !== null)
|
|
105
139
|
layers.push(layer);
|
|
106
140
|
}
|
|
@@ -111,20 +145,29 @@ function buildTiledLayerFromXml(element, options) {
|
|
|
111
145
|
// Decodes a `<layer>`'s `<data>` into a width*height grid of raw GIDs. Handles csv, base64
|
|
112
146
|
// (optionally compressed via `options.inflate`), and the uncompressed `<tile gid>` element form.
|
|
113
147
|
// Always returns a grid sized exactly width*height (short/failed payloads pad with 0 = empty).
|
|
114
|
-
function buildTiledLayerDataFromXml(element, width, height, options) {
|
|
148
|
+
function buildTiledLayerDataFromXml(element, width, height, options, diagnostics, path = '') {
|
|
115
149
|
const grid = new Uint32Array(width * height);
|
|
116
150
|
const data = getXmlElementChildByName(element, 'data');
|
|
117
|
-
if (data === null)
|
|
151
|
+
if (data === null) {
|
|
152
|
+
reportMissingRequiredField(diagnostics, 'buildTiledLayerDataFromXml', path);
|
|
118
153
|
return grid;
|
|
154
|
+
}
|
|
119
155
|
const encoding = getXmlElementAttribute(data, 'encoding');
|
|
120
156
|
let decoded;
|
|
121
157
|
if (encoding === 'csv') {
|
|
122
158
|
decoded = decodeTiledCsvLayer(data.text);
|
|
123
159
|
}
|
|
124
160
|
else if (encoding === 'base64') {
|
|
125
|
-
|
|
161
|
+
const compression = asCompression(getXmlElementAttribute(data, 'compression'));
|
|
162
|
+
if (compression !== null && options?.inflate === undefined) {
|
|
163
|
+
reportImportDiagnostic(diagnostics, ImportDiagnosticSeverity.Recover, 'tiled.layer-inflate-unavailable', 'buildTiledLayerDataFromXml', { compression, path });
|
|
164
|
+
}
|
|
165
|
+
decoded = decodeTiledBase64Layer(data.text, compression, options?.inflate);
|
|
126
166
|
}
|
|
127
167
|
else {
|
|
168
|
+
if (encoding !== null) {
|
|
169
|
+
reportImportDiagnostic(diagnostics, ImportDiagnosticSeverity.Recover, 'tiled.layer-encoding-invalid', 'buildTiledLayerDataFromXml', { encoding, path: `${path}.encoding` });
|
|
170
|
+
}
|
|
128
171
|
decoded = Uint32Array.from(getXmlElementChildrenByName(data, 'tile').map((tile) => attrNumber(tile, 'gid', 0) >>> 0));
|
|
129
172
|
}
|
|
130
173
|
if (decoded === null)
|
|
@@ -162,7 +205,12 @@ function buildTiledPropertiesFromXml(element) {
|
|
|
162
205
|
return { name: attrString(property, 'name', ''), type, value: parsePropertyValue(type, raw) };
|
|
163
206
|
});
|
|
164
207
|
}
|
|
165
|
-
function buildTiledTilesetFromXml(element) {
|
|
208
|
+
function buildTiledTilesetFromXml(element, diagnostics, path = '') {
|
|
209
|
+
if (diagnostics !== undefined) {
|
|
210
|
+
reportMissingXmlAttribute(element, 'name', diagnostics, 'buildTiledTilesetFromXml', path);
|
|
211
|
+
reportMissingXmlAttribute(element, 'tileheight', diagnostics, 'buildTiledTilesetFromXml', path);
|
|
212
|
+
reportMissingXmlAttribute(element, 'tilewidth', diagnostics, 'buildTiledTilesetFromXml', path);
|
|
213
|
+
}
|
|
166
214
|
const image = getXmlElementChildByName(element, 'image');
|
|
167
215
|
return {
|
|
168
216
|
columns: attrNumber(element, 'columns', 0),
|
|
@@ -179,12 +227,12 @@ function buildTiledTilesetFromXml(element) {
|
|
|
179
227
|
tiles: getXmlElementChildrenByName(element, 'tile').map(buildTiledTilesetTileFromXml),
|
|
180
228
|
};
|
|
181
229
|
}
|
|
182
|
-
function buildTiledTilesetRefFromXml(element) {
|
|
230
|
+
function buildTiledTilesetRefFromXml(element, diagnostics, path = '') {
|
|
183
231
|
const source = getXmlElementAttribute(element, 'source');
|
|
184
232
|
return {
|
|
185
233
|
firstGid: attrNumber(element, 'firstgid', 1),
|
|
186
234
|
source,
|
|
187
|
-
tileset: source !== null ? null : buildTiledTilesetFromXml(element),
|
|
235
|
+
tileset: source !== null ? null : buildTiledTilesetFromXml(element, diagnostics, path),
|
|
188
236
|
};
|
|
189
237
|
}
|
|
190
238
|
function buildTiledTilesetTileFromXml(element) {
|
|
@@ -216,6 +264,16 @@ function parseTiledPoints(text) {
|
|
|
216
264
|
}
|
|
217
265
|
return points;
|
|
218
266
|
}
|
|
267
|
+
function reportMissingRequiredField(diagnostics, origin, path, field) {
|
|
268
|
+
reportImportDiagnostic(diagnostics, ImportDiagnosticSeverity.Recover, 'tiled.required-field-missing', origin, {
|
|
269
|
+
path: field === undefined ? path : `${path}.${field}`,
|
|
270
|
+
});
|
|
271
|
+
}
|
|
272
|
+
function reportMissingXmlAttribute(element, name, diagnostics, origin, path) {
|
|
273
|
+
if (diagnostics === undefined || getXmlElementAttribute(element, name) !== null)
|
|
274
|
+
return;
|
|
275
|
+
reportMissingRequiredField(diagnostics, origin, path, name);
|
|
276
|
+
}
|
|
219
277
|
function asCompression(value) {
|
|
220
278
|
return value === 'gzip' || value === 'zlib' || value === 'zstd' ? value : null;
|
|
221
279
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tiledXmlParse.js","sourceRoot":"","sources":["../src/tiledXmlParse.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tiledXmlParse.js","sourceRoot":"","sources":["../src/tiledXmlParse.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flighthq/tilemap-formats",
|
|
3
|
-
"version": "0.5.1-next.
|
|
3
|
+
"version": "0.5.1-next.704.19c91ec",
|
|
4
4
|
"author": "Joshua Granick and other contributors",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -38,10 +38,10 @@
|
|
|
38
38
|
"clean:dist": "tsx ../../scripts/clean-package-dist.ts"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@flighthq/importdiagnostics": "0.5.1-next.
|
|
42
|
-
"@flighthq/tilemap": "0.5.1-next.
|
|
43
|
-
"@flighthq/types": "0.5.1-next.
|
|
44
|
-
"@flighthq/xml": "0.5.1-next.
|
|
41
|
+
"@flighthq/importdiagnostics": "0.5.1-next.704.19c91ec",
|
|
42
|
+
"@flighthq/tilemap": "0.5.1-next.704.19c91ec",
|
|
43
|
+
"@flighthq/types": "0.5.1-next.704.19c91ec",
|
|
44
|
+
"@flighthq/xml": "0.5.1-next.704.19c91ec"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
47
|
"typescript": "^5.3.0"
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type { TiledParseOptions } from '@flighthq/types/contract';
|
|
1
|
+
import type { ImportDiagnostic, TiledParseOptions } from '@flighthq/types/contract';
|
|
2
|
+
import { ImportDiagnosticSeverity } from '@flighthq/types/contract';
|
|
2
3
|
import { describe, expect, it } from 'vitest';
|
|
3
4
|
|
|
4
5
|
import { parseTiledTilesetJson, parseTiledTmj } from './tiledJsonParse';
|
|
@@ -34,6 +35,7 @@ function tmjWithData(data: unknown, extra: Record<string, unknown> = {}): string
|
|
|
34
35
|
|
|
35
36
|
describe('parseTiledTilesetJson', () => {
|
|
36
37
|
it('parses a standalone TSJ tileset', () => {
|
|
38
|
+
const diagnostics: ImportDiagnostic[] = [];
|
|
37
39
|
const tsj = JSON.stringify({
|
|
38
40
|
columns: 3,
|
|
39
41
|
image: 'terrain.png',
|
|
@@ -47,17 +49,47 @@ describe('parseTiledTilesetJson', () => {
|
|
|
47
49
|
tiles: [{ animation: [{ duration: 100, tileid: 0 }], id: 0, type: 'water' }],
|
|
48
50
|
tilewidth: 16,
|
|
49
51
|
});
|
|
50
|
-
const tileset = parseTiledTilesetJson(tsj)!;
|
|
52
|
+
const tileset = parseTiledTilesetJson(tsj, undefined, diagnostics)!;
|
|
51
53
|
expect(tileset.name).toBe('terrain');
|
|
52
54
|
expect(tileset.image).toBe('terrain.png');
|
|
53
55
|
expect(tileset.columns).toBe(3);
|
|
54
56
|
expect(tileset.tiles[0].animation).toEqual([{ duration: 100, tileId: 0 }]);
|
|
57
|
+
expect(diagnostics).toEqual([]);
|
|
55
58
|
});
|
|
56
59
|
|
|
57
60
|
it('returns null on malformed JSON', () => {
|
|
58
61
|
expect(parseTiledTilesetJson('{ not json')).toBeNull();
|
|
59
62
|
expect(parseTiledTilesetJson('[]')).toBeNull();
|
|
60
63
|
});
|
|
64
|
+
|
|
65
|
+
it('reports malformed JSON and missing required fields at their exact paths', () => {
|
|
66
|
+
const malformedDiagnostics: ImportDiagnostic[] = [];
|
|
67
|
+
expect(parseTiledTilesetJson('{ not json', undefined, malformedDiagnostics)).toBeNull();
|
|
68
|
+
expect(malformedDiagnostics).toEqual([
|
|
69
|
+
{
|
|
70
|
+
detail: { path: 'tileset' },
|
|
71
|
+
kind: 'tiled.json-malformed',
|
|
72
|
+
origin: 'parseTiledTilesetJson',
|
|
73
|
+
severity: ImportDiagnosticSeverity.Reject,
|
|
74
|
+
},
|
|
75
|
+
]);
|
|
76
|
+
|
|
77
|
+
const missingDiagnostics: ImportDiagnostic[] = [];
|
|
78
|
+
const tileset = parseTiledTilesetJson(
|
|
79
|
+
JSON.stringify({ columns: 1, tilecount: 1, tileheight: 16, tilewidth: 16 }),
|
|
80
|
+
undefined,
|
|
81
|
+
missingDiagnostics,
|
|
82
|
+
);
|
|
83
|
+
expect(tileset?.name).toBe('');
|
|
84
|
+
expect(missingDiagnostics).toEqual([
|
|
85
|
+
{
|
|
86
|
+
detail: { path: 'tileset.name' },
|
|
87
|
+
kind: 'tiled.required-field-missing',
|
|
88
|
+
origin: 'buildTiledTilesetFromJson',
|
|
89
|
+
severity: ImportDiagnosticSeverity.Recover,
|
|
90
|
+
},
|
|
91
|
+
]);
|
|
92
|
+
});
|
|
61
93
|
});
|
|
62
94
|
|
|
63
95
|
describe('parseTiledTmj', () => {
|
|
@@ -118,16 +150,47 @@ describe('parseTiledTmj', () => {
|
|
|
118
150
|
it('preserves a compressed layer as empty without an inflate seam, and decodes with one', () => {
|
|
119
151
|
const json = tmjWithData(base64Layer([1, 5, 2147483649, 6]), { compression: 'zlib', encoding: 'base64' });
|
|
120
152
|
|
|
121
|
-
const
|
|
153
|
+
const diagnostics: ImportDiagnostic[] = [];
|
|
154
|
+
const dropped = parseTiledTmj(json, undefined, diagnostics)!;
|
|
122
155
|
const droppedLayer = dropped.layers[0];
|
|
123
156
|
if (droppedLayer.type !== 'tilelayer') throw new Error('expected a tile layer');
|
|
124
157
|
expect(Array.from(droppedLayer.data)).toEqual([0, 0, 0, 0]);
|
|
158
|
+
expect(diagnostics).toEqual([
|
|
159
|
+
{
|
|
160
|
+
detail: { compression: 'zlib', path: 'map.layers[0].data' },
|
|
161
|
+
kind: 'tiled.layer-inflate-unavailable',
|
|
162
|
+
origin: 'buildTiledLayerDataFromJson',
|
|
163
|
+
severity: ImportDiagnosticSeverity.Recover,
|
|
164
|
+
},
|
|
165
|
+
]);
|
|
125
166
|
|
|
126
167
|
const options: TiledParseOptions = { inflate: (bytes) => new Uint8Array(bytes) };
|
|
127
|
-
const
|
|
168
|
+
const decodedDiagnostics: ImportDiagnostic[] = [];
|
|
169
|
+
const decoded = parseTiledTmj(json, options, decodedDiagnostics)!;
|
|
128
170
|
const decodedLayer = decoded.layers[0];
|
|
129
171
|
if (decodedLayer.type !== 'tilelayer') throw new Error('expected a tile layer');
|
|
130
172
|
expect(Array.from(decodedLayer.data)).toEqual([1, 5, 2147483649, 6]);
|
|
173
|
+
expect(decodedDiagnostics).toEqual([]);
|
|
174
|
+
});
|
|
175
|
+
|
|
176
|
+
it('reports invalid layer encoding while preserving the existing base64 fallback', () => {
|
|
177
|
+
const diagnostics: ImportDiagnostic[] = [];
|
|
178
|
+
const map = parseTiledTmj(
|
|
179
|
+
tmjWithData(base64Layer([1, 5, 2147483649, 6]), { encoding: 'invalid' }),
|
|
180
|
+
undefined,
|
|
181
|
+
diagnostics,
|
|
182
|
+
)!;
|
|
183
|
+
const layer = map.layers[0];
|
|
184
|
+
if (layer.type !== 'tilelayer') throw new Error('expected a tile layer');
|
|
185
|
+
expect(Array.from(layer.data)).toEqual([1, 5, 2147483649, 6]);
|
|
186
|
+
expect(diagnostics).toEqual([
|
|
187
|
+
{
|
|
188
|
+
detail: { encoding: 'invalid', path: 'map.layers[0].data.encoding' },
|
|
189
|
+
kind: 'tiled.layer-encoding-invalid',
|
|
190
|
+
origin: 'buildTiledLayerDataFromJson',
|
|
191
|
+
severity: ImportDiagnosticSeverity.Recover,
|
|
192
|
+
},
|
|
193
|
+
]);
|
|
131
194
|
});
|
|
132
195
|
|
|
133
196
|
it('parses a group layer and its nested children', () => {
|
|
@@ -278,4 +341,57 @@ describe('parseTiledTmj', () => {
|
|
|
278
341
|
expect(parseTiledTmj('{ not json')).toBeNull();
|
|
279
342
|
expect(parseTiledTmj('42')).toBeNull();
|
|
280
343
|
});
|
|
344
|
+
|
|
345
|
+
it('reports malformed JSON and missing required fields at their exact paths', () => {
|
|
346
|
+
const malformedDiagnostics: ImportDiagnostic[] = [];
|
|
347
|
+
expect(parseTiledTmj('{ not json', undefined, malformedDiagnostics)).toBeNull();
|
|
348
|
+
expect(malformedDiagnostics).toEqual([
|
|
349
|
+
{
|
|
350
|
+
detail: { path: 'map' },
|
|
351
|
+
kind: 'tiled.json-malformed',
|
|
352
|
+
origin: 'parseTiledTmj',
|
|
353
|
+
severity: ImportDiagnosticSeverity.Reject,
|
|
354
|
+
},
|
|
355
|
+
]);
|
|
356
|
+
|
|
357
|
+
const missingDiagnostics: ImportDiagnostic[] = [];
|
|
358
|
+
const map = parseTiledTmj(
|
|
359
|
+
JSON.stringify({ height: 1, layers: [], tileheight: 16, type: 'map', version: '1.10', width: 1 }),
|
|
360
|
+
undefined,
|
|
361
|
+
missingDiagnostics,
|
|
362
|
+
);
|
|
363
|
+
expect(map?.tileWidth).toBe(0);
|
|
364
|
+
expect(missingDiagnostics).toEqual([
|
|
365
|
+
{
|
|
366
|
+
detail: { path: 'map.tilewidth' },
|
|
367
|
+
kind: 'tiled.required-field-missing',
|
|
368
|
+
origin: 'parseTiledTmj',
|
|
369
|
+
severity: ImportDiagnosticSeverity.Recover,
|
|
370
|
+
},
|
|
371
|
+
]);
|
|
372
|
+
|
|
373
|
+
const missingLayerTypeDiagnostics: ImportDiagnostic[] = [];
|
|
374
|
+
const mapWithoutLayerType = parseTiledTmj(
|
|
375
|
+
JSON.stringify({
|
|
376
|
+
height: 1,
|
|
377
|
+
layers: [{ data: [1], height: 1, width: 1 }],
|
|
378
|
+
tileheight: 16,
|
|
379
|
+
tilewidth: 16,
|
|
380
|
+
type: 'map',
|
|
381
|
+
version: '1.10',
|
|
382
|
+
width: 1,
|
|
383
|
+
}),
|
|
384
|
+
undefined,
|
|
385
|
+
missingLayerTypeDiagnostics,
|
|
386
|
+
);
|
|
387
|
+
expect(mapWithoutLayerType?.layers).toEqual([]);
|
|
388
|
+
expect(missingLayerTypeDiagnostics).toEqual([
|
|
389
|
+
{
|
|
390
|
+
detail: { path: 'map.layers[0].type' },
|
|
391
|
+
kind: 'tiled.required-field-missing',
|
|
392
|
+
origin: 'buildTiledLayerFromJson',
|
|
393
|
+
severity: ImportDiagnosticSeverity.Drop,
|
|
394
|
+
},
|
|
395
|
+
]);
|
|
396
|
+
});
|
|
281
397
|
});
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type { TiledParseOptions } from '@flighthq/types/contract';
|
|
1
|
+
import type { ImportDiagnostic, TiledParseOptions } from '@flighthq/types/contract';
|
|
2
|
+
import { ImportDiagnosticSeverity } from '@flighthq/types/contract';
|
|
2
3
|
import { describe, expect, it } from 'vitest';
|
|
3
4
|
|
|
4
5
|
import { decodeTiledGid } from './tiledGid';
|
|
@@ -110,6 +111,7 @@ function tmxWithData(dataElement: string): string {
|
|
|
110
111
|
|
|
111
112
|
describe('parseTiledTileset', () => {
|
|
112
113
|
it('parses a standalone TSX tileset with per-tile animation and properties', () => {
|
|
114
|
+
const diagnostics: ImportDiagnostic[] = [];
|
|
113
115
|
const tsx = [
|
|
114
116
|
'<tileset name="terrain" tilewidth="16" tileheight="16" tilecount="9" columns="3" spacing="1" margin="2">',
|
|
115
117
|
' <image source="terrain.png" width="50" height="50"/>',
|
|
@@ -119,7 +121,7 @@ describe('parseTiledTileset', () => {
|
|
|
119
121
|
' </tile>',
|
|
120
122
|
'</tileset>',
|
|
121
123
|
].join('\n');
|
|
122
|
-
const tileset = parseTiledTileset(tsx)!;
|
|
124
|
+
const tileset = parseTiledTileset(tsx, undefined, diagnostics)!;
|
|
123
125
|
expect(tileset.name).toBe('terrain');
|
|
124
126
|
expect(tileset.image).toBe('terrain.png');
|
|
125
127
|
expect(tileset.imageWidth).toBe(50);
|
|
@@ -133,12 +135,53 @@ describe('parseTiledTileset', () => {
|
|
|
133
135
|
{ duration: 100, tileId: 0 },
|
|
134
136
|
{ duration: 120, tileId: 1 },
|
|
135
137
|
]);
|
|
138
|
+
expect(diagnostics).toEqual([]);
|
|
136
139
|
});
|
|
137
140
|
|
|
138
141
|
it('returns null when the root is not a tileset', () => {
|
|
139
142
|
expect(parseTiledTileset('<map/>')).toBeNull();
|
|
140
143
|
expect(parseTiledTileset('not xml')).toBeNull();
|
|
141
144
|
});
|
|
145
|
+
|
|
146
|
+
it('reports malformed XML and missing required fields at their exact paths', () => {
|
|
147
|
+
const malformedDiagnostics: ImportDiagnostic[] = [];
|
|
148
|
+
expect(parseTiledTileset('not xml', undefined, malformedDiagnostics)).toBeNull();
|
|
149
|
+
expect(malformedDiagnostics).toEqual([
|
|
150
|
+
{
|
|
151
|
+
detail: { path: 'tileset' },
|
|
152
|
+
kind: 'tiled.xml-malformed',
|
|
153
|
+
origin: 'parseTiledTileset',
|
|
154
|
+
severity: ImportDiagnosticSeverity.Reject,
|
|
155
|
+
},
|
|
156
|
+
]);
|
|
157
|
+
|
|
158
|
+
const unexpectedRootDiagnostics: ImportDiagnostic[] = [];
|
|
159
|
+
expect(parseTiledTileset('<map/>', undefined, unexpectedRootDiagnostics)).toBeNull();
|
|
160
|
+
expect(unexpectedRootDiagnostics).toEqual([
|
|
161
|
+
{
|
|
162
|
+
detail: { actual: 'map', path: 'tileset' },
|
|
163
|
+
kind: 'tiled.root-unexpected',
|
|
164
|
+
origin: 'parseTiledTileset',
|
|
165
|
+
severity: ImportDiagnosticSeverity.Reject,
|
|
166
|
+
},
|
|
167
|
+
]);
|
|
168
|
+
|
|
169
|
+
const missingDiagnostics: ImportDiagnostic[] = [];
|
|
170
|
+
const tileset = parseTiledTileset(
|
|
171
|
+
'<tileset tilewidth="16" tileheight="16" tilecount="1" columns="1"/>',
|
|
172
|
+
undefined,
|
|
173
|
+
missingDiagnostics,
|
|
174
|
+
);
|
|
175
|
+
expect(tileset?.name).toBe('');
|
|
176
|
+
expect(missingDiagnostics).toEqual([
|
|
177
|
+
{
|
|
178
|
+
detail: { path: 'tileset.name' },
|
|
179
|
+
kind: 'tiled.required-field-missing',
|
|
180
|
+
origin: 'buildTiledTilesetFromXml',
|
|
181
|
+
severity: ImportDiagnosticSeverity.Recover,
|
|
182
|
+
},
|
|
183
|
+
]);
|
|
184
|
+
});
|
|
142
185
|
});
|
|
143
186
|
|
|
144
187
|
describe('parseTiledTmx', () => {
|
|
@@ -208,16 +251,49 @@ describe('parseTiledTmx', () => {
|
|
|
208
251
|
const payload = base64Layer([1, 5, 2147483649, 6]);
|
|
209
252
|
const tmx = tmxWithData(`<data encoding="base64" compression="gzip">${payload}</data>`);
|
|
210
253
|
|
|
211
|
-
const
|
|
254
|
+
const diagnostics: ImportDiagnostic[] = [];
|
|
255
|
+
const dropped = parseTiledTmx(tmx, undefined, diagnostics)!;
|
|
212
256
|
const droppedLayer = dropped.layers[0];
|
|
213
257
|
if (droppedLayer.type !== 'tilelayer') throw new Error('expected a tile layer');
|
|
214
258
|
expect(Array.from(droppedLayer.data)).toEqual([0, 0, 0, 0]);
|
|
259
|
+
expect(diagnostics).toEqual([
|
|
260
|
+
{
|
|
261
|
+
detail: { compression: 'gzip', path: 'map.layers[0].data' },
|
|
262
|
+
kind: 'tiled.layer-inflate-unavailable',
|
|
263
|
+
origin: 'buildTiledLayerDataFromXml',
|
|
264
|
+
severity: ImportDiagnosticSeverity.Recover,
|
|
265
|
+
},
|
|
266
|
+
]);
|
|
215
267
|
|
|
216
268
|
const options: TiledParseOptions = { inflate: (bytes) => new Uint8Array(bytes) };
|
|
217
|
-
const
|
|
269
|
+
const decodedDiagnostics: ImportDiagnostic[] = [];
|
|
270
|
+
const decoded = parseTiledTmx(tmx, options, decodedDiagnostics)!;
|
|
218
271
|
const decodedLayer = decoded.layers[0];
|
|
219
272
|
if (decodedLayer.type !== 'tilelayer') throw new Error('expected a tile layer');
|
|
220
273
|
expect(Array.from(decodedLayer.data)).toEqual([1, 5, 2147483649, 6]);
|
|
274
|
+
expect(decodedDiagnostics).toEqual([]);
|
|
275
|
+
});
|
|
276
|
+
|
|
277
|
+
it('reports invalid layer encoding while preserving the existing XML-tile fallback', () => {
|
|
278
|
+
const diagnostics: ImportDiagnostic[] = [];
|
|
279
|
+
const map = parseTiledTmx(
|
|
280
|
+
tmxWithData(
|
|
281
|
+
'<data encoding="invalid"><tile gid="1"/><tile gid="5"/><tile gid="2147483649"/><tile gid="6"/></data>',
|
|
282
|
+
),
|
|
283
|
+
undefined,
|
|
284
|
+
diagnostics,
|
|
285
|
+
)!;
|
|
286
|
+
const layer = map.layers[0];
|
|
287
|
+
if (layer.type !== 'tilelayer') throw new Error('expected a tile layer');
|
|
288
|
+
expect(Array.from(layer.data)).toEqual([1, 5, 2147483649, 6]);
|
|
289
|
+
expect(diagnostics).toEqual([
|
|
290
|
+
{
|
|
291
|
+
detail: { encoding: 'invalid', path: 'map.layers[0].data.encoding' },
|
|
292
|
+
kind: 'tiled.layer-encoding-invalid',
|
|
293
|
+
origin: 'buildTiledLayerDataFromXml',
|
|
294
|
+
severity: ImportDiagnosticSeverity.Recover,
|
|
295
|
+
},
|
|
296
|
+
]);
|
|
221
297
|
});
|
|
222
298
|
|
|
223
299
|
it('parses to a document equivalent to the TMJ form', () => {
|
|
@@ -238,4 +314,62 @@ describe('parseTiledTmx', () => {
|
|
|
238
314
|
expect(parseTiledTmx('<foo/>')).toBeNull();
|
|
239
315
|
expect(parseTiledTmx('garbage')).toBeNull();
|
|
240
316
|
});
|
|
317
|
+
|
|
318
|
+
it('reports malformed XML and missing required fields at their exact paths', () => {
|
|
319
|
+
const malformedDiagnostics: ImportDiagnostic[] = [];
|
|
320
|
+
expect(parseTiledTmx('garbage', undefined, malformedDiagnostics)).toBeNull();
|
|
321
|
+
expect(malformedDiagnostics).toEqual([
|
|
322
|
+
{
|
|
323
|
+
detail: { path: 'map' },
|
|
324
|
+
kind: 'tiled.xml-malformed',
|
|
325
|
+
origin: 'parseTiledTmx',
|
|
326
|
+
severity: ImportDiagnosticSeverity.Reject,
|
|
327
|
+
},
|
|
328
|
+
]);
|
|
329
|
+
|
|
330
|
+
const unexpectedRootDiagnostics: ImportDiagnostic[] = [];
|
|
331
|
+
expect(parseTiledTmx('<tileset/>', undefined, unexpectedRootDiagnostics)).toBeNull();
|
|
332
|
+
expect(unexpectedRootDiagnostics).toEqual([
|
|
333
|
+
{
|
|
334
|
+
detail: { actual: 'tileset', path: 'map' },
|
|
335
|
+
kind: 'tiled.root-unexpected',
|
|
336
|
+
origin: 'parseTiledTmx',
|
|
337
|
+
severity: ImportDiagnosticSeverity.Reject,
|
|
338
|
+
},
|
|
339
|
+
]);
|
|
340
|
+
|
|
341
|
+
const missingDiagnostics: ImportDiagnostic[] = [];
|
|
342
|
+
const map = parseTiledTmx(
|
|
343
|
+
'<map version="1.10" width="1" height="1" tileheight="16"/>',
|
|
344
|
+
undefined,
|
|
345
|
+
missingDiagnostics,
|
|
346
|
+
);
|
|
347
|
+
expect(map?.tileWidth).toBe(0);
|
|
348
|
+
expect(missingDiagnostics).toEqual([
|
|
349
|
+
{
|
|
350
|
+
detail: { path: 'map.tilewidth' },
|
|
351
|
+
kind: 'tiled.required-field-missing',
|
|
352
|
+
origin: 'parseTiledTmx',
|
|
353
|
+
severity: ImportDiagnosticSeverity.Recover,
|
|
354
|
+
},
|
|
355
|
+
]);
|
|
356
|
+
|
|
357
|
+
const missingLayerDataDiagnostics: ImportDiagnostic[] = [];
|
|
358
|
+
const mapWithoutLayerData = parseTiledTmx(
|
|
359
|
+
'<map version="1.10" width="1" height="1" tilewidth="16" tileheight="16"><layer width="1" height="1"/></map>',
|
|
360
|
+
undefined,
|
|
361
|
+
missingLayerDataDiagnostics,
|
|
362
|
+
);
|
|
363
|
+
const layer = mapWithoutLayerData?.layers[0];
|
|
364
|
+
if (layer?.type !== 'tilelayer') throw new Error('expected a tile layer');
|
|
365
|
+
expect(Array.from(layer.data)).toEqual([0]);
|
|
366
|
+
expect(missingLayerDataDiagnostics).toEqual([
|
|
367
|
+
{
|
|
368
|
+
detail: { path: 'map.layers[0].data' },
|
|
369
|
+
kind: 'tiled.required-field-missing',
|
|
370
|
+
origin: 'buildTiledLayerDataFromXml',
|
|
371
|
+
severity: ImportDiagnosticSeverity.Recover,
|
|
372
|
+
},
|
|
373
|
+
]);
|
|
374
|
+
});
|
|
241
375
|
});
|