@flighthq/spritesheet-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.
Files changed (45) hide show
  1. package/README.md +2 -2
  2. package/dist/asepriteParse.d.ts +3 -13
  3. package/dist/asepriteParse.d.ts.map +1 -1
  4. package/dist/asepriteParse.js +6 -21
  5. package/dist/asepriteParse.js.map +1 -1
  6. package/dist/asepriteSerialize.d.ts +1 -8
  7. package/dist/asepriteSerialize.d.ts.map +1 -1
  8. package/dist/asepriteSerialize.js +0 -8
  9. package/dist/asepriteSerialize.js.map +1 -1
  10. package/dist/cocosPlistParse.d.ts +3 -10
  11. package/dist/cocosPlistParse.d.ts.map +1 -1
  12. package/dist/cocosPlistParse.js +10 -17
  13. package/dist/cocosPlistParse.js.map +1 -1
  14. package/dist/cocosPlistSerialize.d.ts +1 -2
  15. package/dist/cocosPlistSerialize.d.ts.map +1 -1
  16. package/dist/cocosPlistSerialize.js.map +1 -1
  17. package/dist/libgdxAtlasParse.d.ts +2 -9
  18. package/dist/libgdxAtlasParse.d.ts.map +1 -1
  19. package/dist/libgdxAtlasParse.js +6 -14
  20. package/dist/libgdxAtlasParse.js.map +1 -1
  21. package/dist/spritesheetDetect.d.ts +1 -2
  22. package/dist/spritesheetDetect.d.ts.map +1 -1
  23. package/dist/spritesheetDetect.js.map +1 -1
  24. package/dist/starlingParse.d.ts +3 -11
  25. package/dist/starlingParse.d.ts.map +1 -1
  26. package/dist/starlingParse.js +8 -15
  27. package/dist/starlingParse.js.map +1 -1
  28. package/dist/starlingSerialize.d.ts +1 -6
  29. package/dist/starlingSerialize.d.ts.map +1 -1
  30. package/dist/starlingSerialize.js +0 -6
  31. package/dist/starlingSerialize.js.map +1 -1
  32. package/dist/texturePackerParse.d.ts +3 -10
  33. package/dist/texturePackerParse.d.ts.map +1 -1
  34. package/dist/texturePackerParse.js +8 -21
  35. package/dist/texturePackerParse.js.map +1 -1
  36. package/dist/texturePackerSerialize.d.ts +1 -8
  37. package/dist/texturePackerSerialize.d.ts.map +1 -1
  38. package/dist/texturePackerSerialize.js +0 -8
  39. package/dist/texturePackerSerialize.js.map +1 -1
  40. package/package.json +8 -7
  41. package/src/asepriteParse.test.ts +24 -2
  42. package/src/cocosPlistParse.test.ts +40 -0
  43. package/src/libgdxAtlasParse.test.ts +26 -0
  44. package/src/starlingParse.test.ts +12 -2
  45. package/src/texturePackerParse.test.ts +24 -2
package/README.md CHANGED
@@ -13,5 +13,5 @@ Import the supported application-facing API from `@flighthq/spritesheet-formats`
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/spritesheet-formats@0.5.1-next.685.f72fc7f](https://github.com/flighthq/flight/tree/f72fc7feaa9653d950f39c7d2fe6365f48e82e51/packages/spritesheet-formats)
17
- - [License](https://github.com/flighthq/flight/blob/f72fc7feaa9653d950f39c7d2fe6365f48e82e51/LICENSE.md)
16
+ - [Source for @flighthq/spritesheet-formats@0.5.1-next.704.19c91ec](https://github.com/flighthq/flight/tree/19c91ec3e569d6b3b471682726465a79fba9f8cb/packages/spritesheet-formats)
17
+ - [License](https://github.com/flighthq/flight/blob/19c91ec3e569d6b3b471682726465a79fba9f8cb/LICENSE.md)
@@ -1,14 +1,4 @@
1
- import type { SpritesheetData } from '@flighthq/spritesheet/contract';
2
- import type { AsepriteParsed } from '@flighthq/types/contract';
3
- /** Parse an Aseprite JSON string directly to a SpritesheetData.
4
- *
5
- * Single-pass: no intermediate document object is allocated.
6
- * Use `parseAsepriteSpritesheetDocument` instead when you need round-trip serialisation.
7
- *
8
- * Per-frame durations from Aseprite are preserved in `animation.frameDurations`
9
- * when frames within a tag have varying durations. */
10
- export declare function parseAsepriteSpritesheet(json: string): SpritesheetData;
11
- /** Parse an Aseprite JSON string and preserve the full document for round-trip
12
- * serialisation via `serializeAsepriteSpritesheet`. */
13
- export declare function parseAsepriteSpritesheetDocument(json: string): AsepriteParsed;
1
+ import type { AsepriteParsed, ImportDiagnostic, SpritesheetData } from '@flighthq/types/contract';
2
+ export declare function parseAsepriteSpritesheet(json: string, diagnostics?: ImportDiagnostic[]): SpritesheetData;
3
+ export declare function parseAsepriteSpritesheetDocument(json: string, diagnostics?: ImportDiagnostic[]): AsepriteParsed;
14
4
  //# sourceMappingURL=asepriteParse.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"asepriteParse.d.ts","sourceRoot":"","sources":["../src/asepriteParse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA4B,eAAe,EAAwB,MAAM,gCAAgC,CAAC;AAQtH,OAAO,KAAK,EAKV,cAAc,EAEf,MAAM,0BAA0B,CAAC;AAgFlC;;;;;;uDAMuD;AACvD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAWtE;AAED;wDACwD;AACxD,wBAAgB,gCAAgC,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAW7E"}
1
+ {"version":3,"file":"asepriteParse.d.ts","sourceRoot":"","sources":["../src/asepriteParse.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAKV,cAAc,EACd,gBAAgB,EAEhB,eAAe,EAGhB,MAAM,0BAA0B,CAAC;AA0ElC,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,gBAAgB,EAAE,GAAG,eAAe,CAcxG;AAED,wBAAgB,gCAAgC,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,gBAAgB,EAAE,GAAG,cAAc,CAc/G"}
@@ -1,9 +1,8 @@
1
+ import { reportImportDiagnostic } from '@flighthq/importdiagnostics/contract';
1
2
  import { createSpritesheetAnimationData, createSpritesheetData, createSpritesheetFrameData, } from '@flighthq/spritesheet/contract';
2
3
  import { parseTextureAtlasAsepriteDocument } from '@flighthq/textureatlas-formats/contract';
3
4
  import { createTextureAtlas } from '@flighthq/textureatlas/contract';
4
- // ─── Internal helpers ────────────────────────────────────────────────────────
5
- // Maps an atlas region (geometry owned by @flighthq/textureatlas-formats) to a spritesheet frame.
6
- // Aseprite carries no pivot; per-frame durations are layered on separately from the document.
5
+ import { ImportDiagnosticSeverity } from '@flighthq/types/contract';
7
6
  function frameFromRegion(region) {
8
7
  return createSpritesheetFrameData({
9
8
  height: region.height,
@@ -67,38 +66,24 @@ function documentToData(doc) {
67
66
  scale: metaScale(meta),
68
67
  });
69
68
  }
70
- // ─── Public API ──────────────────────────────────────────────────────────────
71
- /** Parse an Aseprite JSON string directly to a SpritesheetData.
72
- *
73
- * Single-pass: no intermediate document object is allocated.
74
- * Use `parseAsepriteSpritesheetDocument` instead when you need round-trip serialisation.
75
- *
76
- * Per-frame durations from Aseprite are preserved in `animation.frameDurations`
77
- * when frames within a tag have varying durations. */
78
- export function parseAsepriteSpritesheet(json) {
69
+ export function parseAsepriteSpritesheet(json, diagnostics) {
79
70
  let document;
80
71
  try {
81
72
  document = JSON.parse(json);
82
73
  }
83
74
  catch {
84
- // Malformed JSON is an expected failure — return an empty SpritesheetData sentinel rather than
85
- // throwing an uncaught SyntaxError, matching `parseSpritesheet`'s null-on-unrecognized philosophy and
86
- // the never-throw importer policy (the XML path returns a data descriptor, never throws).
75
+ reportImportDiagnostic(diagnostics, ImportDiagnosticSeverity.Reject, 'spritesheet.aseprite.malformed-json', 'parseAsepriteSpritesheet');
87
76
  return createSpritesheetData();
88
77
  }
89
78
  return documentToData(document);
90
79
  }
91
- /** Parse an Aseprite JSON string and preserve the full document for round-trip
92
- * serialisation via `serializeAsepriteSpritesheet`. */
93
- export function parseAsepriteSpritesheetDocument(json) {
80
+ export function parseAsepriteSpritesheetDocument(json, diagnostics) {
94
81
  let document;
95
82
  try {
96
83
  document = JSON.parse(json);
97
84
  }
98
85
  catch {
99
- // Malformed JSON is an expected failure — return an EMPTY RESULT (empty data + empty document), never
100
- // throwing. Empty (not null) keeps this variant's return contract identical to the non-Document sibling
101
- // parseAsepriteSpritesheet, and the empty document stays serialisable for round-trip.
86
+ reportImportDiagnostic(diagnostics, ImportDiagnosticSeverity.Reject, 'spritesheet.aseprite.malformed-json', 'parseAsepriteSpritesheetDocument');
102
87
  return { data: createSpritesheetData(), document: createEmptyAsepriteDocument() };
103
88
  }
104
89
  return { data: documentToData(document), document };
@@ -1 +1 @@
1
- {"version":3,"file":"asepriteParse.js","sourceRoot":"","sources":["../src/asepriteParse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"asepriteParse.js","sourceRoot":"","sources":["../src/asepriteParse.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,3 @@
1
- import type { SpritesheetData } from '@flighthq/spritesheet/contract';
2
- import type { AsepriteDocument, AsepriteSerializeOptions } from '@flighthq/types/contract';
3
- /** Serialise a SpritesheetData to an Aseprite JSON string.
4
- *
5
- * Pass the `document` returned by `parseAsepriteSpritesheetDocument` to preserve any fields that
6
- * don't round-trip through the data (app name, layer list, tag colours).
7
- * Per-frame durations in `animation.frameDurations` are written back to each
8
- * frame's `duration` field so they survive a reload. */
1
+ import type { AsepriteDocument, AsepriteSerializeOptions, SpritesheetData } from '@flighthq/types/contract';
9
2
  export declare function serializeAsepriteSpritesheet(data: Readonly<SpritesheetData>, existing?: Partial<AsepriteDocument>, options?: AsepriteSerializeOptions): string;
10
3
  //# sourceMappingURL=asepriteSerialize.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"asepriteSerialize.d.ts","sourceRoot":"","sources":["../src/asepriteSerialize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,EAIV,gBAAgB,EAGhB,wBAAwB,EACzB,MAAM,0BAA0B,CAAC;AAoFlC;;;;;yDAKyD;AACzD,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,QAAQ,CAAC,eAAe,CAAC,EAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,EACpC,OAAO,CAAC,EAAE,wBAAwB,GACjC,MAAM,CAWR"}
1
+ {"version":3,"file":"asepriteSerialize.d.ts","sourceRoot":"","sources":["../src/asepriteSerialize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIV,gBAAgB,EAGhB,wBAAwB,EACxB,eAAe,EAChB,MAAM,0BAA0B,CAAC;AAgFlC,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,QAAQ,CAAC,eAAe,CAAC,EAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,EACpC,OAAO,CAAC,EAAE,wBAAwB,GACjC,MAAM,CAWR"}
@@ -1,4 +1,3 @@
1
- // ─── Internal helpers ────────────────────────────────────────────────────────
2
1
  function dataToMeta(data, existing) {
3
2
  const tags = data.animations.map((anim, i) => {
4
3
  const firstIdx = data.frames.findIndex((f) => f.name === anim.frameNames[0]);
@@ -66,13 +65,6 @@ function dataToArrayDocument(data, existing) {
66
65
  }));
67
66
  return { frames, meta: dataToMeta(data, existing.meta ?? {}) };
68
67
  }
69
- // ─── Public API ──────────────────────────────────────────────────────────────
70
- /** Serialise a SpritesheetData to an Aseprite JSON string.
71
- *
72
- * Pass the `document` returned by `parseAsepriteSpritesheetDocument` to preserve any fields that
73
- * don't round-trip through the data (app name, layer list, tag colours).
74
- * Per-frame durations in `animation.frameDurations` are written back to each
75
- * frame's `duration` field so they survive a reload. */
76
68
  export function serializeAsepriteSpritesheet(data, existing, options) {
77
69
  const existingIsArray = existing !== undefined && Array.isArray(existing.frames);
78
70
  const variant = options?.variant ?? (existingIsArray ? 'array' : 'hash');
@@ -1 +1 @@
1
- {"version":3,"file":"asepriteSerialize.js","sourceRoot":"","sources":["../src/asepriteSerialize.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"asepriteSerialize.js","sourceRoot":"","sources":["../src/asepriteSerialize.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,4 @@
1
- import type { SpritesheetData } from '@flighthq/spritesheet/contract';
2
- import type { CocosPlistParsed } from '@flighthq/types/contract';
3
- /** Parse a Cocos Creator / Cocos2d-x plist XML atlas string directly to a SpritesheetData.
4
- *
5
- * Single-pass: no intermediate document object is allocated.
6
- * Use `parseCocosPlistSpritesheetDocument` instead when you need round-trip serialisation. */
7
- export declare function parseCocosPlistSpritesheet(xml: string): SpritesheetData;
8
- /** Parse a Cocos Creator / Cocos2d-x plist XML atlas string and preserve the full document
9
- * for round-trip serialisation via `serializeCocosPlistSpritesheet`. */
10
- export declare function parseCocosPlistSpritesheetDocument(xml: string): CocosPlistParsed;
1
+ import type { CocosPlistParsed, ImportDiagnostic, SpritesheetData } from '@flighthq/types/contract';
2
+ export declare function parseCocosPlistSpritesheet(xml: string, diagnostics?: ImportDiagnostic[]): SpritesheetData;
3
+ export declare function parseCocosPlistSpritesheetDocument(xml: string, diagnostics?: ImportDiagnostic[]): CocosPlistParsed;
11
4
  //# sourceMappingURL=cocosPlistParse.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cocosPlistParse.d.ts","sourceRoot":"","sources":["../src/cocosPlistParse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAwB,MAAM,gCAAgC,CAAC;AAE5F,OAAO,KAAK,EAIV,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AAwKlC;;;+FAG+F;AAC/F,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAEvE;AAED;yEACyE;AACzE,wBAAgB,kCAAkC,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAGhF"}
1
+ {"version":3,"file":"cocosPlistParse.d.ts","sourceRoot":"","sources":["../src/cocosPlistParse.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAIV,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EAGhB,MAAM,0BAA0B,CAAC;AAuKlC,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,gBAAgB,EAAE,GAAG,eAAe,CAEzG;AAED,wBAAgB,kCAAkC,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,gBAAgB,EAAE,GAAG,gBAAgB,CAGlH"}
@@ -1,7 +1,7 @@
1
+ import { reportImportDiagnostic } from '@flighthq/importdiagnostics/contract';
1
2
  import { createSpritesheetData, createSpritesheetFrameData } from '@flighthq/spritesheet/contract';
3
+ import { ImportDiagnosticSeverity } from '@flighthq/types/contract';
2
4
  import { parseXmlDocument } from '@flighthq/xml/contract';
3
- // ─── plist structural helpers ─────────────────────────────────────────────────
4
- /** Parse a Cocos plist size/offset string of the form "{w,h}" or "{x,y}". */
5
5
  function parsePlistPair(s) {
6
6
  const m = s.match(/{?\s*([-\d.]+)\s*,\s*([-\d.]+)\s*}?/);
7
7
  return [parseFloat(m?.[1] ?? '0'), parseFloat(m?.[2] ?? '0')];
@@ -38,8 +38,7 @@ function getBoolValue(el) {
38
38
  function getIntValue(el) {
39
39
  return parseInt(el?.text ?? '0', 10);
40
40
  }
41
- // ─── Internal parser ─────────────────────────────────────────────────────────
42
- function parseCocosPlistXml(xml) {
41
+ function parseCocosPlistXml(xml, diagnostics) {
43
42
  const root = parseXmlDocument(xml);
44
43
  // Locate the root <dict> (may be under <plist>)
45
44
  let rootDict = null;
@@ -75,8 +74,10 @@ function parseCocosPlistXml(xml) {
75
74
  // Detect format version from available keys
76
75
  const hasSpriteFields = fm.has('spriteOffset');
77
76
  const hasFrame = fm.has('frame') || fm.has('textureRect');
78
- if (!hasFrame && !hasSpriteFields)
77
+ if (!hasFrame && !hasSpriteFields) {
78
+ reportImportDiagnostic(diagnostics, ImportDiagnosticSeverity.Drop, 'spritesheet.cocos-plist.unrecognized-frame', 'parseCocosPlistXml', { frame: frameName });
79
79
  continue;
80
+ }
80
81
  // Support both old-style (frame) and new-style (textureRect) keys
81
82
  const rectStr = getTextValue(fm.get('frame') ?? fm.get('textureRect'));
82
83
  const rotated = getBoolValue(fm.get('textureRotated') ?? fm.get('rotated'));
@@ -105,7 +106,6 @@ function parseCocosPlistXml(xml) {
105
106
  }
106
107
  return { frames, metadata };
107
108
  }
108
- // ─── Internal conversion ─────────────────────────────────────────────────────
109
109
  function plistFrameToData(name, pf) {
110
110
  const rect = parsePlistRect(pf.frame);
111
111
  const [offsetX, offsetY] = parsePlistPair(pf.spriteOffset);
@@ -140,18 +140,11 @@ function documentToData(doc) {
140
140
  scale: 1,
141
141
  });
142
142
  }
143
- // ─── Public API ──────────────────────────────────────────────────────────────
144
- /** Parse a Cocos Creator / Cocos2d-x plist XML atlas string directly to a SpritesheetData.
145
- *
146
- * Single-pass: no intermediate document object is allocated.
147
- * Use `parseCocosPlistSpritesheetDocument` instead when you need round-trip serialisation. */
148
- export function parseCocosPlistSpritesheet(xml) {
149
- return documentToData(parseCocosPlistXml(xml));
143
+ export function parseCocosPlistSpritesheet(xml, diagnostics) {
144
+ return documentToData(parseCocosPlistXml(xml, diagnostics));
150
145
  }
151
- /** Parse a Cocos Creator / Cocos2d-x plist XML atlas string and preserve the full document
152
- * for round-trip serialisation via `serializeCocosPlistSpritesheet`. */
153
- export function parseCocosPlistSpritesheetDocument(xml) {
154
- const document = parseCocosPlistXml(xml);
146
+ export function parseCocosPlistSpritesheetDocument(xml, diagnostics) {
147
+ const document = parseCocosPlistXml(xml, diagnostics);
155
148
  return { data: documentToData(document), document };
156
149
  }
157
150
  //# sourceMappingURL=cocosPlistParse.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cocosPlistParse.js","sourceRoot":"","sources":["../src/cocosPlistParse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cocosPlistParse.js","sourceRoot":"","sources":["../src/cocosPlistParse.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
- import type { SpritesheetData } from '@flighthq/spritesheet/contract';
2
- import type { CocosPlistDocument } from '@flighthq/types/contract';
1
+ import type { CocosPlistDocument, SpritesheetData } from '@flighthq/types/contract';
3
2
  /** Serialise a SpritesheetData to a Cocos Creator / Cocos2d-x plist XML atlas string.
4
3
  *
5
4
  * Pass the `document` returned by `parseCocosPlistSpritesheetDocument` to preserve any
@@ -1 +1 @@
1
- {"version":3,"file":"cocosPlistSerialize.d.ts","sourceRoot":"","sources":["../src/cocosPlistSerialize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAwB,MAAM,gCAAgC,CAAC;AAC5F,OAAO,KAAK,EAAE,kBAAkB,EAAmB,MAAM,0BAA0B,CAAC;AAEpF;;;gFAGgF;AAChF,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,QAAQ,CAAC,eAAe,CAAC,EAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GACrC,MAAM,CAcR"}
1
+ {"version":3,"file":"cocosPlistSerialize.d.ts","sourceRoot":"","sources":["../src/cocosPlistSerialize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAElB,eAAe,EAEhB,MAAM,0BAA0B,CAAC;AAElC;;;gFAGgF;AAChF,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,QAAQ,CAAC,eAAe,CAAC,EAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GACrC,MAAM,CAcR"}
@@ -1 +1 @@
1
- {"version":3,"file":"cocosPlistSerialize.js","sourceRoot":"","sources":["../src/cocosPlistSerialize.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cocosPlistSerialize.js","sourceRoot":"","sources":["../src/cocosPlistSerialize.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,3 @@
1
- import type { SpritesheetData } from '@flighthq/spritesheet/contract';
2
- import type { LibgdxAtlasParseOptions } from '@flighthq/types/contract';
3
- /** Parse a LibGDX `.atlas` text string directly to a `SpritesheetData`.
4
- *
5
- * Single-pass line-by-line parser. Handles single-page and multi-page atlases.
6
- * `rotate: true` regions are marked as `rotated` (90° clockwise in the atlas).
7
- * Animations are inferred from the standard `baseName_NNN` frame-naming convention;
8
- * indexed regions (`index >= 0`) are also grouped into animations. */
9
- export declare function parseLibgdxAtlasSpritesheet(text: string, options?: LibgdxAtlasParseOptions): SpritesheetData;
1
+ import type { ImportDiagnostic, LibgdxAtlasParseOptions, SpritesheetData } from '@flighthq/types/contract';
2
+ export declare function parseLibgdxAtlasSpritesheet(text: string, options?: LibgdxAtlasParseOptions, diagnostics?: ImportDiagnostic[]): SpritesheetData;
10
3
  //# sourceMappingURL=libgdxAtlasParse.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"libgdxAtlasParse.d.ts","sourceRoot":"","sources":["../src/libgdxAtlasParse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA4B,eAAe,EAAwB,MAAM,gCAAgC,CAAC;AAQtH,OAAO,KAAK,EAAE,uBAAuB,EAAsB,MAAM,0BAA0B,CAAC;AAoN5F;;;;;uEAKuE;AACvE,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,eAAe,CAyB5G"}
1
+ {"version":3,"file":"libgdxAtlasParse.d.ts","sourceRoot":"","sources":["../src/libgdxAtlasParse.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,gBAAgB,EAChB,uBAAuB,EAEvB,eAAe,EAGhB,MAAM,0BAA0B,CAAC;AA4MlC,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,uBAAuB,EACjC,WAAW,CAAC,EAAE,gBAAgB,EAAE,GAC/B,eAAe,CA+BjB"}
@@ -1,7 +1,8 @@
1
+ import { reportImportDiagnostic } from '@flighthq/importdiagnostics/contract';
1
2
  import { createSpritesheetAnimationData, createSpritesheetData, createSpritesheetFrameData, } from '@flighthq/spritesheet/contract';
2
3
  import { parseTextureAtlasLibgdxAtlas } from '@flighthq/textureatlas-formats/contract';
3
4
  import { createTextureAtlas } from '@flighthq/textureatlas/contract';
4
- // ─── Parser ───────────────────────────────────────────────────────────────────
5
+ import { ImportDiagnosticSeverity } from '@flighthq/types/contract';
5
6
  function parseIntPair(value) {
6
7
  const parts = value.split(',');
7
8
  return [parseInt(parts[0] ?? '0', 10), parseInt(parts[1] ?? '0', 10)];
@@ -99,7 +100,6 @@ function parseLibgdxAtlas(text) {
99
100
  else {
100
101
  // Region name
101
102
  if (currentPage === null) {
102
- // Malformed: no page seen yet; create a stub page
103
103
  currentPage = { filename: '', height: 0, width: 0 };
104
104
  pages.push(currentPage);
105
105
  }
@@ -126,7 +126,6 @@ function parseLibgdxAtlas(text) {
126
126
  }
127
127
  return { pages, regions };
128
128
  }
129
- // ─── Internal helpers ─────────────────────────────────────────────────────────
130
129
  // Maps an atlas region (geometry owned by @flighthq/textureatlas-formats — incl. libGDX rotate/orig/
131
130
  // offset handling and the `name_index` disambiguation for indexed regions) to a spritesheet frame.
132
131
  function frameFromRegion(region) {
@@ -176,23 +175,16 @@ function inferAnimations(frameNames, frameDuration) {
176
175
  }
177
176
  return animations;
178
177
  }
179
- // ─── Public API ───────────────────────────────────────────────────────────────
180
- /** Parse a LibGDX `.atlas` text string directly to a `SpritesheetData`.
181
- *
182
- * Single-pass line-by-line parser. Handles single-page and multi-page atlases.
183
- * `rotate: true` regions are marked as `rotated` (90° clockwise in the atlas).
184
- * Animations are inferred from the standard `baseName_NNN` frame-naming convention;
185
- * indexed regions (`index >= 0`) are also grouped into animations. */
186
- export function parseLibgdxAtlasSpritesheet(text, options) {
178
+ export function parseLibgdxAtlasSpritesheet(text, options, diagnostics) {
187
179
  const frameDuration = options?.frameDuration ?? 100;
188
- // Page metadata (image file + size) is libGDX-specific and not modeled by TextureAtlas, so it is read
189
- // from the local page parse; the region geometry is delegated to the atlas-formats parser.
190
180
  const { pages } = parseLibgdxAtlas(text);
191
- // Use the first page for top-level image metadata
192
181
  const firstPage = pages[0];
193
182
  const imageFile = firstPage?.filename ?? '';
194
183
  const imageWidth = firstPage?.width ?? 0;
195
184
  const imageHeight = firstPage?.height ?? 0;
185
+ if (firstPage !== undefined && firstPage.filename === '') {
186
+ reportImportDiagnostic(diagnostics, ImportDiagnosticSeverity.Recover, 'spritesheet.libgdx-atlas.missing-page-header', 'parseLibgdxAtlasSpritesheet');
187
+ }
196
188
  const regions = parseTextureAtlasLibgdxAtlas(text, createTextureAtlas()).regions;
197
189
  const frames = regions.map(frameFromRegion);
198
190
  const frameNames = frames.map((f) => f.name);
@@ -1 +1 @@
1
- {"version":3,"file":"libgdxAtlasParse.js","sourceRoot":"","sources":["../src/libgdxAtlasParse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"libgdxAtlasParse.js","sourceRoot":"","sources":["../src/libgdxAtlasParse.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
- import type { SpritesheetData } from '@flighthq/spritesheet/contract';
2
- import type { SpritesheetFormatKind, SpritesheetParseOptions } from '@flighthq/types/contract';
1
+ import type { SpritesheetData, SpritesheetFormatKind, SpritesheetParseOptions } from '@flighthq/types/contract';
3
2
  /** Detect the format kind of a spritesheet text document.
4
3
  *
5
4
  * Returns the `SpritesheetFormatKind` of the first registered format whose
@@ -1 +1 @@
1
- {"version":3,"file":"spritesheetDetect.d.ts","sourceRoot":"","sources":["../src/spritesheetDetect.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,EAAc,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AA2F3G;;;gFAGgF;AAChF,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,GAAG,IAAI,CAKlF;AAED;;;;sFAIsF;AACtF,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,qBAAqB,GAAG,QAAQ,CAAC;IAC1E,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAClC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,uBAAuB,KAAK,eAAe,CAAC;CAC5E,CAAC,GAAG,IAAI,CAER;AAED,uEAAuE;AACvE,wBAAgB,yBAAyB,IAAI,SAAS,qBAAqB,EAAE,CAI5E;AAED;;;;;4FAK4F;AAC5F,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,qBAAqB,EAClC,OAAO,CAAC,EAAE,uBAAuB,GAChC,eAAe,GAAG,IAAI,CAOxB;AAED;;;;iEAIiE;AACjE,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,qBAAqB,EAC3B,KAAK,EAAE;IACL,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAClC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,uBAAuB,KAAK,eAAe,CAAC;CAC5E,GACA,IAAI,CAEN;AAED,+EAA+E;AAC/E,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,qBAAqB,GAAG,IAAI,CAE7E"}
1
+ {"version":3,"file":"spritesheetDetect.d.ts","sourceRoot":"","sources":["../src/spritesheetDetect.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAEV,eAAe,EACf,qBAAqB,EACrB,uBAAuB,EACxB,MAAM,0BAA0B,CAAC;AA2FlC;;;gFAGgF;AAChF,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,GAAG,IAAI,CAKlF;AAED;;;;sFAIsF;AACtF,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,qBAAqB,GAAG,QAAQ,CAAC;IAC1E,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAClC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,uBAAuB,KAAK,eAAe,CAAC;CAC5E,CAAC,GAAG,IAAI,CAER;AAED,uEAAuE;AACvE,wBAAgB,yBAAyB,IAAI,SAAS,qBAAqB,EAAE,CAI5E;AAED;;;;;4FAK4F;AAC5F,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,qBAAqB,EAClC,OAAO,CAAC,EAAE,uBAAuB,GAChC,eAAe,GAAG,IAAI,CAOxB;AAED;;;;iEAIiE;AACjE,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,qBAAqB,EAC3B,KAAK,EAAE;IACL,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAClC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,uBAAuB,KAAK,eAAe,CAAC;CAC5E,GACA,IAAI,CAEN;AAED,+EAA+E;AAC/E,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,qBAAqB,GAAG,IAAI,CAE7E"}
@@ -1 +1 @@
1
- {"version":3,"file":"spritesheetDetect.js","sourceRoot":"","sources":["../src/spritesheetDetect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spritesheetDetect.js","sourceRoot":"","sources":["../src/spritesheetDetect.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,4 @@
1
- import type { SpritesheetData } from '@flighthq/spritesheet/contract';
2
- import type { StarlingParseOptions, StarlingParsed } from '@flighthq/types/contract';
3
- /** Parse a Starling / Sparrow XML atlas string directly to a SpritesheetData.
4
- *
5
- * Single-pass: no intermediate document object is allocated.
6
- * Animations are inferred from the standard `baseName_NNN` frame-naming convention.
7
- * Use `parseStarlingSpritesheetDocument` instead when you need round-trip serialisation. */
8
- export declare function parseStarlingSpritesheet(xml: string, options?: StarlingParseOptions): SpritesheetData;
9
- /** Parse a Starling / Sparrow XML atlas string and preserve the full document
10
- * for round-trip serialisation via `serializeStarlingSpritesheet`. */
11
- export declare function parseStarlingSpritesheetDocument(xml: string, options?: StarlingParseOptions): StarlingParsed;
1
+ import type { ImportDiagnostic, SpritesheetData, StarlingParseOptions, StarlingParsed } from '@flighthq/types/contract';
2
+ export declare function parseStarlingSpritesheet(xml: string, options?: StarlingParseOptions, diagnostics?: ImportDiagnostic[]): SpritesheetData;
3
+ export declare function parseStarlingSpritesheetDocument(xml: string, options?: StarlingParseOptions, diagnostics?: ImportDiagnostic[]): StarlingParsed;
12
4
  //# sourceMappingURL=starlingParse.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"starlingParse.d.ts","sourceRoot":"","sources":["../src/starlingParse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA4B,eAAe,EAAwB,MAAM,gCAAgC,CAAC;AAQtH,OAAO,KAAK,EAGV,oBAAoB,EACpB,cAAc,EAEf,MAAM,0BAA0B,CAAC;AAkIlC;;;;6FAI6F;AAC7F,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,eAAe,CAErG;AAED;uEACuE;AACvE,wBAAgB,gCAAgC,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,cAAc,CAG5G"}
1
+ {"version":3,"file":"starlingParse.d.ts","sourceRoot":"","sources":["../src/starlingParse.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,gBAAgB,EAEhB,eAAe,EAGf,oBAAoB,EACpB,cAAc,EAGf,MAAM,0BAA0B,CAAC;AAqIlC,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,oBAAoB,EAC9B,WAAW,CAAC,EAAE,gBAAgB,EAAE,GAC/B,eAAe,CAEjB;AAED,wBAAgB,gCAAgC,CAC9C,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,oBAAoB,EAC9B,WAAW,CAAC,EAAE,gBAAgB,EAAE,GAC/B,cAAc,CAGhB"}
@@ -1,7 +1,8 @@
1
+ import { reportImportDiagnostic } from '@flighthq/importdiagnostics/contract';
1
2
  import { createSpritesheetAnimationData, createSpritesheetData, createSpritesheetFrameData, } from '@flighthq/spritesheet/contract';
2
3
  import { parseTextureAtlasStarlingXml } from '@flighthq/textureatlas-formats/contract';
3
4
  import { createTextureAtlas } from '@flighthq/textureatlas/contract';
4
- // ─── Minimal XML attribute parser ────────────────────────────────────────────
5
+ import { ImportDiagnosticSeverity } from '@flighthq/types/contract';
5
6
  function parseAttrs(attrs) {
6
7
  const result = {};
7
8
  const RE = /(\w+)\s*=\s*"([^"]*)"/g;
@@ -48,7 +49,6 @@ function parseStarlingXml(xml) {
48
49
  }
49
50
  return { imagePath, subTextures };
50
51
  }
51
- // ─── Internal helpers ────────────────────────────────────────────────────────
52
52
  // Maps an atlas region (geometry owned by @flighthq/textureatlas-formats — incl. Starling's negated
53
53
  // frameX/Y offsets and trim handling) to a spritesheet frame. Starling pivots are authored in source
54
54
  // pixels; the spritesheet layer normalizes them to the 0..1 range, so re-divide the atlas's raw pivot
@@ -104,10 +104,11 @@ function inferAnimations(frameNames, frameDuration) {
104
104
  }
105
105
  // Region geometry is delegated to @flighthq/textureatlas-formats; this layer keeps the imagePath and
106
106
  // the inferred `baseName_NNN` animations. `regions` come from the atlas parser over the same XML.
107
- function documentToData(doc, regions, frameDuration) {
107
+ function documentToData(doc, regions, frameDuration, diagnostics) {
108
108
  const frames = regions.map(frameFromRegion);
109
109
  const frameNames = frames.map((f) => f.name);
110
110
  const animations = inferAnimations(frameNames, frameDuration);
111
+ reportImportDiagnostic(diagnostics, ImportDiagnosticSeverity.Recover, 'spritesheet.starling.missing-dimensions', 'documentToData');
111
112
  return createSpritesheetData({
112
113
  animations,
113
114
  frames,
@@ -120,19 +121,11 @@ function documentToData(doc, regions, frameDuration) {
120
121
  function regionsFromXml(xml) {
121
122
  return parseTextureAtlasStarlingXml(xml, createTextureAtlas()).regions;
122
123
  }
123
- // ─── Public API ──────────────────────────────────────────────────────────────
124
- /** Parse a Starling / Sparrow XML atlas string directly to a SpritesheetData.
125
- *
126
- * Single-pass: no intermediate document object is allocated.
127
- * Animations are inferred from the standard `baseName_NNN` frame-naming convention.
128
- * Use `parseStarlingSpritesheetDocument` instead when you need round-trip serialisation. */
129
- export function parseStarlingSpritesheet(xml, options) {
130
- return documentToData(parseStarlingXml(xml), regionsFromXml(xml), options?.frameDuration ?? 100);
124
+ export function parseStarlingSpritesheet(xml, options, diagnostics) {
125
+ return documentToData(parseStarlingXml(xml), regionsFromXml(xml), options?.frameDuration ?? 100, diagnostics);
131
126
  }
132
- /** Parse a Starling / Sparrow XML atlas string and preserve the full document
133
- * for round-trip serialisation via `serializeStarlingSpritesheet`. */
134
- export function parseStarlingSpritesheetDocument(xml, options) {
127
+ export function parseStarlingSpritesheetDocument(xml, options, diagnostics) {
135
128
  const document = parseStarlingXml(xml);
136
- return { data: documentToData(document, regionsFromXml(xml), options?.frameDuration ?? 100), document };
129
+ return { data: documentToData(document, regionsFromXml(xml), options?.frameDuration ?? 100, diagnostics), document };
137
130
  }
138
131
  //# sourceMappingURL=starlingParse.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"starlingParse.js","sourceRoot":"","sources":["../src/starlingParse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"starlingParse.js","sourceRoot":"","sources":["../src/starlingParse.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,3 @@
1
- import type { SpritesheetData } from '@flighthq/spritesheet/contract';
2
- import type { StarlingDocument } from '@flighthq/types/contract';
3
- /** Serialise a SpritesheetData to a Starling / Sparrow XML atlas string.
4
- *
5
- * Pass the `document` returned by `parseStarlingSpritesheetDocument` to preserve any fields that
6
- * don't round-trip through the data (pivot values stored in the document). */
1
+ import type { SpritesheetData, StarlingDocument } from '@flighthq/types/contract';
7
2
  export declare function serializeStarlingSpritesheet(data: Readonly<SpritesheetData>, existing?: Partial<StarlingDocument>): string;
8
3
  //# sourceMappingURL=starlingSerialize.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"starlingSerialize.d.ts","sourceRoot":"","sources":["../src/starlingSerialize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,EAAE,gBAAgB,EAAsB,MAAM,0BAA0B,CAAC;AAsDrF;;;+EAG+E;AAC/E,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,QAAQ,CAAC,eAAe,CAAC,EAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GACnC,MAAM,CAMR"}
1
+ {"version":3,"file":"starlingSerialize.d.ts","sourceRoot":"","sources":["../src/starlingSerialize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAsB,MAAM,0BAA0B,CAAC;AAkDtG,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,QAAQ,CAAC,eAAe,CAAC,EAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GACnC,MAAM,CAMR"}
@@ -1,4 +1,3 @@
1
- // ─── Internal helpers ────────────────────────────────────────────────────────
2
1
  function frameToSubTexture(frame) {
3
2
  const st = {
4
3
  height: frame.height,
@@ -52,11 +51,6 @@ function documentToXml(doc) {
52
51
  lines.push('</TextureAtlas>');
53
52
  return lines.join('\n');
54
53
  }
55
- // ─── Public API ──────────────────────────────────────────────────────────────
56
- /** Serialise a SpritesheetData to a Starling / Sparrow XML atlas string.
57
- *
58
- * Pass the `document` returned by `parseStarlingSpritesheetDocument` to preserve any fields that
59
- * don't round-trip through the data (pivot values stored in the document). */
60
54
  export function serializeStarlingSpritesheet(data, existing) {
61
55
  const doc = {
62
56
  imagePath: data.imageFile || existing?.imagePath || '',
@@ -1 +1 @@
1
- {"version":3,"file":"starlingSerialize.js","sourceRoot":"","sources":["../src/starlingSerialize.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"starlingSerialize.js","sourceRoot":"","sources":["../src/starlingSerialize.ts"],"names":[],"mappings":"AAEA,SAAS,iBAAiB,CAAC,KAA6C;IACtE,MAAM,EAAE,GAAuB;QAC7B,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,CAAC,EAAE,KAAK,CAAC,CAAC;QACV,CAAC,EAAE,KAAK,CAAC,CAAC;KACX,CAAC;IAEF,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC;QAAE,EAAE,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;IACpD,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC;QAAE,EAAE,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;IACpD,IAAI,KAAK,CAAC,WAAW,KAAK,KAAK,CAAC,KAAK;QAAE,EAAE,CAAC,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC;IACzE,IAAI,KAAK,CAAC,YAAY,KAAK,KAAK,CAAC,MAAM;QAAE,EAAE,CAAC,WAAW,GAAG,KAAK,CAAC,YAAY,CAAC;IAE7E,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;QACnD,EAAE,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC;IAC/C,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;QACpD,EAAE,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC;IAChD,CAAC;IAED,IAAI,KAAK,CAAC,OAAO;QAAE,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC;IAErC,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,gBAAgB,CAAC,EAAsB;IAC9C,MAAM,KAAK,GAAa,CAAC,SAAS,EAAE,CAAC,IAAI,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IAC5E,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,GAAG,EAAE,WAAW,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IAC3D,IAAI,EAAE,CAAC,MAAM,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IACjE,IAAI,EAAE,CAAC,MAAM,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IACjE,IAAI,EAAE,CAAC,UAAU,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,UAAU,GAAG,CAAC,CAAC;IAC7E,IAAI,EAAE,CAAC,WAAW,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,WAAW,GAAG,CAAC,CAAC;IAChF,IAAI,EAAE,CAAC,MAAM,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IACjE,IAAI,EAAE,CAAC,MAAM,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IACjE,IAAI,EAAE,CAAC,OAAO;QAAE,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC7C,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED,SAAS,aAAa,CAAC,GAAqB;IAC1C,MAAM,KAAK,GAAa,CAAC,wCAAwC,EAAE,4BAA4B,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC;IAClH,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;QACjC,KAAK,CAAC,IAAI,CAAC,iBAAiB,gBAAgB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IACxD,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC9B,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,IAA+B,EAC/B,QAAoC;IAEpC,MAAM,GAAG,GAAqB;QAC5B,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,QAAQ,EAAE,SAAS,IAAI,EAAE;QACtD,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC;KAChD,CAAC;IACF,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC"}
@@ -1,11 +1,4 @@
1
- import type { SpritesheetData } from '@flighthq/spritesheet/contract';
2
- import type { TexturePackerParsed } from '@flighthq/types/contract';
3
- /** Parse a Texture Packer JSON string directly to a SpritesheetData.
4
- *
5
- * Single-pass: no intermediate document object is allocated.
6
- * Use `parseTexturePackerSpritesheetDocument` instead when you need round-trip serialisation. */
7
- export declare function parseTexturePackerSpritesheet(json: string): SpritesheetData;
8
- /** Parse a Texture Packer JSON string and preserve the full document for
9
- * round-trip serialisation via `serializeTexturePackerSpritesheet`. */
10
- export declare function parseTexturePackerSpritesheetDocument(json: string): TexturePackerParsed;
1
+ import type { ImportDiagnostic, SpritesheetData, TexturePackerParsed } from '@flighthq/types/contract';
2
+ export declare function parseTexturePackerSpritesheet(json: string, diagnostics?: ImportDiagnostic[]): SpritesheetData;
3
+ export declare function parseTexturePackerSpritesheetDocument(json: string, diagnostics?: ImportDiagnostic[]): TexturePackerParsed;
11
4
  //# sourceMappingURL=texturePackerParse.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"texturePackerParse.d.ts","sourceRoot":"","sources":["../src/texturePackerParse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA4B,eAAe,EAAwB,MAAM,gCAAgC,CAAC;AAQtH,OAAO,KAAK,EAKV,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAgElC;;;kGAGkG;AAClG,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAW3E;AAED;wEACwE;AACxE,wBAAgB,qCAAqC,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,CAUvF"}
1
+ {"version":3,"file":"texturePackerParse.d.ts","sourceRoot":"","sources":["../src/texturePackerParse.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,gBAAgB,EAEhB,eAAe,EAMf,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAwDlC,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,gBAAgB,EAAE,GAAG,eAAe,CAc7G;AAED,wBAAgB,qCAAqC,CACnD,IAAI,EAAE,MAAM,EACZ,WAAW,CAAC,EAAE,gBAAgB,EAAE,GAC/B,mBAAmB,CAcrB"}
@@ -1,11 +1,8 @@
1
+ import { reportImportDiagnostic } from '@flighthq/importdiagnostics/contract';
1
2
  import { createSpritesheetAnimationData, createSpritesheetData, createSpritesheetFrameData, } from '@flighthq/spritesheet/contract';
2
- import { parseTextureAtlasPackerDocument } from '@flighthq/textureatlas-formats/contract';
3
+ import { parseTexturePackerAtlasDocument } from '@flighthq/textureatlas-formats/contract';
3
4
  import { createTextureAtlas } from '@flighthq/textureatlas/contract';
4
- // ─── Internal helpers ────────────────────────────────────────────────────────
5
- // Maps an atlas region (geometry owned by @flighthq/textureatlas-formats — the single source of truth
6
- // for the region rect, rotation, and trim handling) to a spritesheet frame. This package adds only the
7
- // animation/frame metadata on top. The untrimmed source size falls back to the region rect, because the
8
- // atlas parser leaves originalW/H null when a frame is not trimmed (where the source equals the frame).
5
+ import { ImportDiagnosticSeverity } from '@flighthq/types/contract';
9
6
  function frameFromRegion(region) {
10
7
  return createSpritesheetFrameData({
11
8
  height: region.height,
@@ -39,7 +36,7 @@ function metaScale(meta) {
39
36
  function documentToData(doc) {
40
37
  // Delegate region geometry to the atlas-formats parser (the TexturePacker document shapes are shared),
41
38
  // then layer the spritesheet frame/animation metadata on top — no independent re-parse of the frames.
42
- const regions = parseTextureAtlasPackerDocument(doc, createTextureAtlas()).regions;
39
+ const regions = parseTexturePackerAtlasDocument(doc, createTextureAtlas()).regions;
43
40
  const frames = regions.map(frameFromRegion);
44
41
  const frameNames = regions.map((region) => region.name ?? '');
45
42
  const { meta } = doc;
@@ -53,34 +50,24 @@ function documentToData(doc) {
53
50
  scale: metaScale(meta),
54
51
  });
55
52
  }
56
- // ─── Public API ──────────────────────────────────────────────────────────────
57
- /** Parse a Texture Packer JSON string directly to a SpritesheetData.
58
- *
59
- * Single-pass: no intermediate document object is allocated.
60
- * Use `parseTexturePackerSpritesheetDocument` instead when you need round-trip serialisation. */
61
- export function parseTexturePackerSpritesheet(json) {
53
+ export function parseTexturePackerSpritesheet(json, diagnostics) {
62
54
  let document;
63
55
  try {
64
56
  document = JSON.parse(json);
65
57
  }
66
58
  catch {
67
- // Malformed JSON is an expected failure — return an empty SpritesheetData sentinel rather than
68
- // throwing an uncaught SyntaxError, matching `parseSpritesheet`'s null-on-unrecognized philosophy and
69
- // the never-throw importer policy.
59
+ reportImportDiagnostic(diagnostics, ImportDiagnosticSeverity.Reject, 'spritesheet.texture-packer.malformed-json', 'parseTexturePackerSpritesheet');
70
60
  return createSpritesheetData();
71
61
  }
72
62
  return documentToData(document);
73
63
  }
74
- /** Parse a Texture Packer JSON string and preserve the full document for
75
- * round-trip serialisation via `serializeTexturePackerSpritesheet`. */
76
- export function parseTexturePackerSpritesheetDocument(json) {
64
+ export function parseTexturePackerSpritesheetDocument(json, diagnostics) {
77
65
  let document;
78
66
  try {
79
67
  document = JSON.parse(json);
80
68
  }
81
69
  catch {
82
- // Malformed JSON is an expected failure — return an EMPTY RESULT (empty data + empty document), never
83
- // throwing; empty (not null) matches the non-Document sibling parseTexturePackerSpritesheet.
70
+ reportImportDiagnostic(diagnostics, ImportDiagnosticSeverity.Reject, 'spritesheet.texture-packer.malformed-json', 'parseTexturePackerSpritesheetDocument');
84
71
  return { data: createSpritesheetData(), document: createEmptyTexturePackerDocument() };
85
72
  }
86
73
  return { data: documentToData(document), document };
@@ -1 +1 @@
1
- {"version":3,"file":"texturePackerParse.js","sourceRoot":"","sources":["../src/texturePackerParse.ts"],"names":[],"mappings":"AACA,OAAO,EACL,8BAA8B,EAC9B,qBAAqB,EACrB,0BAA0B,GAC3B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,+BAA+B,EAAE,MAAM,yCAAyC,CAAC;AAC1F,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AASrE,gFAAgF;AAEhF,sGAAsG;AACtG,uGAAuG;AACvG,wGAAwG;AACxG,wGAAwG;AACxG,SAAS,eAAe,CAAC,MAAoC;IAC3D,OAAO,0BAA0B,CAAC;QAChC,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE;QACvB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,YAAY,EAAE,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,MAAM;QACpD,WAAW,EAAE,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,KAAK;QACjD,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,CAAC,EAAE,MAAM,CAAC,CAAC;QACX,CAAC,EAAE,MAAM,CAAC,CAAC;KACZ,CAAC,CAAC;AACL,CAAC;AAED,SAAS,uBAAuB,CAAC,IAA6B,EAAE,UAAoB;IAClF,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACtB,8BAA8B,CAAC;QAC7B,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,SAAS;QACrC,aAAa,EAAE,GAAG;QAClB,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;QAClD,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,WAAW,EAAE,CAAC,CAAC;KAChB,CAAC,CACH,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,IAAuB;IACxC,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ;QAAE,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACvE,OAAO,IAAI,CAAC,KAAK,CAAC;AACpB,CAAC;AAED,SAAS,cAAc,CAAC,GAA0B;IAChD,uGAAuG;IACvG,sGAAsG;IACtG,MAAM,OAAO,GAAG,+BAA+B,CAAC,GAAG,EAAE,kBAAkB,EAAE,CAAC,CAAC,OAAO,CAAC;IACnF,MAAM,MAAM,GAA2B,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACpE,MAAM,UAAU,GAAa,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAExE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC;IACrB,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,uBAAuB,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE7F,OAAO,qBAAqB,CAAC;QAC3B,UAAU;QACV,MAAM;QACN,SAAS,EAAE,IAAI,CAAC,KAAK;QACrB,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACxB,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC;KACvB,CAAC,CAAC;AACL,CAAC;AAED,gFAAgF;AAEhF;;;kGAGkG;AAClG,MAAM,UAAU,6BAA6B,CAAC,IAAY;IACxD,IAAI,QAA+B,CAAC;IACpC,IAAI,CAAC;QACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA0B,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,+FAA+F;QAC/F,sGAAsG;QACtG,mCAAmC;QACnC,OAAO,qBAAqB,EAAE,CAAC;IACjC,CAAC;IACD,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC;AAClC,CAAC;AAED;wEACwE;AACxE,MAAM,UAAU,qCAAqC,CAAC,IAAY;IAChE,IAAI,QAA+B,CAAC;IACpC,IAAI,CAAC;QACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA0B,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,sGAAsG;QACtG,6FAA6F;QAC7F,OAAO,EAAE,IAAI,EAAE,qBAAqB,EAAE,EAAE,QAAQ,EAAE,gCAAgC,EAAE,EAAE,CAAC;IACzF,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,cAAc,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;AACtD,CAAC;AAED,4GAA4G;AAC5G,gEAAgE;AAChE,SAAS,gCAAgC;IACvC,MAAM,IAAI,GAAsB,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAChH,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AAC9B,CAAC"}
1
+ {"version":3,"file":"texturePackerParse.js","sourceRoot":"","sources":["../src/texturePackerParse.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,3 @@
1
- import type { SpritesheetData } from '@flighthq/spritesheet/contract';
2
- import type { TexturePackerDocument, TexturePackerSerializeOptions } from '@flighthq/types/contract';
3
- /** Serialise a SpritesheetData to a Texture Packer JSON string.
4
- *
5
- * Pass the `document` returned by `parseTexturePackerSpritesheetDocument` to preserve any fields
6
- * that don't round-trip through the data (app name, format string, scale).
7
- * The output variant (hash vs array) is inferred from the existing document or
8
- * overridden via `options.variant`. */
1
+ import type { SpritesheetData, TexturePackerDocument, TexturePackerSerializeOptions } from '@flighthq/types/contract';
9
2
  export declare function serializeTexturePackerSpritesheet(data: Readonly<SpritesheetData>, existing?: Partial<TexturePackerDocument>, options?: TexturePackerSerializeOptions): string;
10
3
  //# sourceMappingURL=texturePackerSerialize.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"texturePackerSerialize.d.ts","sourceRoot":"","sources":["../src/texturePackerSerialize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,EAGV,qBAAqB,EAIrB,6BAA6B,EAC9B,MAAM,0BAA0B,CAAC;AAwElC;;;;;wCAKwC;AACxC,wBAAgB,iCAAiC,CAC/C,IAAI,EAAE,QAAQ,CAAC,eAAe,CAAC,EAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,EACzC,OAAO,CAAC,EAAE,6BAA6B,GACtC,MAAM,CAWR"}
1
+ {"version":3,"file":"texturePackerSerialize.d.ts","sourceRoot":"","sources":["../src/texturePackerSerialize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EAGf,qBAAqB,EAIrB,6BAA6B,EAC9B,MAAM,0BAA0B,CAAC;AAoElC,wBAAgB,iCAAiC,CAC/C,IAAI,EAAE,QAAQ,CAAC,eAAe,CAAC,EAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,EACzC,OAAO,CAAC,EAAE,6BAA6B,GACtC,MAAM,CAWR"}
@@ -1,4 +1,3 @@
1
- // ─── Internal helpers ────────────────────────────────────────────────────────
2
1
  function dataToMeta(data, existing) {
3
2
  return {
4
3
  app: existing.app ?? 'https://www.codeandweb.com/texturepacker',
@@ -54,13 +53,6 @@ function dataToArrayDocument(data, existing) {
54
53
  }));
55
54
  return { frames, meta: dataToMeta(data, existing.meta ?? {}) };
56
55
  }
57
- // ─── Public API ──────────────────────────────────────────────────────────────
58
- /** Serialise a SpritesheetData to a Texture Packer JSON string.
59
- *
60
- * Pass the `document` returned by `parseTexturePackerSpritesheetDocument` to preserve any fields
61
- * that don't round-trip through the data (app name, format string, scale).
62
- * The output variant (hash vs array) is inferred from the existing document or
63
- * overridden via `options.variant`. */
64
56
  export function serializeTexturePackerSpritesheet(data, existing, options) {
65
57
  const existingIsArray = existing !== undefined && Array.isArray(existing.frames);
66
58
  const variant = options?.variant ?? (existingIsArray ? 'array' : 'hash');
@@ -1 +1 @@
1
- {"version":3,"file":"texturePackerSerialize.js","sourceRoot":"","sources":["../src/texturePackerSerialize.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"texturePackerSerialize.js","sourceRoot":"","sources":["../src/texturePackerSerialize.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flighthq/spritesheet-formats",
3
- "version": "0.5.1-next.685.f72fc7f",
3
+ "version": "0.5.1-next.704.19c91ec",
4
4
  "author": "Joshua Granick and other contributors",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -38,12 +38,13 @@
38
38
  "clean:dist": "tsx ../../scripts/clean-package-dist.ts"
39
39
  },
40
40
  "dependencies": {
41
- "@flighthq/registry": "0.5.1-next.685.f72fc7f",
42
- "@flighthq/textureatlas": "0.5.1-next.685.f72fc7f",
43
- "@flighthq/textureatlas-formats": "0.5.1-next.685.f72fc7f",
44
- "@flighthq/spritesheet": "0.5.1-next.685.f72fc7f",
45
- "@flighthq/types": "0.5.1-next.685.f72fc7f",
46
- "@flighthq/xml": "0.5.1-next.685.f72fc7f"
41
+ "@flighthq/importdiagnostics": "0.5.1-next.704.19c91ec",
42
+ "@flighthq/registry": "0.5.1-next.704.19c91ec",
43
+ "@flighthq/spritesheet": "0.5.1-next.704.19c91ec",
44
+ "@flighthq/textureatlas": "0.5.1-next.704.19c91ec",
45
+ "@flighthq/textureatlas-formats": "0.5.1-next.704.19c91ec",
46
+ "@flighthq/types": "0.5.1-next.704.19c91ec",
47
+ "@flighthq/xml": "0.5.1-next.704.19c91ec"
47
48
  },
48
49
  "devDependencies": {
49
50
  "typescript": "^5.3.0"
@@ -1,6 +1,6 @@
1
- import { parseAsepriteSpritesheet, parseAsepriteSpritesheetDocument } from './asepriteParse';
1
+ import type { ImportDiagnostic } from '@flighthq/types/contract';
2
2
 
3
- // ─── Fixtures ────────────────────────────────────────────────────────────────
3
+ import { parseAsepriteSpritesheet, parseAsepriteSpritesheetDocument } from './asepriteParse';
4
4
 
5
5
  const HASH_JSON = JSON.stringify({
6
6
  frames: {
@@ -214,6 +214,20 @@ describe('parseAsepriteSpritesheet', () => {
214
214
  const data = parseAsepriteSpritesheet(ARRAY_JSON);
215
215
  expect(data.animations[0].direction).toBe('pingpong');
216
216
  });
217
+
218
+ it('emits Reject diagnostic on malformed JSON', () => {
219
+ const diagnostics: ImportDiagnostic[] = [];
220
+ parseAsepriteSpritesheet('{ not valid json', diagnostics);
221
+ expect(diagnostics).toHaveLength(1);
222
+ expect(diagnostics[0].kind).toBe('spritesheet.aseprite.malformed-json');
223
+ expect(diagnostics[0].severity).toBe('Reject');
224
+ });
225
+
226
+ it('emits no diagnostics on valid JSON', () => {
227
+ const diagnostics: ImportDiagnostic[] = [];
228
+ parseAsepriteSpritesheet(HASH_JSON, diagnostics);
229
+ expect(diagnostics).toHaveLength(0);
230
+ });
217
231
  });
218
232
 
219
233
  describe('parseAsepriteSpritesheetDocument', () => {
@@ -249,4 +263,12 @@ describe('parseAsepriteSpritesheetDocument', () => {
249
263
  expect(document.meta.layers).toHaveLength(1);
250
264
  expect(document.meta.layers![0].name).toBe('Layer 1');
251
265
  });
266
+
267
+ it('emits Reject diagnostic on malformed JSON', () => {
268
+ const diagnostics: ImportDiagnostic[] = [];
269
+ parseAsepriteSpritesheetDocument('{ not valid json', diagnostics);
270
+ expect(diagnostics).toHaveLength(1);
271
+ expect(diagnostics[0].kind).toBe('spritesheet.aseprite.malformed-json');
272
+ expect(diagnostics[0].severity).toBe('Reject');
273
+ });
252
274
  });
@@ -1,3 +1,5 @@
1
+ import type { ImportDiagnostic } from '@flighthq/types/contract';
2
+
1
3
  import { parseCocosPlistSpritesheet, parseCocosPlistSpritesheetDocument } from './cocosPlistParse';
2
4
 
3
5
  const MINIMAL_PLIST = `<?xml version="1.0" encoding="UTF-8"?>
@@ -119,6 +121,44 @@ describe('parseCocosPlistSpritesheet', () => {
119
121
  const data = parseCocosPlistSpritesheet(MINIMAL_PLIST);
120
122
  expect(data.animations).toHaveLength(0);
121
123
  });
124
+
125
+ it('emits no diagnostics on well-formed plist', () => {
126
+ const diagnostics: ImportDiagnostic[] = [];
127
+ parseCocosPlistSpritesheet(MINIMAL_PLIST, diagnostics);
128
+ expect(diagnostics).toHaveLength(0);
129
+ });
130
+
131
+ it('emits Drop diagnostic for unrecognized frame entries', () => {
132
+ const plist = `<?xml version="1.0" encoding="UTF-8"?>
133
+ <plist version="1.0">
134
+ <dict>
135
+ <key>frames</key>
136
+ <dict>
137
+ <key>bad.png</key>
138
+ <dict>
139
+ <key>unknownKey</key>
140
+ <string>value</string>
141
+ </dict>
142
+ </dict>
143
+ <key>metadata</key>
144
+ <dict>
145
+ <key>format</key>
146
+ <integer>3</integer>
147
+ <key>size</key>
148
+ <string>{64,64}</string>
149
+ <key>textureFileName</key>
150
+ <string>atlas.png</string>
151
+ </dict>
152
+ </dict>
153
+ </plist>`;
154
+ const diagnostics: ImportDiagnostic[] = [];
155
+ const data = parseCocosPlistSpritesheet(plist, diagnostics);
156
+ expect(data.frames).toHaveLength(0);
157
+ expect(diagnostics).toHaveLength(1);
158
+ expect(diagnostics[0].kind).toBe('spritesheet.cocos-plist.unrecognized-frame');
159
+ expect(diagnostics[0].severity).toBe('Drop');
160
+ expect(diagnostics[0].detail).toMatchObject({ frame: 'bad.png' });
161
+ });
122
162
  });
123
163
 
124
164
  describe('parseCocosPlistSpritesheetDocument', () => {
@@ -1,3 +1,5 @@
1
+ import type { ImportDiagnostic } from '@flighthq/types/contract';
2
+
1
3
  import { parseLibgdxAtlasSpritesheet } from './libgdxAtlasParse';
2
4
 
3
5
  const MINIMAL_ATLAS = `
@@ -98,4 +100,28 @@ describe('parseLibgdxAtlasSpritesheet', () => {
98
100
  const data = parseLibgdxAtlasSpritesheet(MINIMAL_ATLAS);
99
101
  expect(data.frames[0]?.rotated).toBe(false);
100
102
  });
103
+
104
+ it('emits no diagnostics on well-formed atlas with page header', () => {
105
+ const diagnostics: ImportDiagnostic[] = [];
106
+ parseLibgdxAtlasSpritesheet(MINIMAL_ATLAS, undefined, diagnostics);
107
+ expect(diagnostics).toHaveLength(0);
108
+ });
109
+
110
+ it('emits Recover diagnostic when page has no filename', () => {
111
+ const noPageAtlas = `
112
+ hero
113
+ rotate: false
114
+ xy: 0, 0
115
+ size: 64, 64
116
+ orig: 64, 64
117
+ offset: 0, 0
118
+ index: -1
119
+ `;
120
+ const diagnostics: ImportDiagnostic[] = [];
121
+ const data = parseLibgdxAtlasSpritesheet(noPageAtlas, undefined, diagnostics);
122
+ expect(data.imageFile).toBe('');
123
+ expect(diagnostics).toHaveLength(1);
124
+ expect(diagnostics[0].kind).toBe('spritesheet.libgdx-atlas.missing-page-header');
125
+ expect(diagnostics[0].severity).toBe('Recover');
126
+ });
101
127
  });
@@ -1,6 +1,6 @@
1
- import { parseStarlingSpritesheet, parseStarlingSpritesheetDocument } from './starlingParse';
1
+ import type { ImportDiagnostic } from '@flighthq/types/contract';
2
2
 
3
- // ─── Fixtures ────────────────────────────────────────────────────────────────
3
+ import { parseStarlingSpritesheet, parseStarlingSpritesheetDocument } from './starlingParse';
4
4
 
5
5
  const ATLAS_XML = `<?xml version="1.0" encoding="UTF-8"?>
6
6
  <TextureAtlas imagePath="atlas.png">
@@ -143,6 +143,16 @@ describe('parseStarlingSpritesheet', () => {
143
143
  expect(data.frames).toHaveLength(1);
144
144
  expect(data.animations).toHaveLength(0);
145
145
  });
146
+
147
+ it('emits Recover diagnostic for missing atlas dimensions', () => {
148
+ const diagnostics: ImportDiagnostic[] = [];
149
+ const data = parseStarlingSpritesheet(ATLAS_XML, undefined, diagnostics);
150
+ expect(data.imageWidth).toBe(0);
151
+ expect(data.imageHeight).toBe(0);
152
+ expect(diagnostics).toHaveLength(1);
153
+ expect(diagnostics[0].kind).toBe('spritesheet.starling.missing-dimensions');
154
+ expect(diagnostics[0].severity).toBe('Recover');
155
+ });
146
156
  });
147
157
 
148
158
  describe('parseStarlingSpritesheetDocument', () => {
@@ -1,6 +1,6 @@
1
- import { parseTexturePackerSpritesheet, parseTexturePackerSpritesheetDocument } from './texturePackerParse';
1
+ import type { ImportDiagnostic } from '@flighthq/types/contract';
2
2
 
3
- // ─── Fixtures ────────────────────────────────────────────────────────────────
3
+ import { parseTexturePackerSpritesheet, parseTexturePackerSpritesheetDocument } from './texturePackerParse';
4
4
 
5
5
  const HASH_JSON = JSON.stringify({
6
6
  frames: {
@@ -210,6 +210,20 @@ describe('parseTexturePackerSpritesheet', () => {
210
210
  expect(frame.offsetX).toBe(0);
211
211
  expect(frame.offsetY).toBe(0);
212
212
  });
213
+
214
+ it('emits Reject diagnostic on malformed JSON', () => {
215
+ const diagnostics: ImportDiagnostic[] = [];
216
+ parseTexturePackerSpritesheet('not json', diagnostics);
217
+ expect(diagnostics).toHaveLength(1);
218
+ expect(diagnostics[0].kind).toBe('spritesheet.texture-packer.malformed-json');
219
+ expect(diagnostics[0].severity).toBe('Reject');
220
+ });
221
+
222
+ it('emits no diagnostics on valid JSON', () => {
223
+ const diagnostics: ImportDiagnostic[] = [];
224
+ parseTexturePackerSpritesheet(HASH_JSON, diagnostics);
225
+ expect(diagnostics).toHaveLength(0);
226
+ });
213
227
  });
214
228
 
215
229
  describe('parseTexturePackerSpritesheetDocument', () => {
@@ -247,4 +261,12 @@ describe('parseTexturePackerSpritesheetDocument', () => {
247
261
  expect(document.meta.version).toBe('1.0');
248
262
  expect(document.meta.format).toBe('RGBA8888');
249
263
  });
264
+
265
+ it('emits Reject diagnostic on malformed JSON', () => {
266
+ const diagnostics: ImportDiagnostic[] = [];
267
+ parseTexturePackerSpritesheetDocument('not json', diagnostics);
268
+ expect(diagnostics).toHaveLength(1);
269
+ expect(diagnostics[0].kind).toBe('spritesheet.texture-packer.malformed-json');
270
+ expect(diagnostics[0].severity).toBe('Reject');
271
+ });
250
272
  });