@oidoid/void 0.1.4 → 0.1.6

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 (107) hide show
  1. package/dist/public/index.js +8 -8
  2. package/dist/public/index.js.map +4 -4
  3. package/dist/public/void-v0.1.6+20260105.c98baee.html +115 -0
  4. package/dist/schema/config-file.v0.json +16 -72
  5. package/dist/schema/level-file.v0.json +76 -56
  6. package/dist/src/demo/assets/void.game.json +2 -7
  7. package/dist/src/demo/ents/render-toggle.d.ts.map +1 -1
  8. package/dist/src/demo/ents/render-toggle.js +1 -0
  9. package/dist/src/demo/ents/render-toggle.js.map +1 -1
  10. package/dist/src/demo/index.js +3 -4
  11. package/dist/src/demo/index.js.map +1 -1
  12. package/dist/src/demo/level/level-file.v0.json +443 -0
  13. package/dist/src/demo/level/level-parser.d.ts +0 -2
  14. package/dist/src/demo/level/level-parser.d.ts.map +1 -1
  15. package/dist/src/demo/level/level-parser.js +0 -4
  16. package/dist/src/demo/level/level-parser.js.map +1 -1
  17. package/dist/src/demo/level/loader.d.ts +7 -0
  18. package/dist/src/demo/level/loader.d.ts.map +1 -0
  19. package/dist/src/demo/level/loader.js +55 -0
  20. package/dist/src/demo/level/loader.js.map +1 -0
  21. package/dist/src/demo/level/schema.json +24 -0
  22. package/dist/src/demo/level/tags.json +148 -0
  23. package/dist/src/demo/types/decl.d.ts +0 -3
  24. package/dist/src/demo/types/decl.d.ts.map +1 -1
  25. package/dist/src/demo/void.json +6 -6
  26. package/dist/src/ents/button.js +2 -2
  27. package/dist/src/ents/button.js.map +1 -1
  28. package/dist/src/ents/ent-query.d.ts +1 -1
  29. package/dist/src/ents/ent-query.d.ts.map +1 -1
  30. package/dist/src/ents/ent-query.js +1 -1
  31. package/dist/src/ents/ent-query.js.map +1 -1
  32. package/dist/src/ents/ent.d.ts +1 -4
  33. package/dist/src/ents/ent.d.ts.map +1 -1
  34. package/dist/src/ents/sys.d.ts +0 -1
  35. package/dist/src/ents/sys.d.ts.map +1 -1
  36. package/dist/src/ents/zoo.d.ts +9 -18
  37. package/dist/src/ents/zoo.d.ts.map +1 -1
  38. package/dist/src/ents/zoo.js +35 -98
  39. package/dist/src/ents/zoo.js.map +1 -1
  40. package/dist/src/graphics/atlas-parser.d.ts +1 -1
  41. package/dist/src/graphics/atlas.d.ts +4 -0
  42. package/dist/src/graphics/atlas.d.ts.map +1 -1
  43. package/dist/src/graphics/layer.d.ts +1 -1
  44. package/dist/src/graphics/layer.d.ts.map +1 -1
  45. package/dist/src/graphics/layer.js +1 -1
  46. package/dist/src/graphics/layer.js.map +1 -1
  47. package/dist/src/graphics/renderer.d.ts +2 -2
  48. package/dist/src/graphics/renderer.d.ts.map +1 -1
  49. package/dist/src/graphics/renderer.js +13 -13
  50. package/dist/src/graphics/renderer.js.map +1 -1
  51. package/dist/src/index.d.ts +2 -2
  52. package/dist/src/index.d.ts.map +1 -1
  53. package/dist/src/index.js +2 -2
  54. package/dist/src/index.js.map +1 -1
  55. package/dist/src/level/level-parser.d.ts.map +1 -1
  56. package/dist/src/level/level-parser.js +8 -3
  57. package/dist/src/level/level-parser.js.map +1 -1
  58. package/dist/src/level/level-schema.d.ts +17 -12
  59. package/dist/src/level/level-schema.d.ts.map +1 -1
  60. package/dist/src/level/level.d.ts +6 -4
  61. package/dist/src/level/level.d.ts.map +1 -1
  62. package/dist/src/level/loader.d.ts +7 -0
  63. package/dist/src/level/loader.d.ts.map +1 -0
  64. package/dist/src/{ents → level}/loader.js.map +1 -1
  65. package/dist/src/types/{game-config.d.ts → void-config.d.ts} +4 -11
  66. package/dist/src/types/void-config.d.ts.map +1 -0
  67. package/dist/src/types/void-config.js +2 -0
  68. package/dist/src/types/void-config.js.map +1 -0
  69. package/dist/src/utils/dom-util.d.ts +1 -1
  70. package/dist/src/utils/dom-util.d.ts.map +1 -1
  71. package/dist/src/utils/dom-util.js +1 -3
  72. package/dist/src/utils/dom-util.js.map +1 -1
  73. package/dist/src/void.d.ts +14 -11
  74. package/dist/src/void.d.ts.map +1 -1
  75. package/dist/src/void.js +43 -31
  76. package/dist/src/void.js.map +1 -1
  77. package/dist/tools/atlas-pack/atlas-pack.d.ts +1 -1
  78. package/dist/tools/atlas-pack/atlas-pack.d.ts.map +1 -1
  79. package/dist/tools/atlas-pack/atlas-pack.js +0 -2
  80. package/dist/tools/atlas-pack/atlas-pack.js.map +1 -1
  81. package/dist/tools/bundle/bundle.js +22 -10
  82. package/dist/tools/bundle/bundle.js.map +1 -1
  83. package/dist/tools/types/config-file.d.ts +13 -16
  84. package/dist/tools/types/config-file.d.ts.map +1 -1
  85. package/dist/tools/types/config-file.js +7 -17
  86. package/dist/tools/types/config-file.js.map +1 -1
  87. package/dist/tools/types/config.d.ts +6 -4
  88. package/dist/tools/types/config.d.ts.map +1 -1
  89. package/dist/tools/types/config.js +5 -3
  90. package/dist/tools/types/config.js.map +1 -1
  91. package/package.json +5 -4
  92. package/readme.md +3 -1
  93. package/schema/config-file.v0.json +83 -0
  94. package/schema/level-file.v0.json +443 -0
  95. package/dist/public/void-v0.1.4+20260103.39142b2.html +0 -115
  96. package/dist/src/demo/ents/loader.d.ts +0 -6
  97. package/dist/src/demo/ents/loader.d.ts.map +0 -1
  98. package/dist/src/demo/ents/loader.js +0 -45
  99. package/dist/src/demo/ents/loader.js.map +0 -1
  100. package/dist/src/demo/level/level-file.json +0 -50
  101. package/dist/src/ents/loader.d.ts +0 -3
  102. package/dist/src/ents/loader.d.ts.map +0 -1
  103. package/dist/src/types/game-config.d.ts.map +0 -1
  104. package/dist/src/types/game-config.js +0 -2
  105. package/dist/src/types/game-config.js.map +0 -1
  106. /package/dist/public/{preload-atlas.webp → atlas.webp} +0 -0
  107. /package/dist/src/{ents → level}/loader.js +0 -0
package/dist/src/void.js CHANGED
@@ -1,75 +1,73 @@
1
- import { Zoo } from "./ents/zoo.js";
2
1
  import { parseAtlas } from "./graphics/atlas-parser.js";
3
2
  import { Cam } from "./graphics/cam.js";
4
3
  import { PixelRatioObserver } from "./graphics/pixel-ratio-observer.js";
5
4
  import { Renderer } from "./graphics/renderer.js";
6
5
  import { Input } from "./input/input.js";
6
+ import { parseLevel } from "./level/level-parser.js";
7
7
  import { Looper } from "./looper.js";
8
8
  import { SpritePool } from "./mem/sprite-pool.js";
9
9
  import { Random } from "./random/random.js";
10
10
  import { initCanvas } from "./utils/canvas-util.js";
11
- import { parseComputedColor } from "./utils/color-util.js";
11
+ import { parseComputedColor, rgbaHex } from "./utils/color-util.js";
12
12
  import { debug } from "./utils/debug.js";
13
13
  import { DelayInterval } from "./utils/delay-interval.js";
14
14
  import { initBody, initMetaViewport } from "./utils/dom-util.js";
15
15
  import { loadImage } from "./utils/fetch-util.js";
16
16
  export class Void {
17
+ atlas;
17
18
  cam = new Cam();
18
19
  canvas;
19
20
  input;
21
+ loader;
20
22
  looper = new Looper();
21
23
  pool;
22
- preload;
23
24
  random;
24
25
  renderer;
25
26
  /** delta since frame request. */
26
27
  tick = { ms: 0, s: 0 };
27
- zoo = new Zoo();
28
+ #atlasImage;
28
29
  #backgroundRGBA;
29
30
  #invalid = false;
30
31
  #pixelRatioObserver = new PixelRatioObserver();
31
32
  #poller;
32
- #preloadAtlasImage;
33
33
  #registered = false;
34
34
  /** may trigger an initial force update. */
35
35
  #resizeObserver = new ResizeObserver(() => this.onResize());
36
36
  constructor(opts) {
37
37
  initMetaViewport(opts.description);
38
- this.canvas = initCanvas(opts.canvas, opts.config.init.mode);
38
+ this.canvas = initCanvas(opts.canvas, opts.config.mode);
39
39
  if (!this.canvas.parentElement)
40
40
  throw Error('no canvas parent');
41
- this.#backgroundRGBA =
42
- opts.config.init.background ??
43
- parseComputedColor(getComputedStyle(this.canvas.parentElement).backgroundColor);
41
+ this.#backgroundRGBA = parseComputedColor(getComputedStyle(this.canvas.parentElement).backgroundColor);
44
42
  if (!opts.canvas)
45
- initBody(this.#backgroundRGBA);
46
- this.cam.minWH = opts.config.init.minWH;
47
- this.cam.mode = opts.config.init.mode;
43
+ initBody();
44
+ this.cam.mode = opts.config.mode;
48
45
  this.cam.update(this.canvas);
49
46
  this.random = opts.random ?? new Random(Date.now());
50
47
  this.input = new Input(this.cam, this.canvas);
51
- if (opts.config.init.input !== 'Custom')
48
+ if (opts.config.input !== 'Custom')
52
49
  this.input.mapDefault();
53
50
  this.input.onEvent = () => this.onEvent();
54
51
  this.#pixelRatioObserver.onChange = () => this.onResize();
55
- this.#preloadAtlasImage = opts.preloadAtlas ?? undefined;
56
- if (!!this.#preloadAtlasImage !== !!opts.config.atlas)
57
- throw Error('atlas misconfigured');
58
- this.preload = opts.config.atlas
59
- ? parseAtlas(opts.config.atlas)
60
- : { anim: {}, celXYWH: [], tags: [] };
61
- this.renderer = new Renderer(this.preload ?? {}, this.canvas, this.looper);
52
+ if (!opts.atlas)
53
+ throw Error('no atlas image');
54
+ this.#atlasImage = opts.atlas;
55
+ this.atlas = {
56
+ default: opts.config.atlas
57
+ ? parseAtlas(opts.config.atlas)
58
+ : { anim: {}, celXYWH: [], tags: [] }
59
+ };
60
+ this.renderer = new Renderer(this.atlas.default, this.canvas, this.looper);
62
61
  this.pool = {
63
62
  default: SpritePool({
64
- atlas: this.preload,
63
+ atlas: this.atlas.default,
65
64
  looper: this.looper,
66
65
  minPages: opts.sprites?.minPages ?? 3,
67
66
  pageBlocks: opts.sprites?.pageBlocks ?? 1000
68
67
  })
69
68
  };
70
69
  this.looper.onFrame = millis => this.onFrame(millis);
71
- this.zoo.addSystem({ loader: opts.loaderSys });
72
- this.zoo.add(opts.loader);
70
+ this.loader = opts.loader;
73
71
  if (debug)
74
72
  globalThis.v = this;
75
73
  }
@@ -79,19 +77,34 @@ export class Void {
79
77
  get backgroundRGBA() {
80
78
  return this.#backgroundRGBA;
81
79
  }
80
+ set backgroundRGBA(rgba) {
81
+ if (!this.canvas.parentElement)
82
+ throw Error('no canvas parent');
83
+ this.canvas.parentElement.style.backgroundColor = rgbaHex(rgba);
84
+ this.#backgroundRGBA = rgba;
85
+ }
82
86
  /**
83
87
  * invalid state only impacts drawing in the current frame not requesting a
84
88
  * new frame.
85
89
  */
86
90
  get invalid() {
87
- return (this.zoo.invalid ||
88
- this.cam.invalid ||
89
- this.renderer.invalid ||
90
- this.#invalid);
91
+ return this.cam.invalid || this.renderer.invalid || this.#invalid;
91
92
  }
92
93
  set invalid(invalid) {
93
94
  this.#invalid = invalid;
94
95
  }
96
+ loadLevel(json, atlas, hook) {
97
+ const lvl = parseLevel(json, this.pool, hook, this.atlas[atlas]);
98
+ if (lvl.background != null)
99
+ this.backgroundRGBA = lvl.background;
100
+ if (lvl.minScale != null)
101
+ this.cam.minScale = lvl.minScale;
102
+ if (lvl.minWH != null)
103
+ this.cam.minWH = lvl.minWH;
104
+ if (lvl.zoomOut != null)
105
+ this.cam.zoomOut = lvl.zoomOut;
106
+ return lvl.zoo;
107
+ }
95
108
  onEvent() {
96
109
  this.requestFrame('Force');
97
110
  }
@@ -104,7 +117,7 @@ export class Void {
104
117
  this.input.update(millis);
105
118
  this.requestFrame(); // request frame before in case update cancels.
106
119
  this.#invalid = false;
107
- this.zoo.update(this);
120
+ this.loader.update(this);
108
121
  this.cam.postupdate();
109
122
  }
110
123
  onPoll() {
@@ -133,9 +146,8 @@ export class Void {
133
146
  if (op === 'add')
134
147
  this.looper.requestFrame();
135
148
  this.#poller?.register(op);
136
- if (this.#preloadAtlasImage)
137
- await loadImage(this.#preloadAtlasImage);
138
- this.renderer.load(this.#preloadAtlasImage);
149
+ await loadImage(this.#atlasImage);
150
+ this.renderer.load(this.#atlasImage);
139
151
  this.#registered = op === 'add';
140
152
  }
141
153
  requestFrame(force) {
@@ -1 +1 @@
1
- {"version":3,"file":"void.js","sourceRoot":"","sources":["../../src/void.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"void.js","sourceRoot":"","sources":["../../src/void.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  import type * as V from '../../src/index.ts';
2
2
  import type { AtlasConfig } from '../types/config-file.ts';
3
- export declare function packAtlas(config: Readonly<AtlasConfig>): Promise<V.AtlasJSON | undefined>;
3
+ export declare function packAtlas(config: Readonly<AtlasConfig>): Promise<V.AtlasJSON>;
4
4
  //# sourceMappingURL=atlas-pack.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"atlas-pack.d.ts","sourceRoot":"","sources":["../../../tools/atlas-pack/atlas-pack.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,CAAC,MAAM,oBAAoB,CAAA;AAC5C,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,yBAAyB,CAAA;AAMxD,wBAAsB,SAAS,CAC7B,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,GAC5B,OAAO,CAAC,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,CAmClC"}
1
+ {"version":3,"file":"atlas-pack.d.ts","sourceRoot":"","sources":["../../../tools/atlas-pack/atlas-pack.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,CAAC,MAAM,oBAAoB,CAAA;AAC5C,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,yBAAyB,CAAA;AAMxD,wBAAsB,SAAS,CAC7B,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,GAC5B,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAkCtB"}
@@ -5,8 +5,6 @@ import { parseAtlasJSON } from "./atlas-json-parser.js";
5
5
  // to-do: separate executable?
6
6
  export async function packAtlas(config) {
7
7
  const filenames = await globAll(path.join(config.dir, '**.aseprite'));
8
- if (!filenames.length)
9
- return;
10
8
  const webp = config.image.endsWith('.webp');
11
9
  const sheet = webp ? config.image.replace('.webp', '.png') : config.image;
12
10
  const json = await exec('aseprite', '--batch', '--color-mode=indexed', '--filename-format={title}--{tag}--{frame}', '--list-slices', '--list-tags', '--merge-duplicates', `--sheet=${sheet}`, '--sheet-pack', '--tagname-format={title}--{tag}', ...filenames);
@@ -1 +1 @@
1
- {"version":3,"file":"atlas-pack.js","sourceRoot":"","sources":["../../../tools/atlas-pack/atlas-pack.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAG5B,OAAO,EAAC,IAAI,EAAC,MAAM,kBAAkB,CAAA;AACrC,OAAO,EAAC,OAAO,EAAC,MAAM,uBAAuB,CAAA;AAC7C,OAAO,EAAC,cAAc,EAAC,MAAM,wBAAwB,CAAA;AAErD,8BAA8B;AAC9B,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,MAA6B;IAE7B,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC,CAAA;IACrE,IAAI,CAAC,SAAS,CAAC,MAAM;QAAE,OAAM;IAE7B,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;IAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAA;IACzE,MAAM,IAAI,GAAG,MAAM,IAAI,CACrB,UAAU,EACV,SAAS,EACT,sBAAsB,EACtB,2CAA2C,EAC3C,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,WAAW,KAAK,EAAE,EAClB,cAAc,EACd,iCAAiC,EACjC,GAAG,SAAS,CACb,CAAA;IAED,IAAI,IAAI;QACN,MAAM,IAAI,CACR,OAAO,EACP,QAAQ,EACR,WAAW,EACX,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,GAAG,EACH,KAAK,EACL,IAAI,EACJ,MAAM,CAAC,KAAK,CACb,CAAA;IAEH,OAAO,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;AACzC,CAAC"}
1
+ {"version":3,"file":"atlas-pack.js","sourceRoot":"","sources":["../../../tools/atlas-pack/atlas-pack.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAG5B,OAAO,EAAC,IAAI,EAAC,MAAM,kBAAkB,CAAA;AACrC,OAAO,EAAC,OAAO,EAAC,MAAM,uBAAuB,CAAA;AAC7C,OAAO,EAAC,cAAc,EAAC,MAAM,wBAAwB,CAAA;AAErD,8BAA8B;AAC9B,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,MAA6B;IAE7B,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC,CAAA;IAErE,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;IAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAA;IACzE,MAAM,IAAI,GAAG,MAAM,IAAI,CACrB,UAAU,EACV,SAAS,EACT,sBAAsB,EACtB,2CAA2C,EAC3C,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,WAAW,KAAK,EAAE,EAClB,cAAc,EACd,iCAAiC,EACjC,GAAG,SAAS,CACb,CAAA;IAED,IAAI,IAAI;QACN,MAAM,IAAI,CACR,OAAO,EACP,QAAQ,EACR,WAAW,EACX,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,GAAG,EACH,KAAK,EACL,IAAI,EACJ,MAAM,CAAC,KAAK,CACb,CAAA;IAEH,OAAO,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;AACzC,CAAC"}
@@ -29,13 +29,11 @@ export async function bundle(config, srcFilenames) {
29
29
  sourcemap: 'linked',
30
30
  target: 'es2024' // https://esbuild.github.io/content-types/#tsconfig-json
31
31
  };
32
- let atlas;
33
- if (config.preloadAtlas)
34
- atlas = await packAtlas(config.preloadAtlas);
32
+ const atlas = await packAtlas(config.atlas);
35
33
  await writeGameConfig(atlas, config);
34
+ await writeTagSchema(atlas, config);
36
35
  if (config.watch) {
37
- if (config.preloadAtlas)
38
- fs.watch(config.preloadAtlas.dir, { recursive: true }, (ev, type) => onWatchAssets(config, ev, type));
36
+ fs.watch(config.atlas.dir, { recursive: true }, (ev, type) => onWatchAssets(config, ev, type));
39
37
  fs.watch(config.filename, async (ev, type) => {
40
38
  console.log(`config ${type} ${ev}.`);
41
39
  config = await readConfig(config.argv.argv);
@@ -55,21 +53,35 @@ export async function bundle(config, srcFilenames) {
55
53
  }
56
54
  const onWatchAssets = V.debounce(async (config, ev, file) => {
57
55
  console.log(`asset ${file} ${ev}.`);
58
- const atlas = await packAtlas(config.preloadAtlas);
56
+ const atlas = await packAtlas(config.atlas);
59
57
  await writeGameConfig(atlas, config);
60
58
  }, 500);
61
59
  const onWatchConfig = V.debounce(async (config) => {
62
- let atlas;
63
- if (config.preloadAtlas)
64
- atlas = await packAtlas(config.preloadAtlas);
60
+ const atlas = await packAtlas(config.atlas);
65
61
  await writeGameConfig(atlas, config);
66
62
  }, 500);
67
63
  async function writeGameConfig(atlas, config) {
68
- const gameConfig = { atlas, init: config.init };
64
+ const gameConfig = {
65
+ atlas,
66
+ input: config.input,
67
+ mode: config.mode
68
+ };
69
69
  await fs.promises.writeFile(config.out.game, JSON.stringify(gameConfig));
70
70
  try {
71
71
  await exec('biome', 'check', '--fix', config.out.game);
72
72
  }
73
73
  catch { }
74
74
  }
75
+ async function writeTagSchema(atlas, config) {
76
+ const schema = {
77
+ $schema: 'https://json-schema.org/draft/2020-12/schema',
78
+ description: 'animation tag.',
79
+ enum: Object.keys(atlas?.anim ?? {})
80
+ };
81
+ await fs.promises.writeFile(config.out.tagSchema, JSON.stringify(schema));
82
+ try {
83
+ await exec('biome', 'check', '--fix', config.out.tagSchema);
84
+ }
85
+ catch { }
86
+ }
75
87
  //# sourceMappingURL=bundle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bundle.js","sourceRoot":"","sources":["../../../tools/bundle/bundle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bundle.js","sourceRoot":"","sources":["../../../tools/bundle/bundle.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- import * as V from '../../src/index.ts';
1
+ import type * as V from '../../src/index.ts';
2
2
  export type AtlasConfig = {
3
3
  dir: string;
4
4
  image: string;
5
5
  };
6
- export type ConfigFile = {
6
+ export type VoidConfigFile = {
7
7
  $schema: string;
8
8
  entry: string;
9
9
  meta: string | undefined;
@@ -11,15 +11,17 @@ export type ConfigFile = {
11
11
  dir: string;
12
12
  game: string;
13
13
  name: string | undefined;
14
+ tagSchema: string;
14
15
  };
15
- preloadAtlas: AtlasConfig | undefined;
16
- init: V.InitConfig;
16
+ atlas: AtlasConfig;
17
+ input: V.InputMode;
18
+ mode: V.RenderMode;
17
19
  /** config directory name. */
18
20
  dirname: string;
19
21
  /** config filename. */
20
22
  filename: string;
21
23
  };
22
- export type ConfigFileSchema = {
24
+ export type VoidConfigFileSchema = {
23
25
  $schema?: string;
24
26
  entry?: string;
25
27
  meta?: string;
@@ -27,18 +29,13 @@ export type ConfigFileSchema = {
27
29
  dir?: string;
28
30
  game: string;
29
31
  name?: string;
32
+ tagSchema: string;
30
33
  };
31
- preloadAtlas?: AtlasConfig;
32
- init?: {
33
- background?: string;
34
- input: V.InputMode;
35
- minWH: V.UnboundedWHSchema;
36
- minScale?: number;
37
- mode: V.RenderMode;
38
- zoomOut?: number;
39
- };
34
+ atlas: AtlasConfig;
35
+ input?: V.InputMode;
36
+ mode?: V.RenderMode;
40
37
  };
41
- export declare function parseConfigFile(filename: string): Promise<ConfigFile>;
38
+ export declare function parseConfigFile(filename: string): Promise<VoidConfigFile>;
42
39
  /** @internal */
43
- export declare function parse(filename: string, str: string): ConfigFile;
40
+ export declare function parse(filename: string, str: string): VoidConfigFile;
44
41
  //# sourceMappingURL=config-file.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config-file.d.ts","sourceRoot":"","sources":["../../../tools/types/config-file.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,CAAC,MAAM,oBAAoB,CAAA;AAEvC,MAAM,MAAM,WAAW,GAAG;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAC,CAAA;AAEtD,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;IACxB,GAAG,EAAE;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;KAAC,CAAA;IAC1D,YAAY,EAAE,WAAW,GAAG,SAAS,CAAA;IACrC,IAAI,EAAE,CAAC,CAAC,UAAU,CAAA;IAElB,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAA;IACf,uBAAuB;IACvB,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,EAAE;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAC,CAAA;IAChD,YAAY,CAAC,EAAE,WAAW,CAAA;IAC1B,IAAI,CAAC,EAAE;QACL,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,KAAK,EAAE,CAAC,CAAC,SAAS,CAAA;QAClB,KAAK,EAAE,CAAC,CAAC,iBAAiB,CAAA;QAC1B,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,IAAI,EAAE,CAAC,CAAC,UAAU,CAAA;QAClB,OAAO,CAAC,EAAE,MAAM,CAAA;KACjB,CAAA;CACF,CAAA;AAED,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAS3E;AAED,gBAAgB;AAChB,wBAAgB,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,UAAU,CAyC/D"}
1
+ {"version":3,"file":"config-file.d.ts","sourceRoot":"","sources":["../../../tools/types/config-file.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,CAAC,MAAM,oBAAoB,CAAA;AAE5C,MAAM,MAAM,WAAW,GAAG;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAC,CAAA;AAEtD,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;IACxB,GAAG,EAAE;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAC,CAAA;IAC7E,KAAK,EAAE,WAAW,CAAA;IAClB,KAAK,EAAE,CAAC,CAAC,SAAS,CAAA;IAClB,IAAI,EAAE,CAAC,CAAC,UAAU,CAAA;IAElB,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAA;IACf,uBAAuB;IACvB,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,EAAE;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAC,CAAA;IACnE,KAAK,EAAE,WAAW,CAAA;IAClB,KAAK,CAAC,EAAE,CAAC,CAAC,SAAS,CAAA;IACnB,IAAI,CAAC,EAAE,CAAC,CAAC,UAAU,CAAA;CACpB,CAAA;AAED,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,cAAc,CAAC,CASzB;AAED,gBAAgB;AAChB,wBAAgB,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,cAAc,CAgCnE"}
@@ -1,7 +1,6 @@
1
1
  import { readFile } from 'node:fs/promises';
2
2
  import path from 'node:path';
3
3
  import schema from '../../schema/config-file.v0.json' with { type: 'json' };
4
- import * as V from "../../src/index.js";
5
4
  export async function parseConfigFile(filename) {
6
5
  let str;
7
6
  try {
@@ -29,24 +28,15 @@ export function parse(filename, str) {
29
28
  out: {
30
29
  dir: path.resolve(dirname, json.out.dir ?? schema.properties.out.properties.dir.default),
31
30
  game: path.resolve(dirname, json.out.game),
32
- name: json.out.name
31
+ name: json.out.name,
32
+ tagSchema: path.resolve(dirname, json.out.tagSchema)
33
33
  },
34
- preloadAtlas: json.preloadAtlas && {
35
- dir: path.resolve(dirname, json.preloadAtlas.dir),
36
- image: path.resolve(dirname, json.preloadAtlas.image)
37
- },
38
- init: {
39
- background: json.init?.background
40
- ? parseInt(json.init.background, 16)
41
- : undefined,
42
- input: json.init?.input ?? 'Default',
43
- minWH: json.init?.minWH
44
- ? V.parseWH(json.init.minWH)
45
- : { w: Infinity, h: Infinity },
46
- minScale: json.init?.minScale ?? 1,
47
- mode: json.init?.mode ?? 'Int',
48
- zoomOut: json.init?.zoomOut ?? 0
34
+ atlas: {
35
+ dir: path.resolve(dirname, json.atlas.dir),
36
+ image: path.resolve(dirname, json.atlas.image)
49
37
  },
38
+ input: json.input ?? 'Default',
39
+ mode: json.mode ?? 'Int',
50
40
  dirname,
51
41
  filename
52
42
  };
@@ -1 +1 @@
1
- {"version":3,"file":"config-file.js","sourceRoot":"","sources":["../../../tools/types/config-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAA;AACzC,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,MAAM,MAAM,kCAAkC,CAAC,OAAM,IAAI,EAAE,MAAM,EAAC,CAAA;AACzE,OAAO,KAAK,CAAC,MAAM,oBAAoB,CAAA;AAkCvC,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,QAAgB;IACpD,IAAI,GAAG,CAAA;IACP,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IACxC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,KAAK,CAAC,UAAU,QAAQ,aAAa,EAAE,EAAC,KAAK,EAAE,GAAG,EAAC,CAAC,CAAA;IAC5D,CAAC;IAED,OAAO,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;AAC7B,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,KAAK,CAAC,QAAgB,EAAE,GAAW;IACjD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IACtC,IAAI,IAAsB,CAAA;IAC1B,IAAI,CAAC;QACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACxB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,KAAK,CAAC,UAAU,QAAQ,aAAa,EAAE,EAAC,KAAK,EAAE,GAAG,EAAC,CAAC,CAAA;IAC5D,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO;QAC1D,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC;QAC3E,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;QACxE,GAAG,EAAE;YACH,GAAG,EAAE,IAAI,CAAC,OAAO,CACf,OAAO,EACP,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAC7D;YACD,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YAC1C,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI;SACpB;QACD,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI;YACjC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;YACjD,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;SACtD;QACD,IAAI,EAAE;YACJ,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU;gBAC/B,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;gBACpC,CAAC,CAAC,SAAS;YACb,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,IAAI,SAAS;YACpC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK;gBACrB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;gBAC5B,CAAC,CAAC,EAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAC;YAC9B,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,IAAI,CAAC;YAClC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,KAAK;YAC9B,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,IAAI,CAAC;SACjC;QAED,OAAO;QACP,QAAQ;KACT,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"config-file.js","sourceRoot":"","sources":["../../../tools/types/config-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,kBAAkB,CAAA;AACzC,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,MAAM,MAAM,kCAAkC,CAAC,OAAM,IAAI,EAAE,MAAM,EAAC,CAAA;AA8BzE,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,QAAgB;IAEhB,IAAI,GAAG,CAAA;IACP,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IACxC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,KAAK,CAAC,UAAU,QAAQ,aAAa,EAAE,EAAC,KAAK,EAAE,GAAG,EAAC,CAAC,CAAA;IAC5D,CAAC;IAED,OAAO,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;AAC7B,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,KAAK,CAAC,QAAgB,EAAE,GAAW;IACjD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IACtC,IAAI,IAA0B,CAAA;IAC9B,IAAI,CAAC;QACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACxB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,KAAK,CAAC,UAAU,QAAQ,aAAa,EAAE,EAAC,KAAK,EAAE,GAAG,EAAC,CAAC,CAAA;IAC5D,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO;QAC1D,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC;QAC3E,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;QACxE,GAAG,EAAE;YACH,GAAG,EAAE,IAAI,CAAC,OAAO,CACf,OAAO,EACP,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAC7D;YACD,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YAC1C,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI;YACnB,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;SACrD;QACD,KAAK,EAAE;YACL,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;YAC1C,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;SAC/C;QACD,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,SAAS;QAC9B,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,KAAK;QAExB,OAAO;QACP,QAAQ;KACT,CAAA;AACH,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import type * as V from '../../src/index.ts';
2
2
  import { Argv } from '../utils/argv.ts';
3
- import { type AtlasConfig, type ConfigFile } from './config-file.ts';
3
+ import { type AtlasConfig, type VoidConfigFile } from './config-file.ts';
4
4
  import type { PackageJSON } from './package-json.ts';
5
5
  export type Config = {
6
6
  $schema: string;
@@ -10,9 +10,11 @@ export type Config = {
10
10
  dir: string;
11
11
  game: string;
12
12
  filename: string;
13
+ tagSchema: string;
13
14
  };
14
- preloadAtlas: AtlasConfig | undefined;
15
- init: V.InitConfig;
15
+ atlas: AtlasConfig;
16
+ input: V.InputMode;
17
+ mode: V.RenderMode;
16
18
  /** config directory name. */
17
19
  dirname: string;
18
20
  /** config filename. */
@@ -32,7 +34,7 @@ export type TSConfig = {
32
34
  };
33
35
  export declare function readConfig(args: readonly string[]): Promise<Config>;
34
36
  /** @internal */
35
- export declare function Config(argv: Readonly<Argv>, configFile: Readonly<ConfigFile>, hash: string, packageJSON: Readonly<PackageJSON>, tsconfigFilename: string, tsconfig: Readonly<TSConfig>): Config;
37
+ export declare function Config(argv: Readonly<Argv>, configFile: Readonly<VoidConfigFile>, hash: string, packageJSON: Readonly<PackageJSON>, tsconfigFilename: string, tsconfig: Readonly<TSConfig>): Config;
36
38
  /** @internal */
37
39
  export declare function parseTSConfig(jsonc: string, filename: string): TSConfig;
38
40
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../tools/types/config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,CAAC,MAAM,oBAAoB,CAAA;AAC5C,OAAO,EAAC,IAAI,EAAC,MAAM,kBAAkB,CAAA;AAErC,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,UAAU,EAEhB,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,mBAAmB,CAAA;AAElD,MAAM,MAAM,MAAM,GAAG;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;IACxB,GAAG,EAAE;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAC,CAAA;IAClD,YAAY,EAAE,WAAW,GAAG,SAAS,CAAA;IACrC,IAAI,EAAE,CAAC,CAAC,UAAU,CAAA;IAElB,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAA;IACf,uBAAuB;IACvB,QAAQ,EAAE,MAAM,CAAA;IAChB,gBAAgB,EAAE,MAAM,CAAA;IAExB,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,MAAM,EAAE,OAAO,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,OAAO,CAAA;IAEd,MAAM,EAAE,CAAC,CAAC,MAAM,CAAA;IAEhB,IAAI,EAAE,IAAI,CAAA;CACX,CAAA;AAED,MAAM,MAAM,QAAQ,GAAG;IAAC,eAAe,CAAC,EAAE;QAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;KAAC,CAAA;CAAC,CAAA;AAExE,wBAAsB,UAAU,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAmBzE;AAED,gBAAgB;AAChB,wBAAgB,MAAM,CACpB,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,EACpB,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,EAChC,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,QAAQ,CAAC,WAAW,CAAC,EAClC,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAC3B,MAAM,CAuCR;AAYD,gBAAgB;AAChB,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAavE"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../tools/types/config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,CAAC,MAAM,oBAAoB,CAAA;AAC5C,OAAO,EAAC,IAAI,EAAC,MAAM,kBAAkB,CAAA;AAErC,OAAO,EACL,KAAK,WAAW,EAEhB,KAAK,cAAc,EACpB,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,mBAAmB,CAAA;AAElD,MAAM,MAAM,MAAM,GAAG;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;IACxB,GAAG,EAAE;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAC,CAAA;IACrE,KAAK,EAAE,WAAW,CAAA;IAClB,KAAK,EAAE,CAAC,CAAC,SAAS,CAAA;IAClB,IAAI,EAAE,CAAC,CAAC,UAAU,CAAA;IAElB,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAA;IACf,uBAAuB;IACvB,QAAQ,EAAE,MAAM,CAAA;IAChB,gBAAgB,EAAE,MAAM,CAAA;IAExB,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,MAAM,EAAE,OAAO,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,OAAO,CAAA;IAEd,MAAM,EAAE,CAAC,CAAC,MAAM,CAAA;IAEhB,IAAI,EAAE,IAAI,CAAA;CACX,CAAA;AAED,MAAM,MAAM,QAAQ,GAAG;IAAC,eAAe,CAAC,EAAE;QAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;KAAC,CAAA;CAAC,CAAA;AAExE,wBAAsB,UAAU,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAmBzE;AAED,gBAAgB;AAChB,wBAAgB,MAAM,CACpB,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,EACpB,UAAU,EAAE,QAAQ,CAAC,cAAc,CAAC,EACpC,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,QAAQ,CAAC,WAAW,CAAC,EAClC,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAC3B,MAAM,CAyCR;AAYD,gBAAgB;AAChB,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAavE"}
@@ -37,10 +37,12 @@ export function Config(argv, configFile, hash, packageJSON, tsconfigFilename, ts
37
37
  out: {
38
38
  dir: configFile.out.dir,
39
39
  game: configFile.out.game,
40
- filename: `${fileStem}${fileSuffix}`
40
+ filename: `${fileStem}${fileSuffix}`,
41
+ tagSchema: configFile.out.tagSchema
41
42
  },
42
- preloadAtlas: configFile.preloadAtlas,
43
- init: configFile.init,
43
+ atlas: configFile.atlas,
44
+ input: configFile.input,
45
+ mode: configFile.mode,
44
46
  dirname: configFile.dirname,
45
47
  filename: configFile.filename,
46
48
  tsconfigFilename,
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../tools/types/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../tools/types/config.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -12,7 +12,7 @@
12
12
  },
13
13
  "description": "basic 2D game library.",
14
14
  "devDependencies": {
15
- "@oidoid/config": "0.0.3",
15
+ "@oidoid/config": "0.0.5",
16
16
  "@types/jsdom": "27.0.0",
17
17
  "@types/node": "24.4.0",
18
18
  "typescript": "5.9.3"
@@ -30,7 +30,8 @@
30
30
  "dist/",
31
31
  "!dist/meta.json",
32
32
  "!dist/public/**/*.png",
33
- "!**/tsconfig.tsbuildinfo"
33
+ "!**/tsconfig.tsbuildinfo",
34
+ "schema/"
34
35
  ],
35
36
  "homepage": "https://github.com/oidoid/void",
36
37
  "keywords": [
@@ -42,7 +43,7 @@
42
43
  "publishConfig": {
43
44
  "access": "public"
44
45
  },
45
- "published": "20260103",
46
+ "published": "20260105",
46
47
  "repository": {
47
48
  "type": "git",
48
49
  "url": "git+https://github.com/oidoid/void.git"
@@ -60,5 +61,5 @@
60
61
  "version": "npm pkg set published=$(date +%Y%m%d) && npm run clean && npm test"
61
62
  },
62
63
  "type": "module",
63
- "version": "0.1.4"
64
+ "version": "0.1.6"
64
65
  }
package/readme.md CHANGED
@@ -32,12 +32,13 @@ npm install --save @oidoid/void
32
32
  ```
33
33
 
34
34
  it's possible to use `"paths": {"@oidoid/void": ["../void/src"]}` instead of or in addition to `customConditions`.
35
- 4. for unit tests, run with `NODE_OPTIONS=--conditions=development`.
35
+ 4. for unit tests, run with `NODE_OPTIONS=--conditions=dev`.
36
36
 
37
37
  ### Declaration Merging
38
38
 
39
39
  to avoid threading template parameters throughout all code, declaration merging is used for the following:
40
40
 
41
+ - `AtlasMap`
41
42
  - `CamSchema`
42
43
  - `CamUpdater`
43
44
  - `Debug`
@@ -45,6 +46,7 @@ to avoid threading template parameters throughout all code, declaration merging
45
46
  - `DrawSchema`
46
47
  - `Ent`
47
48
  - `EntSchema`
49
+ - `LevelZoo`
48
50
  - `Loader`
49
51
  - `PoolMap`
50
52
  - `ReturnTag`
@@ -0,0 +1,83 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://oidoid.github.io/void/config-file.v0.json",
4
+ "title": "void Config File Schema",
5
+ "type": "object",
6
+ "description": "a JSON representation of a void config file.",
7
+ "$defs": {
8
+ "Atlas": {
9
+ "type": "object",
10
+ "description": "sprite sheet config.",
11
+ "required": ["dir", "image"],
12
+ "properties": {
13
+ "dir": {
14
+ "type": "string",
15
+ "description": "Aseprite asset root directory. all `**.aseprite` files are input.",
16
+ "examples": ["src/assets/atlas/", "./"]
17
+ },
18
+ "image": {
19
+ "type": "string",
20
+ "description": "sprite sheet image output.",
21
+ "examples": ["dist/public/atlas.webp", "atlas.png"]
22
+ }
23
+ }
24
+ }
25
+ },
26
+ "required": ["atlas", "out"],
27
+ "unevaluatedProperties": false,
28
+ "properties": {
29
+ "$schema": {
30
+ "type": "string",
31
+ "description": "the configuration schema URI.",
32
+ "default": "https://oidoid.github.io/void/config-file.v0.json"
33
+ },
34
+ "entry": {
35
+ "type": "string",
36
+ "description": "HTML entrypoint input. the file should include a script tag sourcing the TypeScript / JavaScript entrypoint.",
37
+ "default": "src/assets/index.html"
38
+ },
39
+ "meta": {
40
+ "type": "string",
41
+ "description": "esbuild bundle metadata file output.",
42
+ "default": "dist/meta.json"
43
+ },
44
+ "out": {
45
+ "type": "object",
46
+ "description": "output config.",
47
+ "required": ["game", "tagSchema"],
48
+ "unevaluatedProperties": false,
49
+ "properties": {
50
+ "dir": {
51
+ "type": "string",
52
+ "description": "HTML and JavaScript output directory.",
53
+ "default": "dist/public/"
54
+ },
55
+ "game": {
56
+ "type": "string",
57
+ "description": "game config output.",
58
+ "examples": ["src/assets/void.game.json", "void.game.json"]
59
+ },
60
+ "name": {
61
+ "type": "string",
62
+ "description": "HTML output file stem when watch is disabled. defaults to entry.",
63
+ "examples": ["index", "super-patience"]
64
+ },
65
+ "tagSchema": {
66
+ "type": "string",
67
+ "description": "tag schema.",
68
+ "examples": ["src/level/tags.json"]
69
+ }
70
+ }
71
+ },
72
+ "atlas": {"$ref": "#/$defs/Atlas", "unevaluatedProperties": false},
73
+ "input": {
74
+ "description": "button mapping. defaults to init all default buttons, custom to leave all unmapped.",
75
+ "enum": ["Default", "Unmapped"],
76
+ "$comment": "to-do: support custom mapping here."
77
+ },
78
+ "mode": {
79
+ "description": "use fractional or integral rendering.",
80
+ "enum": ["Int", "Float"]
81
+ }
82
+ }
83
+ }