@debuffjp/core 0.9.4 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -13,5 +13,5 @@ export type { Scene } from "./scene.js";
13
13
  export type { SplashOptions } from "./splash.js";
14
14
  export { type AnimationClip, type Origin, originOffset, Sprite, type SpriteOptions, sliceGrid } from "./sprite.js";
15
15
  export { FrameStats } from "./stats.js";
16
- export { Storage } from "./storage.js";
16
+ export { Storage, type StorageOptions } from "./storage.js";
17
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,UAAU,EACV,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACd,KAAK,QAAQ,EACb,KAAK,KAAK,EACV,IAAI,EACJ,KAAK,KAAK,EACV,KAAK,KAAK,EACV,KAAK,MAAM,EACX,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,MAAM,GACP,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,KAAK,WAAW,EAAE,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AACnE,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAE,KAAK,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAC1G,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,cAAc,WAAW,CAAC;AAC1B,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,UAAU,EACV,aAAa,EACb,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,WAAW,GACjB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,YAAY,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACnH,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,UAAU,EACV,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACd,KAAK,QAAQ,EACb,KAAK,KAAK,EACV,IAAI,EACJ,KAAK,KAAK,EACV,KAAK,KAAK,EACV,KAAK,MAAM,EACX,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,MAAM,GACP,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,KAAK,WAAW,EAAE,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AACnE,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAE,KAAK,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAC1G,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,cAAc,WAAW,CAAC;AAC1B,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,UAAU,EACV,aAAa,EACb,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,WAAW,GACjB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,YAAY,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACnH,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,OAAO,EACL,UAAU,EAKV,IAAI,EAQJ,MAAM,GACP,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,MAAM,EAAsB,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,UAAU,EAA0B,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,IAAI,EAAoC,MAAM,WAAW,CAAC;AACnE,OAAO,EAAuD,KAAK,EAAoB,MAAM,YAAY,CAAC;AAC1G,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,cAAc,WAAW,CAAC;AAC1B,OAAO,EAKL,UAAU,EACV,aAAa,GAKd,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAGrD,OAAO,EAAmC,YAAY,EAAE,MAAM,EAAsB,SAAS,EAAE,MAAM,aAAa,CAAC;AACnH,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,OAAO,EACL,UAAU,EAKV,IAAI,EAQJ,MAAM,GACP,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,MAAM,EAAsB,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,UAAU,EAA0B,MAAM,YAAY,CAAC;AAChE,OAAO,EAAE,IAAI,EAAoC,MAAM,WAAW,CAAC;AACnE,OAAO,EAAuD,KAAK,EAAoB,MAAM,YAAY,CAAC;AAC1G,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,cAAc,WAAW,CAAC;AAC1B,OAAO,EAKL,UAAU,EACV,aAAa,GAKd,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAGrD,OAAO,EAAmC,YAAY,EAAE,MAAM,EAAsB,SAAS,EAAE,MAAM,aAAa,CAAC;AACnH,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,OAAO,EAAuB,MAAM,cAAc,CAAC"}
package/dist/storage.d.ts CHANGED
@@ -1,15 +1,25 @@
1
- /** localStorage wrapper that never throws: private mode, blocked storage and
2
- * corrupt JSON fall back to defaults so the game still runs. */
1
+ export interface StorageOptions<T> {
2
+ /**
3
+ * Version of this save's shape, stored next to it. Bump it when you change the shape, and give `migrate`.
4
+ * Saves from before you set a version count as version 0.
5
+ */
6
+ version?: number;
7
+ /** Turns a save written by an older `version` into the current shape. Runs once, when that save loads. */
8
+ migrate?: (old: Record<string, unknown>, from: number) => Partial<T>;
9
+ }
10
+ /**
11
+ * localStorage wrapper that never throws: private mode, blocked storage and corrupt JSON fall back to defaults
12
+ * so the game still runs. Saves from older versions of the game load safely (see `fit` and `StorageOptions`).
13
+ */
3
14
  export declare class Storage<T extends object> {
4
15
  readonly key: string;
5
16
  private readonly defaults;
6
17
  private value;
7
- constructor(key: string, defaults: T);
18
+ constructor(key: string, defaults: T, { version, migrate }?: StorageOptions<T>);
8
19
  get data(): Readonly<T>;
9
20
  get<K extends keyof T>(key: K): T[K];
10
21
  set<K extends keyof T>(key: K, v: T[K]): void;
11
22
  reset(): void;
12
- private read;
13
23
  private write;
14
24
  }
15
25
  //# sourceMappingURL=storage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAAA;iEACiE;AACjE,qBAAa,OAAO,CAAC,CAAC,SAAS,MAAM;IAIjC,QAAQ,CAAC,GAAG,EAAE,MAAM;IACpB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAJ3B,OAAO,CAAC,KAAK,CAAI;IAEjB,YACW,GAAG,EAAE,MAAM,EACH,QAAQ,EAAE,CAAC,EAG7B;IAED,IAAI,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,CAEtB;IAED,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAEnC;IAED,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAG5C;IAED,KAAK,IAAI,IAAI,CAGZ;IAED,OAAO,CAAC,IAAI;IAUZ,OAAO,CAAC,KAAK;CAOd"}
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0GAA0G;IAC1G,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;CACtE;AAkCD;;;GAGG;AACH,qBAAa,OAAO,CAAC,CAAC,SAAS,MAAM;IAIjC,QAAQ,CAAC,GAAG,EAAE,MAAM;IACpB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAJ3B,OAAO,CAAC,KAAK,CAAI;IAEjB,YACW,GAAG,EAAE,MAAM,EACH,QAAQ,EAAE,CAAC,EAC5B,EAAE,OAAW,EAAE,OAAO,EAAE,GAAE,cAAc,CAAC,CAAC,CAAM,EAuBjD;IAED,IAAI,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,CAEtB;IAED,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAEnC;IAED,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAG5C;IAED,KAAK,IAAI,IAAI,CAGZ;IAED,OAAO,CAAC,KAAK;CAGd"}
package/dist/storage.js CHANGED
@@ -1,13 +1,72 @@
1
- /** localStorage wrapper that never throws: private mode, blocked storage and
2
- * corrupt JSON fall back to defaults so the game still runs. */
1
+ /** JSON kind of a value: arrays and null apart from objects. */
2
+ const kind = (v) => (v === null ? "null" : Array.isArray(v) ? "array" : typeof v);
3
+ /**
4
+ * Saved fields whose kind matches the default's, over the defaults. A field that changed kind between game
5
+ * versions (a number that became an object) falls back to its default instead of breaking the game; `dropped`
6
+ * is called when that happens. Plain objects are checked one level down. Saved fields the defaults don't have
7
+ * are kept.
8
+ */
9
+ function fit(defaults, saved, dropped, deep = true) {
10
+ const out = { ...saved, ...defaults };
11
+ for (const k in defaults) {
12
+ if (!(k in saved))
13
+ continue;
14
+ const d = defaults[k];
15
+ const v = saved[k];
16
+ if (kind(v) !== kind(d))
17
+ dropped();
18
+ else
19
+ out[k] = deep && kind(d) === "object" ? fit(d, v, dropped, false) : v;
20
+ }
21
+ return out;
22
+ }
23
+ /** localStorage get (one argument) or set (two), never throwing: private mode and full storage just do nothing. */
24
+ function local(key, value) {
25
+ try {
26
+ if (value === undefined)
27
+ return globalThis.localStorage?.getItem(key) ?? null;
28
+ globalThis.localStorage?.setItem(key, value);
29
+ }
30
+ catch { }
31
+ return null;
32
+ }
33
+ /**
34
+ * localStorage wrapper that never throws: private mode, blocked storage and corrupt JSON fall back to defaults
35
+ * so the game still runs. Saves from older versions of the game load safely (see `fit` and `StorageOptions`).
36
+ */
3
37
  export class Storage {
4
38
  key;
5
39
  defaults;
6
40
  value;
7
- constructor(key, defaults) {
41
+ constructor(key, defaults, { version = 0, migrate } = {}) {
8
42
  this.key = key;
9
43
  this.defaults = defaults;
10
- this.value = { ...defaults, ...this.read() };
44
+ const raw = local(key);
45
+ let saved = {};
46
+ try {
47
+ const parsed = JSON.parse(raw ?? "{}");
48
+ if (kind(parsed) === "object")
49
+ saved = parsed;
50
+ }
51
+ catch { }
52
+ const from = Number(local(`${key}:v`)) || 0;
53
+ let changed = false;
54
+ if (raw && migrate && from < version) {
55
+ try {
56
+ saved = migrate(saved, from);
57
+ changed = true;
58
+ }
59
+ catch { }
60
+ }
61
+ this.value = fit(defaults, saved, () => (changed = true));
62
+ if (raw && changed) {
63
+ // Keep the save as it was before the first field was dropped or it was migrated, so nothing is lost.
64
+ if (local(`${key}:backup`) === null)
65
+ local(`${key}:backup`, raw);
66
+ this.write();
67
+ }
68
+ if (version && from !== version)
69
+ local(`${key}:v`, String(version));
11
70
  }
12
71
  get data() {
13
72
  return this.value;
@@ -23,23 +82,8 @@ export class Storage {
23
82
  this.value = { ...this.defaults };
24
83
  this.write();
25
84
  }
26
- read() {
27
- try {
28
- const raw = globalThis.localStorage?.getItem(this.key);
29
- const parsed = raw ? JSON.parse(raw) : {};
30
- return parsed && typeof parsed === "object" ? parsed : {};
31
- }
32
- catch {
33
- return {};
34
- }
35
- }
36
85
  write() {
37
- try {
38
- globalThis.localStorage?.setItem(this.key, JSON.stringify(this.value));
39
- }
40
- catch {
41
- // Storage unavailable or full; keep in-memory value.
42
- }
86
+ local(this.key, JSON.stringify(this.value));
43
87
  }
44
88
  }
45
89
  //# sourceMappingURL=storage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAAA;iEACiE;AACjE,MAAM,OAAO,OAAO;IAIP,GAAG;IACK,QAAQ;IAJnB,KAAK,CAAI;IAEjB,YACW,GAAW,EACH,QAAW;mBADnB,GAAG;wBACK,QAAQ;QAEzB,IAAI,CAAC,KAAK,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;IAC/C,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,GAAG,CAAoB,GAAM;QAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,GAAG,CAAoB,GAAM,EAAE,CAAO;QACpC,IAAI,CAAC,KAAK,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;QACzC,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClC,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAEO,IAAI;QACV,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,UAAU,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACvD,MAAM,MAAM,GAAY,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACnD,OAAO,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAE,MAAqB,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAEO,KAAK;QACX,IAAI,CAAC;YACH,UAAU,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACzE,CAAC;QAAC,MAAM,CAAC;YACP,qDAAqD;QACvD,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@debuffjp/core",
3
- "version": "0.9.4",
3
+ "version": "0.11.0",
4
4
  "description": "Game loop, fixed-step clock, scenes, camera, sprites and typed creative parameters for debuff",
5
5
  "keywords": [
6
6
  "game",
@@ -46,6 +46,6 @@
46
46
  "access": "public"
47
47
  },
48
48
  "dependencies": {
49
- "spryte": "0.2.0"
49
+ "spryte": "0.2.3"
50
50
  }
51
51
  }