@sharpee/lang-en-us 1.1.2 → 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/formatters/index.d.ts +3 -3
- package/formatters/index.js +3 -3
- package/formatters/list.d.ts +25 -7
- package/formatters/list.d.ts.map +1 -1
- package/formatters/list.js +107 -23
- package/formatters/list.js.map +1 -1
- package/formatters/registry.d.ts +2 -1
- package/formatters/registry.d.ts.map +1 -1
- package/formatters/registry.js +4 -1
- package/formatters/registry.js.map +1 -1
- package/formatters/types.d.ts +13 -2
- package/formatters/types.d.ts.map +1 -1
- package/formatters/types.js +2 -2
- package/index.d.ts +2 -0
- package/index.d.ts.map +1 -1
- package/index.js +6 -1
- package/index.js.map +1 -1
- package/language-provider.d.ts +7 -1
- package/language-provider.d.ts.map +1 -1
- package/language-provider.js +16 -37
- package/language-provider.js.map +1 -1
- package/number-words.d.ts +8 -0
- package/number-words.d.ts.map +1 -0
- package/number-words.js +24 -0
- package/number-words.js.map +1 -0
- package/package.json +1 -1
- package/pluralize.d.ts +9 -0
- package/pluralize.d.ts.map +1 -0
- package/pluralize.js +46 -0
- package/pluralize.js.map +1 -0
package/formatters/index.d.ts
CHANGED
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Formatters transform placeholder values in message templates.
|
|
5
5
|
*
|
|
6
|
-
* Syntax: {formatter:formatter:...:placeholder}
|
|
6
|
+
* Syntax: {formatter:formatter:...:placeholder} (the placeholder is the last segment)
|
|
7
7
|
* Example: {a:item} → "a sword"
|
|
8
|
-
* Example: {items
|
|
9
|
-
* Example: {
|
|
8
|
+
* Example: {list:items} → "a sword, a key, and a coin" (articles + grouping, ADR-190)
|
|
9
|
+
* Example: {the-list:items} → "the sword, the key, and the coin"
|
|
10
10
|
*
|
|
11
11
|
* @see ADR-095 Message Templates with Formatters
|
|
12
12
|
*/
|
package/formatters/index.js
CHANGED
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Formatters transform placeholder values in message templates.
|
|
6
6
|
*
|
|
7
|
-
* Syntax: {formatter:formatter:...:placeholder}
|
|
7
|
+
* Syntax: {formatter:formatter:...:placeholder} (the placeholder is the last segment)
|
|
8
8
|
* Example: {a:item} → "a sword"
|
|
9
|
-
* Example: {items
|
|
10
|
-
* Example: {
|
|
9
|
+
* Example: {list:items} → "a sword, a key, and a coin" (articles + grouping, ADR-190)
|
|
10
|
+
* Example: {the-list:items} → "the sword, the key, and the coin"
|
|
11
11
|
*
|
|
12
12
|
* @see ADR-095 Message Templates with Formatters
|
|
13
13
|
*/
|
package/formatters/list.d.ts
CHANGED
|
@@ -7,13 +7,27 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import type { Formatter } from './types.js';
|
|
9
9
|
/**
|
|
10
|
-
* "list" formatter -
|
|
10
|
+
* "list" formatter — natural-language list of entities (ADR-190).
|
|
11
11
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
12
|
+
* Each `EntityInfo` element gets its indefinite article ("a goat", "an apple",
|
|
13
|
+
* "some sand"); identical common nouns group and pluralize ("two goats"); the
|
|
14
|
+
* parts join with commas and "and", with the serial (Oxford) comma controlled by
|
|
15
|
+
* the story's `serialComma` setting (default on). Bare strings render as-is.
|
|
16
|
+
* Empty → "nothing".
|
|
17
|
+
*
|
|
18
|
+
* {list:items} → "a goat, two rabbits, and a parrot"
|
|
15
19
|
*/
|
|
16
20
|
export declare const listFormatter: Formatter;
|
|
21
|
+
/**
|
|
22
|
+
* "the-list" formatter — definite variant: "the goat, the rabbit, and the parrot".
|
|
23
|
+
* No count-grouping (definite items are individuated); proper names take no article.
|
|
24
|
+
*/
|
|
25
|
+
export declare const theListFormatter: Formatter;
|
|
26
|
+
/**
|
|
27
|
+
* "names" formatter — plain name join (the pre-ADR-190 `list` behavior) for
|
|
28
|
+
* non-entity string lists: no articles, no grouping. Empty → "".
|
|
29
|
+
*/
|
|
30
|
+
export declare const namesFormatter: Formatter;
|
|
17
31
|
/**
|
|
18
32
|
* "or-list" formatter - join with commas and "or"
|
|
19
33
|
*
|
|
@@ -29,10 +43,14 @@ export declare const orListFormatter: Formatter;
|
|
|
29
43
|
*/
|
|
30
44
|
export declare const commaListFormatter: Formatter;
|
|
31
45
|
/**
|
|
32
|
-
* "count" formatter -
|
|
46
|
+
* "count" formatter - a count word plus the (pluralized) noun.
|
|
47
|
+
*
|
|
48
|
+
* Spells out 1–10, numeric for 11+ (ADR-190). Uses the entity's `plural` override
|
|
49
|
+
* (from `IdentityTrait.plural`) when present, else the `pluralize()` heuristic.
|
|
33
50
|
*
|
|
34
|
-
* Example: {items
|
|
35
|
-
* Example: {items
|
|
51
|
+
* Example: {count:items} with 3 swords → "three swords"
|
|
52
|
+
* Example: {count:items} with 1 sword → "one sword"
|
|
53
|
+
* Example: {count:items} with 0 → "nothing"
|
|
36
54
|
*/
|
|
37
55
|
export declare const countFormatter: Formatter;
|
|
38
56
|
//# sourceMappingURL=list.d.ts.map
|
package/formatters/list.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/lang-en-us/src/formatters/list.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/lang-en-us/src/formatters/list.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAgC,MAAM,YAAY,CAAC;AAwF1E;;;;;;;;;;GAUG;AACH,eAAO,MAAM,aAAa,EAAE,SAC6C,CAAC;AAE1E;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,SACwC,CAAC;AAExE;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,SAI5B,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,EAAE,SAU7B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAGhC,CAAC;AAaF;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,EAAE,SAS5B,CAAC"}
|
package/formatters/list.js
CHANGED
|
@@ -7,7 +7,10 @@
|
|
|
7
7
|
* @see ADR-095 Message Templates with Formatters
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.countFormatter = exports.commaListFormatter = exports.orListFormatter = exports.listFormatter = void 0;
|
|
10
|
+
exports.countFormatter = exports.commaListFormatter = exports.orListFormatter = exports.namesFormatter = exports.theListFormatter = exports.listFormatter = void 0;
|
|
11
|
+
const article_js_1 = require("./article.js");
|
|
12
|
+
const pluralize_js_1 = require("../pluralize.js");
|
|
13
|
+
const number_words_js_1 = require("../number-words.js");
|
|
11
14
|
/**
|
|
12
15
|
* Extract name from value (string or EntityInfo)
|
|
13
16
|
*/
|
|
@@ -23,26 +26,94 @@ function ensureArray(value) {
|
|
|
23
26
|
}
|
|
24
27
|
return [getName(value)];
|
|
25
28
|
}
|
|
29
|
+
/** True for a bare string element (no entity metadata to article/group). */
|
|
30
|
+
function isBare(v) {
|
|
31
|
+
return typeof v === 'string';
|
|
32
|
+
}
|
|
33
|
+
/** A common noun groups by name; proper/mass/unique/plural do not. */
|
|
34
|
+
function isCommonNoun(ei) {
|
|
35
|
+
const nounType = ei.nounType ?? (ei.properName ? 'proper' : 'common');
|
|
36
|
+
return nounType === 'common';
|
|
37
|
+
}
|
|
26
38
|
/**
|
|
27
|
-
*
|
|
39
|
+
* Render each element into a phrase. In indefinite mode, identical common-noun
|
|
40
|
+
* entities group and pluralize ("two goats"); bare strings render as-is (no
|
|
41
|
+
* article), preserving plain name lists. In definite mode, every entity becomes
|
|
42
|
+
* "the X" with no grouping.
|
|
43
|
+
*/
|
|
44
|
+
function renderListParts(value, mode, context) {
|
|
45
|
+
const arr = Array.isArray(value) ? value : value == null ? [] : [value];
|
|
46
|
+
if (mode === 'definite') {
|
|
47
|
+
return arr.map((v) => (isBare(v) ? v : (0, article_js_1.theFormatter)(v, context)));
|
|
48
|
+
}
|
|
49
|
+
const parts = [];
|
|
50
|
+
const groupIndex = new Map();
|
|
51
|
+
for (const v of arr) {
|
|
52
|
+
if (!isBare(v) && isCommonNoun(v)) {
|
|
53
|
+
const ei = v;
|
|
54
|
+
const existing = groupIndex.get(ei.name);
|
|
55
|
+
if (existing !== undefined) {
|
|
56
|
+
parts[existing].count++;
|
|
57
|
+
continue;
|
|
58
|
+
}
|
|
59
|
+
groupIndex.set(ei.name, parts.length);
|
|
60
|
+
parts.push({ value: v, ei, count: 1 });
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
parts.push({ value: v, count: 1 });
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return parts.map((p) => {
|
|
67
|
+
if (p.count > 1 && p.ei) {
|
|
68
|
+
const plural = p.ei.plural ?? (0, pluralize_js_1.pluralize)(p.ei.name);
|
|
69
|
+
return `${(0, number_words_js_1.countWord)(p.count)} ${plural}`;
|
|
70
|
+
}
|
|
71
|
+
return isBare(p.value) ? p.value : (0, article_js_1.aFormatter)(p.value, context);
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
/** Join rendered parts with commas and a conjunction; serial comma per setting. */
|
|
75
|
+
function joinList(parts, conjunction, context) {
|
|
76
|
+
if (parts.length === 0)
|
|
77
|
+
return 'nothing';
|
|
78
|
+
if (parts.length === 1)
|
|
79
|
+
return parts[0];
|
|
80
|
+
if (parts.length === 2)
|
|
81
|
+
return `${parts[0]} ${conjunction} ${parts[1]}`;
|
|
82
|
+
const serial = context?.settings?.serialComma ?? true;
|
|
83
|
+
const head = parts.slice(0, -1).join(', ');
|
|
84
|
+
const last = parts[parts.length - 1];
|
|
85
|
+
return serial ? `${head}, ${conjunction} ${last}` : `${head} ${conjunction} ${last}`;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* "list" formatter — natural-language list of entities (ADR-190).
|
|
89
|
+
*
|
|
90
|
+
* Each `EntityInfo` element gets its indefinite article ("a goat", "an apple",
|
|
91
|
+
* "some sand"); identical common nouns group and pluralize ("two goats"); the
|
|
92
|
+
* parts join with commas and "and", with the serial (Oxford) comma controlled by
|
|
93
|
+
* the story's `serialComma` setting (default on). Bare strings render as-is.
|
|
94
|
+
* Empty → "nothing".
|
|
28
95
|
*
|
|
29
|
-
*
|
|
30
|
-
|
|
31
|
-
|
|
96
|
+
* {list:items} → "a goat, two rabbits, and a parrot"
|
|
97
|
+
*/
|
|
98
|
+
const listFormatter = (value, context) => joinList(renderListParts(value, 'indefinite', context), 'and', context);
|
|
99
|
+
exports.listFormatter = listFormatter;
|
|
100
|
+
/**
|
|
101
|
+
* "the-list" formatter — definite variant: "the goat, the rabbit, and the parrot".
|
|
102
|
+
* No count-grouping (definite items are individuated); proper names take no article.
|
|
32
103
|
*/
|
|
33
|
-
const
|
|
104
|
+
const theListFormatter = (value, context) => joinList(renderListParts(value, 'definite', context), 'and', context);
|
|
105
|
+
exports.theListFormatter = theListFormatter;
|
|
106
|
+
/**
|
|
107
|
+
* "names" formatter — plain name join (the pre-ADR-190 `list` behavior) for
|
|
108
|
+
* non-entity string lists: no articles, no grouping. Empty → "".
|
|
109
|
+
*/
|
|
110
|
+
const namesFormatter = (value, context) => {
|
|
34
111
|
const items = ensureArray(value);
|
|
35
112
|
if (items.length === 0)
|
|
36
113
|
return '';
|
|
37
|
-
|
|
38
|
-
return items[0];
|
|
39
|
-
if (items.length === 2)
|
|
40
|
-
return `${items[0]} and ${items[1]}`;
|
|
41
|
-
const allButLast = items.slice(0, -1);
|
|
42
|
-
const last = items[items.length - 1];
|
|
43
|
-
return `${allButLast.join(', ')}, and ${last}`;
|
|
114
|
+
return joinList(items, 'and', context);
|
|
44
115
|
};
|
|
45
|
-
exports.
|
|
116
|
+
exports.namesFormatter = namesFormatter;
|
|
46
117
|
/**
|
|
47
118
|
* "or-list" formatter - join with commas and "or"
|
|
48
119
|
*
|
|
@@ -73,22 +144,35 @@ const commaListFormatter = (value, _context) => {
|
|
|
73
144
|
return items.join(', ');
|
|
74
145
|
};
|
|
75
146
|
exports.commaListFormatter = commaListFormatter;
|
|
147
|
+
/** First element's noun name and optional plural override (EntityInfo or string). */
|
|
148
|
+
function firstNoun(value) {
|
|
149
|
+
const arr = Array.isArray(value) ? value : value == null ? [] : [value];
|
|
150
|
+
const first = arr[0];
|
|
151
|
+
if (first && typeof first === 'object' && 'name' in first) {
|
|
152
|
+
const ei = first;
|
|
153
|
+
return { name: ei.name, plural: ei.plural };
|
|
154
|
+
}
|
|
155
|
+
return { name: first == null ? '' : String(first) };
|
|
156
|
+
}
|
|
76
157
|
/**
|
|
77
|
-
* "count" formatter -
|
|
158
|
+
* "count" formatter - a count word plus the (pluralized) noun.
|
|
159
|
+
*
|
|
160
|
+
* Spells out 1–10, numeric for 11+ (ADR-190). Uses the entity's `plural` override
|
|
161
|
+
* (from `IdentityTrait.plural`) when present, else the `pluralize()` heuristic.
|
|
78
162
|
*
|
|
79
|
-
* Example: {items
|
|
80
|
-
* Example: {items
|
|
163
|
+
* Example: {count:items} with 3 swords → "three swords"
|
|
164
|
+
* Example: {count:items} with 1 sword → "one sword"
|
|
165
|
+
* Example: {count:items} with 0 → "nothing"
|
|
81
166
|
*/
|
|
82
167
|
const countFormatter = (value, _context) => {
|
|
83
|
-
const
|
|
84
|
-
const count = items.length;
|
|
168
|
+
const count = Array.isArray(value) ? value.length : value == null ? 0 : 1;
|
|
85
169
|
if (count === 0)
|
|
86
170
|
return 'nothing';
|
|
171
|
+
const { name, plural } = firstNoun(value);
|
|
87
172
|
if (count === 1)
|
|
88
|
-
return `
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
return `${count} items`;
|
|
173
|
+
return `one ${name}`;
|
|
174
|
+
const pluralNoun = plural ?? (0, pluralize_js_1.pluralize)(name);
|
|
175
|
+
return `${(0, number_words_js_1.countWord)(count)} ${pluralNoun}`;
|
|
92
176
|
};
|
|
93
177
|
exports.countFormatter = countFormatter;
|
|
94
178
|
//# sourceMappingURL=list.js.map
|
package/formatters/list.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/lang-en-us/src/formatters/list.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/lang-en-us/src/formatters/list.ts"],"names":[],"mappings":"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"}
|
package/formatters/registry.d.ts
CHANGED
|
@@ -36,7 +36,8 @@ export declare function applyFormatters(value: string | number | boolean | strin
|
|
|
36
36
|
*
|
|
37
37
|
* Supports both:
|
|
38
38
|
* - Simple placeholders: {item}
|
|
39
|
-
* - Formatted placeholders: {a:item}, {items
|
|
39
|
+
* - Formatted placeholders: {a:item}, {list:items}, {the:cap:item}
|
|
40
|
+
* (the placeholder is the last colon segment)
|
|
40
41
|
*
|
|
41
42
|
* @param template - Message template with {placeholder} syntax
|
|
42
43
|
* @param params - Values for placeholders
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/lang-en-us/src/formatters/registry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAa,iBAAiB,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAM7F;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,iBAAiB,
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/lang-en-us/src/formatters/registry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAa,iBAAiB,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAM7F;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,iBAAiB,CA8B3D;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG;IACrD,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CACd,CAYA;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,GAAG,UAAU,GAAG,UAAU,EAAE,EACvE,UAAU,EAAE,MAAM,EAAE,EACpB,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,EAAE,gBAAgB,GACxB,MAAM,CAuBR;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,GAAG,UAAU,GAAG,UAAU,EAAE,CAAC,EACxF,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,GAAE,gBAAqB,GAC7B,MAAM,CA8BR"}
|
package/formatters/registry.js
CHANGED
|
@@ -28,6 +28,8 @@ function createFormatterRegistry() {
|
|
|
28
28
|
registry.set('your', article_js_1.yourFormatter);
|
|
29
29
|
// List formatters
|
|
30
30
|
registry.set('list', list_js_1.listFormatter);
|
|
31
|
+
registry.set('the-list', list_js_1.theListFormatter);
|
|
32
|
+
registry.set('names', list_js_1.namesFormatter);
|
|
31
33
|
registry.set('or-list', list_js_1.orListFormatter);
|
|
32
34
|
registry.set('comma-list', list_js_1.commaListFormatter);
|
|
33
35
|
registry.set('count', list_js_1.countFormatter);
|
|
@@ -94,7 +96,8 @@ function applyFormatters(value, formatters, registry, context) {
|
|
|
94
96
|
*
|
|
95
97
|
* Supports both:
|
|
96
98
|
* - Simple placeholders: {item}
|
|
97
|
-
* - Formatted placeholders: {a:item}, {items
|
|
99
|
+
* - Formatted placeholders: {a:item}, {list:items}, {the:cap:item}
|
|
100
|
+
* (the placeholder is the last colon segment)
|
|
98
101
|
*
|
|
99
102
|
* @param template - Message template with {placeholder} syntax
|
|
100
103
|
* @param params - Values for placeholders
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/lang-en-us/src/formatters/registry.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAWH,
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/lang-en-us/src/formatters/registry.ts"],"names":[],"mappings":"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"}
|
package/formatters/types.d.ts
CHANGED
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Formatters transform placeholder values in message templates.
|
|
5
5
|
*
|
|
6
|
-
* Syntax: {formatter:formatter:...:placeholder}
|
|
6
|
+
* Syntax: {formatter:formatter:...:placeholder} (the placeholder is the last segment)
|
|
7
7
|
* Example: {a:item} → "a sword"
|
|
8
|
-
* Example: {items
|
|
8
|
+
* Example: {list:items} → "a sword, a key, and a coin"
|
|
9
9
|
*
|
|
10
10
|
* @see ADR-095 Message Templates with Formatters
|
|
11
11
|
*/
|
|
@@ -15,6 +15,11 @@
|
|
|
15
15
|
export interface FormatterContext {
|
|
16
16
|
/** Get entity by ID for nounType/article lookup */
|
|
17
17
|
getEntity?: (id: string) => EntityInfo | undefined;
|
|
18
|
+
/** Render-time settings the language layer reads (ADR-190). */
|
|
19
|
+
settings?: {
|
|
20
|
+
/** Serial (Oxford) comma in lists. Default true when absent. */
|
|
21
|
+
serialComma?: boolean;
|
|
22
|
+
};
|
|
18
23
|
}
|
|
19
24
|
/**
|
|
20
25
|
* Minimal entity info for formatting
|
|
@@ -25,6 +30,12 @@ export interface EntityInfo {
|
|
|
25
30
|
properName?: boolean;
|
|
26
31
|
article?: string;
|
|
27
32
|
grammaticalNumber?: 'singular' | 'plural';
|
|
33
|
+
/**
|
|
34
|
+
* Author-supplied plural form for irregular nouns (ADR-190). Populated from
|
|
35
|
+
* `IdentityTrait.plural` by `entityInfoFrom`. The `list`/`count` formatters use
|
|
36
|
+
* it when present, else fall back to the `pluralize()` heuristic.
|
|
37
|
+
*/
|
|
38
|
+
plural?: string;
|
|
28
39
|
}
|
|
29
40
|
/**
|
|
30
41
|
* Formatter function signature
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/lang-en-us/src/formatters/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,mDAAmD;IACnD,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,UAAU,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/lang-en-us/src/formatters/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,mDAAmD;IACnD,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,UAAU,GAAG,SAAS,CAAC;IACnD,+DAA+D;IAC/D,QAAQ,CAAC,EAAE;QACT,gEAAgE;QAChE,WAAW,CAAC,EAAE,OAAO,CAAC;KACvB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC9D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC;IAC1C;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,SAAS,GAAG,CACtB,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,UAAU,GAAG,UAAU,EAAE,EACpD,OAAO,EAAE,gBAAgB,KACtB,MAAM,CAAC;AAEZ;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC"}
|
package/formatters/types.js
CHANGED
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Formatters transform placeholder values in message templates.
|
|
6
6
|
*
|
|
7
|
-
* Syntax: {formatter:formatter:...:placeholder}
|
|
7
|
+
* Syntax: {formatter:formatter:...:placeholder} (the placeholder is the last segment)
|
|
8
8
|
* Example: {a:item} → "a sword"
|
|
9
|
-
* Example: {items
|
|
9
|
+
* Example: {list:items} → "a sword, a key, and a coin"
|
|
10
10
|
*
|
|
11
11
|
* @see ADR-095 Message Templates with Formatters
|
|
12
12
|
*/
|
package/index.d.ts
CHANGED
|
@@ -17,6 +17,8 @@ export * from './actions';
|
|
|
17
17
|
export * from './npc';
|
|
18
18
|
export * from './perspective';
|
|
19
19
|
export * from './formatters';
|
|
20
|
+
export { pluralize } from './pluralize';
|
|
21
|
+
export { countWord } from './number-words';
|
|
20
22
|
export { cardinalNumbers, ordinalNumbers, directionMap, englishWords, abbreviations, irregularPlurals } from './data/words';
|
|
21
23
|
export { parserErrors, getParserErrorMessage } from './data/messages';
|
|
22
24
|
export { soundMessages, soundMessageId, soundFallbackMessageId, type SoundMessageId, type RenderableAudibilityTier, } from './sound-messages';
|
package/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/lang-en-us/src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,uBAAuB,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,uBAAuB,IAAI,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGlF,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAGnD,cAAc,WAAW,CAAC;AAG1B,cAAc,WAAW,CAAC;AAG1B,cAAc,OAAO,CAAC;AAGtB,cAAc,eAAe,CAAC;AAG9B,cAAc,cAAc,CAAC;AAG7B,OAAO,EACL,eAAe,EACf,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,gBAAgB,EACjB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAGtE,OAAO,EACL,aAAa,EACb,cAAc,EACd,sBAAsB,EACtB,KAAK,cAAc,EACnB,KAAK,wBAAwB,GAC9B,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/lang-en-us/src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,uBAAuB,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,uBAAuB,IAAI,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGlF,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAGnD,cAAc,WAAW,CAAC;AAG1B,cAAc,WAAW,CAAC;AAG1B,cAAc,OAAO,CAAC;AAGtB,cAAc,eAAe,CAAC;AAG9B,cAAc,cAAc,CAAC;AAG7B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,OAAO,EACL,eAAe,EACf,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,gBAAgB,EACjB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAGtE,OAAO,EACL,aAAa,EACb,cAAc,EACd,sBAAsB,EACtB,KAAK,cAAc,EACnB,KAAK,wBAAwB,GAC9B,MAAM,kBAAkB,CAAC"}
|
package/index.js
CHANGED
|
@@ -28,7 +28,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
28
28
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
29
29
|
};
|
|
30
30
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
31
|
-
exports.soundFallbackMessageId = exports.soundMessageId = exports.soundMessages = exports.getParserErrorMessage = exports.parserErrors = exports.irregularPlurals = exports.abbreviations = exports.englishWords = exports.directionMap = exports.ordinalNumbers = exports.cardinalNumbers = exports.LanguageProvider = exports.default = exports.EnglishLanguageProvider = void 0;
|
|
31
|
+
exports.soundFallbackMessageId = exports.soundMessageId = exports.soundMessages = exports.getParserErrorMessage = exports.parserErrors = exports.irregularPlurals = exports.abbreviations = exports.englishWords = exports.directionMap = exports.ordinalNumbers = exports.cardinalNumbers = exports.countWord = exports.pluralize = exports.LanguageProvider = exports.default = exports.EnglishLanguageProvider = void 0;
|
|
32
32
|
var language_provider_1 = require("./language-provider");
|
|
33
33
|
Object.defineProperty(exports, "EnglishLanguageProvider", { enumerable: true, get: function () { return language_provider_1.EnglishLanguageProvider; } });
|
|
34
34
|
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(language_provider_1).default; } });
|
|
@@ -44,6 +44,11 @@ __exportStar(require("./npc"), exports);
|
|
|
44
44
|
__exportStar(require("./perspective"), exports);
|
|
45
45
|
// Export formatter system (ADR-095)
|
|
46
46
|
__exportStar(require("./formatters"), exports);
|
|
47
|
+
// English grammar helpers (ADR-190): pluralization + count-word spelling
|
|
48
|
+
var pluralize_1 = require("./pluralize");
|
|
49
|
+
Object.defineProperty(exports, "pluralize", { enumerable: true, get: function () { return pluralize_1.pluralize; } });
|
|
50
|
+
var number_words_1 = require("./number-words");
|
|
51
|
+
Object.defineProperty(exports, "countWord", { enumerable: true, get: function () { return number_words_1.countWord; } });
|
|
47
52
|
// Export vocabulary data for parser use (ADR-082)
|
|
48
53
|
var words_1 = require("./data/words");
|
|
49
54
|
Object.defineProperty(exports, "cardinalNumbers", { enumerable: true, get: function () { return words_1.cardinalNumbers; } });
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/lang-en-us/src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;;;;;;;;;;;;;;;;;;AAEH,yDAAuE;AAA9D,4HAAA,uBAAuB,OAAA;AAAE,6HAAA,OAAO,OAAA;AACzC,yDAAkF,CAAC,kBAAkB;AAA5F,qHAAA,uBAAuB,OAAoB;AAKpD,qCAAqC;AACrC,4CAA0B;AAE1B,qCAAqC;AACrC,4CAA0B;AAE1B,4CAA4C;AAC5C,wCAAsB;AAEtB,sDAAsD;AACtD,gDAA8B;AAE9B,oCAAoC;AACpC,+CAA6B;AAE7B,kDAAkD;AAClD,sCAOsB;AANpB,wGAAA,eAAe,OAAA;AACf,uGAAA,cAAc,OAAA;AACd,qGAAA,YAAY,OAAA;AACZ,qGAAA,YAAY,OAAA;AACZ,sGAAA,aAAa,OAAA;AACb,yGAAA,gBAAgB,OAAA;AAGlB,2DAA2D;AAC3D,4CAAsE;AAA7D,wGAAA,YAAY,OAAA;AAAE,iHAAA,qBAAqB,OAAA;AAE5C,gDAAgD;AAChD,mDAM0B;AALxB,+GAAA,aAAa,OAAA;AACb,gHAAA,cAAc,OAAA;AACd,wHAAA,sBAAsB,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/lang-en-us/src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;;;;;;;;;;;;;;;;;;AAEH,yDAAuE;AAA9D,4HAAA,uBAAuB,OAAA;AAAE,6HAAA,OAAO,OAAA;AACzC,yDAAkF,CAAC,kBAAkB;AAA5F,qHAAA,uBAAuB,OAAoB;AAKpD,qCAAqC;AACrC,4CAA0B;AAE1B,qCAAqC;AACrC,4CAA0B;AAE1B,4CAA4C;AAC5C,wCAAsB;AAEtB,sDAAsD;AACtD,gDAA8B;AAE9B,oCAAoC;AACpC,+CAA6B;AAE7B,yEAAyE;AACzE,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAClB,+CAA2C;AAAlC,yGAAA,SAAS,OAAA;AAElB,kDAAkD;AAClD,sCAOsB;AANpB,wGAAA,eAAe,OAAA;AACf,uGAAA,cAAc,OAAA;AACd,qGAAA,YAAY,OAAA;AACZ,qGAAA,YAAY,OAAA;AACZ,sGAAA,aAAa,OAAA;AACb,yGAAA,gBAAgB,OAAA;AAGlB,2DAA2D;AAC3D,4CAAsE;AAA7D,wGAAA,YAAY,OAAA;AAAE,iHAAA,qBAAqB,OAAA;AAE5C,gDAAgD;AAChD,mDAM0B;AALxB,+GAAA,aAAa,OAAA;AACb,gHAAA,cAAc,OAAA;AACd,wHAAA,sBAAsB,OAAA"}
|
package/language-provider.d.ts
CHANGED
|
@@ -19,6 +19,7 @@ export declare class EnglishLanguageProvider implements ParserLanguageProvider {
|
|
|
19
19
|
private narrativeContext;
|
|
20
20
|
private formatterRegistry;
|
|
21
21
|
private entityLookup?;
|
|
22
|
+
private serialComma;
|
|
22
23
|
constructor();
|
|
23
24
|
/**
|
|
24
25
|
* Load core system messages (command failures, etc.)
|
|
@@ -65,7 +66,7 @@ export declare class EnglishLanguageProvider implements ParserLanguageProvider {
|
|
|
65
66
|
* Supports three types of placeholders:
|
|
66
67
|
* 1. Perspective placeholders (ADR-089): {You}, {your}, {take}, etc.
|
|
67
68
|
* - Resolved based on narrative context (1st/2nd/3rd person)
|
|
68
|
-
* 2. Formatted placeholders (ADR-095): {a:item}, {items
|
|
69
|
+
* 2. Formatted placeholders (ADR-095): {a:item}, {list:items}, etc.
|
|
69
70
|
* - Applies formatters before substitution
|
|
70
71
|
* 3. Simple placeholders: {item}, {target}, etc.
|
|
71
72
|
* - Replaced with values from params object
|
|
@@ -84,6 +85,11 @@ export declare class EnglishLanguageProvider implements ParserLanguageProvider {
|
|
|
84
85
|
* @param lookup Function that returns EntityInfo for an entity ID
|
|
85
86
|
*/
|
|
86
87
|
setEntityLookup(lookup: (id: string) => EntityInfo | undefined): void;
|
|
88
|
+
/**
|
|
89
|
+
* Set whether lists use the serial (Oxford) comma (ADR-190). Default true.
|
|
90
|
+
* @param on true → "a, b, and c"; false → "a, b and c"
|
|
91
|
+
*/
|
|
92
|
+
setSerialComma(on: boolean): void;
|
|
87
93
|
/**
|
|
88
94
|
* Register a custom formatter (ADR-095)
|
|
89
95
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"language-provider.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/lang-en-us/src/language-provider.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAoB,sBAAsB,EAAE,UAAU,EAAE,cAAc,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"language-provider.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/lang-en-us/src/language-provider.ts"],"names":[],"mappings":"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"}
|
package/language-provider.js
CHANGED
|
@@ -9,6 +9,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
9
9
|
exports.EnglishLanguageProvider = void 0;
|
|
10
10
|
const verbs_1 = require("./data/verbs");
|
|
11
11
|
const words_1 = require("./data/words");
|
|
12
|
+
const pluralize_1 = require("./pluralize");
|
|
12
13
|
const actions_1 = require("./actions");
|
|
13
14
|
const npc_1 = require("./npc");
|
|
14
15
|
const sound_messages_1 = require("./sound-messages");
|
|
@@ -27,10 +28,12 @@ class EnglishLanguageProvider {
|
|
|
27
28
|
customActionPatterns = new Map();
|
|
28
29
|
// Narrative context for perspective-aware message resolution (ADR-089)
|
|
29
30
|
narrativeContext = perspective_1.DEFAULT_NARRATIVE_CONTEXT;
|
|
30
|
-
// Formatter registry for {a:item}, {items
|
|
31
|
+
// Formatter registry for {a:item}, {list:items}, etc. (ADR-095)
|
|
31
32
|
formatterRegistry;
|
|
32
33
|
// Entity lookup function for formatters (set by engine)
|
|
33
34
|
entityLookup;
|
|
35
|
+
// Serial (Oxford) comma in lists (ADR-190); story-configurable, default on.
|
|
36
|
+
serialComma = true;
|
|
34
37
|
constructor() {
|
|
35
38
|
// Initialize formatter registry
|
|
36
39
|
this.formatterRegistry = (0, formatters_1.createFormatterRegistry)();
|
|
@@ -137,7 +140,7 @@ class EnglishLanguageProvider {
|
|
|
137
140
|
* Supports three types of placeholders:
|
|
138
141
|
* 1. Perspective placeholders (ADR-089): {You}, {your}, {take}, etc.
|
|
139
142
|
* - Resolved based on narrative context (1st/2nd/3rd person)
|
|
140
|
-
* 2. Formatted placeholders (ADR-095): {a:item}, {items
|
|
143
|
+
* 2. Formatted placeholders (ADR-095): {a:item}, {list:items}, etc.
|
|
141
144
|
* - Applies formatters before substitution
|
|
142
145
|
* 3. Simple placeholders: {item}, {target}, etc.
|
|
143
146
|
* - Replaced with values from params object
|
|
@@ -158,6 +161,7 @@ class EnglishLanguageProvider {
|
|
|
158
161
|
if (params) {
|
|
159
162
|
const context = {
|
|
160
163
|
getEntity: this.entityLookup,
|
|
164
|
+
settings: { serialComma: this.serialComma },
|
|
161
165
|
};
|
|
162
166
|
message = (0, formatters_1.formatMessage)(message, params, this.formatterRegistry, context);
|
|
163
167
|
}
|
|
@@ -174,6 +178,13 @@ class EnglishLanguageProvider {
|
|
|
174
178
|
setEntityLookup(lookup) {
|
|
175
179
|
this.entityLookup = lookup;
|
|
176
180
|
}
|
|
181
|
+
/**
|
|
182
|
+
* Set whether lists use the serial (Oxford) comma (ADR-190). Default true.
|
|
183
|
+
* @param on true → "a, b, and c"; false → "a, b and c"
|
|
184
|
+
*/
|
|
185
|
+
setSerialComma(on) {
|
|
186
|
+
this.serialComma = on;
|
|
187
|
+
}
|
|
177
188
|
/**
|
|
178
189
|
* Register a custom formatter (ADR-095)
|
|
179
190
|
*
|
|
@@ -475,41 +486,9 @@ class EnglishLanguageProvider {
|
|
|
475
486
|
return vowels.includes(firstChar) ? 'an' : 'a';
|
|
476
487
|
}
|
|
477
488
|
pluralize(noun) {
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
// Check irregular plurals - the map is plural->singular, so we need to reverse lookup
|
|
482
|
-
for (const [plural, singular] of words_1.irregularPlurals) {
|
|
483
|
-
if (singular === lower) {
|
|
484
|
-
// Preserve the case pattern of the original noun
|
|
485
|
-
if (noun === noun.toUpperCase()) {
|
|
486
|
-
return plural.toUpperCase();
|
|
487
|
-
}
|
|
488
|
-
else if (noun[0] === noun[0].toUpperCase()) {
|
|
489
|
-
return plural[0].toUpperCase() + plural.slice(1);
|
|
490
|
-
}
|
|
491
|
-
return plural;
|
|
492
|
-
}
|
|
493
|
-
}
|
|
494
|
-
// Regular rules
|
|
495
|
-
if (lower.endsWith('s') || lower.endsWith('x') || lower.endsWith('z') ||
|
|
496
|
-
lower.endsWith('ch') || lower.endsWith('sh')) {
|
|
497
|
-
return noun + 'es';
|
|
498
|
-
}
|
|
499
|
-
if (lower.endsWith('y') && !['a', 'e', 'i', 'o', 'u'].includes(lower[lower.length - 2])) {
|
|
500
|
-
// Special handling for case preservation with -ies
|
|
501
|
-
if (noun === noun.toUpperCase()) {
|
|
502
|
-
return noun.slice(0, -1) + 'IES';
|
|
503
|
-
}
|
|
504
|
-
return noun.slice(0, -1) + 'ies';
|
|
505
|
-
}
|
|
506
|
-
if (lower.endsWith('f')) {
|
|
507
|
-
return noun.slice(0, -1) + 'ves';
|
|
508
|
-
}
|
|
509
|
-
if (lower.endsWith('fe')) {
|
|
510
|
-
return noun.slice(0, -2) + 'ves';
|
|
511
|
-
}
|
|
512
|
-
return noun + 's';
|
|
489
|
+
// Delegates to the free `pluralize` (src/pluralize.ts), the single source of
|
|
490
|
+
// truth shared with the list/count formatters.
|
|
491
|
+
return (0, pluralize_1.pluralize)(noun);
|
|
513
492
|
}
|
|
514
493
|
isIgnoreWord(word) {
|
|
515
494
|
return words_1.englishWords.ignoreWords.includes(word.toLowerCase());
|
package/language-provider.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"language-provider.js","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/lang-en-us/src/language-provider.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"language-provider.js","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/lang-en-us/src/language-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Render a count as a word for 1–10, or a numeral for 0 and 11+.
|
|
3
|
+
*
|
|
4
|
+
* @param n a non-negative integer count
|
|
5
|
+
* @returns "one".."ten" for 1–10, otherwise the numeral as a string
|
|
6
|
+
*/
|
|
7
|
+
export declare function countWord(n: number): string;
|
|
8
|
+
//# sourceMappingURL=number-words.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"number-words.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/lang-en-us/src/number-words.ts"],"names":[],"mappings":"AAWA;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAG3C"}
|
package/number-words.js
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// packages/lang-en-us/src/number-words.ts
|
|
3
|
+
//
|
|
4
|
+
// Count-word spelling for list/count rendering (ADR-190): spell out 1–10
|
|
5
|
+
// ("one".."ten"), use numerals for 11 and above. Used by the count formatter and
|
|
6
|
+
// by list count-grouping.
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.countWord = countWord;
|
|
9
|
+
const SMALL = [
|
|
10
|
+
'zero', 'one', 'two', 'three', 'four', 'five',
|
|
11
|
+
'six', 'seven', 'eight', 'nine', 'ten',
|
|
12
|
+
];
|
|
13
|
+
/**
|
|
14
|
+
* Render a count as a word for 1–10, or a numeral for 0 and 11+.
|
|
15
|
+
*
|
|
16
|
+
* @param n a non-negative integer count
|
|
17
|
+
* @returns "one".."ten" for 1–10, otherwise the numeral as a string
|
|
18
|
+
*/
|
|
19
|
+
function countWord(n) {
|
|
20
|
+
if (n >= 1 && n <= 10)
|
|
21
|
+
return SMALL[n];
|
|
22
|
+
return String(n);
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=number-words.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"number-words.js","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/lang-en-us/src/number-words.ts"],"names":[],"mappings":";AAAA,0CAA0C;AAC1C,EAAE;AACF,yEAAyE;AACzE,iFAAiF;AACjF,0BAA0B;;AAa1B,8BAGC;AAdD,MAAM,KAAK,GAAG;IACZ,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM;IAC7C,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK;CACvC,CAAC;AAEF;;;;;GAKG;AACH,SAAgB,SAAS,CAAC,CAAS;IACjC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IACvC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;AACnB,CAAC"}
|
package/package.json
CHANGED
package/pluralize.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pluralize an English noun. Checks the irregular map first (preserving the
|
|
3
|
+
* original case pattern), then applies regular rules (-es / -ies / -ves / -s).
|
|
4
|
+
*
|
|
5
|
+
* @param noun singular noun, e.g. "coin", "goose"
|
|
6
|
+
* @returns the plural form, e.g. "coins", "geese"
|
|
7
|
+
*/
|
|
8
|
+
export declare function pluralize(noun: string): string;
|
|
9
|
+
//# sourceMappingURL=pluralize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pluralize.d.ts","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/lang-en-us/src/pluralize.ts"],"names":[],"mappings":"AAQA;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA4B9C"}
|
package/pluralize.js
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// packages/lang-en-us/src/pluralize.ts
|
|
3
|
+
//
|
|
4
|
+
// English noun pluralization, extracted as a free function so the formatters
|
|
5
|
+
// (list, count) can use it without depending on LanguageProvider. The provider's
|
|
6
|
+
// `pluralize` method delegates here. Irregulars come from ./data/words.
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.pluralize = pluralize;
|
|
9
|
+
const words_1 = require("./data/words");
|
|
10
|
+
/**
|
|
11
|
+
* Pluralize an English noun. Checks the irregular map first (preserving the
|
|
12
|
+
* original case pattern), then applies regular rules (-es / -ies / -ves / -s).
|
|
13
|
+
*
|
|
14
|
+
* @param noun singular noun, e.g. "coin", "goose"
|
|
15
|
+
* @returns the plural form, e.g. "coins", "geese"
|
|
16
|
+
*/
|
|
17
|
+
function pluralize(noun) {
|
|
18
|
+
if (!noun)
|
|
19
|
+
return 's';
|
|
20
|
+
const lower = noun.toLowerCase();
|
|
21
|
+
// Irregulars: the map is plural -> singular, so reverse-lookup by singular.
|
|
22
|
+
for (const [plural, singular] of words_1.irregularPlurals) {
|
|
23
|
+
if (singular === lower) {
|
|
24
|
+
if (noun === noun.toUpperCase())
|
|
25
|
+
return plural.toUpperCase();
|
|
26
|
+
if (noun[0] === noun[0].toUpperCase())
|
|
27
|
+
return plural[0].toUpperCase() + plural.slice(1);
|
|
28
|
+
return plural;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
if (lower.endsWith('s') || lower.endsWith('x') || lower.endsWith('z') ||
|
|
32
|
+
lower.endsWith('ch') || lower.endsWith('sh')) {
|
|
33
|
+
return noun + 'es';
|
|
34
|
+
}
|
|
35
|
+
if (lower.endsWith('y') && !['a', 'e', 'i', 'o', 'u'].includes(lower[lower.length - 2])) {
|
|
36
|
+
if (noun === noun.toUpperCase())
|
|
37
|
+
return noun.slice(0, -1) + 'IES';
|
|
38
|
+
return noun.slice(0, -1) + 'ies';
|
|
39
|
+
}
|
|
40
|
+
if (lower.endsWith('fe'))
|
|
41
|
+
return noun.slice(0, -2) + 'ves';
|
|
42
|
+
if (lower.endsWith('f'))
|
|
43
|
+
return noun.slice(0, -1) + 'ves';
|
|
44
|
+
return noun + 's';
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=pluralize.js.map
|
package/pluralize.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pluralize.js","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/lang-en-us/src/pluralize.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,EAAE;AACF,6EAA6E;AAC7E,iFAAiF;AACjF,wEAAwE;;AAWxE,8BA4BC;AArCD,wCAAgD;AAEhD;;;;;;GAMG;AACH,SAAgB,SAAS,CAAC,IAAY;IACpC,IAAI,CAAC,IAAI;QAAE,OAAO,GAAG,CAAC;IAEtB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAEjC,4EAA4E;IAC5E,KAAK,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,wBAAgB,EAAE,CAAC;QAClD,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;YACvB,IAAI,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE;gBAAE,OAAO,MAAM,CAAC,WAAW,EAAE,CAAC;YAC7D,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;gBAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACxF,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;QACjE,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACjD,OAAO,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACxF,IAAI,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;QAClE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;IACnC,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;IAC3D,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;IAE1D,OAAO,IAAI,GAAG,GAAG,CAAC;AACpB,CAAC"}
|