punctilio 5.3.0 → 5.4.1

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/README.md CHANGED
@@ -233,7 +233,7 @@ A `.pre-commit-hooks.yaml` ships in the package, so [pre-commit](https://pre-com
233
233
  # .pre-commit-config.yaml
234
234
  repos:
235
235
  - repo: https://github.com/AlexanderMattTurner/punctilio
236
- rev: v5.2.13
236
+ rev: v5.4.0
237
237
  hooks:
238
238
  - id: punctilio # rewrites *.md / *.html in place
239
239
  - id: punctilio-check # or: fail without writing (CI-friendly)
@@ -65,9 +65,46 @@ export declare const UNICODE_SYMBOLS: {
65
65
  readonly ARABIC_QUESTION_MARK: "؟";
66
66
  readonly ARABIC_SEMICOLON: "؛";
67
67
  readonly GREEK_QUESTION_MARK: ";";
68
+ readonly INVERTED_EXCLAMATION: "¡";
69
+ readonly INVERTED_QUESTION: "¿";
70
+ readonly FULLWIDTH_LEFT_PAREN: "(";
71
+ readonly FULLWIDTH_RIGHT_PAREN: ")";
72
+ readonly FULLWIDTH_LEFT_BRACKET: "[";
73
+ readonly FULLWIDTH_RIGHT_BRACKET: "]";
74
+ readonly FULLWIDTH_LEFT_BRACE: "{";
75
+ readonly FULLWIDTH_RIGHT_BRACE: "}";
76
+ readonly LEFT_ANGLE_BRACKET: "〈";
77
+ readonly RIGHT_ANGLE_BRACKET: "〉";
78
+ readonly LEFT_DOUBLE_ANGLE_BRACKET: "《";
79
+ readonly RIGHT_DOUBLE_ANGLE_BRACKET: "》";
80
+ readonly LEFT_CORNER_BRACKET: "「";
81
+ readonly RIGHT_CORNER_BRACKET: "」";
82
+ readonly LEFT_WHITE_CORNER_BRACKET: "『";
83
+ readonly RIGHT_WHITE_CORNER_BRACKET: "』";
84
+ readonly LEFT_LENTICULAR_BRACKET: "【";
85
+ readonly RIGHT_LENTICULAR_BRACKET: "】";
68
86
  };
69
87
  /** All terminal punctuation chars for regex character classes (ASCII through CJK/Arabic/Greek). */
70
88
  export declare const TERMINAL_PUNCTUATION: readonly ["!", "?", ".", ",", ";", ":", "…", "⁇", "⁈", "⁉", "‼", "‽", "!", "?", ".", ",", ";", ":", "。", "、", "؟", "؛", ";"];
89
+ /**
90
+ * Punctuation that opens a construct and so binds rightward, to the text after
91
+ * it rather than the text before: brackets, the Spanish inverted marks, and the
92
+ * opening quote forms (including the low-9 openers German and Polish use).
93
+ * Guillemets follow the French convention where `«` opens; German inverts them.
94
+ *
95
+ * The counterpart to {@link TERMINAL_PUNCTUATION}, and like it, spans ASCII
96
+ * through CJK. Straight `"` and `'` are absent: their shape is ambiguous until
97
+ * classified, which is what {@link niceQuotes} and {@link classifyApostrophes}
98
+ * settle, so a consumer that wants to treat one as an opener owns that call.
99
+ */
100
+ export declare const OPENING_PUNCTUATION: readonly string[];
101
+ /**
102
+ * Closing brackets, which may not begin a line. Scoped to brackets because the
103
+ * other marks barred from a line start are {@link TERMINAL_PUNCTUATION} and the
104
+ * closing quote forms in {@link UNICODE_SYMBOLS}; the three together are what a
105
+ * consumer keeps from stranding at a soft wrap.
106
+ */
107
+ export declare const CLOSING_BRACKETS: readonly string[];
71
108
  /**
72
109
  * Character class pattern for Latin letters including European accented characters.
73
110
  * Use inside regex character classes: `[${LATIN_LETTERS}]`
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyElB,CAAA;AAEV,mGAAmG;AACnG,eAAO,MAAM,oBAAoB,8HAYvB,CAAA;AAEV;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,aAAa,qGAAqG,CAAA;AAE/H;;;;;GAKG;AACH,eAAO,MAAM,cAAc,wGAAwB,CAAA;AAEnD,sEAAsE;AACtE,eAAO,MAAM,WAAW,QAAuD,CAAA;AAE/E,qEAAqE;AACrE,eAAO,MAAM,UAAU,QAAoD,CAAA;AAE3E,6FAA6F;AAC7F,eAAO,MAAM,eAAe,QAAwC,CAAA;AAEpE,qEAAqE;AACrE,eAAO,MAAM,iBAAiB,QAAyC,CAAA;AAEvE,+DAA+D;AAC/D,eAAO,MAAM,OAAO,QAAO,CAAA;AAE3B,gFAAgF;AAChF,eAAO,MAAM,aAAa,QAAiC,CAAA;AAE3D;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,aAI5B,CAAA;AAEF,gFAAgF;AAChF,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAE1D;AAED;;;GAGG;AACH,eAAO,MAAM,uBAAuB,IAAI,CAAA;AAExC,gFAAgF;AAChF,eAAO,MAAM,mBAAmB,OAAO,CAAA;AAEvC,eAAO,MAAM,oBAAoB,OAAO,CAAA;AAGxC,yFAAyF;AACzF,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CASnE;AAED,gBAAgB;AAChB,wBAAgB,gBAAgB,IAAI,MAAM,EAAE,CAE3C;AAED,gBAAgB;AAChB,wBAAgB,eAAe,IAAI,IAAI,CAEtC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8FlB,CAAA;AAEV,mGAAmG;AACnG,eAAO,MAAM,oBAAoB,8HAYvB,CAAA;AAqBV;;;;;;;;;;GAUG;AACH,eAAO,MAAM,mBAAmB,EAAE,SAAS,MAAM,EAShD,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,EAAE,SAAS,MAAM,EAAgD,CAAA;AAE9F;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,aAAa,qGAAqG,CAAA;AAE/H;;;;;GAKG;AACH,eAAO,MAAM,cAAc,wGAAwB,CAAA;AAEnD,sEAAsE;AACtE,eAAO,MAAM,WAAW,QAAuD,CAAA;AAE/E,qEAAqE;AACrE,eAAO,MAAM,UAAU,QAAoD,CAAA;AAE3E,6FAA6F;AAC7F,eAAO,MAAM,eAAe,QAAwC,CAAA;AAEpE,qEAAqE;AACrE,eAAO,MAAM,iBAAiB,QAAyC,CAAA;AAEvE,+DAA+D;AAC/D,eAAO,MAAM,OAAO,QAAO,CAAA;AAE3B,gFAAgF;AAChF,eAAO,MAAM,aAAa,QAAiC,CAAA;AAE3D;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,aAI5B,CAAA;AAEF,gFAAgF;AAChF,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAE1D;AAED;;;GAGG;AACH,eAAO,MAAM,uBAAuB,IAAI,CAAA;AAExC,gFAAgF;AAChF,eAAO,MAAM,mBAAmB,OAAO,CAAA;AAEvC,eAAO,MAAM,oBAAoB,OAAO,CAAA;AAGxC,yFAAyF;AACzF,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CASnE;AAED,gBAAgB;AAChB,wBAAgB,gBAAgB,IAAI,MAAM,EAAE,CAE3C;AAED,gBAAgB;AAChB,wBAAgB,eAAe,IAAI,IAAI,CAEtC"}
package/dist/constants.js CHANGED
@@ -72,6 +72,27 @@ export const UNICODE_SYMBOLS = {
72
72
  ARABIC_SEMICOLON: "\u061B", // ؛
73
73
  // Greek punctuation
74
74
  GREEK_QUESTION_MARK: "\u037E", // ; (visually identical to ASCII semicolon)
75
+ // Spanish inverted openers
76
+ INVERTED_EXCLAMATION: "\u00A1", // ¡
77
+ INVERTED_QUESTION: "\u00BF", // ¿
78
+ // CJK fullwidth brackets
79
+ FULLWIDTH_LEFT_PAREN: "\uFF08", // (
80
+ FULLWIDTH_RIGHT_PAREN: "\uFF09", // )
81
+ FULLWIDTH_LEFT_BRACKET: "\uFF3B", // [
82
+ FULLWIDTH_RIGHT_BRACKET: "\uFF3D", // ]
83
+ FULLWIDTH_LEFT_BRACE: "\uFF5B", // {
84
+ FULLWIDTH_RIGHT_BRACE: "\uFF5D", // }
85
+ // CJK ideographic brackets
86
+ LEFT_ANGLE_BRACKET: "\u3008", // 〈
87
+ RIGHT_ANGLE_BRACKET: "\u3009", // 〉
88
+ LEFT_DOUBLE_ANGLE_BRACKET: "\u300A", // 《
89
+ RIGHT_DOUBLE_ANGLE_BRACKET: "\u300B", // 》
90
+ LEFT_CORNER_BRACKET: "\u300C", // 「
91
+ RIGHT_CORNER_BRACKET: "\u300D", // 」
92
+ LEFT_WHITE_CORNER_BRACKET: "\u300E", // 『
93
+ RIGHT_WHITE_CORNER_BRACKET: "\u300F", // 』
94
+ LEFT_LENTICULAR_BRACKET: "\u3010", // 【
95
+ RIGHT_LENTICULAR_BRACKET: "\u3011", // 】
75
96
  };
76
97
  /** All terminal punctuation chars for regex character classes (ASCII through CJK/Arabic/Greek). */
77
98
  export const TERMINAL_PUNCTUATION = [
@@ -87,6 +108,52 @@ export const TERMINAL_PUNCTUATION = [
87
108
  UNICODE_SYMBOLS.ARABIC_QUESTION_MARK, UNICODE_SYMBOLS.ARABIC_SEMICOLON,
88
109
  UNICODE_SYMBOLS.GREEK_QUESTION_MARK,
89
110
  ];
111
+ /**
112
+ * Bracket pairs, opening first, ASCII through the fullwidth and CJK forms.
113
+ * {@link OPENING_PUNCTUATION} and {@link CLOSING_BRACKETS} are both projections
114
+ * of this list, so a bracket can never be listed on one side only.
115
+ */
116
+ const BRACKET_PAIRS = [
117
+ ["(", ")"],
118
+ ["[", "]"],
119
+ ["{", "}"],
120
+ [UNICODE_SYMBOLS.FULLWIDTH_LEFT_PAREN, UNICODE_SYMBOLS.FULLWIDTH_RIGHT_PAREN],
121
+ [UNICODE_SYMBOLS.FULLWIDTH_LEFT_BRACKET, UNICODE_SYMBOLS.FULLWIDTH_RIGHT_BRACKET],
122
+ [UNICODE_SYMBOLS.FULLWIDTH_LEFT_BRACE, UNICODE_SYMBOLS.FULLWIDTH_RIGHT_BRACE],
123
+ [UNICODE_SYMBOLS.LEFT_ANGLE_BRACKET, UNICODE_SYMBOLS.RIGHT_ANGLE_BRACKET],
124
+ [UNICODE_SYMBOLS.LEFT_DOUBLE_ANGLE_BRACKET, UNICODE_SYMBOLS.RIGHT_DOUBLE_ANGLE_BRACKET],
125
+ [UNICODE_SYMBOLS.LEFT_CORNER_BRACKET, UNICODE_SYMBOLS.RIGHT_CORNER_BRACKET],
126
+ [UNICODE_SYMBOLS.LEFT_WHITE_CORNER_BRACKET, UNICODE_SYMBOLS.RIGHT_WHITE_CORNER_BRACKET],
127
+ [UNICODE_SYMBOLS.LEFT_LENTICULAR_BRACKET, UNICODE_SYMBOLS.RIGHT_LENTICULAR_BRACKET],
128
+ ];
129
+ /**
130
+ * Punctuation that opens a construct and so binds rightward, to the text after
131
+ * it rather than the text before: brackets, the Spanish inverted marks, and the
132
+ * opening quote forms (including the low-9 openers German and Polish use).
133
+ * Guillemets follow the French convention where `«` opens; German inverts them.
134
+ *
135
+ * The counterpart to {@link TERMINAL_PUNCTUATION}, and like it, spans ASCII
136
+ * through CJK. Straight `"` and `'` are absent: their shape is ambiguous until
137
+ * classified, which is what {@link niceQuotes} and {@link classifyApostrophes}
138
+ * settle, so a consumer that wants to treat one as an opener owns that call.
139
+ */
140
+ export const OPENING_PUNCTUATION = [
141
+ ...BRACKET_PAIRS.map(([opening]) => opening),
142
+ UNICODE_SYMBOLS.INVERTED_EXCLAMATION,
143
+ UNICODE_SYMBOLS.INVERTED_QUESTION,
144
+ UNICODE_SYMBOLS.LEFT_DOUBLE_QUOTE,
145
+ UNICODE_SYMBOLS.LEFT_SINGLE_QUOTE,
146
+ UNICODE_SYMBOLS.LEFT_GUILLEMET,
147
+ UNICODE_SYMBOLS.DOUBLE_LOW_9_QUOTE,
148
+ UNICODE_SYMBOLS.SINGLE_LOW_9_QUOTE,
149
+ ];
150
+ /**
151
+ * Closing brackets, which may not begin a line. Scoped to brackets because the
152
+ * other marks barred from a line start are {@link TERMINAL_PUNCTUATION} and the
153
+ * closing quote forms in {@link UNICODE_SYMBOLS}; the three together are what a
154
+ * consumer keeps from stranding at a soft wrap.
155
+ */
156
+ export const CLOSING_BRACKETS = BRACKET_PAIRS.map(([, closing]) => closing);
90
157
  /**
91
158
  * Character class pattern for Latin letters including European accented characters.
92
159
  * Use inside regex character classes: `[${LATIN_LETTERS}]`
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { UNICODE_SYMBOLS } from "./constants.js";
1
+ export { CLOSING_BRACKETS, OPENING_PUNCTUATION, TERMINAL_PUNCTUATION, UNICODE_SYMBOLS, } from "./constants.js";
2
2
  export { DASH_STYLES, type DashOptions, type DashStyle, dashWordJoiner, hyphenReplace, } from "./dashes.js";
3
3
  export { nbspTransform } from "./nbsp.js";
4
4
  export { buildProseView, definePass, type ProseNode, type ProsePass, type ProseView, replaceAllInView, type ReplaceAllOptions, withProseView, } from "./prose-view.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EACL,WAAW,EACX,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,cAAc,EACd,aAAa,GACd,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EACL,cAAc,EACd,UAAU,EACV,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,SAAS,EACd,gBAAgB,EAChB,KAAK,iBAAiB,EACtB,aAAa,GACd,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,kBAAkB,EAAE,KAAK,gBAAgB,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAA;AAC3H,OAAO,EAAE,KAAK,aAAa,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAClE,YAAY,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAM9D,OAAO,EAAE,KAAK,SAAS,EAAiB,MAAM,iBAAiB,CAAA;AAC/D,OAAO,EAA0D,KAAK,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAGtH,eAAO,MAAM,0BAA0B,KAA6C,CAAA;AAqDpF;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,GAAE,gBAAqB,GAAG,IAAI,CAOnF;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB,GAAG,MAAM,CAE9E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,GAChB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,WAAW,EACX,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,cAAc,EACd,aAAa,GACd,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EACL,cAAc,EACd,UAAU,EACV,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,SAAS,EACd,gBAAgB,EAChB,KAAK,iBAAiB,EACtB,aAAa,GACd,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,kBAAkB,EAAE,KAAK,gBAAgB,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAA;AAC3H,OAAO,EAAE,KAAK,aAAa,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAClE,YAAY,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAM9D,OAAO,EAAE,KAAK,SAAS,EAAiB,MAAM,iBAAiB,CAAA;AAC/D,OAAO,EAA0D,KAAK,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAGtH,eAAO,MAAM,0BAA0B,KAA6C,CAAA;AAqDpF;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,GAAE,gBAAqB,GAAG,IAAI,CAOnF;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB,GAAG,MAAM,CAE9E"}
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- export { UNICODE_SYMBOLS } from "./constants.js";
1
+ export { CLOSING_BRACKETS, OPENING_PUNCTUATION, TERMINAL_PUNCTUATION, UNICODE_SYMBOLS, } from "./constants.js";
2
2
  export { DASH_STYLES, dashWordJoiner, hyphenReplace, } from "./dashes.js";
3
3
  export { nbspTransform } from "./nbsp.js";
4
4
  export { buildProseView, definePass, replaceAllInView, withProseView, } from "./prose-view.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "punctilio",
3
- "version": "5.3.0",
3
+ "version": "5.4.1",
4
4
  "description": "Smart typography transformations: curly quotes, em-dashes, en-dashes, and more",
5
5
  "type": "module",
6
6
  "sideEffects": false,
package/src/constants.ts CHANGED
@@ -73,6 +73,27 @@ export const UNICODE_SYMBOLS = {
73
73
  ARABIC_SEMICOLON: "\u061B", // ؛
74
74
  // Greek punctuation
75
75
  GREEK_QUESTION_MARK: "\u037E", // ; (visually identical to ASCII semicolon)
76
+ // Spanish inverted openers
77
+ INVERTED_EXCLAMATION: "\u00A1", // ¡
78
+ INVERTED_QUESTION: "\u00BF", // ¿
79
+ // CJK fullwidth brackets
80
+ FULLWIDTH_LEFT_PAREN: "\uFF08", // (
81
+ FULLWIDTH_RIGHT_PAREN: "\uFF09", // )
82
+ FULLWIDTH_LEFT_BRACKET: "\uFF3B", // [
83
+ FULLWIDTH_RIGHT_BRACKET: "\uFF3D", // ]
84
+ FULLWIDTH_LEFT_BRACE: "\uFF5B", // {
85
+ FULLWIDTH_RIGHT_BRACE: "\uFF5D", // }
86
+ // CJK ideographic brackets
87
+ LEFT_ANGLE_BRACKET: "\u3008", // 〈
88
+ RIGHT_ANGLE_BRACKET: "\u3009", // 〉
89
+ LEFT_DOUBLE_ANGLE_BRACKET: "\u300A", // 《
90
+ RIGHT_DOUBLE_ANGLE_BRACKET: "\u300B", // 》
91
+ LEFT_CORNER_BRACKET: "\u300C", // 「
92
+ RIGHT_CORNER_BRACKET: "\u300D", // 」
93
+ LEFT_WHITE_CORNER_BRACKET: "\u300E", // 『
94
+ RIGHT_WHITE_CORNER_BRACKET: "\u300F", // 』
95
+ LEFT_LENTICULAR_BRACKET: "\u3010", // 【
96
+ RIGHT_LENTICULAR_BRACKET: "\u3011", // 】
76
97
  } as const
77
98
 
78
99
  /** All terminal punctuation chars for regex character classes (ASCII through CJK/Arabic/Greek). */
@@ -90,6 +111,55 @@ export const TERMINAL_PUNCTUATION = [
90
111
  UNICODE_SYMBOLS.GREEK_QUESTION_MARK,
91
112
  ] as const
92
113
 
114
+ /**
115
+ * Bracket pairs, opening first, ASCII through the fullwidth and CJK forms.
116
+ * {@link OPENING_PUNCTUATION} and {@link CLOSING_BRACKETS} are both projections
117
+ * of this list, so a bracket can never be listed on one side only.
118
+ */
119
+ const BRACKET_PAIRS: readonly (readonly [string, string])[] = [
120
+ ["(", ")"],
121
+ ["[", "]"],
122
+ ["{", "}"],
123
+ [UNICODE_SYMBOLS.FULLWIDTH_LEFT_PAREN, UNICODE_SYMBOLS.FULLWIDTH_RIGHT_PAREN],
124
+ [UNICODE_SYMBOLS.FULLWIDTH_LEFT_BRACKET, UNICODE_SYMBOLS.FULLWIDTH_RIGHT_BRACKET],
125
+ [UNICODE_SYMBOLS.FULLWIDTH_LEFT_BRACE, UNICODE_SYMBOLS.FULLWIDTH_RIGHT_BRACE],
126
+ [UNICODE_SYMBOLS.LEFT_ANGLE_BRACKET, UNICODE_SYMBOLS.RIGHT_ANGLE_BRACKET],
127
+ [UNICODE_SYMBOLS.LEFT_DOUBLE_ANGLE_BRACKET, UNICODE_SYMBOLS.RIGHT_DOUBLE_ANGLE_BRACKET],
128
+ [UNICODE_SYMBOLS.LEFT_CORNER_BRACKET, UNICODE_SYMBOLS.RIGHT_CORNER_BRACKET],
129
+ [UNICODE_SYMBOLS.LEFT_WHITE_CORNER_BRACKET, UNICODE_SYMBOLS.RIGHT_WHITE_CORNER_BRACKET],
130
+ [UNICODE_SYMBOLS.LEFT_LENTICULAR_BRACKET, UNICODE_SYMBOLS.RIGHT_LENTICULAR_BRACKET],
131
+ ]
132
+
133
+ /**
134
+ * Punctuation that opens a construct and so binds rightward, to the text after
135
+ * it rather than the text before: brackets, the Spanish inverted marks, and the
136
+ * opening quote forms (including the low-9 openers German and Polish use).
137
+ * Guillemets follow the French convention where `«` opens; German inverts them.
138
+ *
139
+ * The counterpart to {@link TERMINAL_PUNCTUATION}, and like it, spans ASCII
140
+ * through CJK. Straight `"` and `'` are absent: their shape is ambiguous until
141
+ * classified, which is what {@link niceQuotes} and {@link classifyApostrophes}
142
+ * settle, so a consumer that wants to treat one as an opener owns that call.
143
+ */
144
+ export const OPENING_PUNCTUATION: readonly string[] = [
145
+ ...BRACKET_PAIRS.map(([opening]) => opening),
146
+ UNICODE_SYMBOLS.INVERTED_EXCLAMATION,
147
+ UNICODE_SYMBOLS.INVERTED_QUESTION,
148
+ UNICODE_SYMBOLS.LEFT_DOUBLE_QUOTE,
149
+ UNICODE_SYMBOLS.LEFT_SINGLE_QUOTE,
150
+ UNICODE_SYMBOLS.LEFT_GUILLEMET,
151
+ UNICODE_SYMBOLS.DOUBLE_LOW_9_QUOTE,
152
+ UNICODE_SYMBOLS.SINGLE_LOW_9_QUOTE,
153
+ ]
154
+
155
+ /**
156
+ * Closing brackets, which may not begin a line. Scoped to brackets because the
157
+ * other marks barred from a line start are {@link TERMINAL_PUNCTUATION} and the
158
+ * closing quote forms in {@link UNICODE_SYMBOLS}; the three together are what a
159
+ * consumer keeps from stranding at a soft wrap.
160
+ */
161
+ export const CLOSING_BRACKETS: readonly string[] = BRACKET_PAIRS.map(([, closing]) => closing)
162
+
93
163
  /**
94
164
  * Character class pattern for Latin letters including European accented characters.
95
165
  * Use inside regex character classes: `[${LATIN_LETTERS}]`
package/src/index.ts CHANGED
@@ -1,4 +1,9 @@
1
- export { UNICODE_SYMBOLS } from "./constants.js"
1
+ export {
2
+ CLOSING_BRACKETS,
3
+ OPENING_PUNCTUATION,
4
+ TERMINAL_PUNCTUATION,
5
+ UNICODE_SYMBOLS,
6
+ } from "./constants.js"
2
7
  export {
3
8
  DASH_STYLES,
4
9
  type DashOptions,