@sudobility/sudojo_types 1.2.5 → 1.2.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.
package/dist/index.cjs CHANGED
@@ -4,7 +4,7 @@
4
4
  * TypeScript types for Sudojo API - Sudoku learning platform
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.BELT_ICON_VIEWBOX = exports.BELT_ICON_PATHS = exports.BELT_COLORS = exports.TECHNIQUE_TITLE_TO_ID = exports.TechniqueId = exports.HINT_LEVEL_LIMITS = void 0;
7
+ exports.DEFAULT_SCRAMBLE_CONFIG = exports.TOTAL_CELLS = exports.BLOCK_SIZE = exports.BOARD_SIZE = exports.BELT_ICON_VIEWBOX = exports.BELT_ICON_PATHS = exports.BELT_COLORS = exports.TECHNIQUE_TITLE_TO_ID = exports.TechniqueId = exports.HINT_LEVEL_LIMITS = void 0;
8
8
  exports.successResponse = successResponse;
9
9
  exports.errorResponse = errorResponse;
10
10
  exports.techniqueToBit = techniqueToBit;
@@ -14,6 +14,10 @@ exports.getBeltForLevel = getBeltForLevel;
14
14
  exports.getAllBelts = getAllBelts;
15
15
  exports.getBeltIconSvg = getBeltIconSvg;
16
16
  exports.getBeltIconForLevel = getBeltIconForLevel;
17
+ exports.parseBoardString = parseBoardString;
18
+ exports.stringifyBoard = stringifyBoard;
19
+ exports.scrambleBoard = scrambleBoard;
20
+ exports.noScramble = noScramble;
17
21
  /** Create a success response */
18
22
  function successResponse(data) {
19
23
  return {
@@ -187,4 +191,325 @@ function getBeltIconForLevel(levelIndex, width = 100, height = 40) {
187
191
  return null;
188
192
  return getBeltIconSvg(belt.hex, width, height);
189
193
  }
194
+ // =============================================================================
195
+ // Board Utilities (for parsing and manipulating Sudoku boards)
196
+ // =============================================================================
197
+ /** Board size constant (9x9 grid) */
198
+ exports.BOARD_SIZE = 9;
199
+ /** Block size constant (3x3 blocks) */
200
+ exports.BLOCK_SIZE = 3;
201
+ /** Total cells in a board */
202
+ exports.TOTAL_CELLS = exports.BOARD_SIZE * exports.BOARD_SIZE;
203
+ /**
204
+ * Parses an 81-character board string into a 2D array of numbers
205
+ * @param boardString - 81-character string where '0' or '.' represents empty cells
206
+ * @returns 9x9 array of numbers (0 = empty, 1-9 = filled)
207
+ */
208
+ function parseBoardString(boardString) {
209
+ if (boardString.length !== exports.TOTAL_CELLS) {
210
+ throw new Error(`Invalid board string length: expected ${exports.TOTAL_CELLS}, got ${boardString.length}`);
211
+ }
212
+ const board = [];
213
+ for (let row = 0; row < exports.BOARD_SIZE; row++) {
214
+ const rowArray = [];
215
+ for (let col = 0; col < exports.BOARD_SIZE; col++) {
216
+ const index = row * exports.BOARD_SIZE + col;
217
+ const char = boardString[index];
218
+ if (char === undefined) {
219
+ throw new Error(`Missing character at position ${index}`);
220
+ }
221
+ const value = char === '.' ? 0 : parseInt(char, 10);
222
+ if (isNaN(value) || value < 0 || value > 9) {
223
+ throw new Error(`Invalid character at position ${index}: '${char}'`);
224
+ }
225
+ rowArray.push(value);
226
+ }
227
+ board.push(rowArray);
228
+ }
229
+ return board;
230
+ }
231
+ /**
232
+ * Converts a 2D number array back to an 81-character string
233
+ * @param board - 9x9 array of numbers
234
+ * @returns 81-character string
235
+ */
236
+ function stringifyBoard(board) {
237
+ if (board.length !== exports.BOARD_SIZE) {
238
+ throw new Error(`Invalid board rows: expected ${exports.BOARD_SIZE}, got ${board.length}`);
239
+ }
240
+ let result = '';
241
+ for (let row = 0; row < exports.BOARD_SIZE; row++) {
242
+ if (board[row]?.length !== exports.BOARD_SIZE) {
243
+ throw new Error(`Invalid row ${row} length: expected ${exports.BOARD_SIZE}, got ${board[row]?.length}`);
244
+ }
245
+ for (let col = 0; col < exports.BOARD_SIZE; col++) {
246
+ const value = board[row]?.[col];
247
+ if (value === undefined || value < 0 || value > 9) {
248
+ throw new Error(`Invalid value at (${row}, ${col}): ${value}`);
249
+ }
250
+ result += value.toString();
251
+ }
252
+ }
253
+ return result;
254
+ }
255
+ /**
256
+ * Default scramble configuration (all transformations enabled)
257
+ */
258
+ exports.DEFAULT_SCRAMBLE_CONFIG = {
259
+ scrambleRows: true,
260
+ scrambleColumns: true,
261
+ scrambleRowBlocks: true,
262
+ scrambleColumnBlocks: true,
263
+ scrambleDigits: true,
264
+ rotate: true,
265
+ mirror: true,
266
+ };
267
+ /**
268
+ * Fisher-Yates shuffle algorithm for arrays
269
+ */
270
+ function shuffleArray(array) {
271
+ for (let i = array.length - 1; i > 0; i--) {
272
+ const j = Math.floor(Math.random() * (i + 1));
273
+ const temp = array[i];
274
+ array[i] = array[j];
275
+ array[j] = temp;
276
+ }
277
+ return array;
278
+ }
279
+ /**
280
+ * Creates a random digit mapping (1-9 -> 1-9)
281
+ */
282
+ function createDigitMapping() {
283
+ const digits = [1, 2, 3, 4, 5, 6, 7, 8, 9];
284
+ const shuffled = shuffleArray([...digits]);
285
+ const mapping = new Map();
286
+ for (let i = 0; i < digits.length; i++) {
287
+ mapping.set(digits[i], shuffled[i]);
288
+ }
289
+ return mapping;
290
+ }
291
+ /**
292
+ * Creates the reverse of a digit mapping
293
+ */
294
+ function reverseDigitMapping(mapping) {
295
+ const reverse = new Map();
296
+ for (const [original, scrambled] of mapping) {
297
+ reverse.set(scrambled, original);
298
+ }
299
+ return reverse;
300
+ }
301
+ /**
302
+ * Applies digit mapping to a board
303
+ */
304
+ function applyDigitMapping(board, mapping) {
305
+ return board.map((row) => row.map((value) => {
306
+ if (value === 0)
307
+ return 0;
308
+ return mapping.get(value) ?? value;
309
+ }));
310
+ }
311
+ /**
312
+ * Rotates the board 90 degrees clockwise
313
+ */
314
+ function rotateBoard90(board) {
315
+ const rotated = [];
316
+ for (let col = 0; col < exports.BOARD_SIZE; col++) {
317
+ const newRow = [];
318
+ for (let row = exports.BOARD_SIZE - 1; row >= 0; row--) {
319
+ newRow.push(board[row]?.[col] ?? 0);
320
+ }
321
+ rotated.push(newRow);
322
+ }
323
+ return rotated;
324
+ }
325
+ /**
326
+ * Mirrors the board horizontally (left-right)
327
+ */
328
+ function mirrorHorizontally(board) {
329
+ return board.map((row) => [...row].reverse());
330
+ }
331
+ /**
332
+ * Mirrors the board vertically (top-bottom)
333
+ */
334
+ function mirrorVertically(board) {
335
+ return [...board].reverse().map((row) => [...row]);
336
+ }
337
+ /**
338
+ * Scrambles a Sudoku board while preserving its logical structure.
339
+ *
340
+ * Scrambling preserves the logical structure of a Sudoku puzzle while making it
341
+ * appear different. This is useful for:
342
+ * - Preventing players from recognizing puzzles they've seen before
343
+ * - Creating variety from a limited puzzle database
344
+ * - Making it harder to look up solutions online
345
+ *
346
+ * @param puzzle - 81-character puzzle string
347
+ * @param solution - 81-character solution string
348
+ * @param config - Scramble configuration (defaults to all transformations enabled)
349
+ * @returns Scramble result with scrambled puzzle, solution, and digit mapping
350
+ *
351
+ * @example
352
+ * ```typescript
353
+ * const result = scrambleBoard(puzzle, solution);
354
+ * console.log(result.puzzle); // Scrambled puzzle
355
+ * console.log(result.solution); // Scrambled solution
356
+ * console.log(result.digitMapping); // Map from original to scrambled digits
357
+ * ```
358
+ */
359
+ function scrambleBoard(puzzle, solution, config = exports.DEFAULT_SCRAMBLE_CONFIG) {
360
+ // Parse the boards
361
+ let puzzleBoard = parseBoardString(puzzle);
362
+ let solutionBoard = parseBoardString(solution);
363
+ // Create digit mapping (applied to both puzzle and solution)
364
+ let digitMapping = new Map();
365
+ for (let i = 1; i <= 9; i++) {
366
+ digitMapping.set(i, i); // Identity mapping by default
367
+ }
368
+ if (config.scrambleDigits) {
369
+ digitMapping = createDigitMapping();
370
+ puzzleBoard = applyDigitMapping(puzzleBoard, digitMapping);
371
+ solutionBoard = applyDigitMapping(solutionBoard, digitMapping);
372
+ }
373
+ // Scramble rows within blocks
374
+ if (config.scrambleRows) {
375
+ const rowPermutations = [];
376
+ for (let blockRow = 0; blockRow < exports.BLOCK_SIZE; blockRow++) {
377
+ rowPermutations.push(shuffleArray([0, 1, 2]));
378
+ }
379
+ const applyRowPermutation = (board) => {
380
+ for (let blockRow = 0; blockRow < exports.BLOCK_SIZE; blockRow++) {
381
+ const startRow = blockRow * exports.BLOCK_SIZE;
382
+ const perm = rowPermutations[blockRow];
383
+ const rowsCopy = [
384
+ [...(board[startRow] ?? [])],
385
+ [...(board[startRow + 1] ?? [])],
386
+ [...(board[startRow + 2] ?? [])],
387
+ ];
388
+ for (let i = 0; i < exports.BLOCK_SIZE; i++) {
389
+ board[startRow + i] = rowsCopy[perm[i]];
390
+ }
391
+ }
392
+ };
393
+ applyRowPermutation(puzzleBoard);
394
+ applyRowPermutation(solutionBoard);
395
+ }
396
+ // Scramble columns within blocks
397
+ if (config.scrambleColumns) {
398
+ const colPermutations = [];
399
+ for (let blockCol = 0; blockCol < exports.BLOCK_SIZE; blockCol++) {
400
+ colPermutations.push(shuffleArray([0, 1, 2]));
401
+ }
402
+ const applyColPermutation = (board) => {
403
+ for (let blockCol = 0; blockCol < exports.BLOCK_SIZE; blockCol++) {
404
+ const startCol = blockCol * exports.BLOCK_SIZE;
405
+ const perm = colPermutations[blockCol];
406
+ for (let row = 0; row < exports.BOARD_SIZE; row++) {
407
+ const boardRow = board[row];
408
+ if (boardRow) {
409
+ const colsCopy = [
410
+ boardRow[startCol],
411
+ boardRow[startCol + 1],
412
+ boardRow[startCol + 2],
413
+ ];
414
+ for (let i = 0; i < exports.BLOCK_SIZE; i++) {
415
+ boardRow[startCol + i] = colsCopy[perm[i]];
416
+ }
417
+ }
418
+ }
419
+ }
420
+ };
421
+ applyColPermutation(puzzleBoard);
422
+ applyColPermutation(solutionBoard);
423
+ }
424
+ // Scramble row blocks
425
+ if (config.scrambleRowBlocks) {
426
+ const blockOrder = shuffleArray([0, 1, 2]);
427
+ const applyRowBlockPermutation = (board) => {
428
+ const allRows = board.map((row) => [...row]);
429
+ const result = [];
430
+ for (let newBlockIndex = 0; newBlockIndex < exports.BLOCK_SIZE; newBlockIndex++) {
431
+ const oldBlockIndex = blockOrder[newBlockIndex];
432
+ for (let i = 0; i < exports.BLOCK_SIZE; i++) {
433
+ result.push(allRows[oldBlockIndex * exports.BLOCK_SIZE + i]);
434
+ }
435
+ }
436
+ return result;
437
+ };
438
+ puzzleBoard = applyRowBlockPermutation(puzzleBoard);
439
+ solutionBoard = applyRowBlockPermutation(solutionBoard);
440
+ }
441
+ // Scramble column blocks
442
+ if (config.scrambleColumnBlocks) {
443
+ const blockOrder = shuffleArray([0, 1, 2]);
444
+ const applyColBlockPermutation = (board) => {
445
+ const result = board.map(() => new Array(exports.BOARD_SIZE).fill(0));
446
+ for (let newBlockIndex = 0; newBlockIndex < exports.BLOCK_SIZE; newBlockIndex++) {
447
+ const oldBlockIndex = blockOrder[newBlockIndex];
448
+ for (let i = 0; i < exports.BLOCK_SIZE; i++) {
449
+ const oldCol = oldBlockIndex * exports.BLOCK_SIZE + i;
450
+ const newCol = newBlockIndex * exports.BLOCK_SIZE + i;
451
+ for (let row = 0; row < exports.BOARD_SIZE; row++) {
452
+ const resultRow = result[row];
453
+ if (resultRow) {
454
+ resultRow[newCol] = board[row]?.[oldCol] ?? 0;
455
+ }
456
+ }
457
+ }
458
+ }
459
+ return result;
460
+ };
461
+ puzzleBoard = applyColBlockPermutation(puzzleBoard);
462
+ solutionBoard = applyColBlockPermutation(solutionBoard);
463
+ }
464
+ // Rotate
465
+ if (config.rotate) {
466
+ const rotations = Math.floor(Math.random() * 4);
467
+ for (let i = 0; i < rotations; i++) {
468
+ puzzleBoard = rotateBoard90(puzzleBoard);
469
+ solutionBoard = rotateBoard90(solutionBoard);
470
+ }
471
+ }
472
+ // Mirror
473
+ if (config.mirror) {
474
+ const mirrorType = Math.floor(Math.random() * 4);
475
+ const applyMirror = (board) => {
476
+ switch (mirrorType) {
477
+ case 1:
478
+ return mirrorHorizontally(board);
479
+ case 2:
480
+ return mirrorVertically(board);
481
+ case 3:
482
+ return mirrorVertically(mirrorHorizontally(board));
483
+ default:
484
+ return board;
485
+ }
486
+ };
487
+ puzzleBoard = applyMirror(puzzleBoard);
488
+ solutionBoard = applyMirror(solutionBoard);
489
+ }
490
+ return {
491
+ puzzle: stringifyBoard(puzzleBoard),
492
+ solution: stringifyBoard(solutionBoard),
493
+ digitMapping,
494
+ reverseDigitMapping: reverseDigitMapping(digitMapping),
495
+ };
496
+ }
497
+ /**
498
+ * Creates an identity scramble result (no scrambling)
499
+ * @param puzzle - 81-character puzzle string
500
+ * @param solution - 81-character solution string
501
+ * @returns ScrambleResult with identity mapping
502
+ */
503
+ function noScramble(puzzle, solution) {
504
+ const identityMapping = new Map();
505
+ for (let i = 1; i <= 9; i++) {
506
+ identityMapping.set(i, i);
507
+ }
508
+ return {
509
+ puzzle,
510
+ solution,
511
+ digitMapping: identityMapping,
512
+ reverseDigitMapping: identityMapping,
513
+ };
514
+ }
190
515
  //# sourceMappingURL=index.js.map
package/dist/index.d.ts CHANGED
@@ -388,6 +388,36 @@ export interface TechniqueExampleUpdateRequest {
388
388
  hint_data: Optional<string>;
389
389
  source_board_uuid: Optional<string | null>;
390
390
  }
391
+ export interface TechniquePractice {
392
+ uuid: string;
393
+ /** Reference to the technique this practice is for */
394
+ technique_uuid: string | null;
395
+ /** Board state (merged - looks like fresh puzzle) */
396
+ board: string;
397
+ /** Pencilmarks at this state (comma-delimited) */
398
+ pencilmarks: string | null;
399
+ /** Solution for reference */
400
+ solution: string;
401
+ /** Hint data as JSON string */
402
+ hint_data: string | null;
403
+ /** Source example UUID for reference */
404
+ source_example_uuid: string | null;
405
+ created_at: Date | null;
406
+ }
407
+ export interface TechniquePracticeCreateRequest {
408
+ technique_uuid: string;
409
+ board: string;
410
+ pencilmarks: Optional<string>;
411
+ solution: string;
412
+ hint_data: Optional<string>;
413
+ source_example_uuid: Optional<string | null>;
414
+ }
415
+ /** Practice count item for list endpoint */
416
+ export interface TechniquePracticeCountItem {
417
+ technique_uuid: string;
418
+ technique_title: string;
419
+ count: number;
420
+ }
391
421
  /** Belt information for a level */
392
422
  export interface Belt {
393
423
  /** Belt name (e.g., "White", "Yellow") */
@@ -439,4 +469,88 @@ export declare function getBeltIconSvg(fill: string, width?: number, height?: nu
439
469
  * @returns SVG string or null if level is invalid
440
470
  */
441
471
  export declare function getBeltIconForLevel(levelIndex: number, width?: number, height?: number): string | null;
472
+ /** Board size constant (9x9 grid) */
473
+ export declare const BOARD_SIZE = 9;
474
+ /** Block size constant (3x3 blocks) */
475
+ export declare const BLOCK_SIZE = 3;
476
+ /** Total cells in a board */
477
+ export declare const TOTAL_CELLS: number;
478
+ /**
479
+ * Parses an 81-character board string into a 2D array of numbers
480
+ * @param boardString - 81-character string where '0' or '.' represents empty cells
481
+ * @returns 9x9 array of numbers (0 = empty, 1-9 = filled)
482
+ */
483
+ export declare function parseBoardString(boardString: string): number[][];
484
+ /**
485
+ * Converts a 2D number array back to an 81-character string
486
+ * @param board - 9x9 array of numbers
487
+ * @returns 81-character string
488
+ */
489
+ export declare function stringifyBoard(board: number[][]): string;
490
+ /**
491
+ * Scramble configuration options
492
+ */
493
+ export interface ScrambleConfig {
494
+ /** Whether to scramble rows within blocks */
495
+ scrambleRows: boolean;
496
+ /** Whether to scramble columns within blocks */
497
+ scrambleColumns: boolean;
498
+ /** Whether to scramble row blocks (groups of 3 rows) */
499
+ scrambleRowBlocks: boolean;
500
+ /** Whether to scramble column blocks (groups of 3 columns) */
501
+ scrambleColumnBlocks: boolean;
502
+ /** Whether to scramble digit mapping (1-9 -> 1-9) */
503
+ scrambleDigits: boolean;
504
+ /** Whether to rotate the board (0, 90, 180, 270 degrees) */
505
+ rotate: boolean;
506
+ /** Whether to mirror the board */
507
+ mirror: boolean;
508
+ }
509
+ /**
510
+ * Default scramble configuration (all transformations enabled)
511
+ */
512
+ export declare const DEFAULT_SCRAMBLE_CONFIG: ScrambleConfig;
513
+ /**
514
+ * Result of scrambling a board
515
+ */
516
+ export interface ScrambleResult {
517
+ /** The scrambled puzzle string */
518
+ puzzle: string;
519
+ /** The scrambled solution string */
520
+ solution: string;
521
+ /** The digit mapping used (original -> scrambled) */
522
+ digitMapping: Map<number, number>;
523
+ /** The reverse digit mapping (scrambled -> original) */
524
+ reverseDigitMapping: Map<number, number>;
525
+ }
526
+ /**
527
+ * Scrambles a Sudoku board while preserving its logical structure.
528
+ *
529
+ * Scrambling preserves the logical structure of a Sudoku puzzle while making it
530
+ * appear different. This is useful for:
531
+ * - Preventing players from recognizing puzzles they've seen before
532
+ * - Creating variety from a limited puzzle database
533
+ * - Making it harder to look up solutions online
534
+ *
535
+ * @param puzzle - 81-character puzzle string
536
+ * @param solution - 81-character solution string
537
+ * @param config - Scramble configuration (defaults to all transformations enabled)
538
+ * @returns Scramble result with scrambled puzzle, solution, and digit mapping
539
+ *
540
+ * @example
541
+ * ```typescript
542
+ * const result = scrambleBoard(puzzle, solution);
543
+ * console.log(result.puzzle); // Scrambled puzzle
544
+ * console.log(result.solution); // Scrambled solution
545
+ * console.log(result.digitMapping); // Map from original to scrambled digits
546
+ * ```
547
+ */
548
+ export declare function scrambleBoard(puzzle: string, solution: string, config?: ScrambleConfig): ScrambleResult;
549
+ /**
550
+ * Creates an identity scramble result (no scrambling)
551
+ * @param puzzle - 81-character puzzle string
552
+ * @param solution - 81-character solution string
553
+ * @returns ScrambleResult with identity mapping
554
+ */
555
+ export declare function noScramble(puzzle: string, solution: string): ScrambleResult;
442
556
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,YAAY,EACV,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,iBAAiB,EACjB,cAAc,EACd,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAMlD,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,qBAAqB,EAAE,OAAO,GAAG,IAAI,CAAC;IACtC,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,OAAO,GAAG,IAAI,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;CACzB;AAOD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACvB,qBAAqB,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACxB,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACxB,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACvB,qBAAqB,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;CAC1C;AAGD,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;CACxB;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC7B,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACxB,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACxB,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;CACxB;AAGD,MAAM,WAAW,qBAAqB;IACpC,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAChC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACvB,SAAS,EAAE,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,qBAAqB;IACpC,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACjC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACxB,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAChC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACvB,SAAS,EAAE,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CACpC;AAGD,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACpC,WAAW,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACpC,WAAW,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC/B,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACxB,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC3B,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;CAC9B;AAGD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACpC,UAAU,EAAE,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACpC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACvB,UAAU,EAAE,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACpC,UAAU,EAAE,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACpC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC7B,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACxB,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;CAC5B;AAGD,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACpC,UAAU,EAAE,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACpC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACpC,UAAU,EAAE,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACpC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC7B,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACxB,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;CAC5B;AAMD,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,mBAAmB;IAClC,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACjC,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC7B,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;CAC9B;AAMD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,gCAAgC;AAChC,wBAAgB,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAM3D;AAED,+BAA+B;AAC/B,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAMhE;AAMD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAMD,MAAM,WAAW,qBAAqB;IACpC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,yBAAyB,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,qBAAqB,GAAG,IAAI,CAAC;CAC3C;AAMD,yCAAyC;AACzC,MAAM,WAAW,iBAAiB;IAChC,8CAA8C;IAC9C,IAAI,EAAE,OAAO,CAAC;IACd,2EAA2E;IAC3E,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,sCAAsC;AACtC,MAAM,WAAW,WAAW;IAC1B,kDAAkD;IAClD,QAAQ,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,uCAAuC;IACvC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,sBAAsB;IACtB,WAAW,EAAE,iBAAiB,GAAG,IAAI,CAAC;CACvC;AAED,0BAA0B;AAC1B,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC;AAExD,6BAA6B;AAC7B,MAAM,MAAM,WAAW,GACnB,MAAM,GACN,OAAO,GACP,MAAM,GACN,MAAM,GACN,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,KAAK,GACL,OAAO,GACP,OAAO,CAAC;AAEZ,kCAAkC;AAClC,MAAM,WAAW,cAAc;IAC7B,2CAA2C;IAC3C,IAAI,EAAE,cAAc,CAAC;IACrB,sBAAsB;IACtB,KAAK,EAAE,WAAW,CAAC;IACnB,uBAAuB;IACvB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,mCAAmC;AACnC,MAAM,WAAW,iBAAiB;IAChC,oCAAoC;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,uCAAuC;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,4CAA4C;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,iCAAiC;AACjC,MAAM,WAAW,cAAc;IAC7B,sBAAsB;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,yBAAyB;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,sBAAsB;IACtB,KAAK,EAAE,WAAW,CAAC;IACnB,0CAA0C;IAC1C,IAAI,EAAE,OAAO,CAAC;IACd,sCAAsC;IACtC,OAAO,EAAE,iBAAiB,CAAC;CAC5B;AAED,qCAAqC;AACrC,MAAM,WAAW,cAAc;IAC7B,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,mCAAmC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,yBAAyB;IACzB,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,iCAAiC;IACjC,KAAK,EAAE,cAAc,EAAE,CAAC;CACzB;AAED,6BAA6B;AAC7B,MAAM,WAAW,WAAW;IAC1B,uBAAuB;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,0BAA0B;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,2BAA2B;IAC3B,KAAK,EAAE,cAAc,EAAE,CAAC;CACzB;AAED,8CAA8C;AAC9C,MAAM,WAAW,eAAe;IAC9B,uBAAuB;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,0BAA0B;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB;IAClB,KAAK,EAAE,WAAW,CAAC;CACpB;AAED,+CAA+C;AAC/C,MAAM,WAAW,SAAS;IACxB,0BAA0B;IAC1B,KAAK,EAAE,eAAe,CAAC;IACvB,uBAAuB;IACvB,KAAK,EAAE,WAAW,CAAC;CACpB;AAMD,yCAAyC;AACzC,MAAM,MAAM,mBAAmB,GAAG,WAAW,GAAG,iBAAiB,GAAG,mBAAmB,CAAC;AAExF,8CAA8C;AAC9C,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,UAAU,CAAC;AAEvD,8DAA8D;AAC9D,MAAM,WAAW,qBAAqB;IACpC,2CAA2C;IAC3C,IAAI,EAAE,oBAAoB,CAAC;IAC3B,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,SAAS,EAAE,MAAM,CAAC;IAClB,yDAAyD;IACzD,mBAAmB,EAAE,eAAe,CAAC;IACrC,+BAA+B;IAC/B,SAAS,EAAE,mBAAmB,CAAC;CAChC;AAED,oDAAoD;AACpD,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,KAAK,CAAC;IACf,KAAK,EAAE,qBAAqB,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,uCAAuC;AACvC,eAAO,MAAM,iBAAiB;;;;CAIpB,CAAC;AAEX,kDAAkD;AAClD,MAAM,WAAW,YAAY;IAC3B,+DAA+D;IAC/D,KAAK,EAAE,eAAe,CAAC;IACvB,+BAA+B;IAC/B,KAAK,EAAE,IAAI,CAAC;CACb;AAED,kDAAkD;AAClD,MAAM,WAAW,YAAY;IAC3B,0EAA0E;IAC1E,KAAK,EAAE,eAAe,CAAC;IACvB,+BAA+B;IAC/B,KAAK,EAAE,IAAI,CAAC;CACb;AAMD;;;GAGG;AACH,oBAAY,WAAW;IACrB,UAAU,IAAI;IACd,aAAa,IAAI;IACjB,YAAY,IAAI;IAChB,WAAW,IAAI;IACf,UAAU,IAAI;IACd,iBAAiB,IAAI;IACrB,aAAa,IAAI;IACjB,YAAY,IAAI;IAChB,WAAW,IAAI;IACf,UAAU,KAAK;IACf,MAAM,KAAK;IACX,SAAS,KAAK;IACd,SAAS,KAAK;IACd,OAAO,KAAK;IACZ,aAAa,KAAK;IAClB,SAAS,KAAK;IACd,gBAAgB,KAAK;IACrB,gBAAgB,KAAK;IACrB,QAAQ,KAAK;IACb,SAAS,KAAK;IACd,kBAAkB,KAAK;IACvB,gBAAgB,KAAK;IACrB,SAAS,KAAK;CACf;AAED,uFAAuF;AACvF,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAwB7D,CAAC;AAEF,gEAAgE;AAChE,wBAAgB,cAAc,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,CAE/D;AAED,oDAAoD;AACpD,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,GAAG,OAAO,CAEhF;AAED,oCAAoC;AACpC,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,GAAG,MAAM,CAE/E;AAMD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,6BAA6B;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,mBAAmB,EAAE,MAAM,CAAC;IAC5B,yDAAyD;IACzD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,+BAA+B;IAC/B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,sCAAsC;IACtC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,6BAA6B;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC5B,iBAAiB,EAAE,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,6BAA6B;IAC5C,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACxB,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9B,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC3B,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACtC,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACpC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC5B,iBAAiB,EAAE,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CAC5C;AAMD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,qDAAqD;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,6BAA6B;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,+BAA+B;IAC/B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,wCAAwC;IACxC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,8BAA8B;IAC7C,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC5B,mBAAmB,EAAE,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CAC9C;AAED,4CAA4C;AAC5C,MAAM,WAAW,0BAA0B;IACzC,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;CACf;AAMD,mCAAmC;AACnC,MAAM,WAAW,IAAI;IACnB,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,8CAA8C;AAC9C,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAU5C,CAAC;AAEF,iDAAiD;AACjD,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAE/D;AAED,iDAAiD;AACjD,wBAAgB,WAAW,IAAI,IAAI,EAAE,CAEpC;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,UAS3B,CAAC;AAEF,yCAAyC;AACzC,eAAO,MAAM,iBAAiB,wBAAwB,CAAC;AAEvD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,KAAK,GAAE,MAAY,EACnB,MAAM,GAAE,MAAW,EACnB,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM,CAaR;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,KAAK,GAAE,MAAY,EACnB,MAAM,GAAE,MAAW,GAClB,MAAM,GAAG,IAAI,CAIf;AAMD,qCAAqC;AACrC,eAAO,MAAM,UAAU,IAAI,CAAC;AAE5B,uCAAuC;AACvC,eAAO,MAAM,UAAU,IAAI,CAAC;AAE5B,6BAA6B;AAC7B,eAAO,MAAM,WAAW,QAA0B,CAAC;AAEnD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,CAyBhE;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,CAuBxD;AAMD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,6CAA6C;IAC7C,YAAY,EAAE,OAAO,CAAC;IACtB,gDAAgD;IAChD,eAAe,EAAE,OAAO,CAAC;IACzB,wDAAwD;IACxD,iBAAiB,EAAE,OAAO,CAAC;IAC3B,8DAA8D;IAC9D,oBAAoB,EAAE,OAAO,CAAC;IAC9B,qDAAqD;IACrD,cAAc,EAAE,OAAO,CAAC;IACxB,4DAA4D;IAC5D,MAAM,EAAE,OAAO,CAAC;IAChB,kCAAkC;IAClC,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,cAQrC,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,kCAAkC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,wDAAwD;IACxD,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1C;AAoFD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,MAAM,GAAE,cAAwC,GAC/C,cAAc,CA0JhB;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,cAAc,CAY3E"}
package/dist/index.js CHANGED
@@ -4,7 +4,7 @@
4
4
  * TypeScript types for Sudojo API - Sudoku learning platform
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.BELT_ICON_VIEWBOX = exports.BELT_ICON_PATHS = exports.BELT_COLORS = exports.TECHNIQUE_TITLE_TO_ID = exports.TechniqueId = exports.HINT_LEVEL_LIMITS = void 0;
7
+ exports.DEFAULT_SCRAMBLE_CONFIG = exports.TOTAL_CELLS = exports.BLOCK_SIZE = exports.BOARD_SIZE = exports.BELT_ICON_VIEWBOX = exports.BELT_ICON_PATHS = exports.BELT_COLORS = exports.TECHNIQUE_TITLE_TO_ID = exports.TechniqueId = exports.HINT_LEVEL_LIMITS = void 0;
8
8
  exports.successResponse = successResponse;
9
9
  exports.errorResponse = errorResponse;
10
10
  exports.techniqueToBit = techniqueToBit;
@@ -14,6 +14,10 @@ exports.getBeltForLevel = getBeltForLevel;
14
14
  exports.getAllBelts = getAllBelts;
15
15
  exports.getBeltIconSvg = getBeltIconSvg;
16
16
  exports.getBeltIconForLevel = getBeltIconForLevel;
17
+ exports.parseBoardString = parseBoardString;
18
+ exports.stringifyBoard = stringifyBoard;
19
+ exports.scrambleBoard = scrambleBoard;
20
+ exports.noScramble = noScramble;
17
21
  /** Create a success response */
18
22
  function successResponse(data) {
19
23
  return {
@@ -187,4 +191,325 @@ function getBeltIconForLevel(levelIndex, width = 100, height = 40) {
187
191
  return null;
188
192
  return getBeltIconSvg(belt.hex, width, height);
189
193
  }
194
+ // =============================================================================
195
+ // Board Utilities (for parsing and manipulating Sudoku boards)
196
+ // =============================================================================
197
+ /** Board size constant (9x9 grid) */
198
+ exports.BOARD_SIZE = 9;
199
+ /** Block size constant (3x3 blocks) */
200
+ exports.BLOCK_SIZE = 3;
201
+ /** Total cells in a board */
202
+ exports.TOTAL_CELLS = exports.BOARD_SIZE * exports.BOARD_SIZE;
203
+ /**
204
+ * Parses an 81-character board string into a 2D array of numbers
205
+ * @param boardString - 81-character string where '0' or '.' represents empty cells
206
+ * @returns 9x9 array of numbers (0 = empty, 1-9 = filled)
207
+ */
208
+ function parseBoardString(boardString) {
209
+ if (boardString.length !== exports.TOTAL_CELLS) {
210
+ throw new Error(`Invalid board string length: expected ${exports.TOTAL_CELLS}, got ${boardString.length}`);
211
+ }
212
+ const board = [];
213
+ for (let row = 0; row < exports.BOARD_SIZE; row++) {
214
+ const rowArray = [];
215
+ for (let col = 0; col < exports.BOARD_SIZE; col++) {
216
+ const index = row * exports.BOARD_SIZE + col;
217
+ const char = boardString[index];
218
+ if (char === undefined) {
219
+ throw new Error(`Missing character at position ${index}`);
220
+ }
221
+ const value = char === '.' ? 0 : parseInt(char, 10);
222
+ if (isNaN(value) || value < 0 || value > 9) {
223
+ throw new Error(`Invalid character at position ${index}: '${char}'`);
224
+ }
225
+ rowArray.push(value);
226
+ }
227
+ board.push(rowArray);
228
+ }
229
+ return board;
230
+ }
231
+ /**
232
+ * Converts a 2D number array back to an 81-character string
233
+ * @param board - 9x9 array of numbers
234
+ * @returns 81-character string
235
+ */
236
+ function stringifyBoard(board) {
237
+ if (board.length !== exports.BOARD_SIZE) {
238
+ throw new Error(`Invalid board rows: expected ${exports.BOARD_SIZE}, got ${board.length}`);
239
+ }
240
+ let result = '';
241
+ for (let row = 0; row < exports.BOARD_SIZE; row++) {
242
+ if (board[row]?.length !== exports.BOARD_SIZE) {
243
+ throw new Error(`Invalid row ${row} length: expected ${exports.BOARD_SIZE}, got ${board[row]?.length}`);
244
+ }
245
+ for (let col = 0; col < exports.BOARD_SIZE; col++) {
246
+ const value = board[row]?.[col];
247
+ if (value === undefined || value < 0 || value > 9) {
248
+ throw new Error(`Invalid value at (${row}, ${col}): ${value}`);
249
+ }
250
+ result += value.toString();
251
+ }
252
+ }
253
+ return result;
254
+ }
255
+ /**
256
+ * Default scramble configuration (all transformations enabled)
257
+ */
258
+ exports.DEFAULT_SCRAMBLE_CONFIG = {
259
+ scrambleRows: true,
260
+ scrambleColumns: true,
261
+ scrambleRowBlocks: true,
262
+ scrambleColumnBlocks: true,
263
+ scrambleDigits: true,
264
+ rotate: true,
265
+ mirror: true,
266
+ };
267
+ /**
268
+ * Fisher-Yates shuffle algorithm for arrays
269
+ */
270
+ function shuffleArray(array) {
271
+ for (let i = array.length - 1; i > 0; i--) {
272
+ const j = Math.floor(Math.random() * (i + 1));
273
+ const temp = array[i];
274
+ array[i] = array[j];
275
+ array[j] = temp;
276
+ }
277
+ return array;
278
+ }
279
+ /**
280
+ * Creates a random digit mapping (1-9 -> 1-9)
281
+ */
282
+ function createDigitMapping() {
283
+ const digits = [1, 2, 3, 4, 5, 6, 7, 8, 9];
284
+ const shuffled = shuffleArray([...digits]);
285
+ const mapping = new Map();
286
+ for (let i = 0; i < digits.length; i++) {
287
+ mapping.set(digits[i], shuffled[i]);
288
+ }
289
+ return mapping;
290
+ }
291
+ /**
292
+ * Creates the reverse of a digit mapping
293
+ */
294
+ function reverseDigitMapping(mapping) {
295
+ const reverse = new Map();
296
+ for (const [original, scrambled] of mapping) {
297
+ reverse.set(scrambled, original);
298
+ }
299
+ return reverse;
300
+ }
301
+ /**
302
+ * Applies digit mapping to a board
303
+ */
304
+ function applyDigitMapping(board, mapping) {
305
+ return board.map((row) => row.map((value) => {
306
+ if (value === 0)
307
+ return 0;
308
+ return mapping.get(value) ?? value;
309
+ }));
310
+ }
311
+ /**
312
+ * Rotates the board 90 degrees clockwise
313
+ */
314
+ function rotateBoard90(board) {
315
+ const rotated = [];
316
+ for (let col = 0; col < exports.BOARD_SIZE; col++) {
317
+ const newRow = [];
318
+ for (let row = exports.BOARD_SIZE - 1; row >= 0; row--) {
319
+ newRow.push(board[row]?.[col] ?? 0);
320
+ }
321
+ rotated.push(newRow);
322
+ }
323
+ return rotated;
324
+ }
325
+ /**
326
+ * Mirrors the board horizontally (left-right)
327
+ */
328
+ function mirrorHorizontally(board) {
329
+ return board.map((row) => [...row].reverse());
330
+ }
331
+ /**
332
+ * Mirrors the board vertically (top-bottom)
333
+ */
334
+ function mirrorVertically(board) {
335
+ return [...board].reverse().map((row) => [...row]);
336
+ }
337
+ /**
338
+ * Scrambles a Sudoku board while preserving its logical structure.
339
+ *
340
+ * Scrambling preserves the logical structure of a Sudoku puzzle while making it
341
+ * appear different. This is useful for:
342
+ * - Preventing players from recognizing puzzles they've seen before
343
+ * - Creating variety from a limited puzzle database
344
+ * - Making it harder to look up solutions online
345
+ *
346
+ * @param puzzle - 81-character puzzle string
347
+ * @param solution - 81-character solution string
348
+ * @param config - Scramble configuration (defaults to all transformations enabled)
349
+ * @returns Scramble result with scrambled puzzle, solution, and digit mapping
350
+ *
351
+ * @example
352
+ * ```typescript
353
+ * const result = scrambleBoard(puzzle, solution);
354
+ * console.log(result.puzzle); // Scrambled puzzle
355
+ * console.log(result.solution); // Scrambled solution
356
+ * console.log(result.digitMapping); // Map from original to scrambled digits
357
+ * ```
358
+ */
359
+ function scrambleBoard(puzzle, solution, config = exports.DEFAULT_SCRAMBLE_CONFIG) {
360
+ // Parse the boards
361
+ let puzzleBoard = parseBoardString(puzzle);
362
+ let solutionBoard = parseBoardString(solution);
363
+ // Create digit mapping (applied to both puzzle and solution)
364
+ let digitMapping = new Map();
365
+ for (let i = 1; i <= 9; i++) {
366
+ digitMapping.set(i, i); // Identity mapping by default
367
+ }
368
+ if (config.scrambleDigits) {
369
+ digitMapping = createDigitMapping();
370
+ puzzleBoard = applyDigitMapping(puzzleBoard, digitMapping);
371
+ solutionBoard = applyDigitMapping(solutionBoard, digitMapping);
372
+ }
373
+ // Scramble rows within blocks
374
+ if (config.scrambleRows) {
375
+ const rowPermutations = [];
376
+ for (let blockRow = 0; blockRow < exports.BLOCK_SIZE; blockRow++) {
377
+ rowPermutations.push(shuffleArray([0, 1, 2]));
378
+ }
379
+ const applyRowPermutation = (board) => {
380
+ for (let blockRow = 0; blockRow < exports.BLOCK_SIZE; blockRow++) {
381
+ const startRow = blockRow * exports.BLOCK_SIZE;
382
+ const perm = rowPermutations[blockRow];
383
+ const rowsCopy = [
384
+ [...(board[startRow] ?? [])],
385
+ [...(board[startRow + 1] ?? [])],
386
+ [...(board[startRow + 2] ?? [])],
387
+ ];
388
+ for (let i = 0; i < exports.BLOCK_SIZE; i++) {
389
+ board[startRow + i] = rowsCopy[perm[i]];
390
+ }
391
+ }
392
+ };
393
+ applyRowPermutation(puzzleBoard);
394
+ applyRowPermutation(solutionBoard);
395
+ }
396
+ // Scramble columns within blocks
397
+ if (config.scrambleColumns) {
398
+ const colPermutations = [];
399
+ for (let blockCol = 0; blockCol < exports.BLOCK_SIZE; blockCol++) {
400
+ colPermutations.push(shuffleArray([0, 1, 2]));
401
+ }
402
+ const applyColPermutation = (board) => {
403
+ for (let blockCol = 0; blockCol < exports.BLOCK_SIZE; blockCol++) {
404
+ const startCol = blockCol * exports.BLOCK_SIZE;
405
+ const perm = colPermutations[blockCol];
406
+ for (let row = 0; row < exports.BOARD_SIZE; row++) {
407
+ const boardRow = board[row];
408
+ if (boardRow) {
409
+ const colsCopy = [
410
+ boardRow[startCol],
411
+ boardRow[startCol + 1],
412
+ boardRow[startCol + 2],
413
+ ];
414
+ for (let i = 0; i < exports.BLOCK_SIZE; i++) {
415
+ boardRow[startCol + i] = colsCopy[perm[i]];
416
+ }
417
+ }
418
+ }
419
+ }
420
+ };
421
+ applyColPermutation(puzzleBoard);
422
+ applyColPermutation(solutionBoard);
423
+ }
424
+ // Scramble row blocks
425
+ if (config.scrambleRowBlocks) {
426
+ const blockOrder = shuffleArray([0, 1, 2]);
427
+ const applyRowBlockPermutation = (board) => {
428
+ const allRows = board.map((row) => [...row]);
429
+ const result = [];
430
+ for (let newBlockIndex = 0; newBlockIndex < exports.BLOCK_SIZE; newBlockIndex++) {
431
+ const oldBlockIndex = blockOrder[newBlockIndex];
432
+ for (let i = 0; i < exports.BLOCK_SIZE; i++) {
433
+ result.push(allRows[oldBlockIndex * exports.BLOCK_SIZE + i]);
434
+ }
435
+ }
436
+ return result;
437
+ };
438
+ puzzleBoard = applyRowBlockPermutation(puzzleBoard);
439
+ solutionBoard = applyRowBlockPermutation(solutionBoard);
440
+ }
441
+ // Scramble column blocks
442
+ if (config.scrambleColumnBlocks) {
443
+ const blockOrder = shuffleArray([0, 1, 2]);
444
+ const applyColBlockPermutation = (board) => {
445
+ const result = board.map(() => new Array(exports.BOARD_SIZE).fill(0));
446
+ for (let newBlockIndex = 0; newBlockIndex < exports.BLOCK_SIZE; newBlockIndex++) {
447
+ const oldBlockIndex = blockOrder[newBlockIndex];
448
+ for (let i = 0; i < exports.BLOCK_SIZE; i++) {
449
+ const oldCol = oldBlockIndex * exports.BLOCK_SIZE + i;
450
+ const newCol = newBlockIndex * exports.BLOCK_SIZE + i;
451
+ for (let row = 0; row < exports.BOARD_SIZE; row++) {
452
+ const resultRow = result[row];
453
+ if (resultRow) {
454
+ resultRow[newCol] = board[row]?.[oldCol] ?? 0;
455
+ }
456
+ }
457
+ }
458
+ }
459
+ return result;
460
+ };
461
+ puzzleBoard = applyColBlockPermutation(puzzleBoard);
462
+ solutionBoard = applyColBlockPermutation(solutionBoard);
463
+ }
464
+ // Rotate
465
+ if (config.rotate) {
466
+ const rotations = Math.floor(Math.random() * 4);
467
+ for (let i = 0; i < rotations; i++) {
468
+ puzzleBoard = rotateBoard90(puzzleBoard);
469
+ solutionBoard = rotateBoard90(solutionBoard);
470
+ }
471
+ }
472
+ // Mirror
473
+ if (config.mirror) {
474
+ const mirrorType = Math.floor(Math.random() * 4);
475
+ const applyMirror = (board) => {
476
+ switch (mirrorType) {
477
+ case 1:
478
+ return mirrorHorizontally(board);
479
+ case 2:
480
+ return mirrorVertically(board);
481
+ case 3:
482
+ return mirrorVertically(mirrorHorizontally(board));
483
+ default:
484
+ return board;
485
+ }
486
+ };
487
+ puzzleBoard = applyMirror(puzzleBoard);
488
+ solutionBoard = applyMirror(solutionBoard);
489
+ }
490
+ return {
491
+ puzzle: stringifyBoard(puzzleBoard),
492
+ solution: stringifyBoard(solutionBoard),
493
+ digitMapping,
494
+ reverseDigitMapping: reverseDigitMapping(digitMapping),
495
+ };
496
+ }
497
+ /**
498
+ * Creates an identity scramble result (no scrambling)
499
+ * @param puzzle - 81-character puzzle string
500
+ * @param solution - 81-character solution string
501
+ * @returns ScrambleResult with identity mapping
502
+ */
503
+ function noScramble(puzzle, solution) {
504
+ const identityMapping = new Map();
505
+ for (let i = 1; i <= 9; i++) {
506
+ identityMapping.set(i, i);
507
+ }
508
+ return {
509
+ puzzle,
510
+ solution,
511
+ digitMapping: identityMapping,
512
+ reverseDigitMapping: identityMapping,
513
+ };
514
+ }
190
515
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sudobility/sudojo_types",
3
- "version": "1.2.5",
3
+ "version": "1.2.7",
4
4
  "description": "TypeScript types for Sudojo API - Sudoku learning platform",
5
5
  "main": "./dist/index.cjs",
6
6
  "module": "./dist/index.js",