@codemerge/hunspell 2.4.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.
@@ -0,0 +1,45 @@
1
+ /** One PFX/SFX entry from a Hunspell `.aff` file. */
2
+ export type AffixEntry = {
3
+ add: string;
4
+ continuationClasses?: string[];
5
+ match?: RegExp;
6
+ /** SFX: trailing RegExp; PFX: literal prefix string to strip. */
7
+ remove?: RegExp | string;
8
+ };
9
+ /** Affix rule keyed by flag code in the `.aff` file. */
10
+ export type AffixRule = {
11
+ type: 'PFX' | 'SFX';
12
+ combineable: boolean;
13
+ entries: AffixEntry[];
14
+ };
15
+ export type AffixRules = Record<string, AffixRule>;
16
+ /** Named flag values from `.aff` (`FLAG`, `KEEPCASE`, `TRY`, …). */
17
+ export type AffFlags = Record<string, string>;
18
+ /**
19
+ * Word → flag-code sets.
20
+ * - `null` — word present with no flags
21
+ * - `string[][]` — one or more flag lists (duplicate dic entries)
22
+ */
23
+ export type DictionaryTable = Map<string, string[][] | null>;
24
+ export type ReplacementPair = readonly [from: string, to: string];
25
+ export type SuggestMemo = {
26
+ suggestions: string[];
27
+ limit: number;
28
+ };
29
+ /** Mutable engine state after parsing `.aff` + `.dic`. */
30
+ export type HunspellState = {
31
+ dictionaryTable: DictionaryTable;
32
+ /** Compiled compound-word patterns. */
33
+ compoundRules: RegExp[];
34
+ replacementTable: ReplacementPair[];
35
+ flags: AffFlags;
36
+ memoized: Record<string, SuggestMemo>;
37
+ alphabet: string;
38
+ };
39
+ export type HunspellDictionary = {
40
+ readonly loaded: true;
41
+ check(word: string): boolean;
42
+ checkExact(word: string): boolean;
43
+ suggest(word: string, limit?: number): string[];
44
+ };
45
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1,45 @@
1
+ /** One PFX/SFX entry from a Hunspell `.aff` file. */
2
+ export type AffixEntry = {
3
+ add: string;
4
+ continuationClasses?: string[];
5
+ match?: RegExp;
6
+ /** SFX: trailing RegExp; PFX: literal prefix string to strip. */
7
+ remove?: RegExp | string;
8
+ };
9
+ /** Affix rule keyed by flag code in the `.aff` file. */
10
+ export type AffixRule = {
11
+ type: 'PFX' | 'SFX';
12
+ combineable: boolean;
13
+ entries: AffixEntry[];
14
+ };
15
+ export type AffixRules = Record<string, AffixRule>;
16
+ /** Named flag values from `.aff` (`FLAG`, `KEEPCASE`, `TRY`, …). */
17
+ export type AffFlags = Record<string, string>;
18
+ /**
19
+ * Word → flag-code sets.
20
+ * - `null` — word present with no flags
21
+ * - `string[][]` — one or more flag lists (duplicate dic entries)
22
+ */
23
+ export type DictionaryTable = Map<string, string[][] | null>;
24
+ export type ReplacementPair = readonly [from: string, to: string];
25
+ export type SuggestMemo = {
26
+ suggestions: string[];
27
+ limit: number;
28
+ };
29
+ /** Mutable engine state after parsing `.aff` + `.dic`. */
30
+ export type HunspellState = {
31
+ dictionaryTable: DictionaryTable;
32
+ /** Compiled compound-word patterns. */
33
+ compoundRules: RegExp[];
34
+ replacementTable: ReplacementPair[];
35
+ flags: AffFlags;
36
+ memoized: Record<string, SuggestMemo>;
37
+ alphabet: string;
38
+ };
39
+ export type HunspellDictionary = {
40
+ readonly loaded: true;
41
+ check(word: string): boolean;
42
+ checkExact(word: string): boolean;
43
+ suggest(word: string, limit?: number): string[];
44
+ };
45
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,MAAM,MAAM,UAAU,GAAG;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC1B,CAAC;AAEF,wDAAwD;AACxD,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,KAAK,GAAG,KAAK,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,UAAU,EAAE,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAEnD,oEAAoE;AACpE,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE9C;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;AAE7D,MAAM,MAAM,eAAe,GAAG,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;AAElE,MAAM,MAAM,WAAW,GAAG;IACxB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,0DAA0D;AAC1D,MAAM,MAAM,aAAa,GAAG;IAC1B,eAAe,EAAE,eAAe,CAAC;IACjC,uCAAuC;IACvC,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,gBAAgB,EAAE,eAAe,EAAE,CAAC;IACpC,KAAK,EAAE,QAAQ,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACtC,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;IACtB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAC7B,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAClC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CACjD,CAAC"}
package/package.json ADDED
@@ -0,0 +1,47 @@
1
+ {
2
+ "name": "@codemerge/hunspell",
3
+ "version": "2.4.0",
4
+ "description": "In-house Hunspell .aff/.dic engine (check / suggest) for CodeMerge",
5
+ "license": "MIT AND BSD-3-Clause",
6
+ "author": "Pavel Kuzmin",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/s00d/on-codemerge.git",
10
+ "directory": "packages/hunspell"
11
+ },
12
+ "files": [
13
+ "dist",
14
+ "NOTICE"
15
+ ],
16
+ "type": "module",
17
+ "sideEffects": false,
18
+ "main": "./dist/index.cjs",
19
+ "module": "./dist/index.mjs",
20
+ "types": "./dist/index.d.ts",
21
+ "exports": {
22
+ ".": {
23
+ "import": {
24
+ "types": "./dist/index.d.ts",
25
+ "default": "./dist/index.mjs"
26
+ },
27
+ "require": {
28
+ "types": "./dist/index.d.cts",
29
+ "default": "./dist/index.cjs"
30
+ }
31
+ },
32
+ "./package.json": "./package.json"
33
+ },
34
+ "publishConfig": {
35
+ "access": "public"
36
+ },
37
+ "devDependencies": {
38
+ "dictionary-en": "^4.0.0"
39
+ },
40
+ "engines": {
41
+ "node": ">=20"
42
+ },
43
+ "scripts": {
44
+ "build": "vite build",
45
+ "publint": "publint --strict"
46
+ }
47
+ }