@logic-pad/core 0.26.0 → 0.26.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.
- package/README.md +31 -31
- package/assets/logic-core.global.d.ts +3264 -3247
- package/package.json +4 -1
- package/dist/benchmark/helper.d.ts +0 -21
- package/dist/benchmark/helper.js +0 -34
- package/dist/benchmark/prepareBench.d.ts +0 -1
- package/dist/benchmark/prepareBench.js +0 -140
- package/dist/benchmark/runBench.d.ts +0 -1
- package/dist/benchmark/runBench.js +0 -206
- package/dist/src/data/config.d.ts +0 -119
- package/dist/src/data/config.js +0 -72
- package/dist/src/data/configurable.d.ts +0 -14
- package/dist/src/data/configurable.js +0 -26
- package/dist/src/data/dataHelper.d.ts +0 -92
- package/dist/src/data/dataHelper.js +0 -217
- package/dist/src/data/events/eventHelper.d.ts +0 -1
- package/dist/src/data/events/eventHelper.js +0 -6
- package/dist/src/data/events/onFinalValidation.d.ts +0 -14
- package/dist/src/data/events/onFinalValidation.js +0 -4
- package/dist/src/data/events/onGetTile.d.ts +0 -7
- package/dist/src/data/events/onGetTile.js +0 -4
- package/dist/src/data/events/onGridChange.d.ts +0 -6
- package/dist/src/data/events/onGridChange.js +0 -4
- package/dist/src/data/events/onGridResize.d.ts +0 -9
- package/dist/src/data/events/onGridResize.js +0 -4
- package/dist/src/data/events/onSetGrid.d.ts +0 -7
- package/dist/src/data/events/onSetGrid.js +0 -19
- package/dist/src/data/events/onSymbolDisplay.d.ts +0 -16
- package/dist/src/data/events/onSymbolDisplay.js +0 -4
- package/dist/src/data/events/onSymbolMerge.d.ts +0 -10
- package/dist/src/data/events/onSymbolMerge.js +0 -4
- package/dist/src/data/events/onSymbolValidation.d.ts +0 -18
- package/dist/src/data/events/onSymbolValidation.js +0 -4
- package/dist/src/data/grid.d.ts +0 -410
- package/dist/src/data/grid.js +0 -1106
- package/dist/src/data/gridConnections.d.ts +0 -25
- package/dist/src/data/gridConnections.js +0 -309
- package/dist/src/data/gridZones.d.ts +0 -26
- package/dist/src/data/gridZones.js +0 -117
- package/dist/src/data/instruction.d.ts +0 -26
- package/dist/src/data/instruction.js +0 -29
- package/dist/src/data/primitives.d.ts +0 -138
- package/dist/src/data/primitives.js +0 -177
- package/dist/src/data/puzzle.d.ts +0 -73
- package/dist/src/data/puzzle.js +0 -105
- package/dist/src/data/rules/banPatternRule.d.ts +0 -30
- package/dist/src/data/rules/banPatternRule.js +0 -125
- package/dist/src/data/rules/cellCountPerZoneRule.d.ts +0 -23
- package/dist/src/data/rules/cellCountPerZoneRule.js +0 -39
- package/dist/src/data/rules/cellCountRule.d.ts +0 -33
- package/dist/src/data/rules/cellCountRule.js +0 -138
- package/dist/src/data/rules/completePatternRule.d.ts +0 -24
- package/dist/src/data/rules/completePatternRule.js +0 -46
- package/dist/src/data/rules/connectAllRule.d.ts +0 -29
- package/dist/src/data/rules/connectAllRule.js +0 -88
- package/dist/src/data/rules/connectZonesRule.d.ts +0 -29
- package/dist/src/data/rules/connectZonesRule.js +0 -111
- package/dist/src/data/rules/containsShapeRule.d.ts +0 -34
- package/dist/src/data/rules/containsShapeRule.js +0 -125
- package/dist/src/data/rules/customRule.d.ts +0 -34
- package/dist/src/data/rules/customRule.js +0 -74
- package/dist/src/data/rules/differentCountPerZoneRule.d.ts +0 -30
- package/dist/src/data/rules/differentCountPerZoneRule.js +0 -96
- package/dist/src/data/rules/exactCountPerZoneRule.d.ts +0 -33
- package/dist/src/data/rules/exactCountPerZoneRule.js +0 -99
- package/dist/src/data/rules/foresightRule.d.ts +0 -36
- package/dist/src/data/rules/foresightRule.js +0 -107
- package/dist/src/data/rules/index.d.ts +0 -3
- package/dist/src/data/rules/index.js +0 -10
- package/dist/src/data/rules/lyingSymbolRule.d.ts +0 -31
- package/dist/src/data/rules/lyingSymbolRule.js +0 -207
- package/dist/src/data/rules/musicControlLine.d.ts +0 -82
- package/dist/src/data/rules/musicControlLine.js +0 -167
- package/dist/src/data/rules/musicGridRule.d.ts +0 -51
- package/dist/src/data/rules/musicGridRule.js +0 -212
- package/dist/src/data/rules/mysteryRule.d.ts +0 -39
- package/dist/src/data/rules/mysteryRule.js +0 -146
- package/dist/src/data/rules/noLoopsRule.d.ts +0 -29
- package/dist/src/data/rules/noLoopsRule.js +0 -218
- package/dist/src/data/rules/offByXRule.d.ts +0 -32
- package/dist/src/data/rules/offByXRule.js +0 -124
- package/dist/src/data/rules/perfectionRule.d.ts +0 -45
- package/dist/src/data/rules/perfectionRule.js +0 -158
- package/dist/src/data/rules/regionAreaRule.d.ts +0 -34
- package/dist/src/data/rules/regionAreaRule.js +0 -149
- package/dist/src/data/rules/regionShapeRule.d.ts +0 -22
- package/dist/src/data/rules/regionShapeRule.js +0 -58
- package/dist/src/data/rules/rule.d.ts +0 -18
- package/dist/src/data/rules/rule.js +0 -19
- package/dist/src/data/rules/rules.gen.d.ts +0 -23
- package/dist/src/data/rules/rules.gen.js +0 -27
- package/dist/src/data/rules/sameCountPerZoneRule.d.ts +0 -30
- package/dist/src/data/rules/sameCountPerZoneRule.js +0 -95
- package/dist/src/data/rules/sameShapeRule.d.ts +0 -28
- package/dist/src/data/rules/sameShapeRule.js +0 -68
- package/dist/src/data/rules/symbolsPerRegionRule.d.ts +0 -38
- package/dist/src/data/rules/symbolsPerRegionRule.js +0 -181
- package/dist/src/data/rules/undercluedRule.d.ts +0 -24
- package/dist/src/data/rules/undercluedRule.js +0 -53
- package/dist/src/data/rules/uniqueShapeRule.d.ts +0 -28
- package/dist/src/data/rules/uniqueShapeRule.js +0 -65
- package/dist/src/data/rules/wrapAroundRule.d.ts +0 -36
- package/dist/src/data/rules/wrapAroundRule.js +0 -241
- package/dist/src/data/serializer/allSerializers.d.ts +0 -32
- package/dist/src/data/serializer/allSerializers.js +0 -71
- package/dist/src/data/serializer/compressor/allCompressors.d.ts +0 -14
- package/dist/src/data/serializer/compressor/allCompressors.js +0 -43
- package/dist/src/data/serializer/compressor/checksumCompressor.d.ts +0 -6
- package/dist/src/data/serializer/compressor/checksumCompressor.js +0 -21
- package/dist/src/data/serializer/compressor/compressorBase.d.ts +0 -16
- package/dist/src/data/serializer/compressor/compressorBase.js +0 -2
- package/dist/src/data/serializer/compressor/deflateCompressor.d.ts +0 -7
- package/dist/src/data/serializer/compressor/deflateCompressor.js +0 -17
- package/dist/src/data/serializer/compressor/gzipCompressor.d.ts +0 -5
- package/dist/src/data/serializer/compressor/gzipCompressor.js +0 -9
- package/dist/src/data/serializer/compressor/streamCompressor.d.ts +0 -6
- package/dist/src/data/serializer/compressor/streamCompressor.js +0 -41
- package/dist/src/data/serializer/serializerBase.d.ts +0 -32
- package/dist/src/data/serializer/serializerBase.js +0 -2
- package/dist/src/data/serializer/serializer_checksum.d.ts +0 -35
- package/dist/src/data/serializer/serializer_checksum.js +0 -179
- package/dist/src/data/serializer/serializer_v0.d.ts +0 -55
- package/dist/src/data/serializer/serializer_v0.js +0 -484
- package/dist/src/data/shapes.d.ts +0 -19
- package/dist/src/data/shapes.js +0 -137
- package/dist/src/data/solver/allSolvers.d.ts +0 -3
- package/dist/src/data/solver/allSolvers.js +0 -13
- package/dist/src/data/solver/auto/autoSolver.d.ts +0 -18
- package/dist/src/data/solver/auto/autoSolver.js +0 -153
- package/dist/src/data/solver/backtrack/backtrackSolver.d.ts +0 -11
- package/dist/src/data/solver/backtrack/backtrackSolver.js +0 -52
- package/dist/src/data/solver/backtrack/backtrackWorker.d.ts +0 -1
- package/dist/src/data/solver/backtrack/backtrackWorker.js +0 -308
- package/dist/src/data/solver/backtrack/data.d.ts +0 -47
- package/dist/src/data/solver/backtrack/data.js +0 -151
- package/dist/src/data/solver/backtrack/rules/banPattern.d.ts +0 -9
- package/dist/src/data/solver/backtrack/rules/banPattern.js +0 -77
- package/dist/src/data/solver/backtrack/rules/cellCount.d.ts +0 -7
- package/dist/src/data/solver/backtrack/rules/cellCount.js +0 -25
- package/dist/src/data/solver/backtrack/rules/connectAll.d.ts +0 -7
- package/dist/src/data/solver/backtrack/rules/connectAll.js +0 -44
- package/dist/src/data/solver/backtrack/rules/regionArea.d.ts +0 -8
- package/dist/src/data/solver/backtrack/rules/regionArea.js +0 -71
- package/dist/src/data/solver/backtrack/rules/regionShape.d.ts +0 -8
- package/dist/src/data/solver/backtrack/rules/regionShape.js +0 -57
- package/dist/src/data/solver/backtrack/rules/sameShape.d.ts +0 -8
- package/dist/src/data/solver/backtrack/rules/sameShape.js +0 -14
- package/dist/src/data/solver/backtrack/rules/symbolsPerRegion.d.ts +0 -10
- package/dist/src/data/solver/backtrack/rules/symbolsPerRegion.js +0 -82
- package/dist/src/data/solver/backtrack/rules/uniqueShape.d.ts +0 -8
- package/dist/src/data/solver/backtrack/rules/uniqueShape.js +0 -14
- package/dist/src/data/solver/backtrack/symbols/areaNumber.d.ts +0 -9
- package/dist/src/data/solver/backtrack/symbols/areaNumber.js +0 -75
- package/dist/src/data/solver/backtrack/symbols/dart.d.ts +0 -8
- package/dist/src/data/solver/backtrack/symbols/dart.js +0 -45
- package/dist/src/data/solver/backtrack/symbols/directionLinker.d.ts +0 -11
- package/dist/src/data/solver/backtrack/symbols/directionLinker.js +0 -121
- package/dist/src/data/solver/backtrack/symbols/focus.d.ts +0 -9
- package/dist/src/data/solver/backtrack/symbols/focus.js +0 -48
- package/dist/src/data/solver/backtrack/symbols/galaxy.d.ts +0 -9
- package/dist/src/data/solver/backtrack/symbols/galaxy.js +0 -14
- package/dist/src/data/solver/backtrack/symbols/letter.d.ts +0 -9
- package/dist/src/data/solver/backtrack/symbols/letter.js +0 -93
- package/dist/src/data/solver/backtrack/symbols/lotus.d.ts +0 -11
- package/dist/src/data/solver/backtrack/symbols/lotus.js +0 -55
- package/dist/src/data/solver/backtrack/symbols/minesweeper.d.ts +0 -9
- package/dist/src/data/solver/backtrack/symbols/minesweeper.js +0 -44
- package/dist/src/data/solver/backtrack/symbols/myopia.d.ts +0 -7
- package/dist/src/data/solver/backtrack/symbols/myopia.js +0 -73
- package/dist/src/data/solver/backtrack/symbols/viewpoint.d.ts +0 -7
- package/dist/src/data/solver/backtrack/symbols/viewpoint.js +0 -51
- package/dist/src/data/solver/cspuz/cspuzSolver.d.ts +0 -13
- package/dist/src/data/solver/cspuz/cspuzSolver.js +0 -117
- package/dist/src/data/solver/cspuz/cspuzWorker.d.ts +0 -1
- package/dist/src/data/solver/cspuz/cspuzWorker.js +0 -82
- package/dist/src/data/solver/cspuz/jsonify.d.ts +0 -3
- package/dist/src/data/solver/cspuz/jsonify.js +0 -211
- package/dist/src/data/solver/eventIteratingSolver.d.ts +0 -8
- package/dist/src/data/solver/eventIteratingSolver.js +0 -54
- package/dist/src/data/solver/solver.d.ts +0 -77
- package/dist/src/data/solver/solver.js +0 -59
- package/dist/src/data/solver/universal/universalSolver.d.ts +0 -7
- package/dist/src/data/solver/universal/universalSolver.js +0 -13
- package/dist/src/data/solver/universal/universalWorker.d.ts +0 -1
- package/dist/src/data/solver/universal/universalWorker.js +0 -128
- package/dist/src/data/symbols/areaNumberSymbol.d.ts +0 -31
- package/dist/src/data/symbols/areaNumberSymbol.js +0 -80
- package/dist/src/data/symbols/customIconSymbol.d.ts +0 -35
- package/dist/src/data/symbols/customIconSymbol.js +0 -94
- package/dist/src/data/symbols/customSymbol.d.ts +0 -25
- package/dist/src/data/symbols/customSymbol.js +0 -45
- package/dist/src/data/symbols/customTextSymbol.d.ts +0 -35
- package/dist/src/data/symbols/customTextSymbol.js +0 -95
- package/dist/src/data/symbols/dartSymbol.d.ts +0 -36
- package/dist/src/data/symbols/dartSymbol.js +0 -96
- package/dist/src/data/symbols/directionLinkerSymbol.d.ts +0 -29
- package/dist/src/data/symbols/directionLinkerSymbol.js +0 -232
- package/dist/src/data/symbols/everyLetterSymbol.d.ts +0 -32
- package/dist/src/data/symbols/everyLetterSymbol.js +0 -119
- package/dist/src/data/symbols/focusSymbol.d.ts +0 -40
- package/dist/src/data/symbols/focusSymbol.js +0 -159
- package/dist/src/data/symbols/galaxySymbol.d.ts +0 -27
- package/dist/src/data/symbols/galaxySymbol.js +0 -61
- package/dist/src/data/symbols/hiddenSymbol.d.ts +0 -38
- package/dist/src/data/symbols/hiddenSymbol.js +0 -113
- package/dist/src/data/symbols/houseSymbol.d.ts +0 -33
- package/dist/src/data/symbols/houseSymbol.js +0 -104
- package/dist/src/data/symbols/index.d.ts +0 -3
- package/dist/src/data/symbols/index.js +0 -10
- package/dist/src/data/symbols/letterSymbol.d.ts +0 -32
- package/dist/src/data/symbols/letterSymbol.js +0 -118
- package/dist/src/data/symbols/lotusSymbol.d.ts +0 -30
- package/dist/src/data/symbols/lotusSymbol.js +0 -132
- package/dist/src/data/symbols/minesweeperSymbol.d.ts +0 -33
- package/dist/src/data/symbols/minesweeperSymbol.js +0 -106
- package/dist/src/data/symbols/myopiaSymbol.d.ts +0 -37
- package/dist/src/data/symbols/myopiaSymbol.js +0 -182
- package/dist/src/data/symbols/numberSymbol.d.ts +0 -19
- package/dist/src/data/symbols/numberSymbol.js +0 -32
- package/dist/src/data/symbols/symbol.d.ts +0 -29
- package/dist/src/data/symbols/symbol.js +0 -87
- package/dist/src/data/symbols/symbols.gen.d.ts +0 -14
- package/dist/src/data/symbols/symbols.gen.js +0 -18
- package/dist/src/data/symbols/viewpointSymbol.d.ts +0 -32
- package/dist/src/data/symbols/viewpointSymbol.js +0 -95
- package/dist/src/data/tile.d.ts +0 -26
- package/dist/src/data/tile.js +0 -56
- package/dist/src/data/tileConnections.d.ts +0 -25
- package/dist/src/data/tileConnections.js +0 -74
- package/dist/src/data/validate.d.ts +0 -5
- package/dist/src/data/validate.js +0 -131
- package/dist/src/data/validateAsync.d.ts +0 -15
- package/dist/src/data/validateAsync.js +0 -71
- package/dist/src/data/validateAsyncWorker.d.ts +0 -1
- package/dist/src/data/validateAsyncWorker.js +0 -9
- package/dist/src/index.d.ts +0 -108
- package/dist/src/index.js +0 -111
- package/dist/src/polyfill/streamPolyfill.d.ts +0 -2
- package/dist/src/polyfill/streamPolyfill.js +0 -1
|
@@ -1,179 +0,0 @@
|
|
|
1
|
-
import { ConfigType, } from '../config.js';
|
|
2
|
-
import SerializerV0, { orientationChars } from './serializer_v0.js';
|
|
3
|
-
import { DIRECTIONS, ORIENTATIONS, } from '../primitives.js';
|
|
4
|
-
import { escape } from '../dataHelper.js';
|
|
5
|
-
import { normalizeShape, tilesToShape } from '../shapes.js';
|
|
6
|
-
export default class SerializerChecksum extends SerializerV0 {
|
|
7
|
-
version = 4;
|
|
8
|
-
parseTile(_str) {
|
|
9
|
-
throw new Error('Checksum serializer does not support parsing');
|
|
10
|
-
}
|
|
11
|
-
stringifyControlLine(line) {
|
|
12
|
-
const result = [];
|
|
13
|
-
result.push(`c${line.column}`);
|
|
14
|
-
result.push(`r${line.rows.map(row => `n${row.note ?? ''}`).join(',')}`);
|
|
15
|
-
return result.join('|');
|
|
16
|
-
}
|
|
17
|
-
parseControlLine(_str) {
|
|
18
|
-
throw new Error('Checksum serializer does not support parsing');
|
|
19
|
-
}
|
|
20
|
-
stringifyConfig(instruction, config) {
|
|
21
|
-
switch (config.type) {
|
|
22
|
-
case ConfigType.Boolean:
|
|
23
|
-
return (config.field +
|
|
24
|
-
'=' +
|
|
25
|
-
(instruction[config.field] ? '1' : '0'));
|
|
26
|
-
case ConfigType.Number:
|
|
27
|
-
case ConfigType.Color:
|
|
28
|
-
case ConfigType.Comparison:
|
|
29
|
-
case ConfigType.Wrapping:
|
|
30
|
-
case ConfigType.Direction:
|
|
31
|
-
case ConfigType.Orientation:
|
|
32
|
-
return (config.field +
|
|
33
|
-
'=' +
|
|
34
|
-
String(instruction[config.field])
|
|
35
|
-
.toLowerCase()
|
|
36
|
-
.trim());
|
|
37
|
-
case ConfigType.NullableBoolean:
|
|
38
|
-
return (config.field +
|
|
39
|
-
'=' +
|
|
40
|
-
(instruction[config.field] === null
|
|
41
|
-
? ''
|
|
42
|
-
: instruction[config.field]
|
|
43
|
-
? '1'
|
|
44
|
-
: '0'));
|
|
45
|
-
case ConfigType.NullableNumber:
|
|
46
|
-
return (config.field +
|
|
47
|
-
'=' +
|
|
48
|
-
(instruction[config.field] === null
|
|
49
|
-
? ''
|
|
50
|
-
: String(instruction[config.field])));
|
|
51
|
-
case ConfigType.DirectionToggle:
|
|
52
|
-
return (config.field +
|
|
53
|
-
'=' +
|
|
54
|
-
DIRECTIONS.filter(dir => instruction[config.field][dir])
|
|
55
|
-
.map(x => orientationChars[x])
|
|
56
|
-
.join('')
|
|
57
|
-
.toLowerCase()
|
|
58
|
-
.trim());
|
|
59
|
-
case ConfigType.OrientationToggle:
|
|
60
|
-
return (config.field +
|
|
61
|
-
'=' +
|
|
62
|
-
ORIENTATIONS.filter(dir => instruction[config.field][dir])
|
|
63
|
-
.map(x => orientationChars[x])
|
|
64
|
-
.join('')
|
|
65
|
-
.toLowerCase()
|
|
66
|
-
.trim());
|
|
67
|
-
case ConfigType.String:
|
|
68
|
-
case ConfigType.Icon:
|
|
69
|
-
return (config.field +
|
|
70
|
-
'=' +
|
|
71
|
-
escape(instruction[config.field]
|
|
72
|
-
.toLowerCase()
|
|
73
|
-
.trim()));
|
|
74
|
-
case ConfigType.NullableNote:
|
|
75
|
-
return (config.field +
|
|
76
|
-
'=' +
|
|
77
|
-
escape(instruction[config.field] === null
|
|
78
|
-
? ''
|
|
79
|
-
: escape(String(instruction[config.field])
|
|
80
|
-
.toLowerCase()
|
|
81
|
-
.trim())));
|
|
82
|
-
case ConfigType.NullableInstrument:
|
|
83
|
-
return config.field + '='; // do not include instrument in checksum
|
|
84
|
-
case ConfigType.Tile:
|
|
85
|
-
case ConfigType.Grid:
|
|
86
|
-
return (config.field +
|
|
87
|
-
'=' +
|
|
88
|
-
escape(this.stringifyGrid(instruction[config.field])));
|
|
89
|
-
case ConfigType.Shape:
|
|
90
|
-
return (config.field +
|
|
91
|
-
'=' +
|
|
92
|
-
escape(normalizeShape(tilesToShape(instruction[config.field].tiles))
|
|
93
|
-
.elements.map(elm => `${elm.x}-${elm.y}-${elm.color}`)
|
|
94
|
-
.sort()
|
|
95
|
-
.join('/')));
|
|
96
|
-
case ConfigType.NullableGrid:
|
|
97
|
-
return (config.field +
|
|
98
|
-
'=' +
|
|
99
|
-
escape(instruction[config.field] === null
|
|
100
|
-
? ''
|
|
101
|
-
: this.stringifyGrid(instruction[config.field])));
|
|
102
|
-
case ConfigType.ControlLines:
|
|
103
|
-
return (config.field +
|
|
104
|
-
'=' +
|
|
105
|
-
escape(instruction[config.field]
|
|
106
|
-
.map(line => this.stringifyControlLine(line))
|
|
107
|
-
.join(':')));
|
|
108
|
-
case ConfigType.SolvePath:
|
|
109
|
-
return (config.field +
|
|
110
|
-
'=' +
|
|
111
|
-
escape(instruction[config.field]
|
|
112
|
-
?.map(pos => `${pos.x}_${pos.y}`)
|
|
113
|
-
.join('/') ?? ''));
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
parseConfig(_configs, _entry) {
|
|
117
|
-
throw new Error('Checksum serializer does not support parsing');
|
|
118
|
-
}
|
|
119
|
-
parseRule(_str) {
|
|
120
|
-
throw new Error('Checksum serializer does not support parsing');
|
|
121
|
-
}
|
|
122
|
-
parseSymbol(_str) {
|
|
123
|
-
throw new Error('Checksum serializer does not support parsing');
|
|
124
|
-
}
|
|
125
|
-
parseConnections(_input) {
|
|
126
|
-
throw new Error('Checksum serializer does not support parsing');
|
|
127
|
-
}
|
|
128
|
-
stringifyZones(zones) {
|
|
129
|
-
return `Z${zones.edges
|
|
130
|
-
.map(edge => `${edge.x1}_${edge.y1}_${edge.x2 - edge.x1}_${edge.y2 - edge.y1}`)
|
|
131
|
-
.sort()
|
|
132
|
-
.join(':')}`;
|
|
133
|
-
}
|
|
134
|
-
parseZones(_input) {
|
|
135
|
-
throw new Error('Checksum serializer does not support parsing');
|
|
136
|
-
}
|
|
137
|
-
parseTiles(_input) {
|
|
138
|
-
throw new Error('Checksum serializer does not support parsing');
|
|
139
|
-
}
|
|
140
|
-
stringifyRules(rules) {
|
|
141
|
-
return `R${rules
|
|
142
|
-
.filter(rule => rule.necessaryForCompletion)
|
|
143
|
-
.map(rule => this.stringifyRule(rule))
|
|
144
|
-
.sort()
|
|
145
|
-
.join(':')}`;
|
|
146
|
-
}
|
|
147
|
-
parseRules(_input) {
|
|
148
|
-
throw new Error('Checksum serializer does not support parsing');
|
|
149
|
-
}
|
|
150
|
-
stringifySymbols(symbols) {
|
|
151
|
-
return `S${Array.from(symbols.values())
|
|
152
|
-
.flat()
|
|
153
|
-
.filter(symbol => symbol.necessaryForCompletion)
|
|
154
|
-
.map(symbol => this.stringifySymbol(symbol))
|
|
155
|
-
.sort()
|
|
156
|
-
.join(':')}`;
|
|
157
|
-
}
|
|
158
|
-
parseSymbols(_input) {
|
|
159
|
-
throw new Error('Checksum serializer does not support parsing');
|
|
160
|
-
}
|
|
161
|
-
stringifyGrid(grid) {
|
|
162
|
-
return super.stringifyGrid(grid.resetTiles());
|
|
163
|
-
}
|
|
164
|
-
parseGrid(_input) {
|
|
165
|
-
throw new Error('Checksum serializer does not support parsing');
|
|
166
|
-
}
|
|
167
|
-
stringifyGridWithSolution(puzzle) {
|
|
168
|
-
return this.stringifyGrid(puzzle.grid);
|
|
169
|
-
}
|
|
170
|
-
parseGridWithSolution(_input) {
|
|
171
|
-
throw new Error('Checksum serializer does not support parsing');
|
|
172
|
-
}
|
|
173
|
-
stringifyPuzzle(puzzle) {
|
|
174
|
-
return this.stringifyGrid(puzzle.grid);
|
|
175
|
-
}
|
|
176
|
-
parsePuzzle(_input) {
|
|
177
|
-
throw new Error('Checksum serializer does not support parsing');
|
|
178
|
-
}
|
|
179
|
-
}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import GridData from '../grid.js';
|
|
2
|
-
import GridConnections from '../gridConnections.js';
|
|
3
|
-
import Rule from '../rules/rule.js';
|
|
4
|
-
import TileData from '../tile.js';
|
|
5
|
-
import Symbol from '../symbols/symbol.js';
|
|
6
|
-
import Instruction from '../instruction.js';
|
|
7
|
-
import { AnyConfig } from '../config.js';
|
|
8
|
-
import SerializerBase from './serializerBase.js';
|
|
9
|
-
import { Puzzle, PuzzleData } from '../puzzle.js';
|
|
10
|
-
import { ControlLine } from '../rules/musicControlLine.js';
|
|
11
|
-
import GridZones from '../gridZones.js';
|
|
12
|
-
export declare const OFFSETS: {
|
|
13
|
-
x: number;
|
|
14
|
-
y: number;
|
|
15
|
-
}[];
|
|
16
|
-
export declare const orientationChars: {
|
|
17
|
-
up: string;
|
|
18
|
-
"up-right": string;
|
|
19
|
-
right: string;
|
|
20
|
-
"down-right": string;
|
|
21
|
-
down: string;
|
|
22
|
-
"down-left": string;
|
|
23
|
-
left: string;
|
|
24
|
-
"up-left": string;
|
|
25
|
-
};
|
|
26
|
-
export default class SerializerV0 extends SerializerBase {
|
|
27
|
-
readonly version: number;
|
|
28
|
-
stringifyTile(tile: TileData): string;
|
|
29
|
-
parseTile(str: string): TileData;
|
|
30
|
-
stringifyControlLine(line: ControlLine): string;
|
|
31
|
-
parseControlLine(str: string): ControlLine;
|
|
32
|
-
stringifyConfig(instruction: Instruction, config: AnyConfig): string;
|
|
33
|
-
parseConfig(configs: readonly AnyConfig[], entry: string): [string, unknown];
|
|
34
|
-
stringifyInstruction(instruction: Instruction): string;
|
|
35
|
-
stringifyRule(rule: Rule): string;
|
|
36
|
-
stringifySymbol(symbol: Symbol): string;
|
|
37
|
-
parseRule(str: string): Rule;
|
|
38
|
-
parseSymbol(str: string): Symbol;
|
|
39
|
-
stringifyConnections(connections: GridConnections): string;
|
|
40
|
-
parseConnections(input: string): GridConnections;
|
|
41
|
-
stringifyZones(zones: GridZones): string;
|
|
42
|
-
parseZones(input: string): GridZones;
|
|
43
|
-
stringifyTiles(tiles: readonly (readonly TileData[])[]): string;
|
|
44
|
-
parseTiles(input: string): TileData[][];
|
|
45
|
-
stringifyRules(rules: readonly Rule[]): string;
|
|
46
|
-
parseRules(input: string): Rule[];
|
|
47
|
-
stringifySymbols(symbols: ReadonlyMap<string, readonly Symbol[]>): string;
|
|
48
|
-
parseSymbols(input: string): Map<string, Symbol[]>;
|
|
49
|
-
stringifyGrid(grid: GridData): string;
|
|
50
|
-
parseGrid(input: string): GridData;
|
|
51
|
-
stringifyGridWithSolution(puzzle: PuzzleData): string;
|
|
52
|
-
parseGridWithSolution(input: string): PuzzleData;
|
|
53
|
-
stringifyPuzzle(puzzle: Puzzle): string;
|
|
54
|
-
parsePuzzle(input: string): Puzzle;
|
|
55
|
-
}
|