@johnmorrisdotca/houseki 0.4.1 → 0.4.2

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 (71) hide show
  1. package/CHANGELOG.md +19 -1
  2. package/README.md +77 -95
  3. package/dist/colour-chains/challenge.d.ts +12 -1
  4. package/dist/colour-chains/challenge.js +12 -1
  5. package/dist/colour-chains/content-types.d.ts +112 -0
  6. package/dist/colour-chains/content.d.ts +140 -3
  7. package/dist/colour-chains/content.js +140 -3
  8. package/dist/colour-chains/engine.d.ts +85 -6
  9. package/dist/colour-chains/engine.js +85 -6
  10. package/dist/colour-chains/input.d.ts +97 -7
  11. package/dist/colour-chains/input.js +97 -7
  12. package/dist/colour-chains/persistence.d.ts +36 -3
  13. package/dist/colour-chains/persistence.js +36 -3
  14. package/dist/colour-chains/types.d.ts +291 -17
  15. package/dist/colour-chains/validation.d.ts +12 -1
  16. package/dist/colour-chains/validation.js +12 -1
  17. package/dist/falling-triplets/content-types.d.ts +69 -0
  18. package/dist/falling-triplets/content.d.ts +60 -3
  19. package/dist/falling-triplets/content.js +60 -3
  20. package/dist/falling-triplets/engine.d.ts +122 -10
  21. package/dist/falling-triplets/engine.js +122 -10
  22. package/dist/falling-triplets/input.d.ts +61 -5
  23. package/dist/falling-triplets/input.js +61 -5
  24. package/dist/falling-triplets/match.d.ts +26 -2
  25. package/dist/falling-triplets/match.js +26 -2
  26. package/dist/falling-triplets/random.d.ts +34 -3
  27. package/dist/falling-triplets/random.js +34 -3
  28. package/dist/falling-triplets/types.d.ts +227 -3
  29. package/dist/gem-swap/content.d.ts +116 -0
  30. package/dist/gem-swap/content.js +72 -0
  31. package/dist/gem-swap/engine.d.ts +124 -9
  32. package/dist/gem-swap/engine.js +124 -9
  33. package/dist/gem-swap/persistence.d.ts +60 -4
  34. package/dist/gem-swap/persistence.js +60 -4
  35. package/dist/gem-swap/types.d.ts +336 -3
  36. package/dist/magnetic-blocks/content-types.d.ts +56 -0
  37. package/dist/magnetic-blocks/content.d.ts +91 -5
  38. package/dist/magnetic-blocks/content.js +91 -5
  39. package/dist/magnetic-blocks/engine.d.ts +63 -5
  40. package/dist/magnetic-blocks/engine.js +63 -5
  41. package/dist/magnetic-blocks/persistence.d.ts +36 -3
  42. package/dist/magnetic-blocks/persistence.js +36 -3
  43. package/dist/magnetic-blocks/physics.d.ts +176 -6
  44. package/dist/magnetic-blocks/physics.js +176 -6
  45. package/dist/magnetic-blocks/types.d.ts +185 -1
  46. package/dist/magnetic-blocks/validation.d.ts +12 -0
  47. package/dist/magnetic-blocks/validation.js +12 -0
  48. package/dist/nature/attraction.d.ts +24 -2
  49. package/dist/nature/attraction.js +24 -2
  50. package/dist/nature/environment.d.ts +200 -7
  51. package/dist/nature/environment.js +88 -7
  52. package/dist/nature/marking.d.ts +13 -1
  53. package/dist/nature/marking.js +13 -1
  54. package/dist/nature/rebound.d.ts +30 -2
  55. package/dist/nature/rebound.js +30 -2
  56. package/dist/nature/state.d.ts +11 -0
  57. package/dist/nature/state.js +11 -0
  58. package/dist/nature/types.d.ts +194 -1
  59. package/dist/nature/validation.d.ts +12 -0
  60. package/dist/nature/validation.js +12 -0
  61. package/dist/stone-collapse/content-types.d.ts +69 -0
  62. package/dist/stone-collapse/content.d.ts +60 -3
  63. package/dist/stone-collapse/content.js +60 -3
  64. package/dist/stone-collapse/engine.d.ts +99 -8
  65. package/dist/stone-collapse/engine.js +99 -8
  66. package/dist/stone-collapse/persistence.d.ts +36 -3
  67. package/dist/stone-collapse/persistence.js +36 -3
  68. package/dist/stone-collapse/types.d.ts +220 -3
  69. package/dist/stone-collapse/validation.d.ts +12 -1
  70. package/dist/stone-collapse/validation.js +12 -1
  71. package/package.json +34 -26
@@ -1,5 +1,16 @@
1
1
  import type { BoardShape, CreateOptions, GameMode } from './types.js';
2
- /** Typed public-settings validation error. */
2
+ /** Typed public-settings validation error.
3
+ *
4
+ * @param code - The native stable error code used by callers to distinguish setup or replay failures.
5
+ * @param message - The human-readable diagnostic accompanying the native code.
6
+ * @example
7
+ * ```ts
8
+ * import { StoneCollapseOptionsError } from "@johnmorrisdotca/houseki/stone-collapse";
9
+ *
10
+ * const error=new StoneCollapseOptionsError("docs-example","Invalid example setup");
11
+ * console.log(error.name,error.code,error.message);
12
+ * ```
13
+ */
3
14
  export declare class StoneCollapseOptionsError extends RangeError {
4
15
  readonly code: string;
5
16
  constructor(code: string, message: string);
@@ -1,7 +1,18 @@
1
1
  const PRESETS = {
2
2
  compact: [6, 8], standard: [8, 10], wide: [10, 8], tall: [6, 12], extraWide: [16, 10], deep: [8, 32], large: [12, 32],
3
3
  };
4
- /** Typed public-settings validation error. */
4
+ /** Typed public-settings validation error.
5
+ *
6
+ * @param code - The native stable error code used by callers to distinguish setup or replay failures.
7
+ * @param message - The human-readable diagnostic accompanying the native code.
8
+ * @example
9
+ * ```ts
10
+ * import { StoneCollapseOptionsError } from "@johnmorrisdotca/houseki/stone-collapse";
11
+ *
12
+ * const error=new StoneCollapseOptionsError("docs-example","Invalid example setup");
13
+ * console.log(error.name,error.code,error.message);
14
+ * ```
15
+ */
5
16
  export class StoneCollapseOptionsError extends RangeError {
6
17
  code;
7
18
  constructor(code, message) { super(message); this.name = 'StoneCollapseOptionsError'; this.code = code; }
package/package.json CHANGED
@@ -1,37 +1,39 @@
1
1
  {
2
2
  "name": "@johnmorrisdotca/houseki",
3
- "version": "0.4.1",
4
- "description": "Houseki 宝石: five gem and stone puzzle engines, 684 measured challenges, bilingual lessons, deterministic saves, magnetic floors, Shizen and Arashi campaigns. TypeScript. Zero dependencies.",
3
+ "version": "0.4.2",
4
+ "description": "Houseki 宝石 — Match-3 gem puzzles: five gem and stone puzzle engines, 684 measured challenges, bilingual lessons, deterministic saves, magnetic floors, Shizen and Arashi campaigns. TypeScript. Zero dependencies.",
5
5
  "keywords": [
6
- "puzzle",
7
- "puzzle-game",
8
- "match-three",
9
- "match-3",
10
- "falling-triplets",
6
+ "accessible",
7
+ "arashi",
8
+ "browser",
9
+ "campaign",
10
+ "cascade",
11
11
  "colour-chains",
12
- "stone-collapse",
12
+ "deterministic",
13
+ "falling-triplets",
14
+ "game-engine",
15
+ "gem-puzzle",
13
16
  "gem-swap",
14
- "magnetic-blocks",
15
17
  "gravity",
16
- "cascade",
17
- "game-engine",
18
- "levels",
19
18
  "immutable",
20
- "deterministic",
21
- "seeded-random",
22
- "accessible",
23
- "touch",
24
- "keyboard",
19
+ "itsutsu",
25
20
  "japanese",
26
- "typescript",
27
21
  "javascript",
28
- "zero-dependencies",
29
- "browser",
22
+ "keyboard",
23
+ "levels",
24
+ "magnetic-blocks",
25
+ "match-3",
26
+ "match-three",
30
27
  "node",
31
- "itsutsu",
28
+ "puzzle",
29
+ "puzzle-game",
30
+ "seeded-random",
32
31
  "shizen",
33
- "arashi",
34
- "campaign"
32
+ "stone-collapse",
33
+ "swap-game",
34
+ "touch",
35
+ "typescript",
36
+ "zero-dependencies"
35
37
  ],
36
38
  "homepage": "https://johnmorrisdotca.github.io/houseki/",
37
39
  "repository": {
@@ -108,10 +110,13 @@
108
110
  "check": "pnpm lint && pnpm typecheck && pnpm test",
109
111
  "prepublishOnly": "pnpm check && pnpm build",
110
112
  "site": "pnpm build && node scripts/site.mjs",
111
- "test:demo": "pnpm site && playwright test && node --test --test-concurrency=2 e2e/review/appearance-api.test.mjs e2e/review/boards-settings-and-keys.test.mjs e2e/review/endings.test.mjs e2e/review/full-board-recovery.test.mjs e2e/review/nature-previews.test.mjs e2e/review/responsive.test.mjs",
113
+ "test:demo": "pnpm site && node scripts/docs-site.mjs build && playwright test && node --test --test-concurrency=2 e2e/review/appearance-api.test.mjs e2e/review/boards-settings-and-keys.test.mjs e2e/review/endings.test.mjs e2e/review/full-board-recovery.test.mjs e2e/review/nature-previews.test.mjs e2e/review/responsive.test.mjs",
112
114
  "screenshots:readme": "pnpm site && node scripts/readme-pictures.mjs",
113
115
  "test:readme": "pnpm build && node scripts/check-readme-examples.mjs",
114
- "test:review": "pnpm site && node --test --test-concurrency=2 e2e/review/appearance-api.test.mjs e2e/review/boards-settings-and-keys.test.mjs e2e/review/endings.test.mjs e2e/review/full-board-recovery.test.mjs e2e/review/nature-previews.test.mjs e2e/review/responsive.test.mjs"
116
+ "test:review": "pnpm site && node --test --test-concurrency=2 e2e/review/appearance-api.test.mjs e2e/review/boards-settings-and-keys.test.mjs e2e/review/endings.test.mjs e2e/review/full-board-recovery.test.mjs e2e/review/nature-previews.test.mjs e2e/review/responsive.test.mjs",
117
+ "docs:site": "pnpm build && node scripts/docs-site.mjs build",
118
+ "docs:check": "pnpm build && node scripts/docs-site.mjs check",
119
+ "size": "node scripts/docs-site.mjs size"
115
120
  },
116
121
  "devDependencies": {
117
122
  "@eslint/js": "^9.0.0",
@@ -119,7 +124,10 @@
119
124
  "eslint": "^9.0.0",
120
125
  "typescript": "^5.9.0",
121
126
  "typescript-eslint": "^8.0.0",
122
- "vitest": "^5.0.0"
127
+ "vitest": "^5.0.0",
128
+ "pagefind": "^1.5.2",
129
+ "marked": "^18.0.0",
130
+ "esbuild": "^0.28.0"
123
131
  },
124
132
  "packageManager": "pnpm@10.11.0"
125
133
  }