@logic-pad/core 0.1.0 → 0.1.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 (190) hide show
  1. package/assets/logic-core.global.d.ts +1272 -1269
  2. package/dist/data/config.d.ts +3 -3
  3. package/dist/data/config.js +1 -1
  4. package/dist/data/configurable.d.ts +1 -1
  5. package/dist/data/configurable.js +1 -1
  6. package/dist/data/dataHelper.d.ts +1 -1
  7. package/dist/data/dataHelper.js +1 -1
  8. package/dist/data/events/onFinalValidation.d.ts +3 -3
  9. package/dist/data/events/onFinalValidation.js +1 -1
  10. package/dist/data/events/onGridChange.d.ts +2 -2
  11. package/dist/data/events/onGridChange.js +1 -1
  12. package/dist/data/events/onGridResize.d.ts +2 -2
  13. package/dist/data/events/onGridResize.js +1 -1
  14. package/dist/data/events/onSetGrid.d.ts +2 -2
  15. package/dist/data/events/onSetGrid.js +1 -1
  16. package/dist/data/events/onSymbolValidation.d.ts +4 -4
  17. package/dist/data/events/onSymbolValidation.js +1 -1
  18. package/dist/data/grid.d.ts +5 -5
  19. package/dist/data/grid.js +7 -7
  20. package/dist/data/gridConnections.d.ts +2 -2
  21. package/dist/data/gridConnections.js +1 -1
  22. package/dist/data/instruction.d.ts +2 -2
  23. package/dist/data/instruction.js +1 -1
  24. package/dist/data/puzzle.d.ts +1 -1
  25. package/dist/data/puzzle.js +1 -1
  26. package/dist/data/rules/banPatternRule.d.ts +5 -5
  27. package/dist/data/rules/banPatternRule.js +6 -6
  28. package/dist/data/rules/cellCountRule.d.ts +4 -4
  29. package/dist/data/rules/cellCountRule.js +5 -5
  30. package/dist/data/rules/completePatternRule.d.ts +3 -3
  31. package/dist/data/rules/completePatternRule.js +3 -3
  32. package/dist/data/rules/connectAllRule.d.ts +4 -4
  33. package/dist/data/rules/connectAllRule.js +5 -5
  34. package/dist/data/rules/customRule.d.ts +4 -4
  35. package/dist/data/rules/customRule.js +4 -4
  36. package/dist/data/rules/foresightRule.d.ts +4 -4
  37. package/dist/data/rules/foresightRule.js +5 -5
  38. package/dist/data/rules/index.d.ts +1 -1
  39. package/dist/data/rules/index.js +1 -1
  40. package/dist/data/rules/musicControlLine.d.ts +2 -2
  41. package/dist/data/rules/musicControlLine.js +2 -2
  42. package/dist/data/rules/musicGridRule.d.ts +8 -8
  43. package/dist/data/rules/musicGridRule.js +7 -7
  44. package/dist/data/rules/mysteryRule.d.ts +7 -7
  45. package/dist/data/rules/mysteryRule.js +6 -6
  46. package/dist/data/rules/offByXRule.d.ts +6 -6
  47. package/dist/data/rules/offByXRule.js +6 -6
  48. package/dist/data/rules/regionAreaRule.d.ts +4 -4
  49. package/dist/data/rules/regionAreaRule.js +6 -6
  50. package/dist/data/rules/regionShapeRule.d.ts +4 -4
  51. package/dist/data/rules/regionShapeRule.js +4 -4
  52. package/dist/data/rules/rule.d.ts +3 -3
  53. package/dist/data/rules/rule.js +1 -1
  54. package/dist/data/rules/rules.gen.d.ts +14 -14
  55. package/dist/data/rules/rules.gen.js +14 -14
  56. package/dist/data/rules/sameShapeRule.d.ts +5 -5
  57. package/dist/data/rules/sameShapeRule.js +5 -5
  58. package/dist/data/rules/symbolsPerRegionRule.d.ts +4 -4
  59. package/dist/data/rules/symbolsPerRegionRule.js +7 -7
  60. package/dist/data/rules/undercluedRule.d.ts +3 -3
  61. package/dist/data/rules/undercluedRule.js +5 -5
  62. package/dist/data/rules/uniqueShapeRule.d.ts +5 -5
  63. package/dist/data/rules/uniqueShapeRule.js +4 -4
  64. package/dist/data/serializer/allSerializers.d.ts +4 -4
  65. package/dist/data/serializer/allSerializers.js +1 -1
  66. package/dist/data/serializer/compressor/allCompressors.d.ts +1 -1
  67. package/dist/data/serializer/compressor/allCompressors.js +4 -4
  68. package/dist/data/serializer/compressor/deflateCompressor.d.ts +1 -1
  69. package/dist/data/serializer/compressor/deflateCompressor.js +1 -1
  70. package/dist/data/serializer/compressor/gzipCompressor.d.ts +1 -1
  71. package/dist/data/serializer/compressor/gzipCompressor.js +1 -1
  72. package/dist/data/serializer/compressor/streamCompressor.d.ts +1 -1
  73. package/dist/data/serializer/compressor/streamCompressor.js +2 -2
  74. package/dist/data/serializer/serializerBase.d.ts +6 -6
  75. package/dist/data/serializer/serializer_v0.d.ts +10 -10
  76. package/dist/data/serializer/serializer_v0.js +10 -10
  77. package/dist/data/shapes.d.ts +2 -2
  78. package/dist/data/shapes.js +1 -1
  79. package/dist/data/solver/allSolvers.d.ts +1 -1
  80. package/dist/data/solver/allSolvers.js +3 -3
  81. package/dist/data/solver/backtrack/backtrackSolver.d.ts +2 -2
  82. package/dist/data/solver/backtrack/backtrackSolver.js +19 -19
  83. package/dist/data/solver/backtrack/backtrackWorker.js +35 -35
  84. package/dist/data/solver/backtrack/data.d.ts +1 -1
  85. package/dist/data/solver/backtrack/data.js +1 -1
  86. package/dist/data/solver/backtrack/rules/banPattern.d.ts +3 -3
  87. package/dist/data/solver/backtrack/rules/banPattern.js +1 -1
  88. package/dist/data/solver/backtrack/rules/cellCount.d.ts +2 -2
  89. package/dist/data/solver/backtrack/rules/cellCount.js +1 -1
  90. package/dist/data/solver/backtrack/rules/connectAll.d.ts +2 -2
  91. package/dist/data/solver/backtrack/rules/connectAll.js +1 -1
  92. package/dist/data/solver/backtrack/rules/regionArea.d.ts +2 -2
  93. package/dist/data/solver/backtrack/rules/regionArea.js +1 -1
  94. package/dist/data/solver/backtrack/rules/regionShape.d.ts +2 -2
  95. package/dist/data/solver/backtrack/rules/regionShape.js +2 -2
  96. package/dist/data/solver/backtrack/rules/sameShape.d.ts +3 -3
  97. package/dist/data/solver/backtrack/rules/sameShape.js +1 -1
  98. package/dist/data/solver/backtrack/rules/symbolsPerRegion.d.ts +3 -3
  99. package/dist/data/solver/backtrack/rules/symbolsPerRegion.js +2 -2
  100. package/dist/data/solver/backtrack/rules/uniqueShape.d.ts +3 -3
  101. package/dist/data/solver/backtrack/rules/uniqueShape.js +1 -1
  102. package/dist/data/solver/backtrack/symbols/areaNumber.d.ts +3 -3
  103. package/dist/data/solver/backtrack/symbols/areaNumber.js +1 -1
  104. package/dist/data/solver/backtrack/symbols/dart.d.ts +2 -2
  105. package/dist/data/solver/backtrack/symbols/dart.js +2 -2
  106. package/dist/data/solver/backtrack/symbols/directionLinker.d.ts +3 -3
  107. package/dist/data/solver/backtrack/symbols/directionLinker.js +1 -1
  108. package/dist/data/solver/backtrack/symbols/galaxy.d.ts +4 -4
  109. package/dist/data/solver/backtrack/symbols/galaxy.js +1 -1
  110. package/dist/data/solver/backtrack/symbols/letter.d.ts +2 -2
  111. package/dist/data/solver/backtrack/symbols/letter.js +1 -1
  112. package/dist/data/solver/backtrack/symbols/lotus.d.ts +4 -4
  113. package/dist/data/solver/backtrack/symbols/lotus.js +2 -2
  114. package/dist/data/solver/backtrack/symbols/minesweeper.d.ts +2 -2
  115. package/dist/data/solver/backtrack/symbols/minesweeper.js +1 -1
  116. package/dist/data/solver/backtrack/symbols/myopia.d.ts +2 -2
  117. package/dist/data/solver/backtrack/symbols/myopia.js +3 -3
  118. package/dist/data/solver/backtrack/symbols/viewpoint.d.ts +2 -2
  119. package/dist/data/solver/backtrack/symbols/viewpoint.js +1 -1
  120. package/dist/data/solver/solver.d.ts +1 -1
  121. package/dist/data/solver/solver.js +2 -2
  122. package/dist/data/solver/underclued/undercluedSolver.d.ts +2 -2
  123. package/dist/data/solver/underclued/undercluedSolver.js +4 -4
  124. package/dist/data/solver/underclued/undercluedWorker.js +3 -3
  125. package/dist/data/solver/z3/modules/areaNumberModule.d.ts +3 -3
  126. package/dist/data/solver/z3/modules/areaNumberModule.js +2 -2
  127. package/dist/data/solver/z3/modules/cellCountModule.d.ts +3 -3
  128. package/dist/data/solver/z3/modules/cellCountModule.js +3 -3
  129. package/dist/data/solver/z3/modules/connectAllModule.d.ts +3 -3
  130. package/dist/data/solver/z3/modules/connectAllModule.js +2 -2
  131. package/dist/data/solver/z3/modules/dartModule.d.ts +3 -3
  132. package/dist/data/solver/z3/modules/dartModule.js +5 -5
  133. package/dist/data/solver/z3/modules/index.d.ts +1 -1
  134. package/dist/data/solver/z3/modules/index.js +1 -1
  135. package/dist/data/solver/z3/modules/letterModule.d.ts +3 -3
  136. package/dist/data/solver/z3/modules/letterModule.js +2 -2
  137. package/dist/data/solver/z3/modules/modules.gen.d.ts +8 -8
  138. package/dist/data/solver/z3/modules/modules.gen.js +8 -8
  139. package/dist/data/solver/z3/modules/myopiaModule.d.ts +3 -3
  140. package/dist/data/solver/z3/modules/myopiaModule.js +5 -5
  141. package/dist/data/solver/z3/modules/regionAreaModule.d.ts +3 -3
  142. package/dist/data/solver/z3/modules/regionAreaModule.js +2 -2
  143. package/dist/data/solver/z3/modules/viewpointModule.d.ts +3 -3
  144. package/dist/data/solver/z3/modules/viewpointModule.js +5 -5
  145. package/dist/data/solver/z3/modules/z3Module.d.ts +2 -2
  146. package/dist/data/solver/z3/utils.d.ts +1 -1
  147. package/dist/data/solver/z3/utils.js +1 -1
  148. package/dist/data/solver/z3/z3Solver.d.ts +2 -2
  149. package/dist/data/solver/z3/z3Solver.js +5 -5
  150. package/dist/data/symbols/areaNumberSymbol.d.ts +3 -3
  151. package/dist/data/symbols/areaNumberSymbol.js +4 -4
  152. package/dist/data/symbols/customIconSymbol.d.ts +7 -9
  153. package/dist/data/symbols/customIconSymbol.js +3 -3
  154. package/dist/data/symbols/customSymbol.d.ts +3 -3
  155. package/dist/data/symbols/customSymbol.js +2 -2
  156. package/dist/data/symbols/customTextSymbol.d.ts +3 -3
  157. package/dist/data/symbols/customTextSymbol.js +3 -3
  158. package/dist/data/symbols/dartSymbol.d.ts +4 -4
  159. package/dist/data/symbols/dartSymbol.js +4 -4
  160. package/dist/data/symbols/directionLinkerSymbol.d.ts +4 -4
  161. package/dist/data/symbols/directionLinkerSymbol.js +4 -4
  162. package/dist/data/symbols/galaxySymbol.d.ts +4 -4
  163. package/dist/data/symbols/galaxySymbol.js +4 -4
  164. package/dist/data/symbols/index.d.ts +1 -1
  165. package/dist/data/symbols/index.js +1 -1
  166. package/dist/data/symbols/letterSymbol.d.ts +4 -4
  167. package/dist/data/symbols/letterSymbol.js +5 -5
  168. package/dist/data/symbols/lotusSymbol.d.ts +4 -4
  169. package/dist/data/symbols/lotusSymbol.js +4 -4
  170. package/dist/data/symbols/minesweeperSymbol.d.ts +3 -3
  171. package/dist/data/symbols/minesweeperSymbol.js +4 -4
  172. package/dist/data/symbols/multiEntrySymbol.d.ts +2 -2
  173. package/dist/data/symbols/multiEntrySymbol.js +1 -1
  174. package/dist/data/symbols/myopiaSymbol.d.ts +4 -4
  175. package/dist/data/symbols/myopiaSymbol.js +4 -4
  176. package/dist/data/symbols/numberSymbol.d.ts +3 -3
  177. package/dist/data/symbols/numberSymbol.js +2 -2
  178. package/dist/data/symbols/symbol.d.ts +4 -4
  179. package/dist/data/symbols/symbol.js +1 -1
  180. package/dist/data/symbols/symbols.gen.d.ts +10 -10
  181. package/dist/data/symbols/symbols.gen.js +10 -10
  182. package/dist/data/symbols/viewpointSymbol.d.ts +3 -3
  183. package/dist/data/symbols/viewpointSymbol.js +5 -5
  184. package/dist/data/tile.d.ts +1 -1
  185. package/dist/data/tile.js +1 -1
  186. package/dist/data/validate.d.ts +2 -2
  187. package/dist/data/validate.js +3 -3
  188. package/dist/index.d.ts +95 -95
  189. package/dist/index.js +95 -96
  190. package/package.json +5 -5
@@ -1,6 +1,6 @@
1
- import GridData from './grid';
2
- import { Color, Comparison, Direction, DirectionToggle, Orientation, OrientationToggle } from './primitives';
3
- import { ControlLine } from './rules/musicControlLine';
1
+ import GridData from './grid.js';
2
+ import { Color, Comparison, Direction, DirectionToggle, Orientation, OrientationToggle } from './primitives.js';
3
+ import { ControlLine } from './rules/musicControlLine.js';
4
4
  export declare enum ConfigType {
5
5
  Boolean = "boolean",
6
6
  NullableBoolean = "nullableBoolean",
@@ -1,4 +1,4 @@
1
- import { DIRECTIONS, ORIENTATIONS, } from './primitives';
1
+ import { DIRECTIONS, ORIENTATIONS, } from './primitives.js';
2
2
  export var ConfigType;
3
3
  (function (ConfigType) {
4
4
  ConfigType["Boolean"] = "boolean";
@@ -1,4 +1,4 @@
1
- import { AnyConfig } from './config';
1
+ import { AnyConfig } from './config.js';
2
2
  export default abstract class Configurable {
3
3
  get configs(): readonly AnyConfig[] | null;
4
4
  abstract copyWith(props: Record<string, unknown>): this;
@@ -1,4 +1,4 @@
1
- import { configEquals } from './config';
1
+ import { configEquals } from './config.js';
2
2
  export default class Configurable {
3
3
  get configs() {
4
4
  return null;
@@ -1,4 +1,4 @@
1
- import { Direction, Orientation, Position } from './primitives';
1
+ import { Direction, Orientation, Position } from './primitives.js';
2
2
  /**
3
3
  * Offset the given position by a given step in the given direction.
4
4
  * @param position The position to offset.
@@ -1,4 +1,4 @@
1
- import { Direction, Orientation } from './primitives';
1
+ import { Direction, Orientation } from './primitives.js';
2
2
  /**
3
3
  * Offset the given position by a given step in the given direction.
4
4
  * @param position The position to offset.
@@ -1,6 +1,6 @@
1
- import GridData from '../grid';
2
- import Instruction from '../instruction';
3
- import { GridState } from '../primitives';
1
+ import GridData from '../grid.js';
2
+ import Instruction from '../instruction.js';
3
+ import { GridState } from '../primitives.js';
4
4
  export interface FinalValidationHandler {
5
5
  /**
6
6
  * Edits the final grid state after all rules and symbols have been validated.
@@ -1,4 +1,4 @@
1
- import { isEventHandler } from './eventHelper';
1
+ import { isEventHandler } from './eventHelper.js';
2
2
  export function handlesFinalValidation(val) {
3
3
  return isEventHandler(val, 'onFinalValidation');
4
4
  }
@@ -1,5 +1,5 @@
1
- import GridData from '../grid';
2
- import Instruction from '../instruction';
1
+ import GridData from '../grid.js';
2
+ import Instruction from '../instruction.js';
3
3
  export interface GridChangeHandler {
4
4
  onGridChange(newGrid: GridData): this;
5
5
  }
@@ -1,4 +1,4 @@
1
- import { isEventHandler } from './eventHelper';
1
+ import { isEventHandler } from './eventHelper.js';
2
2
  export function handlesGridChange(val) {
3
3
  return isEventHandler(val, 'onGridChange');
4
4
  }
@@ -1,5 +1,5 @@
1
- import GridData from '../grid';
2
- import Instruction from '../instruction';
1
+ import GridData from '../grid.js';
2
+ import Instruction from '../instruction.js';
3
3
  export interface GridResizeHandler {
4
4
  /**
5
5
  * Update itself when the grid is resized.
@@ -1,4 +1,4 @@
1
- import { isEventHandler } from './eventHelper';
1
+ import { isEventHandler } from './eventHelper.js';
2
2
  export function handlesGridResize(val) {
3
3
  return isEventHandler(val, 'onGridResize');
4
4
  }
@@ -1,5 +1,5 @@
1
- import GridData from '../grid';
2
- import Instruction from '../instruction';
1
+ import GridData from '../grid.js';
2
+ import Instruction from '../instruction.js';
3
3
  export interface SetGridHandler {
4
4
  onSetGrid(oldGrid: GridData, newGrid: GridData): GridData;
5
5
  }
@@ -1,4 +1,4 @@
1
- import { isEventHandler } from './eventHelper';
1
+ import { isEventHandler } from './eventHelper.js';
2
2
  export function handlesSetGrid(val) {
3
3
  return isEventHandler(val, 'onSetGrid');
4
4
  }
@@ -1,7 +1,7 @@
1
- import GridData from '../grid';
2
- import { State } from '../primitives';
3
- import Rule from '../rules/rule';
4
- import Symbol from '../symbols/symbol';
1
+ import GridData from '../grid.js';
2
+ import { State } from '../primitives.js';
3
+ import Rule from '../rules/rule.js';
4
+ import Symbol from '../symbols/symbol.js';
5
5
  export interface SymbolValidationHandler {
6
6
  /**
7
7
  * Overrides the validation of symbols.
@@ -1,4 +1,4 @@
1
- import { isEventHandler } from './eventHelper';
1
+ import { isEventHandler } from './eventHelper.js';
2
2
  export function handlesSymbolValidation(val) {
3
3
  return isEventHandler(val, 'onSymbolValidation');
4
4
  }
@@ -1,8 +1,8 @@
1
- import GridConnections from './gridConnections';
2
- import { Color, Direction, Orientation, Position } from './primitives';
3
- import Rule from './rules/rule';
4
- import Symbol from './symbols/symbol';
5
- import TileData from './tile';
1
+ import GridConnections from './gridConnections.js';
2
+ import { Color, Direction, Orientation, Position } from './primitives.js';
3
+ import Rule from './rules/rule.js';
4
+ import Symbol from './symbols/symbol.js';
5
+ import TileData from './tile.js';
6
6
  export default class GridData {
7
7
  readonly width: number;
8
8
  readonly height: number;
package/dist/data/grid.js CHANGED
@@ -1,10 +1,10 @@
1
- import { handlesGridChange } from './events/onGridChange';
2
- import { handlesGridResize } from './events/onGridResize';
3
- import { handlesSetGrid } from './events/onSetGrid';
4
- import GridConnections from './gridConnections';
5
- import { array, move } from './dataHelper';
6
- import { Color } from './primitives';
7
- import TileData from './tile';
1
+ import { handlesGridChange } from './events/onGridChange.js';
2
+ import { handlesGridResize } from './events/onGridResize.js';
3
+ import { handlesSetGrid } from './events/onSetGrid.js';
4
+ import GridConnections from './gridConnections.js';
5
+ import { array, move } from './dataHelper.js';
6
+ import { Color } from './primitives.js';
7
+ import TileData from './tile.js';
8
8
  const NEIGHBOR_OFFSETS = [
9
9
  { x: -1, y: 0 },
10
10
  { x: 1, y: 0 },
@@ -1,5 +1,5 @@
1
- import { Edge, Position } from './primitives';
2
- import TileConnections from './tileConnections';
1
+ import { Edge, Position } from './primitives.js';
2
+ import TileConnections from './tileConnections.js';
3
3
  export default class GridConnections {
4
4
  readonly edges: readonly Edge[];
5
5
  constructor(edges?: readonly Edge[]);
@@ -1,4 +1,4 @@
1
- import TileConnections from './tileConnections';
1
+ import TileConnections from './tileConnections.js';
2
2
  function isSameEdge(a, b) {
3
3
  return ((a.x1 === b.x1 && a.y1 === b.y1 && a.x2 === b.x2 && a.y2 === b.y2) ||
4
4
  (a.x1 === b.x2 && a.y1 === b.y2 && a.x2 === b.x1 && a.y2 === b.y1));
@@ -1,5 +1,5 @@
1
- import Configurable from './configurable';
2
- import GridData from './grid';
1
+ import Configurable from './configurable.js';
2
+ import GridData from './grid.js';
3
3
  export default abstract class Instruction extends Configurable {
4
4
  abstract get id(): string;
5
5
  abstract get explanation(): string;
@@ -1,4 +1,4 @@
1
- import Configurable from './configurable';
1
+ import Configurable from './configurable.js';
2
2
  export default class Instruction extends Configurable {
3
3
  /**
4
4
  * Indicates that validation by logic is not available and the solution must be used for validation
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import GridData from './grid';
2
+ import GridData from './grid.js';
3
3
  export type PuzzleMetadata = {
4
4
  /**
5
5
  * The title of the puzzle. (required)
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import GridData from './grid';
2
+ import GridData from './grid.js';
3
3
  export const MetadataSchema = z
4
4
  .object({
5
5
  title: z.string().min(1),
@@ -1,8 +1,8 @@
1
- import { AnyConfig } from '../config';
2
- import GridData from '../grid';
3
- import { RuleState } from '../primitives';
4
- import { Shape } from '../shapes';
5
- import Rule, { SearchVariant } from './rule';
1
+ import { AnyConfig } from '../config.js';
2
+ import GridData from '../grid.js';
3
+ import { RuleState } from '../primitives.js';
4
+ import { Shape } from '../shapes.js';
5
+ import Rule, { SearchVariant } from './rule.js';
6
6
  export default class BanPatternRule extends Rule {
7
7
  private static readonly EXAMPLE_GRID;
8
8
  private static readonly CONFIGS;
@@ -1,9 +1,9 @@
1
- import { ConfigType } from '../config';
2
- import GridData from '../grid';
3
- import { array } from '../dataHelper';
4
- import { Color, State } from '../primitives';
5
- import { getShapeVariants, tilesToShape } from '../shapes';
6
- import Rule from './rule';
1
+ import { ConfigType } from '../config.js';
2
+ import GridData from '../grid.js';
3
+ import { array } from '../dataHelper.js';
4
+ import { Color, State } from '../primitives.js';
5
+ import { getShapeVariants, tilesToShape } from '../shapes.js';
6
+ import Rule from './rule.js';
7
7
  class BanPatternRule extends Rule {
8
8
  /**
9
9
  * **Don't make this pattern**
@@ -1,7 +1,7 @@
1
- import { AnyConfig } from '../config';
2
- import GridData from '../grid';
3
- import { Color, RuleState } from '../primitives';
4
- import Rule, { SearchVariant } from './rule';
1
+ import { AnyConfig } from '../config.js';
2
+ import GridData from '../grid.js';
3
+ import { Color, RuleState } from '../primitives.js';
4
+ import Rule, { SearchVariant } from './rule.js';
5
5
  export default class CellCountRule extends Rule {
6
6
  readonly color: Color;
7
7
  readonly count: number;
@@ -1,8 +1,8 @@
1
- import { ConfigType } from '../config';
2
- import GridData from '../grid';
3
- import { Color, State } from '../primitives';
4
- import AreaNumberSymbol from '../symbols/areaNumberSymbol';
5
- import Rule from './rule';
1
+ import { ConfigType } from '../config.js';
2
+ import GridData from '../grid.js';
3
+ import { Color, State } from '../primitives.js';
4
+ import AreaNumberSymbol from '../symbols/areaNumberSymbol.js';
5
+ import Rule from './rule.js';
6
6
  class CellCountRule extends Rule {
7
7
  /**
8
8
  * **There are &lt;count&gt; &lt;color&gt; cells in total**
@@ -1,6 +1,6 @@
1
- import GridData from '../grid';
2
- import { RuleState } from '../primitives';
3
- import Rule, { SearchVariant } from './rule';
1
+ import GridData from '../grid.js';
2
+ import { RuleState } from '../primitives.js';
3
+ import Rule, { SearchVariant } from './rule.js';
4
4
  export default class CompletePatternRule extends Rule {
5
5
  private static readonly EXAMPLE_GRID;
6
6
  private static readonly SEARCH_VARIANTS;
@@ -1,6 +1,6 @@
1
- import GridData from '../grid';
2
- import { State } from '../primitives';
3
- import Rule from './rule';
1
+ import GridData from '../grid.js';
2
+ import { State } from '../primitives.js';
3
+ import Rule from './rule.js';
4
4
  class CompletePatternRule extends Rule {
5
5
  /**
6
6
  * **Complete the pattern**
@@ -1,7 +1,7 @@
1
- import { AnyConfig } from '../config';
2
- import GridData from '../grid';
3
- import { Color, RuleState } from '../primitives';
4
- import Rule, { SearchVariant } from './rule';
1
+ import { AnyConfig } from '../config.js';
2
+ import GridData from '../grid.js';
3
+ import { Color, RuleState } from '../primitives.js';
4
+ import Rule, { SearchVariant } from './rule.js';
5
5
  export default class ConnectAllRule extends Rule {
6
6
  readonly color: Color;
7
7
  private static readonly CONFIGS;
@@ -1,8 +1,8 @@
1
- import { ConfigType } from '../config';
2
- import GridData from '../grid';
3
- import { array, minBy } from '../dataHelper';
4
- import { Color, State } from '../primitives';
5
- import Rule from './rule';
1
+ import { ConfigType } from '../config.js';
2
+ import GridData from '../grid.js';
3
+ import { array, minBy } from '../dataHelper.js';
4
+ import { Color, State } from '../primitives.js';
5
+ import Rule from './rule.js';
6
6
  class ConnectAllRule extends Rule {
7
7
  /**
8
8
  * **Connect all &lt;color&gt; cells**
@@ -1,7 +1,7 @@
1
- import { AnyConfig } from '../config';
2
- import GridData from '../grid';
3
- import { RuleState } from '../primitives';
4
- import Rule, { SearchVariant } from './rule';
1
+ import { AnyConfig } from '../config.js';
2
+ import GridData from '../grid.js';
3
+ import { RuleState } from '../primitives.js';
4
+ import Rule, { SearchVariant } from './rule.js';
5
5
  export default class CustomRule extends Rule {
6
6
  readonly description: string;
7
7
  readonly grid: GridData;
@@ -1,7 +1,7 @@
1
- import { ConfigType } from '../config';
2
- import GridData from '../grid';
3
- import { State } from '../primitives';
4
- import Rule from './rule';
1
+ import { ConfigType } from '../config.js';
2
+ import GridData from '../grid.js';
3
+ import { State } from '../primitives.js';
4
+ import Rule from './rule.js';
5
5
  class CustomRule extends Rule {
6
6
  /**
7
7
  * A custom rule with a description and thumbnail grid.
@@ -1,7 +1,7 @@
1
- import { AnyConfig } from '../config';
2
- import GridData from '../grid';
3
- import { RuleState } from '../primitives';
4
- import Rule, { SearchVariant } from './rule';
1
+ import { AnyConfig } from '../config.js';
2
+ import GridData from '../grid.js';
3
+ import { RuleState } from '../primitives.js';
4
+ import Rule, { SearchVariant } from './rule.js';
5
5
  export default class ForesightRule extends Rule {
6
6
  readonly count: number;
7
7
  readonly regenInterval: number;
@@ -1,8 +1,8 @@
1
- import { ConfigType } from '../config';
2
- import GridData from '../grid';
3
- import { State } from '../primitives';
4
- import CustomIconSymbol from '../symbols/customIconSymbol';
5
- import Rule from './rule';
1
+ import { ConfigType } from '../config.js';
2
+ import GridData from '../grid.js';
3
+ import { State } from '../primitives.js';
4
+ import CustomIconSymbol from '../symbols/customIconSymbol.js';
5
+ import Rule from './rule.js';
6
6
  class ForesightRule extends Rule {
7
7
  /**
8
8
  * **Foresight: Show hints**
@@ -1,3 +1,3 @@
1
- import Rule from './rule';
1
+ import Rule from './rule.js';
2
2
  declare const allRules: Map<string, Rule>;
3
3
  export { allRules };
@@ -1,4 +1,4 @@
1
- import * as rules from './rules.gen';
1
+ import * as rules from './rules.gen.js';
2
2
  const allRules = new Map();
3
3
  function register(prototype) {
4
4
  allRules.set(prototype.id, prototype);
@@ -1,5 +1,5 @@
1
- import { AnyConfig } from '../config';
2
- import Configurable from '../configurable';
1
+ import { AnyConfig } from '../config.js';
2
+ import Configurable from '../configurable.js';
3
3
  export declare class Row extends Configurable {
4
4
  /**
5
5
  * The note to play at this row, or null to keep the current note from the previous control line.
@@ -1,5 +1,5 @@
1
- import { ConfigType } from '../config';
2
- import Configurable from '../configurable';
1
+ import { ConfigType } from '../config.js';
2
+ import Configurable from '../configurable.js';
3
3
  export class Row extends Configurable {
4
4
  constructor(
5
5
  /**
@@ -1,11 +1,11 @@
1
- import { AnyConfig } from '../config';
2
- import { GridChangeHandler } from '../events/onGridChange';
3
- import { GridResizeHandler } from '../events/onGridResize';
4
- import { SetGridHandler } from '../events/onSetGrid';
5
- import GridData from '../grid';
6
- import { RuleState } from '../primitives';
7
- import { ControlLine } from './musicControlLine';
8
- import Rule, { SearchVariant } from './rule';
1
+ import { AnyConfig } from '../config.js';
2
+ import { GridChangeHandler } from '../events/onGridChange.js';
3
+ import { GridResizeHandler } from '../events/onGridResize.js';
4
+ import { SetGridHandler } from '../events/onSetGrid.js';
5
+ import GridData from '../grid.js';
6
+ import { RuleState } from '../primitives.js';
7
+ import { ControlLine } from './musicControlLine.js';
8
+ import Rule, { SearchVariant } from './rule.js';
9
9
  export default class MusicGridRule extends Rule implements GridChangeHandler, SetGridHandler, GridResizeHandler {
10
10
  readonly controlLines: readonly ControlLine[];
11
11
  readonly track: GridData | null;
@@ -1,10 +1,10 @@
1
- import { ConfigType } from '../config';
2
- import GridData from '../grid';
3
- import { resize } from '../dataHelper';
4
- import { Color, State } from '../primitives';
5
- import CustomIconSymbol from '../symbols/customIconSymbol';
6
- import { ControlLine, Row } from './musicControlLine';
7
- import Rule from './rule';
1
+ import { ConfigType } from '../config.js';
2
+ import GridData from '../grid.js';
3
+ import { resize } from '../dataHelper.js';
4
+ import { Color, State } from '../primitives.js';
5
+ import CustomIconSymbol from '../symbols/customIconSymbol.js';
6
+ import { ControlLine, Row } from './musicControlLine.js';
7
+ import Rule from './rule.js';
8
8
  const DEFAULT_SCALLE = [
9
9
  new Row('C5', 0.6),
10
10
  new Row('B4', 0.6),
@@ -1,10 +1,10 @@
1
- import { AnyConfig } from '../config';
2
- import { FinalValidationHandler } from '../events/onFinalValidation';
3
- import { GridChangeHandler } from '../events/onGridChange';
4
- import { GridResizeHandler } from '../events/onGridResize';
5
- import GridData from '../grid';
6
- import { GridState, RuleState } from '../primitives';
7
- import Rule, { SearchVariant } from './rule';
1
+ import { AnyConfig } from '../config.js';
2
+ import { FinalValidationHandler } from '../events/onFinalValidation.js';
3
+ import { GridChangeHandler } from '../events/onGridChange.js';
4
+ import { GridResizeHandler } from '../events/onGridResize.js';
5
+ import GridData from '../grid.js';
6
+ import { GridState, RuleState } from '../primitives.js';
7
+ import Rule, { SearchVariant } from './rule.js';
8
8
  export default class MysteryRule extends Rule implements FinalValidationHandler, GridChangeHandler, GridResizeHandler {
9
9
  readonly solution: GridData;
10
10
  readonly visible: boolean;
@@ -1,9 +1,9 @@
1
- import { ConfigType } from '../config';
2
- import GridData from '../grid';
3
- import { array } from '../dataHelper';
4
- import { Color, State } from '../primitives';
5
- import CustomTextSymbol from '../symbols/customTextSymbol';
6
- import Rule from './rule';
1
+ import { ConfigType } from '../config.js';
2
+ import GridData from '../grid.js';
3
+ import { array } from '../dataHelper.js';
4
+ import { Color, State } from '../primitives.js';
5
+ import CustomTextSymbol from '../symbols/customTextSymbol.js';
6
+ import Rule from './rule.js';
7
7
  class MysteryRule extends Rule {
8
8
  /**
9
9
  * **Mystery: alternate solution**
@@ -1,9 +1,9 @@
1
- import { AnyConfig } from '../config';
2
- import { SymbolValidationHandler } from '../events/onSymbolValidation';
3
- import GridData from '../grid';
4
- import { RuleState, State } from '../primitives';
5
- import Symbol from '../symbols/symbol';
6
- import Rule, { SearchVariant } from './rule';
1
+ import { AnyConfig } from '../config.js';
2
+ import { SymbolValidationHandler } from '../events/onSymbolValidation.js';
3
+ import GridData from '../grid.js';
4
+ import { RuleState, State } from '../primitives.js';
5
+ import Symbol from '../symbols/symbol.js';
6
+ import Rule, { SearchVariant } from './rule.js';
7
7
  export default class OffByXRule extends Rule implements SymbolValidationHandler {
8
8
  readonly number: number;
9
9
  private static readonly CONFIGS;
@@ -1,9 +1,9 @@
1
- import { ConfigType } from '../config';
2
- import GridData from '../grid';
3
- import { State } from '../primitives';
4
- import AreaNumberSymbol from '../symbols/areaNumberSymbol';
5
- import NumberSymbol from '../symbols/numberSymbol';
6
- import Rule from './rule';
1
+ import { ConfigType } from '../config.js';
2
+ import GridData from '../grid.js';
3
+ import { State } from '../primitives.js';
4
+ import AreaNumberSymbol from '../symbols/areaNumberSymbol.js';
5
+ import NumberSymbol from '../symbols/numberSymbol.js';
6
+ import Rule from './rule.js';
7
7
  class OffByXRule extends Rule {
8
8
  /**
9
9
  * **All numbers are off by &lt;number&gt;**
@@ -1,7 +1,7 @@
1
- import { AnyConfig } from '../config';
2
- import GridData from '../grid';
3
- import { Color, RuleState } from '../primitives';
4
- import Rule, { SearchVariant } from './rule';
1
+ import { AnyConfig } from '../config.js';
2
+ import GridData from '../grid.js';
3
+ import { Color, RuleState } from '../primitives.js';
4
+ import Rule, { SearchVariant } from './rule.js';
5
5
  export default class RegionAreaRule extends Rule {
6
6
  readonly color: Color;
7
7
  readonly size: number;
@@ -1,9 +1,9 @@
1
- import { ConfigType } from '../config';
2
- import GridData from '../grid';
3
- import { array } from '../dataHelper';
4
- import { Color, State } from '../primitives';
5
- import TileData from '../tile';
6
- import Rule from './rule';
1
+ import { ConfigType } from '../config.js';
2
+ import GridData from '../grid.js';
3
+ import { array } from '../dataHelper.js';
4
+ import { Color, State } from '../primitives.js';
5
+ import TileData from '../tile.js';
6
+ import Rule from './rule.js';
7
7
  class RegionAreaRule extends Rule {
8
8
  /**
9
9
  * **All &lt;color&gt; regions have area &lt;size&gt;**
@@ -1,7 +1,7 @@
1
- import GridData from '../grid';
2
- import { Color, Position } from '../primitives';
3
- import { Shape } from '../shapes';
4
- import Rule from './rule';
1
+ import GridData from '../grid.js';
2
+ import { Color, Position } from '../primitives.js';
3
+ import { Shape } from '../shapes.js';
4
+ import Rule from './rule.js';
5
5
  export type ShapeRegions = {
6
6
  regions: {
7
7
  positions: Position[];
@@ -1,7 +1,7 @@
1
- import { array } from '../dataHelper';
2
- import { Color } from '../primitives';
3
- import { normalizeShape, positionsToShape, shapeEquals, } from '../shapes';
4
- import Rule from './rule';
1
+ import { array } from '../dataHelper.js';
2
+ import { Color } from '../primitives.js';
3
+ import { normalizeShape, positionsToShape, shapeEquals, } from '../shapes.js';
4
+ import Rule from './rule.js';
5
5
  export default class RegionShapeRule extends Rule {
6
6
  /**
7
7
  * @param color - The color of the regions to compare.
@@ -1,6 +1,6 @@
1
- import GridData from '../grid';
2
- import { RuleState } from '../primitives';
3
- import Instruction from '../instruction';
1
+ import GridData from '../grid.js';
2
+ import { RuleState } from '../primitives.js';
3
+ import Instruction from '../instruction.js';
4
4
  export interface SearchVariant {
5
5
  description: string;
6
6
  rule: Rule;
@@ -1,4 +1,4 @@
1
- import Instruction from '../instruction';
1
+ import Instruction from '../instruction.js';
2
2
  export default class Rule extends Instruction {
3
3
  searchVariant() {
4
4
  return {