@oidoid/void 0.1.0-6 → 0.1.0-7

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 (111) hide show
  1. package/dist/meta.json +1 -1
  2. package/dist/package.json +5 -5
  3. package/dist/public/favicon/favicon16.png +0 -0
  4. package/dist/public/favicon/favicon16.webp +0 -0
  5. package/dist/public/favicon/favicon192.png +0 -0
  6. package/dist/public/favicon/favicon192.webp +0 -0
  7. package/dist/public/favicon/favicon32.png +0 -0
  8. package/dist/public/favicon/favicon32.webp +0 -0
  9. package/dist/public/favicon/favicon48.png +0 -0
  10. package/dist/public/favicon/favicon48.webp +0 -0
  11. package/dist/public/favicon/favicon64.png +0 -0
  12. package/dist/public/favicon/favicon64.webp +0 -0
  13. package/dist/public/index.js +12 -3758
  14. package/dist/public/index.js.map +4 -4
  15. package/dist/public/preload-atlas.png +0 -0
  16. package/dist/public/preload-atlas.webp +0 -0
  17. package/dist/public/void-v0.1.0-6+20251020.7cdf98d.html +111 -0
  18. package/dist/public/void-v0.1.0-6+20251020.e4e9eef.html +111 -0
  19. package/dist/public/void-v0.1.0-7+20251021.7cdf98d.html +111 -0
  20. package/dist/schema/config-file.v0.json +1 -1
  21. package/dist/src/demo/assets/manifest.json +10 -15
  22. package/dist/src/demo/ents/clock-ent.d.ts +2 -1
  23. package/dist/src/demo/ents/clock-ent.js.map +1 -1
  24. package/dist/src/demo/ents/render-toggle-ent.d.ts +3 -1
  25. package/dist/src/demo/ents/render-toggle-ent.js +3 -0
  26. package/dist/src/demo/ents/render-toggle-ent.js.map +1 -1
  27. package/dist/src/demo/ents/work-counter-ent.d.ts +2 -2
  28. package/dist/src/demo/ents/work-counter-ent.js +1 -5
  29. package/dist/src/demo/ents/work-counter-ent.js.map +1 -1
  30. package/dist/src/demo/game.d.ts +1 -2
  31. package/dist/src/demo/game.js +14 -34
  32. package/dist/src/demo/game.js.map +1 -1
  33. package/dist/src/demo/void.json +1 -1
  34. package/dist/src/ents/button-ent.d.ts +2 -1
  35. package/dist/src/ents/button-ent.js +7 -3
  36. package/dist/src/ents/button-ent.js.map +1 -1
  37. package/dist/src/ents/cursor-ent.d.ts +2 -2
  38. package/dist/src/ents/cursor-ent.js +7 -2
  39. package/dist/src/ents/cursor-ent.js.map +1 -1
  40. package/dist/src/ents/ent.d.ts +3 -3
  41. package/dist/src/ents/follow-cam-ent.d.ts +1 -1
  42. package/dist/src/ents/nine-patch-ent.d.ts +1 -1
  43. package/dist/src/ents/text-ent.d.ts +1 -1
  44. package/dist/src/ents/zoo.d.ts +4 -3
  45. package/dist/src/ents/zoo.js +11 -4
  46. package/dist/src/ents/zoo.js.map +1 -1
  47. package/dist/src/graphics/cam.js +10 -1
  48. package/dist/src/graphics/cam.js.map +1 -1
  49. package/dist/src/graphics/renderer.d.ts +18 -4
  50. package/dist/src/graphics/renderer.js +20 -8
  51. package/dist/src/graphics/renderer.js.map +1 -1
  52. package/dist/src/graphics/sprite.d.ts +1 -1
  53. package/dist/src/graphics/sprite.js +4 -4
  54. package/dist/src/graphics/sprite.js.map +1 -1
  55. package/dist/src/index.js +1 -1
  56. package/dist/src/index.js.map +1 -1
  57. package/dist/src/looper.d.ts +5 -3
  58. package/dist/src/looper.js +7 -4
  59. package/dist/src/looper.js.map +1 -1
  60. package/dist/src/types/void-version.d.ts +0 -2
  61. package/dist/src/types/void-version.js.map +1 -1
  62. package/dist/src/utils/canvas-util.js +2 -2
  63. package/dist/src/utils/canvas-util.js.map +1 -1
  64. package/dist/src/utils/debug.d.ts +4 -2
  65. package/dist/src/utils/debug.js +4 -3
  66. package/dist/src/utils/debug.js.map +1 -1
  67. package/dist/src/utils/delay-interval.d.ts +7 -0
  68. package/dist/src/utils/delay-interval.js +29 -0
  69. package/dist/src/utils/delay-interval.js.map +1 -0
  70. package/dist/src/utils/dom-util.d.ts +2 -2
  71. package/dist/src/utils/dom-util.js +15 -15
  72. package/dist/src/utils/dom-util.js.map +1 -1
  73. package/dist/src/void.d.ts +8 -3
  74. package/dist/src/void.js +22 -15
  75. package/dist/src/void.js.map +1 -1
  76. package/dist/tools/atlas-pack/atlas-pack.d.ts +1 -1
  77. package/dist/tools/atlas-pack/atlas-pack.js +10 -5
  78. package/dist/tools/atlas-pack/atlas-pack.js.map +1 -1
  79. package/dist/tools/bundle/bundle.js +4 -4
  80. package/dist/tools/bundle/bundle.js.map +1 -1
  81. package/dist/tools/bundle/html-plugin.js +6 -4
  82. package/dist/tools/bundle/html-plugin.js.map +1 -1
  83. package/dist/tools/tsconfig-base.json +4 -1
  84. package/dist/tools/tsconfig.json +1 -3
  85. package/dist/tools/types/config.d.ts +8 -1
  86. package/dist/tools/types/config.js +17 -8
  87. package/dist/tools/types/config.js.map +1 -1
  88. package/dist/tools/types/package-json.d.ts +4 -0
  89. package/dist/tools/types/package-json.js +2 -0
  90. package/dist/tools/types/package-json.js.map +1 -0
  91. package/dist/tools/void.d.ts +1 -3
  92. package/dist/tools/void.js +8 -7
  93. package/dist/tools/void.js.map +1 -1
  94. package/package.json +5 -5
  95. package/schema/config-file.test.ts +2 -2
  96. package/schema/config-file.v0.json +1 -1
  97. package/tools/atlas-pack/atlas-pack.ts +20 -7
  98. package/tools/bundle/bundle.ts +3 -4
  99. package/tools/bundle/html-plugin.ts +10 -10
  100. package/tools/types/config.ts +29 -7
  101. package/tools/types/package-json.ts +4 -0
  102. package/tools/void.ts +11 -10
  103. package/dist/public/favicon/favicon512.png +0 -0
  104. package/dist/public/index.html +0 -23
  105. package/dist/public/manifest.json +0 -1
  106. package/dist/public/void-v0.1.0-4.html +0 -111
  107. package/dist/public/void-v0.1.0-5.html +0 -111
  108. package/dist/public/void-v0.1.0-6.html +0 -111
  109. package/dist/src/pixel-ratio-observer.d.ts +0 -10
  110. package/dist/src/pixel-ratio-observer.js +0 -26
  111. package/dist/src/pixel-ratio-observer.js.map +0 -1
@@ -56,7 +56,7 @@ export async function downloadScreenshot(canvas, name) {
56
56
  const env_1 = { stack: [], error: void 0, hasError: false };
57
57
  try {
58
58
  const img = __addDisposableResource(env_1, await screenshot(canvas), false);
59
- download(img.uri, `${name}-screenshot-${dateToTimestamp(new Date())}.png`);
59
+ download(img.uri, `${name}-screenshot-${dateToTimestamp(new Date())}.webp`);
60
60
  }
61
61
  catch (e_1) {
62
62
  env_1.error = e_1;
@@ -122,7 +122,7 @@ export function screenshot(canvas) {
122
122
  }
123
123
  else
124
124
  reject(Error('no blob'));
125
- }, 'image/png');
125
+ }, 'image/webp');
126
126
  });
127
127
  }
128
128
  //# sourceMappingURL=canvas-util.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"canvas-util.js","sourceRoot":"","sources":["../../../src/utils/canvas-util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"canvas-util.js","sourceRoot":"","sources":["../../../src/utils/canvas-util.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * proxy for debug CSV query param with case-insensitive keys. when a key
3
- * exists, the value is as specified or `'true'` if no value. void values
3
+ * exists, the value is as specified or `'true'` if no value. most void values
4
4
  * default to `'true'` when the `debug` param is empty or `'void'` is set (eg,
5
5
  * `localhost:1234?debug` or `localhost:1234?debug=void,foo=bar`). all values
6
6
  * default to true when `'all'` is set. extend interface for additional types.
@@ -9,8 +9,10 @@
9
9
  export interface Debug {
10
10
  cam?: string;
11
11
  input?: string;
12
+ /** debug render invalidations. */
13
+ invalid?: string;
12
14
  mem?: string;
13
- render?: string;
15
+ render?: 'always' | string;
14
16
  }
15
17
  export declare const debug: Readonly<Debug> | undefined;
16
18
  /** @internal */
@@ -25,9 +25,10 @@ export function Debug(url) {
25
25
  if (typeof k !== 'string')
26
26
  return target[k];
27
27
  k = k.toLowerCase();
28
- return !csv || 'all' in map || (k in voidKeyset && 'void' in map)
29
- ? target[k] || 'true'
30
- : target[k];
28
+ if (target[k])
29
+ return target[k];
30
+ if (!csv || 'all' in map || (k in voidKeyset && 'void' in map))
31
+ return 'true';
31
32
  }
32
33
  });
33
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"debug.js","sourceRoot":"","sources":["../../../src/utils/debug.ts"],"names":[],"mappings":"AAeA,MAAM,CAAC,MAAM,KAAK,GAAgC,KAAK,CACrD,UAAU,CAAC,QAAQ,EAAE,IAAI,CAC1B,CAAA;AAED,gBAAgB;AAChB,MAAM,UAAU,KAAK,CAAC,GAAuB;IAC3C,IAAI,CAAC,GAAG;QAAE,OAAM;IAChB,MAAM,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAC7C,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,OAAO,CACrC,EAAE,CAAC,CAAC,CAAC,CAAA;IACN,IAAI,GAAG,IAAI,IAAI;QAAE,OAAM;IACvB,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,CAC5B,GAAG;SACA,KAAK,CAAC,GAAG,CAAC,CAAC,kBAAkB;SAC7B,MAAM,CAAC,OAAO,CAAC,CAAC,gBAAgB;SAChC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,mBAAmB;KAChD,CAAA;IAED,MAAM,MAAM,GAA0B,EAAE,CAAA;IACxC,KAAK,MAAM,CAAC,IAAI,GAAG;QAAE,MAAM,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,CAAA;IAE/D,MAAM,UAAU,GAAsC;QACpD,GAAG,EAAE,SAAS;QACd,KAAK,EAAE,SAAS;QAChB,GAAG,EAAE,SAAS;QACd,MAAM,EAAE,SAAS;KAClB,CAAA;IAED,OAAO,IAAI,KAAK,CAAwB,MAAM,EAAE;QAC9C,GAAG,CAAC,MAAM,EAAE,CAAC;YACX,IAAI,OAAO,CAAC,KAAK,QAAQ;gBAAE,OAAO,MAAM,CAAC,CAAsB,CAAC,CAAA;YAChE,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAA;YACnB,OAAO,CAAC,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,CAAC,CAAC,IAAI,UAAU,IAAI,MAAM,IAAI,GAAG,CAAC;gBAC/D,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM;gBACrB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QACf,CAAC;KACF,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"debug.js","sourceRoot":"","sources":["../../../src/utils/debug.ts"],"names":[],"mappings":"AAiBA,MAAM,CAAC,MAAM,KAAK,GAAgC,KAAK,CACrD,UAAU,CAAC,QAAQ,EAAE,IAAI,CAC1B,CAAA;AAED,gBAAgB;AAChB,MAAM,UAAU,KAAK,CAAC,GAAuB;IAC3C,IAAI,CAAC,GAAG;QAAE,OAAM;IAChB,MAAM,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAC7C,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,OAAO,CACrC,EAAE,CAAC,CAAC,CAAC,CAAA;IACN,IAAI,GAAG,IAAI,IAAI;QAAE,OAAM;IACvB,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,CAC5B,GAAG;SACA,KAAK,CAAC,GAAG,CAAC,CAAC,kBAAkB;SAC7B,MAAM,CAAC,OAAO,CAAC,CAAC,gBAAgB;SAChC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,mBAAmB;KAChD,CAAA;IAED,MAAM,MAAM,GAA0B,EAAE,CAAA;IACxC,KAAK,MAAM,CAAC,IAAI,GAAG;QAAE,MAAM,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,CAAA;IAE/D,MAAM,UAAU,GAAuD;QACrE,GAAG,EAAE,SAAS;QACd,KAAK,EAAE,SAAS;QAChB,GAAG,EAAE,SAAS;QACd,MAAM,EAAE,SAAS;KAClB,CAAA;IAED,OAAO,IAAI,KAAK,CAAwB,MAAM,EAAE;QAC9C,GAAG,CAAC,MAAM,EAAE,CAAC;YACX,IAAI,OAAO,CAAC,KAAK,QAAQ;gBAAE,OAAO,MAAM,CAAC,CAAsB,CAAC,CAAA;YAChE,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAA;YACnB,IAAI,MAAM,CAAC,CAAC,CAAC;gBAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAA;YAC/B,IAAI,CAAC,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,CAAC,CAAC,IAAI,UAAU,IAAI,MAAM,IAAI,GAAG,CAAC;gBAC5D,OAAO,MAAM,CAAA;QACjB,CAAC;KACF,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { Millis } from '../types/time.ts';
2
+ export declare class DelayInterval {
3
+ #private;
4
+ constructor(delay: () => Millis, interval: Millis, onInterval: () => void);
5
+ register(op: 'add' | 'remove'): this;
6
+ [Symbol.dispose](): void;
7
+ }
@@ -0,0 +1,29 @@
1
+ export class DelayInterval {
2
+ #delay;
3
+ #interval;
4
+ #intervalID = 0;
5
+ #onInterval;
6
+ #timerID = 0;
7
+ constructor(delay, interval, onInterval) {
8
+ this.#delay = delay;
9
+ this.#interval = interval;
10
+ this.#onInterval = onInterval;
11
+ }
12
+ register(op) {
13
+ if (op === 'add') {
14
+ this.#timerID = setTimeout(() => {
15
+ this.#onInterval();
16
+ this.#intervalID = setInterval(this.#onInterval, this.#interval);
17
+ }, this.#delay());
18
+ }
19
+ else {
20
+ clearTimeout(this.#timerID);
21
+ clearInterval(this.#intervalID);
22
+ }
23
+ return this;
24
+ }
25
+ [Symbol.dispose]() {
26
+ this.register('remove');
27
+ }
28
+ }
29
+ //# sourceMappingURL=delay-interval.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delay-interval.js","sourceRoot":"","sources":["../../../src/utils/delay-interval.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,aAAa;IACxB,MAAM,CAAc;IACpB,SAAS,CAAQ;IACjB,WAAW,GAAW,CAAC,CAAA;IACvB,WAAW,CAAY;IACvB,QAAQ,GAAW,CAAC,CAAA;IAEpB,YAAY,KAAmB,EAAE,QAAgB,EAAE,UAAsB;QACvE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QACnB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAA;QACzB,IAAI,CAAC,WAAW,GAAG,UAAU,CAAA;IAC/B,CAAC;IAED,QAAQ,CAAC,EAAoB;QAC3B,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC;YACjB,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC9B,IAAI,CAAC,WAAW,EAAE,CAAA;gBAClB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;YAClE,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;QACnB,CAAC;aAAM,CAAC;YACN,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YAC3B,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QACjC,CAAC;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAED,CAAC,MAAM,CAAC,OAAO,CAAC;QACd,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IACzB,CAAC;CACF"}
@@ -1,3 +1,3 @@
1
- export declare function initMetaViewport(): void;
2
- export declare function initBody(canvas: Readonly<HTMLCanvasElement>, rgba: number): void;
3
1
  export declare function download(uri: string, filename: string): void;
2
+ export declare function initBody(canvas: Readonly<HTMLCanvasElement>, rgba: number): void;
3
+ export declare function initMetaViewport(): void;
@@ -1,13 +1,10 @@
1
1
  import { rgbaHex } from "./color-util.js";
2
- export function initMetaViewport() {
3
- if (document.querySelector('meta[name="viewport"]'))
4
- return;
5
- const meta = document.createElement('meta');
6
- meta.name = 'viewport';
7
- // don't wait for double-tap scaling on mobile.
8
- meta.content =
9
- 'width=device-width, maximum-scale=1, minimum-scale=1, user-scalable=no';
10
- document.head.appendChild(meta);
2
+ export function download(uri, filename) {
3
+ const a = document.createElement('a');
4
+ a.href = uri;
5
+ a.download = filename;
6
+ a.click();
7
+ a.remove();
11
8
  }
12
9
  export function initBody(canvas, rgba) {
13
10
  if (canvas.parentNode !== document.body)
@@ -19,11 +16,14 @@ export function initBody(canvas, rgba) {
19
16
  document.body.style.overflow = 'hidden';
20
17
  document.body.style.background = rgbaHex(rgba);
21
18
  }
22
- export function download(uri, filename) {
23
- const a = document.createElement('a');
24
- a.href = uri;
25
- a.download = filename;
26
- a.click();
27
- a.remove();
19
+ export function initMetaViewport() {
20
+ if (document.querySelector('meta[name="viewport"]'))
21
+ return;
22
+ const meta = document.createElement('meta');
23
+ meta.name = 'viewport';
24
+ // don't wait for double-tap scaling on mobile.
25
+ meta.content =
26
+ 'width=device-width, maximum-scale=1, minimum-scale=1, user-scalable=no';
27
+ document.head.appendChild(meta);
28
28
  }
29
29
  //# sourceMappingURL=dom-util.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dom-util.js","sourceRoot":"","sources":["../../../src/utils/dom-util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,iBAAiB,CAAA;AAEvC,MAAM,UAAU,gBAAgB;IAC9B,IAAI,QAAQ,CAAC,aAAa,CAAC,uBAAuB,CAAC;QAAE,OAAM;IAC3D,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;IAC3C,IAAI,CAAC,IAAI,GAAG,UAAU,CAAA;IACtB,+CAA+C;IAC/C,IAAI,CAAC,OAAO;QACV,wEAAwE,CAAA;IAC1E,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;AACjC,CAAC;AAED,MAAM,UAAU,QAAQ,CACtB,MAAmC,EACnC,IAAY;IAEZ,IAAI,MAAM,CAAC,UAAU,KAAK,QAAQ,CAAC,IAAI;QAAE,OAAM;IAC/C,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAA;IAChC,wCAAwC;IACxC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAA;IACpC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAA;IACrC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAA;IACvC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AAChD,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,GAAW,EAAE,QAAgB;IACpD,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;IACrC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAA;IACZ,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAA;IACrB,CAAC,CAAC,KAAK,EAAE,CAAA;IACT,CAAC,CAAC,MAAM,EAAE,CAAA;AACZ,CAAC"}
1
+ {"version":3,"file":"dom-util.js","sourceRoot":"","sources":["../../../src/utils/dom-util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,iBAAiB,CAAA;AAEvC,MAAM,UAAU,QAAQ,CAAC,GAAW,EAAE,QAAgB;IACpD,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;IACrC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAA;IACZ,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAA;IACrB,CAAC,CAAC,KAAK,EAAE,CAAA;IACT,CAAC,CAAC,MAAM,EAAE,CAAA;AACZ,CAAC;AAED,MAAM,UAAU,QAAQ,CACtB,MAAmC,EACnC,IAAY;IAEZ,IAAI,MAAM,CAAC,UAAU,KAAK,QAAQ,CAAC,IAAI;QAAE,OAAM;IAC/C,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAA;IAChC,wCAAwC;IACxC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAA;IACpC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAA;IACrC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAA;IACvC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AAChD,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,IAAI,QAAQ,CAAC,aAAa,CAAC,uBAAuB,CAAC;QAAE,OAAM;IAC3D,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;IAC3C,IAAI,CAAC,IAAI,GAAG,UAAU,CAAA;IACtB,+CAA+C;IAC/C,IAAI,CAAC,OAAO;QACV,wEAAwE,CAAA;IAC1E,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;AACjC,CAAC"}
@@ -18,26 +18,31 @@ export type VoidOpts<out Tag extends TagFormat> = {
18
18
  minWH?: WH | undefined;
19
19
  input?: 'Custom' | 'Default' | undefined;
20
20
  mode?: 'Int' | 'Fraction' | undefined;
21
+ poll?: {
22
+ delay?: (() => Millis) | undefined;
23
+ period: Millis;
24
+ } | undefined;
21
25
  sprites?: Partial<Omit<PoolOpts<Sprite<Tag>>, 'alloc' | 'allocBytes'>> | undefined;
22
26
  };
23
27
  export declare class Void<out Tag extends TagFormat, Button extends string = DefaultButton> {
24
28
  #private;
25
29
  readonly cam: Cam;
26
30
  readonly canvas: HTMLCanvasElement;
27
- readonly framer: Looper;
28
31
  readonly input: Input<Button>;
29
32
  readonly preload: Atlas;
30
33
  readonly renderer: Renderer;
31
34
  readonly sprites: Pool<Sprite<Tag>>;
32
35
  readonly zoo: Zoo<Tag>;
36
+ readonly looper: Looper;
33
37
  constructor(opts: Readonly<VoidOpts<Tag>>);
34
- onAllocSprite(pool: Pool<Sprite<TagFormat>>): Sprite<Tag>;
38
+ onAllocSprite(pool: Pool<Sprite<Tag>>): Sprite<Tag>;
35
39
  onEvent(): void;
36
40
  /** update input, update canvas, update cam, update world, then render. */
37
41
  onFrame(millis: Millis): void;
38
42
  onLoop(millis: Millis): void;
43
+ onPoll(): void;
39
44
  onResize(): void;
40
45
  register(op: 'add' | 'remove'): Promise<void>;
41
- requestFrame(): void;
46
+ requestFrame(force?: 'Force' | undefined): void;
42
47
  [Symbol.asyncDispose](): Promise<void>;
43
48
  }
package/dist/src/void.js CHANGED
@@ -6,23 +6,26 @@ import { drawableBytes, Sprite } from "./graphics/sprite.js";
6
6
  import { Input } from "./input/input.js";
7
7
  import { Looper } from "./looper.js";
8
8
  import { Pool } from "./mem/pool.js";
9
- import { PixelRatioObserver } from "./pixel-ratio-observer.js";
10
9
  import { initCanvas } from "./utils/canvas-util.js";
10
+ import { DelayInterval } from "./utils/delay-interval.js";
11
11
  import { initBody, initMetaViewport } from "./utils/dom-util.js";
12
12
  import { loadImage } from "./utils/fetch-util.js";
13
13
  export class Void {
14
14
  cam = new Cam();
15
15
  canvas;
16
- framer = new Looper();
17
16
  input;
18
17
  preload;
19
18
  renderer;
20
19
  sprites;
21
20
  zoo = new Zoo();
22
- #pixelRatioObserver = new PixelRatioObserver();
21
+ looper = new Looper();
22
+ #poll;
23
23
  #preloadAtlasImage;
24
+ // may trigger an initial force update.
24
25
  #resizeObserver = new ResizeObserver(() => this.onResize());
25
26
  constructor(opts) {
27
+ if (opts.poll != null)
28
+ this.#poll = new DelayInterval(opts.poll.delay ?? (() => 0), opts.poll.period, () => this.onPoll());
26
29
  initMetaViewport();
27
30
  this.canvas = initCanvas(opts.canvas, opts.mode ?? 'Int');
28
31
  initBody(this.canvas, opts.backgroundRGBA ?? 0x000000ff);
@@ -34,59 +37,63 @@ export class Void {
34
37
  if (opts.input !== 'Custom')
35
38
  this.input.mapDefault();
36
39
  this.input.onEvent = () => this.onEvent();
37
- this.#pixelRatioObserver.onChange = () => this.onResize();
38
40
  if (opts.preloadAtlas)
39
41
  this.#preloadAtlasImage = opts.preloadAtlas.image;
40
42
  this.preload = opts.preloadAtlas
41
43
  ? parseAtlas(opts.preloadAtlas.json)
42
44
  : { anim: {}, celXYWH: [], tags: [] };
43
- this.renderer = new Renderer(this.preload ?? {}, this.canvas);
45
+ this.renderer = new Renderer(this.preload ?? {}, this.canvas, this.looper);
44
46
  this.sprites = new Pool({
45
47
  alloc: pool => this.onAllocSprite(pool),
46
48
  allocBytes: drawableBytes,
47
49
  minPages: opts.sprites?.minPages ?? 3,
48
50
  pageBlocks: opts.sprites?.pageBlocks ?? 1000
49
51
  });
50
- this.framer.onFrame = millis => this.onFrame(millis);
52
+ this.looper.onFrame = millis => this.onFrame(millis);
51
53
  }
52
54
  onAllocSprite(pool) {
53
- return new Sprite(pool, 0, this.preload, this.framer);
55
+ return new Sprite(pool, 0, this.preload, this.looper);
54
56
  }
55
57
  onEvent() {
56
- this.framer.requestFrame();
58
+ this.requestFrame('Force');
57
59
  }
58
60
  /** update input, update canvas, update cam, update world, then render. */
59
61
  onFrame(millis) {
60
62
  if (document.hidden)
61
63
  return;
62
64
  this.input.update(millis);
65
+ this.requestFrame(); // request frame before in case loop cancels.
63
66
  this.onLoop(millis);
64
67
  this.cam.postupdate();
65
68
  }
66
69
  // biome-ignore lint/correctness/noUnusedFunctionParameters:;
67
70
  onLoop(millis) { }
71
+ onPoll() {
72
+ this.requestFrame('Force');
73
+ }
68
74
  onResize() {
69
- this.framer.requestFrame();
75
+ this.requestFrame('Force'); // force cam reeval.
70
76
  }
71
77
  async register(op) {
72
78
  this.input.register(op);
73
79
  this.renderer.register(op);
74
- this.framer.register(op);
80
+ this.looper.register(op);
75
81
  if (!this.canvas.parentElement)
76
82
  throw Error('no canvas parent');
77
83
  if (op === 'add')
78
84
  this.#resizeObserver.observe(this.canvas.parentElement);
79
85
  else
80
86
  this.#resizeObserver.unobserve(this.canvas.parentElement);
81
- this.#pixelRatioObserver.register(op);
82
- this.framer.requestFrame();
87
+ if (op === 'add')
88
+ this.looper.requestFrame();
89
+ this.#poll?.register(op);
83
90
  if (this.#preloadAtlasImage)
84
91
  await loadImage(this.#preloadAtlasImage);
85
92
  this.renderer.load(this.#preloadAtlasImage);
86
93
  }
87
- requestFrame() {
88
- if (this.renderer.always || this.input.anyOn || this.input.gamepad)
89
- this.framer.requestFrame();
94
+ requestFrame(force) {
95
+ if (force || this.renderer.always || this.input.anyOn || this.input.gamepad)
96
+ this.looper.requestFrame();
90
97
  }
91
98
  async [Symbol.asyncDispose]() {
92
99
  await this.register('remove');
@@ -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,2 +1,2 @@
1
1
  import type { AtlasConfig } from '../../schema/config-file.ts';
2
- export declare function packAtlas(config: Readonly<AtlasConfig>, minify: boolean): Promise<void>;
2
+ export declare function packAtlas(config: Readonly<AtlasConfig>): Promise<void>;
@@ -4,14 +4,19 @@ import { exec } from "../utils/exec.js";
4
4
  import { globAll } from "../utils/file-util.js";
5
5
  import { parseAtlasJSON } from "./atlas-json-parser.js";
6
6
  // to-do: separate executable?
7
- export async function packAtlas(config, minify) {
7
+ export async function packAtlas(config) {
8
8
  const filenames = await globAll(path.join(config.dir, '**.aseprite'));
9
9
  if (!filenames.length)
10
10
  return;
11
- const json = await exec('aseprite', '--batch', '--color-mode=indexed', '--filename-format={title}--{tag}--{frame}', '--list-slices', '--list-tags', '--merge-duplicates', `--sheet=${config.image}`, '--sheet-pack', '--tagname-format={title}--{tag}', ...filenames);
12
- if (minify)
13
- await exec('zopflipng', '-y', config.image, config.image);
11
+ const webp = config.image.endsWith('.webp');
12
+ const sheet = webp ? config.image.replace('.webp', '.png') : config.image;
13
+ 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);
14
+ if (webp)
15
+ await exec('cwebp', '-exact', '-lossless', '-mt', '-quiet', '-z', '9', sheet, '-o', config.image);
14
16
  await fs.writeFile(config.json, JSON.stringify(parseAtlasJSON(JSON.parse(json))));
15
- await exec('biome', 'check', '--fix', config.json);
17
+ try {
18
+ await exec('biome', 'check', '--fix', config.json);
19
+ }
20
+ catch { }
16
21
  }
17
22
  //# sourceMappingURL=atlas-pack.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"atlas-pack.js","sourceRoot":"","sources":["../../../tools/atlas-pack/atlas-pack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAA;AACjC,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,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,EAC7B,MAAe;IAEf,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,IAAI,CACrB,UAAU,EACV,SAAS,EACT,sBAAsB,EACtB,2CAA2C,EAC3C,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,WAAW,MAAM,CAAC,KAAK,EAAE,EACzB,cAAc,EACd,iCAAiC,EACjC,GAAG,SAAS,CACb,CAAA;IAED,IAAI,MAAM;QAAE,MAAM,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;IAErE,MAAM,EAAE,CAAC,SAAS,CAChB,MAAM,CAAC,IAAI,EACX,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CACjD,CAAA;IAED,MAAM,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;AACpD,CAAC"}
1
+ {"version":3,"file":"atlas-pack.js","sourceRoot":"","sources":["../../../tools/atlas-pack/atlas-pack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAA;AACjC,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,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,CAAC,MAA6B;IAC3D,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,MAAM,EAAE,CAAC,SAAS,CAChB,MAAM,CAAC,IAAI,EACX,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CACjD,CAAA;IAED,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;IACpD,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;AACZ,CAAC"}
@@ -26,9 +26,9 @@ export async function bundle(config, srcFilenames, voidVersion) {
26
26
  target: 'es2024' // https://esbuild.github.io/content-types/#tsconfig-json
27
27
  };
28
28
  if (config.preloadAtlas)
29
- await packAtlas(config.preloadAtlas, config.minify);
29
+ await packAtlas(config.preloadAtlas);
30
30
  if (config.preloadAtlas && config.watch) {
31
- fs.watch(config.preloadAtlas.dir, { recursive: true }, (ev, type) => onWatch(config.preloadAtlas, config.minify, ev, type));
31
+ fs.watch(config.preloadAtlas.dir, { recursive: true }, (ev, type) => onWatch(config.preloadAtlas, ev, type));
32
32
  const ctx = await esbuild.context(opts);
33
33
  await Promise.all([
34
34
  ctx.watch(),
@@ -41,8 +41,8 @@ export async function bundle(config, srcFilenames, voidVersion) {
41
41
  await fs.promises.writeFile(config.meta, JSON.stringify(build.metafile));
42
42
  }
43
43
  }
44
- const onWatch = V.debounce(async (config, minify, ev, file) => {
44
+ const onWatch = V.debounce(async (config, ev, file) => {
45
45
  console.log(`asset ${file} ${ev}.`);
46
- await packAtlas(config, minify);
46
+ await packAtlas(config);
47
47
  }, 500);
48
48
  //# sourceMappingURL=bundle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bundle.js","sourceRoot":"","sources":["../../../tools/bundle/bundle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,OAAO,MAAM,SAAS,CAAA;AAE7B,OAAO,KAAK,CAAC,MAAM,oBAAoB,CAAA;AAEvC,OAAO,EAAC,SAAS,EAAC,MAAM,6BAA6B,CAAA;AAErD,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAA;AAE3C,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,MAAwB,EACxB,YAA+B,EAC/B,WAAkC;IAElC,MAAM,IAAI,GAAyB;QACjC,MAAM,EAAE,MAAM,CAAC,KAAK;YAClB,CAAC,CAAC;gBACE,EAAE,EAAE,kFAAkF;aACvF;YACH,CAAC,CAAC,EAAE;QACN,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE;YACN,8DAA8D;YAC9D,wBAAwB,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;SACtD;QACD,WAAW,EAAE,CAAC,GAAG,YAAY,CAAC;QAC9B,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,MAAM,EAAE,yCAAyC;QAC3D,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG;QACtB,OAAO,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC7B,SAAS,EAAE,QAAQ;QACnB,MAAM,EAAE,QAAQ,CAAC,yDAAyD;KAC3E,CAAA;IAED,IAAI,MAAM,CAAC,YAAY;QAAE,MAAM,SAAS,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;IAC5E,IAAI,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACxC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAChE,OAAO,CAAC,MAAM,CAAC,YAAa,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,CACvD,CAAA;QACD,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACvC,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,GAAG,CAAC,KAAK,EAAE;YACX,GAAG,CAAC,KAAK,CAAC,EAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAC,CAAC;SAClD,CAAC,CAAA;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACvC,IAAI,MAAM,CAAC,IAAI;YACb,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAA;IAC5E,CAAC;AACH,CAAC;AAED,MAAM,OAAO,GAAG,CAAC,CAAC,QAAQ,CACxB,KAAK,EACH,MAA6B,EAC7B,MAAe,EACf,EAAqB,EACrB,IAAmB,EACnB,EAAE;IACF,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,IAAI,EAAE,GAAG,CAAC,CAAA;IACnC,MAAM,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AACjC,CAAC,EACD,GAAe,CAChB,CAAA"}
1
+ {"version":3,"file":"bundle.js","sourceRoot":"","sources":["../../../tools/bundle/bundle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,OAAO,MAAM,SAAS,CAAA;AAE7B,OAAO,KAAK,CAAC,MAAM,oBAAoB,CAAA;AAEvC,OAAO,EAAC,SAAS,EAAC,MAAM,6BAA6B,CAAA;AAErD,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAA;AAE3C,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,MAAwB,EACxB,YAA+B,EAC/B,WAAkC;IAElC,MAAM,IAAI,GAAyB;QACjC,MAAM,EAAE,MAAM,CAAC,KAAK;YAClB,CAAC,CAAC;gBACE,EAAE,EAAE,kFAAkF;aACvF;YACH,CAAC,CAAC,EAAE;QACN,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE;YACN,8DAA8D;YAC9D,wBAAwB,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;SACtD;QACD,WAAW,EAAE,CAAC,GAAG,YAAY,CAAC;QAC9B,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,MAAM,EAAE,yCAAyC;QAC3D,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG;QACtB,OAAO,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC7B,SAAS,EAAE,QAAQ;QACnB,MAAM,EAAE,QAAQ,CAAC,yDAAyD;KAC3E,CAAA;IAED,IAAI,MAAM,CAAC,YAAY;QAAE,MAAM,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;IAC7D,IAAI,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACxC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAChE,OAAO,CAAC,MAAM,CAAC,YAAa,EAAE,EAAE,EAAE,IAAI,CAAC,CACxC,CAAA;QACD,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACvC,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,GAAG,CAAC,KAAK,EAAE;YACX,GAAG,CAAC,KAAK,CAAC,EAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAC,CAAC;SAClD,CAAC,CAAA;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACvC,IAAI,MAAM,CAAC,IAAI;YACb,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAA;IAC5E,CAAC;AACH,CAAC;AAED,MAAM,OAAO,GAAG,CAAC,CAAC,QAAQ,CACxB,KAAK,EACH,MAA6B,EAC7B,EAAqB,EACrB,IAAmB,EACnB,EAAE;IACF,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,IAAI,EAAE,GAAG,CAAC,CAAA;IACnC,MAAM,SAAS,CAAC,MAAM,CAAC,CAAA;AACzB,CAAC,EACD,GAAe,CAChB,CAAA"}
@@ -37,8 +37,8 @@ export function HTMLPlugin(config) {
37
37
  if (manifestEl) {
38
38
  const manifestFilename = path.resolve(path.dirname(config.entry), manifestEl.getAttribute('href'));
39
39
  const manifest = JSON.parse(await fs.readFile(manifestFilename, 'utf8'));
40
- if (process.env.npm_package_version)
41
- manifest.version = process.env.npm_package_version;
40
+ if (config.version)
41
+ manifest.version = config.version;
42
42
  for (const icon of manifest.icons ?? []) {
43
43
  if (!icon.src || !icon.type)
44
44
  continue;
@@ -75,9 +75,11 @@ export function HTMLPlugin(config) {
75
75
  removeComments: true,
76
76
  removeEmptyAttributes: true
77
77
  });
78
- // to-do: what biome config does this use outside of the repo?
79
78
  else
80
- html = await exec('biome', 'check', '--fix', `--stdin-file-path=${config.entry}`, { stdin: html });
79
+ try {
80
+ html = await exec('biome', 'check', '--fix', `--stdin-file-path=${config.entry}`, { stdin: html });
81
+ }
82
+ catch { }
81
83
  // to-do: test.
82
84
  const outHTMLFilename = path.join(config.out.dir, config.out.filename);
83
85
  await fs.writeFile(outHTMLFilename, html);
@@ -1 +1 @@
1
- {"version":3,"file":"html-plugin.js","sourceRoot":"","sources":["../../../tools/bundle/html-plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"html-plugin.js","sourceRoot":"","sources":["../../../tools/bundle/html-plugin.ts"],"names":[],"mappings":"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"}
@@ -30,16 +30,19 @@
30
30
  "module": "ESNext",
31
31
  "moduleResolution": "Bundler",
32
32
  "rewriteRelativeImportExtensions": true, // rewrite .ts imports to .js.
33
+ // all subprojects output to dist/ relative the project root.
34
+ "outDir": "../dist",
33
35
  "rootDir": "..",
34
36
  // assume library types are checked and compatible.
35
37
  "skipLibCheck": true,
36
38
  "skipDefaultLibCheck": true,
37
39
  "sourceMap": true,
38
40
  "target": "ES2024",
39
- "outDir": "../dist",
40
41
  // don't transform type-only imports.
41
42
  "verbatimModuleSyntax": true
42
43
  },
44
+ // include all sources and JSON.
43
45
  "include": ["${configDir}/", "${configDir}/**/*.json"],
46
+ // exclude colocated tests and test utils.
44
47
  "exclude": ["${configDir}/**/*.test.*", "${configDir}/**/test/"]
45
48
  }
@@ -1,9 +1,7 @@
1
1
  // TypeScript config for all tools.
2
2
  {
3
3
  "extends": "./tsconfig-base.json",
4
- "compilerOptions": {
5
- "types": ["node"]
6
- },
4
+ "compilerOptions": { "types": ["node"] },
7
5
  "include": [
8
6
  "${configDir}/",
9
7
  "${configDir}/**/*.json",
@@ -1,5 +1,6 @@
1
1
  import type { AtlasConfig, ConfigFile } from '../../schema/config-file.ts';
2
2
  import type { Argv } from '../utils/argv.ts';
3
+ import type { PackageJSON } from './package-json.ts';
3
4
  export type Config = {
4
5
  $schema: string;
5
6
  entry: string;
@@ -16,5 +17,11 @@ export type Config = {
16
17
  minify: boolean;
17
18
  oneFile: boolean;
18
19
  watch: boolean;
20
+ /** package publish date. */
21
+ published: string | undefined;
22
+ /** package version. */
23
+ version: string | undefined;
24
+ /** Git short hash. */
25
+ hash: string;
19
26
  };
20
- export declare function Config(configFile: Readonly<ConfigFile>, argv: Readonly<Argv>, version: string | undefined): Config;
27
+ export declare function Config(configFile: Readonly<ConfigFile>, argv: Readonly<Argv>, packageJSON: Readonly<PackageJSON>, hash: string): Config;
@@ -1,22 +1,31 @@
1
1
  import path from 'node:path';
2
- export function Config(configFile, argv, version) {
3
- let stem = path.basename(configFile.entry).replace(/\.[^.]+$/, '');
2
+ export function Config(configFile, argv, packageJSON, hash) {
3
+ let fileStem = path.basename(configFile.entry).replace(/\.[^.]+$/, '');
4
4
  if (configFile.out.name && !argv.opts['--watch'])
5
- stem = configFile.out.name;
6
- let suffix = '.html';
7
- if (version && !argv.opts['--watch'])
8
- suffix = `-v${version}.html`;
5
+ fileStem = configFile.out.name;
6
+ let fileSuffix = '.html';
7
+ if (!argv.opts['--watch']) {
8
+ const version = packageJSON.version ? `v${packageJSON.version}` : '';
9
+ const published = packageJSON.version && packageJSON.published
10
+ ? `+${packageJSON.published}`
11
+ : '';
12
+ const hashStr = packageJSON.version && hash ? `.${hash}` : '';
13
+ fileSuffix = `-${version}${published}${hashStr}.html`;
14
+ }
9
15
  return {
10
16
  $schema: configFile.$schema,
11
17
  entry: configFile.entry,
12
18
  meta: configFile.meta,
13
- out: { dir: configFile.out.dir, filename: `${stem}${suffix}` },
19
+ out: { dir: configFile.out.dir, filename: `${fileStem}${fileSuffix}` },
14
20
  preloadAtlas: configFile.preloadAtlas,
15
21
  dirname: configFile.dirname,
16
22
  filename: configFile.filename,
17
23
  minify: argv.opts['--minify'] ?? false,
18
24
  oneFile: argv.opts['--one-file'] ?? false,
19
- watch: argv.opts['--watch'] ?? false
25
+ watch: argv.opts['--watch'] ?? false,
26
+ published: packageJSON.published,
27
+ version: packageJSON.version,
28
+ hash
20
29
  };
21
30
  }
22
31
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../tools/types/config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAqB5B,MAAM,UAAU,MAAM,CACpB,UAAgC,EAChC,IAAoB,EACpB,OAA2B;IAE3B,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;IAClE,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;QAAE,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAA;IAC5E,IAAI,MAAM,GAAG,OAAO,CAAA;IACpB,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;QAAE,MAAM,GAAG,KAAK,OAAO,OAAO,CAAA;IAClE,OAAO;QACL,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,KAAK,EAAE,UAAU,CAAC,KAAK;QACvB,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,GAAG,EAAE,EAAC,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,IAAI,GAAG,MAAM,EAAE,EAAC;QAC5D,YAAY,EAAE,UAAU,CAAC,YAAY;QACrC,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,QAAQ,EAAE,UAAU,CAAC,QAAQ;QAC7B,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK;QACtC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,KAAK;QACzC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK;KACrC,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../tools/types/config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AA8B5B,MAAM,UAAU,MAAM,CACpB,UAAgC,EAChC,IAAoB,EACpB,WAAkC,EAClC,IAAY;IAEZ,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;IACtE,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;QAC9C,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAA;IAChC,IAAI,UAAU,GAAG,OAAO,CAAA;IACxB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;QACpE,MAAM,SAAS,GACb,WAAW,CAAC,OAAO,IAAI,WAAW,CAAC,SAAS;YAC1C,CAAC,CAAC,IAAI,WAAW,CAAC,SAAS,EAAE;YAC7B,CAAC,CAAC,EAAE,CAAA;QACR,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;QAC7D,UAAU,GAAG,IAAI,OAAO,GAAG,SAAS,GAAG,OAAO,OAAO,CAAA;IACvD,CAAC;IACD,OAAO;QACL,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,KAAK,EAAE,UAAU,CAAC,KAAK;QACvB,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,GAAG,EAAE,EAAC,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,QAAQ,GAAG,UAAU,EAAE,EAAC;QACpE,YAAY,EAAE,UAAU,CAAC,YAAY;QACrC,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,QAAQ,EAAE,UAAU,CAAC,QAAQ;QAC7B,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK;QACtC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,KAAK;QACzC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK;QACpC,SAAS,EAAE,WAAW,CAAC,SAAS;QAChC,OAAO,EAAE,WAAW,CAAC,OAAO;QAC5B,IAAI;KACL,CAAA;AACH,CAAC"}
@@ -0,0 +1,4 @@
1
+ export type PackageJSON = {
2
+ version?: string | undefined;
3
+ published?: string | undefined;
4
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=package-json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-json.js","sourceRoot":"","sources":["../../../tools/types/package-json.ts"],"names":[],"mappings":""}
@@ -12,6 +12,4 @@ declare module './utils/argv.ts' {
12
12
  '--watch'?: true;
13
13
  }
14
14
  }
15
- export declare function build(args: readonly string[], env: {
16
- readonly [name: string]: string | undefined;
17
- }): Promise<void>;
15
+ export declare function build(args: readonly string[]): Promise<void>;