@sharpee/lang-en-us 1.1.1 → 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/actions/going.js CHANGED
@@ -16,7 +16,7 @@ exports.goingLanguage = {
16
16
  ],
17
17
  messages: {
18
18
  'room_description': "{name}\n{description}",
19
- 'contents_list': "{You} can {see} {items} here.",
19
+ 'contents_list': "{You} can {see} {list:items} here.",
20
20
  'no_exit': "{You} {can't} go that way.",
21
21
  'no_exit_that_way': "{You} {can't} go that way.",
22
22
  'door_closed': "{the:cap:door} {is:door} closed.",
@@ -1 +1 @@
1
- {"version":3,"file":"going.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/lang-en-us/src/actions/going.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEU,QAAA,aAAa,GAAG;IAC3B,QAAQ,EAAE,iBAAiB;IAE3B,QAAQ,EAAE;QACR,gBAAgB;QAChB,aAAa;QACb,kBAAkB;QAClB,kBAAkB;QAClB,kBAAkB;QAClB,oBAAoB;KACrB;IAED,QAAQ,EAAE;QACR,kBAAkB,EAAE,uBAAuB;QAC3C,eAAe,EAAE,+BAA+B;QAChD,SAAS,EAAE,4BAA4B;QACvC,kBAAkB,EAAE,4BAA4B;QAChD,aAAa,EAAE,kCAAkC;QACjD,aAAa,EAAE,kCAAkC;QACjD,UAAU,EAAE,yDAAyD;QACrE,OAAO,EAAE,yBAAyB;QAClC,iBAAiB,EAAE,sCAAsC;QACzD,eAAe,EAAE,yBAAyB;QAC1C,eAAe,EAAE,wDAAwD;QACzE,cAAc,EAAE,6CAA6C;QAC7D,aAAa,EAAE,sDAAsD;QACrE,UAAU,EAAE,6BAA6B;QACzC,kBAAkB,EAAE,WAAW;QAC/B,uBAAuB,EAAE,4BAA4B;QACrD,YAAY,EAAE,sCAAsC;QACpD,MAAM,EAAE,yBAAyB;QACjC,SAAS,EAAE,iBAAiB;QAC5B,SAAS,EAAE,4BAA4B;KACxC;IAED,IAAI,EAAE;QACJ,WAAW,EAAE,uDAAuD;QACpE,QAAQ,EAAE,iDAAiD;QAC3D,OAAO,EAAE,2FAA2F;KACrG;CACF,CAAC"}
1
+ {"version":3,"file":"going.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/lang-en-us/src/actions/going.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEU,QAAA,aAAa,GAAG;IAC3B,QAAQ,EAAE,iBAAiB;IAE3B,QAAQ,EAAE;QACR,gBAAgB;QAChB,aAAa;QACb,kBAAkB;QAClB,kBAAkB;QAClB,kBAAkB;QAClB,oBAAoB;KACrB;IAED,QAAQ,EAAE;QACR,kBAAkB,EAAE,uBAAuB;QAC3C,eAAe,EAAE,oCAAoC;QACrD,SAAS,EAAE,4BAA4B;QACvC,kBAAkB,EAAE,4BAA4B;QAChD,aAAa,EAAE,kCAAkC;QACjD,aAAa,EAAE,kCAAkC;QACjD,UAAU,EAAE,yDAAyD;QACrE,OAAO,EAAE,yBAAyB;QAClC,iBAAiB,EAAE,sCAAsC;QACzD,eAAe,EAAE,yBAAyB;QAC1C,eAAe,EAAE,wDAAwD;QACzE,cAAc,EAAE,6CAA6C;QAC7D,aAAa,EAAE,sDAAsD;QACrE,UAAU,EAAE,6BAA6B;QACzC,kBAAkB,EAAE,WAAW;QAC/B,uBAAuB,EAAE,4BAA4B;QACrD,YAAY,EAAE,sCAAsC;QACpD,MAAM,EAAE,yBAAyB;QACjC,SAAS,EAAE,iBAAiB;QAC5B,SAAS,EAAE,4BAA4B;KACxC;IAED,IAAI,EAAE;QACJ,WAAW,EAAE,uDAAuD;QACpE,QAAQ,EAAE,iDAAiD;QAC3D,OAAO,EAAE,2FAA2F;KACrG;CACF,CAAC"}
@@ -19,8 +19,8 @@ exports.lookingLanguage = {
19
19
  'room_description': "{name}\n{description}",
20
20
  'room_dark': "It's pitch dark, and {you} {can't} see a thing.",
21
21
  'exits': "Exits: {exits}",
22
- 'you_see': "{You} can {see} {items} here.",
23
- 'contents_list': "{You} can {see} {items} here.",
22
+ 'you_see': "{You} can {see} {list:items} here.",
23
+ 'contents_list': "{You} can {see} {list:items} here.",
24
24
  'nothing_special': "{You} {see} nothing special.",
25
25
  'container_contents': "In {the:container} {you} {see} {items}.",
26
26
  'surface_contents': "On {the:surface} {you} {see} {items}."
@@ -1 +1 @@
1
- {"version":3,"file":"looking.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/lang-en-us/src/actions/looking.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEU,QAAA,eAAe,GAAG;IAC7B,QAAQ,EAAE,mBAAmB;IAE7B,QAAQ,EAAE;QACR,MAAM;QACN,GAAG;QACH,aAAa;QACb,qBAAqB;QACrB,qBAAqB;QACrB,eAAe;KAChB;IAED,QAAQ,EAAE;QACR,2FAA2F;QAC3F,kBAAkB,EAAE,uBAAuB;QAC3C,WAAW,EAAE,iDAAiD;QAC9D,OAAO,EAAE,gBAAgB;QACzB,SAAS,EAAE,+BAA+B;QAC1C,eAAe,EAAE,+BAA+B;QAChD,iBAAiB,EAAE,8BAA8B;QACjD,oBAAoB,EAAE,yCAAyC;QAC/D,kBAAkB,EAAE,uCAAuC;KAC5D;IAED,IAAI,EAAE;QACJ,WAAW,EAAE,wDAAwD;QACrE,QAAQ,EAAE,sBAAsB;QAChC,OAAO,EAAE,+EAA+E;KACzF;CACF,CAAC"}
1
+ {"version":3,"file":"looking.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/lang-en-us/src/actions/looking.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEU,QAAA,eAAe,GAAG;IAC7B,QAAQ,EAAE,mBAAmB;IAE7B,QAAQ,EAAE;QACR,MAAM;QACN,GAAG;QACH,aAAa;QACb,qBAAqB;QACrB,qBAAqB;QACrB,eAAe;KAChB;IAED,QAAQ,EAAE;QACR,2FAA2F;QAC3F,kBAAkB,EAAE,uBAAuB;QAC3C,WAAW,EAAE,iDAAiD;QAC9D,OAAO,EAAE,gBAAgB;QACzB,SAAS,EAAE,oCAAoC;QAC/C,eAAe,EAAE,oCAAoC;QACrD,iBAAiB,EAAE,8BAA8B;QACjD,oBAAoB,EAAE,yCAAyC;QAC/D,kBAAkB,EAAE,uCAAuC;KAC5D;IAED,IAAI,EAAE;QACJ,WAAW,EAAE,wDAAwD;QACrE,QAAQ,EAAE,sBAAsB;QAChC,OAAO,EAAE,+EAA+E;KACzF;CACF,CAAC"}
@@ -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:list} → "a sword, a key, and a coin"
9
- * Example: {a:items:list} → applies 'a' to each item, then 'list' to join
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
  */
@@ -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:list} → "a sword, a key, and a coin"
10
- * Example: {a:items:list} → applies 'a' to each item, then 'list' to join
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
  */
@@ -7,13 +7,27 @@
7
7
  */
8
8
  import type { Formatter } from './types.js';
9
9
  /**
10
- * "list" formatter - join with commas and "and"
10
+ * "list" formatter — natural-language list of entities (ADR-190).
11
11
  *
12
- * Single: "a sword"
13
- * Two: "a sword and a key"
14
- * Three+: "a sword, a key, and a coin"
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 - number + noun (with pluralization)
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:count} with 3 swords → "3 swords"
35
- * Example: {items:count} with 1 sword → "1 sword"
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
@@ -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,EAAc,MAAM,YAAY,CAAC;AAmBxD;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,EAAE,SAU3B,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,EAAE,SAU7B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAGhC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,EAAE,SAU5B,CAAC"}
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"}
@@ -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
- * "list" formatter - join with commas and "and"
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
- * Single: "a sword"
30
- * Two: "a sword and a key"
31
- * Three+: "a sword, a key, and a coin"
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 listFormatter = (value, _context) => {
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
- if (items.length === 1)
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.listFormatter = listFormatter;
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 - number + noun (with pluralization)
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:count} with 3 swords → "3 swords"
80
- * Example: {items:count} with 1 sword → "1 sword"
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 items = ensureArray(value);
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 `1 ${items[0]}`;
89
- // For count > 1, assume the items are already formatted
90
- // The item name should be pluralized by caller or be inherently plural
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
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/lang-en-us/src/formatters/list.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/lang-en-us/src/formatters/list.ts"],"names":[],"mappings":"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"}
@@ -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:list}, {a:items:list}
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,CA4B3D;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;;;;;;;;;;;;GAYG;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"}
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"}
@@ -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:list}, {a:items:list}
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":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/lang-en-us/src/formatters/registry.ts"],"names":[],"mappings":"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"}
@@ -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:list} → "a sword, a key, and a coin"
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;CACpD;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;CAC3C;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"}
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"}
@@ -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:list} → "a sword, a key, and a coin"
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"}
@@ -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:list}, etc.
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":"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"}
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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"}
@@ -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:list}, etc. (ADR-095)
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:list}, etc.
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
- if (!noun)
479
- return 's';
480
- const lower = noun.toLowerCase();
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());
@@ -1 +1 @@
1
- {"version":3,"file":"language-provider.js","sourceRoot":"","sources":["../../../../../../repos/sharpee/packages/lang-en-us/src/language-provider.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAGH,wCAA4C;AAC5C,wCAA6E;AAC7E,uCAAmD;AACnD,+BAAkG;AAClG,qDAAiD;AACjD,+CAIuB;AACvB,6CAMsB;AAEtB,iDAAiD;AAEjD;;GAEG;AACH,MAAa,uBAAuB;IACzB,YAAY,GAAG,OAAO,CAAC;IACvB,YAAY,GAAG,cAAc,CAAC;IAC9B,aAAa,GAAG,KAAc,CAAC;IAExC,kBAAkB;IACV,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;IACrC,oBAAoB,GAAG,IAAI,GAAG,EAAoB,CAAC;IAE3D,uEAAuE;IAC/D,gBAAgB,GAAqB,uCAAyB,CAAC;IAEvE,gEAAgE;IACxD,iBAAiB,CAAoB;IAE7C,wDAAwD;IAChD,YAAY,CAA0C;IAE9D;QACE,gCAAgC;QAChC,IAAI,CAAC,iBAAiB,GAAG,IAAA,oCAAuB,GAAE,CAAC;QACnD,4BAA4B;QAC5B,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,2BAA2B;QAC3B,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,8BAA8B;QAC9B,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,qDAAqD;QACrD,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,sDAAsD;QACtD,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACK,gBAAgB;QACtB,MAAM,YAAY,GAA2B;YAC3C,uBAAuB,EAAE,+BAA+B;YACxD,0BAA0B,EAAE,oBAAoB;YAChD,4BAA4B,EAAE,+BAA+B;YAC7D,6BAA6B,EAAE,kCAAkC;YACjE,qBAAqB,EAAE,0BAA0B;YACjD,0BAA0B;YAC1B,qBAAqB,EAAE,qDAAqD;YAC5E,4BAA4B;YAC5B,oBAAoB,EAAE,IAAI;SAC3B,CAAC;QAEF,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;YACxD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACH,oBAAoB,CAAC,QAA0B;QAC7C,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,mBAAmB;QACjB,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IAED;;OAEG;IACK,kBAAkB;QACxB,KAAK,MAAM,UAAU,IAAI,gCAAsB,EAAE,CAAC;YAChD,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;gBACxB,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;oBAC3D,mCAAmC;oBACnC,MAAM,OAAO,GAAG,GAAG,UAAU,CAAC,QAAQ,IAAI,GAAG,EAAE,CAAC;oBAChD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBACpC,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,eAAe;QACrB,IAAI,iBAAW,CAAC,QAAQ,EAAE,CAAC;YACzB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,iBAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAChE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,qBAAqB;QAC3B,KAAK,MAAM,IAAI,IAAI,CAAC,0BAAoB,EAAE,yBAAmB,EAAE,uBAAiB,CAAC,EAAE,CAAC;YAClF,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACzD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBAChC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACK,iBAAiB;QACvB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,8BAAa,CAAC,EAAE,CAAC;YACzD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,UAAU,CAAC,SAAiB,EAAE,MAA4B;QACxD,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAE3C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,SAAS,CAAC,CAAC,4BAA4B;QAChD,CAAC;QAED,qDAAqD;QACrD,2CAA2C;QAC3C,OAAO,GAAG,IAAA,4CAA8B,EAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAEzE,+DAA+D;QAC/D,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,OAAO,GAAqB;gBAChC,SAAS,EAAE,IAAI,CAAC,YAAY;aAC7B,CAAC;YACF,OAAO,GAAG,IAAA,0BAAoB,EAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;QACnF,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;;;OAOG;IACH,eAAe,CAAC,MAA8C;QAC5D,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;IAC7B,CAAC;IAED;;;;;;;OAOG;IACH,iBAAiB,CACf,IAAY,EACZ,SAA4D;QAE5D,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,oBAAoB;QAClB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACH,UAAU,CAAC,SAAiB;QAC1B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;IAED;;;;OAIG;IACH,iBAAiB,CAAC,QAAgB;QAChC,8BAA8B;QAC9B,MAAM,cAAc,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE/D,sCAAsC;QACtC,MAAM,UAAU,GAAG,gCAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;QACnF,MAAM,gBAAgB,GAAG,UAAU,EAAE,QAAQ,CAAC;QAE9C,mCAAmC;QACnC,IAAI,cAAc,IAAI,gBAAgB,EAAE,CAAC;YACvC,OAAO,CAAC,GAAG,gBAAgB,EAAE,GAAG,cAAc,CAAC,CAAC;QAClD,CAAC;QAED,OAAO,cAAc,IAAI,gBAAgB,CAAC;IAC5C,CAAC;IAED;;;;OAIG;IACH,aAAa,CAAC,QAAgB;QAC5B,MAAM,UAAU,GAAG,gCAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;QACnF,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,8BAA8B;QAC9B,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;YACxB,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBACpC,yDAAyD;gBACzD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACtC,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;oBACpC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC1B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACnB,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAGD,kCAAkC;QAClC,IAAI,QAAQ,GAAa,EAAE,CAAC;QAC5B,IAAI,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC9B,0BAA0B;YAC1B,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;QACtE,CAAC;QAED,OAAO;YACL,WAAW,EAAE,UAAU,CAAC,IAAI,EAAE,WAAW,IAAI,2BAA2B;YACxE,KAAK;YACL,QAAQ;YACR,OAAO,EAAE,UAAU,CAAC,IAAI,EAAE,OAAO;SAClC,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,mBAAmB;QACjB,OAAO,gCAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3D,CAAC;IAED;;;;;OAKG;IACH,cAAc;QACZ,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACH,aAAa,CAAC,MAAW;QACvB,IAAI,CAAC,MAAM;YAAE,OAAO,WAAW,CAAC;QAEhC,8BAA8B;QAC9B,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,yBAAyB;QACzB,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAChB,OAAO,MAAM,CAAC,IAAI,CAAC;QACrB,CAAC;QAED,qBAAqB;QACrB,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;YACvC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC/C,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAC9B,OAAO,QAAQ,CAAC,IAAI,CAAC;YACvB,CAAC;QACH,CAAC;QAED,0BAA0B;QAC1B,IAAI,MAAM,CAAC,GAAG,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,UAAU,EAAE,CAAC;YACnD,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACxC,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAC9B,OAAO,QAAQ,CAAC,IAAI,CAAC;YACvB,CAAC;QACH,CAAC;QAED,kBAAkB;QAClB,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;YACd,OAAO,MAAM,CAAC,EAAE,CAAC;QACnB,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;;;OAIG;IACH,iBAAiB,CAAC,QAAgB;QAChC,MAAM,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;QACjD,MAAM,MAAM,GAAG,GAAG,QAAQ,GAAG,CAAC;QAE9B,oCAAoC;QACpC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACzC,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3B,MAAM,UAAU,GAAG,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAChD,cAAc,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;QAED,OAAO,cAAc,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC;IACzD,CAAC;IAED,QAAQ;QACN,OAAO,oBAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC/B,QAAQ,EAAE,IAAI,CAAC,MAAM;YACrB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;gBAC5B,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;gBAChE,WAAW;YACb,YAAY,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;SACjF,CAAC,CAAC,CAAC;IACN,CAAC;IAED,aAAa;QACX,OAAO;YACL,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC,GAAG,CAAC,EAAE;YAC9D,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC,GAAG,CAAC,EAAE;YAC9D,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC,GAAG,CAAC,EAAE;YAC5D,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC,GAAG,CAAC,EAAE;YAC5D,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,WAAW,CAAC,EAAE,aAAa,EAAE,CAAC,IAAI,CAAC,EAAE;YACvE,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,WAAW,CAAC,EAAE,aAAa,EAAE,CAAC,IAAI,CAAC,EAAE;YACvE,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,WAAW,CAAC,EAAE,aAAa,EAAE,CAAC,IAAI,CAAC,EAAE;YACvE,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,WAAW,CAAC,EAAE,aAAa,EAAE,CAAC,IAAI,CAAC,EAAE;YACvE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC,GAAG,CAAC,EAAE;YAC7E,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC,EAAE,aAAa,EAAE,CAAC,GAAG,CAAC,EAAE;YACrF,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE;YAC5C,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE;SAChD,CAAC;IACJ,CAAC;IAED,oBAAoB;QAClB,OAAO;YACL,QAAQ,EAAE,oBAAY,CAAC,QAAQ;YAC/B,QAAQ,EAAE,oBAAY,CAAC,QAAQ;YAC/B,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,CAAC;YACxC,WAAW,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC;SAC/B,CAAC;IACJ,CAAC;IAED,mBAAmB;QACjB,OAAO,oBAAY,CAAC,gBAAgB,CAAC;IACvC,CAAC;IAED,cAAc;QACZ,OAAO,oBAAY,CAAC,WAAW,IAAI,EAAE,CAAC;IACxC,CAAC;IAED,eAAe;QACb,OAAO,oBAAY,CAAC,YAAY,CAAC;IACnC,CAAC;IAED,cAAc;QACZ,OAAO,oBAAY,CAAC,WAAW,IAAI,EAAE,CAAC;IACxC,CAAC;IAED,eAAe;QACb,OAAO,oBAAY,CAAC,YAAY,IAAI,EAAE,CAAC;IACzC,CAAC;IAED,UAAU;QACR,OAAO,oBAAY,CAAC,WAAW,IAAI,EAAE,CAAC;IACxC,CAAC;IAED,kBAAkB;QAChB,OAAO;YACL;gBACE,IAAI,EAAE,qBAAqB;gBAC3B,OAAO,EAAE,uBAAuB;gBAChC,OAAO,EAAE,iBAAiB;gBAC1B,QAAQ,EAAE,GAAG;aACd;YACD;gBACE,IAAI,EAAE,gBAAgB;gBACtB,OAAO,EAAE,iBAAiB;gBAC1B,OAAO,EAAE,kBAAkB;gBAC3B,QAAQ,EAAE,EAAE;aACb;YACD;gBACE,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,YAAY;gBACrB,OAAO,EAAE,WAAW;gBACpB,QAAQ,EAAE,EAAE;aACb;YACD;gBACE,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,MAAM;gBACf,OAAO,EAAE,MAAM;gBACf,QAAQ,EAAE,EAAE;aACb;YACD;gBACE,IAAI,EAAE,gBAAgB;gBACtB,OAAO,EAAE,WAAW;gBACpB,OAAO,EAAE,OAAO;gBAChB,QAAQ,EAAE,EAAE;aACb;SACF,CAAC;IACJ,CAAC;IAED,SAAS,CAAC,IAAY;QACpB,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QAErB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAEjC,0BAA0B;QAC1B,MAAM,QAAQ,GAAG,wBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAE9B,6BAA6B;QAC7B,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,MAAM;YAAE,OAAO,KAAK,CAAC;QAEtD,kCAAkC;QAClC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QAClC,CAAC;QACD,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7C,mCAAmC;YACnC,IAAI,KAAK,KAAK,KAAK;gBAAE,OAAO,KAAK,CAAC;YAClC,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5B,CAAC;QACD,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrE,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5B,CAAC;QACD,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7C,6CAA6C;YAC7C,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;gBAC5E,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC5B,CAAC;YACD,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5B,CAAC;QACD,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACtE,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5B,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,kBAAkB,CAAC,YAAoB;QACrC,OAAO,qBAAa,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,IAAI,IAAI,CAAC;IAC/D,CAAC;IAED,UAAU,CAAC,KAAe,EAAE,cAA4B,KAAK;QAC3D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAClC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;QACxC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,WAAW,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAExE,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACrC,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,WAAW,IAAI,IAAI,EAAE,CAAC;IAC5D,CAAC;IAED,oBAAoB,CAAC,IAAY;QAC/B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,GAAG,CAAC;QAE3C,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAEzC,gBAAgB;QAChB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC;QACvD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO,IAAI,CAAC;QACzD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;YAAE,OAAO,GAAG,CAAC;QACrD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;YAAE,OAAO,GAAG,CAAC;QAErD,OAAO,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;IACjD,CAAC;IAED,SAAS,CAAC,IAAY;QACpB,IAAI,CAAC,IAAI;YAAE,OAAO,GAAG,CAAC;QAEtB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAEjC,sFAAsF;QACtF,KAAK,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,wBAAgB,EAAE,CAAC;YAClD,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;gBACvB,iDAAiD;gBACjD,IAAI,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;oBAChC,OAAO,MAAM,CAAC,WAAW,EAAE,CAAC;gBAC9B,CAAC;qBAAM,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;oBAC7C,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACnD,CAAC;gBACD,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC;QAED,gBAAgB;QAChB,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;YACjE,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACjD,OAAO,IAAI,GAAG,IAAI,CAAC;QACrB,CAAC;QAED,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;YACxF,mDAAmD;YACnD,IAAI,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;gBAChC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;YACnC,CAAC;YACD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;QACnC,CAAC;QAED,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;QACnC,CAAC;QAED,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;QACnC,CAAC;QAED,OAAO,IAAI,GAAG,GAAG,CAAC;IACpB,CAAC;IAED,YAAY,CAAC,IAAY;QACvB,OAAO,oBAAY,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED;;;;OAIG;IACH,UAAU,CAAC,SAAiB,EAAE,QAAgB;QAC5C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACzC,CAAC;IAED;;;;OAIG;IACH,aAAa,CAAC,QAAgB,EAAE,IAAgB;QAC9C,wDAAwD;QACxD,0DAA0D;QAC1D,4DAA4D;QAC5D,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ,mBAAmB,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;gBACvC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ,iBAAiB,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;YAClE,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,iBAAiB,CAAC,QAAgB,EAAE,QAAkB;QACpD,+BAA+B;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAE/D,gDAAgD;QAChD,MAAM,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;QAC7B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC9B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;QAED,4BAA4B;QAC5B,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAClD,CAAC;CACF;AAnmBD,0DAmmBC;AAED,sCAAsC;AACtC,kBAAe,IAAI,uBAAuB,EAAE,CAAC"}
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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"}
package/npc/npc.d.ts CHANGED
@@ -7,6 +7,8 @@ export declare const npcLanguage: {
7
7
  'npc.leaves': string;
8
8
  'npc.arrives': string;
9
9
  'npc.departs': string;
10
+ 'npc.heard_arrives': string;
11
+ 'npc.heard_departs': string;
10
12
  'npc.notices_player': string;
11
13
  'npc.ignores_player': string;
12
14
  'npc.takes': string;
package/npc/npc.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"npc.d.ts","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/lang-en-us/src/npc/npc.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6DvB,CAAC"}
1
+ {"version":3,"file":"npc.d.ts","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/lang-en-us/src/npc/npc.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiEvB,CAAC"}
package/npc/npc.js CHANGED
@@ -6,11 +6,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.npcLanguage = void 0;
7
7
  exports.npcLanguage = {
8
8
  messages: {
9
- // Movement messages
9
+ // Movement messages (visual renderings)
10
10
  'npc.enters': "{npcName} enters from the {direction}.",
11
11
  'npc.leaves': "{npcName} leaves to the {direction}.",
12
12
  'npc.arrives': "{npcName} arrives.",
13
13
  'npc.departs': "{npcName} departs.",
14
+ // Movement messages (anonymized hearing renderings — heard in the dark/when blind)
15
+ 'npc.heard_arrives': "You hear someone enter.",
16
+ 'npc.heard_departs': "You hear someone leave.",
14
17
  // Observation messages
15
18
  'npc.notices_player': "{npcName} notices you.",
16
19
  'npc.ignores_player': "{npcName} ignores you.",
package/npc/npc.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"npc.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/lang-en-us/src/npc/npc.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEU,QAAA,WAAW,GAAG;IACzB,QAAQ,EAAE;QACR,oBAAoB;QACpB,YAAY,EAAE,wCAAwC;QACtD,YAAY,EAAE,sCAAsC;QACpD,aAAa,EAAE,oBAAoB;QACnC,aAAa,EAAE,oBAAoB;QAEnC,uBAAuB;QACvB,oBAAoB,EAAE,wBAAwB;QAC9C,oBAAoB,EAAE,wBAAwB;QAE9C,kBAAkB;QAClB,WAAW,EAAE,gCAAgC;QAC7C,WAAW,EAAE,6BAA6B;QAC1C,aAAa,EAAE,wBAAwB;QAEvC,iBAAiB;QACjB,kBAAkB,EAAE,4BAA4B;QAChD,mBAAmB,EAAE,wBAAwB;QAC7C,oBAAoB,EAAE,kCAAkC;QAExD,0BAA0B;QAC1B,aAAa,EAAE,wBAAwB;QACvC,YAAY,EAAE,qCAAqC;QACnD,UAAU,EAAE,yCAAyC;QACrD,YAAY,EAAE,2BAA2B;QACzC,iBAAiB,EAAE,mCAAmC;QAEtD,6EAA6E;QAC7E,0BAA0B,EAAE,0CAA0C;QACtE,uBAAuB,EAAE,2CAA2C;QACpE,6BAA6B,EAAE,wDAAwD;QACvF,6BAA6B,EAAE,2EAA2E;QAC1G,+BAA+B,EAAE,gFAAgF;QACjH,0BAA0B,EAAE,+CAA+C;QAE3E,kBAAkB;QAClB,yEAAyE;QACzE,0EAA0E;QAC1E,YAAY,EAAE,QAAQ;QACtB,YAAY,EAAE,4BAA4B;QAC1C,YAAY,EAAE,8BAA8B;QAC5C,cAAc,EAAE,gCAAgC;QAChD,aAAa,EAAE,+BAA+B;QAE9C,iBAAiB;QACjB,wEAAwE;QACxE,8EAA8E;QAC9E,WAAW,EAAE,QAAQ;QACrB,YAAY,EAAE,mBAAmB;QACjC,YAAY,EAAE,8BAA8B;QAC5C,WAAW,EAAE,kBAAkB;QAC/B,WAAW,EAAE,kBAAkB;QAE/B,oBAAoB;QACpB,YAAY,EAAE,uBAAuB;QACrC,cAAc,EAAE,8BAA8B;QAC9C,iBAAiB,EAAE,4BAA4B;QAC/C,cAAc,EAAE,2BAA2B;KAC5C;CACF,CAAC"}
1
+ {"version":3,"file":"npc.js","sourceRoot":"","sources":["../../../../../../../repos/sharpee/packages/lang-en-us/src/npc/npc.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEU,QAAA,WAAW,GAAG;IACzB,QAAQ,EAAE;QACR,wCAAwC;QACxC,YAAY,EAAE,wCAAwC;QACtD,YAAY,EAAE,sCAAsC;QACpD,aAAa,EAAE,oBAAoB;QACnC,aAAa,EAAE,oBAAoB;QAEnC,mFAAmF;QACnF,mBAAmB,EAAE,yBAAyB;QAC9C,mBAAmB,EAAE,yBAAyB;QAE9C,uBAAuB;QACvB,oBAAoB,EAAE,wBAAwB;QAC9C,oBAAoB,EAAE,wBAAwB;QAE9C,kBAAkB;QAClB,WAAW,EAAE,gCAAgC;QAC7C,WAAW,EAAE,6BAA6B;QAC1C,aAAa,EAAE,wBAAwB;QAEvC,iBAAiB;QACjB,kBAAkB,EAAE,4BAA4B;QAChD,mBAAmB,EAAE,wBAAwB;QAC7C,oBAAoB,EAAE,kCAAkC;QAExD,0BAA0B;QAC1B,aAAa,EAAE,wBAAwB;QACvC,YAAY,EAAE,qCAAqC;QACnD,UAAU,EAAE,yCAAyC;QACrD,YAAY,EAAE,2BAA2B;QACzC,iBAAiB,EAAE,mCAAmC;QAEtD,6EAA6E;QAC7E,0BAA0B,EAAE,0CAA0C;QACtE,uBAAuB,EAAE,2CAA2C;QACpE,6BAA6B,EAAE,wDAAwD;QACvF,6BAA6B,EAAE,2EAA2E;QAC1G,+BAA+B,EAAE,gFAAgF;QACjH,0BAA0B,EAAE,+CAA+C;QAE3E,kBAAkB;QAClB,yEAAyE;QACzE,0EAA0E;QAC1E,YAAY,EAAE,QAAQ;QACtB,YAAY,EAAE,4BAA4B;QAC1C,YAAY,EAAE,8BAA8B;QAC5C,cAAc,EAAE,gCAAgC;QAChD,aAAa,EAAE,+BAA+B;QAE9C,iBAAiB;QACjB,wEAAwE;QACxE,8EAA8E;QAC9E,WAAW,EAAE,QAAQ;QACrB,YAAY,EAAE,mBAAmB;QACjC,YAAY,EAAE,8BAA8B;QAC5C,WAAW,EAAE,kBAAkB;QAC/B,WAAW,EAAE,kBAAkB;QAE/B,oBAAoB;QACpB,YAAY,EAAE,uBAAuB;QACrC,cAAc,EAAE,8BAA8B;QAC9C,iBAAiB,EAAE,4BAA4B;QAC/C,cAAc,EAAE,2BAA2B;KAC5C;CACF,CAAC"}
@@ -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"}
@@ -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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sharpee/lang-en-us",
3
- "version": "1.1.1",
3
+ "version": "1.2.0",
4
4
  "description": "English language implementation for Sharpee IF Engine",
5
5
  "main": "./index.js",
6
6
  "types": "./index.d.ts",
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
@@ -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"}