@sudobility/sudojo_types 1.2.31 → 1.2.33

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 (2) hide show
  1. package/CLAUDE.md +11 -0
  2. package/package.json +3 -3
package/CLAUDE.md CHANGED
@@ -72,6 +72,17 @@ Types in `src/index.ts` are organized into sections:
72
72
  4. Query Parameter Types
73
73
  5. Response Helper Types
74
74
 
75
+ ### BigInt Technique Bitfields
76
+
77
+ The `techniques` field on `Board` and `Daily` entities is a bitmask where each bit corresponds to a `TechniqueId` enum value. With 60 techniques, values can exceed `Number.MAX_SAFE_INTEGER`. The utility functions `techniqueToBit()`, `hasTechnique()`, and `addTechnique()` use `BigInt` internally to handle IDs >= 32 safely:
78
+
79
+ ```typescript
80
+ import { techniqueToBit, hasTechnique, addTechnique } from '@sudobility/sudojo_types';
81
+
82
+ const bit = techniqueToBit(42); // Uses BigInt internally
83
+ const has = hasTechnique(bitfield, 42); // Safe for IDs >= 32
84
+ ```
85
+
75
86
  ### Code Style
76
87
 
77
88
  - Single quotes, semicolons, trailing commas (es5)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sudobility/sudojo_types",
3
- "version": "1.2.31",
3
+ "version": "1.2.33",
4
4
  "description": "TypeScript types for Sudojo API - Sudoku learning platform",
5
5
  "main": "./dist/index.cjs",
6
6
  "module": "./dist/index.js",
@@ -44,11 +44,11 @@
44
44
  "author": "Sudobility",
45
45
  "license": "BUSL-1.1",
46
46
  "peerDependencies": {
47
- "@sudobility/types": "^1.9.50"
47
+ "@sudobility/types": "^1.9.52"
48
48
  },
49
49
  "devDependencies": {
50
50
  "@eslint/js": "^9.38.0",
51
- "@sudobility/types": "^1.9.50",
51
+ "@sudobility/types": "^1.9.52",
52
52
  "@typescript-eslint/eslint-plugin": "^8.46.2",
53
53
  "@typescript-eslint/parser": "^8.46.2",
54
54
  "eslint": "^9.38.0",