@sudobility/sudojo_types 1.1.10 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CLAUDE.md CHANGED
@@ -4,26 +4,31 @@ This file provides context for AI assistants working on this codebase.
4
4
 
5
5
  ## Project Overview
6
6
 
7
- `@sudobility/sudojo-types` is a TypeScript types package for the Sudojo API (a Sudoku learning platform). It contains:
7
+ `@sudobility/sudojo_types` is a TypeScript types package for the Sudojo API (a Sudoku learning platform). It contains:
8
8
  - Entity types (database models)
9
9
  - Request/response types for API endpoints
10
10
  - Query parameter types
11
11
  - Helper functions for creating responses
12
12
 
13
- ## Commands
13
+ Published to npm under `@sudobility` scope with public access.
14
+
15
+ ## Runtime & Package Manager
16
+
17
+ **This project uses Bun.** Do not use npm, yarn, or pnpm.
14
18
 
15
19
  ```bash
16
- npm run verify # Run all checks (typecheck, lint, test, build)
17
- npm run typecheck # Type-check without emitting
18
- npm run lint # Run ESLint
19
- npm run lint:fix # Run ESLint with auto-fix
20
- npm run format # Format code with Prettier
21
- npm run format:check # Check formatting without changes
22
- npm run build # Build ESM and CJS outputs to dist/
23
- npm run clean # Remove dist/
24
- npm run dev # Watch mode for development
25
- npm test # Run tests once
26
- npm run test:watch # Run tests in watch mode
20
+ bun install # Install dependencies
21
+ bun run verify # Run all checks (typecheck, lint, test, build)
22
+ bun run typecheck # Type-check without emitting
23
+ bun run lint # Run ESLint
24
+ bun run lint:fix # Run ESLint with auto-fix
25
+ bun run format # Format code with Prettier
26
+ bun run format:check # Check formatting without changes
27
+ bun run build # Build ESM and CJS outputs to dist/
28
+ bun run clean # Remove dist/
29
+ bun run dev # Watch mode for development
30
+ bun run test # Run tests once
31
+ bun run test:watch # Run tests in watch mode
27
32
  ```
28
33
 
29
34
  ## Code Conventions
@@ -71,7 +76,7 @@ Types in `src/index.ts` are organized into sections:
71
76
 
72
77
  - Single quotes, semicolons, trailing commas (es5)
73
78
  - 80 character line width, 2 space indentation
74
- - Run `npm run format` before committing
79
+ - Run `bun run format` before committing
75
80
 
76
81
  ## Testing
77
82
 
@@ -115,3 +120,17 @@ Package is published to npm under `@sudobility` scope with public access.
115
120
  **Manual**: Run `npm publish` (triggers `prepublishOnly` to verify and build)
116
121
 
117
122
  **Automatic**: Bump version in `package.json` and push to `main` - CI/CD will publish automatically.
123
+
124
+ ## Common Tasks
125
+
126
+ ### Add New Type
127
+ 1. Define the type in `src/index.ts` in the appropriate section
128
+ 2. Export it from the file
129
+ 3. Add type tests in `src/index.test.ts`
130
+ 4. Run `bun run verify` to ensure everything passes
131
+
132
+ ### Update Existing Type
133
+ 1. Modify the type definition
134
+ 2. Update any dependent types
135
+ 3. Update tests to reflect changes
136
+ 4. Run `bun run verify`
package/dist/index.cjs CHANGED
@@ -4,12 +4,16 @@
4
4
  * TypeScript types for Sudojo API - Sudoku learning platform
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.TECHNIQUE_TITLE_TO_ID = exports.TechniqueId = void 0;
7
+ exports.BELT_ICON_VIEWBOX = exports.BELT_ICON_PATHS = exports.BELT_COLORS = exports.TECHNIQUE_TITLE_TO_ID = exports.TechniqueId = void 0;
8
8
  exports.successResponse = successResponse;
9
9
  exports.errorResponse = errorResponse;
10
10
  exports.techniqueToBit = techniqueToBit;
11
11
  exports.hasTechnique = hasTechnique;
12
12
  exports.addTechnique = addTechnique;
13
+ exports.getBeltForLevel = getBeltForLevel;
14
+ exports.getAllBelts = getAllBelts;
15
+ exports.getBeltIconSvg = getBeltIconSvg;
16
+ exports.getBeltIconForLevel = getBeltIconForLevel;
13
17
  /** Create a success response */
14
18
  function successResponse(data) {
15
19
  return {
@@ -97,4 +101,84 @@ function hasTechnique(bitfield, techniqueId) {
97
101
  function addTechnique(bitfield, techniqueId) {
98
102
  return bitfield | techniqueToBit(techniqueId);
99
103
  }
104
+ /** Belt colors mapped to level index (1-9) */
105
+ exports.BELT_COLORS = {
106
+ 1: { name: 'White', hex: '#FFFFFF' },
107
+ 2: { name: 'Yellow', hex: '#FFEB3B' },
108
+ 3: { name: 'Orange', hex: '#FF9800' },
109
+ 4: { name: 'Green', hex: '#4CAF50' },
110
+ 5: { name: 'Blue', hex: '#2196F3' },
111
+ 6: { name: 'Purple', hex: '#9C27B0' },
112
+ 7: { name: 'Brown', hex: '#795548' },
113
+ 8: { name: 'Red', hex: '#F44336' },
114
+ 9: { name: 'Black', hex: '#212121' },
115
+ };
116
+ /** Get the belt for a given level index (1-9) */
117
+ function getBeltForLevel(levelIndex) {
118
+ return exports.BELT_COLORS[levelIndex] ?? null;
119
+ }
120
+ /** Get all belts as an array ordered by level */
121
+ function getAllBelts() {
122
+ return Object.values(exports.BELT_COLORS);
123
+ }
124
+ /**
125
+ * SVG paths for the martial arts belt icon.
126
+ * Based on Wikimedia Commons Judo belt design.
127
+ * ViewBox: 0 0 478.619 184.676
128
+ */
129
+ exports.BELT_ICON_PATHS = [
130
+ 'M192.044,46.054c0,0-1.475,4.952,0.21,7.375c1.686,2.423,24.86,1.791,24.86,1.791L205.845,45L192.044,46.054z',
131
+ 'M9.831,23.198c0,0,119.181,32.087,233.779,32.087c114.598,0,214.679-51.187,218.5-53.479c3.819-2.292,12.987,38.963,0.765,48.131c-12.225,9.168-80.983,48.896-216.208,48.896c-135.226,0-233.015-21.392-239.892-29.032C-0.101,62.161-0.101,31.602,9.831,23.198z',
132
+ 'M252.014,126.336c0,0-22.156-6.112-28.268-21.392c-6.111-15.279,58.827-29.795,58.827-29.795l-6.112,31.324L252.014,126.336z',
133
+ 'M195.479,102.652c0,0,30.56,21.392,35.143,19.1c4.584-2.292,58.827-36.671,58.827-36.671L243.61,51.465l-50.423,38.2L195.479,102.652z',
134
+ 'M22.818,152.312c0,0,125.293-76.398,200.928-106.958c75.635-30.56,30.56,29.031,30.56,29.031s-78.69,38.199-110.778,57.299s-81.746,50.424-87.858,51.188C49.558,183.635,22.818,152.312,22.818,152.312z',
135
+ 'M255.967,27.303c0,0-5.29-1.851-14.146,8.46c-8.857,10.312,15.07,8.197,15.07,8.197L255.967,27.303z',
136
+ 'M232.15,28.546c0,0,94.734,49.659,127.586,60.355c32.851,10.696,113.832,46.603,116.889,55.771s-27.503,30.559-27.503,30.559s-23.685-21.391-54.243-34.379c-30.56-12.987-83.274-34.379-112.306-48.131c-29.031-13.751-89.387-47.367-89.387-47.367L232.15,28.546z',
137
+ 'M255.834,27.782c0,0-2.292,92.442-4.584,97.026c-2.293,4.584,42.783-12.987,43.546-18.335c0.765-5.349,6.877-50.423,2.293-55.007S260.417,25.49,255.834,27.782z',
138
+ ];
139
+ /** Original viewBox for the belt icon */
140
+ exports.BELT_ICON_VIEWBOX = '0 0 478.619 184.676';
141
+ /**
142
+ * Generate a complete SVG string for the martial arts belt icon.
143
+ * Uses black stroke for all colors except black belt, which uses white stroke.
144
+ *
145
+ * @param fill - Fill color for the belt
146
+ * @param width - Width in pixels (default: 100)
147
+ * @param height - Height in pixels (default: 40)
148
+ * @param strokeColor - Stroke color (default: auto-detected based on fill)
149
+ *
150
+ * @example
151
+ * // Get SVG for blue belt:
152
+ * const svg = getBeltIconSvg('#2196F3');
153
+ *
154
+ * // Get SVG for black belt (auto white stroke):
155
+ * const svg = getBeltIconSvg('#212121');
156
+ *
157
+ * // React with dangerouslySetInnerHTML:
158
+ * <div dangerouslySetInnerHTML={{ __html: getBeltIconSvg(belt.hex) }} />
159
+ */
160
+ function getBeltIconSvg(fill, width = 100, height = 40, strokeColor) {
161
+ // Auto-detect stroke color: use white for dark fills (black belt)
162
+ const stroke = strokeColor ??
163
+ (fill.toLowerCase() === '#212121' || fill.toLowerCase() === '#000000'
164
+ ? '#FFFFFF'
165
+ : '#000000');
166
+ const paths = exports.BELT_ICON_PATHS.map((d) => `<path fill="${fill}" stroke="${stroke}" stroke-width="4" d="${d}"/>`).join('');
167
+ return `<svg xmlns="http://www.w3.org/2000/svg" viewBox="${exports.BELT_ICON_VIEWBOX}" width="${width}" height="${height}">${paths}</svg>`;
168
+ }
169
+ /**
170
+ * Generate belt icon SVG for a specific level index.
171
+ * Convenience function that combines getBeltForLevel and getBeltIconSvg.
172
+ *
173
+ * @param levelIndex - Level index (1-9)
174
+ * @param width - Width in pixels (default: 100)
175
+ * @param height - Height in pixels (default: 40)
176
+ * @returns SVG string or null if level is invalid
177
+ */
178
+ function getBeltIconForLevel(levelIndex, width = 100, height = 40) {
179
+ const belt = getBeltForLevel(levelIndex);
180
+ if (!belt)
181
+ return null;
182
+ return getBeltIconSvg(belt.hex, width, height);
183
+ }
100
184
  //# sourceMappingURL=index.js.map
package/dist/index.d.ts CHANGED
@@ -363,4 +363,55 @@ export interface TechniqueExampleUpdateRequest {
363
363
  hint_data: Optional<string>;
364
364
  source_board_uuid: Optional<string | null>;
365
365
  }
366
+ /** Belt information for a level */
367
+ export interface Belt {
368
+ /** Belt name (e.g., "White", "Yellow") */
369
+ name: string;
370
+ /** Hex color code */
371
+ hex: string;
372
+ }
373
+ /** Belt colors mapped to level index (1-9) */
374
+ export declare const BELT_COLORS: Record<number, Belt>;
375
+ /** Get the belt for a given level index (1-9) */
376
+ export declare function getBeltForLevel(levelIndex: number): Belt | null;
377
+ /** Get all belts as an array ordered by level */
378
+ export declare function getAllBelts(): Belt[];
379
+ /**
380
+ * SVG paths for the martial arts belt icon.
381
+ * Based on Wikimedia Commons Judo belt design.
382
+ * ViewBox: 0 0 478.619 184.676
383
+ */
384
+ export declare const BELT_ICON_PATHS: string[];
385
+ /** Original viewBox for the belt icon */
386
+ export declare const BELT_ICON_VIEWBOX = "0 0 478.619 184.676";
387
+ /**
388
+ * Generate a complete SVG string for the martial arts belt icon.
389
+ * Uses black stroke for all colors except black belt, which uses white stroke.
390
+ *
391
+ * @param fill - Fill color for the belt
392
+ * @param width - Width in pixels (default: 100)
393
+ * @param height - Height in pixels (default: 40)
394
+ * @param strokeColor - Stroke color (default: auto-detected based on fill)
395
+ *
396
+ * @example
397
+ * // Get SVG for blue belt:
398
+ * const svg = getBeltIconSvg('#2196F3');
399
+ *
400
+ * // Get SVG for black belt (auto white stroke):
401
+ * const svg = getBeltIconSvg('#212121');
402
+ *
403
+ * // React with dangerouslySetInnerHTML:
404
+ * <div dangerouslySetInnerHTML={{ __html: getBeltIconSvg(belt.hex) }} />
405
+ */
406
+ export declare function getBeltIconSvg(fill: string, width?: number, height?: number, strokeColor?: string): string;
407
+ /**
408
+ * Generate belt icon SVG for a specific level index.
409
+ * Convenience function that combines getBeltForLevel and getBeltIconSvg.
410
+ *
411
+ * @param levelIndex - Level index (1-9)
412
+ * @param width - Width in pixels (default: 100)
413
+ * @param height - Height in pixels (default: 40)
414
+ * @returns SVG string or null if level is invalid
415
+ */
416
+ export declare function getBeltIconForLevel(levelIndex: number, width?: number, height?: number): string | null;
366
417
  //# 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":"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"}
package/dist/index.js CHANGED
@@ -4,12 +4,16 @@
4
4
  * TypeScript types for Sudojo API - Sudoku learning platform
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.TECHNIQUE_TITLE_TO_ID = exports.TechniqueId = void 0;
7
+ exports.BELT_ICON_VIEWBOX = exports.BELT_ICON_PATHS = exports.BELT_COLORS = exports.TECHNIQUE_TITLE_TO_ID = exports.TechniqueId = void 0;
8
8
  exports.successResponse = successResponse;
9
9
  exports.errorResponse = errorResponse;
10
10
  exports.techniqueToBit = techniqueToBit;
11
11
  exports.hasTechnique = hasTechnique;
12
12
  exports.addTechnique = addTechnique;
13
+ exports.getBeltForLevel = getBeltForLevel;
14
+ exports.getAllBelts = getAllBelts;
15
+ exports.getBeltIconSvg = getBeltIconSvg;
16
+ exports.getBeltIconForLevel = getBeltIconForLevel;
13
17
  /** Create a success response */
14
18
  function successResponse(data) {
15
19
  return {
@@ -97,4 +101,84 @@ function hasTechnique(bitfield, techniqueId) {
97
101
  function addTechnique(bitfield, techniqueId) {
98
102
  return bitfield | techniqueToBit(techniqueId);
99
103
  }
104
+ /** Belt colors mapped to level index (1-9) */
105
+ exports.BELT_COLORS = {
106
+ 1: { name: 'White', hex: '#FFFFFF' },
107
+ 2: { name: 'Yellow', hex: '#FFEB3B' },
108
+ 3: { name: 'Orange', hex: '#FF9800' },
109
+ 4: { name: 'Green', hex: '#4CAF50' },
110
+ 5: { name: 'Blue', hex: '#2196F3' },
111
+ 6: { name: 'Purple', hex: '#9C27B0' },
112
+ 7: { name: 'Brown', hex: '#795548' },
113
+ 8: { name: 'Red', hex: '#F44336' },
114
+ 9: { name: 'Black', hex: '#212121' },
115
+ };
116
+ /** Get the belt for a given level index (1-9) */
117
+ function getBeltForLevel(levelIndex) {
118
+ return exports.BELT_COLORS[levelIndex] ?? null;
119
+ }
120
+ /** Get all belts as an array ordered by level */
121
+ function getAllBelts() {
122
+ return Object.values(exports.BELT_COLORS);
123
+ }
124
+ /**
125
+ * SVG paths for the martial arts belt icon.
126
+ * Based on Wikimedia Commons Judo belt design.
127
+ * ViewBox: 0 0 478.619 184.676
128
+ */
129
+ exports.BELT_ICON_PATHS = [
130
+ 'M192.044,46.054c0,0-1.475,4.952,0.21,7.375c1.686,2.423,24.86,1.791,24.86,1.791L205.845,45L192.044,46.054z',
131
+ 'M9.831,23.198c0,0,119.181,32.087,233.779,32.087c114.598,0,214.679-51.187,218.5-53.479c3.819-2.292,12.987,38.963,0.765,48.131c-12.225,9.168-80.983,48.896-216.208,48.896c-135.226,0-233.015-21.392-239.892-29.032C-0.101,62.161-0.101,31.602,9.831,23.198z',
132
+ 'M252.014,126.336c0,0-22.156-6.112-28.268-21.392c-6.111-15.279,58.827-29.795,58.827-29.795l-6.112,31.324L252.014,126.336z',
133
+ 'M195.479,102.652c0,0,30.56,21.392,35.143,19.1c4.584-2.292,58.827-36.671,58.827-36.671L243.61,51.465l-50.423,38.2L195.479,102.652z',
134
+ 'M22.818,152.312c0,0,125.293-76.398,200.928-106.958c75.635-30.56,30.56,29.031,30.56,29.031s-78.69,38.199-110.778,57.299s-81.746,50.424-87.858,51.188C49.558,183.635,22.818,152.312,22.818,152.312z',
135
+ 'M255.967,27.303c0,0-5.29-1.851-14.146,8.46c-8.857,10.312,15.07,8.197,15.07,8.197L255.967,27.303z',
136
+ 'M232.15,28.546c0,0,94.734,49.659,127.586,60.355c32.851,10.696,113.832,46.603,116.889,55.771s-27.503,30.559-27.503,30.559s-23.685-21.391-54.243-34.379c-30.56-12.987-83.274-34.379-112.306-48.131c-29.031-13.751-89.387-47.367-89.387-47.367L232.15,28.546z',
137
+ 'M255.834,27.782c0,0-2.292,92.442-4.584,97.026c-2.293,4.584,42.783-12.987,43.546-18.335c0.765-5.349,6.877-50.423,2.293-55.007S260.417,25.49,255.834,27.782z',
138
+ ];
139
+ /** Original viewBox for the belt icon */
140
+ exports.BELT_ICON_VIEWBOX = '0 0 478.619 184.676';
141
+ /**
142
+ * Generate a complete SVG string for the martial arts belt icon.
143
+ * Uses black stroke for all colors except black belt, which uses white stroke.
144
+ *
145
+ * @param fill - Fill color for the belt
146
+ * @param width - Width in pixels (default: 100)
147
+ * @param height - Height in pixels (default: 40)
148
+ * @param strokeColor - Stroke color (default: auto-detected based on fill)
149
+ *
150
+ * @example
151
+ * // Get SVG for blue belt:
152
+ * const svg = getBeltIconSvg('#2196F3');
153
+ *
154
+ * // Get SVG for black belt (auto white stroke):
155
+ * const svg = getBeltIconSvg('#212121');
156
+ *
157
+ * // React with dangerouslySetInnerHTML:
158
+ * <div dangerouslySetInnerHTML={{ __html: getBeltIconSvg(belt.hex) }} />
159
+ */
160
+ function getBeltIconSvg(fill, width = 100, height = 40, strokeColor) {
161
+ // Auto-detect stroke color: use white for dark fills (black belt)
162
+ const stroke = strokeColor ??
163
+ (fill.toLowerCase() === '#212121' || fill.toLowerCase() === '#000000'
164
+ ? '#FFFFFF'
165
+ : '#000000');
166
+ const paths = exports.BELT_ICON_PATHS.map((d) => `<path fill="${fill}" stroke="${stroke}" stroke-width="4" d="${d}"/>`).join('');
167
+ return `<svg xmlns="http://www.w3.org/2000/svg" viewBox="${exports.BELT_ICON_VIEWBOX}" width="${width}" height="${height}">${paths}</svg>`;
168
+ }
169
+ /**
170
+ * Generate belt icon SVG for a specific level index.
171
+ * Convenience function that combines getBeltForLevel and getBeltIconSvg.
172
+ *
173
+ * @param levelIndex - Level index (1-9)
174
+ * @param width - Width in pixels (default: 100)
175
+ * @param height - Height in pixels (default: 40)
176
+ * @returns SVG string or null if level is invalid
177
+ */
178
+ function getBeltIconForLevel(levelIndex, width = 100, height = 40) {
179
+ const belt = getBeltForLevel(levelIndex);
180
+ if (!belt)
181
+ return null;
182
+ return getBeltIconSvg(belt.hex, width, height);
183
+ }
100
184
  //# 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":";AAAA;;;GAGG;;;AAwNH,0CAMC;AAGD,sCAMC;AAoOD,wCAEC;AAGD,oCAEC;AAGD,oCAEC;AAhQD,gCAAgC;AAChC,SAAgB,eAAe,CAAI,IAAO;IACxC,OAAO;QACL,OAAO,EAAE,IAAI;QACb,IAAI;QACJ,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC;AACJ,CAAC;AAED,+BAA+B;AAC/B,SAAgB,aAAa,CAAC,KAAa;IACzC,OAAO;QACL,OAAO,EAAE,KAAK;QACd,KAAK;QACL,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC;AACJ,CAAC;AAsKD,gFAAgF;AAChF,oEAAoE;AACpE,gFAAgF;AAEhF;;;GAGG;AACH,IAAY,WAwBX;AAxBD,WAAY,WAAW;IACrB,yDAAc,CAAA;IACd,+DAAiB,CAAA;IACjB,6DAAgB,CAAA;IAChB,2DAAe,CAAA;IACf,yDAAc,CAAA;IACd,uEAAqB,CAAA;IACrB,+DAAiB,CAAA;IACjB,6DAAgB,CAAA;IAChB,2DAAe,CAAA;IACf,0DAAe,CAAA;IACf,kDAAW,CAAA;IACX,wDAAc,CAAA;IACd,wDAAc,CAAA;IACd,oDAAY,CAAA;IACZ,gEAAkB,CAAA;IAClB,wDAAc,CAAA;IACd,sEAAqB,CAAA;IACrB,sEAAqB,CAAA;IACrB,sDAAa,CAAA;IACb,wDAAc,CAAA;IACd,0EAAuB,CAAA;IACvB,sEAAqB,CAAA;IACrB,wDAAc,CAAA;AAChB,CAAC,EAxBW,WAAW,2BAAX,WAAW,QAwBtB;AAED,uFAAuF;AAC1E,QAAA,qBAAqB,GAAgC;IAChE,YAAY,EAAE,WAAW,CAAC,UAAU;IACpC,eAAe,EAAE,WAAW,CAAC,aAAa;IAC1C,cAAc,EAAE,WAAW,CAAC,YAAY;IACxC,aAAa,EAAE,WAAW,CAAC,WAAW;IACtC,YAAY,EAAE,WAAW,CAAC,UAAU;IACpC,mBAAmB,EAAE,WAAW,CAAC,iBAAiB;IAClD,eAAe,EAAE,WAAW,CAAC,aAAa;IAC1C,cAAc,EAAE,WAAW,CAAC,YAAY;IACxC,aAAa,EAAE,WAAW,CAAC,WAAW;IACtC,YAAY,EAAE,WAAW,CAAC,UAAU;IACpC,QAAQ,EAAE,WAAW,CAAC,MAAM;IAC5B,WAAW,EAAE,WAAW,CAAC,SAAS;IAClC,WAAW,EAAE,WAAW,CAAC,SAAS;IAClC,SAAS,EAAE,WAAW,CAAC,OAAO;IAC9B,eAAe,EAAE,WAAW,CAAC,aAAa;IAC1C,WAAW,EAAE,WAAW,CAAC,SAAS;IAClC,kBAAkB,EAAE,WAAW,CAAC,gBAAgB;IAChD,kBAAkB,EAAE,WAAW,CAAC,gBAAgB;IAChD,UAAU,EAAE,WAAW,CAAC,QAAQ;IAChC,WAAW,EAAE,WAAW,CAAC,SAAS;IAClC,oBAAoB,EAAE,WAAW,CAAC,kBAAkB;IACpD,kBAAkB,EAAE,WAAW,CAAC,gBAAgB;IAChD,WAAW,EAAE,WAAW,CAAC,SAAS;CACnC,CAAC;AAEF,gEAAgE;AAChE,SAAgB,cAAc,CAAC,WAAwB;IACrD,OAAO,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;AAChC,CAAC;AAED,oDAAoD;AACpD,SAAgB,YAAY,CAAC,QAAgB,EAAE,WAAwB;IACrE,OAAO,CAAC,QAAQ,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC;AACxD,CAAC;AAED,oCAAoC;AACpC,SAAgB,YAAY,CAAC,QAAgB,EAAE,WAAwB;IACrE,OAAO,QAAQ,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;AAChD,CAAC"}
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.1.10",
3
+ "version": "1.2.0",
4
4
  "description": "TypeScript types for Sudojo API - Sudoku learning platform",
5
5
  "main": "./dist/index.cjs",
6
6
  "module": "./dist/index.js",
@@ -13,9 +13,9 @@
13
13
  }
14
14
  },
15
15
  "scripts": {
16
- "build": "npm run build:esm && npm run build:cjs",
16
+ "build": "bun run build:esm && bun run build:cjs",
17
17
  "build:esm": "tsc -p tsconfig.esm.json",
18
- "build:cjs": "tsc -p tsconfig.cjs.json && npm run build:cjs-rename",
18
+ "build:cjs": "tsc -p tsconfig.cjs.json && bun run build:cjs-rename",
19
19
  "build:cjs-rename": "find dist -name '*.js' -not -name '*.cjs' -exec sh -c 'cp \"$1\" \"${1%.js}.cjs\"' _ {} \\;",
20
20
  "clean": "rimraf dist",
21
21
  "dev": "tsc --watch",
@@ -27,8 +27,8 @@
27
27
  "format": "prettier --write \"src/**/*.{ts,js,json,md}\"",
28
28
  "format:check": "prettier --check \"src/**/*.{ts,js,json,md}\"",
29
29
  "typecheck": "tsc --noEmit",
30
- "verify": "npm run typecheck && npm run lint && npm run test && npm run build",
31
- "prepublishOnly": "npm run clean && npm run verify"
30
+ "verify": "bun run typecheck && bun run lint && bun run test && bun run build",
31
+ "prepublishOnly": "bun run clean && bun run verify"
32
32
  },
33
33
  "files": [
34
34
  "dist/**/*",
@@ -44,11 +44,11 @@
44
44
  "author": "Sudobility",
45
45
  "license": "MIT",
46
46
  "peerDependencies": {
47
- "@sudobility/types": "^1.9.41"
47
+ "@sudobility/types": "^1.9.44"
48
48
  },
49
49
  "devDependencies": {
50
50
  "@eslint/js": "^9.38.0",
51
- "@sudobility/types": "^1.9.41",
51
+ "@sudobility/types": "^1.9.44",
52
52
  "@typescript-eslint/eslint-plugin": "^8.46.2",
53
53
  "@typescript-eslint/parser": "^8.46.2",
54
54
  "eslint": "^9.38.0",