@ptolemy2002/rgx 4.4.0 → 4.5.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/README.md CHANGED
@@ -905,6 +905,48 @@ Unregisters a previously registered custom flag transformer by its key. If the k
905
905
  #### Returns
906
906
  - `void`: This function does not return a value.
907
907
 
908
+ ### accentInsensitiveFlagTransformer
909
+ ```typescript
910
+ const accentInsensitiveFlagTransformer: RegExpFlagTransformer
911
+ ```
912
+
913
+ A pre-built `RegExpFlagTransformer` that makes a regex pattern accent-insensitive. It replaces any accentable characters (a, e, i, o, u and their uppercase equivalents) in the regex source with alternation groups that match both the base character and its accented variants. For example, `é` becomes `(e|é|è|ë|ê)`. The following accent mappings are supported:
914
+
915
+ - `a` / `A`: á, à, ä, â, ã / Á, À, Ä, Â, Ã
916
+ - `e` / `E`: é, è, ë, ê / É, È, Ë, Ê
917
+ - `i` / `I`: í, ì, ï, î / Í, Ì, Ï, Î
918
+ - `o` / `O`: ó, ò, ö, ô, õ / Ó, Ò, Ö, Ô, Õ
919
+ - `u` / `U`: ú, ù, ü, û / Ú, Ù, Ü, Û
920
+
921
+ #### Parameters
922
+ - `exp` (`RegExp`): The regular expression to transform.
923
+
924
+ #### Returns
925
+ - `RegExp`: A new `RegExp` with the same flags but with accentable characters in the source replaced by accent-insensitive alternation groups.
926
+
927
+ ### registerCustomFlagTransformers
928
+ ```typescript
929
+ function registerCustomFlagTransformers(): void
930
+ ```
931
+
932
+ Registers the library's built-in custom flag transformers. Currently registers the following:
933
+ - `"a"` flag: `accentInsensitiveFlagTransformer` — makes patterns accent-insensitive.
934
+
935
+ This function is called automatically when importing from the main module entry point, so you typically do not need to call it yourself. It only needs to be called manually if you import directly from sub-modules.
936
+
937
+ #### Returns
938
+ - `void`: This function does not return a value.
939
+
940
+ ### unregisterCustomFlagTransformers
941
+ ```typescript
942
+ function unregisterCustomFlagTransformers(): void
943
+ ```
944
+
945
+ Unregisters all built-in custom flag transformers that were registered by `registerCustomFlagTransformers`. Currently unregisters the `"a"` flag.
946
+
947
+ #### Returns
948
+ - `void`: This function does not return a value.
949
+
908
950
  ### applyFlagTransformers
909
951
  ```typescript
910
952
  function applyFlagTransformers(regex: RegExp, flags: string, alreadyAppliedFlags?: string): RegExp
@@ -0,0 +1,2 @@
1
+ import { RegExpFlagTransformer } from "../ExtRegExp";
2
+ export declare const accentInsensitiveFlagTransformer: RegExpFlagTransformer;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.accentInsensitiveFlagTransformer = void 0;
4
+ const accentPatterns = [
5
+ "(a|á|à|ä|â|ã)", "(A|Á|À|Ä|Â|Ã)",
6
+ "(e|é|è|ë|ê)", "(E|É|È|Ë|Ê)",
7
+ "(i|í|ì|ï|î)", "(I|Í|Ì|Ï|Î)",
8
+ "(o|ó|ò|ö|ô|õ)", "(O|Ó|Ò|Ö|Ô|Õ)",
9
+ "(u|ú|ù|ü|û)", "(U|Ú|Ù|Ü|Û)"
10
+ ];
11
+ const accentInsensitiveFlagTransformer = function (exp) {
12
+ let source = exp.source;
13
+ const flags = exp.flags;
14
+ accentPatterns.forEach((pattern) => {
15
+ // Replace any of the characters in the pattern with the pattern itself
16
+ source = source.replaceAll(new RegExp(pattern, "g"), pattern);
17
+ });
18
+ return new RegExp(source, flags);
19
+ };
20
+ exports.accentInsensitiveFlagTransformer = accentInsensitiveFlagTransformer;
@@ -0,0 +1,2 @@
1
+ export * from "./accentInsensitive";
2
+ export * from "./register";
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./accentInsensitive"), exports);
18
+ __exportStar(require("./register"), exports);
@@ -0,0 +1,2 @@
1
+ export declare function registerCustomFlagTransformers(): void;
2
+ export declare function unregisterCustomFlagTransformers(): void;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.registerCustomFlagTransformers = registerCustomFlagTransformers;
4
+ exports.unregisterCustomFlagTransformers = unregisterCustomFlagTransformers;
5
+ const ExtRegExp_1 = require("../ExtRegExp");
6
+ const accentInsensitive_1 = require("./accentInsensitive");
7
+ function registerCustomFlagTransformers() {
8
+ (0, ExtRegExp_1.registerFlagTransformer)("a", accentInsensitive_1.accentInsensitiveFlagTransformer);
9
+ }
10
+ function unregisterCustomFlagTransformers() {
11
+ (0, ExtRegExp_1.unregisterFlagTransformer)("a");
12
+ }
package/dist/index.d.ts CHANGED
@@ -9,5 +9,6 @@ export * from "./resolve";
9
9
  export * from "./concat";
10
10
  export * from "./utils";
11
11
  export * from "./ExtRegExp";
12
+ export * from "./flag-transformer";
12
13
  export declare function rgxa(tokens: t.RGXToken[], flags?: string): ExtRegExp;
13
14
  export default function rgx(flags?: string): (strings: TemplateStringsArray, ...tokens: t.RGXToken[]) => ExtRegExp;
package/dist/index.js CHANGED
@@ -17,6 +17,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.rgxa = rgxa;
18
18
  exports.default = rgx;
19
19
  const class_1 = require("./class");
20
+ const flag_transformer_1 = require("./flag-transformer");
20
21
  const concat_1 = require("./concat");
21
22
  const internal_1 = require("./internal");
22
23
  const ExtRegExp_1 = require("./ExtRegExp");
@@ -29,8 +30,11 @@ __exportStar(require("./resolve"), exports);
29
30
  __exportStar(require("./concat"), exports);
30
31
  __exportStar(require("./utils"), exports);
31
32
  __exportStar(require("./ExtRegExp"), exports);
33
+ __exportStar(require("./flag-transformer"), exports);
32
34
  // Call this for certain class methods to work correctly
33
35
  (0, class_1.rgxClassInit)();
36
+ // Call this for our custom flags to work correctly
37
+ (0, flag_transformer_1.registerCustomFlagTransformers)();
34
38
  function rgxa(tokens, flags = '') {
35
39
  (0, ExtRegExp_1.assertValidRegexFlags)(flags);
36
40
  const pattern = (0, concat_1.rgxConcat)(tokens);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ptolemy2002/rgx",
3
- "version": "4.4.0",
3
+ "version": "4.5.0",
4
4
  "private": false,
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",