@pol-studios/db 1.0.53 → 1.0.55
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/dist/{DataLayerContext-DND_nO5a.d.ts → DataLayerContext-C7cJtiO8.d.ts} +1 -1
- package/dist/auth/context.js +4 -4
- package/dist/auth/hooks.js +5 -5
- package/dist/auth/index.js +5 -5
- package/dist/{chunk-FIAXWEBK.js → chunk-7YGDT46S.js} +4 -4
- package/dist/{chunk-D55QGM4P.js → chunk-AA3VUWTP.js} +113 -17
- package/dist/chunk-AA3VUWTP.js.map +1 -0
- package/dist/{chunk-3Q74DK5K.js → chunk-AKCNWHXV.js} +2 -2
- package/dist/{chunk-UJWETW36.js → chunk-AKIRHA4Q.js} +527 -418
- package/dist/chunk-AKIRHA4Q.js.map +1 -0
- package/dist/{chunk-FMYXG4VN.js → chunk-BRFFTGVJ.js} +2 -2
- package/dist/{chunk-YA6MUTA7.js → chunk-FI6JAD5G.js} +3 -3
- package/dist/chunk-JOULSXOI.js +415 -0
- package/dist/chunk-JOULSXOI.js.map +1 -0
- package/dist/{chunk-OKYHI6JG.js → chunk-LF3V3ERS.js} +3 -3
- package/dist/{chunk-FZJX2FZS.js → chunk-OC6S4XFL.js} +10 -18
- package/dist/chunk-OC6S4XFL.js.map +1 -0
- package/dist/{chunk-DP3YEVSX.js → chunk-WILXD5X3.js} +3 -3
- package/dist/{chunk-ZGQ7Q4ZU.js → chunk-WM25QE7E.js} +2 -2
- package/dist/{chunk-WQLIGVQR.js → chunk-WSKBZIEI.js} +4 -1
- package/dist/chunk-WSKBZIEI.js.map +1 -0
- package/dist/chunk-YUX6RGLZ.js +1858 -0
- package/dist/chunk-YUX6RGLZ.js.map +1 -0
- package/dist/{chunk-Z3EJX3VG.js → chunk-Z456IHCB.js} +3 -3
- package/dist/hooks/index.d.ts +2 -2
- package/dist/hooks/index.js +2 -2
- package/dist/{index-bMBDRkMF.d.ts → index-jVYdTeWx.d.ts} +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.js +13 -13
- package/dist/index.native.d.ts +61 -7
- package/dist/index.native.js +13 -13
- package/dist/index.web.d.ts +6 -6
- package/dist/index.web.js +13 -13
- package/dist/mutation/index.js +3 -3
- package/dist/parser/index.js +3 -3
- package/dist/query/index.js +4 -4
- package/dist/realtime/index.js +3 -3
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.js +4 -4
- package/dist/{useDbCount-BGSlyv-F.d.ts → useDbCount-DHLJzmkO.d.ts} +1 -1
- package/dist/{useResolveFeedback-DLvQD0Wl.d.ts → useResolveFeedback-B0UcYWVI.d.ts} +3 -3
- package/dist/with-auth/index.js +7 -7
- package/package.json +5 -3
- package/dist/chunk-CTRY7JDP.js +0 -4112
- package/dist/chunk-CTRY7JDP.js.map +0 -1
- package/dist/chunk-D55QGM4P.js.map +0 -1
- package/dist/chunk-FZJX2FZS.js.map +0 -1
- package/dist/chunk-INEUG6MC.js +0 -521
- package/dist/chunk-INEUG6MC.js.map +0 -1
- package/dist/chunk-UJWETW36.js.map +0 -1
- package/dist/chunk-WQLIGVQR.js.map +0 -1
- /package/dist/{chunk-FIAXWEBK.js.map → chunk-7YGDT46S.js.map} +0 -0
- /package/dist/{chunk-3Q74DK5K.js.map → chunk-AKCNWHXV.js.map} +0 -0
- /package/dist/{chunk-FMYXG4VN.js.map → chunk-BRFFTGVJ.js.map} +0 -0
- /package/dist/{chunk-YA6MUTA7.js.map → chunk-FI6JAD5G.js.map} +0 -0
- /package/dist/{chunk-OKYHI6JG.js.map → chunk-LF3V3ERS.js.map} +0 -0
- /package/dist/{chunk-DP3YEVSX.js.map → chunk-WILXD5X3.js.map} +0 -0
- /package/dist/{chunk-ZGQ7Q4ZU.js.map → chunk-WM25QE7E.js.map} +0 -0
- /package/dist/{chunk-Z3EJX3VG.js.map → chunk-Z456IHCB.js.map} +0 -0
package/dist/chunk-CTRY7JDP.js
DELETED
|
@@ -1,4112 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
deepEqual,
|
|
3
|
-
flatten,
|
|
4
|
-
unflatten
|
|
5
|
-
} from "./chunk-INEUG6MC.js";
|
|
6
|
-
import {
|
|
7
|
-
__commonJS,
|
|
8
|
-
__toESM
|
|
9
|
-
} from "./chunk-7D4SUZUM.js";
|
|
10
|
-
|
|
11
|
-
// ../../../node_modules/.pnpm/xregexp@5.1.1/node_modules/xregexp/tools/output/categories.js
|
|
12
|
-
var require_categories = __commonJS({
|
|
13
|
-
"../../../node_modules/.pnpm/xregexp@5.1.1/node_modules/xregexp/tools/output/categories.js"(exports, module) {
|
|
14
|
-
module.exports = [
|
|
15
|
-
{
|
|
16
|
-
"name": "C",
|
|
17
|
-
"alias": "Other",
|
|
18
|
-
"isBmpLast": true,
|
|
19
|
-
"bmp": "\0-\x7F-\x9F\xAD\u0378\u0379\u0380-\u0383\u038B\u038D\u03A2\u0530\u0557\u0558\u058B\u058C\u0590\u05C8-\u05CF\u05EB-\u05EE\u05F5-\u0605\u061C\u06DD\u070E\u070F\u074B\u074C\u07B2-\u07BF\u07FB\u07FC\u082E\u082F\u083F\u085C\u085D\u085F\u086B-\u086F\u088F-\u0897\u08E2\u0984\u098D\u098E\u0991\u0992\u09A9\u09B1\u09B3-\u09B5\u09BA\u09BB\u09C5\u09C6\u09C9\u09CA\u09CF-\u09D6\u09D8-\u09DB\u09DE\u09E4\u09E5\u09FF\u0A00\u0A04\u0A0B-\u0A0E\u0A11\u0A12\u0A29\u0A31\u0A34\u0A37\u0A3A\u0A3B\u0A3D\u0A43-\u0A46\u0A49\u0A4A\u0A4E-\u0A50\u0A52-\u0A58\u0A5D\u0A5F-\u0A65\u0A77-\u0A80\u0A84\u0A8E\u0A92\u0AA9\u0AB1\u0AB4\u0ABA\u0ABB\u0AC6\u0ACA\u0ACE\u0ACF\u0AD1-\u0ADF\u0AE4\u0AE5\u0AF2-\u0AF8\u0B00\u0B04\u0B0D\u0B0E\u0B11\u0B12\u0B29\u0B31\u0B34\u0B3A\u0B3B\u0B45\u0B46\u0B49\u0B4A\u0B4E-\u0B54\u0B58-\u0B5B\u0B5E\u0B64\u0B65\u0B78-\u0B81\u0B84\u0B8B-\u0B8D\u0B91\u0B96-\u0B98\u0B9B\u0B9D\u0BA0-\u0BA2\u0BA5-\u0BA7\u0BAB-\u0BAD\u0BBA-\u0BBD\u0BC3-\u0BC5\u0BC9\u0BCE\u0BCF\u0BD1-\u0BD6\u0BD8-\u0BE5\u0BFB-\u0BFF\u0C0D\u0C11\u0C29\u0C3A\u0C3B\u0C45\u0C49\u0C4E-\u0C54\u0C57\u0C5B\u0C5C\u0C5E\u0C5F\u0C64\u0C65\u0C70-\u0C76\u0C8D\u0C91\u0CA9\u0CB4\u0CBA\u0CBB\u0CC5\u0CC9\u0CCE-\u0CD4\u0CD7-\u0CDC\u0CDF\u0CE4\u0CE5\u0CF0\u0CF3-\u0CFF\u0D0D\u0D11\u0D45\u0D49\u0D50-\u0D53\u0D64\u0D65\u0D80\u0D84\u0D97-\u0D99\u0DB2\u0DBC\u0DBE\u0DBF\u0DC7-\u0DC9\u0DCB-\u0DCE\u0DD5\u0DD7\u0DE0-\u0DE5\u0DF0\u0DF1\u0DF5-\u0E00\u0E3B-\u0E3E\u0E5C-\u0E80\u0E83\u0E85\u0E8B\u0EA4\u0EA6\u0EBE\u0EBF\u0EC5\u0EC7\u0ECE\u0ECF\u0EDA\u0EDB\u0EE0-\u0EFF\u0F48\u0F6D-\u0F70\u0F98\u0FBD\u0FCD\u0FDB-\u0FFF\u10C6\u10C8-\u10CC\u10CE\u10CF\u1249\u124E\u124F\u1257\u1259\u125E\u125F\u1289\u128E\u128F\u12B1\u12B6\u12B7\u12BF\u12C1\u12C6\u12C7\u12D7\u1311\u1316\u1317\u135B\u135C\u137D-\u137F\u139A-\u139F\u13F6\u13F7\u13FE\u13FF\u169D-\u169F\u16F9-\u16FF\u1716-\u171E\u1737-\u173F\u1754-\u175F\u176D\u1771\u1774-\u177F\u17DE\u17DF\u17EA-\u17EF\u17FA-\u17FF\u180E\u181A-\u181F\u1879-\u187F\u18AB-\u18AF\u18F6-\u18FF\u191F\u192C-\u192F\u193C-\u193F\u1941-\u1943\u196E\u196F\u1975-\u197F\u19AC-\u19AF\u19CA-\u19CF\u19DB-\u19DD\u1A1C\u1A1D\u1A5F\u1A7D\u1A7E\u1A8A-\u1A8F\u1A9A-\u1A9F\u1AAE\u1AAF\u1ACF-\u1AFF\u1B4D-\u1B4F\u1B7F\u1BF4-\u1BFB\u1C38-\u1C3A\u1C4A-\u1C4C\u1C89-\u1C8F\u1CBB\u1CBC\u1CC8-\u1CCF\u1CFB-\u1CFF\u1F16\u1F17\u1F1E\u1F1F\u1F46\u1F47\u1F4E\u1F4F\u1F58\u1F5A\u1F5C\u1F5E\u1F7E\u1F7F\u1FB5\u1FC5\u1FD4\u1FD5\u1FDC\u1FF0\u1FF1\u1FF5\u1FFF\u200B-\u200F\u202A-\u202E\u2060-\u206F\u2072\u2073\u208F\u209D-\u209F\u20C1-\u20CF\u20F1-\u20FF\u218C-\u218F\u2427-\u243F\u244B-\u245F\u2B74\u2B75\u2B96\u2CF4-\u2CF8\u2D26\u2D28-\u2D2C\u2D2E\u2D2F\u2D68-\u2D6E\u2D71-\u2D7E\u2D97-\u2D9F\u2DA7\u2DAF\u2DB7\u2DBF\u2DC7\u2DCF\u2DD7\u2DDF\u2E5E-\u2E7F\u2E9A\u2EF4-\u2EFF\u2FD6-\u2FEF\u2FFC-\u2FFF\u3040\u3097\u3098\u3100-\u3104\u3130\u318F\u31E4-\u31EF\u321F\uA48D-\uA48F\uA4C7-\uA4CF\uA62C-\uA63F\uA6F8-\uA6FF\uA7CB-\uA7CF\uA7D2\uA7D4\uA7DA-\uA7F1\uA82D-\uA82F\uA83A-\uA83F\uA878-\uA87F\uA8C6-\uA8CD\uA8DA-\uA8DF\uA954-\uA95E\uA97D-\uA97F\uA9CE\uA9DA-\uA9DD\uA9FF\uAA37-\uAA3F\uAA4E\uAA4F\uAA5A\uAA5B\uAAC3-\uAADA\uAAF7-\uAB00\uAB07\uAB08\uAB0F\uAB10\uAB17-\uAB1F\uAB27\uAB2F\uAB6C-\uAB6F\uABEE\uABEF\uABFA-\uABFF\uD7A4-\uD7AF\uD7C7-\uD7CA\uD7FC-\uF8FF\uFA6E\uFA6F\uFADA-\uFAFF\uFB07-\uFB12\uFB18-\uFB1C\uFB37\uFB3D\uFB3F\uFB42\uFB45\uFBC3-\uFBD2\uFD90\uFD91\uFDC8-\uFDCE\uFDD0-\uFDEF\uFE1A-\uFE1F\uFE53\uFE67\uFE6C-\uFE6F\uFE75\uFEFD-\uFF00\uFFBF-\uFFC1\uFFC8\uFFC9\uFFD0\uFFD1\uFFD8\uFFD9\uFFDD-\uFFDF\uFFE7\uFFEF-\uFFFB\uFFFE\uFFFF",
|
|
20
|
-
"astral": "\uD800[\uDC0C\uDC27\uDC3B\uDC3E\uDC4E\uDC4F\uDC5E-\uDC7F\uDCFB-\uDCFF\uDD03-\uDD06\uDD34-\uDD36\uDD8F\uDD9D-\uDD9F\uDDA1-\uDDCF\uDDFE-\uDE7F\uDE9D-\uDE9F\uDED1-\uDEDF\uDEFC-\uDEFF\uDF24-\uDF2C\uDF4B-\uDF4F\uDF7B-\uDF7F\uDF9E\uDFC4-\uDFC7\uDFD6-\uDFFF]|\uD801[\uDC9E\uDC9F\uDCAA-\uDCAF\uDCD4-\uDCD7\uDCFC-\uDCFF\uDD28-\uDD2F\uDD64-\uDD6E\uDD7B\uDD8B\uDD93\uDD96\uDDA2\uDDB2\uDDBA\uDDBD-\uDDFF\uDF37-\uDF3F\uDF56-\uDF5F\uDF68-\uDF7F\uDF86\uDFB1\uDFBB-\uDFFF]|\uD802[\uDC06\uDC07\uDC09\uDC36\uDC39-\uDC3B\uDC3D\uDC3E\uDC56\uDC9F-\uDCA6\uDCB0-\uDCDF\uDCF3\uDCF6-\uDCFA\uDD1C-\uDD1E\uDD3A-\uDD3E\uDD40-\uDD7F\uDDB8-\uDDBB\uDDD0\uDDD1\uDE04\uDE07-\uDE0B\uDE14\uDE18\uDE36\uDE37\uDE3B-\uDE3E\uDE49-\uDE4F\uDE59-\uDE5F\uDEA0-\uDEBF\uDEE7-\uDEEA\uDEF7-\uDEFF\uDF36-\uDF38\uDF56\uDF57\uDF73-\uDF77\uDF92-\uDF98\uDF9D-\uDFA8\uDFB0-\uDFFF]|\uD803[\uDC49-\uDC7F\uDCB3-\uDCBF\uDCF3-\uDCF9\uDD28-\uDD2F\uDD3A-\uDE5F\uDE7F\uDEAA\uDEAE\uDEAF\uDEB2-\uDEFF\uDF28-\uDF2F\uDF5A-\uDF6F\uDF8A-\uDFAF\uDFCC-\uDFDF\uDFF7-\uDFFF]|\uD804[\uDC4E-\uDC51\uDC76-\uDC7E\uDCBD\uDCC3-\uDCCF\uDCE9-\uDCEF\uDCFA-\uDCFF\uDD35\uDD48-\uDD4F\uDD77-\uDD7F\uDDE0\uDDF5-\uDDFF\uDE12\uDE3F-\uDE7F\uDE87\uDE89\uDE8E\uDE9E\uDEAA-\uDEAF\uDEEB-\uDEEF\uDEFA-\uDEFF\uDF04\uDF0D\uDF0E\uDF11\uDF12\uDF29\uDF31\uDF34\uDF3A\uDF45\uDF46\uDF49\uDF4A\uDF4E\uDF4F\uDF51-\uDF56\uDF58-\uDF5C\uDF64\uDF65\uDF6D-\uDF6F\uDF75-\uDFFF]|\uD805[\uDC5C\uDC62-\uDC7F\uDCC8-\uDCCF\uDCDA-\uDD7F\uDDB6\uDDB7\uDDDE-\uDDFF\uDE45-\uDE4F\uDE5A-\uDE5F\uDE6D-\uDE7F\uDEBA-\uDEBF\uDECA-\uDEFF\uDF1B\uDF1C\uDF2C-\uDF2F\uDF47-\uDFFF]|\uD806[\uDC3C-\uDC9F\uDCF3-\uDCFE\uDD07\uDD08\uDD0A\uDD0B\uDD14\uDD17\uDD36\uDD39\uDD3A\uDD47-\uDD4F\uDD5A-\uDD9F\uDDA8\uDDA9\uDDD8\uDDD9\uDDE5-\uDDFF\uDE48-\uDE4F\uDEA3-\uDEAF\uDEF9-\uDFFF]|\uD807[\uDC09\uDC37\uDC46-\uDC4F\uDC6D-\uDC6F\uDC90\uDC91\uDCA8\uDCB7-\uDCFF\uDD07\uDD0A\uDD37-\uDD39\uDD3B\uDD3E\uDD48-\uDD4F\uDD5A-\uDD5F\uDD66\uDD69\uDD8F\uDD92\uDD99-\uDD9F\uDDAA-\uDEDF\uDEF9-\uDFAF\uDFB1-\uDFBF\uDFF2-\uDFFE]|\uD808[\uDF9A-\uDFFF]|\uD809[\uDC6F\uDC75-\uDC7F\uDD44-\uDFFF]|[\uD80A\uD80E-\uD810\uD812-\uD819\uD824-\uD82A\uD82D\uD82E\uD830-\uD832\uD83F\uD87B-\uD87D\uD87F\uD885-\uDB3F\uDB41-\uDBFF][\uDC00-\uDFFF]|\uD80B[\uDC00-\uDF8F\uDFF3-\uDFFF]|\uD80D[\uDC2F-\uDFFF]|\uD811[\uDE47-\uDFFF]|\uD81A[\uDE39-\uDE3F\uDE5F\uDE6A-\uDE6D\uDEBF\uDECA-\uDECF\uDEEE\uDEEF\uDEF6-\uDEFF\uDF46-\uDF4F\uDF5A\uDF62\uDF78-\uDF7C\uDF90-\uDFFF]|\uD81B[\uDC00-\uDE3F\uDE9B-\uDEFF\uDF4B-\uDF4E\uDF88-\uDF8E\uDFA0-\uDFDF\uDFE5-\uDFEF\uDFF2-\uDFFF]|\uD821[\uDFF8-\uDFFF]|\uD823[\uDCD6-\uDCFF\uDD09-\uDFFF]|\uD82B[\uDC00-\uDFEF\uDFF4\uDFFC\uDFFF]|\uD82C[\uDD23-\uDD4F\uDD53-\uDD63\uDD68-\uDD6F\uDEFC-\uDFFF]|\uD82F[\uDC6B-\uDC6F\uDC7D-\uDC7F\uDC89-\uDC8F\uDC9A\uDC9B\uDCA0-\uDFFF]|\uD833[\uDC00-\uDEFF\uDF2E\uDF2F\uDF47-\uDF4F\uDFC4-\uDFFF]|\uD834[\uDCF6-\uDCFF\uDD27\uDD28\uDD73-\uDD7A\uDDEB-\uDDFF\uDE46-\uDEDF\uDEF4-\uDEFF\uDF57-\uDF5F\uDF79-\uDFFF]|\uD835[\uDC55\uDC9D\uDCA0\uDCA1\uDCA3\uDCA4\uDCA7\uDCA8\uDCAD\uDCBA\uDCBC\uDCC4\uDD06\uDD0B\uDD0C\uDD15\uDD1D\uDD3A\uDD3F\uDD45\uDD47-\uDD49\uDD51\uDEA6\uDEA7\uDFCC\uDFCD]|\uD836[\uDE8C-\uDE9A\uDEA0\uDEB0-\uDFFF]|\uD837[\uDC00-\uDEFF\uDF1F-\uDFFF]|\uD838[\uDC07\uDC19\uDC1A\uDC22\uDC25\uDC2B-\uDCFF\uDD2D-\uDD2F\uDD3E\uDD3F\uDD4A-\uDD4D\uDD50-\uDE8F\uDEAF-\uDEBF\uDEFA-\uDEFE\uDF00-\uDFFF]|\uD839[\uDC00-\uDFDF\uDFE7\uDFEC\uDFEF\uDFFF]|\uD83A[\uDCC5\uDCC6\uDCD7-\uDCFF\uDD4C-\uDD4F\uDD5A-\uDD5D\uDD60-\uDFFF]|\uD83B[\uDC00-\uDC70\uDCB5-\uDD00\uDD3E-\uDDFF\uDE04\uDE20\uDE23\uDE25\uDE26\uDE28\uDE33\uDE38\uDE3A\uDE3C-\uDE41\uDE43-\uDE46\uDE48\uDE4A\uDE4C\uDE50\uDE53\uDE55\uDE56\uDE58\uDE5A\uDE5C\uDE5E\uDE60\uDE63\uDE65\uDE66\uDE6B\uDE73\uDE78\uDE7D\uDE7F\uDE8A\uDE9C-\uDEA0\uDEA4\uDEAA\uDEBC-\uDEEF\uDEF2-\uDFFF]|\uD83C[\uDC2C-\uDC2F\uDC94-\uDC9F\uDCAF\uDCB0\uDCC0\uDCD0\uDCF6-\uDCFF\uDDAE-\uDDE5\uDE03-\uDE0F\uDE3C-\uDE3F\uDE49-\uDE4F\uDE52-\uDE5F\uDE66-\uDEFF]|\uD83D[\uDED8-\uDEDC\uDEED-\uDEEF\uDEFD-\uDEFF\uDF74-\uDF7F\uDFD9-\uDFDF\uDFEC-\uDFEF\uDFF1-\uDFFF]|\uD83E[\uDC0C-\uDC0F\uDC48-\uDC4F\uDC5A-\uDC5F\uDC88-\uDC8F\uDCAE\uDCAF\uDCB2-\uDCFF\uDE54-\uDE5F\uDE6E\uDE6F\uDE75-\uDE77\uDE7D-\uDE7F\uDE87-\uDE8F\uDEAD-\uDEAF\uDEBB-\uDEBF\uDEC6-\uDECF\uDEDA-\uDEDF\uDEE8-\uDEEF\uDEF7-\uDEFF\uDF93\uDFCB-\uDFEF\uDFFA-\uDFFF]|\uD869[\uDEE0-\uDEFF]|\uD86D[\uDF39-\uDF3F]|\uD86E[\uDC1E\uDC1F]|\uD873[\uDEA2-\uDEAF]|\uD87A[\uDFE1-\uDFFF]|\uD87E[\uDE1E-\uDFFF]|\uD884[\uDF4B-\uDFFF]|\uDB40[\uDC00-\uDCFF\uDDF0-\uDFFF]"
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
"name": "Cc",
|
|
24
|
-
"alias": "Control",
|
|
25
|
-
"bmp": "\0-\x7F-\x9F"
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
"name": "Cf",
|
|
29
|
-
"alias": "Format",
|
|
30
|
-
"bmp": "\xAD\u0600-\u0605\u061C\u06DD\u070F\u0890\u0891\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB",
|
|
31
|
-
"astral": "\uD804[\uDCBD\uDCCD]|\uD80D[\uDC30-\uDC38]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]"
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
"name": "Cn",
|
|
35
|
-
"alias": "Unassigned",
|
|
36
|
-
"bmp": "\u0378\u0379\u0380-\u0383\u038B\u038D\u03A2\u0530\u0557\u0558\u058B\u058C\u0590\u05C8-\u05CF\u05EB-\u05EE\u05F5-\u05FF\u070E\u074B\u074C\u07B2-\u07BF\u07FB\u07FC\u082E\u082F\u083F\u085C\u085D\u085F\u086B-\u086F\u088F\u0892-\u0897\u0984\u098D\u098E\u0991\u0992\u09A9\u09B1\u09B3-\u09B5\u09BA\u09BB\u09C5\u09C6\u09C9\u09CA\u09CF-\u09D6\u09D8-\u09DB\u09DE\u09E4\u09E5\u09FF\u0A00\u0A04\u0A0B-\u0A0E\u0A11\u0A12\u0A29\u0A31\u0A34\u0A37\u0A3A\u0A3B\u0A3D\u0A43-\u0A46\u0A49\u0A4A\u0A4E-\u0A50\u0A52-\u0A58\u0A5D\u0A5F-\u0A65\u0A77-\u0A80\u0A84\u0A8E\u0A92\u0AA9\u0AB1\u0AB4\u0ABA\u0ABB\u0AC6\u0ACA\u0ACE\u0ACF\u0AD1-\u0ADF\u0AE4\u0AE5\u0AF2-\u0AF8\u0B00\u0B04\u0B0D\u0B0E\u0B11\u0B12\u0B29\u0B31\u0B34\u0B3A\u0B3B\u0B45\u0B46\u0B49\u0B4A\u0B4E-\u0B54\u0B58-\u0B5B\u0B5E\u0B64\u0B65\u0B78-\u0B81\u0B84\u0B8B-\u0B8D\u0B91\u0B96-\u0B98\u0B9B\u0B9D\u0BA0-\u0BA2\u0BA5-\u0BA7\u0BAB-\u0BAD\u0BBA-\u0BBD\u0BC3-\u0BC5\u0BC9\u0BCE\u0BCF\u0BD1-\u0BD6\u0BD8-\u0BE5\u0BFB-\u0BFF\u0C0D\u0C11\u0C29\u0C3A\u0C3B\u0C45\u0C49\u0C4E-\u0C54\u0C57\u0C5B\u0C5C\u0C5E\u0C5F\u0C64\u0C65\u0C70-\u0C76\u0C8D\u0C91\u0CA9\u0CB4\u0CBA\u0CBB\u0CC5\u0CC9\u0CCE-\u0CD4\u0CD7-\u0CDC\u0CDF\u0CE4\u0CE5\u0CF0\u0CF3-\u0CFF\u0D0D\u0D11\u0D45\u0D49\u0D50-\u0D53\u0D64\u0D65\u0D80\u0D84\u0D97-\u0D99\u0DB2\u0DBC\u0DBE\u0DBF\u0DC7-\u0DC9\u0DCB-\u0DCE\u0DD5\u0DD7\u0DE0-\u0DE5\u0DF0\u0DF1\u0DF5-\u0E00\u0E3B-\u0E3E\u0E5C-\u0E80\u0E83\u0E85\u0E8B\u0EA4\u0EA6\u0EBE\u0EBF\u0EC5\u0EC7\u0ECE\u0ECF\u0EDA\u0EDB\u0EE0-\u0EFF\u0F48\u0F6D-\u0F70\u0F98\u0FBD\u0FCD\u0FDB-\u0FFF\u10C6\u10C8-\u10CC\u10CE\u10CF\u1249\u124E\u124F\u1257\u1259\u125E\u125F\u1289\u128E\u128F\u12B1\u12B6\u12B7\u12BF\u12C1\u12C6\u12C7\u12D7\u1311\u1316\u1317\u135B\u135C\u137D-\u137F\u139A-\u139F\u13F6\u13F7\u13FE\u13FF\u169D-\u169F\u16F9-\u16FF\u1716-\u171E\u1737-\u173F\u1754-\u175F\u176D\u1771\u1774-\u177F\u17DE\u17DF\u17EA-\u17EF\u17FA-\u17FF\u181A-\u181F\u1879-\u187F\u18AB-\u18AF\u18F6-\u18FF\u191F\u192C-\u192F\u193C-\u193F\u1941-\u1943\u196E\u196F\u1975-\u197F\u19AC-\u19AF\u19CA-\u19CF\u19DB-\u19DD\u1A1C\u1A1D\u1A5F\u1A7D\u1A7E\u1A8A-\u1A8F\u1A9A-\u1A9F\u1AAE\u1AAF\u1ACF-\u1AFF\u1B4D-\u1B4F\u1B7F\u1BF4-\u1BFB\u1C38-\u1C3A\u1C4A-\u1C4C\u1C89-\u1C8F\u1CBB\u1CBC\u1CC8-\u1CCF\u1CFB-\u1CFF\u1F16\u1F17\u1F1E\u1F1F\u1F46\u1F47\u1F4E\u1F4F\u1F58\u1F5A\u1F5C\u1F5E\u1F7E\u1F7F\u1FB5\u1FC5\u1FD4\u1FD5\u1FDC\u1FF0\u1FF1\u1FF5\u1FFF\u2065\u2072\u2073\u208F\u209D-\u209F\u20C1-\u20CF\u20F1-\u20FF\u218C-\u218F\u2427-\u243F\u244B-\u245F\u2B74\u2B75\u2B96\u2CF4-\u2CF8\u2D26\u2D28-\u2D2C\u2D2E\u2D2F\u2D68-\u2D6E\u2D71-\u2D7E\u2D97-\u2D9F\u2DA7\u2DAF\u2DB7\u2DBF\u2DC7\u2DCF\u2DD7\u2DDF\u2E5E-\u2E7F\u2E9A\u2EF4-\u2EFF\u2FD6-\u2FEF\u2FFC-\u2FFF\u3040\u3097\u3098\u3100-\u3104\u3130\u318F\u31E4-\u31EF\u321F\uA48D-\uA48F\uA4C7-\uA4CF\uA62C-\uA63F\uA6F8-\uA6FF\uA7CB-\uA7CF\uA7D2\uA7D4\uA7DA-\uA7F1\uA82D-\uA82F\uA83A-\uA83F\uA878-\uA87F\uA8C6-\uA8CD\uA8DA-\uA8DF\uA954-\uA95E\uA97D-\uA97F\uA9CE\uA9DA-\uA9DD\uA9FF\uAA37-\uAA3F\uAA4E\uAA4F\uAA5A\uAA5B\uAAC3-\uAADA\uAAF7-\uAB00\uAB07\uAB08\uAB0F\uAB10\uAB17-\uAB1F\uAB27\uAB2F\uAB6C-\uAB6F\uABEE\uABEF\uABFA-\uABFF\uD7A4-\uD7AF\uD7C7-\uD7CA\uD7FC-\uD7FF\uFA6E\uFA6F\uFADA-\uFAFF\uFB07-\uFB12\uFB18-\uFB1C\uFB37\uFB3D\uFB3F\uFB42\uFB45\uFBC3-\uFBD2\uFD90\uFD91\uFDC8-\uFDCE\uFDD0-\uFDEF\uFE1A-\uFE1F\uFE53\uFE67\uFE6C-\uFE6F\uFE75\uFEFD\uFEFE\uFF00\uFFBF-\uFFC1\uFFC8\uFFC9\uFFD0\uFFD1\uFFD8\uFFD9\uFFDD-\uFFDF\uFFE7\uFFEF-\uFFF8\uFFFE\uFFFF",
|
|
37
|
-
"astral": "\uD800[\uDC0C\uDC27\uDC3B\uDC3E\uDC4E\uDC4F\uDC5E-\uDC7F\uDCFB-\uDCFF\uDD03-\uDD06\uDD34-\uDD36\uDD8F\uDD9D-\uDD9F\uDDA1-\uDDCF\uDDFE-\uDE7F\uDE9D-\uDE9F\uDED1-\uDEDF\uDEFC-\uDEFF\uDF24-\uDF2C\uDF4B-\uDF4F\uDF7B-\uDF7F\uDF9E\uDFC4-\uDFC7\uDFD6-\uDFFF]|\uD801[\uDC9E\uDC9F\uDCAA-\uDCAF\uDCD4-\uDCD7\uDCFC-\uDCFF\uDD28-\uDD2F\uDD64-\uDD6E\uDD7B\uDD8B\uDD93\uDD96\uDDA2\uDDB2\uDDBA\uDDBD-\uDDFF\uDF37-\uDF3F\uDF56-\uDF5F\uDF68-\uDF7F\uDF86\uDFB1\uDFBB-\uDFFF]|\uD802[\uDC06\uDC07\uDC09\uDC36\uDC39-\uDC3B\uDC3D\uDC3E\uDC56\uDC9F-\uDCA6\uDCB0-\uDCDF\uDCF3\uDCF6-\uDCFA\uDD1C-\uDD1E\uDD3A-\uDD3E\uDD40-\uDD7F\uDDB8-\uDDBB\uDDD0\uDDD1\uDE04\uDE07-\uDE0B\uDE14\uDE18\uDE36\uDE37\uDE3B-\uDE3E\uDE49-\uDE4F\uDE59-\uDE5F\uDEA0-\uDEBF\uDEE7-\uDEEA\uDEF7-\uDEFF\uDF36-\uDF38\uDF56\uDF57\uDF73-\uDF77\uDF92-\uDF98\uDF9D-\uDFA8\uDFB0-\uDFFF]|\uD803[\uDC49-\uDC7F\uDCB3-\uDCBF\uDCF3-\uDCF9\uDD28-\uDD2F\uDD3A-\uDE5F\uDE7F\uDEAA\uDEAE\uDEAF\uDEB2-\uDEFF\uDF28-\uDF2F\uDF5A-\uDF6F\uDF8A-\uDFAF\uDFCC-\uDFDF\uDFF7-\uDFFF]|\uD804[\uDC4E-\uDC51\uDC76-\uDC7E\uDCC3-\uDCCC\uDCCE\uDCCF\uDCE9-\uDCEF\uDCFA-\uDCFF\uDD35\uDD48-\uDD4F\uDD77-\uDD7F\uDDE0\uDDF5-\uDDFF\uDE12\uDE3F-\uDE7F\uDE87\uDE89\uDE8E\uDE9E\uDEAA-\uDEAF\uDEEB-\uDEEF\uDEFA-\uDEFF\uDF04\uDF0D\uDF0E\uDF11\uDF12\uDF29\uDF31\uDF34\uDF3A\uDF45\uDF46\uDF49\uDF4A\uDF4E\uDF4F\uDF51-\uDF56\uDF58-\uDF5C\uDF64\uDF65\uDF6D-\uDF6F\uDF75-\uDFFF]|\uD805[\uDC5C\uDC62-\uDC7F\uDCC8-\uDCCF\uDCDA-\uDD7F\uDDB6\uDDB7\uDDDE-\uDDFF\uDE45-\uDE4F\uDE5A-\uDE5F\uDE6D-\uDE7F\uDEBA-\uDEBF\uDECA-\uDEFF\uDF1B\uDF1C\uDF2C-\uDF2F\uDF47-\uDFFF]|\uD806[\uDC3C-\uDC9F\uDCF3-\uDCFE\uDD07\uDD08\uDD0A\uDD0B\uDD14\uDD17\uDD36\uDD39\uDD3A\uDD47-\uDD4F\uDD5A-\uDD9F\uDDA8\uDDA9\uDDD8\uDDD9\uDDE5-\uDDFF\uDE48-\uDE4F\uDEA3-\uDEAF\uDEF9-\uDFFF]|\uD807[\uDC09\uDC37\uDC46-\uDC4F\uDC6D-\uDC6F\uDC90\uDC91\uDCA8\uDCB7-\uDCFF\uDD07\uDD0A\uDD37-\uDD39\uDD3B\uDD3E\uDD48-\uDD4F\uDD5A-\uDD5F\uDD66\uDD69\uDD8F\uDD92\uDD99-\uDD9F\uDDAA-\uDEDF\uDEF9-\uDFAF\uDFB1-\uDFBF\uDFF2-\uDFFE]|\uD808[\uDF9A-\uDFFF]|\uD809[\uDC6F\uDC75-\uDC7F\uDD44-\uDFFF]|[\uD80A\uD80E-\uD810\uD812-\uD819\uD824-\uD82A\uD82D\uD82E\uD830-\uD832\uD83F\uD87B-\uD87D\uD87F\uD885-\uDB3F\uDB41-\uDB7F][\uDC00-\uDFFF]|\uD80B[\uDC00-\uDF8F\uDFF3-\uDFFF]|\uD80D[\uDC2F\uDC39-\uDFFF]|\uD811[\uDE47-\uDFFF]|\uD81A[\uDE39-\uDE3F\uDE5F\uDE6A-\uDE6D\uDEBF\uDECA-\uDECF\uDEEE\uDEEF\uDEF6-\uDEFF\uDF46-\uDF4F\uDF5A\uDF62\uDF78-\uDF7C\uDF90-\uDFFF]|\uD81B[\uDC00-\uDE3F\uDE9B-\uDEFF\uDF4B-\uDF4E\uDF88-\uDF8E\uDFA0-\uDFDF\uDFE5-\uDFEF\uDFF2-\uDFFF]|\uD821[\uDFF8-\uDFFF]|\uD823[\uDCD6-\uDCFF\uDD09-\uDFFF]|\uD82B[\uDC00-\uDFEF\uDFF4\uDFFC\uDFFF]|\uD82C[\uDD23-\uDD4F\uDD53-\uDD63\uDD68-\uDD6F\uDEFC-\uDFFF]|\uD82F[\uDC6B-\uDC6F\uDC7D-\uDC7F\uDC89-\uDC8F\uDC9A\uDC9B\uDCA4-\uDFFF]|\uD833[\uDC00-\uDEFF\uDF2E\uDF2F\uDF47-\uDF4F\uDFC4-\uDFFF]|\uD834[\uDCF6-\uDCFF\uDD27\uDD28\uDDEB-\uDDFF\uDE46-\uDEDF\uDEF4-\uDEFF\uDF57-\uDF5F\uDF79-\uDFFF]|\uD835[\uDC55\uDC9D\uDCA0\uDCA1\uDCA3\uDCA4\uDCA7\uDCA8\uDCAD\uDCBA\uDCBC\uDCC4\uDD06\uDD0B\uDD0C\uDD15\uDD1D\uDD3A\uDD3F\uDD45\uDD47-\uDD49\uDD51\uDEA6\uDEA7\uDFCC\uDFCD]|\uD836[\uDE8C-\uDE9A\uDEA0\uDEB0-\uDFFF]|\uD837[\uDC00-\uDEFF\uDF1F-\uDFFF]|\uD838[\uDC07\uDC19\uDC1A\uDC22\uDC25\uDC2B-\uDCFF\uDD2D-\uDD2F\uDD3E\uDD3F\uDD4A-\uDD4D\uDD50-\uDE8F\uDEAF-\uDEBF\uDEFA-\uDEFE\uDF00-\uDFFF]|\uD839[\uDC00-\uDFDF\uDFE7\uDFEC\uDFEF\uDFFF]|\uD83A[\uDCC5\uDCC6\uDCD7-\uDCFF\uDD4C-\uDD4F\uDD5A-\uDD5D\uDD60-\uDFFF]|\uD83B[\uDC00-\uDC70\uDCB5-\uDD00\uDD3E-\uDDFF\uDE04\uDE20\uDE23\uDE25\uDE26\uDE28\uDE33\uDE38\uDE3A\uDE3C-\uDE41\uDE43-\uDE46\uDE48\uDE4A\uDE4C\uDE50\uDE53\uDE55\uDE56\uDE58\uDE5A\uDE5C\uDE5E\uDE60\uDE63\uDE65\uDE66\uDE6B\uDE73\uDE78\uDE7D\uDE7F\uDE8A\uDE9C-\uDEA0\uDEA4\uDEAA\uDEBC-\uDEEF\uDEF2-\uDFFF]|\uD83C[\uDC2C-\uDC2F\uDC94-\uDC9F\uDCAF\uDCB0\uDCC0\uDCD0\uDCF6-\uDCFF\uDDAE-\uDDE5\uDE03-\uDE0F\uDE3C-\uDE3F\uDE49-\uDE4F\uDE52-\uDE5F\uDE66-\uDEFF]|\uD83D[\uDED8-\uDEDC\uDEED-\uDEEF\uDEFD-\uDEFF\uDF74-\uDF7F\uDFD9-\uDFDF\uDFEC-\uDFEF\uDFF1-\uDFFF]|\uD83E[\uDC0C-\uDC0F\uDC48-\uDC4F\uDC5A-\uDC5F\uDC88-\uDC8F\uDCAE\uDCAF\uDCB2-\uDCFF\uDE54-\uDE5F\uDE6E\uDE6F\uDE75-\uDE77\uDE7D-\uDE7F\uDE87-\uDE8F\uDEAD-\uDEAF\uDEBB-\uDEBF\uDEC6-\uDECF\uDEDA-\uDEDF\uDEE8-\uDEEF\uDEF7-\uDEFF\uDF93\uDFCB-\uDFEF\uDFFA-\uDFFF]|\uD869[\uDEE0-\uDEFF]|\uD86D[\uDF39-\uDF3F]|\uD86E[\uDC1E\uDC1F]|\uD873[\uDEA2-\uDEAF]|\uD87A[\uDFE1-\uDFFF]|\uD87E[\uDE1E-\uDFFF]|\uD884[\uDF4B-\uDFFF]|\uDB40[\uDC00\uDC02-\uDC1F\uDC80-\uDCFF\uDDF0-\uDFFF]|[\uDBBF\uDBFF][\uDFFE\uDFFF]"
|
|
38
|
-
},
|
|
39
|
-
{
|
|
40
|
-
"name": "Co",
|
|
41
|
-
"alias": "Private_Use",
|
|
42
|
-
"bmp": "\uE000-\uF8FF",
|
|
43
|
-
"astral": "[\uDB80-\uDBBE\uDBC0-\uDBFE][\uDC00-\uDFFF]|[\uDBBF\uDBFF][\uDC00-\uDFFD]"
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
"name": "Cs",
|
|
47
|
-
"alias": "Surrogate",
|
|
48
|
-
"bmp": "\uD800-\uDFFF"
|
|
49
|
-
},
|
|
50
|
-
{
|
|
51
|
-
"name": "L",
|
|
52
|
-
"alias": "Letter",
|
|
53
|
-
"bmp": "A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC",
|
|
54
|
-
"astral": "\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF38\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A]"
|
|
55
|
-
},
|
|
56
|
-
{
|
|
57
|
-
"name": "LC",
|
|
58
|
-
"alias": "Cased_Letter",
|
|
59
|
-
"bmp": "A-Za-z\xB5\xC0-\xD6\xD8-\xF6\xF8-\u01BA\u01BC-\u01BF\u01C4-\u0293\u0295-\u02AF\u0370-\u0373\u0376\u0377\u037B-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0560-\u0588\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FD-\u10FF\u13A0-\u13F5\u13F8-\u13FD\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1D00-\u1D2B\u1D6B-\u1D77\u1D79-\u1D9A\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2134\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C7B\u2C7E-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\uA640-\uA66D\uA680-\uA69B\uA722-\uA76F\uA771-\uA787\uA78B-\uA78E\uA790-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F5\uA7F6\uA7FA\uAB30-\uAB5A\uAB60-\uAB68\uAB70-\uABBF\uFB00-\uFB06\uFB13-\uFB17\uFF21-\uFF3A\uFF41-\uFF5A",
|
|
60
|
-
"astral": "\uD801[\uDC00-\uDC4F\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC]|\uD803[\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD806[\uDCA0-\uDCDF]|\uD81B[\uDE40-\uDE7F]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF09\uDF0B-\uDF1E]|\uD83A[\uDD00-\uDD43]"
|
|
61
|
-
},
|
|
62
|
-
{
|
|
63
|
-
"name": "Ll",
|
|
64
|
-
"alias": "Lowercase_Letter",
|
|
65
|
-
"bmp": "a-z\xB5\xDF-\xF6\xF8-\xFF\u0101\u0103\u0105\u0107\u0109\u010B\u010D\u010F\u0111\u0113\u0115\u0117\u0119\u011B\u011D\u011F\u0121\u0123\u0125\u0127\u0129\u012B\u012D\u012F\u0131\u0133\u0135\u0137\u0138\u013A\u013C\u013E\u0140\u0142\u0144\u0146\u0148\u0149\u014B\u014D\u014F\u0151\u0153\u0155\u0157\u0159\u015B\u015D\u015F\u0161\u0163\u0165\u0167\u0169\u016B\u016D\u016F\u0171\u0173\u0175\u0177\u017A\u017C\u017E-\u0180\u0183\u0185\u0188\u018C\u018D\u0192\u0195\u0199-\u019B\u019E\u01A1\u01A3\u01A5\u01A8\u01AA\u01AB\u01AD\u01B0\u01B4\u01B6\u01B9\u01BA\u01BD-\u01BF\u01C6\u01C9\u01CC\u01CE\u01D0\u01D2\u01D4\u01D6\u01D8\u01DA\u01DC\u01DD\u01DF\u01E1\u01E3\u01E5\u01E7\u01E9\u01EB\u01ED\u01EF\u01F0\u01F3\u01F5\u01F9\u01FB\u01FD\u01FF\u0201\u0203\u0205\u0207\u0209\u020B\u020D\u020F\u0211\u0213\u0215\u0217\u0219\u021B\u021D\u021F\u0221\u0223\u0225\u0227\u0229\u022B\u022D\u022F\u0231\u0233-\u0239\u023C\u023F\u0240\u0242\u0247\u0249\u024B\u024D\u024F-\u0293\u0295-\u02AF\u0371\u0373\u0377\u037B-\u037D\u0390\u03AC-\u03CE\u03D0\u03D1\u03D5-\u03D7\u03D9\u03DB\u03DD\u03DF\u03E1\u03E3\u03E5\u03E7\u03E9\u03EB\u03ED\u03EF-\u03F3\u03F5\u03F8\u03FB\u03FC\u0430-\u045F\u0461\u0463\u0465\u0467\u0469\u046B\u046D\u046F\u0471\u0473\u0475\u0477\u0479\u047B\u047D\u047F\u0481\u048B\u048D\u048F\u0491\u0493\u0495\u0497\u0499\u049B\u049D\u049F\u04A1\u04A3\u04A5\u04A7\u04A9\u04AB\u04AD\u04AF\u04B1\u04B3\u04B5\u04B7\u04B9\u04BB\u04BD\u04BF\u04C2\u04C4\u04C6\u04C8\u04CA\u04CC\u04CE\u04CF\u04D1\u04D3\u04D5\u04D7\u04D9\u04DB\u04DD\u04DF\u04E1\u04E3\u04E5\u04E7\u04E9\u04EB\u04ED\u04EF\u04F1\u04F3\u04F5\u04F7\u04F9\u04FB\u04FD\u04FF\u0501\u0503\u0505\u0507\u0509\u050B\u050D\u050F\u0511\u0513\u0515\u0517\u0519\u051B\u051D\u051F\u0521\u0523\u0525\u0527\u0529\u052B\u052D\u052F\u0560-\u0588\u10D0-\u10FA\u10FD-\u10FF\u13F8-\u13FD\u1C80-\u1C88\u1D00-\u1D2B\u1D6B-\u1D77\u1D79-\u1D9A\u1E01\u1E03\u1E05\u1E07\u1E09\u1E0B\u1E0D\u1E0F\u1E11\u1E13\u1E15\u1E17\u1E19\u1E1B\u1E1D\u1E1F\u1E21\u1E23\u1E25\u1E27\u1E29\u1E2B\u1E2D\u1E2F\u1E31\u1E33\u1E35\u1E37\u1E39\u1E3B\u1E3D\u1E3F\u1E41\u1E43\u1E45\u1E47\u1E49\u1E4B\u1E4D\u1E4F\u1E51\u1E53\u1E55\u1E57\u1E59\u1E5B\u1E5D\u1E5F\u1E61\u1E63\u1E65\u1E67\u1E69\u1E6B\u1E6D\u1E6F\u1E71\u1E73\u1E75\u1E77\u1E79\u1E7B\u1E7D\u1E7F\u1E81\u1E83\u1E85\u1E87\u1E89\u1E8B\u1E8D\u1E8F\u1E91\u1E93\u1E95-\u1E9D\u1E9F\u1EA1\u1EA3\u1EA5\u1EA7\u1EA9\u1EAB\u1EAD\u1EAF\u1EB1\u1EB3\u1EB5\u1EB7\u1EB9\u1EBB\u1EBD\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1EC9\u1ECB\u1ECD\u1ECF\u1ED1\u1ED3\u1ED5\u1ED7\u1ED9\u1EDB\u1EDD\u1EDF\u1EE1\u1EE3\u1EE5\u1EE7\u1EE9\u1EEB\u1EED\u1EEF\u1EF1\u1EF3\u1EF5\u1EF7\u1EF9\u1EFB\u1EFD\u1EFF-\u1F07\u1F10-\u1F15\u1F20-\u1F27\u1F30-\u1F37\u1F40-\u1F45\u1F50-\u1F57\u1F60-\u1F67\u1F70-\u1F7D\u1F80-\u1F87\u1F90-\u1F97\u1FA0-\u1FA7\u1FB0-\u1FB4\u1FB6\u1FB7\u1FBE\u1FC2-\u1FC4\u1FC6\u1FC7\u1FD0-\u1FD3\u1FD6\u1FD7\u1FE0-\u1FE7\u1FF2-\u1FF4\u1FF6\u1FF7\u210A\u210E\u210F\u2113\u212F\u2134\u2139\u213C\u213D\u2146-\u2149\u214E\u2184\u2C30-\u2C5F\u2C61\u2C65\u2C66\u2C68\u2C6A\u2C6C\u2C71\u2C73\u2C74\u2C76-\u2C7B\u2C81\u2C83\u2C85\u2C87\u2C89\u2C8B\u2C8D\u2C8F\u2C91\u2C93\u2C95\u2C97\u2C99\u2C9B\u2C9D\u2C9F\u2CA1\u2CA3\u2CA5\u2CA7\u2CA9\u2CAB\u2CAD\u2CAF\u2CB1\u2CB3\u2CB5\u2CB7\u2CB9\u2CBB\u2CBD\u2CBF\u2CC1\u2CC3\u2CC5\u2CC7\u2CC9\u2CCB\u2CCD\u2CCF\u2CD1\u2CD3\u2CD5\u2CD7\u2CD9\u2CDB\u2CDD\u2CDF\u2CE1\u2CE3\u2CE4\u2CEC\u2CEE\u2CF3\u2D00-\u2D25\u2D27\u2D2D\uA641\uA643\uA645\uA647\uA649\uA64B\uA64D\uA64F\uA651\uA653\uA655\uA657\uA659\uA65B\uA65D\uA65F\uA661\uA663\uA665\uA667\uA669\uA66B\uA66D\uA681\uA683\uA685\uA687\uA689\uA68B\uA68D\uA68F\uA691\uA693\uA695\uA697\uA699\uA69B\uA723\uA725\uA727\uA729\uA72B\uA72D\uA72F-\uA731\uA733\uA735\uA737\uA739\uA73B\uA73D\uA73F\uA741\uA743\uA745\uA747\uA749\uA74B\uA74D\uA74F\uA751\uA753\uA755\uA757\uA759\uA75B\uA75D\uA75F\uA761\uA763\uA765\uA767\uA769\uA76B\uA76D\uA76F\uA771-\uA778\uA77A\uA77C\uA77F\uA781\uA783\uA785\uA787\uA78C\uA78E\uA791\uA793-\uA795\uA797\uA799\uA79B\uA79D\uA79F\uA7A1\uA7A3\uA7A5\uA7A7\uA7A9\uA7AF\uA7B5\uA7B7\uA7B9\uA7BB\uA7BD\uA7BF\uA7C1\uA7C3\uA7C8\uA7CA\uA7D1\uA7D3\uA7D5\uA7D7\uA7D9\uA7F6\uA7FA\uAB30-\uAB5A\uAB60-\uAB68\uAB70-\uABBF\uFB00-\uFB06\uFB13-\uFB17\uFF41-\uFF5A",
|
|
66
|
-
"astral": "\uD801[\uDC28-\uDC4F\uDCD8-\uDCFB\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC]|\uD803[\uDCC0-\uDCF2]|\uD806[\uDCC0-\uDCDF]|\uD81B[\uDE60-\uDE7F]|\uD835[\uDC1A-\uDC33\uDC4E-\uDC54\uDC56-\uDC67\uDC82-\uDC9B\uDCB6-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDCCF\uDCEA-\uDD03\uDD1E-\uDD37\uDD52-\uDD6B\uDD86-\uDD9F\uDDBA-\uDDD3\uDDEE-\uDE07\uDE22-\uDE3B\uDE56-\uDE6F\uDE8A-\uDEA5\uDEC2-\uDEDA\uDEDC-\uDEE1\uDEFC-\uDF14\uDF16-\uDF1B\uDF36-\uDF4E\uDF50-\uDF55\uDF70-\uDF88\uDF8A-\uDF8F\uDFAA-\uDFC2\uDFC4-\uDFC9\uDFCB]|\uD837[\uDF00-\uDF09\uDF0B-\uDF1E]|\uD83A[\uDD22-\uDD43]"
|
|
67
|
-
},
|
|
68
|
-
{
|
|
69
|
-
"name": "Lm",
|
|
70
|
-
"alias": "Modifier_Letter",
|
|
71
|
-
"bmp": "\u02B0-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0374\u037A\u0559\u0640\u06E5\u06E6\u07F4\u07F5\u07FA\u081A\u0824\u0828\u08C9\u0971\u0E46\u0EC6\u10FC\u17D7\u1843\u1AA7\u1C78-\u1C7D\u1D2C-\u1D6A\u1D78\u1D9B-\u1DBF\u2071\u207F\u2090-\u209C\u2C7C\u2C7D\u2D6F\u2E2F\u3005\u3031-\u3035\u303B\u309D\u309E\u30FC-\u30FE\uA015\uA4F8-\uA4FD\uA60C\uA67F\uA69C\uA69D\uA717-\uA71F\uA770\uA788\uA7F2-\uA7F4\uA7F8\uA7F9\uA9CF\uA9E6\uAA70\uAADD\uAAF3\uAAF4\uAB5C-\uAB5F\uAB69\uFF70\uFF9E\uFF9F",
|
|
72
|
-
"astral": "\uD801[\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD81A[\uDF40-\uDF43]|\uD81B[\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD838[\uDD37-\uDD3D]|\u{1E94B}"
|
|
73
|
-
},
|
|
74
|
-
{
|
|
75
|
-
"name": "Lo",
|
|
76
|
-
"alias": "Other_Letter",
|
|
77
|
-
"bmp": "\xAA\xBA\u01BB\u01C0-\u01C3\u0294\u05D0-\u05EA\u05EF-\u05F2\u0620-\u063F\u0641-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u0800-\u0815\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C8\u0904-\u0939\u093D\u0950\u0958-\u0961\u0972-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E45\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u1100-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17DC\u1820-\u1842\u1844-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C77\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u2135-\u2138\u2D30-\u2D67\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3006\u303C\u3041-\u3096\u309F\u30A1-\u30FA\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA014\uA016-\uA48C\uA4D0-\uA4F7\uA500-\uA60B\uA610-\uA61F\uA62A\uA62B\uA66E\uA6A0-\uA6E5\uA78F\uA7F7\uA7FB-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9E0-\uA9E4\uA9E7-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA6F\uAA71-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB\uAADC\uAAE0-\uAAEA\uAAF2\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF66-\uFF6F\uFF71-\uFF9D\uFFA0-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC",
|
|
78
|
-
"astral": "\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC50-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDD00-\uDD23\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF4A\uDF50]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82C[\uDC00-\uDD22\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\u{1DF0A}|\uD838[\uDD00-\uDD2C\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF38\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A]"
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
"name": "Lt",
|
|
82
|
-
"alias": "Titlecase_Letter",
|
|
83
|
-
"bmp": "\u01C5\u01C8\u01CB\u01F2\u1F88-\u1F8F\u1F98-\u1F9F\u1FA8-\u1FAF\u1FBC\u1FCC\u1FFC"
|
|
84
|
-
},
|
|
85
|
-
{
|
|
86
|
-
"name": "Lu",
|
|
87
|
-
"alias": "Uppercase_Letter",
|
|
88
|
-
"bmp": "A-Z\xC0-\xD6\xD8-\xDE\u0100\u0102\u0104\u0106\u0108\u010A\u010C\u010E\u0110\u0112\u0114\u0116\u0118\u011A\u011C\u011E\u0120\u0122\u0124\u0126\u0128\u012A\u012C\u012E\u0130\u0132\u0134\u0136\u0139\u013B\u013D\u013F\u0141\u0143\u0145\u0147\u014A\u014C\u014E\u0150\u0152\u0154\u0156\u0158\u015A\u015C\u015E\u0160\u0162\u0164\u0166\u0168\u016A\u016C\u016E\u0170\u0172\u0174\u0176\u0178\u0179\u017B\u017D\u0181\u0182\u0184\u0186\u0187\u0189-\u018B\u018E-\u0191\u0193\u0194\u0196-\u0198\u019C\u019D\u019F\u01A0\u01A2\u01A4\u01A6\u01A7\u01A9\u01AC\u01AE\u01AF\u01B1-\u01B3\u01B5\u01B7\u01B8\u01BC\u01C4\u01C7\u01CA\u01CD\u01CF\u01D1\u01D3\u01D5\u01D7\u01D9\u01DB\u01DE\u01E0\u01E2\u01E4\u01E6\u01E8\u01EA\u01EC\u01EE\u01F1\u01F4\u01F6-\u01F8\u01FA\u01FC\u01FE\u0200\u0202\u0204\u0206\u0208\u020A\u020C\u020E\u0210\u0212\u0214\u0216\u0218\u021A\u021C\u021E\u0220\u0222\u0224\u0226\u0228\u022A\u022C\u022E\u0230\u0232\u023A\u023B\u023D\u023E\u0241\u0243-\u0246\u0248\u024A\u024C\u024E\u0370\u0372\u0376\u037F\u0386\u0388-\u038A\u038C\u038E\u038F\u0391-\u03A1\u03A3-\u03AB\u03CF\u03D2-\u03D4\u03D8\u03DA\u03DC\u03DE\u03E0\u03E2\u03E4\u03E6\u03E8\u03EA\u03EC\u03EE\u03F4\u03F7\u03F9\u03FA\u03FD-\u042F\u0460\u0462\u0464\u0466\u0468\u046A\u046C\u046E\u0470\u0472\u0474\u0476\u0478\u047A\u047C\u047E\u0480\u048A\u048C\u048E\u0490\u0492\u0494\u0496\u0498\u049A\u049C\u049E\u04A0\u04A2\u04A4\u04A6\u04A8\u04AA\u04AC\u04AE\u04B0\u04B2\u04B4\u04B6\u04B8\u04BA\u04BC\u04BE\u04C0\u04C1\u04C3\u04C5\u04C7\u04C9\u04CB\u04CD\u04D0\u04D2\u04D4\u04D6\u04D8\u04DA\u04DC\u04DE\u04E0\u04E2\u04E4\u04E6\u04E8\u04EA\u04EC\u04EE\u04F0\u04F2\u04F4\u04F6\u04F8\u04FA\u04FC\u04FE\u0500\u0502\u0504\u0506\u0508\u050A\u050C\u050E\u0510\u0512\u0514\u0516\u0518\u051A\u051C\u051E\u0520\u0522\u0524\u0526\u0528\u052A\u052C\u052E\u0531-\u0556\u10A0-\u10C5\u10C7\u10CD\u13A0-\u13F5\u1C90-\u1CBA\u1CBD-\u1CBF\u1E00\u1E02\u1E04\u1E06\u1E08\u1E0A\u1E0C\u1E0E\u1E10\u1E12\u1E14\u1E16\u1E18\u1E1A\u1E1C\u1E1E\u1E20\u1E22\u1E24\u1E26\u1E28\u1E2A\u1E2C\u1E2E\u1E30\u1E32\u1E34\u1E36\u1E38\u1E3A\u1E3C\u1E3E\u1E40\u1E42\u1E44\u1E46\u1E48\u1E4A\u1E4C\u1E4E\u1E50\u1E52\u1E54\u1E56\u1E58\u1E5A\u1E5C\u1E5E\u1E60\u1E62\u1E64\u1E66\u1E68\u1E6A\u1E6C\u1E6E\u1E70\u1E72\u1E74\u1E76\u1E78\u1E7A\u1E7C\u1E7E\u1E80\u1E82\u1E84\u1E86\u1E88\u1E8A\u1E8C\u1E8E\u1E90\u1E92\u1E94\u1E9E\u1EA0\u1EA2\u1EA4\u1EA6\u1EA8\u1EAA\u1EAC\u1EAE\u1EB0\u1EB2\u1EB4\u1EB6\u1EB8\u1EBA\u1EBC\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1EC8\u1ECA\u1ECC\u1ECE\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EDA\u1EDC\u1EDE\u1EE0\u1EE2\u1EE4\u1EE6\u1EE8\u1EEA\u1EEC\u1EEE\u1EF0\u1EF2\u1EF4\u1EF6\u1EF8\u1EFA\u1EFC\u1EFE\u1F08-\u1F0F\u1F18-\u1F1D\u1F28-\u1F2F\u1F38-\u1F3F\u1F48-\u1F4D\u1F59\u1F5B\u1F5D\u1F5F\u1F68-\u1F6F\u1FB8-\u1FBB\u1FC8-\u1FCB\u1FD8-\u1FDB\u1FE8-\u1FEC\u1FF8-\u1FFB\u2102\u2107\u210B-\u210D\u2110-\u2112\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u2130-\u2133\u213E\u213F\u2145\u2183\u2C00-\u2C2F\u2C60\u2C62-\u2C64\u2C67\u2C69\u2C6B\u2C6D-\u2C70\u2C72\u2C75\u2C7E-\u2C80\u2C82\u2C84\u2C86\u2C88\u2C8A\u2C8C\u2C8E\u2C90\u2C92\u2C94\u2C96\u2C98\u2C9A\u2C9C\u2C9E\u2CA0\u2CA2\u2CA4\u2CA6\u2CA8\u2CAA\u2CAC\u2CAE\u2CB0\u2CB2\u2CB4\u2CB6\u2CB8\u2CBA\u2CBC\u2CBE\u2CC0\u2CC2\u2CC4\u2CC6\u2CC8\u2CCA\u2CCC\u2CCE\u2CD0\u2CD2\u2CD4\u2CD6\u2CD8\u2CDA\u2CDC\u2CDE\u2CE0\u2CE2\u2CEB\u2CED\u2CF2\uA640\uA642\uA644\uA646\uA648\uA64A\uA64C\uA64E\uA650\uA652\uA654\uA656\uA658\uA65A\uA65C\uA65E\uA660\uA662\uA664\uA666\uA668\uA66A\uA66C\uA680\uA682\uA684\uA686\uA688\uA68A\uA68C\uA68E\uA690\uA692\uA694\uA696\uA698\uA69A\uA722\uA724\uA726\uA728\uA72A\uA72C\uA72E\uA732\uA734\uA736\uA738\uA73A\uA73C\uA73E\uA740\uA742\uA744\uA746\uA748\uA74A\uA74C\uA74E\uA750\uA752\uA754\uA756\uA758\uA75A\uA75C\uA75E\uA760\uA762\uA764\uA766\uA768\uA76A\uA76C\uA76E\uA779\uA77B\uA77D\uA77E\uA780\uA782\uA784\uA786\uA78B\uA78D\uA790\uA792\uA796\uA798\uA79A\uA79C\uA79E\uA7A0\uA7A2\uA7A4\uA7A6\uA7A8\uA7AA-\uA7AE\uA7B0-\uA7B4\uA7B6\uA7B8\uA7BA\uA7BC\uA7BE\uA7C0\uA7C2\uA7C4-\uA7C7\uA7C9\uA7D0\uA7D6\uA7D8\uA7F5\uFF21-\uFF3A",
|
|
89
|
-
"astral": "\uD801[\uDC00-\uDC27\uDCB0-\uDCD3\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95]|\uD803[\uDC80-\uDCB2]|\uD806[\uDCA0-\uDCBF]|\uD81B[\uDE40-\uDE5F]|\uD835[\uDC00-\uDC19\uDC34-\uDC4D\uDC68-\uDC81\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB5\uDCD0-\uDCE9\uDD04\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD38\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD6C-\uDD85\uDDA0-\uDDB9\uDDD4-\uDDED\uDE08-\uDE21\uDE3C-\uDE55\uDE70-\uDE89\uDEA8-\uDEC0\uDEE2-\uDEFA\uDF1C-\uDF34\uDF56-\uDF6E\uDF90-\uDFA8\uDFCA]|\uD83A[\uDD00-\uDD21]"
|
|
90
|
-
},
|
|
91
|
-
{
|
|
92
|
-
"name": "M",
|
|
93
|
-
"alias": "Mark",
|
|
94
|
-
"bmp": "\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0898-\u089F\u08CA-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C04\u0C3C\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D81-\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u180F\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ACE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA82C\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F",
|
|
95
|
-
"astral": "\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD803[\uDD24-\uDD27\uDEAB\uDEAC\uDF46-\uDF50\uDF82-\uDF85]|\uD804[\uDC00-\uDC02\uDC38-\uDC46\uDC70\uDC73\uDC74\uDC7F-\uDC82\uDCB0-\uDCBA\uDCC2\uDD00-\uDD02\uDD27-\uDD34\uDD45\uDD46\uDD73\uDD80-\uDD82\uDDB3-\uDDC0\uDDC9-\uDDCC\uDDCE\uDDCF\uDE2C-\uDE37\uDE3E\uDEDF-\uDEEA\uDF00-\uDF03\uDF3B\uDF3C\uDF3E-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC35-\uDC46\uDC5E\uDCB0-\uDCC3\uDDAF-\uDDB5\uDDB8-\uDDC0\uDDDC\uDDDD\uDE30-\uDE40\uDEAB-\uDEB7\uDF1D-\uDF2B]|\uD806[\uDC2C-\uDC3A\uDD30-\uDD35\uDD37\uDD38\uDD3B-\uDD3E\uDD40\uDD42\uDD43\uDDD1-\uDDD7\uDDDA-\uDDE0\uDDE4\uDE01-\uDE0A\uDE33-\uDE39\uDE3B-\uDE3E\uDE47\uDE51-\uDE5B\uDE8A-\uDE99]|\uD807[\uDC2F-\uDC36\uDC38-\uDC3F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD31-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD45\uDD47\uDD8A-\uDD8E\uDD90\uDD91\uDD93-\uDD97\uDEF3-\uDEF6]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDF4F\uDF51-\uDF87\uDF8F-\uDF92\uDFE4\uDFF0\uDFF1]|\uD82F[\uDC9D\uDC9E]|\uD833[\uDF00-\uDF2D\uDF30-\uDF46]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A\uDD30-\uDD36\uDEAE\uDEEC-\uDEEF]|\uD83A[\uDCD0-\uDCD6\uDD44-\uDD4A]|\uDB40[\uDD00-\uDDEF]"
|
|
96
|
-
},
|
|
97
|
-
{
|
|
98
|
-
"name": "Mc",
|
|
99
|
-
"alias": "Spacing_Mark",
|
|
100
|
-
"bmp": "\u0903\u093B\u093E-\u0940\u0949-\u094C\u094E\u094F\u0982\u0983\u09BE-\u09C0\u09C7\u09C8\u09CB\u09CC\u09D7\u0A03\u0A3E-\u0A40\u0A83\u0ABE-\u0AC0\u0AC9\u0ACB\u0ACC\u0B02\u0B03\u0B3E\u0B40\u0B47\u0B48\u0B4B\u0B4C\u0B57\u0BBE\u0BBF\u0BC1\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCC\u0BD7\u0C01-\u0C03\u0C41-\u0C44\u0C82\u0C83\u0CBE\u0CC0-\u0CC4\u0CC7\u0CC8\u0CCA\u0CCB\u0CD5\u0CD6\u0D02\u0D03\u0D3E-\u0D40\u0D46-\u0D48\u0D4A-\u0D4C\u0D57\u0D82\u0D83\u0DCF-\u0DD1\u0DD8-\u0DDF\u0DF2\u0DF3\u0F3E\u0F3F\u0F7F\u102B\u102C\u1031\u1038\u103B\u103C\u1056\u1057\u1062-\u1064\u1067-\u106D\u1083\u1084\u1087-\u108C\u108F\u109A-\u109C\u1715\u1734\u17B6\u17BE-\u17C5\u17C7\u17C8\u1923-\u1926\u1929-\u192B\u1930\u1931\u1933-\u1938\u1A19\u1A1A\u1A55\u1A57\u1A61\u1A63\u1A64\u1A6D-\u1A72\u1B04\u1B35\u1B3B\u1B3D-\u1B41\u1B43\u1B44\u1B82\u1BA1\u1BA6\u1BA7\u1BAA\u1BE7\u1BEA-\u1BEC\u1BEE\u1BF2\u1BF3\u1C24-\u1C2B\u1C34\u1C35\u1CE1\u1CF7\u302E\u302F\uA823\uA824\uA827\uA880\uA881\uA8B4-\uA8C3\uA952\uA953\uA983\uA9B4\uA9B5\uA9BA\uA9BB\uA9BE-\uA9C0\uAA2F\uAA30\uAA33\uAA34\uAA4D\uAA7B\uAA7D\uAAEB\uAAEE\uAAEF\uAAF5\uABE3\uABE4\uABE6\uABE7\uABE9\uABEA\uABEC",
|
|
101
|
-
"astral": "\uD804[\uDC00\uDC02\uDC82\uDCB0-\uDCB2\uDCB7\uDCB8\uDD2C\uDD45\uDD46\uDD82\uDDB3-\uDDB5\uDDBF\uDDC0\uDDCE\uDE2C-\uDE2E\uDE32\uDE33\uDE35\uDEE0-\uDEE2\uDF02\uDF03\uDF3E\uDF3F\uDF41-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63]|\uD805[\uDC35-\uDC37\uDC40\uDC41\uDC45\uDCB0-\uDCB2\uDCB9\uDCBB-\uDCBE\uDCC1\uDDAF-\uDDB1\uDDB8-\uDDBB\uDDBE\uDE30-\uDE32\uDE3B\uDE3C\uDE3E\uDEAC\uDEAE\uDEAF\uDEB6\uDF20\uDF21\uDF26]|\uD806[\uDC2C-\uDC2E\uDC38\uDD30-\uDD35\uDD37\uDD38\uDD3D\uDD40\uDD42\uDDD1-\uDDD3\uDDDC-\uDDDF\uDDE4\uDE39\uDE57\uDE58\uDE97]|\uD807[\uDC2F\uDC3E\uDCA9\uDCB1\uDCB4\uDD8A-\uDD8E\uDD93\uDD94\uDD96\uDEF5\uDEF6]|\uD81B[\uDF51-\uDF87\uDFF0\uDFF1]|\uD834[\uDD65\uDD66\uDD6D-\uDD72]"
|
|
102
|
-
},
|
|
103
|
-
{
|
|
104
|
-
"name": "Me",
|
|
105
|
-
"alias": "Enclosing_Mark",
|
|
106
|
-
"bmp": "\u0488\u0489\u1ABE\u20DD-\u20E0\u20E2-\u20E4\uA670-\uA672"
|
|
107
|
-
},
|
|
108
|
-
{
|
|
109
|
-
"name": "Mn",
|
|
110
|
-
"alias": "Nonspacing_Mark",
|
|
111
|
-
"bmp": "\u0300-\u036F\u0483-\u0487\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0898-\u089F\u08CA-\u08E1\u08E3-\u0902\u093A\u093C\u0941-\u0948\u094D\u0951-\u0957\u0962\u0963\u0981\u09BC\u09C1-\u09C4\u09CD\u09E2\u09E3\u09FE\u0A01\u0A02\u0A3C\u0A41\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81\u0A82\u0ABC\u0AC1-\u0AC5\u0AC7\u0AC8\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01\u0B3C\u0B3F\u0B41-\u0B44\u0B4D\u0B55\u0B56\u0B62\u0B63\u0B82\u0BC0\u0BCD\u0C00\u0C04\u0C3C\u0C3E-\u0C40\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81\u0CBC\u0CBF\u0CC6\u0CCC\u0CCD\u0CE2\u0CE3\u0D00\u0D01\u0D3B\u0D3C\u0D41-\u0D44\u0D4D\u0D62\u0D63\u0D81\u0DCA\u0DD2-\u0DD4\u0DD6\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F71-\u0F7E\u0F80-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102D-\u1030\u1032-\u1037\u1039\u103A\u103D\u103E\u1058\u1059\u105E-\u1060\u1071-\u1074\u1082\u1085\u1086\u108D\u109D\u135D-\u135F\u1712-\u1714\u1732\u1733\u1752\u1753\u1772\u1773\u17B4\u17B5\u17B7-\u17BD\u17C6\u17C9-\u17D3\u17DD\u180B-\u180D\u180F\u1885\u1886\u18A9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193B\u1A17\u1A18\u1A1B\u1A56\u1A58-\u1A5E\u1A60\u1A62\u1A65-\u1A6C\u1A73-\u1A7C\u1A7F\u1AB0-\u1ABD\u1ABF-\u1ACE\u1B00-\u1B03\u1B34\u1B36-\u1B3A\u1B3C\u1B42\u1B6B-\u1B73\u1B80\u1B81\u1BA2-\u1BA5\u1BA8\u1BA9\u1BAB-\u1BAD\u1BE6\u1BE8\u1BE9\u1BED\u1BEF-\u1BF1\u1C2C-\u1C33\u1C36\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE0\u1CE2-\u1CE8\u1CED\u1CF4\u1CF8\u1CF9\u1DC0-\u1DFF\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302D\u3099\u309A\uA66F\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA825\uA826\uA82C\uA8C4\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA951\uA980-\uA982\uA9B3\uA9B6-\uA9B9\uA9BC\uA9BD\uA9E5\uAA29-\uAA2E\uAA31\uAA32\uAA35\uAA36\uAA43\uAA4C\uAA7C\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEC\uAAED\uAAF6\uABE5\uABE8\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F",
|
|
112
|
-
"astral": "\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD803[\uDD24-\uDD27\uDEAB\uDEAC\uDF46-\uDF50\uDF82-\uDF85]|\uD804[\uDC01\uDC38-\uDC46\uDC70\uDC73\uDC74\uDC7F-\uDC81\uDCB3-\uDCB6\uDCB9\uDCBA\uDCC2\uDD00-\uDD02\uDD27-\uDD2B\uDD2D-\uDD34\uDD73\uDD80\uDD81\uDDB6-\uDDBE\uDDC9-\uDDCC\uDDCF\uDE2F-\uDE31\uDE34\uDE36\uDE37\uDE3E\uDEDF\uDEE3-\uDEEA\uDF00\uDF01\uDF3B\uDF3C\uDF40\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC38-\uDC3F\uDC42-\uDC44\uDC46\uDC5E\uDCB3-\uDCB8\uDCBA\uDCBF\uDCC0\uDCC2\uDCC3\uDDB2-\uDDB5\uDDBC\uDDBD\uDDBF\uDDC0\uDDDC\uDDDD\uDE33-\uDE3A\uDE3D\uDE3F\uDE40\uDEAB\uDEAD\uDEB0-\uDEB5\uDEB7\uDF1D-\uDF1F\uDF22-\uDF25\uDF27-\uDF2B]|\uD806[\uDC2F-\uDC37\uDC39\uDC3A\uDD3B\uDD3C\uDD3E\uDD43\uDDD4-\uDDD7\uDDDA\uDDDB\uDDE0\uDE01-\uDE0A\uDE33-\uDE38\uDE3B-\uDE3E\uDE47\uDE51-\uDE56\uDE59-\uDE5B\uDE8A-\uDE96\uDE98\uDE99]|\uD807[\uDC30-\uDC36\uDC38-\uDC3D\uDC3F\uDC92-\uDCA7\uDCAA-\uDCB0\uDCB2\uDCB3\uDCB5\uDCB6\uDD31-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD45\uDD47\uDD90\uDD91\uDD95\uDD97\uDEF3\uDEF4]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDF4F\uDF8F-\uDF92\uDFE4]|\uD82F[\uDC9D\uDC9E]|\uD833[\uDF00-\uDF2D\uDF30-\uDF46]|\uD834[\uDD67-\uDD69\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A\uDD30-\uDD36\uDEAE\uDEEC-\uDEEF]|\uD83A[\uDCD0-\uDCD6\uDD44-\uDD4A]|\uDB40[\uDD00-\uDDEF]"
|
|
113
|
-
},
|
|
114
|
-
{
|
|
115
|
-
"name": "N",
|
|
116
|
-
"alias": "Number",
|
|
117
|
-
"bmp": "0-9\xB2\xB3\xB9\xBC-\xBE\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u09F4-\u09F9\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0B72-\u0B77\u0BE6-\u0BF2\u0C66-\u0C6F\u0C78-\u0C7E\u0CE6-\u0CEF\u0D58-\u0D5E\u0D66-\u0D78\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F33\u1040-\u1049\u1090-\u1099\u1369-\u137C\u16EE-\u16F0\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1946-\u194F\u19D0-\u19DA\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\u2070\u2074-\u2079\u2080-\u2089\u2150-\u2182\u2185-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2CFD\u3007\u3021-\u3029\u3038-\u303A\u3192-\u3195\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\uA620-\uA629\uA6E6-\uA6EF\uA830-\uA835\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19",
|
|
118
|
-
"astral": "\uD800[\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDEE1-\uDEFB\uDF20-\uDF23\uDF41\uDF4A\uDFD1-\uDFD5]|\uD801[\uDCA0-\uDCA9]|\uD802[\uDC58-\uDC5F\uDC79-\uDC7F\uDCA7-\uDCAF\uDCFB-\uDCFF\uDD16-\uDD1B\uDDBC\uDDBD\uDDC0-\uDDCF\uDDD2-\uDDFF\uDE40-\uDE48\uDE7D\uDE7E\uDE9D-\uDE9F\uDEEB-\uDEEF\uDF58-\uDF5F\uDF78-\uDF7F\uDFA9-\uDFAF]|\uD803[\uDCFA-\uDCFF\uDD30-\uDD39\uDE60-\uDE7E\uDF1D-\uDF26\uDF51-\uDF54\uDFC5-\uDFCB]|\uD804[\uDC52-\uDC6F\uDCF0-\uDCF9\uDD36-\uDD3F\uDDD0-\uDDD9\uDDE1-\uDDF4\uDEF0-\uDEF9]|\uD805[\uDC50-\uDC59\uDCD0-\uDCD9\uDE50-\uDE59\uDEC0-\uDEC9\uDF30-\uDF3B]|\uD806[\uDCE0-\uDCF2\uDD50-\uDD59]|\uD807[\uDC50-\uDC6C\uDD50-\uDD59\uDDA0-\uDDA9\uDFC0-\uDFD4]|\uD809[\uDC00-\uDC6E]|\uD81A[\uDE60-\uDE69\uDEC0-\uDEC9\uDF50-\uDF59\uDF5B-\uDF61]|\uD81B[\uDE80-\uDE96]|\uD834[\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDFCE-\uDFFF]|\uD838[\uDD40-\uDD49\uDEF0-\uDEF9]|\uD83A[\uDCC7-\uDCCF\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9]"
|
|
119
|
-
},
|
|
120
|
-
{
|
|
121
|
-
"name": "Nd",
|
|
122
|
-
"alias": "Decimal_Number",
|
|
123
|
-
"bmp": "0-9\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0BE6-\u0BEF\u0C66-\u0C6F\u0CE6-\u0CEF\u0D66-\u0D6F\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F29\u1040-\u1049\u1090-\u1099\u17E0-\u17E9\u1810-\u1819\u1946-\u194F\u19D0-\u19D9\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\uA620-\uA629\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19",
|
|
124
|
-
"astral": "\uD801[\uDCA0-\uDCA9]|\uD803[\uDD30-\uDD39]|\uD804[\uDC66-\uDC6F\uDCF0-\uDCF9\uDD36-\uDD3F\uDDD0-\uDDD9\uDEF0-\uDEF9]|\uD805[\uDC50-\uDC59\uDCD0-\uDCD9\uDE50-\uDE59\uDEC0-\uDEC9\uDF30-\uDF39]|\uD806[\uDCE0-\uDCE9\uDD50-\uDD59]|\uD807[\uDC50-\uDC59\uDD50-\uDD59\uDDA0-\uDDA9]|\uD81A[\uDE60-\uDE69\uDEC0-\uDEC9\uDF50-\uDF59]|\uD835[\uDFCE-\uDFFF]|\uD838[\uDD40-\uDD49\uDEF0-\uDEF9]|\uD83A[\uDD50-\uDD59]|\uD83E[\uDFF0-\uDFF9]"
|
|
125
|
-
},
|
|
126
|
-
{
|
|
127
|
-
"name": "Nl",
|
|
128
|
-
"alias": "Letter_Number",
|
|
129
|
-
"bmp": "\u16EE-\u16F0\u2160-\u2182\u2185-\u2188\u3007\u3021-\u3029\u3038-\u303A\uA6E6-\uA6EF",
|
|
130
|
-
"astral": "\uD800[\uDD40-\uDD74\uDF41\uDF4A\uDFD1-\uDFD5]|\uD809[\uDC00-\uDC6E]"
|
|
131
|
-
},
|
|
132
|
-
{
|
|
133
|
-
"name": "No",
|
|
134
|
-
"alias": "Other_Number",
|
|
135
|
-
"bmp": "\xB2\xB3\xB9\xBC-\xBE\u09F4-\u09F9\u0B72-\u0B77\u0BF0-\u0BF2\u0C78-\u0C7E\u0D58-\u0D5E\u0D70-\u0D78\u0F2A-\u0F33\u1369-\u137C\u17F0-\u17F9\u19DA\u2070\u2074-\u2079\u2080-\u2089\u2150-\u215F\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2CFD\u3192-\u3195\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\uA830-\uA835",
|
|
136
|
-
"astral": "\uD800[\uDD07-\uDD33\uDD75-\uDD78\uDD8A\uDD8B\uDEE1-\uDEFB\uDF20-\uDF23]|\uD802[\uDC58-\uDC5F\uDC79-\uDC7F\uDCA7-\uDCAF\uDCFB-\uDCFF\uDD16-\uDD1B\uDDBC\uDDBD\uDDC0-\uDDCF\uDDD2-\uDDFF\uDE40-\uDE48\uDE7D\uDE7E\uDE9D-\uDE9F\uDEEB-\uDEEF\uDF58-\uDF5F\uDF78-\uDF7F\uDFA9-\uDFAF]|\uD803[\uDCFA-\uDCFF\uDE60-\uDE7E\uDF1D-\uDF26\uDF51-\uDF54\uDFC5-\uDFCB]|\uD804[\uDC52-\uDC65\uDDE1-\uDDF4]|\uD805[\uDF3A\uDF3B]|\uD806[\uDCEA-\uDCF2]|\uD807[\uDC5A-\uDC6C\uDFC0-\uDFD4]|\uD81A[\uDF5B-\uDF61]|\uD81B[\uDE80-\uDE96]|\uD834[\uDEE0-\uDEF3\uDF60-\uDF78]|\uD83A[\uDCC7-\uDCCF]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D]|\uD83C[\uDD00-\uDD0C]"
|
|
137
|
-
},
|
|
138
|
-
{
|
|
139
|
-
"name": "P",
|
|
140
|
-
"alias": "Punctuation",
|
|
141
|
-
"bmp": "!-#%-\\*,-\\/:;\\?@\\[-\\]_\\{\\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061D-\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1B7D\u1B7E\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52-\u2E5D\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65",
|
|
142
|
-
"astral": "\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\u{1056F}|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDEAD\uDF55-\uDF59\uDF86-\uDF89]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5A\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDEB9\uDF3C-\uDF3E]|\uD806[\uDC3B\uDD44-\uDD46\uDDE2\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8\uDFFF]|\uD809[\uDC70-\uDC74]|\uD80B[\uDFF1\uDFF2]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A\uDFE2]|\u{1BC9F}|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]"
|
|
143
|
-
},
|
|
144
|
-
{
|
|
145
|
-
"name": "Pc",
|
|
146
|
-
"alias": "Connector_Punctuation",
|
|
147
|
-
"bmp": "_\u203F\u2040\u2054\uFE33\uFE34\uFE4D-\uFE4F\uFF3F"
|
|
148
|
-
},
|
|
149
|
-
{
|
|
150
|
-
"name": "Pd",
|
|
151
|
-
"alias": "Dash_Punctuation",
|
|
152
|
-
"bmp": "\\-\u058A\u05BE\u1400\u1806\u2010-\u2015\u2E17\u2E1A\u2E3A\u2E3B\u2E40\u2E5D\u301C\u3030\u30A0\uFE31\uFE32\uFE58\uFE63\uFF0D",
|
|
153
|
-
"astral": "\u{10EAD}"
|
|
154
|
-
},
|
|
155
|
-
{
|
|
156
|
-
"name": "Pe",
|
|
157
|
-
"alias": "Close_Punctuation",
|
|
158
|
-
"bmp": "\\)\\]\\}\u0F3B\u0F3D\u169C\u2046\u207E\u208E\u2309\u230B\u232A\u2769\u276B\u276D\u276F\u2771\u2773\u2775\u27C6\u27E7\u27E9\u27EB\u27ED\u27EF\u2984\u2986\u2988\u298A\u298C\u298E\u2990\u2992\u2994\u2996\u2998\u29D9\u29DB\u29FD\u2E23\u2E25\u2E27\u2E29\u2E56\u2E58\u2E5A\u2E5C\u3009\u300B\u300D\u300F\u3011\u3015\u3017\u3019\u301B\u301E\u301F\uFD3E\uFE18\uFE36\uFE38\uFE3A\uFE3C\uFE3E\uFE40\uFE42\uFE44\uFE48\uFE5A\uFE5C\uFE5E\uFF09\uFF3D\uFF5D\uFF60\uFF63"
|
|
159
|
-
},
|
|
160
|
-
{
|
|
161
|
-
"name": "Pf",
|
|
162
|
-
"alias": "Final_Punctuation",
|
|
163
|
-
"bmp": "\xBB\u2019\u201D\u203A\u2E03\u2E05\u2E0A\u2E0D\u2E1D\u2E21"
|
|
164
|
-
},
|
|
165
|
-
{
|
|
166
|
-
"name": "Pi",
|
|
167
|
-
"alias": "Initial_Punctuation",
|
|
168
|
-
"bmp": "\xAB\u2018\u201B\u201C\u201F\u2039\u2E02\u2E04\u2E09\u2E0C\u2E1C\u2E20"
|
|
169
|
-
},
|
|
170
|
-
{
|
|
171
|
-
"name": "Po",
|
|
172
|
-
"alias": "Other_Punctuation",
|
|
173
|
-
"bmp": "!-#%-'\\*,\\.\\/:;\\?@\\\xA1\xA7\xB6\xB7\xBF\u037E\u0387\u055A-\u055F\u0589\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061D-\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u166E\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u1805\u1807-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1B7D\u1B7E\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2016\u2017\u2020-\u2027\u2030-\u2038\u203B-\u203E\u2041-\u2043\u2047-\u2051\u2053\u2055-\u205E\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00\u2E01\u2E06-\u2E08\u2E0B\u2E0E-\u2E16\u2E18\u2E19\u2E1B\u2E1E\u2E1F\u2E2A-\u2E2E\u2E30-\u2E39\u2E3C-\u2E3F\u2E41\u2E43-\u2E4F\u2E52-\u2E54\u3001-\u3003\u303D\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFE10-\uFE16\uFE19\uFE30\uFE45\uFE46\uFE49-\uFE4C\uFE50-\uFE52\uFE54-\uFE57\uFE5F-\uFE61\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF07\uFF0A\uFF0C\uFF0E\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3C\uFF61\uFF64\uFF65",
|
|
174
|
-
"astral": "\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\u{1056F}|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDF55-\uDF59\uDF86-\uDF89]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5A\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDEB9\uDF3C-\uDF3E]|\uD806[\uDC3B\uDD44-\uDD46\uDDE2\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8\uDFFF]|\uD809[\uDC70-\uDC74]|\uD80B[\uDFF1\uDFF2]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A\uDFE2]|\u{1BC9F}|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]"
|
|
175
|
-
},
|
|
176
|
-
{
|
|
177
|
-
"name": "Ps",
|
|
178
|
-
"alias": "Open_Punctuation",
|
|
179
|
-
"bmp": "\\(\\[\\{\u0F3A\u0F3C\u169B\u201A\u201E\u2045\u207D\u208D\u2308\u230A\u2329\u2768\u276A\u276C\u276E\u2770\u2772\u2774\u27C5\u27E6\u27E8\u27EA\u27EC\u27EE\u2983\u2985\u2987\u2989\u298B\u298D\u298F\u2991\u2993\u2995\u2997\u29D8\u29DA\u29FC\u2E22\u2E24\u2E26\u2E28\u2E42\u2E55\u2E57\u2E59\u2E5B\u3008\u300A\u300C\u300E\u3010\u3014\u3016\u3018\u301A\u301D\uFD3F\uFE17\uFE35\uFE37\uFE39\uFE3B\uFE3D\uFE3F\uFE41\uFE43\uFE47\uFE59\uFE5B\uFE5D\uFF08\uFF3B\uFF5B\uFF5F\uFF62"
|
|
180
|
-
},
|
|
181
|
-
{
|
|
182
|
-
"name": "S",
|
|
183
|
-
"alias": "Symbol",
|
|
184
|
-
"bmp": "\\$\\+<->\\^`\\|~\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u07FE\u07FF\u0888\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20C0\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uAB6A\uAB6B\uFB29\uFBB2-\uFBC2\uFD40-\uFD4F\uFDCF\uFDFC-\uFDFF\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD",
|
|
185
|
-
"astral": "\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\u{1173F}|\uD807[\uDFD5-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\u{1BC9C}|\uD833[\uDF50-\uDFC3]|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDEA\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838[\uDD4F\uDEFF]|\uD83B[\uDCAC\uDCB0\uDD2E\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED7\uDEDD-\uDEEC\uDEF0-\uDEFC\uDF00-\uDF73\uDF80-\uDFD8\uDFE0-\uDFEB\uDFF0]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0\uDCB1\uDD00-\uDE53\uDE60-\uDE6D\uDE70-\uDE74\uDE78-\uDE7C\uDE80-\uDE86\uDE90-\uDEAC\uDEB0-\uDEBA\uDEC0-\uDEC5\uDED0-\uDED9\uDEE0-\uDEE7\uDEF0-\uDEF6\uDF00-\uDF92\uDF94-\uDFCA]"
|
|
186
|
-
},
|
|
187
|
-
{
|
|
188
|
-
"name": "Sc",
|
|
189
|
-
"alias": "Currency_Symbol",
|
|
190
|
-
"bmp": "\\$\xA2-\xA5\u058F\u060B\u07FE\u07FF\u09F2\u09F3\u09FB\u0AF1\u0BF9\u0E3F\u17DB\u20A0-\u20C0\uA838\uFDFC\uFE69\uFF04\uFFE0\uFFE1\uFFE5\uFFE6",
|
|
191
|
-
"astral": "\uD807[\uDFDD-\uDFE0]|\u{1E2FF}|\u{1ECB0}"
|
|
192
|
-
},
|
|
193
|
-
{
|
|
194
|
-
"name": "Sk",
|
|
195
|
-
"alias": "Modifier_Symbol",
|
|
196
|
-
"bmp": "\\^`\xA8\xAF\xB4\xB8\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u0888\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u309B\u309C\uA700-\uA716\uA720\uA721\uA789\uA78A\uAB5B\uAB6A\uAB6B\uFBB2-\uFBC2\uFF3E\uFF40\uFFE3",
|
|
197
|
-
"astral": "\uD83C[\uDFFB-\uDFFF]"
|
|
198
|
-
},
|
|
199
|
-
{
|
|
200
|
-
"name": "Sm",
|
|
201
|
-
"alias": "Math_Symbol",
|
|
202
|
-
"bmp": "\\+<->\\|~\xAC\xB1\xD7\xF7\u03F6\u0606-\u0608\u2044\u2052\u207A-\u207C\u208A-\u208C\u2118\u2140-\u2144\u214B\u2190-\u2194\u219A\u219B\u21A0\u21A3\u21A6\u21AE\u21CE\u21CF\u21D2\u21D4\u21F4-\u22FF\u2320\u2321\u237C\u239B-\u23B3\u23DC-\u23E1\u25B7\u25C1\u25F8-\u25FF\u266F\u27C0-\u27C4\u27C7-\u27E5\u27F0-\u27FF\u2900-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2AFF\u2B30-\u2B44\u2B47-\u2B4C\uFB29\uFE62\uFE64-\uFE66\uFF0B\uFF1C-\uFF1E\uFF5C\uFF5E\uFFE2\uFFE9-\uFFEC",
|
|
203
|
-
"astral": "\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD83B[\uDEF0\uDEF1]"
|
|
204
|
-
},
|
|
205
|
-
{
|
|
206
|
-
"name": "So",
|
|
207
|
-
"alias": "Other_Symbol",
|
|
208
|
-
"bmp": "\xA6\xA9\xAE\xB0\u0482\u058D\u058E\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u09FA\u0B70\u0BF3-\u0BF8\u0BFA\u0C7F\u0D4F\u0D79\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116\u2117\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u214A\u214C\u214D\u214F\u218A\u218B\u2195-\u2199\u219C-\u219F\u21A1\u21A2\u21A4\u21A5\u21A7-\u21AD\u21AF-\u21CD\u21D0\u21D1\u21D3\u21D5-\u21F3\u2300-\u2307\u230C-\u231F\u2322-\u2328\u232B-\u237B\u237D-\u239A\u23B4-\u23DB\u23E2-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u25B6\u25B8-\u25C0\u25C2-\u25F7\u2600-\u266E\u2670-\u2767\u2794-\u27BF\u2800-\u28FF\u2B00-\u2B2F\u2B45\u2B46\u2B4D-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA828-\uA82B\uA836\uA837\uA839\uAA77-\uAA79\uFD40-\uFD4F\uFDCF\uFDFD-\uFDFF\uFFE4\uFFE8\uFFED\uFFEE\uFFFC\uFFFD",
|
|
209
|
-
"astral": "\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\u{1173F}|\uD807[\uDFD5-\uDFDC\uDFE1-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\u{1BC9C}|\uD833[\uDF50-\uDFC3]|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDEA\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\u{1E14F}|\uD83B[\uDCAC\uDD2E]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFA]|\uD83D[\uDC00-\uDED7\uDEDD-\uDEEC\uDEF0-\uDEFC\uDF00-\uDF73\uDF80-\uDFD8\uDFE0-\uDFEB\uDFF0]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0\uDCB1\uDD00-\uDE53\uDE60-\uDE6D\uDE70-\uDE74\uDE78-\uDE7C\uDE80-\uDE86\uDE90-\uDEAC\uDEB0-\uDEBA\uDEC0-\uDEC5\uDED0-\uDED9\uDEE0-\uDEE7\uDEF0-\uDEF6\uDF00-\uDF92\uDF94-\uDFCA]"
|
|
210
|
-
},
|
|
211
|
-
{
|
|
212
|
-
"name": "Z",
|
|
213
|
-
"alias": "Separator",
|
|
214
|
-
"bmp": " \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000"
|
|
215
|
-
},
|
|
216
|
-
{
|
|
217
|
-
"name": "Zl",
|
|
218
|
-
"alias": "Line_Separator",
|
|
219
|
-
"bmp": "\u2028"
|
|
220
|
-
},
|
|
221
|
-
{
|
|
222
|
-
"name": "Zp",
|
|
223
|
-
"alias": "Paragraph_Separator",
|
|
224
|
-
"bmp": "\u2029"
|
|
225
|
-
},
|
|
226
|
-
{
|
|
227
|
-
"name": "Zs",
|
|
228
|
-
"alias": "Space_Separator",
|
|
229
|
-
"bmp": " \xA0\u1680\u2000-\u200A\u202F\u205F\u3000"
|
|
230
|
-
}
|
|
231
|
-
];
|
|
232
|
-
}
|
|
233
|
-
});
|
|
234
|
-
|
|
235
|
-
// ../../../node_modules/.pnpm/xregexp@5.1.1/node_modules/xregexp/tools/output/properties.js
|
|
236
|
-
var require_properties = __commonJS({
|
|
237
|
-
"../../../node_modules/.pnpm/xregexp@5.1.1/node_modules/xregexp/tools/output/properties.js"(exports, module) {
|
|
238
|
-
module.exports = [
|
|
239
|
-
{
|
|
240
|
-
"name": "ASCII",
|
|
241
|
-
"bmp": "\0-\x7F"
|
|
242
|
-
},
|
|
243
|
-
{
|
|
244
|
-
"name": "Alphabetic",
|
|
245
|
-
"bmp": "A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0345\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05B0-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05EF-\u05F2\u0610-\u061A\u0620-\u0657\u0659-\u065F\u066E-\u06D3\u06D5-\u06DC\u06E1-\u06E8\u06ED-\u06EF\u06FA-\u06FC\u06FF\u0710-\u073F\u074D-\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0817\u081A-\u082C\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u08D4-\u08DF\u08E3-\u08E9\u08F0-\u093B\u093D-\u094C\u094E-\u0950\u0955-\u0963\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD-\u09C4\u09C7\u09C8\u09CB\u09CC\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09F0\u09F1\u09FC\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3E-\u0A42\u0A47\u0A48\u0A4B\u0A4C\u0A51\u0A59-\u0A5C\u0A5E\u0A70-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD-\u0AC5\u0AC7-\u0AC9\u0ACB\u0ACC\u0AD0\u0AE0-\u0AE3\u0AF9-\u0AFC\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D-\u0B44\u0B47\u0B48\u0B4B\u0B4C\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCC\u0BD0\u0BD7\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4C\u0C55\u0C56\u0C58-\u0C5A\u0C5D\u0C60-\u0C63\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCC\u0CD5\u0CD6\u0CDD\u0CDE\u0CE0-\u0CE3\u0CF1\u0CF2\u0D00-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4C\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D7A-\u0D7F\u0D81-\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E46\u0E4D\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0ECD\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F71-\u0F81\u0F88-\u0F97\u0F99-\u0FBC\u1000-\u1036\u1038\u103B-\u103F\u1050-\u108F\u109A-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1713\u171F-\u1733\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17B3\u17B6-\u17C8\u17D7\u17DC\u1820-\u1878\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u1938\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A1B\u1A20-\u1A5E\u1A61-\u1A74\u1AA7\u1ABF\u1AC0\u1ACC-\u1ACE\u1B00-\u1B33\u1B35-\u1B43\u1B45-\u1B4C\u1B80-\u1BA9\u1BAC-\u1BAF\u1BBA-\u1BE5\u1BE7-\u1BF1\u1C00-\u1C36\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1DE7-\u1DF4\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u24B6-\u24E9\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA674-\uA67B\uA67F-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA805\uA807-\uA827\uA840-\uA873\uA880-\uA8C3\uA8C5\uA8F2-\uA8F7\uA8FB\uA8FD-\uA8FF\uA90A-\uA92A\uA930-\uA952\uA960-\uA97C\uA980-\uA9B2\uA9B4-\uA9BF\uA9CF\uA9E0-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA60-\uAA76\uAA7A-\uAABE\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF5\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABEA\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC",
|
|
246
|
-
"astral": "\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD27\uDE80-\uDEA9\uDEAB\uDEAC\uDEB0\uDEB1\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC00-\uDC45\uDC71-\uDC75\uDC82-\uDCB8\uDCC2\uDCD0-\uDCE8\uDD00-\uDD32\uDD44-\uDD47\uDD50-\uDD72\uDD76\uDD80-\uDDBF\uDDC1-\uDDC4\uDDCE\uDDCF\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE34\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEE8\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D-\uDF44\uDF47\uDF48\uDF4B\uDF4C\uDF50\uDF57\uDF5D-\uDF63]|\uD805[\uDC00-\uDC41\uDC43-\uDC45\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCC1\uDCC4\uDCC5\uDCC7\uDD80-\uDDB5\uDDB8-\uDDBE\uDDD8-\uDDDD\uDE00-\uDE3E\uDE40\uDE44\uDE80-\uDEB5\uDEB8\uDF00-\uDF1A\uDF1D-\uDF2A\uDF40-\uDF46]|\uD806[\uDC00-\uDC38\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD35\uDD37\uDD38\uDD3B\uDD3C\uDD3F-\uDD42\uDDA0-\uDDA7\uDDAA-\uDDD7\uDDDA-\uDDDF\uDDE1\uDDE3\uDDE4\uDE00-\uDE32\uDE35-\uDE3E\uDE50-\uDE97\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC3E\uDC40\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD41\uDD43\uDD46\uDD47\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD8E\uDD90\uDD91\uDD93-\uDD96\uDD98\uDEE0-\uDEF6\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF4F-\uDF87\uDF8F-\uDF9F\uDFE0\uDFE1\uDFE3\uDFF0\uDFF1]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9E]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD47\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD83C[\uDD30-\uDD49\uDD50-\uDD69\uDD70-\uDD89]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF38\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A]"
|
|
247
|
-
},
|
|
248
|
-
{
|
|
249
|
-
"name": "Any",
|
|
250
|
-
"isBmpLast": true,
|
|
251
|
-
"bmp": "\0-\uFFFF",
|
|
252
|
-
"astral": "[\uD800-\uDBFF][\uDC00-\uDFFF]"
|
|
253
|
-
},
|
|
254
|
-
{
|
|
255
|
-
"name": "Default_Ignorable_Code_Point",
|
|
256
|
-
"bmp": "\xAD\u034F\u061C\u115F\u1160\u17B4\u17B5\u180B-\u180F\u200B-\u200F\u202A-\u202E\u2060-\u206F\u3164\uFE00-\uFE0F\uFEFF\uFFA0\uFFF0-\uFFF8",
|
|
257
|
-
"astral": "\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|[\uDB40-\uDB43][\uDC00-\uDFFF]"
|
|
258
|
-
},
|
|
259
|
-
{
|
|
260
|
-
"name": "Lowercase",
|
|
261
|
-
"bmp": "a-z\xAA\xB5\xBA\xDF-\xF6\xF8-\xFF\u0101\u0103\u0105\u0107\u0109\u010B\u010D\u010F\u0111\u0113\u0115\u0117\u0119\u011B\u011D\u011F\u0121\u0123\u0125\u0127\u0129\u012B\u012D\u012F\u0131\u0133\u0135\u0137\u0138\u013A\u013C\u013E\u0140\u0142\u0144\u0146\u0148\u0149\u014B\u014D\u014F\u0151\u0153\u0155\u0157\u0159\u015B\u015D\u015F\u0161\u0163\u0165\u0167\u0169\u016B\u016D\u016F\u0171\u0173\u0175\u0177\u017A\u017C\u017E-\u0180\u0183\u0185\u0188\u018C\u018D\u0192\u0195\u0199-\u019B\u019E\u01A1\u01A3\u01A5\u01A8\u01AA\u01AB\u01AD\u01B0\u01B4\u01B6\u01B9\u01BA\u01BD-\u01BF\u01C6\u01C9\u01CC\u01CE\u01D0\u01D2\u01D4\u01D6\u01D8\u01DA\u01DC\u01DD\u01DF\u01E1\u01E3\u01E5\u01E7\u01E9\u01EB\u01ED\u01EF\u01F0\u01F3\u01F5\u01F9\u01FB\u01FD\u01FF\u0201\u0203\u0205\u0207\u0209\u020B\u020D\u020F\u0211\u0213\u0215\u0217\u0219\u021B\u021D\u021F\u0221\u0223\u0225\u0227\u0229\u022B\u022D\u022F\u0231\u0233-\u0239\u023C\u023F\u0240\u0242\u0247\u0249\u024B\u024D\u024F-\u0293\u0295-\u02B8\u02C0\u02C1\u02E0-\u02E4\u0345\u0371\u0373\u0377\u037A-\u037D\u0390\u03AC-\u03CE\u03D0\u03D1\u03D5-\u03D7\u03D9\u03DB\u03DD\u03DF\u03E1\u03E3\u03E5\u03E7\u03E9\u03EB\u03ED\u03EF-\u03F3\u03F5\u03F8\u03FB\u03FC\u0430-\u045F\u0461\u0463\u0465\u0467\u0469\u046B\u046D\u046F\u0471\u0473\u0475\u0477\u0479\u047B\u047D\u047F\u0481\u048B\u048D\u048F\u0491\u0493\u0495\u0497\u0499\u049B\u049D\u049F\u04A1\u04A3\u04A5\u04A7\u04A9\u04AB\u04AD\u04AF\u04B1\u04B3\u04B5\u04B7\u04B9\u04BB\u04BD\u04BF\u04C2\u04C4\u04C6\u04C8\u04CA\u04CC\u04CE\u04CF\u04D1\u04D3\u04D5\u04D7\u04D9\u04DB\u04DD\u04DF\u04E1\u04E3\u04E5\u04E7\u04E9\u04EB\u04ED\u04EF\u04F1\u04F3\u04F5\u04F7\u04F9\u04FB\u04FD\u04FF\u0501\u0503\u0505\u0507\u0509\u050B\u050D\u050F\u0511\u0513\u0515\u0517\u0519\u051B\u051D\u051F\u0521\u0523\u0525\u0527\u0529\u052B\u052D\u052F\u0560-\u0588\u10D0-\u10FA\u10FD-\u10FF\u13F8-\u13FD\u1C80-\u1C88\u1D00-\u1DBF\u1E01\u1E03\u1E05\u1E07\u1E09\u1E0B\u1E0D\u1E0F\u1E11\u1E13\u1E15\u1E17\u1E19\u1E1B\u1E1D\u1E1F\u1E21\u1E23\u1E25\u1E27\u1E29\u1E2B\u1E2D\u1E2F\u1E31\u1E33\u1E35\u1E37\u1E39\u1E3B\u1E3D\u1E3F\u1E41\u1E43\u1E45\u1E47\u1E49\u1E4B\u1E4D\u1E4F\u1E51\u1E53\u1E55\u1E57\u1E59\u1E5B\u1E5D\u1E5F\u1E61\u1E63\u1E65\u1E67\u1E69\u1E6B\u1E6D\u1E6F\u1E71\u1E73\u1E75\u1E77\u1E79\u1E7B\u1E7D\u1E7F\u1E81\u1E83\u1E85\u1E87\u1E89\u1E8B\u1E8D\u1E8F\u1E91\u1E93\u1E95-\u1E9D\u1E9F\u1EA1\u1EA3\u1EA5\u1EA7\u1EA9\u1EAB\u1EAD\u1EAF\u1EB1\u1EB3\u1EB5\u1EB7\u1EB9\u1EBB\u1EBD\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1EC9\u1ECB\u1ECD\u1ECF\u1ED1\u1ED3\u1ED5\u1ED7\u1ED9\u1EDB\u1EDD\u1EDF\u1EE1\u1EE3\u1EE5\u1EE7\u1EE9\u1EEB\u1EED\u1EEF\u1EF1\u1EF3\u1EF5\u1EF7\u1EF9\u1EFB\u1EFD\u1EFF-\u1F07\u1F10-\u1F15\u1F20-\u1F27\u1F30-\u1F37\u1F40-\u1F45\u1F50-\u1F57\u1F60-\u1F67\u1F70-\u1F7D\u1F80-\u1F87\u1F90-\u1F97\u1FA0-\u1FA7\u1FB0-\u1FB4\u1FB6\u1FB7\u1FBE\u1FC2-\u1FC4\u1FC6\u1FC7\u1FD0-\u1FD3\u1FD6\u1FD7\u1FE0-\u1FE7\u1FF2-\u1FF4\u1FF6\u1FF7\u2071\u207F\u2090-\u209C\u210A\u210E\u210F\u2113\u212F\u2134\u2139\u213C\u213D\u2146-\u2149\u214E\u2170-\u217F\u2184\u24D0-\u24E9\u2C30-\u2C5F\u2C61\u2C65\u2C66\u2C68\u2C6A\u2C6C\u2C71\u2C73\u2C74\u2C76-\u2C7D\u2C81\u2C83\u2C85\u2C87\u2C89\u2C8B\u2C8D\u2C8F\u2C91\u2C93\u2C95\u2C97\u2C99\u2C9B\u2C9D\u2C9F\u2CA1\u2CA3\u2CA5\u2CA7\u2CA9\u2CAB\u2CAD\u2CAF\u2CB1\u2CB3\u2CB5\u2CB7\u2CB9\u2CBB\u2CBD\u2CBF\u2CC1\u2CC3\u2CC5\u2CC7\u2CC9\u2CCB\u2CCD\u2CCF\u2CD1\u2CD3\u2CD5\u2CD7\u2CD9\u2CDB\u2CDD\u2CDF\u2CE1\u2CE3\u2CE4\u2CEC\u2CEE\u2CF3\u2D00-\u2D25\u2D27\u2D2D\uA641\uA643\uA645\uA647\uA649\uA64B\uA64D\uA64F\uA651\uA653\uA655\uA657\uA659\uA65B\uA65D\uA65F\uA661\uA663\uA665\uA667\uA669\uA66B\uA66D\uA681\uA683\uA685\uA687\uA689\uA68B\uA68D\uA68F\uA691\uA693\uA695\uA697\uA699\uA69B-\uA69D\uA723\uA725\uA727\uA729\uA72B\uA72D\uA72F-\uA731\uA733\uA735\uA737\uA739\uA73B\uA73D\uA73F\uA741\uA743\uA745\uA747\uA749\uA74B\uA74D\uA74F\uA751\uA753\uA755\uA757\uA759\uA75B\uA75D\uA75F\uA761\uA763\uA765\uA767\uA769\uA76B\uA76D\uA76F-\uA778\uA77A\uA77C\uA77F\uA781\uA783\uA785\uA787\uA78C\uA78E\uA791\uA793-\uA795\uA797\uA799\uA79B\uA79D\uA79F\uA7A1\uA7A3\uA7A5\uA7A7\uA7A9\uA7AF\uA7B5\uA7B7\uA7B9\uA7BB\uA7BD\uA7BF\uA7C1\uA7C3\uA7C8\uA7CA\uA7D1\uA7D3\uA7D5\uA7D7\uA7D9\uA7F6\uA7F8-\uA7FA\uAB30-\uAB5A\uAB5C-\uAB68\uAB70-\uABBF\uFB00-\uFB06\uFB13-\uFB17\uFF41-\uFF5A",
|
|
262
|
-
"astral": "\uD801[\uDC28-\uDC4F\uDCD8-\uDCFB\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDF80\uDF83-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD803[\uDCC0-\uDCF2]|\uD806[\uDCC0-\uDCDF]|\uD81B[\uDE60-\uDE7F]|\uD835[\uDC1A-\uDC33\uDC4E-\uDC54\uDC56-\uDC67\uDC82-\uDC9B\uDCB6-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDCCF\uDCEA-\uDD03\uDD1E-\uDD37\uDD52-\uDD6B\uDD86-\uDD9F\uDDBA-\uDDD3\uDDEE-\uDE07\uDE22-\uDE3B\uDE56-\uDE6F\uDE8A-\uDEA5\uDEC2-\uDEDA\uDEDC-\uDEE1\uDEFC-\uDF14\uDF16-\uDF1B\uDF36-\uDF4E\uDF50-\uDF55\uDF70-\uDF88\uDF8A-\uDF8F\uDFAA-\uDFC2\uDFC4-\uDFC9\uDFCB]|\uD837[\uDF00-\uDF09\uDF0B-\uDF1E]|\uD83A[\uDD22-\uDD43]"
|
|
263
|
-
},
|
|
264
|
-
{
|
|
265
|
-
"name": "Noncharacter_Code_Point",
|
|
266
|
-
"bmp": "\uFDD0-\uFDEF\uFFFE\uFFFF",
|
|
267
|
-
"astral": "[\uD83F\uD87F\uD8BF\uD8FF\uD93F\uD97F\uD9BF\uD9FF\uDA3F\uDA7F\uDABF\uDAFF\uDB3F\uDB7F\uDBBF\uDBFF][\uDFFE\uDFFF]"
|
|
268
|
-
},
|
|
269
|
-
{
|
|
270
|
-
"name": "Uppercase",
|
|
271
|
-
"bmp": "A-Z\xC0-\xD6\xD8-\xDE\u0100\u0102\u0104\u0106\u0108\u010A\u010C\u010E\u0110\u0112\u0114\u0116\u0118\u011A\u011C\u011E\u0120\u0122\u0124\u0126\u0128\u012A\u012C\u012E\u0130\u0132\u0134\u0136\u0139\u013B\u013D\u013F\u0141\u0143\u0145\u0147\u014A\u014C\u014E\u0150\u0152\u0154\u0156\u0158\u015A\u015C\u015E\u0160\u0162\u0164\u0166\u0168\u016A\u016C\u016E\u0170\u0172\u0174\u0176\u0178\u0179\u017B\u017D\u0181\u0182\u0184\u0186\u0187\u0189-\u018B\u018E-\u0191\u0193\u0194\u0196-\u0198\u019C\u019D\u019F\u01A0\u01A2\u01A4\u01A6\u01A7\u01A9\u01AC\u01AE\u01AF\u01B1-\u01B3\u01B5\u01B7\u01B8\u01BC\u01C4\u01C7\u01CA\u01CD\u01CF\u01D1\u01D3\u01D5\u01D7\u01D9\u01DB\u01DE\u01E0\u01E2\u01E4\u01E6\u01E8\u01EA\u01EC\u01EE\u01F1\u01F4\u01F6-\u01F8\u01FA\u01FC\u01FE\u0200\u0202\u0204\u0206\u0208\u020A\u020C\u020E\u0210\u0212\u0214\u0216\u0218\u021A\u021C\u021E\u0220\u0222\u0224\u0226\u0228\u022A\u022C\u022E\u0230\u0232\u023A\u023B\u023D\u023E\u0241\u0243-\u0246\u0248\u024A\u024C\u024E\u0370\u0372\u0376\u037F\u0386\u0388-\u038A\u038C\u038E\u038F\u0391-\u03A1\u03A3-\u03AB\u03CF\u03D2-\u03D4\u03D8\u03DA\u03DC\u03DE\u03E0\u03E2\u03E4\u03E6\u03E8\u03EA\u03EC\u03EE\u03F4\u03F7\u03F9\u03FA\u03FD-\u042F\u0460\u0462\u0464\u0466\u0468\u046A\u046C\u046E\u0470\u0472\u0474\u0476\u0478\u047A\u047C\u047E\u0480\u048A\u048C\u048E\u0490\u0492\u0494\u0496\u0498\u049A\u049C\u049E\u04A0\u04A2\u04A4\u04A6\u04A8\u04AA\u04AC\u04AE\u04B0\u04B2\u04B4\u04B6\u04B8\u04BA\u04BC\u04BE\u04C0\u04C1\u04C3\u04C5\u04C7\u04C9\u04CB\u04CD\u04D0\u04D2\u04D4\u04D6\u04D8\u04DA\u04DC\u04DE\u04E0\u04E2\u04E4\u04E6\u04E8\u04EA\u04EC\u04EE\u04F0\u04F2\u04F4\u04F6\u04F8\u04FA\u04FC\u04FE\u0500\u0502\u0504\u0506\u0508\u050A\u050C\u050E\u0510\u0512\u0514\u0516\u0518\u051A\u051C\u051E\u0520\u0522\u0524\u0526\u0528\u052A\u052C\u052E\u0531-\u0556\u10A0-\u10C5\u10C7\u10CD\u13A0-\u13F5\u1C90-\u1CBA\u1CBD-\u1CBF\u1E00\u1E02\u1E04\u1E06\u1E08\u1E0A\u1E0C\u1E0E\u1E10\u1E12\u1E14\u1E16\u1E18\u1E1A\u1E1C\u1E1E\u1E20\u1E22\u1E24\u1E26\u1E28\u1E2A\u1E2C\u1E2E\u1E30\u1E32\u1E34\u1E36\u1E38\u1E3A\u1E3C\u1E3E\u1E40\u1E42\u1E44\u1E46\u1E48\u1E4A\u1E4C\u1E4E\u1E50\u1E52\u1E54\u1E56\u1E58\u1E5A\u1E5C\u1E5E\u1E60\u1E62\u1E64\u1E66\u1E68\u1E6A\u1E6C\u1E6E\u1E70\u1E72\u1E74\u1E76\u1E78\u1E7A\u1E7C\u1E7E\u1E80\u1E82\u1E84\u1E86\u1E88\u1E8A\u1E8C\u1E8E\u1E90\u1E92\u1E94\u1E9E\u1EA0\u1EA2\u1EA4\u1EA6\u1EA8\u1EAA\u1EAC\u1EAE\u1EB0\u1EB2\u1EB4\u1EB6\u1EB8\u1EBA\u1EBC\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1EC8\u1ECA\u1ECC\u1ECE\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EDA\u1EDC\u1EDE\u1EE0\u1EE2\u1EE4\u1EE6\u1EE8\u1EEA\u1EEC\u1EEE\u1EF0\u1EF2\u1EF4\u1EF6\u1EF8\u1EFA\u1EFC\u1EFE\u1F08-\u1F0F\u1F18-\u1F1D\u1F28-\u1F2F\u1F38-\u1F3F\u1F48-\u1F4D\u1F59\u1F5B\u1F5D\u1F5F\u1F68-\u1F6F\u1FB8-\u1FBB\u1FC8-\u1FCB\u1FD8-\u1FDB\u1FE8-\u1FEC\u1FF8-\u1FFB\u2102\u2107\u210B-\u210D\u2110-\u2112\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u2130-\u2133\u213E\u213F\u2145\u2160-\u216F\u2183\u24B6-\u24CF\u2C00-\u2C2F\u2C60\u2C62-\u2C64\u2C67\u2C69\u2C6B\u2C6D-\u2C70\u2C72\u2C75\u2C7E-\u2C80\u2C82\u2C84\u2C86\u2C88\u2C8A\u2C8C\u2C8E\u2C90\u2C92\u2C94\u2C96\u2C98\u2C9A\u2C9C\u2C9E\u2CA0\u2CA2\u2CA4\u2CA6\u2CA8\u2CAA\u2CAC\u2CAE\u2CB0\u2CB2\u2CB4\u2CB6\u2CB8\u2CBA\u2CBC\u2CBE\u2CC0\u2CC2\u2CC4\u2CC6\u2CC8\u2CCA\u2CCC\u2CCE\u2CD0\u2CD2\u2CD4\u2CD6\u2CD8\u2CDA\u2CDC\u2CDE\u2CE0\u2CE2\u2CEB\u2CED\u2CF2\uA640\uA642\uA644\uA646\uA648\uA64A\uA64C\uA64E\uA650\uA652\uA654\uA656\uA658\uA65A\uA65C\uA65E\uA660\uA662\uA664\uA666\uA668\uA66A\uA66C\uA680\uA682\uA684\uA686\uA688\uA68A\uA68C\uA68E\uA690\uA692\uA694\uA696\uA698\uA69A\uA722\uA724\uA726\uA728\uA72A\uA72C\uA72E\uA732\uA734\uA736\uA738\uA73A\uA73C\uA73E\uA740\uA742\uA744\uA746\uA748\uA74A\uA74C\uA74E\uA750\uA752\uA754\uA756\uA758\uA75A\uA75C\uA75E\uA760\uA762\uA764\uA766\uA768\uA76A\uA76C\uA76E\uA779\uA77B\uA77D\uA77E\uA780\uA782\uA784\uA786\uA78B\uA78D\uA790\uA792\uA796\uA798\uA79A\uA79C\uA79E\uA7A0\uA7A2\uA7A4\uA7A6\uA7A8\uA7AA-\uA7AE\uA7B0-\uA7B4\uA7B6\uA7B8\uA7BA\uA7BC\uA7BE\uA7C0\uA7C2\uA7C4-\uA7C7\uA7C9\uA7D0\uA7D6\uA7D8\uA7F5\uFF21-\uFF3A",
|
|
272
|
-
"astral": "\uD801[\uDC00-\uDC27\uDCB0-\uDCD3\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95]|\uD803[\uDC80-\uDCB2]|\uD806[\uDCA0-\uDCBF]|\uD81B[\uDE40-\uDE5F]|\uD835[\uDC00-\uDC19\uDC34-\uDC4D\uDC68-\uDC81\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB5\uDCD0-\uDCE9\uDD04\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD38\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD6C-\uDD85\uDDA0-\uDDB9\uDDD4-\uDDED\uDE08-\uDE21\uDE3C-\uDE55\uDE70-\uDE89\uDEA8-\uDEC0\uDEE2-\uDEFA\uDF1C-\uDF34\uDF56-\uDF6E\uDF90-\uDFA8\uDFCA]|\uD83A[\uDD00-\uDD21]|\uD83C[\uDD30-\uDD49\uDD50-\uDD69\uDD70-\uDD89]"
|
|
273
|
-
},
|
|
274
|
-
{
|
|
275
|
-
"name": "White_Space",
|
|
276
|
-
"bmp": " -\r \x85\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000"
|
|
277
|
-
}
|
|
278
|
-
];
|
|
279
|
-
}
|
|
280
|
-
});
|
|
281
|
-
|
|
282
|
-
// ../../../node_modules/.pnpm/xregexp@5.1.1/node_modules/xregexp/tools/output/scripts.js
|
|
283
|
-
var require_scripts = __commonJS({
|
|
284
|
-
"../../../node_modules/.pnpm/xregexp@5.1.1/node_modules/xregexp/tools/output/scripts.js"(exports, module) {
|
|
285
|
-
module.exports = [
|
|
286
|
-
{
|
|
287
|
-
"name": "Adlam",
|
|
288
|
-
"astral": "\uD83A[\uDD00-\uDD4B\uDD50-\uDD59\uDD5E\uDD5F]"
|
|
289
|
-
},
|
|
290
|
-
{
|
|
291
|
-
"name": "Ahom",
|
|
292
|
-
"astral": "\uD805[\uDF00-\uDF1A\uDF1D-\uDF2B\uDF30-\uDF46]"
|
|
293
|
-
},
|
|
294
|
-
{
|
|
295
|
-
"name": "Anatolian_Hieroglyphs",
|
|
296
|
-
"astral": "\uD811[\uDC00-\uDE46]"
|
|
297
|
-
},
|
|
298
|
-
{
|
|
299
|
-
"name": "Arabic",
|
|
300
|
-
"bmp": "\u0600-\u0604\u0606-\u060B\u060D-\u061A\u061C-\u061E\u0620-\u063F\u0641-\u064A\u0656-\u066F\u0671-\u06DC\u06DE-\u06FF\u0750-\u077F\u0870-\u088E\u0890\u0891\u0898-\u08E1\u08E3-\u08FF\uFB50-\uFBC2\uFBD3-\uFD3D\uFD40-\uFD8F\uFD92-\uFDC7\uFDCF\uFDF0-\uFDFF\uFE70-\uFE74\uFE76-\uFEFC",
|
|
301
|
-
"astral": "\uD803[\uDE60-\uDE7E]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB\uDEF0\uDEF1]"
|
|
302
|
-
},
|
|
303
|
-
{
|
|
304
|
-
"name": "Armenian",
|
|
305
|
-
"bmp": "\u0531-\u0556\u0559-\u058A\u058D-\u058F\uFB13-\uFB17"
|
|
306
|
-
},
|
|
307
|
-
{
|
|
308
|
-
"name": "Avestan",
|
|
309
|
-
"astral": "\uD802[\uDF00-\uDF35\uDF39-\uDF3F]"
|
|
310
|
-
},
|
|
311
|
-
{
|
|
312
|
-
"name": "Balinese",
|
|
313
|
-
"bmp": "\u1B00-\u1B4C\u1B50-\u1B7E"
|
|
314
|
-
},
|
|
315
|
-
{
|
|
316
|
-
"name": "Bamum",
|
|
317
|
-
"bmp": "\uA6A0-\uA6F7",
|
|
318
|
-
"astral": "\uD81A[\uDC00-\uDE38]"
|
|
319
|
-
},
|
|
320
|
-
{
|
|
321
|
-
"name": "Bassa_Vah",
|
|
322
|
-
"astral": "\uD81A[\uDED0-\uDEED\uDEF0-\uDEF5]"
|
|
323
|
-
},
|
|
324
|
-
{
|
|
325
|
-
"name": "Batak",
|
|
326
|
-
"bmp": "\u1BC0-\u1BF3\u1BFC-\u1BFF"
|
|
327
|
-
},
|
|
328
|
-
{
|
|
329
|
-
"name": "Bengali",
|
|
330
|
-
"bmp": "\u0980-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09FE"
|
|
331
|
-
},
|
|
332
|
-
{
|
|
333
|
-
"name": "Bhaiksuki",
|
|
334
|
-
"astral": "\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC45\uDC50-\uDC6C]"
|
|
335
|
-
},
|
|
336
|
-
{
|
|
337
|
-
"name": "Bopomofo",
|
|
338
|
-
"bmp": "\u02EA\u02EB\u3105-\u312F\u31A0-\u31BF"
|
|
339
|
-
},
|
|
340
|
-
{
|
|
341
|
-
"name": "Brahmi",
|
|
342
|
-
"astral": "\uD804[\uDC00-\uDC4D\uDC52-\uDC75\uDC7F]"
|
|
343
|
-
},
|
|
344
|
-
{
|
|
345
|
-
"name": "Braille",
|
|
346
|
-
"bmp": "\u2800-\u28FF"
|
|
347
|
-
},
|
|
348
|
-
{
|
|
349
|
-
"name": "Buginese",
|
|
350
|
-
"bmp": "\u1A00-\u1A1B\u1A1E\u1A1F"
|
|
351
|
-
},
|
|
352
|
-
{
|
|
353
|
-
"name": "Buhid",
|
|
354
|
-
"bmp": "\u1740-\u1753"
|
|
355
|
-
},
|
|
356
|
-
{
|
|
357
|
-
"name": "Canadian_Aboriginal",
|
|
358
|
-
"bmp": "\u1400-\u167F\u18B0-\u18F5",
|
|
359
|
-
"astral": "\uD806[\uDEB0-\uDEBF]"
|
|
360
|
-
},
|
|
361
|
-
{
|
|
362
|
-
"name": "Carian",
|
|
363
|
-
"astral": "\uD800[\uDEA0-\uDED0]"
|
|
364
|
-
},
|
|
365
|
-
{
|
|
366
|
-
"name": "Caucasian_Albanian",
|
|
367
|
-
"astral": "\uD801[\uDD30-\uDD63\uDD6F]"
|
|
368
|
-
},
|
|
369
|
-
{
|
|
370
|
-
"name": "Chakma",
|
|
371
|
-
"astral": "\uD804[\uDD00-\uDD34\uDD36-\uDD47]"
|
|
372
|
-
},
|
|
373
|
-
{
|
|
374
|
-
"name": "Cham",
|
|
375
|
-
"bmp": "\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA5C-\uAA5F"
|
|
376
|
-
},
|
|
377
|
-
{
|
|
378
|
-
"name": "Cherokee",
|
|
379
|
-
"bmp": "\u13A0-\u13F5\u13F8-\u13FD\uAB70-\uABBF"
|
|
380
|
-
},
|
|
381
|
-
{
|
|
382
|
-
"name": "Chorasmian",
|
|
383
|
-
"astral": "\uD803[\uDFB0-\uDFCB]"
|
|
384
|
-
},
|
|
385
|
-
{
|
|
386
|
-
"name": "Common",
|
|
387
|
-
"bmp": "\0-@\\[-`\\{-\xA9\xAB-\xB9\xBB-\xBF\xD7\xF7\u02B9-\u02DF\u02E5-\u02E9\u02EC-\u02FF\u0374\u037E\u0385\u0387\u0605\u060C\u061B\u061F\u0640\u06DD\u08E2\u0964\u0965\u0E3F\u0FD5-\u0FD8\u10FB\u16EB-\u16ED\u1735\u1736\u1802\u1803\u1805\u1CD3\u1CE1\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5-\u1CF7\u1CFA\u2000-\u200B\u200E-\u2064\u2066-\u2070\u2074-\u207E\u2080-\u208E\u20A0-\u20C0\u2100-\u2125\u2127-\u2129\u212C-\u2131\u2133-\u214D\u214F-\u215F\u2189-\u218B\u2190-\u2426\u2440-\u244A\u2460-\u27FF\u2900-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2E00-\u2E5D\u2FF0-\u2FFB\u3000-\u3004\u3006\u3008-\u3020\u3030-\u3037\u303C-\u303F\u309B\u309C\u30A0\u30FB\u30FC\u3190-\u319F\u31C0-\u31E3\u3220-\u325F\u327F-\u32CF\u32FF\u3358-\u33FF\u4DC0-\u4DFF\uA700-\uA721\uA788-\uA78A\uA830-\uA839\uA92E\uA9CF\uAB5B\uAB6A\uAB6B\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFEFF\uFF01-\uFF20\uFF3B-\uFF40\uFF5B-\uFF65\uFF70\uFF9E\uFF9F\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFF9-\uFFFD",
|
|
388
|
-
"astral": "\uD800[\uDD00-\uDD02\uDD07-\uDD33\uDD37-\uDD3F\uDD90-\uDD9C\uDDD0-\uDDFC\uDEE1-\uDEFB]|\uD82F[\uDCA0-\uDCA3]|\uD833[\uDF50-\uDFC3]|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD66\uDD6A-\uDD7A\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDEA\uDEE0-\uDEF3\uDF00-\uDF56\uDF60-\uDF78]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDFCB\uDFCE-\uDFFF]|\uD83B[\uDC71-\uDCB4\uDD01-\uDD3D]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD00-\uDDAD\uDDE6-\uDDFF\uDE01\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED7\uDEDD-\uDEEC\uDEF0-\uDEFC\uDF00-\uDF73\uDF80-\uDFD8\uDFE0-\uDFEB\uDFF0]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0\uDCB1\uDD00-\uDE53\uDE60-\uDE6D\uDE70-\uDE74\uDE78-\uDE7C\uDE80-\uDE86\uDE90-\uDEAC\uDEB0-\uDEBA\uDEC0-\uDEC5\uDED0-\uDED9\uDEE0-\uDEE7\uDEF0-\uDEF6\uDF00-\uDF92\uDF94-\uDFCA\uDFF0-\uDFF9]|\uDB40[\uDC01\uDC20-\uDC7F]"
|
|
389
|
-
},
|
|
390
|
-
{
|
|
391
|
-
"name": "Coptic",
|
|
392
|
-
"bmp": "\u03E2-\u03EF\u2C80-\u2CF3\u2CF9-\u2CFF"
|
|
393
|
-
},
|
|
394
|
-
{
|
|
395
|
-
"name": "Cuneiform",
|
|
396
|
-
"astral": "\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC70-\uDC74\uDC80-\uDD43]"
|
|
397
|
-
},
|
|
398
|
-
{
|
|
399
|
-
"name": "Cypriot",
|
|
400
|
-
"astral": "\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F]"
|
|
401
|
-
},
|
|
402
|
-
{
|
|
403
|
-
"name": "Cypro_Minoan",
|
|
404
|
-
"astral": "\uD80B[\uDF90-\uDFF2]"
|
|
405
|
-
},
|
|
406
|
-
{
|
|
407
|
-
"name": "Cyrillic",
|
|
408
|
-
"bmp": "\u0400-\u0484\u0487-\u052F\u1C80-\u1C88\u1D2B\u1D78\u2DE0-\u2DFF\uA640-\uA69F\uFE2E\uFE2F"
|
|
409
|
-
},
|
|
410
|
-
{
|
|
411
|
-
"name": "Deseret",
|
|
412
|
-
"astral": "\uD801[\uDC00-\uDC4F]"
|
|
413
|
-
},
|
|
414
|
-
{
|
|
415
|
-
"name": "Devanagari",
|
|
416
|
-
"bmp": "\u0900-\u0950\u0955-\u0963\u0966-\u097F\uA8E0-\uA8FF"
|
|
417
|
-
},
|
|
418
|
-
{
|
|
419
|
-
"name": "Dives_Akuru",
|
|
420
|
-
"astral": "\uD806[\uDD00-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD35\uDD37\uDD38\uDD3B-\uDD46\uDD50-\uDD59]"
|
|
421
|
-
},
|
|
422
|
-
{
|
|
423
|
-
"name": "Dogra",
|
|
424
|
-
"astral": "\uD806[\uDC00-\uDC3B]"
|
|
425
|
-
},
|
|
426
|
-
{
|
|
427
|
-
"name": "Duployan",
|
|
428
|
-
"astral": "\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9C-\uDC9F]"
|
|
429
|
-
},
|
|
430
|
-
{
|
|
431
|
-
"name": "Egyptian_Hieroglyphs",
|
|
432
|
-
"astral": "\uD80C[\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E\uDC30-\uDC38]"
|
|
433
|
-
},
|
|
434
|
-
{
|
|
435
|
-
"name": "Elbasan",
|
|
436
|
-
"astral": "\uD801[\uDD00-\uDD27]"
|
|
437
|
-
},
|
|
438
|
-
{
|
|
439
|
-
"name": "Elymaic",
|
|
440
|
-
"astral": "\uD803[\uDFE0-\uDFF6]"
|
|
441
|
-
},
|
|
442
|
-
{
|
|
443
|
-
"name": "Ethiopic",
|
|
444
|
-
"bmp": "\u1200-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u137C\u1380-\u1399\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E",
|
|
445
|
-
"astral": "\uD839[\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]"
|
|
446
|
-
},
|
|
447
|
-
{
|
|
448
|
-
"name": "Georgian",
|
|
449
|
-
"bmp": "\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u10FF\u1C90-\u1CBA\u1CBD-\u1CBF\u2D00-\u2D25\u2D27\u2D2D"
|
|
450
|
-
},
|
|
451
|
-
{
|
|
452
|
-
"name": "Glagolitic",
|
|
453
|
-
"bmp": "\u2C00-\u2C5F",
|
|
454
|
-
"astral": "\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]"
|
|
455
|
-
},
|
|
456
|
-
{
|
|
457
|
-
"name": "Gothic",
|
|
458
|
-
"astral": "\uD800[\uDF30-\uDF4A]"
|
|
459
|
-
},
|
|
460
|
-
{
|
|
461
|
-
"name": "Grantha",
|
|
462
|
-
"astral": "\uD804[\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]"
|
|
463
|
-
},
|
|
464
|
-
{
|
|
465
|
-
"name": "Greek",
|
|
466
|
-
"bmp": "\u0370-\u0373\u0375-\u0377\u037A-\u037D\u037F\u0384\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03E1\u03F0-\u03FF\u1D26-\u1D2A\u1D5D-\u1D61\u1D66-\u1D6A\u1DBF\u1F00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FC4\u1FC6-\u1FD3\u1FD6-\u1FDB\u1FDD-\u1FEF\u1FF2-\u1FF4\u1FF6-\u1FFE\u2126\uAB65",
|
|
467
|
-
"astral": "\uD800[\uDD40-\uDD8E\uDDA0]|\uD834[\uDE00-\uDE45]"
|
|
468
|
-
},
|
|
469
|
-
{
|
|
470
|
-
"name": "Gujarati",
|
|
471
|
-
"bmp": "\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AF1\u0AF9-\u0AFF"
|
|
472
|
-
},
|
|
473
|
-
{
|
|
474
|
-
"name": "Gunjala_Gondi",
|
|
475
|
-
"astral": "\uD807[\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD8E\uDD90\uDD91\uDD93-\uDD98\uDDA0-\uDDA9]"
|
|
476
|
-
},
|
|
477
|
-
{
|
|
478
|
-
"name": "Gurmukhi",
|
|
479
|
-
"bmp": "\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A76"
|
|
480
|
-
},
|
|
481
|
-
{
|
|
482
|
-
"name": "Han",
|
|
483
|
-
"bmp": "\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u3005\u3007\u3021-\u3029\u3038-\u303B\u3400-\u4DBF\u4E00-\u9FFF\uF900-\uFA6D\uFA70-\uFAD9",
|
|
484
|
-
"astral": "\uD81B[\uDFE2\uDFE3\uDFF0\uDFF1]|[\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF38\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A]"
|
|
485
|
-
},
|
|
486
|
-
{
|
|
487
|
-
"name": "Hangul",
|
|
488
|
-
"bmp": "\u1100-\u11FF\u302E\u302F\u3131-\u318E\u3200-\u321E\u3260-\u327E\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uFFA0-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC"
|
|
489
|
-
},
|
|
490
|
-
{
|
|
491
|
-
"name": "Hanifi_Rohingya",
|
|
492
|
-
"astral": "\uD803[\uDD00-\uDD27\uDD30-\uDD39]"
|
|
493
|
-
},
|
|
494
|
-
{
|
|
495
|
-
"name": "Hanunoo",
|
|
496
|
-
"bmp": "\u1720-\u1734"
|
|
497
|
-
},
|
|
498
|
-
{
|
|
499
|
-
"name": "Hatran",
|
|
500
|
-
"astral": "\uD802[\uDCE0-\uDCF2\uDCF4\uDCF5\uDCFB-\uDCFF]"
|
|
501
|
-
},
|
|
502
|
-
{
|
|
503
|
-
"name": "Hebrew",
|
|
504
|
-
"bmp": "\u0591-\u05C7\u05D0-\u05EA\u05EF-\u05F4\uFB1D-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFB4F"
|
|
505
|
-
},
|
|
506
|
-
{
|
|
507
|
-
"name": "Hiragana",
|
|
508
|
-
"bmp": "\u3041-\u3096\u309D-\u309F",
|
|
509
|
-
"astral": "\uD82C[\uDC01-\uDD1F\uDD50-\uDD52]|\u{1F200}"
|
|
510
|
-
},
|
|
511
|
-
{
|
|
512
|
-
"name": "Imperial_Aramaic",
|
|
513
|
-
"astral": "\uD802[\uDC40-\uDC55\uDC57-\uDC5F]"
|
|
514
|
-
},
|
|
515
|
-
{
|
|
516
|
-
"name": "Inherited",
|
|
517
|
-
"bmp": "\u0300-\u036F\u0485\u0486\u064B-\u0655\u0670\u0951-\u0954\u1AB0-\u1ACE\u1CD0-\u1CD2\u1CD4-\u1CE0\u1CE2-\u1CE8\u1CED\u1CF4\u1CF8\u1CF9\u1DC0-\u1DFF\u200C\u200D\u20D0-\u20F0\u302A-\u302D\u3099\u309A\uFE00-\uFE0F\uFE20-\uFE2D",
|
|
518
|
-
"astral": "\uD800[\uDDFD\uDEE0]|\u{1133B}|\uD833[\uDF00-\uDF2D\uDF30-\uDF46]|\uD834[\uDD67-\uDD69\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD]|\uDB40[\uDD00-\uDDEF]"
|
|
519
|
-
},
|
|
520
|
-
{
|
|
521
|
-
"name": "Inscriptional_Pahlavi",
|
|
522
|
-
"astral": "\uD802[\uDF60-\uDF72\uDF78-\uDF7F]"
|
|
523
|
-
},
|
|
524
|
-
{
|
|
525
|
-
"name": "Inscriptional_Parthian",
|
|
526
|
-
"astral": "\uD802[\uDF40-\uDF55\uDF58-\uDF5F]"
|
|
527
|
-
},
|
|
528
|
-
{
|
|
529
|
-
"name": "Javanese",
|
|
530
|
-
"bmp": "\uA980-\uA9CD\uA9D0-\uA9D9\uA9DE\uA9DF"
|
|
531
|
-
},
|
|
532
|
-
{
|
|
533
|
-
"name": "Kaithi",
|
|
534
|
-
"astral": "\uD804[\uDC80-\uDCC2\uDCCD]"
|
|
535
|
-
},
|
|
536
|
-
{
|
|
537
|
-
"name": "Kannada",
|
|
538
|
-
"bmp": "\u0C80-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDD\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2"
|
|
539
|
-
},
|
|
540
|
-
{
|
|
541
|
-
"name": "Katakana",
|
|
542
|
-
"bmp": "\u30A1-\u30FA\u30FD-\u30FF\u31F0-\u31FF\u32D0-\u32FE\u3300-\u3357\uFF66-\uFF6F\uFF71-\uFF9D",
|
|
543
|
-
"astral": "\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00\uDD20-\uDD22\uDD64-\uDD67]"
|
|
544
|
-
},
|
|
545
|
-
{
|
|
546
|
-
"name": "Kayah_Li",
|
|
547
|
-
"bmp": "\uA900-\uA92D\uA92F"
|
|
548
|
-
},
|
|
549
|
-
{
|
|
550
|
-
"name": "Kharoshthi",
|
|
551
|
-
"astral": "\uD802[\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE38-\uDE3A\uDE3F-\uDE48\uDE50-\uDE58]"
|
|
552
|
-
},
|
|
553
|
-
{
|
|
554
|
-
"name": "Khitan_Small_Script",
|
|
555
|
-
"astral": "\u{16FE4}|\uD822[\uDF00-\uDFFF]|\uD823[\uDC00-\uDCD5]"
|
|
556
|
-
},
|
|
557
|
-
{
|
|
558
|
-
"name": "Khmer",
|
|
559
|
-
"bmp": "\u1780-\u17DD\u17E0-\u17E9\u17F0-\u17F9\u19E0-\u19FF"
|
|
560
|
-
},
|
|
561
|
-
{
|
|
562
|
-
"name": "Khojki",
|
|
563
|
-
"astral": "\uD804[\uDE00-\uDE11\uDE13-\uDE3E]"
|
|
564
|
-
},
|
|
565
|
-
{
|
|
566
|
-
"name": "Khudawadi",
|
|
567
|
-
"astral": "\uD804[\uDEB0-\uDEEA\uDEF0-\uDEF9]"
|
|
568
|
-
},
|
|
569
|
-
{
|
|
570
|
-
"name": "Lao",
|
|
571
|
-
"bmp": "\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF"
|
|
572
|
-
},
|
|
573
|
-
{
|
|
574
|
-
"name": "Latin",
|
|
575
|
-
"bmp": "A-Za-z\xAA\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02E0-\u02E4\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2071\u207F\u2090-\u209C\u212A\u212B\u2132\u214E\u2160-\u2188\u2C60-\u2C7F\uA722-\uA787\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA7FF\uAB30-\uAB5A\uAB5C-\uAB64\uAB66-\uAB69\uFB00-\uFB06\uFF21-\uFF3A\uFF41-\uFF5A",
|
|
576
|
-
"astral": "\uD801[\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD837[\uDF00-\uDF1E]"
|
|
577
|
-
},
|
|
578
|
-
{
|
|
579
|
-
"name": "Lepcha",
|
|
580
|
-
"bmp": "\u1C00-\u1C37\u1C3B-\u1C49\u1C4D-\u1C4F"
|
|
581
|
-
},
|
|
582
|
-
{
|
|
583
|
-
"name": "Limbu",
|
|
584
|
-
"bmp": "\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1940\u1944-\u194F"
|
|
585
|
-
},
|
|
586
|
-
{
|
|
587
|
-
"name": "Linear_A",
|
|
588
|
-
"astral": "\uD801[\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]"
|
|
589
|
-
},
|
|
590
|
-
{
|
|
591
|
-
"name": "Linear_B",
|
|
592
|
-
"astral": "\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA]"
|
|
593
|
-
},
|
|
594
|
-
{
|
|
595
|
-
"name": "Lisu",
|
|
596
|
-
"bmp": "\uA4D0-\uA4FF",
|
|
597
|
-
"astral": "\u{11FB0}"
|
|
598
|
-
},
|
|
599
|
-
{
|
|
600
|
-
"name": "Lycian",
|
|
601
|
-
"astral": "\uD800[\uDE80-\uDE9C]"
|
|
602
|
-
},
|
|
603
|
-
{
|
|
604
|
-
"name": "Lydian",
|
|
605
|
-
"astral": "\uD802[\uDD20-\uDD39\uDD3F]"
|
|
606
|
-
},
|
|
607
|
-
{
|
|
608
|
-
"name": "Mahajani",
|
|
609
|
-
"astral": "\uD804[\uDD50-\uDD76]"
|
|
610
|
-
},
|
|
611
|
-
{
|
|
612
|
-
"name": "Makasar",
|
|
613
|
-
"astral": "\uD807[\uDEE0-\uDEF8]"
|
|
614
|
-
},
|
|
615
|
-
{
|
|
616
|
-
"name": "Malayalam",
|
|
617
|
-
"bmp": "\u0D00-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4F\u0D54-\u0D63\u0D66-\u0D7F"
|
|
618
|
-
},
|
|
619
|
-
{
|
|
620
|
-
"name": "Mandaic",
|
|
621
|
-
"bmp": "\u0840-\u085B\u085E"
|
|
622
|
-
},
|
|
623
|
-
{
|
|
624
|
-
"name": "Manichaean",
|
|
625
|
-
"astral": "\uD802[\uDEC0-\uDEE6\uDEEB-\uDEF6]"
|
|
626
|
-
},
|
|
627
|
-
{
|
|
628
|
-
"name": "Marchen",
|
|
629
|
-
"astral": "\uD807[\uDC70-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6]"
|
|
630
|
-
},
|
|
631
|
-
{
|
|
632
|
-
"name": "Masaram_Gondi",
|
|
633
|
-
"astral": "\uD807[\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59]"
|
|
634
|
-
},
|
|
635
|
-
{
|
|
636
|
-
"name": "Medefaidrin",
|
|
637
|
-
"astral": "\uD81B[\uDE40-\uDE9A]"
|
|
638
|
-
},
|
|
639
|
-
{
|
|
640
|
-
"name": "Meetei_Mayek",
|
|
641
|
-
"bmp": "\uAAE0-\uAAF6\uABC0-\uABED\uABF0-\uABF9"
|
|
642
|
-
},
|
|
643
|
-
{
|
|
644
|
-
"name": "Mende_Kikakui",
|
|
645
|
-
"astral": "\uD83A[\uDC00-\uDCC4\uDCC7-\uDCD6]"
|
|
646
|
-
},
|
|
647
|
-
{
|
|
648
|
-
"name": "Meroitic_Cursive",
|
|
649
|
-
"astral": "\uD802[\uDDA0-\uDDB7\uDDBC-\uDDCF\uDDD2-\uDDFF]"
|
|
650
|
-
},
|
|
651
|
-
{
|
|
652
|
-
"name": "Meroitic_Hieroglyphs",
|
|
653
|
-
"astral": "\uD802[\uDD80-\uDD9F]"
|
|
654
|
-
},
|
|
655
|
-
{
|
|
656
|
-
"name": "Miao",
|
|
657
|
-
"astral": "\uD81B[\uDF00-\uDF4A\uDF4F-\uDF87\uDF8F-\uDF9F]"
|
|
658
|
-
},
|
|
659
|
-
{
|
|
660
|
-
"name": "Modi",
|
|
661
|
-
"astral": "\uD805[\uDE00-\uDE44\uDE50-\uDE59]"
|
|
662
|
-
},
|
|
663
|
-
{
|
|
664
|
-
"name": "Mongolian",
|
|
665
|
-
"bmp": "\u1800\u1801\u1804\u1806-\u1819\u1820-\u1878\u1880-\u18AA",
|
|
666
|
-
"astral": "\uD805[\uDE60-\uDE6C]"
|
|
667
|
-
},
|
|
668
|
-
{
|
|
669
|
-
"name": "Mro",
|
|
670
|
-
"astral": "\uD81A[\uDE40-\uDE5E\uDE60-\uDE69\uDE6E\uDE6F]"
|
|
671
|
-
},
|
|
672
|
-
{
|
|
673
|
-
"name": "Multani",
|
|
674
|
-
"astral": "\uD804[\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA9]"
|
|
675
|
-
},
|
|
676
|
-
{
|
|
677
|
-
"name": "Myanmar",
|
|
678
|
-
"bmp": "\u1000-\u109F\uA9E0-\uA9FE\uAA60-\uAA7F"
|
|
679
|
-
},
|
|
680
|
-
{
|
|
681
|
-
"name": "Nabataean",
|
|
682
|
-
"astral": "\uD802[\uDC80-\uDC9E\uDCA7-\uDCAF]"
|
|
683
|
-
},
|
|
684
|
-
{
|
|
685
|
-
"name": "Nandinagari",
|
|
686
|
-
"astral": "\uD806[\uDDA0-\uDDA7\uDDAA-\uDDD7\uDDDA-\uDDE4]"
|
|
687
|
-
},
|
|
688
|
-
{
|
|
689
|
-
"name": "New_Tai_Lue",
|
|
690
|
-
"bmp": "\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u19DE\u19DF"
|
|
691
|
-
},
|
|
692
|
-
{
|
|
693
|
-
"name": "Newa",
|
|
694
|
-
"astral": "\uD805[\uDC00-\uDC5B\uDC5D-\uDC61]"
|
|
695
|
-
},
|
|
696
|
-
{
|
|
697
|
-
"name": "Nko",
|
|
698
|
-
"bmp": "\u07C0-\u07FA\u07FD-\u07FF"
|
|
699
|
-
},
|
|
700
|
-
{
|
|
701
|
-
"name": "Nushu",
|
|
702
|
-
"astral": "\u{16FE1}|\uD82C[\uDD70-\uDEFB]"
|
|
703
|
-
},
|
|
704
|
-
{
|
|
705
|
-
"name": "Nyiakeng_Puachue_Hmong",
|
|
706
|
-
"astral": "\uD838[\uDD00-\uDD2C\uDD30-\uDD3D\uDD40-\uDD49\uDD4E\uDD4F]"
|
|
707
|
-
},
|
|
708
|
-
{
|
|
709
|
-
"name": "Ogham",
|
|
710
|
-
"bmp": "\u1680-\u169C"
|
|
711
|
-
},
|
|
712
|
-
{
|
|
713
|
-
"name": "Ol_Chiki",
|
|
714
|
-
"bmp": "\u1C50-\u1C7F"
|
|
715
|
-
},
|
|
716
|
-
{
|
|
717
|
-
"name": "Old_Hungarian",
|
|
718
|
-
"astral": "\uD803[\uDC80-\uDCB2\uDCC0-\uDCF2\uDCFA-\uDCFF]"
|
|
719
|
-
},
|
|
720
|
-
{
|
|
721
|
-
"name": "Old_Italic",
|
|
722
|
-
"astral": "\uD800[\uDF00-\uDF23\uDF2D-\uDF2F]"
|
|
723
|
-
},
|
|
724
|
-
{
|
|
725
|
-
"name": "Old_North_Arabian",
|
|
726
|
-
"astral": "\uD802[\uDE80-\uDE9F]"
|
|
727
|
-
},
|
|
728
|
-
{
|
|
729
|
-
"name": "Old_Permic",
|
|
730
|
-
"astral": "\uD800[\uDF50-\uDF7A]"
|
|
731
|
-
},
|
|
732
|
-
{
|
|
733
|
-
"name": "Old_Persian",
|
|
734
|
-
"astral": "\uD800[\uDFA0-\uDFC3\uDFC8-\uDFD5]"
|
|
735
|
-
},
|
|
736
|
-
{
|
|
737
|
-
"name": "Old_Sogdian",
|
|
738
|
-
"astral": "\uD803[\uDF00-\uDF27]"
|
|
739
|
-
},
|
|
740
|
-
{
|
|
741
|
-
"name": "Old_South_Arabian",
|
|
742
|
-
"astral": "\uD802[\uDE60-\uDE7F]"
|
|
743
|
-
},
|
|
744
|
-
{
|
|
745
|
-
"name": "Old_Turkic",
|
|
746
|
-
"astral": "\uD803[\uDC00-\uDC48]"
|
|
747
|
-
},
|
|
748
|
-
{
|
|
749
|
-
"name": "Old_Uyghur",
|
|
750
|
-
"astral": "\uD803[\uDF70-\uDF89]"
|
|
751
|
-
},
|
|
752
|
-
{
|
|
753
|
-
"name": "Oriya",
|
|
754
|
-
"bmp": "\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B77"
|
|
755
|
-
},
|
|
756
|
-
{
|
|
757
|
-
"name": "Osage",
|
|
758
|
-
"astral": "\uD801[\uDCB0-\uDCD3\uDCD8-\uDCFB]"
|
|
759
|
-
},
|
|
760
|
-
{
|
|
761
|
-
"name": "Osmanya",
|
|
762
|
-
"astral": "\uD801[\uDC80-\uDC9D\uDCA0-\uDCA9]"
|
|
763
|
-
},
|
|
764
|
-
{
|
|
765
|
-
"name": "Pahawh_Hmong",
|
|
766
|
-
"astral": "\uD81A[\uDF00-\uDF45\uDF50-\uDF59\uDF5B-\uDF61\uDF63-\uDF77\uDF7D-\uDF8F]"
|
|
767
|
-
},
|
|
768
|
-
{
|
|
769
|
-
"name": "Palmyrene",
|
|
770
|
-
"astral": "\uD802[\uDC60-\uDC7F]"
|
|
771
|
-
},
|
|
772
|
-
{
|
|
773
|
-
"name": "Pau_Cin_Hau",
|
|
774
|
-
"astral": "\uD806[\uDEC0-\uDEF8]"
|
|
775
|
-
},
|
|
776
|
-
{
|
|
777
|
-
"name": "Phags_Pa",
|
|
778
|
-
"bmp": "\uA840-\uA877"
|
|
779
|
-
},
|
|
780
|
-
{
|
|
781
|
-
"name": "Phoenician",
|
|
782
|
-
"astral": "\uD802[\uDD00-\uDD1B\uDD1F]"
|
|
783
|
-
},
|
|
784
|
-
{
|
|
785
|
-
"name": "Psalter_Pahlavi",
|
|
786
|
-
"astral": "\uD802[\uDF80-\uDF91\uDF99-\uDF9C\uDFA9-\uDFAF]"
|
|
787
|
-
},
|
|
788
|
-
{
|
|
789
|
-
"name": "Rejang",
|
|
790
|
-
"bmp": "\uA930-\uA953\uA95F"
|
|
791
|
-
},
|
|
792
|
-
{
|
|
793
|
-
"name": "Runic",
|
|
794
|
-
"bmp": "\u16A0-\u16EA\u16EE-\u16F8"
|
|
795
|
-
},
|
|
796
|
-
{
|
|
797
|
-
"name": "Samaritan",
|
|
798
|
-
"bmp": "\u0800-\u082D\u0830-\u083E"
|
|
799
|
-
},
|
|
800
|
-
{
|
|
801
|
-
"name": "Saurashtra",
|
|
802
|
-
"bmp": "\uA880-\uA8C5\uA8CE-\uA8D9"
|
|
803
|
-
},
|
|
804
|
-
{
|
|
805
|
-
"name": "Sharada",
|
|
806
|
-
"astral": "\uD804[\uDD80-\uDDDF]"
|
|
807
|
-
},
|
|
808
|
-
{
|
|
809
|
-
"name": "Shavian",
|
|
810
|
-
"astral": "\uD801[\uDC50-\uDC7F]"
|
|
811
|
-
},
|
|
812
|
-
{
|
|
813
|
-
"name": "Siddham",
|
|
814
|
-
"astral": "\uD805[\uDD80-\uDDB5\uDDB8-\uDDDD]"
|
|
815
|
-
},
|
|
816
|
-
{
|
|
817
|
-
"name": "SignWriting",
|
|
818
|
-
"astral": "\uD836[\uDC00-\uDE8B\uDE9B-\uDE9F\uDEA1-\uDEAF]"
|
|
819
|
-
},
|
|
820
|
-
{
|
|
821
|
-
"name": "Sinhala",
|
|
822
|
-
"bmp": "\u0D81-\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2-\u0DF4",
|
|
823
|
-
"astral": "\uD804[\uDDE1-\uDDF4]"
|
|
824
|
-
},
|
|
825
|
-
{
|
|
826
|
-
"name": "Sogdian",
|
|
827
|
-
"astral": "\uD803[\uDF30-\uDF59]"
|
|
828
|
-
},
|
|
829
|
-
{
|
|
830
|
-
"name": "Sora_Sompeng",
|
|
831
|
-
"astral": "\uD804[\uDCD0-\uDCE8\uDCF0-\uDCF9]"
|
|
832
|
-
},
|
|
833
|
-
{
|
|
834
|
-
"name": "Soyombo",
|
|
835
|
-
"astral": "\uD806[\uDE50-\uDEA2]"
|
|
836
|
-
},
|
|
837
|
-
{
|
|
838
|
-
"name": "Sundanese",
|
|
839
|
-
"bmp": "\u1B80-\u1BBF\u1CC0-\u1CC7"
|
|
840
|
-
},
|
|
841
|
-
{
|
|
842
|
-
"name": "Syloti_Nagri",
|
|
843
|
-
"bmp": "\uA800-\uA82C"
|
|
844
|
-
},
|
|
845
|
-
{
|
|
846
|
-
"name": "Syriac",
|
|
847
|
-
"bmp": "\u0700-\u070D\u070F-\u074A\u074D-\u074F\u0860-\u086A"
|
|
848
|
-
},
|
|
849
|
-
{
|
|
850
|
-
"name": "Tagalog",
|
|
851
|
-
"bmp": "\u1700-\u1715\u171F"
|
|
852
|
-
},
|
|
853
|
-
{
|
|
854
|
-
"name": "Tagbanwa",
|
|
855
|
-
"bmp": "\u1760-\u176C\u176E-\u1770\u1772\u1773"
|
|
856
|
-
},
|
|
857
|
-
{
|
|
858
|
-
"name": "Tai_Le",
|
|
859
|
-
"bmp": "\u1950-\u196D\u1970-\u1974"
|
|
860
|
-
},
|
|
861
|
-
{
|
|
862
|
-
"name": "Tai_Tham",
|
|
863
|
-
"bmp": "\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA0-\u1AAD"
|
|
864
|
-
},
|
|
865
|
-
{
|
|
866
|
-
"name": "Tai_Viet",
|
|
867
|
-
"bmp": "\uAA80-\uAAC2\uAADB-\uAADF"
|
|
868
|
-
},
|
|
869
|
-
{
|
|
870
|
-
"name": "Takri",
|
|
871
|
-
"astral": "\uD805[\uDE80-\uDEB9\uDEC0-\uDEC9]"
|
|
872
|
-
},
|
|
873
|
-
{
|
|
874
|
-
"name": "Tamil",
|
|
875
|
-
"bmp": "\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BFA",
|
|
876
|
-
"astral": "\uD807[\uDFC0-\uDFF1\uDFFF]"
|
|
877
|
-
},
|
|
878
|
-
{
|
|
879
|
-
"name": "Tangsa",
|
|
880
|
-
"astral": "\uD81A[\uDE70-\uDEBE\uDEC0-\uDEC9]"
|
|
881
|
-
},
|
|
882
|
-
{
|
|
883
|
-
"name": "Tangut",
|
|
884
|
-
"astral": "\u{16FE0}|[\uD81C-\uD820][\uDC00-\uDFFF]|\uD821[\uDC00-\uDFF7]|\uD822[\uDC00-\uDEFF]|\uD823[\uDD00-\uDD08]"
|
|
885
|
-
},
|
|
886
|
-
{
|
|
887
|
-
"name": "Telugu",
|
|
888
|
-
"bmp": "\u0C00-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3C-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C5D\u0C60-\u0C63\u0C66-\u0C6F\u0C77-\u0C7F"
|
|
889
|
-
},
|
|
890
|
-
{
|
|
891
|
-
"name": "Thaana",
|
|
892
|
-
"bmp": "\u0780-\u07B1"
|
|
893
|
-
},
|
|
894
|
-
{
|
|
895
|
-
"name": "Thai",
|
|
896
|
-
"bmp": "\u0E01-\u0E3A\u0E40-\u0E5B"
|
|
897
|
-
},
|
|
898
|
-
{
|
|
899
|
-
"name": "Tibetan",
|
|
900
|
-
"bmp": "\u0F00-\u0F47\u0F49-\u0F6C\u0F71-\u0F97\u0F99-\u0FBC\u0FBE-\u0FCC\u0FCE-\u0FD4\u0FD9\u0FDA"
|
|
901
|
-
},
|
|
902
|
-
{
|
|
903
|
-
"name": "Tifinagh",
|
|
904
|
-
"bmp": "\u2D30-\u2D67\u2D6F\u2D70\u2D7F"
|
|
905
|
-
},
|
|
906
|
-
{
|
|
907
|
-
"name": "Tirhuta",
|
|
908
|
-
"astral": "\uD805[\uDC80-\uDCC7\uDCD0-\uDCD9]"
|
|
909
|
-
},
|
|
910
|
-
{
|
|
911
|
-
"name": "Toto",
|
|
912
|
-
"astral": "\uD838[\uDE90-\uDEAE]"
|
|
913
|
-
},
|
|
914
|
-
{
|
|
915
|
-
"name": "Ugaritic",
|
|
916
|
-
"astral": "\uD800[\uDF80-\uDF9D\uDF9F]"
|
|
917
|
-
},
|
|
918
|
-
{
|
|
919
|
-
"name": "Vai",
|
|
920
|
-
"bmp": "\uA500-\uA62B"
|
|
921
|
-
},
|
|
922
|
-
{
|
|
923
|
-
"name": "Vithkuqi",
|
|
924
|
-
"astral": "\uD801[\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC]"
|
|
925
|
-
},
|
|
926
|
-
{
|
|
927
|
-
"name": "Wancho",
|
|
928
|
-
"astral": "\uD838[\uDEC0-\uDEF9\uDEFF]"
|
|
929
|
-
},
|
|
930
|
-
{
|
|
931
|
-
"name": "Warang_Citi",
|
|
932
|
-
"astral": "\uD806[\uDCA0-\uDCF2\uDCFF]"
|
|
933
|
-
},
|
|
934
|
-
{
|
|
935
|
-
"name": "Yezidi",
|
|
936
|
-
"astral": "\uD803[\uDE80-\uDEA9\uDEAB-\uDEAD\uDEB0\uDEB1]"
|
|
937
|
-
},
|
|
938
|
-
{
|
|
939
|
-
"name": "Yi",
|
|
940
|
-
"bmp": "\uA000-\uA48C\uA490-\uA4C6"
|
|
941
|
-
},
|
|
942
|
-
{
|
|
943
|
-
"name": "Zanabazar_Square",
|
|
944
|
-
"astral": "\uD806[\uDE00-\uDE47]"
|
|
945
|
-
}
|
|
946
|
-
];
|
|
947
|
-
}
|
|
948
|
-
});
|
|
949
|
-
|
|
950
|
-
// ../../../node_modules/.pnpm/xregexp@5.1.1/node_modules/xregexp/src/xregexp.js
|
|
951
|
-
var REGEX_DATA = "xregexp";
|
|
952
|
-
var features = {
|
|
953
|
-
astral: false,
|
|
954
|
-
namespacing: true
|
|
955
|
-
};
|
|
956
|
-
var fixed = {};
|
|
957
|
-
var regexCache = {};
|
|
958
|
-
var patternCache = {};
|
|
959
|
-
var tokens = [];
|
|
960
|
-
var defaultScope = "default";
|
|
961
|
-
var classScope = "class";
|
|
962
|
-
var nativeTokens = {
|
|
963
|
-
// Any native multicharacter token in default scope, or any single character
|
|
964
|
-
"default": /\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9]\d*|x[\dA-Fa-f]{2}|u(?:[\dA-Fa-f]{4}|{[\dA-Fa-f]+})|c[A-Za-z]|[\s\S])|\(\?(?:[:=!]|<[=!])|[?*+]\?|{\d+(?:,\d*)?}\??|[\s\S]/,
|
|
965
|
-
// Any native multicharacter token in character class scope, or any single character
|
|
966
|
-
"class": /\\(?:[0-3][0-7]{0,2}|[4-7][0-7]?|x[\dA-Fa-f]{2}|u(?:[\dA-Fa-f]{4}|{[\dA-Fa-f]+})|c[A-Za-z]|[\s\S])|[\s\S]/
|
|
967
|
-
};
|
|
968
|
-
var replacementToken = /\$(?:\{([^\}]+)\}|<([^>]+)>|(\d\d?|[\s\S]?))/g;
|
|
969
|
-
var correctExecNpcg = /()??/.exec("")[1] === void 0;
|
|
970
|
-
var hasFlagsProp = /x/.flags !== void 0;
|
|
971
|
-
function hasNativeFlag(flag) {
|
|
972
|
-
let isSupported = true;
|
|
973
|
-
try {
|
|
974
|
-
new RegExp("", flag);
|
|
975
|
-
if (flag === "y") {
|
|
976
|
-
const gy = /* @__PURE__ */ (() => "gy")();
|
|
977
|
-
const incompleteY = ".a".replace(new RegExp("a", gy), ".") === "..";
|
|
978
|
-
if (incompleteY) {
|
|
979
|
-
isSupported = false;
|
|
980
|
-
}
|
|
981
|
-
}
|
|
982
|
-
} catch (exception) {
|
|
983
|
-
isSupported = false;
|
|
984
|
-
}
|
|
985
|
-
return isSupported;
|
|
986
|
-
}
|
|
987
|
-
var hasNativeD = hasNativeFlag("d");
|
|
988
|
-
var hasNativeS = hasNativeFlag("s");
|
|
989
|
-
var hasNativeU = hasNativeFlag("u");
|
|
990
|
-
var hasNativeY = hasNativeFlag("y");
|
|
991
|
-
var registeredFlags = {
|
|
992
|
-
d: hasNativeD,
|
|
993
|
-
g: true,
|
|
994
|
-
i: true,
|
|
995
|
-
m: true,
|
|
996
|
-
s: hasNativeS,
|
|
997
|
-
u: hasNativeU,
|
|
998
|
-
y: hasNativeY
|
|
999
|
-
};
|
|
1000
|
-
var nonnativeFlags = hasNativeS ? /[^dgimsuy]+/g : /[^dgimuy]+/g;
|
|
1001
|
-
function augment(regex, captureNames, xSource, xFlags, isInternalOnly) {
|
|
1002
|
-
regex[REGEX_DATA] = {
|
|
1003
|
-
captureNames
|
|
1004
|
-
};
|
|
1005
|
-
if (isInternalOnly) {
|
|
1006
|
-
return regex;
|
|
1007
|
-
}
|
|
1008
|
-
if (regex.__proto__) {
|
|
1009
|
-
regex.__proto__ = XRegExp.prototype;
|
|
1010
|
-
} else {
|
|
1011
|
-
for (const p in XRegExp.prototype) {
|
|
1012
|
-
regex[p] = XRegExp.prototype[p];
|
|
1013
|
-
}
|
|
1014
|
-
}
|
|
1015
|
-
regex[REGEX_DATA].source = xSource;
|
|
1016
|
-
regex[REGEX_DATA].flags = xFlags ? xFlags.split("").sort().join("") : xFlags;
|
|
1017
|
-
return regex;
|
|
1018
|
-
}
|
|
1019
|
-
function clipDuplicates(str) {
|
|
1020
|
-
return str.replace(/([\s\S])(?=[\s\S]*\1)/g, "");
|
|
1021
|
-
}
|
|
1022
|
-
function copyRegex(regex, options) {
|
|
1023
|
-
if (!XRegExp.isRegExp(regex)) {
|
|
1024
|
-
throw new TypeError("Type RegExp expected");
|
|
1025
|
-
}
|
|
1026
|
-
const xData = regex[REGEX_DATA] || {};
|
|
1027
|
-
let flags = getNativeFlags(regex);
|
|
1028
|
-
let flagsToAdd = "";
|
|
1029
|
-
let flagsToRemove = "";
|
|
1030
|
-
let xregexpSource = null;
|
|
1031
|
-
let xregexpFlags = null;
|
|
1032
|
-
options = options || {};
|
|
1033
|
-
if (options.removeG) {
|
|
1034
|
-
flagsToRemove += "g";
|
|
1035
|
-
}
|
|
1036
|
-
if (options.removeY) {
|
|
1037
|
-
flagsToRemove += "y";
|
|
1038
|
-
}
|
|
1039
|
-
if (flagsToRemove) {
|
|
1040
|
-
flags = flags.replace(new RegExp(`[${flagsToRemove}]+`, "g"), "");
|
|
1041
|
-
}
|
|
1042
|
-
if (options.addG) {
|
|
1043
|
-
flagsToAdd += "g";
|
|
1044
|
-
}
|
|
1045
|
-
if (options.addY) {
|
|
1046
|
-
flagsToAdd += "y";
|
|
1047
|
-
}
|
|
1048
|
-
if (flagsToAdd) {
|
|
1049
|
-
flags = clipDuplicates(flags + flagsToAdd);
|
|
1050
|
-
}
|
|
1051
|
-
if (!options.isInternalOnly) {
|
|
1052
|
-
if (xData.source !== void 0) {
|
|
1053
|
-
xregexpSource = xData.source;
|
|
1054
|
-
}
|
|
1055
|
-
if (xData.flags != null) {
|
|
1056
|
-
xregexpFlags = flagsToAdd ? clipDuplicates(xData.flags + flagsToAdd) : xData.flags;
|
|
1057
|
-
}
|
|
1058
|
-
}
|
|
1059
|
-
regex = augment(
|
|
1060
|
-
new RegExp(options.source || regex.source, flags),
|
|
1061
|
-
hasNamedCapture(regex) ? xData.captureNames.slice(0) : null,
|
|
1062
|
-
xregexpSource,
|
|
1063
|
-
xregexpFlags,
|
|
1064
|
-
options.isInternalOnly
|
|
1065
|
-
);
|
|
1066
|
-
return regex;
|
|
1067
|
-
}
|
|
1068
|
-
function dec(hex2) {
|
|
1069
|
-
return parseInt(hex2, 16);
|
|
1070
|
-
}
|
|
1071
|
-
function getContextualTokenSeparator(match, scope, flags) {
|
|
1072
|
-
const matchEndPos = match.index + match[0].length;
|
|
1073
|
-
const precedingChar = match.input[match.index - 1];
|
|
1074
|
-
const followingChar = match.input[matchEndPos];
|
|
1075
|
-
if (
|
|
1076
|
-
// No need to separate tokens if at the beginning or end of a group, before or after a
|
|
1077
|
-
// group, or before or after a `|`
|
|
1078
|
-
/^[()|]$/.test(precedingChar) || /^[()|]$/.test(followingChar) || // No need to separate tokens if at the beginning or end of the pattern
|
|
1079
|
-
match.index === 0 || matchEndPos === match.input.length || // No need to separate tokens if at the beginning of a noncapturing group or lookaround.
|
|
1080
|
-
// Looks only at the last 4 chars (at most) for perf when constructing long regexes.
|
|
1081
|
-
/\(\?(?:[:=!]|<[=!])$/.test(match.input.substring(match.index - 4, match.index)) || // Avoid separating tokens when the following token is a quantifier
|
|
1082
|
-
isQuantifierNext(match.input, matchEndPos, flags)
|
|
1083
|
-
) {
|
|
1084
|
-
return "";
|
|
1085
|
-
}
|
|
1086
|
-
return "(?:)";
|
|
1087
|
-
}
|
|
1088
|
-
function getNativeFlags(regex) {
|
|
1089
|
-
return hasFlagsProp ? regex.flags : (
|
|
1090
|
-
// Explicitly using `RegExp.prototype.toString` (rather than e.g. `String` or concatenation
|
|
1091
|
-
// with an empty string) allows this to continue working predictably when
|
|
1092
|
-
// `XRegExp.proptotype.toString` is overridden
|
|
1093
|
-
/\/([a-z]*)$/i.exec(RegExp.prototype.toString.call(regex))[1]
|
|
1094
|
-
);
|
|
1095
|
-
}
|
|
1096
|
-
function hasNamedCapture(regex) {
|
|
1097
|
-
return !!(regex[REGEX_DATA] && regex[REGEX_DATA].captureNames);
|
|
1098
|
-
}
|
|
1099
|
-
function hex(dec2) {
|
|
1100
|
-
return parseInt(dec2, 10).toString(16);
|
|
1101
|
-
}
|
|
1102
|
-
function isQuantifierNext(pattern, pos, flags) {
|
|
1103
|
-
const inlineCommentPattern = "\\(\\?#[^)]*\\)";
|
|
1104
|
-
const lineCommentPattern = "#[^#\\n]*";
|
|
1105
|
-
const quantifierPattern = "[?*+]|{\\d+(?:,\\d*)?}";
|
|
1106
|
-
const regex = flags.includes("x") ? (
|
|
1107
|
-
// Ignore any leading whitespace, line comments, and inline comments
|
|
1108
|
-
new RegExp(`^(?:\\s|${lineCommentPattern}|${inlineCommentPattern})*(?:${quantifierPattern})`)
|
|
1109
|
-
) : (
|
|
1110
|
-
// Ignore any leading inline comments
|
|
1111
|
-
new RegExp(`^(?:${inlineCommentPattern})*(?:${quantifierPattern})`)
|
|
1112
|
-
);
|
|
1113
|
-
return regex.test(pattern.slice(pos));
|
|
1114
|
-
}
|
|
1115
|
-
function isType(value, type) {
|
|
1116
|
-
return Object.prototype.toString.call(value) === `[object ${type}]`;
|
|
1117
|
-
}
|
|
1118
|
-
function nullThrows(value) {
|
|
1119
|
-
if (value == null) {
|
|
1120
|
-
throw new TypeError("Cannot convert null or undefined to object");
|
|
1121
|
-
}
|
|
1122
|
-
return value;
|
|
1123
|
-
}
|
|
1124
|
-
function pad4(str) {
|
|
1125
|
-
while (str.length < 4) {
|
|
1126
|
-
str = `0${str}`;
|
|
1127
|
-
}
|
|
1128
|
-
return str;
|
|
1129
|
-
}
|
|
1130
|
-
function prepareFlags(pattern, flags) {
|
|
1131
|
-
if (clipDuplicates(flags) !== flags) {
|
|
1132
|
-
throw new SyntaxError(`Invalid duplicate regex flag ${flags}`);
|
|
1133
|
-
}
|
|
1134
|
-
pattern = pattern.replace(/^\(\?([\w$]+)\)/, ($0, $1) => {
|
|
1135
|
-
if (/[dgy]/.test($1)) {
|
|
1136
|
-
throw new SyntaxError(`Cannot use flags dgy in mode modifier ${$0}`);
|
|
1137
|
-
}
|
|
1138
|
-
flags = clipDuplicates(flags + $1);
|
|
1139
|
-
return "";
|
|
1140
|
-
});
|
|
1141
|
-
for (const flag of flags) {
|
|
1142
|
-
if (!registeredFlags[flag]) {
|
|
1143
|
-
throw new SyntaxError(`Unknown regex flag ${flag}`);
|
|
1144
|
-
}
|
|
1145
|
-
}
|
|
1146
|
-
return {
|
|
1147
|
-
pattern,
|
|
1148
|
-
flags
|
|
1149
|
-
};
|
|
1150
|
-
}
|
|
1151
|
-
function prepareOptions(value) {
|
|
1152
|
-
const options = {};
|
|
1153
|
-
if (isType(value, "String")) {
|
|
1154
|
-
XRegExp.forEach(value, /[^\s,]+/, (match) => {
|
|
1155
|
-
options[match] = true;
|
|
1156
|
-
});
|
|
1157
|
-
return options;
|
|
1158
|
-
}
|
|
1159
|
-
return value;
|
|
1160
|
-
}
|
|
1161
|
-
function registerFlag(flag) {
|
|
1162
|
-
if (!/^[\w$]$/.test(flag)) {
|
|
1163
|
-
throw new Error("Flag must be a single character A-Za-z0-9_$");
|
|
1164
|
-
}
|
|
1165
|
-
registeredFlags[flag] = true;
|
|
1166
|
-
}
|
|
1167
|
-
function runTokens(pattern, flags, pos, scope, context) {
|
|
1168
|
-
let i = tokens.length;
|
|
1169
|
-
const leadChar = pattern[pos];
|
|
1170
|
-
let result = null;
|
|
1171
|
-
let match;
|
|
1172
|
-
let t;
|
|
1173
|
-
while (i--) {
|
|
1174
|
-
t = tokens[i];
|
|
1175
|
-
if (t.leadChar && t.leadChar !== leadChar || t.scope !== scope && t.scope !== "all" || t.flag && !flags.includes(t.flag)) {
|
|
1176
|
-
continue;
|
|
1177
|
-
}
|
|
1178
|
-
match = XRegExp.exec(pattern, t.regex, pos, "sticky");
|
|
1179
|
-
if (match) {
|
|
1180
|
-
result = {
|
|
1181
|
-
matchLength: match[0].length,
|
|
1182
|
-
output: t.handler.call(context, match, scope, flags),
|
|
1183
|
-
reparse: t.reparse
|
|
1184
|
-
};
|
|
1185
|
-
break;
|
|
1186
|
-
}
|
|
1187
|
-
}
|
|
1188
|
-
return result;
|
|
1189
|
-
}
|
|
1190
|
-
function setAstral(on) {
|
|
1191
|
-
features.astral = on;
|
|
1192
|
-
}
|
|
1193
|
-
function setNamespacing(on) {
|
|
1194
|
-
features.namespacing = on;
|
|
1195
|
-
}
|
|
1196
|
-
function XRegExp(pattern, flags) {
|
|
1197
|
-
if (XRegExp.isRegExp(pattern)) {
|
|
1198
|
-
if (flags !== void 0) {
|
|
1199
|
-
throw new TypeError("Cannot supply flags when copying a RegExp");
|
|
1200
|
-
}
|
|
1201
|
-
return copyRegex(pattern);
|
|
1202
|
-
}
|
|
1203
|
-
pattern = pattern === void 0 ? "" : String(pattern);
|
|
1204
|
-
flags = flags === void 0 ? "" : String(flags);
|
|
1205
|
-
if (XRegExp.isInstalled("astral") && !flags.includes("A")) {
|
|
1206
|
-
flags += "A";
|
|
1207
|
-
}
|
|
1208
|
-
if (!patternCache[pattern]) {
|
|
1209
|
-
patternCache[pattern] = {};
|
|
1210
|
-
}
|
|
1211
|
-
if (!patternCache[pattern][flags]) {
|
|
1212
|
-
const context = {
|
|
1213
|
-
hasNamedCapture: false,
|
|
1214
|
-
captureNames: []
|
|
1215
|
-
};
|
|
1216
|
-
let scope = defaultScope;
|
|
1217
|
-
let output = "";
|
|
1218
|
-
let pos = 0;
|
|
1219
|
-
let result;
|
|
1220
|
-
const applied = prepareFlags(pattern, flags);
|
|
1221
|
-
let appliedPattern = applied.pattern;
|
|
1222
|
-
const appliedFlags = applied.flags;
|
|
1223
|
-
while (pos < appliedPattern.length) {
|
|
1224
|
-
do {
|
|
1225
|
-
result = runTokens(appliedPattern, appliedFlags, pos, scope, context);
|
|
1226
|
-
if (result && result.reparse) {
|
|
1227
|
-
appliedPattern = appliedPattern.slice(0, pos) + result.output + appliedPattern.slice(pos + result.matchLength);
|
|
1228
|
-
}
|
|
1229
|
-
} while (result && result.reparse);
|
|
1230
|
-
if (result) {
|
|
1231
|
-
output += result.output;
|
|
1232
|
-
pos += result.matchLength || 1;
|
|
1233
|
-
} else {
|
|
1234
|
-
const [token] = XRegExp.exec(appliedPattern, nativeTokens[scope], pos, "sticky");
|
|
1235
|
-
output += token;
|
|
1236
|
-
pos += token.length;
|
|
1237
|
-
if (token === "[" && scope === defaultScope) {
|
|
1238
|
-
scope = classScope;
|
|
1239
|
-
} else if (token === "]" && scope === classScope) {
|
|
1240
|
-
scope = defaultScope;
|
|
1241
|
-
}
|
|
1242
|
-
}
|
|
1243
|
-
}
|
|
1244
|
-
patternCache[pattern][flags] = {
|
|
1245
|
-
// Use basic cleanup to collapse repeated empty groups like `(?:)(?:)` to `(?:)`. Empty
|
|
1246
|
-
// groups are sometimes inserted during regex transpilation in order to keep tokens
|
|
1247
|
-
// separated. However, more than one empty group in a row is never needed.
|
|
1248
|
-
pattern: output.replace(/(?:\(\?:\))+/g, "(?:)"),
|
|
1249
|
-
// Strip all but native flags
|
|
1250
|
-
flags: appliedFlags.replace(nonnativeFlags, ""),
|
|
1251
|
-
// `context.captureNames` has an item for each capturing group, even if unnamed
|
|
1252
|
-
captures: context.hasNamedCapture ? context.captureNames : null
|
|
1253
|
-
};
|
|
1254
|
-
}
|
|
1255
|
-
const generated = patternCache[pattern][flags];
|
|
1256
|
-
return augment(
|
|
1257
|
-
new RegExp(generated.pattern, generated.flags),
|
|
1258
|
-
generated.captures,
|
|
1259
|
-
pattern,
|
|
1260
|
-
flags
|
|
1261
|
-
);
|
|
1262
|
-
}
|
|
1263
|
-
XRegExp.prototype = new RegExp();
|
|
1264
|
-
XRegExp.version = "5.1.1";
|
|
1265
|
-
XRegExp._clipDuplicates = clipDuplicates;
|
|
1266
|
-
XRegExp._hasNativeFlag = hasNativeFlag;
|
|
1267
|
-
XRegExp._dec = dec;
|
|
1268
|
-
XRegExp._hex = hex;
|
|
1269
|
-
XRegExp._pad4 = pad4;
|
|
1270
|
-
XRegExp.addToken = (regex, handler, options) => {
|
|
1271
|
-
options = options || {};
|
|
1272
|
-
let { optionalFlags } = options;
|
|
1273
|
-
if (options.flag) {
|
|
1274
|
-
registerFlag(options.flag);
|
|
1275
|
-
}
|
|
1276
|
-
if (optionalFlags) {
|
|
1277
|
-
optionalFlags = optionalFlags.split("");
|
|
1278
|
-
for (const flag of optionalFlags) {
|
|
1279
|
-
registerFlag(flag);
|
|
1280
|
-
}
|
|
1281
|
-
}
|
|
1282
|
-
tokens.push({
|
|
1283
|
-
regex: copyRegex(regex, {
|
|
1284
|
-
addG: true,
|
|
1285
|
-
addY: hasNativeY,
|
|
1286
|
-
isInternalOnly: true
|
|
1287
|
-
}),
|
|
1288
|
-
handler,
|
|
1289
|
-
scope: options.scope || defaultScope,
|
|
1290
|
-
flag: options.flag,
|
|
1291
|
-
reparse: options.reparse,
|
|
1292
|
-
leadChar: options.leadChar
|
|
1293
|
-
});
|
|
1294
|
-
XRegExp.cache.flush("patterns");
|
|
1295
|
-
};
|
|
1296
|
-
XRegExp.cache = (pattern, flags) => {
|
|
1297
|
-
if (!regexCache[pattern]) {
|
|
1298
|
-
regexCache[pattern] = {};
|
|
1299
|
-
}
|
|
1300
|
-
return regexCache[pattern][flags] || (regexCache[pattern][flags] = XRegExp(pattern, flags));
|
|
1301
|
-
};
|
|
1302
|
-
XRegExp.cache.flush = (cacheName) => {
|
|
1303
|
-
if (cacheName === "patterns") {
|
|
1304
|
-
patternCache = {};
|
|
1305
|
-
} else {
|
|
1306
|
-
regexCache = {};
|
|
1307
|
-
}
|
|
1308
|
-
};
|
|
1309
|
-
XRegExp.escape = (str) => String(nullThrows(str)).replace(/[\\\[\]{}()*+?.^$|]/g, "\\$&").replace(/[\s#\-,]/g, (match) => `\\u${pad4(hex(match.charCodeAt(0)))}`);
|
|
1310
|
-
XRegExp.exec = (str, regex, pos, sticky) => {
|
|
1311
|
-
let cacheKey = "g";
|
|
1312
|
-
let addY = false;
|
|
1313
|
-
let fakeY = false;
|
|
1314
|
-
let match;
|
|
1315
|
-
addY = hasNativeY && !!(sticky || regex.sticky && sticky !== false);
|
|
1316
|
-
if (addY) {
|
|
1317
|
-
cacheKey += "y";
|
|
1318
|
-
} else if (sticky) {
|
|
1319
|
-
fakeY = true;
|
|
1320
|
-
cacheKey += "FakeY";
|
|
1321
|
-
}
|
|
1322
|
-
regex[REGEX_DATA] = regex[REGEX_DATA] || {};
|
|
1323
|
-
const r2 = regex[REGEX_DATA][cacheKey] || (regex[REGEX_DATA][cacheKey] = copyRegex(regex, {
|
|
1324
|
-
addG: true,
|
|
1325
|
-
addY,
|
|
1326
|
-
source: fakeY ? `${regex.source}|()` : void 0,
|
|
1327
|
-
removeY: sticky === false,
|
|
1328
|
-
isInternalOnly: true
|
|
1329
|
-
}));
|
|
1330
|
-
pos = pos || 0;
|
|
1331
|
-
r2.lastIndex = pos;
|
|
1332
|
-
match = fixed.exec.call(r2, str);
|
|
1333
|
-
if (fakeY && match && match.pop() === "") {
|
|
1334
|
-
match = null;
|
|
1335
|
-
}
|
|
1336
|
-
if (regex.global) {
|
|
1337
|
-
regex.lastIndex = match ? r2.lastIndex : 0;
|
|
1338
|
-
}
|
|
1339
|
-
return match;
|
|
1340
|
-
};
|
|
1341
|
-
XRegExp.forEach = (str, regex, callback) => {
|
|
1342
|
-
let pos = 0;
|
|
1343
|
-
let i = -1;
|
|
1344
|
-
let match;
|
|
1345
|
-
while (match = XRegExp.exec(str, regex, pos)) {
|
|
1346
|
-
callback(match, ++i, str, regex);
|
|
1347
|
-
pos = match.index + (match[0].length || 1);
|
|
1348
|
-
}
|
|
1349
|
-
};
|
|
1350
|
-
XRegExp.globalize = (regex) => copyRegex(regex, { addG: true });
|
|
1351
|
-
XRegExp.install = (options) => {
|
|
1352
|
-
options = prepareOptions(options);
|
|
1353
|
-
if (!features.astral && options.astral) {
|
|
1354
|
-
setAstral(true);
|
|
1355
|
-
}
|
|
1356
|
-
if (!features.namespacing && options.namespacing) {
|
|
1357
|
-
setNamespacing(true);
|
|
1358
|
-
}
|
|
1359
|
-
};
|
|
1360
|
-
XRegExp.isInstalled = (feature) => !!features[feature];
|
|
1361
|
-
XRegExp.isRegExp = (value) => Object.prototype.toString.call(value) === "[object RegExp]";
|
|
1362
|
-
XRegExp.match = (str, regex, scope) => {
|
|
1363
|
-
const global = regex.global && scope !== "one" || scope === "all";
|
|
1364
|
-
const cacheKey = (global ? "g" : "") + (regex.sticky ? "y" : "") || "noGY";
|
|
1365
|
-
regex[REGEX_DATA] = regex[REGEX_DATA] || {};
|
|
1366
|
-
const r2 = regex[REGEX_DATA][cacheKey] || (regex[REGEX_DATA][cacheKey] = copyRegex(regex, {
|
|
1367
|
-
addG: !!global,
|
|
1368
|
-
removeG: scope === "one",
|
|
1369
|
-
isInternalOnly: true
|
|
1370
|
-
}));
|
|
1371
|
-
const result = String(nullThrows(str)).match(r2);
|
|
1372
|
-
if (regex.global) {
|
|
1373
|
-
regex.lastIndex = scope === "one" && result ? (
|
|
1374
|
-
// Can't use `r2.lastIndex` since `r2` is nonglobal in this case
|
|
1375
|
-
result.index + result[0].length
|
|
1376
|
-
) : 0;
|
|
1377
|
-
}
|
|
1378
|
-
return global ? result || [] : result && result[0];
|
|
1379
|
-
};
|
|
1380
|
-
XRegExp.matchChain = (str, chain) => (function recurseChain(values, level) {
|
|
1381
|
-
const item = chain[level].regex ? chain[level] : { regex: chain[level] };
|
|
1382
|
-
const matches = [];
|
|
1383
|
-
function addMatch(match) {
|
|
1384
|
-
if (item.backref) {
|
|
1385
|
-
const ERR_UNDEFINED_GROUP = `Backreference to undefined group: ${item.backref}`;
|
|
1386
|
-
const isNamedBackref = isNaN(item.backref);
|
|
1387
|
-
if (isNamedBackref && XRegExp.isInstalled("namespacing")) {
|
|
1388
|
-
if (!(match.groups && item.backref in match.groups)) {
|
|
1389
|
-
throw new ReferenceError(ERR_UNDEFINED_GROUP);
|
|
1390
|
-
}
|
|
1391
|
-
} else if (!match.hasOwnProperty(item.backref)) {
|
|
1392
|
-
throw new ReferenceError(ERR_UNDEFINED_GROUP);
|
|
1393
|
-
}
|
|
1394
|
-
const backrefValue = isNamedBackref && XRegExp.isInstalled("namespacing") ? match.groups[item.backref] : match[item.backref];
|
|
1395
|
-
matches.push(backrefValue || "");
|
|
1396
|
-
} else {
|
|
1397
|
-
matches.push(match[0]);
|
|
1398
|
-
}
|
|
1399
|
-
}
|
|
1400
|
-
for (const value of values) {
|
|
1401
|
-
XRegExp.forEach(value, item.regex, addMatch);
|
|
1402
|
-
}
|
|
1403
|
-
return level === chain.length - 1 || !matches.length ? matches : recurseChain(matches, level + 1);
|
|
1404
|
-
})([str], 0);
|
|
1405
|
-
XRegExp.replace = (str, search, replacement, scope) => {
|
|
1406
|
-
const isRegex = XRegExp.isRegExp(search);
|
|
1407
|
-
const global = search.global && scope !== "one" || scope === "all";
|
|
1408
|
-
const cacheKey = (global ? "g" : "") + (search.sticky ? "y" : "") || "noGY";
|
|
1409
|
-
let s2 = search;
|
|
1410
|
-
if (isRegex) {
|
|
1411
|
-
search[REGEX_DATA] = search[REGEX_DATA] || {};
|
|
1412
|
-
s2 = search[REGEX_DATA][cacheKey] || (search[REGEX_DATA][cacheKey] = copyRegex(search, {
|
|
1413
|
-
addG: !!global,
|
|
1414
|
-
removeG: scope === "one",
|
|
1415
|
-
isInternalOnly: true
|
|
1416
|
-
}));
|
|
1417
|
-
} else if (global) {
|
|
1418
|
-
s2 = new RegExp(XRegExp.escape(String(search)), "g");
|
|
1419
|
-
}
|
|
1420
|
-
const result = fixed.replace.call(nullThrows(str), s2, replacement);
|
|
1421
|
-
if (isRegex && search.global) {
|
|
1422
|
-
search.lastIndex = 0;
|
|
1423
|
-
}
|
|
1424
|
-
return result;
|
|
1425
|
-
};
|
|
1426
|
-
XRegExp.replaceEach = (str, replacements) => {
|
|
1427
|
-
for (const r of replacements) {
|
|
1428
|
-
str = XRegExp.replace(str, r[0], r[1], r[2]);
|
|
1429
|
-
}
|
|
1430
|
-
return str;
|
|
1431
|
-
};
|
|
1432
|
-
XRegExp.split = (str, separator, limit) => fixed.split.call(nullThrows(str), separator, limit);
|
|
1433
|
-
XRegExp.test = (str, regex, pos, sticky) => !!XRegExp.exec(str, regex, pos, sticky);
|
|
1434
|
-
XRegExp.uninstall = (options) => {
|
|
1435
|
-
options = prepareOptions(options);
|
|
1436
|
-
if (features.astral && options.astral) {
|
|
1437
|
-
setAstral(false);
|
|
1438
|
-
}
|
|
1439
|
-
if (features.namespacing && options.namespacing) {
|
|
1440
|
-
setNamespacing(false);
|
|
1441
|
-
}
|
|
1442
|
-
};
|
|
1443
|
-
XRegExp.union = (patterns, flags, options) => {
|
|
1444
|
-
options = options || {};
|
|
1445
|
-
const conjunction = options.conjunction || "or";
|
|
1446
|
-
let numCaptures = 0;
|
|
1447
|
-
let numPriorCaptures;
|
|
1448
|
-
let captureNames;
|
|
1449
|
-
function rewrite(match, paren, backref) {
|
|
1450
|
-
const name = captureNames[numCaptures - numPriorCaptures];
|
|
1451
|
-
if (paren) {
|
|
1452
|
-
++numCaptures;
|
|
1453
|
-
if (name) {
|
|
1454
|
-
return `(?<${name}>`;
|
|
1455
|
-
}
|
|
1456
|
-
} else if (backref) {
|
|
1457
|
-
return `\\${+backref + numPriorCaptures}`;
|
|
1458
|
-
}
|
|
1459
|
-
return match;
|
|
1460
|
-
}
|
|
1461
|
-
if (!(isType(patterns, "Array") && patterns.length)) {
|
|
1462
|
-
throw new TypeError("Must provide a nonempty array of patterns to merge");
|
|
1463
|
-
}
|
|
1464
|
-
const parts = /(\()(?!\?)|\\([1-9]\d*)|\\[\s\S]|\[(?:[^\\\]]|\\[\s\S])*\]/g;
|
|
1465
|
-
const output = [];
|
|
1466
|
-
for (const pattern of patterns) {
|
|
1467
|
-
if (XRegExp.isRegExp(pattern)) {
|
|
1468
|
-
numPriorCaptures = numCaptures;
|
|
1469
|
-
captureNames = pattern[REGEX_DATA] && pattern[REGEX_DATA].captureNames || [];
|
|
1470
|
-
output.push(XRegExp(pattern.source).source.replace(parts, rewrite));
|
|
1471
|
-
} else {
|
|
1472
|
-
output.push(XRegExp.escape(pattern));
|
|
1473
|
-
}
|
|
1474
|
-
}
|
|
1475
|
-
const separator = conjunction === "none" ? "" : "|";
|
|
1476
|
-
return XRegExp(output.join(separator), flags);
|
|
1477
|
-
};
|
|
1478
|
-
fixed.exec = function(str) {
|
|
1479
|
-
const origLastIndex = this.lastIndex;
|
|
1480
|
-
const match = RegExp.prototype.exec.apply(this, arguments);
|
|
1481
|
-
if (match) {
|
|
1482
|
-
if (!correctExecNpcg && match.length > 1 && match.includes("")) {
|
|
1483
|
-
const r2 = copyRegex(this, {
|
|
1484
|
-
removeG: true,
|
|
1485
|
-
isInternalOnly: true
|
|
1486
|
-
});
|
|
1487
|
-
String(str).slice(match.index).replace(r2, (...args) => {
|
|
1488
|
-
const len = args.length;
|
|
1489
|
-
for (let i = 1; i < len - 2; ++i) {
|
|
1490
|
-
if (args[i] === void 0) {
|
|
1491
|
-
match[i] = void 0;
|
|
1492
|
-
}
|
|
1493
|
-
}
|
|
1494
|
-
});
|
|
1495
|
-
}
|
|
1496
|
-
if (this[REGEX_DATA] && this[REGEX_DATA].captureNames) {
|
|
1497
|
-
let groupsObject = match;
|
|
1498
|
-
if (XRegExp.isInstalled("namespacing")) {
|
|
1499
|
-
match.groups = /* @__PURE__ */ Object.create(null);
|
|
1500
|
-
groupsObject = match.groups;
|
|
1501
|
-
}
|
|
1502
|
-
for (let i = 1; i < match.length; ++i) {
|
|
1503
|
-
const name = this[REGEX_DATA].captureNames[i - 1];
|
|
1504
|
-
if (name) {
|
|
1505
|
-
groupsObject[name] = match[i];
|
|
1506
|
-
}
|
|
1507
|
-
}
|
|
1508
|
-
} else if (!match.groups && XRegExp.isInstalled("namespacing")) {
|
|
1509
|
-
match.groups = void 0;
|
|
1510
|
-
}
|
|
1511
|
-
if (this.global && !match[0].length && this.lastIndex > match.index) {
|
|
1512
|
-
this.lastIndex = match.index;
|
|
1513
|
-
}
|
|
1514
|
-
}
|
|
1515
|
-
if (!this.global) {
|
|
1516
|
-
this.lastIndex = origLastIndex;
|
|
1517
|
-
}
|
|
1518
|
-
return match;
|
|
1519
|
-
};
|
|
1520
|
-
fixed.test = function(str) {
|
|
1521
|
-
return !!fixed.exec.call(this, str);
|
|
1522
|
-
};
|
|
1523
|
-
fixed.match = function(regex) {
|
|
1524
|
-
if (!XRegExp.isRegExp(regex)) {
|
|
1525
|
-
regex = new RegExp(regex);
|
|
1526
|
-
} else if (regex.global) {
|
|
1527
|
-
const result = String.prototype.match.apply(this, arguments);
|
|
1528
|
-
regex.lastIndex = 0;
|
|
1529
|
-
return result;
|
|
1530
|
-
}
|
|
1531
|
-
return fixed.exec.call(regex, nullThrows(this));
|
|
1532
|
-
};
|
|
1533
|
-
fixed.replace = function(search, replacement) {
|
|
1534
|
-
const isRegex = XRegExp.isRegExp(search);
|
|
1535
|
-
let origLastIndex;
|
|
1536
|
-
let captureNames;
|
|
1537
|
-
let result;
|
|
1538
|
-
if (isRegex) {
|
|
1539
|
-
if (search[REGEX_DATA]) {
|
|
1540
|
-
({ captureNames } = search[REGEX_DATA]);
|
|
1541
|
-
}
|
|
1542
|
-
origLastIndex = search.lastIndex;
|
|
1543
|
-
} else {
|
|
1544
|
-
search += "";
|
|
1545
|
-
}
|
|
1546
|
-
if (isType(replacement, "Function")) {
|
|
1547
|
-
result = String(this).replace(search, (...args) => {
|
|
1548
|
-
if (captureNames) {
|
|
1549
|
-
let groupsObject;
|
|
1550
|
-
if (XRegExp.isInstalled("namespacing")) {
|
|
1551
|
-
groupsObject = /* @__PURE__ */ Object.create(null);
|
|
1552
|
-
args.push(groupsObject);
|
|
1553
|
-
} else {
|
|
1554
|
-
args[0] = new String(args[0]);
|
|
1555
|
-
[groupsObject] = args;
|
|
1556
|
-
}
|
|
1557
|
-
for (let i = 0; i < captureNames.length; ++i) {
|
|
1558
|
-
if (captureNames[i]) {
|
|
1559
|
-
groupsObject[captureNames[i]] = args[i + 1];
|
|
1560
|
-
}
|
|
1561
|
-
}
|
|
1562
|
-
}
|
|
1563
|
-
return replacement(...args);
|
|
1564
|
-
});
|
|
1565
|
-
} else {
|
|
1566
|
-
result = String(nullThrows(this)).replace(search, (...args) => {
|
|
1567
|
-
return String(replacement).replace(replacementToken, replacer);
|
|
1568
|
-
function replacer($0, bracketed, angled, dollarToken) {
|
|
1569
|
-
bracketed = bracketed || angled;
|
|
1570
|
-
const numNonCaptureArgs = isType(args[args.length - 1], "Object") ? 4 : 3;
|
|
1571
|
-
const numCaptures = args.length - numNonCaptureArgs;
|
|
1572
|
-
if (bracketed) {
|
|
1573
|
-
if (/^\d+$/.test(bracketed)) {
|
|
1574
|
-
const n2 = +bracketed;
|
|
1575
|
-
if (n2 <= numCaptures) {
|
|
1576
|
-
return args[n2] || "";
|
|
1577
|
-
}
|
|
1578
|
-
}
|
|
1579
|
-
const n = captureNames ? captureNames.indexOf(bracketed) : -1;
|
|
1580
|
-
if (n < 0) {
|
|
1581
|
-
throw new SyntaxError(`Backreference to undefined group ${$0}`);
|
|
1582
|
-
}
|
|
1583
|
-
return args[n + 1] || "";
|
|
1584
|
-
}
|
|
1585
|
-
if (dollarToken === "" || dollarToken === " ") {
|
|
1586
|
-
throw new SyntaxError(`Invalid token ${$0}`);
|
|
1587
|
-
}
|
|
1588
|
-
if (dollarToken === "&" || +dollarToken === 0) {
|
|
1589
|
-
return args[0];
|
|
1590
|
-
}
|
|
1591
|
-
if (dollarToken === "$") {
|
|
1592
|
-
return "$";
|
|
1593
|
-
}
|
|
1594
|
-
if (dollarToken === "`") {
|
|
1595
|
-
return args[args.length - 1].slice(0, args[args.length - 2]);
|
|
1596
|
-
}
|
|
1597
|
-
if (dollarToken === "'") {
|
|
1598
|
-
return args[args.length - 1].slice(args[args.length - 2] + args[0].length);
|
|
1599
|
-
}
|
|
1600
|
-
dollarToken = +dollarToken;
|
|
1601
|
-
if (!isNaN(dollarToken)) {
|
|
1602
|
-
if (dollarToken > numCaptures) {
|
|
1603
|
-
throw new SyntaxError(`Backreference to undefined group ${$0}`);
|
|
1604
|
-
}
|
|
1605
|
-
return args[dollarToken] || "";
|
|
1606
|
-
}
|
|
1607
|
-
throw new SyntaxError(`Invalid token ${$0}`);
|
|
1608
|
-
}
|
|
1609
|
-
});
|
|
1610
|
-
}
|
|
1611
|
-
if (isRegex) {
|
|
1612
|
-
if (search.global) {
|
|
1613
|
-
search.lastIndex = 0;
|
|
1614
|
-
} else {
|
|
1615
|
-
search.lastIndex = origLastIndex;
|
|
1616
|
-
}
|
|
1617
|
-
}
|
|
1618
|
-
return result;
|
|
1619
|
-
};
|
|
1620
|
-
fixed.split = function(separator, limit) {
|
|
1621
|
-
if (!XRegExp.isRegExp(separator)) {
|
|
1622
|
-
return String.prototype.split.apply(this, arguments);
|
|
1623
|
-
}
|
|
1624
|
-
const str = String(this);
|
|
1625
|
-
const output = [];
|
|
1626
|
-
const origLastIndex = separator.lastIndex;
|
|
1627
|
-
let lastLastIndex = 0;
|
|
1628
|
-
let lastLength;
|
|
1629
|
-
limit = (limit === void 0 ? -1 : limit) >>> 0;
|
|
1630
|
-
XRegExp.forEach(str, separator, (match) => {
|
|
1631
|
-
if (match.index + match[0].length > lastLastIndex) {
|
|
1632
|
-
output.push(str.slice(lastLastIndex, match.index));
|
|
1633
|
-
if (match.length > 1 && match.index < str.length) {
|
|
1634
|
-
Array.prototype.push.apply(output, match.slice(1));
|
|
1635
|
-
}
|
|
1636
|
-
lastLength = match[0].length;
|
|
1637
|
-
lastLastIndex = match.index + lastLength;
|
|
1638
|
-
}
|
|
1639
|
-
});
|
|
1640
|
-
if (lastLastIndex === str.length) {
|
|
1641
|
-
if (!separator.test("") || lastLength) {
|
|
1642
|
-
output.push("");
|
|
1643
|
-
}
|
|
1644
|
-
} else {
|
|
1645
|
-
output.push(str.slice(lastLastIndex));
|
|
1646
|
-
}
|
|
1647
|
-
separator.lastIndex = origLastIndex;
|
|
1648
|
-
return output.length > limit ? output.slice(0, limit) : output;
|
|
1649
|
-
};
|
|
1650
|
-
XRegExp.addToken(
|
|
1651
|
-
/\\([ABCE-RTUVXYZaeg-mopqyz]|c(?![A-Za-z])|u(?![\dA-Fa-f]{4}|{[\dA-Fa-f]+})|x(?![\dA-Fa-f]{2}))/,
|
|
1652
|
-
(match, scope) => {
|
|
1653
|
-
if (match[1] === "B" && scope === defaultScope) {
|
|
1654
|
-
return match[0];
|
|
1655
|
-
}
|
|
1656
|
-
throw new SyntaxError(`Invalid escape ${match[0]}`);
|
|
1657
|
-
},
|
|
1658
|
-
{
|
|
1659
|
-
scope: "all",
|
|
1660
|
-
leadChar: "\\"
|
|
1661
|
-
}
|
|
1662
|
-
);
|
|
1663
|
-
XRegExp.addToken(
|
|
1664
|
-
/\\u{([\dA-Fa-f]+)}/,
|
|
1665
|
-
(match, scope, flags) => {
|
|
1666
|
-
const code = dec(match[1]);
|
|
1667
|
-
if (code > 1114111) {
|
|
1668
|
-
throw new SyntaxError(`Invalid Unicode code point ${match[0]}`);
|
|
1669
|
-
}
|
|
1670
|
-
if (code <= 65535) {
|
|
1671
|
-
return `\\u${pad4(hex(code))}`;
|
|
1672
|
-
}
|
|
1673
|
-
if (hasNativeU && flags.includes("u")) {
|
|
1674
|
-
return match[0];
|
|
1675
|
-
}
|
|
1676
|
-
throw new SyntaxError("Cannot use Unicode code point above \\u{FFFF} without flag u");
|
|
1677
|
-
},
|
|
1678
|
-
{
|
|
1679
|
-
scope: "all",
|
|
1680
|
-
leadChar: "\\"
|
|
1681
|
-
}
|
|
1682
|
-
);
|
|
1683
|
-
XRegExp.addToken(
|
|
1684
|
-
/\(\?#[^)]*\)/,
|
|
1685
|
-
getContextualTokenSeparator,
|
|
1686
|
-
{ leadChar: "(" }
|
|
1687
|
-
);
|
|
1688
|
-
XRegExp.addToken(
|
|
1689
|
-
/\s+|#[^\n]*\n?/,
|
|
1690
|
-
getContextualTokenSeparator,
|
|
1691
|
-
{ flag: "x" }
|
|
1692
|
-
);
|
|
1693
|
-
if (!hasNativeS) {
|
|
1694
|
-
XRegExp.addToken(
|
|
1695
|
-
/\./,
|
|
1696
|
-
() => "[\\s\\S]",
|
|
1697
|
-
{
|
|
1698
|
-
flag: "s",
|
|
1699
|
-
leadChar: "."
|
|
1700
|
-
}
|
|
1701
|
-
);
|
|
1702
|
-
}
|
|
1703
|
-
XRegExp.addToken(
|
|
1704
|
-
/\\k<([^>]+)>/,
|
|
1705
|
-
function(match) {
|
|
1706
|
-
const index = isNaN(match[1]) ? this.captureNames.indexOf(match[1]) + 1 : +match[1];
|
|
1707
|
-
const endIndex = match.index + match[0].length;
|
|
1708
|
-
if (!index || index > this.captureNames.length) {
|
|
1709
|
-
throw new SyntaxError(`Backreference to undefined group ${match[0]}`);
|
|
1710
|
-
}
|
|
1711
|
-
return `\\${index}${endIndex === match.input.length || isNaN(match.input[endIndex]) ? "" : "(?:)"}`;
|
|
1712
|
-
},
|
|
1713
|
-
{ leadChar: "\\" }
|
|
1714
|
-
);
|
|
1715
|
-
XRegExp.addToken(
|
|
1716
|
-
/\\(\d+)/,
|
|
1717
|
-
function(match, scope) {
|
|
1718
|
-
if (!(scope === defaultScope && /^[1-9]/.test(match[1]) && +match[1] <= this.captureNames.length) && match[1] !== "0") {
|
|
1719
|
-
throw new SyntaxError(`Cannot use octal escape or backreference to undefined group ${match[0]}`);
|
|
1720
|
-
}
|
|
1721
|
-
return match[0];
|
|
1722
|
-
},
|
|
1723
|
-
{
|
|
1724
|
-
scope: "all",
|
|
1725
|
-
leadChar: "\\"
|
|
1726
|
-
}
|
|
1727
|
-
);
|
|
1728
|
-
XRegExp.addToken(
|
|
1729
|
-
/\(\?P?<([\p{ID_Start}$_][\p{ID_Continue}$_\u200C\u200D]*)>/u,
|
|
1730
|
-
function(match) {
|
|
1731
|
-
if (!XRegExp.isInstalled("namespacing") && (match[1] === "length" || match[1] === "__proto__")) {
|
|
1732
|
-
throw new SyntaxError(`Cannot use reserved word as capture name ${match[0]}`);
|
|
1733
|
-
}
|
|
1734
|
-
if (this.captureNames.includes(match[1])) {
|
|
1735
|
-
throw new SyntaxError(`Cannot use same name for multiple groups ${match[0]}`);
|
|
1736
|
-
}
|
|
1737
|
-
this.captureNames.push(match[1]);
|
|
1738
|
-
this.hasNamedCapture = true;
|
|
1739
|
-
return "(";
|
|
1740
|
-
},
|
|
1741
|
-
{ leadChar: "(" }
|
|
1742
|
-
);
|
|
1743
|
-
XRegExp.addToken(
|
|
1744
|
-
/\((?!\?)/,
|
|
1745
|
-
function(match, scope, flags) {
|
|
1746
|
-
if (flags.includes("n")) {
|
|
1747
|
-
return "(?:";
|
|
1748
|
-
}
|
|
1749
|
-
this.captureNames.push(null);
|
|
1750
|
-
return "(";
|
|
1751
|
-
},
|
|
1752
|
-
{
|
|
1753
|
-
optionalFlags: "n",
|
|
1754
|
-
leadChar: "("
|
|
1755
|
-
}
|
|
1756
|
-
);
|
|
1757
|
-
var xregexp_default = XRegExp;
|
|
1758
|
-
|
|
1759
|
-
// ../../../node_modules/.pnpm/xregexp@5.1.1/node_modules/xregexp/src/addons/build.js
|
|
1760
|
-
var build_default = (XRegExp2) => {
|
|
1761
|
-
const REGEX_DATA2 = "xregexp";
|
|
1762
|
-
const subParts = /(\()(?!\?)|\\([1-9]\d*)|\\[\s\S]|\[(?:[^\\\]]|\\[\s\S])*\]/g;
|
|
1763
|
-
const parts = XRegExp2.union([/\({{([\w$]+)}}\)|{{([\w$]+)}}/, subParts], "g", {
|
|
1764
|
-
conjunction: "or"
|
|
1765
|
-
});
|
|
1766
|
-
function deanchor(pattern) {
|
|
1767
|
-
const leadingAnchor = /^(?:\(\?:\))*\^/;
|
|
1768
|
-
const trailingAnchor = /\$(?:\(\?:\))*$/;
|
|
1769
|
-
if (leadingAnchor.test(pattern) && trailingAnchor.test(pattern) && // Ensure that the trailing `$` isn't escaped
|
|
1770
|
-
trailingAnchor.test(pattern.replace(/\\[\s\S]/g, ""))) {
|
|
1771
|
-
return pattern.replace(leadingAnchor, "").replace(trailingAnchor, "");
|
|
1772
|
-
}
|
|
1773
|
-
return pattern;
|
|
1774
|
-
}
|
|
1775
|
-
function asXRegExp(value, addFlagX) {
|
|
1776
|
-
const flags = addFlagX ? "x" : "";
|
|
1777
|
-
return XRegExp2.isRegExp(value) ? value[REGEX_DATA2] && value[REGEX_DATA2].captureNames ? (
|
|
1778
|
-
// Don't recompile, to preserve capture names
|
|
1779
|
-
value
|
|
1780
|
-
) : (
|
|
1781
|
-
// Recompile as XRegExp
|
|
1782
|
-
XRegExp2(value.source, flags)
|
|
1783
|
-
) : (
|
|
1784
|
-
// Compile string as XRegExp
|
|
1785
|
-
XRegExp2(value, flags)
|
|
1786
|
-
);
|
|
1787
|
-
}
|
|
1788
|
-
function interpolate(substitution) {
|
|
1789
|
-
return substitution instanceof RegExp ? substitution : XRegExp2.escape(substitution);
|
|
1790
|
-
}
|
|
1791
|
-
function reduceToSubpatternsObject(subpatterns, interpolated, subpatternIndex) {
|
|
1792
|
-
subpatterns[`subpattern${subpatternIndex}`] = interpolated;
|
|
1793
|
-
return subpatterns;
|
|
1794
|
-
}
|
|
1795
|
-
function embedSubpatternAfter(raw, subpatternIndex, rawLiterals) {
|
|
1796
|
-
const hasSubpattern = subpatternIndex < rawLiterals.length - 1;
|
|
1797
|
-
return raw + (hasSubpattern ? `{{subpattern${subpatternIndex}}}` : "");
|
|
1798
|
-
}
|
|
1799
|
-
XRegExp2.tag = (flags) => (literals, ...substitutions) => {
|
|
1800
|
-
const subpatterns = substitutions.map(interpolate).reduce(reduceToSubpatternsObject, {});
|
|
1801
|
-
const pattern = literals.raw.map(embedSubpatternAfter).join("");
|
|
1802
|
-
return XRegExp2.build(pattern, subpatterns, flags);
|
|
1803
|
-
};
|
|
1804
|
-
XRegExp2.build = (pattern, subs, flags) => {
|
|
1805
|
-
flags = flags || "";
|
|
1806
|
-
const addFlagX = flags.includes("x");
|
|
1807
|
-
const inlineFlags = /^\(\?([\w$]+)\)/.exec(pattern);
|
|
1808
|
-
if (inlineFlags) {
|
|
1809
|
-
flags = XRegExp2._clipDuplicates(flags + inlineFlags[1]);
|
|
1810
|
-
}
|
|
1811
|
-
const data = {};
|
|
1812
|
-
for (const p in subs) {
|
|
1813
|
-
if (subs.hasOwnProperty(p)) {
|
|
1814
|
-
const sub = asXRegExp(subs[p], addFlagX);
|
|
1815
|
-
data[p] = {
|
|
1816
|
-
// Deanchoring allows embedding independently useful anchored regexes. If you
|
|
1817
|
-
// really need to keep your anchors, double them (i.e., `^^...$$`).
|
|
1818
|
-
pattern: deanchor(sub.source),
|
|
1819
|
-
names: sub[REGEX_DATA2].captureNames || []
|
|
1820
|
-
};
|
|
1821
|
-
}
|
|
1822
|
-
}
|
|
1823
|
-
const patternAsRegex = asXRegExp(pattern, addFlagX);
|
|
1824
|
-
let numCaps = 0;
|
|
1825
|
-
let numPriorCaps;
|
|
1826
|
-
let numOuterCaps = 0;
|
|
1827
|
-
const outerCapsMap = [0];
|
|
1828
|
-
const outerCapNames = patternAsRegex[REGEX_DATA2].captureNames || [];
|
|
1829
|
-
const output = patternAsRegex.source.replace(parts, ($0, $1, $2, $3, $4) => {
|
|
1830
|
-
const subName = $1 || $2;
|
|
1831
|
-
let capName;
|
|
1832
|
-
let intro;
|
|
1833
|
-
let localCapIndex;
|
|
1834
|
-
if (subName) {
|
|
1835
|
-
if (!data.hasOwnProperty(subName)) {
|
|
1836
|
-
throw new ReferenceError(`Undefined property ${$0}`);
|
|
1837
|
-
}
|
|
1838
|
-
if ($1) {
|
|
1839
|
-
capName = outerCapNames[numOuterCaps];
|
|
1840
|
-
outerCapsMap[++numOuterCaps] = ++numCaps;
|
|
1841
|
-
intro = `(?<${capName || subName}>`;
|
|
1842
|
-
} else {
|
|
1843
|
-
intro = "(?:";
|
|
1844
|
-
}
|
|
1845
|
-
numPriorCaps = numCaps;
|
|
1846
|
-
const rewrittenSubpattern = data[subName].pattern.replace(subParts, (match, paren, backref) => {
|
|
1847
|
-
if (paren) {
|
|
1848
|
-
capName = data[subName].names[numCaps - numPriorCaps];
|
|
1849
|
-
++numCaps;
|
|
1850
|
-
if (capName) {
|
|
1851
|
-
return `(?<${capName}>`;
|
|
1852
|
-
}
|
|
1853
|
-
} else if (backref) {
|
|
1854
|
-
localCapIndex = +backref - 1;
|
|
1855
|
-
return data[subName].names[localCapIndex] ? (
|
|
1856
|
-
// Need to preserve the backreference name in case using flag `n`
|
|
1857
|
-
`\\k<${data[subName].names[localCapIndex]}>`
|
|
1858
|
-
) : `\\${+backref + numPriorCaps}`;
|
|
1859
|
-
}
|
|
1860
|
-
return match;
|
|
1861
|
-
});
|
|
1862
|
-
return `${intro}${rewrittenSubpattern})`;
|
|
1863
|
-
}
|
|
1864
|
-
if ($3) {
|
|
1865
|
-
capName = outerCapNames[numOuterCaps];
|
|
1866
|
-
outerCapsMap[++numOuterCaps] = ++numCaps;
|
|
1867
|
-
if (capName) {
|
|
1868
|
-
return `(?<${capName}>`;
|
|
1869
|
-
}
|
|
1870
|
-
} else if ($4) {
|
|
1871
|
-
localCapIndex = +$4 - 1;
|
|
1872
|
-
return outerCapNames[localCapIndex] ? (
|
|
1873
|
-
// Need to preserve the backreference name in case using flag `n`
|
|
1874
|
-
`\\k<${outerCapNames[localCapIndex]}>`
|
|
1875
|
-
) : `\\${outerCapsMap[+$4]}`;
|
|
1876
|
-
}
|
|
1877
|
-
return $0;
|
|
1878
|
-
});
|
|
1879
|
-
return XRegExp2(output, flags);
|
|
1880
|
-
};
|
|
1881
|
-
};
|
|
1882
|
-
|
|
1883
|
-
// ../../../node_modules/.pnpm/xregexp@5.1.1/node_modules/xregexp/src/addons/matchrecursive.js
|
|
1884
|
-
var matchrecursive_default = (XRegExp2) => {
|
|
1885
|
-
function row(name, value, start, end) {
|
|
1886
|
-
return {
|
|
1887
|
-
name,
|
|
1888
|
-
value,
|
|
1889
|
-
start,
|
|
1890
|
-
end
|
|
1891
|
-
};
|
|
1892
|
-
}
|
|
1893
|
-
XRegExp2.matchRecursive = (str, left, right, flags, options) => {
|
|
1894
|
-
flags = flags || "";
|
|
1895
|
-
options = options || {};
|
|
1896
|
-
const global = flags.includes("g");
|
|
1897
|
-
const sticky = flags.includes("y");
|
|
1898
|
-
const basicFlags = flags.replace(/y/g, "");
|
|
1899
|
-
left = XRegExp2(left, basicFlags);
|
|
1900
|
-
right = XRegExp2(right, basicFlags);
|
|
1901
|
-
let esc;
|
|
1902
|
-
let { escapeChar } = options;
|
|
1903
|
-
if (escapeChar) {
|
|
1904
|
-
if (escapeChar.length > 1) {
|
|
1905
|
-
throw new Error("Cannot use more than one escape character");
|
|
1906
|
-
}
|
|
1907
|
-
escapeChar = XRegExp2.escape(escapeChar);
|
|
1908
|
-
esc = new RegExp(
|
|
1909
|
-
`(?:${escapeChar}[\\S\\s]|(?:(?!${// Using `XRegExp.union` safely rewrites backreferences in `left` and `right`.
|
|
1910
|
-
// Intentionally not passing `basicFlags` to `XRegExp.union` since any syntax
|
|
1911
|
-
// transformation resulting from those flags was already applied to `left` and
|
|
1912
|
-
// `right` when they were passed through the XRegExp constructor above.
|
|
1913
|
-
XRegExp2.union([left, right], "", { conjunction: "or" }).source})[^${escapeChar}])+)+`,
|
|
1914
|
-
// Flags `dgy` not needed here
|
|
1915
|
-
flags.replace(XRegExp2._hasNativeFlag("s") ? /[^imsu]/g : /[^imu]/g, "")
|
|
1916
|
-
);
|
|
1917
|
-
}
|
|
1918
|
-
let openTokens = 0;
|
|
1919
|
-
let delimStart = 0;
|
|
1920
|
-
let delimEnd = 0;
|
|
1921
|
-
let lastOuterEnd = 0;
|
|
1922
|
-
let outerStart;
|
|
1923
|
-
let innerStart;
|
|
1924
|
-
let leftMatch;
|
|
1925
|
-
let rightMatch;
|
|
1926
|
-
const vN = options.valueNames;
|
|
1927
|
-
const output = [];
|
|
1928
|
-
while (true) {
|
|
1929
|
-
if (escapeChar) {
|
|
1930
|
-
delimEnd += (XRegExp2.exec(str, esc, delimEnd, "sticky") || [""])[0].length;
|
|
1931
|
-
}
|
|
1932
|
-
leftMatch = XRegExp2.exec(str, left, delimEnd);
|
|
1933
|
-
rightMatch = XRegExp2.exec(str, right, delimEnd);
|
|
1934
|
-
if (leftMatch && rightMatch) {
|
|
1935
|
-
if (leftMatch.index <= rightMatch.index) {
|
|
1936
|
-
rightMatch = null;
|
|
1937
|
-
} else {
|
|
1938
|
-
leftMatch = null;
|
|
1939
|
-
}
|
|
1940
|
-
}
|
|
1941
|
-
if (leftMatch || rightMatch) {
|
|
1942
|
-
delimStart = (leftMatch || rightMatch).index;
|
|
1943
|
-
delimEnd = delimStart + (leftMatch || rightMatch)[0].length;
|
|
1944
|
-
} else if (!openTokens) {
|
|
1945
|
-
break;
|
|
1946
|
-
}
|
|
1947
|
-
if (sticky && !openTokens && delimStart > lastOuterEnd) {
|
|
1948
|
-
break;
|
|
1949
|
-
}
|
|
1950
|
-
if (leftMatch) {
|
|
1951
|
-
if (!openTokens) {
|
|
1952
|
-
outerStart = delimStart;
|
|
1953
|
-
innerStart = delimEnd;
|
|
1954
|
-
}
|
|
1955
|
-
openTokens += 1;
|
|
1956
|
-
} else if (rightMatch && openTokens) {
|
|
1957
|
-
openTokens -= 1;
|
|
1958
|
-
if (!openTokens) {
|
|
1959
|
-
if (vN) {
|
|
1960
|
-
if (vN[0] && outerStart > lastOuterEnd) {
|
|
1961
|
-
output.push(row(vN[0], str.slice(lastOuterEnd, outerStart), lastOuterEnd, outerStart));
|
|
1962
|
-
}
|
|
1963
|
-
if (vN[1]) {
|
|
1964
|
-
output.push(row(vN[1], str.slice(outerStart, innerStart), outerStart, innerStart));
|
|
1965
|
-
}
|
|
1966
|
-
if (vN[2]) {
|
|
1967
|
-
output.push(row(vN[2], str.slice(innerStart, delimStart), innerStart, delimStart));
|
|
1968
|
-
}
|
|
1969
|
-
if (vN[3]) {
|
|
1970
|
-
output.push(row(vN[3], str.slice(delimStart, delimEnd), delimStart, delimEnd));
|
|
1971
|
-
}
|
|
1972
|
-
} else {
|
|
1973
|
-
output.push(str.slice(innerStart, delimStart));
|
|
1974
|
-
}
|
|
1975
|
-
lastOuterEnd = delimEnd;
|
|
1976
|
-
if (!global) {
|
|
1977
|
-
break;
|
|
1978
|
-
}
|
|
1979
|
-
}
|
|
1980
|
-
} else {
|
|
1981
|
-
const unbalanced = options.unbalanced || "error";
|
|
1982
|
-
if (unbalanced === "skip" || unbalanced === "skip-lazy") {
|
|
1983
|
-
if (rightMatch) {
|
|
1984
|
-
rightMatch = null;
|
|
1985
|
-
} else {
|
|
1986
|
-
if (unbalanced === "skip") {
|
|
1987
|
-
const outerStartDelimLength = XRegExp2.exec(str, left, outerStart, "sticky")[0].length;
|
|
1988
|
-
delimEnd = outerStart + (outerStartDelimLength || 1);
|
|
1989
|
-
} else {
|
|
1990
|
-
delimEnd = outerStart + 1;
|
|
1991
|
-
}
|
|
1992
|
-
openTokens = 0;
|
|
1993
|
-
}
|
|
1994
|
-
} else if (unbalanced === "error") {
|
|
1995
|
-
const delimSide = rightMatch ? "right" : "left";
|
|
1996
|
-
const errorPos = rightMatch ? delimStart : outerStart;
|
|
1997
|
-
throw new Error(`Unbalanced ${delimSide} delimiter found in string at position ${errorPos}`);
|
|
1998
|
-
} else {
|
|
1999
|
-
throw new Error(`Unsupported value for unbalanced: ${unbalanced}`);
|
|
2000
|
-
}
|
|
2001
|
-
}
|
|
2002
|
-
if (delimStart === delimEnd) {
|
|
2003
|
-
delimEnd += 1;
|
|
2004
|
-
}
|
|
2005
|
-
}
|
|
2006
|
-
if (global && output.length > 0 && !sticky && vN && vN[0] && str.length > lastOuterEnd) {
|
|
2007
|
-
output.push(row(vN[0], str.slice(lastOuterEnd), lastOuterEnd, str.length));
|
|
2008
|
-
}
|
|
2009
|
-
return output;
|
|
2010
|
-
};
|
|
2011
|
-
};
|
|
2012
|
-
|
|
2013
|
-
// ../../../node_modules/.pnpm/xregexp@5.1.1/node_modules/xregexp/src/addons/unicode-base.js
|
|
2014
|
-
var unicode_base_default = (XRegExp2) => {
|
|
2015
|
-
const unicode = {};
|
|
2016
|
-
const unicodeTypes = {};
|
|
2017
|
-
const dec2 = XRegExp2._dec;
|
|
2018
|
-
const hex2 = XRegExp2._hex;
|
|
2019
|
-
const pad42 = XRegExp2._pad4;
|
|
2020
|
-
function normalize(name) {
|
|
2021
|
-
return name.replace(/[- _]+/g, "").toLowerCase();
|
|
2022
|
-
}
|
|
2023
|
-
function charCode(chr) {
|
|
2024
|
-
const esc = /^\\[xu](.+)/.exec(chr);
|
|
2025
|
-
return esc ? dec2(esc[1]) : chr.charCodeAt(chr[0] === "\\" ? 1 : 0);
|
|
2026
|
-
}
|
|
2027
|
-
function invertBmp(range) {
|
|
2028
|
-
let output = "";
|
|
2029
|
-
let lastEnd = -1;
|
|
2030
|
-
XRegExp2.forEach(
|
|
2031
|
-
range,
|
|
2032
|
-
/(\\x..|\\u....|\\?[\s\S])(?:-(\\x..|\\u....|\\?[\s\S]))?/,
|
|
2033
|
-
(m) => {
|
|
2034
|
-
const start = charCode(m[1]);
|
|
2035
|
-
if (start > lastEnd + 1) {
|
|
2036
|
-
output += `\\u${pad42(hex2(lastEnd + 1))}`;
|
|
2037
|
-
if (start > lastEnd + 2) {
|
|
2038
|
-
output += `-\\u${pad42(hex2(start - 1))}`;
|
|
2039
|
-
}
|
|
2040
|
-
}
|
|
2041
|
-
lastEnd = charCode(m[2] || m[1]);
|
|
2042
|
-
}
|
|
2043
|
-
);
|
|
2044
|
-
if (lastEnd < 65535) {
|
|
2045
|
-
output += `\\u${pad42(hex2(lastEnd + 1))}`;
|
|
2046
|
-
if (lastEnd < 65534) {
|
|
2047
|
-
output += "-\\uFFFF";
|
|
2048
|
-
}
|
|
2049
|
-
}
|
|
2050
|
-
return output;
|
|
2051
|
-
}
|
|
2052
|
-
function cacheInvertedBmp(slug) {
|
|
2053
|
-
const prop = "b!";
|
|
2054
|
-
return unicode[slug][prop] || (unicode[slug][prop] = invertBmp(unicode[slug].bmp));
|
|
2055
|
-
}
|
|
2056
|
-
function buildAstral(slug, isNegated) {
|
|
2057
|
-
const item = unicode[slug];
|
|
2058
|
-
let combined = "";
|
|
2059
|
-
if (item.bmp && !item.isBmpLast) {
|
|
2060
|
-
combined = `[${item.bmp}]${item.astral ? "|" : ""}`;
|
|
2061
|
-
}
|
|
2062
|
-
if (item.astral) {
|
|
2063
|
-
combined += item.astral;
|
|
2064
|
-
}
|
|
2065
|
-
if (item.isBmpLast && item.bmp) {
|
|
2066
|
-
combined += `${item.astral ? "|" : ""}[${item.bmp}]`;
|
|
2067
|
-
}
|
|
2068
|
-
return isNegated ? `(?:(?!${combined})(?:[\uD800-\uDBFF][\uDC00-\uDFFF]|[\0-\uFFFF]))` : `(?:${combined})`;
|
|
2069
|
-
}
|
|
2070
|
-
function cacheAstral(slug, isNegated) {
|
|
2071
|
-
const prop = isNegated ? "a!" : "a=";
|
|
2072
|
-
return unicode[slug][prop] || (unicode[slug][prop] = buildAstral(slug, isNegated));
|
|
2073
|
-
}
|
|
2074
|
-
XRegExp2.addToken(
|
|
2075
|
-
// Use `*` instead of `+` to avoid capturing `^` as the token name in `\p{^}`
|
|
2076
|
-
/\\([pP])(?:{(\^?)(?:(\w+)=)?([^}]*)}|([A-Za-z]))/,
|
|
2077
|
-
(match, scope, flags) => {
|
|
2078
|
-
const ERR_DOUBLE_NEG = "Invalid double negation ";
|
|
2079
|
-
const ERR_UNKNOWN_NAME = "Unknown Unicode token ";
|
|
2080
|
-
const ERR_UNKNOWN_REF = "Unicode token missing data ";
|
|
2081
|
-
const ERR_ASTRAL_ONLY = "Astral mode required for Unicode token ";
|
|
2082
|
-
const ERR_ASTRAL_IN_CLASS = "Astral mode does not support Unicode tokens within character classes";
|
|
2083
|
-
const [
|
|
2084
|
-
fullToken,
|
|
2085
|
-
pPrefix,
|
|
2086
|
-
caretNegation,
|
|
2087
|
-
typePrefix,
|
|
2088
|
-
tokenName,
|
|
2089
|
-
tokenSingleCharName
|
|
2090
|
-
] = match;
|
|
2091
|
-
let isNegated = pPrefix === "P" || !!caretNegation;
|
|
2092
|
-
const isAstralMode = flags.includes("A");
|
|
2093
|
-
let slug = normalize(tokenSingleCharName || tokenName);
|
|
2094
|
-
let item = unicode[slug];
|
|
2095
|
-
if (pPrefix === "P" && caretNegation) {
|
|
2096
|
-
throw new SyntaxError(ERR_DOUBLE_NEG + fullToken);
|
|
2097
|
-
}
|
|
2098
|
-
if (!unicode.hasOwnProperty(slug)) {
|
|
2099
|
-
throw new SyntaxError(ERR_UNKNOWN_NAME + fullToken);
|
|
2100
|
-
}
|
|
2101
|
-
if (typePrefix) {
|
|
2102
|
-
if (!(unicodeTypes[typePrefix] && unicodeTypes[typePrefix][slug])) {
|
|
2103
|
-
throw new SyntaxError(ERR_UNKNOWN_NAME + fullToken);
|
|
2104
|
-
}
|
|
2105
|
-
}
|
|
2106
|
-
if (item.inverseOf) {
|
|
2107
|
-
slug = normalize(item.inverseOf);
|
|
2108
|
-
if (!unicode.hasOwnProperty(slug)) {
|
|
2109
|
-
throw new ReferenceError(`${ERR_UNKNOWN_REF + fullToken} -> ${item.inverseOf}`);
|
|
2110
|
-
}
|
|
2111
|
-
item = unicode[slug];
|
|
2112
|
-
isNegated = !isNegated;
|
|
2113
|
-
}
|
|
2114
|
-
if (!(item.bmp || isAstralMode)) {
|
|
2115
|
-
throw new SyntaxError(ERR_ASTRAL_ONLY + fullToken);
|
|
2116
|
-
}
|
|
2117
|
-
if (isAstralMode) {
|
|
2118
|
-
if (scope === "class") {
|
|
2119
|
-
throw new SyntaxError(ERR_ASTRAL_IN_CLASS);
|
|
2120
|
-
}
|
|
2121
|
-
return cacheAstral(slug, isNegated);
|
|
2122
|
-
}
|
|
2123
|
-
return scope === "class" ? isNegated ? cacheInvertedBmp(slug) : item.bmp : `${(isNegated ? "[^" : "[") + item.bmp}]`;
|
|
2124
|
-
},
|
|
2125
|
-
{
|
|
2126
|
-
scope: "all",
|
|
2127
|
-
optionalFlags: "A",
|
|
2128
|
-
leadChar: "\\"
|
|
2129
|
-
}
|
|
2130
|
-
);
|
|
2131
|
-
XRegExp2.addUnicodeData = (data, typePrefix) => {
|
|
2132
|
-
const ERR_NO_NAME = "Unicode token requires name";
|
|
2133
|
-
const ERR_NO_DATA = "Unicode token has no character data ";
|
|
2134
|
-
if (typePrefix) {
|
|
2135
|
-
unicodeTypes[typePrefix] = {};
|
|
2136
|
-
}
|
|
2137
|
-
for (const item of data) {
|
|
2138
|
-
if (!item.name) {
|
|
2139
|
-
throw new Error(ERR_NO_NAME);
|
|
2140
|
-
}
|
|
2141
|
-
if (!(item.inverseOf || item.bmp || item.astral)) {
|
|
2142
|
-
throw new Error(ERR_NO_DATA + item.name);
|
|
2143
|
-
}
|
|
2144
|
-
const normalizedName = normalize(item.name);
|
|
2145
|
-
unicode[normalizedName] = item;
|
|
2146
|
-
if (typePrefix) {
|
|
2147
|
-
unicodeTypes[typePrefix][normalizedName] = true;
|
|
2148
|
-
}
|
|
2149
|
-
if (item.alias) {
|
|
2150
|
-
const normalizedAlias = normalize(item.alias);
|
|
2151
|
-
unicode[normalizedAlias] = item;
|
|
2152
|
-
if (typePrefix) {
|
|
2153
|
-
unicodeTypes[typePrefix][normalizedAlias] = true;
|
|
2154
|
-
}
|
|
2155
|
-
}
|
|
2156
|
-
}
|
|
2157
|
-
XRegExp2.cache.flush("patterns");
|
|
2158
|
-
};
|
|
2159
|
-
XRegExp2._getUnicodeProperty = (name) => {
|
|
2160
|
-
const slug = normalize(name);
|
|
2161
|
-
return unicode[slug];
|
|
2162
|
-
};
|
|
2163
|
-
};
|
|
2164
|
-
|
|
2165
|
-
// ../../../node_modules/.pnpm/xregexp@5.1.1/node_modules/xregexp/src/addons/unicode-categories.js
|
|
2166
|
-
var import_categories = __toESM(require_categories());
|
|
2167
|
-
var unicode_categories_default = (XRegExp2) => {
|
|
2168
|
-
if (!XRegExp2.addUnicodeData) {
|
|
2169
|
-
throw new ReferenceError("Unicode Base must be loaded before Unicode Categories");
|
|
2170
|
-
}
|
|
2171
|
-
XRegExp2.addUnicodeData(import_categories.default);
|
|
2172
|
-
};
|
|
2173
|
-
|
|
2174
|
-
// ../../../node_modules/.pnpm/xregexp@5.1.1/node_modules/xregexp/src/addons/unicode-properties.js
|
|
2175
|
-
var import_properties = __toESM(require_properties());
|
|
2176
|
-
var unicode_properties_default = (XRegExp2) => {
|
|
2177
|
-
if (!XRegExp2.addUnicodeData) {
|
|
2178
|
-
throw new ReferenceError("Unicode Base must be loaded before Unicode Properties");
|
|
2179
|
-
}
|
|
2180
|
-
const unicodeData = import_properties.default;
|
|
2181
|
-
unicodeData.push({
|
|
2182
|
-
name: "Assigned",
|
|
2183
|
-
// Since this is defined as the inverse of Unicode category Cn (Unassigned), the Unicode
|
|
2184
|
-
// Categories addon is required to use this property
|
|
2185
|
-
inverseOf: "Cn"
|
|
2186
|
-
});
|
|
2187
|
-
XRegExp2.addUnicodeData(unicodeData);
|
|
2188
|
-
};
|
|
2189
|
-
|
|
2190
|
-
// ../../../node_modules/.pnpm/xregexp@5.1.1/node_modules/xregexp/src/addons/unicode-scripts.js
|
|
2191
|
-
var import_scripts = __toESM(require_scripts());
|
|
2192
|
-
var unicode_scripts_default = (XRegExp2) => {
|
|
2193
|
-
if (!XRegExp2.addUnicodeData) {
|
|
2194
|
-
throw new ReferenceError("Unicode Base must be loaded before Unicode Scripts");
|
|
2195
|
-
}
|
|
2196
|
-
XRegExp2.addUnicodeData(import_scripts.default, "Script");
|
|
2197
|
-
};
|
|
2198
|
-
|
|
2199
|
-
// ../../../node_modules/.pnpm/xregexp@5.1.1/node_modules/xregexp/src/index.js
|
|
2200
|
-
build_default(xregexp_default);
|
|
2201
|
-
matchrecursive_default(xregexp_default);
|
|
2202
|
-
unicode_base_default(xregexp_default);
|
|
2203
|
-
unicode_categories_default(xregexp_default);
|
|
2204
|
-
unicode_properties_default(xregexp_default);
|
|
2205
|
-
unicode_scripts_default(xregexp_default);
|
|
2206
|
-
var src_default = xregexp_default;
|
|
2207
|
-
|
|
2208
|
-
// ../../../node_modules/.pnpm/is-what@4.1.16/node_modules/is-what/dist/index.js
|
|
2209
|
-
function getType(payload) {
|
|
2210
|
-
return Object.prototype.toString.call(payload).slice(8, -1);
|
|
2211
|
-
}
|
|
2212
|
-
function isPlainObject(payload) {
|
|
2213
|
-
if (getType(payload) !== "Object")
|
|
2214
|
-
return false;
|
|
2215
|
-
const prototype = Object.getPrototypeOf(payload);
|
|
2216
|
-
return !!prototype && prototype.constructor === Object && prototype === Object.prototype;
|
|
2217
|
-
}
|
|
2218
|
-
function isNull(payload) {
|
|
2219
|
-
return getType(payload) === "Null";
|
|
2220
|
-
}
|
|
2221
|
-
function isOneOf(a, b, c, d, e) {
|
|
2222
|
-
return (value) => a(value) || b(value) || !!c && c(value) || !!d && d(value) || !!e && e(value);
|
|
2223
|
-
}
|
|
2224
|
-
function isUndefined(payload) {
|
|
2225
|
-
return getType(payload) === "Undefined";
|
|
2226
|
-
}
|
|
2227
|
-
var isNullOrUndefined = isOneOf(isNull, isUndefined);
|
|
2228
|
-
function isSymbol(payload) {
|
|
2229
|
-
return getType(payload) === "Symbol";
|
|
2230
|
-
}
|
|
2231
|
-
|
|
2232
|
-
// ../../../node_modules/.pnpm/merge-anything@5.1.7/node_modules/merge-anything/dist/index.js
|
|
2233
|
-
function assignProp(carry, key, newVal, originalObject) {
|
|
2234
|
-
const propType = {}.propertyIsEnumerable.call(originalObject, key) ? "enumerable" : "nonenumerable";
|
|
2235
|
-
if (propType === "enumerable")
|
|
2236
|
-
carry[key] = newVal;
|
|
2237
|
-
if (propType === "nonenumerable") {
|
|
2238
|
-
Object.defineProperty(carry, key, {
|
|
2239
|
-
value: newVal,
|
|
2240
|
-
enumerable: false,
|
|
2241
|
-
writable: true,
|
|
2242
|
-
configurable: true
|
|
2243
|
-
});
|
|
2244
|
-
}
|
|
2245
|
-
}
|
|
2246
|
-
function mergeRecursively(origin, newComer, compareFn) {
|
|
2247
|
-
if (!isPlainObject(newComer))
|
|
2248
|
-
return newComer;
|
|
2249
|
-
let newObject = {};
|
|
2250
|
-
if (isPlainObject(origin)) {
|
|
2251
|
-
const props2 = Object.getOwnPropertyNames(origin);
|
|
2252
|
-
const symbols2 = Object.getOwnPropertySymbols(origin);
|
|
2253
|
-
newObject = [...props2, ...symbols2].reduce((carry, key) => {
|
|
2254
|
-
const targetVal = origin[key];
|
|
2255
|
-
if (!isSymbol(key) && !Object.getOwnPropertyNames(newComer).includes(key) || isSymbol(key) && !Object.getOwnPropertySymbols(newComer).includes(key)) {
|
|
2256
|
-
assignProp(
|
|
2257
|
-
carry,
|
|
2258
|
-
key,
|
|
2259
|
-
targetVal,
|
|
2260
|
-
origin
|
|
2261
|
-
);
|
|
2262
|
-
}
|
|
2263
|
-
return carry;
|
|
2264
|
-
}, {});
|
|
2265
|
-
}
|
|
2266
|
-
const props = Object.getOwnPropertyNames(newComer);
|
|
2267
|
-
const symbols = Object.getOwnPropertySymbols(newComer);
|
|
2268
|
-
const result = [...props, ...symbols].reduce((carry, key) => {
|
|
2269
|
-
let newVal = newComer[key];
|
|
2270
|
-
const targetVal = isPlainObject(origin) ? origin[key] : void 0;
|
|
2271
|
-
if (targetVal !== void 0 && isPlainObject(newVal)) {
|
|
2272
|
-
newVal = mergeRecursively(targetVal, newVal, compareFn);
|
|
2273
|
-
}
|
|
2274
|
-
const propToAssign = compareFn ? compareFn(targetVal, newVal, key) : newVal;
|
|
2275
|
-
assignProp(
|
|
2276
|
-
carry,
|
|
2277
|
-
key,
|
|
2278
|
-
propToAssign,
|
|
2279
|
-
newComer
|
|
2280
|
-
);
|
|
2281
|
-
return carry;
|
|
2282
|
-
}, newObject);
|
|
2283
|
-
return result;
|
|
2284
|
-
}
|
|
2285
|
-
function merge(object, ...otherObjects) {
|
|
2286
|
-
return otherObjects.reduce((result, newComer) => {
|
|
2287
|
-
return mergeRecursively(result, newComer);
|
|
2288
|
-
}, object);
|
|
2289
|
-
}
|
|
2290
|
-
|
|
2291
|
-
// ../../../node_modules/.pnpm/@supabase-cache-helpers+postgrest-core@0.12.3_patch_hash=pk7qqc22n5ajzpk5ax7g6nuane_@supabase+postgrest-js@2.81.1/node_modules/@supabase-cache-helpers/postgrest-core/dist/index.js
|
|
2292
|
-
var __defProp = Object.defineProperty;
|
|
2293
|
-
var __defProps = Object.defineProperties;
|
|
2294
|
-
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
2295
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
2296
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
2297
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
2298
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
2299
|
-
var __spreadValues = (a, b) => {
|
|
2300
|
-
for (var prop in b || (b = {}))
|
|
2301
|
-
if (__hasOwnProp.call(b, prop))
|
|
2302
|
-
__defNormalProp(a, prop, b[prop]);
|
|
2303
|
-
if (__getOwnPropSymbols)
|
|
2304
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
2305
|
-
if (__propIsEnum.call(b, prop))
|
|
2306
|
-
__defNormalProp(a, prop, b[prop]);
|
|
2307
|
-
}
|
|
2308
|
-
return a;
|
|
2309
|
-
};
|
|
2310
|
-
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
2311
|
-
var __async = (__this, __arguments, generator) => {
|
|
2312
|
-
return new Promise((resolve, reject) => {
|
|
2313
|
-
var fulfilled = (value) => {
|
|
2314
|
-
try {
|
|
2315
|
-
step(generator.next(value));
|
|
2316
|
-
} catch (e) {
|
|
2317
|
-
reject(e);
|
|
2318
|
-
}
|
|
2319
|
-
};
|
|
2320
|
-
var rejected = (value) => {
|
|
2321
|
-
try {
|
|
2322
|
-
step(generator.throw(value));
|
|
2323
|
-
} catch (e) {
|
|
2324
|
-
reject(e);
|
|
2325
|
-
}
|
|
2326
|
-
};
|
|
2327
|
-
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
2328
|
-
step((generator = generator.apply(__this, __arguments)).next());
|
|
2329
|
-
});
|
|
2330
|
-
};
|
|
2331
|
-
var isAndFilter = (f) => Array.isArray(f.and);
|
|
2332
|
-
var isOrFilter = (f) => Array.isArray(f.or);
|
|
2333
|
-
var isFilterDefinition = (f) => !isAndFilter(f) && !isOrFilter(f);
|
|
2334
|
-
var extractPathsFromFilters = (f, p) => {
|
|
2335
|
-
return f.reduce((prev, filter) => {
|
|
2336
|
-
var _a;
|
|
2337
|
-
if (isAndFilter(filter)) {
|
|
2338
|
-
prev.push(...extractPathsFromFilters(filter.and, p));
|
|
2339
|
-
} else if (isOrFilter(filter)) {
|
|
2340
|
-
prev.push(...extractPathsFromFilters(filter.or, p));
|
|
2341
|
-
} else if (isFilterDefinition(filter)) {
|
|
2342
|
-
const relatedPath = p.find((p2) => p2.path === filter.path);
|
|
2343
|
-
const pathElements = filter.path.split(".");
|
|
2344
|
-
const aliasElements = (_a = filter.alias) == null ? void 0 : _a.split(".");
|
|
2345
|
-
const declaration = pathElements.map(
|
|
2346
|
-
(el, idx) => `${aliasElements && aliasElements[idx] !== el ? `${aliasElements[idx]}:` : ""}${el}`
|
|
2347
|
-
).join(".");
|
|
2348
|
-
prev.push({
|
|
2349
|
-
path: filter.path,
|
|
2350
|
-
alias: filter.alias,
|
|
2351
|
-
declaration: relatedPath ? relatedPath.declaration : declaration
|
|
2352
|
-
});
|
|
2353
|
-
}
|
|
2354
|
-
return prev;
|
|
2355
|
-
}, []);
|
|
2356
|
-
};
|
|
2357
|
-
var removeFirstPathElement = (p) => {
|
|
2358
|
-
const aliasWithoutFirstElement = p.alias ? p.alias.split(".").slice(1).join(".") : void 0;
|
|
2359
|
-
const pathWithoutFirstEelment = p.path.split(".").slice(1).join(".");
|
|
2360
|
-
return {
|
|
2361
|
-
declaration: p.declaration.split(".").slice(1).join("."),
|
|
2362
|
-
path: pathWithoutFirstEelment,
|
|
2363
|
-
alias: aliasWithoutFirstElement && (aliasWithoutFirstElement.split(".").length > 1 || aliasWithoutFirstElement !== pathWithoutFirstEelment) ? aliasWithoutFirstElement : void 0
|
|
2364
|
-
};
|
|
2365
|
-
};
|
|
2366
|
-
var isNestedPath = (p) => Array.isArray(p.paths);
|
|
2367
|
-
var groupPathsRecursive = (paths) => {
|
|
2368
|
-
const grouped = paths.reduce((prev, curr) => {
|
|
2369
|
-
const levels = curr.path.split(".").length;
|
|
2370
|
-
if (levels === 1) {
|
|
2371
|
-
prev.push(curr);
|
|
2372
|
-
return prev;
|
|
2373
|
-
}
|
|
2374
|
-
const firstLevelDeclaration = curr.declaration.split(".")[0];
|
|
2375
|
-
const indexOfNested = prev.findIndex(
|
|
2376
|
-
(p) => isNestedPath(p) && p.declaration === firstLevelDeclaration
|
|
2377
|
-
);
|
|
2378
|
-
const pathWithoutCurrentLevel = removeFirstPathElement(curr);
|
|
2379
|
-
if (indexOfNested !== -1) {
|
|
2380
|
-
prev[indexOfNested].paths.push(pathWithoutCurrentLevel);
|
|
2381
|
-
return prev;
|
|
2382
|
-
}
|
|
2383
|
-
prev.push(__spreadValues({
|
|
2384
|
-
declaration: firstLevelDeclaration,
|
|
2385
|
-
path: curr.path.split(".")[0],
|
|
2386
|
-
paths: [pathWithoutCurrentLevel]
|
|
2387
|
-
}, curr.alias ? { alias: curr.alias.split(".")[0] } : {}));
|
|
2388
|
-
return prev;
|
|
2389
|
-
}, []);
|
|
2390
|
-
return grouped.map(
|
|
2391
|
-
(p) => isNestedPath(p) ? __spreadProps(__spreadValues({}, p), { paths: groupPathsRecursive(p.paths) }) : p
|
|
2392
|
-
);
|
|
2393
|
-
};
|
|
2394
|
-
var parseSelectParam = (s, currentPath) => {
|
|
2395
|
-
s = s.replace(/\s/g, "");
|
|
2396
|
-
let result;
|
|
2397
|
-
try {
|
|
2398
|
-
result = src_default.matchRecursive(`,${s}`, "([^,\\(]+)\\(", "\\)", "g", {
|
|
2399
|
-
valueNames: {
|
|
2400
|
-
"0": null,
|
|
2401
|
-
"1": "tableName",
|
|
2402
|
-
"2": "selectedColumns",
|
|
2403
|
-
"3": null
|
|
2404
|
-
}
|
|
2405
|
-
}).map((item) => {
|
|
2406
|
-
if (item.name === "tableName" && item.value && !item.value.startsWith(",")) {
|
|
2407
|
-
item.value = "," + item.value;
|
|
2408
|
-
}
|
|
2409
|
-
return item;
|
|
2410
|
-
});
|
|
2411
|
-
} catch (e) {
|
|
2412
|
-
const path = (currentPath == null ? void 0 : currentPath.path) ? `${currentPath == null ? void 0 : currentPath.declaration} with alias ${currentPath == null ? void 0 : currentPath.alias} at path ${currentPath == null ? void 0 : currentPath.path}` : "root";
|
|
2413
|
-
throw new Error(`Unable to parse ${s} at ${path}`, {
|
|
2414
|
-
cause: e
|
|
2415
|
-
});
|
|
2416
|
-
}
|
|
2417
|
-
const foreignTables = result.reduce((prev, curr, idx, matches) => {
|
|
2418
|
-
if (curr.name === "selectedColumns" && curr.value.length > 0) {
|
|
2419
|
-
const name = matches[idx - 1].value.slice(1, -1);
|
|
2420
|
-
prev = __spreadProps(__spreadValues({}, prev), { [name]: curr.value });
|
|
2421
|
-
}
|
|
2422
|
-
return prev;
|
|
2423
|
-
}, {});
|
|
2424
|
-
const columns = s.replace(
|
|
2425
|
-
new RegExp(
|
|
2426
|
-
`${Object.entries(foreignTables).map(
|
|
2427
|
-
([table, selectedColumns]) => `${table}(${selectedColumns})`.replace(/\(/g, "\\(").replace(/\)/g, "\\)").replace(/\*/g, "\\*")
|
|
2428
|
-
).join("|")}`,
|
|
2429
|
-
"g"
|
|
2430
|
-
),
|
|
2431
|
-
""
|
|
2432
|
-
).replace(/(,)\1+/g, ",").split(",").filter((c) => c.length > 0).map((c) => {
|
|
2433
|
-
var _a;
|
|
2434
|
-
const split = c.split(":");
|
|
2435
|
-
const hasAlias = split.length > 1;
|
|
2436
|
-
const aggregateSplit = split[hasAlias ? 1 : 0].split(".");
|
|
2437
|
-
const hasAggregate = aggregateSplit.length > 1 && aggregateSplit[1].endsWith("()");
|
|
2438
|
-
return __spreadValues({
|
|
2439
|
-
declaration: [currentPath == null ? void 0 : currentPath.declaration, c].filter(Boolean).join("."),
|
|
2440
|
-
alias: hasAlias || (currentPath == null ? void 0 : currentPath.alias) ? [(_a = currentPath == null ? void 0 : currentPath.alias) != null ? _a : currentPath == null ? void 0 : currentPath.path, split[0]].filter(Boolean).join(".") : void 0,
|
|
2441
|
-
path: [
|
|
2442
|
-
currentPath == null ? void 0 : currentPath.path,
|
|
2443
|
-
hasAggregate ? aggregateSplit[0] : split[hasAlias ? 1 : 0]
|
|
2444
|
-
].filter(Boolean).join(".")
|
|
2445
|
-
}, hasAggregate ? { aggregate: aggregateSplit[1].slice(0, -2) } : {});
|
|
2446
|
-
});
|
|
2447
|
-
return [
|
|
2448
|
-
...columns,
|
|
2449
|
-
...Object.entries(foreignTables).flatMap(
|
|
2450
|
-
([currentDeclaration, selectedColumns]) => {
|
|
2451
|
-
var _a;
|
|
2452
|
-
const aliasSplit = currentDeclaration.split(":");
|
|
2453
|
-
const currentAliasElem = aliasSplit.length > 1 ? aliasSplit[0] : void 0;
|
|
2454
|
-
const currentPathDeclaration = aliasSplit[aliasSplit.length - 1];
|
|
2455
|
-
const currentPathElem = currentPathDeclaration.split("!")[0];
|
|
2456
|
-
const path = [currentPath == null ? void 0 : currentPath.path, currentPathElem].filter(Boolean).join(".");
|
|
2457
|
-
const alias = [
|
|
2458
|
-
(_a = currentPath == null ? void 0 : currentPath.alias) != null ? _a : currentPath == null ? void 0 : currentPath.path,
|
|
2459
|
-
currentAliasElem != null ? currentAliasElem : currentPathElem
|
|
2460
|
-
].filter(Boolean).join(".");
|
|
2461
|
-
const declaration = [currentPath == null ? void 0 : currentPath.declaration, currentDeclaration].filter(Boolean).join(".");
|
|
2462
|
-
return parseSelectParam(`${selectedColumns}`, {
|
|
2463
|
-
path,
|
|
2464
|
-
alias: (currentPath == null ? void 0 : currentPath.alias) || currentAliasElem ? alias : void 0,
|
|
2465
|
-
declaration
|
|
2466
|
-
});
|
|
2467
|
-
}
|
|
2468
|
-
)
|
|
2469
|
-
];
|
|
2470
|
-
};
|
|
2471
|
-
var removeAliasFromDeclaration = (d) => d.split(".").map((el) => el.split(":").pop()).join(".");
|
|
2472
|
-
var buildSelectStatement = (paths) => {
|
|
2473
|
-
return buildSelectStatementFromGroupedPaths(groupPathsRecursive(paths));
|
|
2474
|
-
};
|
|
2475
|
-
var buildSelectStatementFromGroupedPaths = (paths) => paths.map((i) => {
|
|
2476
|
-
if (isNestedPath(i)) {
|
|
2477
|
-
return `${i.declaration}(${buildSelectStatement(i.paths)})`;
|
|
2478
|
-
}
|
|
2479
|
-
return `${i.alias ? `${i.alias}:` : ""}${i.path}`;
|
|
2480
|
-
}).join(",");
|
|
2481
|
-
var DEDUPE_ALIAS_PREFIX = "d";
|
|
2482
|
-
var dedupeGroupedPathsRecursive = (grouped) => {
|
|
2483
|
-
const dedupeCounters = /* @__PURE__ */ new Map();
|
|
2484
|
-
return grouped.map((p, idx, a) => {
|
|
2485
|
-
if (!isNestedPath(p)) return p;
|
|
2486
|
-
if (a.some((i, itemIdx) => i.path === p.path && idx !== itemIdx)) {
|
|
2487
|
-
const counter = dedupeCounters.get(p.path) || 0;
|
|
2488
|
-
dedupeCounters.set(p.path, counter + 1);
|
|
2489
|
-
const alias = [DEDUPE_ALIAS_PREFIX, counter, p.path].join("_");
|
|
2490
|
-
return __spreadProps(__spreadValues({}, p), {
|
|
2491
|
-
alias,
|
|
2492
|
-
declaration: `${alias}:${p.declaration}`,
|
|
2493
|
-
paths: dedupeGroupedPathsRecursive(p.paths)
|
|
2494
|
-
});
|
|
2495
|
-
}
|
|
2496
|
-
return __spreadProps(__spreadValues({}, p), {
|
|
2497
|
-
paths: dedupeGroupedPathsRecursive(p.paths)
|
|
2498
|
-
});
|
|
2499
|
-
});
|
|
2500
|
-
};
|
|
2501
|
-
var buildNormalizedQuery = ({
|
|
2502
|
-
query,
|
|
2503
|
-
disabled,
|
|
2504
|
-
queriesForTable
|
|
2505
|
-
}) => {
|
|
2506
|
-
var _a;
|
|
2507
|
-
const userQueryPaths = query ? parseSelectParam(query) : null;
|
|
2508
|
-
const paths = userQueryPaths ? userQueryPaths.map((q) => ({
|
|
2509
|
-
declaration: removeAliasFromDeclaration(q.declaration),
|
|
2510
|
-
path: q.path
|
|
2511
|
-
})) : [];
|
|
2512
|
-
if (!disabled) {
|
|
2513
|
-
for (const tableQuery of queriesForTable()) {
|
|
2514
|
-
for (const filterPath of extractPathsFromFilters(
|
|
2515
|
-
tableQuery.filters,
|
|
2516
|
-
tableQuery.paths
|
|
2517
|
-
)) {
|
|
2518
|
-
const path = (_a = tableQuery.paths.find(
|
|
2519
|
-
(p) => p.path === filterPath.path && p.alias === filterPath.alias
|
|
2520
|
-
)) != null ? _a : {
|
|
2521
|
-
path: filterPath.path,
|
|
2522
|
-
declaration: filterPath.path
|
|
2523
|
-
};
|
|
2524
|
-
if (paths.every(
|
|
2525
|
-
(p) => removeAliasFromDeclaration(p.declaration) !== removeAliasFromDeclaration(path.declaration)
|
|
2526
|
-
)) {
|
|
2527
|
-
paths.push({
|
|
2528
|
-
path: path.path,
|
|
2529
|
-
declaration: removeAliasFromDeclaration(path.declaration)
|
|
2530
|
-
});
|
|
2531
|
-
}
|
|
2532
|
-
}
|
|
2533
|
-
for (const path of tableQuery.paths) {
|
|
2534
|
-
if (paths.every(
|
|
2535
|
-
(p) => removeAliasFromDeclaration(p.declaration) !== removeAliasFromDeclaration(path.declaration)
|
|
2536
|
-
) && // do not add agg functions
|
|
2537
|
-
!path.declaration.endsWith(".count") && // do not add wildcard queries
|
|
2538
|
-
!path.declaration.endsWith("*")) {
|
|
2539
|
-
paths.push({
|
|
2540
|
-
path: path.path,
|
|
2541
|
-
declaration: removeAliasFromDeclaration(path.declaration)
|
|
2542
|
-
});
|
|
2543
|
-
}
|
|
2544
|
-
}
|
|
2545
|
-
}
|
|
2546
|
-
}
|
|
2547
|
-
const groupedPaths = groupPathsRecursive(paths);
|
|
2548
|
-
const groupedDedupedPaths = dedupeGroupedPathsRecursive(groupedPaths);
|
|
2549
|
-
const selectQuery = buildSelectStatementFromGroupedPaths(groupedDedupedPaths);
|
|
2550
|
-
if (selectQuery.length === 0) return null;
|
|
2551
|
-
return {
|
|
2552
|
-
selectQuery,
|
|
2553
|
-
groupedUserQueryPaths: userQueryPaths ? groupPathsRecursive(userQueryPaths) : null,
|
|
2554
|
-
groupedPaths: groupedDedupedPaths
|
|
2555
|
-
};
|
|
2556
|
-
};
|
|
2557
|
-
var get = (obj, path, defaultValue = void 0) => {
|
|
2558
|
-
const split = path.split(/((?:\.|,|\[|\]|->>|->)+)/g);
|
|
2559
|
-
let result = obj;
|
|
2560
|
-
for (let i = -1; i < split.length; i += 2) {
|
|
2561
|
-
const separator = split[i];
|
|
2562
|
-
let key = split[i + 1];
|
|
2563
|
-
if (!key) {
|
|
2564
|
-
continue;
|
|
2565
|
-
}
|
|
2566
|
-
if ((separator == null ? void 0 : separator.endsWith("->")) || (separator == null ? void 0 : separator.endsWith("->>"))) {
|
|
2567
|
-
if (/^\d+$/.test(key)) {
|
|
2568
|
-
key = Number.parseInt(key, 10);
|
|
2569
|
-
}
|
|
2570
|
-
}
|
|
2571
|
-
if (separator == null ? void 0 : separator.endsWith("->>")) {
|
|
2572
|
-
result = `${result ? result[key] : result}`;
|
|
2573
|
-
} else {
|
|
2574
|
-
result = result ? result[key] : result;
|
|
2575
|
-
}
|
|
2576
|
-
}
|
|
2577
|
-
return result === void 0 || result === obj ? defaultValue : result;
|
|
2578
|
-
};
|
|
2579
|
-
function isPlainObject2(value) {
|
|
2580
|
-
return Object.prototype.toString.call(value) === "[object Object]";
|
|
2581
|
-
}
|
|
2582
|
-
var buildMutationFetcherResponse = (input, {
|
|
2583
|
-
groupedPaths,
|
|
2584
|
-
groupedUserQueryPaths
|
|
2585
|
-
}) => {
|
|
2586
|
-
return {
|
|
2587
|
-
normalizedData: normalizeResponse(groupedPaths, input),
|
|
2588
|
-
userQueryData: groupedUserQueryPaths ? buildUserQueryData(groupedUserQueryPaths, groupedPaths, input) : void 0
|
|
2589
|
-
};
|
|
2590
|
-
};
|
|
2591
|
-
var normalizeResponse = (groups, obj) => {
|
|
2592
|
-
if (groups.some((p) => p.path === "*")) {
|
|
2593
|
-
Object.entries(obj).forEach(([k, v]) => {
|
|
2594
|
-
if (typeof v === "object" || Array.isArray(v)) {
|
|
2595
|
-
if (!groups.some((g) => isNestedPath(g) && g.path === k)) {
|
|
2596
|
-
groups.push({
|
|
2597
|
-
path: k,
|
|
2598
|
-
declaration: k
|
|
2599
|
-
});
|
|
2600
|
-
}
|
|
2601
|
-
} else if (!groups.some((g) => g.path === k)) {
|
|
2602
|
-
groups.push({
|
|
2603
|
-
path: k,
|
|
2604
|
-
declaration: k
|
|
2605
|
-
});
|
|
2606
|
-
}
|
|
2607
|
-
});
|
|
2608
|
-
}
|
|
2609
|
-
return groups.reduce((prev, curr) => {
|
|
2610
|
-
var _a, _b;
|
|
2611
|
-
const value = get(obj, curr.alias || curr.path);
|
|
2612
|
-
if (typeof value === "undefined") return prev;
|
|
2613
|
-
if (value === null) {
|
|
2614
|
-
return __spreadProps(__spreadValues({}, prev), {
|
|
2615
|
-
// add hint to path if it has dedupe alias
|
|
2616
|
-
// can happen if the same relation is queried multiple times via different fkeys
|
|
2617
|
-
[`${curr.path}${((_a = curr.alias) == null ? void 0 : _a.startsWith("d_")) && curr.declaration.split("!").length > 1 ? `!${curr.declaration.split("!")[1]}` : ""}`]: value
|
|
2618
|
-
});
|
|
2619
|
-
}
|
|
2620
|
-
if (!isNestedPath(curr)) {
|
|
2621
|
-
return __spreadValues(__spreadValues({}, prev), flatten({
|
|
2622
|
-
[curr.path]: value !== null && (isPlainObject2(value) || Array.isArray(value) && value.length > 0) ? flatten(value) : value
|
|
2623
|
-
}));
|
|
2624
|
-
}
|
|
2625
|
-
if (Array.isArray(value)) {
|
|
2626
|
-
return __spreadValues(__spreadValues({}, prev), flatten({
|
|
2627
|
-
[curr.path]: value.map((v) => normalizeResponse(curr.paths, v))
|
|
2628
|
-
}));
|
|
2629
|
-
}
|
|
2630
|
-
return __spreadValues(__spreadValues({}, prev), flatten({
|
|
2631
|
-
// add hint to path if it has dedupe alias
|
|
2632
|
-
// can happen if the same relation is queried multiple times via different fkeys
|
|
2633
|
-
[`${curr.path}${((_b = curr.alias) == null ? void 0 : _b.startsWith("d_")) && curr.declaration.split("!").length > 1 ? `!${curr.declaration.split("!")[1]}` : ""}`]: normalizeResponse(curr.paths, value)
|
|
2634
|
-
}));
|
|
2635
|
-
}, {});
|
|
2636
|
-
};
|
|
2637
|
-
var buildUserQueryData = (userQueryGroups, pathGroups, obj) => {
|
|
2638
|
-
if (pathGroups.some((p) => p.path === "*")) {
|
|
2639
|
-
Object.entries(obj).forEach(([k, v]) => {
|
|
2640
|
-
if (typeof v === "object" || Array.isArray(v)) {
|
|
2641
|
-
if (!pathGroups.some((g) => isNestedPath(g) && g.path === k)) {
|
|
2642
|
-
pathGroups.push({
|
|
2643
|
-
path: k,
|
|
2644
|
-
declaration: k
|
|
2645
|
-
});
|
|
2646
|
-
}
|
|
2647
|
-
} else if (!pathGroups.some((g) => g.path === k)) {
|
|
2648
|
-
pathGroups.push({
|
|
2649
|
-
path: k,
|
|
2650
|
-
declaration: k
|
|
2651
|
-
});
|
|
2652
|
-
}
|
|
2653
|
-
});
|
|
2654
|
-
}
|
|
2655
|
-
if (userQueryGroups.some((p) => p.path === "*")) {
|
|
2656
|
-
Object.entries(obj).forEach(([k, v]) => {
|
|
2657
|
-
if (typeof v === "object" || Array.isArray(v)) {
|
|
2658
|
-
if (!pathGroups.some((g) => isNestedPath(g) && g.path === k)) {
|
|
2659
|
-
userQueryGroups.push({
|
|
2660
|
-
path: k,
|
|
2661
|
-
declaration: k
|
|
2662
|
-
});
|
|
2663
|
-
}
|
|
2664
|
-
} else if (!userQueryGroups.some((g) => g.path === k)) {
|
|
2665
|
-
userQueryGroups.push({
|
|
2666
|
-
path: k,
|
|
2667
|
-
declaration: k
|
|
2668
|
-
});
|
|
2669
|
-
}
|
|
2670
|
-
});
|
|
2671
|
-
}
|
|
2672
|
-
return userQueryGroups.reduce((prev, curr) => {
|
|
2673
|
-
if (curr.path === "*") return prev;
|
|
2674
|
-
const inputPath = pathGroups.find(
|
|
2675
|
-
(p) => p.path === curr.path && isNestedPath(p) === isNestedPath(curr)
|
|
2676
|
-
);
|
|
2677
|
-
if (!inputPath) {
|
|
2678
|
-
throw new Error(`Path ${curr.path} not found in response paths`);
|
|
2679
|
-
}
|
|
2680
|
-
const value = get(obj, inputPath.alias || inputPath.path);
|
|
2681
|
-
if (typeof value === "undefined") return prev;
|
|
2682
|
-
if (value === null || !isNestedPath(curr) || !isNestedPath(inputPath)) {
|
|
2683
|
-
prev[curr.alias ? curr.alias : curr.path] = value;
|
|
2684
|
-
} else if (Array.isArray(value)) {
|
|
2685
|
-
prev[curr.alias ? curr.alias : curr.path] = value.map((v) => buildUserQueryData(curr.paths, inputPath.paths, v));
|
|
2686
|
-
} else {
|
|
2687
|
-
prev[curr.alias ? curr.alias : curr.path] = buildUserQueryData(
|
|
2688
|
-
curr.paths,
|
|
2689
|
-
inputPath.paths,
|
|
2690
|
-
value
|
|
2691
|
-
);
|
|
2692
|
-
}
|
|
2693
|
-
return prev;
|
|
2694
|
-
}, {});
|
|
2695
|
-
};
|
|
2696
|
-
var getTableFromUrl = (url) => {
|
|
2697
|
-
var _a;
|
|
2698
|
-
const split = url.toString().split("/");
|
|
2699
|
-
const table = (_a = split.pop()) == null ? void 0 : _a.split("?").shift();
|
|
2700
|
-
const maybeRpc = split.pop();
|
|
2701
|
-
return [maybeRpc === "rpc" ? maybeRpc : null, table].filter(Boolean).join("/");
|
|
2702
|
-
};
|
|
2703
|
-
var isLikeQueryBuilder = (v) => {
|
|
2704
|
-
if (typeof v !== "object" || v === null) return false;
|
|
2705
|
-
const obj = v;
|
|
2706
|
-
return typeof obj["url"] === "object";
|
|
2707
|
-
};
|
|
2708
|
-
var getTable = (query) => {
|
|
2709
|
-
if (!isLikeQueryBuilder(query)) {
|
|
2710
|
-
throw new Error("Invalid PostgrestBuilder");
|
|
2711
|
-
}
|
|
2712
|
-
return getTableFromUrl(query["url"].pathname);
|
|
2713
|
-
};
|
|
2714
|
-
var isPostgrestPaginationCacheData = (q) => {
|
|
2715
|
-
if (!Array.isArray(q)) return false;
|
|
2716
|
-
return q.length === 0 || Array.isArray(q[0]);
|
|
2717
|
-
};
|
|
2718
|
-
var isPostgrestHasMorePaginationCacheData = (q) => {
|
|
2719
|
-
if (!Array.isArray(q)) return false;
|
|
2720
|
-
if (q.length === 0) return true;
|
|
2721
|
-
const firstPage = q[0];
|
|
2722
|
-
return Array.isArray(
|
|
2723
|
-
firstPage.data
|
|
2724
|
-
) && typeof firstPage.hasMore === "boolean";
|
|
2725
|
-
};
|
|
2726
|
-
var isAnyPostgrestResponse = (q) => {
|
|
2727
|
-
if (!q) return false;
|
|
2728
|
-
return typeof q.data === "object" || Array.isArray(q.data);
|
|
2729
|
-
};
|
|
2730
|
-
var sortSearchParams = (params) => new URLSearchParams(
|
|
2731
|
-
Array.from(params.entries()).sort((a, b) => {
|
|
2732
|
-
const x = `${a[0]}${a[1]}`;
|
|
2733
|
-
const y = `${b[0]}${b[1]}`;
|
|
2734
|
-
return x > y ? 1 : -1;
|
|
2735
|
-
})
|
|
2736
|
-
);
|
|
2737
|
-
var encodeObject = (obj) => {
|
|
2738
|
-
const sortedEntries = Object.entries(
|
|
2739
|
-
flatten(obj)
|
|
2740
|
-
).sort(([a], [b]) => a.length - b.length);
|
|
2741
|
-
const bodyParams = new URLSearchParams();
|
|
2742
|
-
sortedEntries.forEach(([key, value]) => {
|
|
2743
|
-
bodyParams.append(key, String(value));
|
|
2744
|
-
});
|
|
2745
|
-
return sortSearchParams(bodyParams).toString();
|
|
2746
|
-
};
|
|
2747
|
-
var isPostgrestBuilder = (q) => {
|
|
2748
|
-
return typeof q.throwOnError === "function";
|
|
2749
|
-
};
|
|
2750
|
-
var isPostgrestTransformBuilder = (q) => {
|
|
2751
|
-
return typeof q.abortSignal === "function";
|
|
2752
|
-
};
|
|
2753
|
-
var isISODateString = (v) => typeof v === "string" && /(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))/.test(
|
|
2754
|
-
v
|
|
2755
|
-
);
|
|
2756
|
-
var parseValue = (v) => {
|
|
2757
|
-
if (isISODateString(v)) return new Date(v);
|
|
2758
|
-
try {
|
|
2759
|
-
return JSON.parse(v);
|
|
2760
|
-
} catch (e) {
|
|
2761
|
-
return v;
|
|
2762
|
-
}
|
|
2763
|
-
};
|
|
2764
|
-
var parseOrderByKey = (v) => {
|
|
2765
|
-
return v.split("|").map((orderBy) => {
|
|
2766
|
-
const [tableDef, orderDef] = orderBy.split(":");
|
|
2767
|
-
const [foreignTableOrCol, maybeCol] = tableDef.split(".");
|
|
2768
|
-
const [dir, nulls] = orderDef.split(".");
|
|
2769
|
-
return {
|
|
2770
|
-
ascending: dir === "asc",
|
|
2771
|
-
nullsFirst: nulls === "nullsFirst",
|
|
2772
|
-
foreignTable: maybeCol ? foreignTableOrCol : void 0,
|
|
2773
|
-
column: maybeCol ? maybeCol : foreignTableOrCol
|
|
2774
|
-
};
|
|
2775
|
-
});
|
|
2776
|
-
};
|
|
2777
|
-
var parseOrderBy = (searchParams) => {
|
|
2778
|
-
const orderBy = [];
|
|
2779
|
-
searchParams.forEach((value, key) => {
|
|
2780
|
-
const split = key.split(".");
|
|
2781
|
-
if (split[split.length === 2 ? 1 : 0] === "order") {
|
|
2782
|
-
const orderByDefs = value.split(",");
|
|
2783
|
-
orderByDefs.forEach((def) => {
|
|
2784
|
-
const [column, ascending, nullsFirst] = def.split(".");
|
|
2785
|
-
orderBy.push({
|
|
2786
|
-
ascending: ascending === "asc",
|
|
2787
|
-
column,
|
|
2788
|
-
nullsFirst: nullsFirst === "nullsfirst",
|
|
2789
|
-
foreignTable: split.length === 2 ? split[0] : void 0
|
|
2790
|
-
});
|
|
2791
|
-
});
|
|
2792
|
-
}
|
|
2793
|
-
});
|
|
2794
|
-
return orderBy;
|
|
2795
|
-
};
|
|
2796
|
-
var buildDeleteFetcher = (qb, primaryKeys, opts) => (input) => __async(void 0, null, function* () {
|
|
2797
|
-
let filterBuilder = qb.delete(opts);
|
|
2798
|
-
if (primaryKeys.length === 1) {
|
|
2799
|
-
const primaryKey = primaryKeys[0];
|
|
2800
|
-
filterBuilder.in(
|
|
2801
|
-
primaryKey,
|
|
2802
|
-
input.map((i) => {
|
|
2803
|
-
const v = i[primaryKey];
|
|
2804
|
-
if (!v) {
|
|
2805
|
-
throw new Error(
|
|
2806
|
-
`Missing value for primary key ${primaryKey}`
|
|
2807
|
-
);
|
|
2808
|
-
}
|
|
2809
|
-
return v;
|
|
2810
|
-
})
|
|
2811
|
-
);
|
|
2812
|
-
} else {
|
|
2813
|
-
filterBuilder = filterBuilder.or(
|
|
2814
|
-
input.map(
|
|
2815
|
-
(i) => `and(${primaryKeys.map((c) => {
|
|
2816
|
-
const v = i[c];
|
|
2817
|
-
if (!v) {
|
|
2818
|
-
throw new Error(
|
|
2819
|
-
`Missing value for primary key ${c}`
|
|
2820
|
-
);
|
|
2821
|
-
}
|
|
2822
|
-
return `${c}.eq.${v}`;
|
|
2823
|
-
})})`
|
|
2824
|
-
).join(",")
|
|
2825
|
-
);
|
|
2826
|
-
}
|
|
2827
|
-
const primaryKeysData = input.map(
|
|
2828
|
-
(i) => primaryKeys.reduce((prev, key) => {
|
|
2829
|
-
return __spreadProps(__spreadValues({}, prev), {
|
|
2830
|
-
[key]: i[key]
|
|
2831
|
-
});
|
|
2832
|
-
}, {})
|
|
2833
|
-
);
|
|
2834
|
-
const query = buildNormalizedQuery(opts);
|
|
2835
|
-
if (query) {
|
|
2836
|
-
const { selectQuery, groupedUserQueryPaths, groupedPaths } = query;
|
|
2837
|
-
const groupedPathsWithPrimaryKeys = groupedPaths;
|
|
2838
|
-
const addKeys = [];
|
|
2839
|
-
primaryKeys.forEach((key) => {
|
|
2840
|
-
if (!groupedPathsWithPrimaryKeys.find((p) => p.path === key)) {
|
|
2841
|
-
groupedPathsWithPrimaryKeys.push({
|
|
2842
|
-
declaration: key,
|
|
2843
|
-
path: key
|
|
2844
|
-
});
|
|
2845
|
-
addKeys.push(key);
|
|
2846
|
-
}
|
|
2847
|
-
});
|
|
2848
|
-
const { data } = yield filterBuilder.select([selectQuery, ...addKeys].join(",")).throwOnError();
|
|
2849
|
-
return data.map(
|
|
2850
|
-
(d) => buildMutationFetcherResponse(d, {
|
|
2851
|
-
groupedPaths: groupedPathsWithPrimaryKeys,
|
|
2852
|
-
groupedUserQueryPaths
|
|
2853
|
-
})
|
|
2854
|
-
);
|
|
2855
|
-
}
|
|
2856
|
-
yield filterBuilder.throwOnError();
|
|
2857
|
-
if (opts.queriesForTable().length > 0) {
|
|
2858
|
-
return primaryKeysData.map((pk) => ({ normalizedData: pk }));
|
|
2859
|
-
}
|
|
2860
|
-
return null;
|
|
2861
|
-
});
|
|
2862
|
-
var shouldRevalidateRelation = (relations, {
|
|
2863
|
-
input,
|
|
2864
|
-
getPostgrestFilter,
|
|
2865
|
-
decodedKey: { schema, table, queryKey }
|
|
2866
|
-
}) => Boolean(
|
|
2867
|
-
relations.find(
|
|
2868
|
-
(r) => (!r.schema || r.schema === schema) && r.relation === table && typeof input[r.fKeyColumn] !== "undefined" && getPostgrestFilter(queryKey, {
|
|
2869
|
-
exclusivePaths: [r.relationIdColumn]
|
|
2870
|
-
}).applyFilters({
|
|
2871
|
-
[r.relationIdColumn]: input[r.fKeyColumn]
|
|
2872
|
-
})
|
|
2873
|
-
)
|
|
2874
|
-
);
|
|
2875
|
-
var shouldRevalidateTable = (tables, { decodedKey: { schema, table } }) => Boolean(
|
|
2876
|
-
tables.find((t) => (!t.schema || t.schema === schema) && t.table === table)
|
|
2877
|
-
);
|
|
2878
|
-
var toHasMorePaginationCacheData = (a, currentData, chunkSize) => {
|
|
2879
|
-
const hasMoreCache = currentData.map((p) => p.hasMore);
|
|
2880
|
-
return a.reduce(
|
|
2881
|
-
(resultArray, item, index) => {
|
|
2882
|
-
var _a, _b;
|
|
2883
|
-
const chunkIndex = Math.floor(index / chunkSize);
|
|
2884
|
-
if (!resultArray[chunkIndex]) {
|
|
2885
|
-
let hasMore = hasMoreCache[chunkIndex];
|
|
2886
|
-
if (!hasMore) {
|
|
2887
|
-
hasMore = hasMoreCache[hasMoreCache.length - 1];
|
|
2888
|
-
}
|
|
2889
|
-
if (chunkIndex > 0) {
|
|
2890
|
-
resultArray[chunkIndex - 1].hasMore = true;
|
|
2891
|
-
}
|
|
2892
|
-
resultArray[chunkIndex] = {
|
|
2893
|
-
data: [],
|
|
2894
|
-
hasMore: (_b = (_a = hasMoreCache[chunkIndex]) != null ? _a : hasMoreCache[hasMoreCache.length - 1]) != null ? _b : false
|
|
2895
|
-
};
|
|
2896
|
-
}
|
|
2897
|
-
resultArray[chunkIndex].data.push(item);
|
|
2898
|
-
return resultArray;
|
|
2899
|
-
},
|
|
2900
|
-
[]
|
|
2901
|
-
);
|
|
2902
|
-
};
|
|
2903
|
-
var toPaginationCacheData = (a, chunkSize) => {
|
|
2904
|
-
return a.reduce(
|
|
2905
|
-
(resultArray, item, index) => {
|
|
2906
|
-
const chunkIndex = Math.floor(index / chunkSize);
|
|
2907
|
-
if (!resultArray[chunkIndex]) {
|
|
2908
|
-
resultArray[chunkIndex] = [];
|
|
2909
|
-
}
|
|
2910
|
-
resultArray[chunkIndex].push(item);
|
|
2911
|
-
return resultArray;
|
|
2912
|
-
},
|
|
2913
|
-
[]
|
|
2914
|
-
);
|
|
2915
|
-
};
|
|
2916
|
-
var filterByPks = (input, currentData, primaryKeys) => {
|
|
2917
|
-
return currentData.filter(
|
|
2918
|
-
(i) => primaryKeys.some((pk) => i[pk] !== input[pk])
|
|
2919
|
-
);
|
|
2920
|
-
};
|
|
2921
|
-
var deleteItem = (op, cache) => __async(void 0, null, function* () {
|
|
2922
|
-
var _a;
|
|
2923
|
-
const {
|
|
2924
|
-
revalidateRelations: revalidateRelationsOpt,
|
|
2925
|
-
revalidateTables: revalidateTablesOpt,
|
|
2926
|
-
schema,
|
|
2927
|
-
table
|
|
2928
|
-
} = op;
|
|
2929
|
-
const { cacheKeys, decode: decode2, getPostgrestFilter, mutate, revalidate } = cache;
|
|
2930
|
-
const mutations = [];
|
|
2931
|
-
for (const k of cacheKeys) {
|
|
2932
|
-
const key = decode2(k);
|
|
2933
|
-
if (!key) continue;
|
|
2934
|
-
const filter = getPostgrestFilter(key.queryKey);
|
|
2935
|
-
if (key.schema === schema && key.table === table) {
|
|
2936
|
-
if (key.isHead === true) {
|
|
2937
|
-
mutations.push(revalidate(k));
|
|
2938
|
-
} else {
|
|
2939
|
-
const transformedInput = filter.denormalize(op.input);
|
|
2940
|
-
if (
|
|
2941
|
-
// For delete, the input has to have a value for all primary keys
|
|
2942
|
-
op.primaryKeys.every(
|
|
2943
|
-
(pk) => typeof transformedInput[pk] !== "undefined"
|
|
2944
|
-
)
|
|
2945
|
-
) {
|
|
2946
|
-
const limit = (_a = key.limit) != null ? _a : 1e3;
|
|
2947
|
-
mutations.push(
|
|
2948
|
-
mutate(k, (currentData) => {
|
|
2949
|
-
if (!currentData) return currentData;
|
|
2950
|
-
if (isPostgrestHasMorePaginationCacheData(currentData)) {
|
|
2951
|
-
return toHasMorePaginationCacheData(
|
|
2952
|
-
filterByPks(
|
|
2953
|
-
transformedInput,
|
|
2954
|
-
currentData.flatMap((p) => p.data),
|
|
2955
|
-
op.primaryKeys
|
|
2956
|
-
),
|
|
2957
|
-
currentData,
|
|
2958
|
-
limit
|
|
2959
|
-
);
|
|
2960
|
-
} else if (isPostgrestPaginationCacheData(currentData)) {
|
|
2961
|
-
return toPaginationCacheData(
|
|
2962
|
-
filterByPks(
|
|
2963
|
-
transformedInput,
|
|
2964
|
-
currentData.flat(),
|
|
2965
|
-
op.primaryKeys
|
|
2966
|
-
),
|
|
2967
|
-
limit
|
|
2968
|
-
);
|
|
2969
|
-
} else if (isAnyPostgrestResponse(currentData)) {
|
|
2970
|
-
const { data } = currentData;
|
|
2971
|
-
if (!Array.isArray(data)) {
|
|
2972
|
-
if (data && op.primaryKeys.some(
|
|
2973
|
-
(pk) => transformedInput[pk] !== data[pk]
|
|
2974
|
-
)) {
|
|
2975
|
-
return currentData;
|
|
2976
|
-
} else {
|
|
2977
|
-
return { data: null };
|
|
2978
|
-
}
|
|
2979
|
-
}
|
|
2980
|
-
const newData = filterByPks(
|
|
2981
|
-
transformedInput,
|
|
2982
|
-
data,
|
|
2983
|
-
op.primaryKeys
|
|
2984
|
-
);
|
|
2985
|
-
return {
|
|
2986
|
-
data: newData,
|
|
2987
|
-
count: newData.length
|
|
2988
|
-
};
|
|
2989
|
-
}
|
|
2990
|
-
})
|
|
2991
|
-
);
|
|
2992
|
-
}
|
|
2993
|
-
}
|
|
2994
|
-
}
|
|
2995
|
-
if (revalidateTablesOpt && shouldRevalidateTable(revalidateTablesOpt, { decodedKey: key })) {
|
|
2996
|
-
mutations.push(revalidate(k));
|
|
2997
|
-
}
|
|
2998
|
-
if (revalidateRelationsOpt && shouldRevalidateRelation(revalidateRelationsOpt, {
|
|
2999
|
-
input: op.input,
|
|
3000
|
-
getPostgrestFilter,
|
|
3001
|
-
decodedKey: key
|
|
3002
|
-
})) {
|
|
3003
|
-
mutations.push(revalidate(k));
|
|
3004
|
-
}
|
|
3005
|
-
}
|
|
3006
|
-
yield Promise.all(mutations);
|
|
3007
|
-
});
|
|
3008
|
-
function buildInsertFetcher(qb, opts) {
|
|
3009
|
-
return (input) => __async(this, null, function* () {
|
|
3010
|
-
const query = buildNormalizedQuery(opts);
|
|
3011
|
-
if (query) {
|
|
3012
|
-
const { selectQuery, groupedUserQueryPaths, groupedPaths } = query;
|
|
3013
|
-
const { data } = yield qb.insert(input, opts).select(selectQuery).throwOnError();
|
|
3014
|
-
return data.map(
|
|
3015
|
-
(d) => buildMutationFetcherResponse(d, {
|
|
3016
|
-
groupedUserQueryPaths,
|
|
3017
|
-
groupedPaths
|
|
3018
|
-
})
|
|
3019
|
-
);
|
|
3020
|
-
}
|
|
3021
|
-
yield qb.insert(input).throwOnError();
|
|
3022
|
-
return input.map((d) => ({ normalizedData: d }));
|
|
3023
|
-
});
|
|
3024
|
-
}
|
|
3025
|
-
function binarySearch(arr, el, compare) {
|
|
3026
|
-
let m = 0;
|
|
3027
|
-
let n = arr.length - 1;
|
|
3028
|
-
while (m <= n) {
|
|
3029
|
-
const k = n + m >> 1;
|
|
3030
|
-
const cmp = compare(el, arr[k]);
|
|
3031
|
-
if (cmp > 0) {
|
|
3032
|
-
m = k + 1;
|
|
3033
|
-
} else if (cmp < 0) {
|
|
3034
|
-
n = k - 1;
|
|
3035
|
-
} else {
|
|
3036
|
-
return k;
|
|
3037
|
-
}
|
|
3038
|
-
}
|
|
3039
|
-
return m;
|
|
3040
|
-
}
|
|
3041
|
-
var ifDateGetTime = (v) => {
|
|
3042
|
-
if (v instanceof Date) return v.getTime();
|
|
3043
|
-
if (typeof v === "string") {
|
|
3044
|
-
const t = new Date(v).getTime();
|
|
3045
|
-
if (!isNaN(t)) return t;
|
|
3046
|
-
}
|
|
3047
|
-
return v;
|
|
3048
|
-
};
|
|
3049
|
-
var buildSortedComparator = (orderBy) => {
|
|
3050
|
-
return (a, b) => {
|
|
3051
|
-
for (const { column, ascending, nullsFirst, foreignTable } of orderBy) {
|
|
3052
|
-
const aValue = ifDateGetTime(
|
|
3053
|
-
get(
|
|
3054
|
-
a,
|
|
3055
|
-
`${foreignTable ? `${foreignTable}.` : ""}${column}`,
|
|
3056
|
-
null
|
|
3057
|
-
)
|
|
3058
|
-
);
|
|
3059
|
-
const bValue = ifDateGetTime(
|
|
3060
|
-
get(
|
|
3061
|
-
b,
|
|
3062
|
-
`${foreignTable ? `${foreignTable}.` : ""}${column}`,
|
|
3063
|
-
null
|
|
3064
|
-
)
|
|
3065
|
-
);
|
|
3066
|
-
if (aValue === bValue) continue;
|
|
3067
|
-
if (aValue === null || aValue === void 0) {
|
|
3068
|
-
return nullsFirst ? -1 : 1;
|
|
3069
|
-
}
|
|
3070
|
-
if (bValue === null || bValue === void 0) {
|
|
3071
|
-
return nullsFirst ? 1 : -1;
|
|
3072
|
-
}
|
|
3073
|
-
if (ascending) {
|
|
3074
|
-
return aValue < bValue ? -1 : 1;
|
|
3075
|
-
}
|
|
3076
|
-
return aValue < bValue ? 1 : -1;
|
|
3077
|
-
}
|
|
3078
|
-
return 0;
|
|
3079
|
-
};
|
|
3080
|
-
};
|
|
3081
|
-
var findIndexOrdered = (input, currentData, orderBy) => binarySearch(currentData, input, buildSortedComparator(orderBy));
|
|
3082
|
-
var denormalize = (paths, obj) => {
|
|
3083
|
-
const groups = groupPathsRecursive(paths);
|
|
3084
|
-
if (groups.some((g) => g.path === "*")) {
|
|
3085
|
-
Object.keys(obj).forEach((k) => {
|
|
3086
|
-
const keyParts = k.split(".");
|
|
3087
|
-
if (keyParts.length > 1 && groups.some((g) => isNestedPath(g) && g.path === keyParts[0])) {
|
|
3088
|
-
return;
|
|
3089
|
-
}
|
|
3090
|
-
if (groups.some((g) => g.path === keyParts[0])) {
|
|
3091
|
-
return;
|
|
3092
|
-
}
|
|
3093
|
-
groups.push({
|
|
3094
|
-
declaration: keyParts[0],
|
|
3095
|
-
path: keyParts[0]
|
|
3096
|
-
});
|
|
3097
|
-
});
|
|
3098
|
-
}
|
|
3099
|
-
return groups.reduce((prev, curr) => {
|
|
3100
|
-
if (curr.path === "*") return prev;
|
|
3101
|
-
let value = obj[curr.path];
|
|
3102
|
-
if (!isNestedPath(curr)) {
|
|
3103
|
-
if (typeof value === "undefined") {
|
|
3104
|
-
const array = Object.entries(obj).reduce((prev2, [k, v]) => {
|
|
3105
|
-
if (new RegExp(`^${curr.path}.\\d+$`).test(k)) {
|
|
3106
|
-
prev2.push(v);
|
|
3107
|
-
}
|
|
3108
|
-
return prev2;
|
|
3109
|
-
}, []);
|
|
3110
|
-
if (array.length > 0) {
|
|
3111
|
-
value = array;
|
|
3112
|
-
}
|
|
3113
|
-
}
|
|
3114
|
-
if (typeof value === "undefined") {
|
|
3115
|
-
let isArray22 = false;
|
|
3116
|
-
const jsonValue = Object.entries(obj).reduce(
|
|
3117
|
-
(prev2, [k, v]) => {
|
|
3118
|
-
if (k.startsWith(`${curr.path}.`)) {
|
|
3119
|
-
const key = k.slice(curr.path.length + 1);
|
|
3120
|
-
const maybeIdx = key.match(/^\b\d+\b/);
|
|
3121
|
-
if (maybeIdx && isFlatNestedArray(prev2)) {
|
|
3122
|
-
isArray22 = true;
|
|
3123
|
-
prev2 = __spreadProps(__spreadValues({}, prev2), {
|
|
3124
|
-
[maybeIdx[0]]: __spreadProps(__spreadValues({}, prev2[maybeIdx[0]] ? prev2[maybeIdx[0]] : {}), {
|
|
3125
|
-
[key.slice(maybeIdx[0].length + 1)]: v
|
|
3126
|
-
})
|
|
3127
|
-
});
|
|
3128
|
-
} else {
|
|
3129
|
-
prev2[maybeIdx ? maybeIdx[0] : key] = v;
|
|
3130
|
-
}
|
|
3131
|
-
}
|
|
3132
|
-
return prev2;
|
|
3133
|
-
},
|
|
3134
|
-
{}
|
|
3135
|
-
);
|
|
3136
|
-
if (Object.keys(jsonValue).length > 0) {
|
|
3137
|
-
if (isArray22) {
|
|
3138
|
-
value = Object.values(jsonValue).map((v) => unflatten(v));
|
|
3139
|
-
} else {
|
|
3140
|
-
value = unflatten(jsonValue);
|
|
3141
|
-
}
|
|
3142
|
-
}
|
|
3143
|
-
}
|
|
3144
|
-
if (typeof value === "undefined") {
|
|
3145
|
-
return prev;
|
|
3146
|
-
}
|
|
3147
|
-
return __spreadProps(__spreadValues({}, prev), {
|
|
3148
|
-
[curr.alias || curr.path]: value
|
|
3149
|
-
});
|
|
3150
|
-
}
|
|
3151
|
-
if (value === null || Array.isArray(value) && value.length === 0) {
|
|
3152
|
-
return __spreadProps(__spreadValues({}, prev), {
|
|
3153
|
-
[curr.alias || curr.path]: value
|
|
3154
|
-
});
|
|
3155
|
-
}
|
|
3156
|
-
let isArray2 = false;
|
|
3157
|
-
const flatNestedObjectOrArray = Object.entries(obj).reduce((prev2, [k, v]) => {
|
|
3158
|
-
const isNested = k.startsWith(`${curr.path}.`) || k.includes("!") && k.startsWith(`${removeFirstAlias(curr.declaration)}.`);
|
|
3159
|
-
if (!isNested) return prev2;
|
|
3160
|
-
const flatKey = k.slice(
|
|
3161
|
-
(k.includes("!") ? removeFirstAlias(curr.declaration) : curr.path).length + 1
|
|
3162
|
-
);
|
|
3163
|
-
const maybeIdx = flatKey.match(/^\b\d+\b/);
|
|
3164
|
-
if (maybeIdx && isFlatNestedArray(prev2)) {
|
|
3165
|
-
isArray2 = true;
|
|
3166
|
-
const key = flatKey.slice(maybeIdx[0].length + 1);
|
|
3167
|
-
return __spreadProps(__spreadValues({}, prev2), {
|
|
3168
|
-
[maybeIdx[0]]: __spreadProps(__spreadValues({}, prev2[maybeIdx[0]] ? prev2[maybeIdx[0]] : {}), {
|
|
3169
|
-
[key]: v
|
|
3170
|
-
})
|
|
3171
|
-
});
|
|
3172
|
-
}
|
|
3173
|
-
return __spreadProps(__spreadValues({}, prev2), {
|
|
3174
|
-
[flatKey]: v
|
|
3175
|
-
});
|
|
3176
|
-
}, {});
|
|
3177
|
-
if (Object.keys(flatNestedObjectOrArray).length === 0) return prev;
|
|
3178
|
-
if (isArray2 && isFlatNestedArray(flatNestedObjectOrArray)) {
|
|
3179
|
-
return __spreadProps(__spreadValues({}, prev), {
|
|
3180
|
-
[curr.alias || curr.path]: Object.values(flatNestedObjectOrArray).map(
|
|
3181
|
-
(v) => denormalize(curr.paths, v)
|
|
3182
|
-
)
|
|
3183
|
-
});
|
|
3184
|
-
}
|
|
3185
|
-
return __spreadProps(__spreadValues({}, prev), {
|
|
3186
|
-
[curr.alias || curr.path]: denormalize(
|
|
3187
|
-
curr.paths,
|
|
3188
|
-
flatNestedObjectOrArray
|
|
3189
|
-
)
|
|
3190
|
-
});
|
|
3191
|
-
}, {});
|
|
3192
|
-
};
|
|
3193
|
-
var isFlatNestedArray = (obj) => true;
|
|
3194
|
-
var removeFirstAlias = (key) => {
|
|
3195
|
-
const split = key.split(":");
|
|
3196
|
-
if (split.length === 1) return key;
|
|
3197
|
-
split.shift();
|
|
3198
|
-
return split.join(":");
|
|
3199
|
-
};
|
|
3200
|
-
var filterFilterDefinitionsByPaths = (f, paths) => {
|
|
3201
|
-
return f.reduce((prev, filter) => {
|
|
3202
|
-
if (isAndFilter(filter)) {
|
|
3203
|
-
const filters = filterFilterDefinitionsByPaths(filter.and, paths);
|
|
3204
|
-
if (filters.length > 0) {
|
|
3205
|
-
prev.push({ and: filters });
|
|
3206
|
-
}
|
|
3207
|
-
} else if (isOrFilter(filter)) {
|
|
3208
|
-
const filters = filterFilterDefinitionsByPaths(filter.or, paths);
|
|
3209
|
-
if (filters.length > 0) {
|
|
3210
|
-
prev.push({ or: filters });
|
|
3211
|
-
}
|
|
3212
|
-
} else if (isFilterDefinition(filter) && paths.includes(filter.path)) {
|
|
3213
|
-
prev.push(filter);
|
|
3214
|
-
}
|
|
3215
|
-
return prev;
|
|
3216
|
-
}, []);
|
|
3217
|
-
};
|
|
3218
|
-
var isObject = (v) => typeof v === "object" && !Array.isArray(v) && v !== null;
|
|
3219
|
-
var isLikePostgrestBuilder = (v) => {
|
|
3220
|
-
if (typeof v !== "object" || v === null) return false;
|
|
3221
|
-
const obj = v;
|
|
3222
|
-
return typeof obj["url"] === "object" && typeof obj["headers"] === "object" && typeof obj["method"] === "string";
|
|
3223
|
-
};
|
|
3224
|
-
var buildLikeRegex = (search) => new RegExp(`^${search.replace(/%/g, ".*")}$`);
|
|
3225
|
-
var textSearch = (c, v) => {
|
|
3226
|
-
const regExp = `^${v.split("&").map((v2) => v2.trim().toLowerCase()).join("|").replace(/:\*/g, ".*")}$`;
|
|
3227
|
-
const tokens2 = c.match(/'(.*?)'/g).map((t) => t.replace(/'/g, "").toLowerCase());
|
|
3228
|
-
return tokens2.some((t) => new RegExp(regExp).test(t));
|
|
3229
|
-
};
|
|
3230
|
-
var ifDateGetTime2 = (v) => v instanceof Date ? v.getTime() : v;
|
|
3231
|
-
var enclose = (v, char) => {
|
|
3232
|
-
if (!v.startsWith(char)) v = `${char}${v}`;
|
|
3233
|
-
if (!v.endsWith(char)) v = `${v}${char}`;
|
|
3234
|
-
return v;
|
|
3235
|
-
};
|
|
3236
|
-
var OPERATOR_MAP = {
|
|
3237
|
-
eq: (c, v) => ifDateGetTime2(c) === ifDateGetTime2(v),
|
|
3238
|
-
neq: (c, v) => ifDateGetTime2(c) !== ifDateGetTime2(v),
|
|
3239
|
-
gt: (c, v) => c > v,
|
|
3240
|
-
gte: (c, v) => c >= v,
|
|
3241
|
-
lt: (c, v) => c < v,
|
|
3242
|
-
lte: (c, v) => c <= v,
|
|
3243
|
-
like: (c, v) => buildLikeRegex(v).test(c.toString()),
|
|
3244
|
-
ilike: (c, v) => buildLikeRegex(v.toLowerCase()).test(c.toString().toLowerCase()),
|
|
3245
|
-
is: (c, v) => c === v,
|
|
3246
|
-
in: (c, v) => {
|
|
3247
|
-
const parsedValue = v.slice(1, -1).split(",");
|
|
3248
|
-
return parsedValue.some((i) => i === c);
|
|
3249
|
-
},
|
|
3250
|
-
// contains
|
|
3251
|
-
cs: (c, v) => {
|
|
3252
|
-
if (!Array.isArray(c)) return false;
|
|
3253
|
-
if (!Array.isArray(v)) v = v.slice(1, -1).split(",");
|
|
3254
|
-
return v.every((i) => c.some((colVal) => deepEqual(colVal, i)));
|
|
3255
|
-
},
|
|
3256
|
-
// containedBy
|
|
3257
|
-
cd: (c, v) => {
|
|
3258
|
-
if (!Array.isArray(c)) return false;
|
|
3259
|
-
if (!Array.isArray(v)) v = v.slice(1, -1).split(",");
|
|
3260
|
-
return c.every(
|
|
3261
|
-
(i) => v.some((cmpVal) => deepEqual(cmpVal, i))
|
|
3262
|
-
);
|
|
3263
|
-
},
|
|
3264
|
-
fts: textSearch,
|
|
3265
|
-
plfts: (c, v) => buildLikeRegex(enclose(v.toLowerCase(), "%")).test(
|
|
3266
|
-
c.toString().toLowerCase()
|
|
3267
|
-
)
|
|
3268
|
-
};
|
|
3269
|
-
function findLastIndex(array, predicate) {
|
|
3270
|
-
let l = array.length;
|
|
3271
|
-
while (l--) {
|
|
3272
|
-
if (predicate(array[l], l, array)) return l;
|
|
3273
|
-
}
|
|
3274
|
-
return -1;
|
|
3275
|
-
}
|
|
3276
|
-
var isNotNull = (i) => i !== null;
|
|
3277
|
-
var SUPPORTED_OPERATORS = ["or", ...Object.keys(OPERATOR_MAP)];
|
|
3278
|
-
var PostgrestQueryParser = class {
|
|
3279
|
-
constructor(query, opts) {
|
|
3280
|
-
this.opts = opts;
|
|
3281
|
-
this._params = new URLSearchParams(query);
|
|
3282
|
-
}
|
|
3283
|
-
/**
|
|
3284
|
-
* Getter that returns the paths and their aliases that the query selects. Will do the computation only once.
|
|
3285
|
-
*
|
|
3286
|
-
* ```js
|
|
3287
|
-
* const p = new PostgrestParser(
|
|
3288
|
-
* supabaseClient.from("test")
|
|
3289
|
-
* .select(
|
|
3290
|
-
* `name,
|
|
3291
|
-
* city:cities (
|
|
3292
|
-
* test:name
|
|
3293
|
-
* ),
|
|
3294
|
-
* countries (
|
|
3295
|
-
* capital,
|
|
3296
|
-
* population,
|
|
3297
|
-
* some_ref (
|
|
3298
|
-
* test:first,
|
|
3299
|
-
* second
|
|
3300
|
-
* )
|
|
3301
|
-
* )`
|
|
3302
|
-
* );
|
|
3303
|
-
* console.log(p.paths);
|
|
3304
|
-
* // [
|
|
3305
|
-
* // { alias: undefined, path: "name" },
|
|
3306
|
-
* // { alias: "city.test", path: "cities.name" },
|
|
3307
|
-
* // { alias: undefined, path: "countries.capital" },
|
|
3308
|
-
* // { alias: undefined, path: "countries.population" },
|
|
3309
|
-
* // {
|
|
3310
|
-
* // alias: "countries.some_ref.test",
|
|
3311
|
-
* // path: "countries.some_ref.first",
|
|
3312
|
-
* // },
|
|
3313
|
-
* // { alias: undefined, path: "countries.some_ref.second" },
|
|
3314
|
-
* // ];
|
|
3315
|
-
* ```
|
|
3316
|
-
*
|
|
3317
|
-
* @returns an array of paths that the query selects, containing the columns and aliases
|
|
3318
|
-
*/
|
|
3319
|
-
get paths() {
|
|
3320
|
-
if (!this._paths) {
|
|
3321
|
-
const select = this._params.get("select");
|
|
3322
|
-
this._paths = select ? parseSelectParam(select) : [];
|
|
3323
|
-
}
|
|
3324
|
-
return this._paths;
|
|
3325
|
-
}
|
|
3326
|
-
/**
|
|
3327
|
-
* Getter that returns the filters that this query applies in a json object.
|
|
3328
|
-
*
|
|
3329
|
-
* ```js
|
|
3330
|
-
* const p = new PostgrestParser(
|
|
3331
|
-
* supabaseClient.from("test").select('*')
|
|
3332
|
-
* .or("full_name.eq.20,test.neq.true,and(full_name.eq.Test Name,email.eq.test@mail.com)")
|
|
3333
|
-
* .eq("id", "123")
|
|
3334
|
-
* .contains("id", "456")
|
|
3335
|
-
* );
|
|
3336
|
-
*
|
|
3337
|
-
* console.log(p.filters);
|
|
3338
|
-
*
|
|
3339
|
-
* // [
|
|
3340
|
-
* // {
|
|
3341
|
-
* // or: [
|
|
3342
|
-
* // {
|
|
3343
|
-
* // path: "full_name",
|
|
3344
|
-
* // negate: false,
|
|
3345
|
-
* // operator: "eq",
|
|
3346
|
-
* // value: 20,
|
|
3347
|
-
* // },
|
|
3348
|
-
* // {
|
|
3349
|
-
* // path: "test",
|
|
3350
|
-
* // negate: false,
|
|
3351
|
-
* // operator: "neq",
|
|
3352
|
-
* // value: true,
|
|
3353
|
-
* // },
|
|
3354
|
-
* // {
|
|
3355
|
-
* // and: [
|
|
3356
|
-
* // {
|
|
3357
|
-
* // path: "full_name",
|
|
3358
|
-
* // negate: false,
|
|
3359
|
-
* // operator: "eq",
|
|
3360
|
-
* // value: "Test Name",
|
|
3361
|
-
* // },
|
|
3362
|
-
* // {
|
|
3363
|
-
* // path: "email",
|
|
3364
|
-
* // negate: false,
|
|
3365
|
-
* // operator: "eq",
|
|
3366
|
-
* // value: "test@mail.com",
|
|
3367
|
-
* // },
|
|
3368
|
-
* // ],
|
|
3369
|
-
* // },
|
|
3370
|
-
* // ],
|
|
3371
|
-
* // },
|
|
3372
|
-
* // {
|
|
3373
|
-
* // path: "id",
|
|
3374
|
-
* // negate: false,
|
|
3375
|
-
* // operator: "eq",
|
|
3376
|
-
* // value: 123,
|
|
3377
|
-
* // },
|
|
3378
|
-
* // {
|
|
3379
|
-
* // path: "id",
|
|
3380
|
-
* // negate: false,
|
|
3381
|
-
* // operator: "cs",
|
|
3382
|
-
* // value: 456,
|
|
3383
|
-
* // },
|
|
3384
|
-
* // ];
|
|
3385
|
-
* ```
|
|
3386
|
-
*
|
|
3387
|
-
* @returns a FilterDefinitions object
|
|
3388
|
-
*/
|
|
3389
|
-
get filters() {
|
|
3390
|
-
if (!this._filters) {
|
|
3391
|
-
const filters = [];
|
|
3392
|
-
this._params.forEach((value, key) => {
|
|
3393
|
-
if (SUPPORTED_OPERATORS.some(
|
|
3394
|
-
(f) => key === f || value.split(".").includes(f)
|
|
3395
|
-
)) {
|
|
3396
|
-
const filter = this.parseFilterString(`${key}.${value}`, void 0);
|
|
3397
|
-
if (filter !== null) filters.push(filter);
|
|
3398
|
-
}
|
|
3399
|
-
});
|
|
3400
|
-
this._filters = filters;
|
|
3401
|
-
}
|
|
3402
|
-
return this._filters;
|
|
3403
|
-
}
|
|
3404
|
-
parseFilterString(filter, prefix) {
|
|
3405
|
-
if (filter.startsWith("and(") && filter.endsWith(")")) {
|
|
3406
|
-
const andFilters = filter.slice(4, -1).split(",").map((s) => this.parseFilterString(s, prefix)).filter(isNotNull);
|
|
3407
|
-
if (andFilters.length === 0) return null;
|
|
3408
|
-
else return { and: andFilters };
|
|
3409
|
-
}
|
|
3410
|
-
const split = filter.split(".");
|
|
3411
|
-
if ([split[0], split[1]].includes("or")) {
|
|
3412
|
-
let foreignTable;
|
|
3413
|
-
if (split[1] === "or") {
|
|
3414
|
-
foreignTable = split[0];
|
|
3415
|
-
}
|
|
3416
|
-
const orFilters = filter.slice(4 + (foreignTable ? foreignTable.length + 1 : 0), -1).split(",").reduce((prev, curr, idx, filters) => {
|
|
3417
|
-
if (curr.startsWith("and(")) {
|
|
3418
|
-
prev = [...prev, [curr, filters[idx + 1]].join()];
|
|
3419
|
-
} else if (!curr.endsWith(")")) {
|
|
3420
|
-
prev = [...prev, curr];
|
|
3421
|
-
}
|
|
3422
|
-
return prev;
|
|
3423
|
-
}, []).map((s) => this.parseFilterString(s, foreignTable)).filter(isNotNull);
|
|
3424
|
-
if (orFilters.length === 0) return null;
|
|
3425
|
-
else return { or: orFilters };
|
|
3426
|
-
}
|
|
3427
|
-
const operatorIdx = findLastIndex(
|
|
3428
|
-
split,
|
|
3429
|
-
(s) => SUPPORTED_OPERATORS.includes(s)
|
|
3430
|
-
);
|
|
3431
|
-
if (operatorIdx === -1)
|
|
3432
|
-
throw new Error(
|
|
3433
|
-
`Could not find a valid operator in ${split.join(".")}. Supported are ${SUPPORTED_OPERATORS.join(",")}.`
|
|
3434
|
-
);
|
|
3435
|
-
const negate = split[operatorIdx - 1] === "not";
|
|
3436
|
-
const pathOrAlias = [
|
|
3437
|
-
prefix,
|
|
3438
|
-
...split.slice(0, negate ? operatorIdx - 1 : operatorIdx)
|
|
3439
|
-
].filter(Boolean).join(".").replace(/\s/g, "");
|
|
3440
|
-
let path = pathOrAlias;
|
|
3441
|
-
let alias;
|
|
3442
|
-
for (const p of this.paths) {
|
|
3443
|
-
if (p.path === pathOrAlias) {
|
|
3444
|
-
alias = p.alias;
|
|
3445
|
-
break;
|
|
3446
|
-
}
|
|
3447
|
-
if (p.alias === pathOrAlias) {
|
|
3448
|
-
path = p.path;
|
|
3449
|
-
alias = p.alias;
|
|
3450
|
-
break;
|
|
3451
|
-
}
|
|
3452
|
-
}
|
|
3453
|
-
if (this.opts && Array.isArray(this.opts.exclusivePaths) && !this.opts.exclusivePaths.includes(path)) {
|
|
3454
|
-
return null;
|
|
3455
|
-
}
|
|
3456
|
-
const operator = split[operatorIdx];
|
|
3457
|
-
const value = split.slice(operatorIdx + 1).join(".");
|
|
3458
|
-
return {
|
|
3459
|
-
path,
|
|
3460
|
-
alias,
|
|
3461
|
-
negate,
|
|
3462
|
-
operator,
|
|
3463
|
-
value: parseValue(value)
|
|
3464
|
-
};
|
|
3465
|
-
}
|
|
3466
|
-
};
|
|
3467
|
-
var PostgrestFilter = class _PostgrestFilter {
|
|
3468
|
-
constructor(params) {
|
|
3469
|
-
this.params = params;
|
|
3470
|
-
this._filterPaths = extractPathsFromFilters(
|
|
3471
|
-
this.params.filters,
|
|
3472
|
-
this.params.paths
|
|
3473
|
-
);
|
|
3474
|
-
this.hasWildcardPath = this.params.paths.some(
|
|
3475
|
-
(p) => p.declaration.endsWith("*")
|
|
3476
|
-
);
|
|
3477
|
-
this.hasAggregatePath = this.params.paths.some((p) => Boolean(p.aggregate));
|
|
3478
|
-
}
|
|
3479
|
-
static fromQuery(query, opts) {
|
|
3480
|
-
const parser = new PostgrestQueryParser(query, opts);
|
|
3481
|
-
return new _PostgrestFilter({
|
|
3482
|
-
filters: parser.filters,
|
|
3483
|
-
paths: parser.paths
|
|
3484
|
-
});
|
|
3485
|
-
}
|
|
3486
|
-
static fromBuilder(fb, opts) {
|
|
3487
|
-
if (!isLikePostgrestBuilder(fb)) {
|
|
3488
|
-
throw new Error("Invalid PostgrestBuilder");
|
|
3489
|
-
}
|
|
3490
|
-
const parser = new PostgrestQueryParser(
|
|
3491
|
-
fb["url"].searchParams.toString(),
|
|
3492
|
-
opts
|
|
3493
|
-
);
|
|
3494
|
-
return new _PostgrestFilter({
|
|
3495
|
-
filters: parser.filters,
|
|
3496
|
-
paths: parser.paths
|
|
3497
|
-
});
|
|
3498
|
-
}
|
|
3499
|
-
denormalize(obj) {
|
|
3500
|
-
return denormalize([...this.params.paths, ...this._filterPaths], obj);
|
|
3501
|
-
}
|
|
3502
|
-
apply(obj) {
|
|
3503
|
-
if (!this._fn) {
|
|
3504
|
-
this._fn = (obj2) => this.applyFilters(obj2) && this.hasPaths(obj2);
|
|
3505
|
-
}
|
|
3506
|
-
return this._fn(obj);
|
|
3507
|
-
}
|
|
3508
|
-
applyFilters(obj) {
|
|
3509
|
-
if (!this._filtersFn) {
|
|
3510
|
-
const filterFns = this.params.filters.map((d) => this.buildFilterFn(d));
|
|
3511
|
-
this._filtersFn = (obj2) => filterFns.every((fn) => isObject(obj2) && fn(obj2));
|
|
3512
|
-
}
|
|
3513
|
-
return this._filtersFn(obj);
|
|
3514
|
-
}
|
|
3515
|
-
hasFiltersOnPaths(paths) {
|
|
3516
|
-
return filterFilterDefinitionsByPaths(this.params.filters, paths).length > 0;
|
|
3517
|
-
}
|
|
3518
|
-
applyFiltersOnPaths(obj, paths) {
|
|
3519
|
-
const filterFns = filterFilterDefinitionsByPaths(
|
|
3520
|
-
this.params.filters,
|
|
3521
|
-
paths
|
|
3522
|
-
).map((d) => this.buildFilterFn(d));
|
|
3523
|
-
const filtersFn = (obj2) => filterFns.every((fn) => isObject(obj2) && fn(obj2));
|
|
3524
|
-
return filtersFn(obj);
|
|
3525
|
-
}
|
|
3526
|
-
hasPaths(obj) {
|
|
3527
|
-
if (!this._selectFn) {
|
|
3528
|
-
this._selectFn = (obj2) => this.params.paths.every(
|
|
3529
|
-
(p) => {
|
|
3530
|
-
var _a;
|
|
3531
|
-
return this.hasPathRecursive(obj2, (_a = p.alias) != null ? _a : p.path);
|
|
3532
|
-
}
|
|
3533
|
-
);
|
|
3534
|
-
}
|
|
3535
|
-
return this._selectFn(obj);
|
|
3536
|
-
}
|
|
3537
|
-
hasPathRecursive(obj, path) {
|
|
3538
|
-
if (obj === null) return true;
|
|
3539
|
-
const pathElements = path.replace(/->>|->/g, ".").split(".");
|
|
3540
|
-
if (pathElements.length === 1) {
|
|
3541
|
-
return typeof get(obj, pathElements[0]) !== "undefined";
|
|
3542
|
-
}
|
|
3543
|
-
const currentPathElement = pathElements.shift();
|
|
3544
|
-
const v = get(obj, currentPathElement);
|
|
3545
|
-
if (typeof v === "undefined") return false;
|
|
3546
|
-
if (Array.isArray(v)) {
|
|
3547
|
-
return v.every((i) => this.hasPathRecursive(i, pathElements.join(".")));
|
|
3548
|
-
}
|
|
3549
|
-
return this.hasPathRecursive(v, pathElements.join("."));
|
|
3550
|
-
}
|
|
3551
|
-
applyFilterFn(obj, path, {
|
|
3552
|
-
filterFn,
|
|
3553
|
-
value,
|
|
3554
|
-
negate
|
|
3555
|
-
}) {
|
|
3556
|
-
const pathElements = path.replace(/->>|->/g, ".").split(".");
|
|
3557
|
-
const v = get(obj, pathElements[0]);
|
|
3558
|
-
if (typeof v === "undefined") {
|
|
3559
|
-
if (Array.isArray(obj)) {
|
|
3560
|
-
return obj.every(
|
|
3561
|
-
(o) => this.applyFilterFn(o, path, { filterFn, value, negate })
|
|
3562
|
-
);
|
|
3563
|
-
}
|
|
3564
|
-
return false;
|
|
3565
|
-
}
|
|
3566
|
-
if (pathElements.length > 1) {
|
|
3567
|
-
return this.applyFilterFn(
|
|
3568
|
-
v,
|
|
3569
|
-
pathElements.slice(1).join("."),
|
|
3570
|
-
{
|
|
3571
|
-
filterFn,
|
|
3572
|
-
value,
|
|
3573
|
-
negate
|
|
3574
|
-
}
|
|
3575
|
-
);
|
|
3576
|
-
}
|
|
3577
|
-
const res = filterFn(parseValue(v), value);
|
|
3578
|
-
if (negate) return !res;
|
|
3579
|
-
return res;
|
|
3580
|
-
}
|
|
3581
|
-
buildFilterFn(def) {
|
|
3582
|
-
if ("or" in def) {
|
|
3583
|
-
return (obj) => def.or.some((d) => this.buildFilterFn(d)(obj));
|
|
3584
|
-
}
|
|
3585
|
-
if ("and" in def) {
|
|
3586
|
-
return (obj) => def.and.every((d) => this.buildFilterFn(d)(obj));
|
|
3587
|
-
}
|
|
3588
|
-
const { operator, path, value, negate, alias } = def;
|
|
3589
|
-
const filterFn = OPERATOR_MAP[operator];
|
|
3590
|
-
if (!filterFn)
|
|
3591
|
-
throw new Error(
|
|
3592
|
-
`Unable to build filter function for ${JSON.stringify(
|
|
3593
|
-
def
|
|
3594
|
-
)}. Operator ${operator} is not supported.`
|
|
3595
|
-
);
|
|
3596
|
-
return (obj) => this.applyFilterFn(obj, alias != null ? alias : path, { filterFn, value, negate });
|
|
3597
|
-
}
|
|
3598
|
-
};
|
|
3599
|
-
var PostgrestParser = class extends PostgrestQueryParser {
|
|
3600
|
-
constructor(fb, opts) {
|
|
3601
|
-
var _a;
|
|
3602
|
-
if (!isLikePostgrestBuilder(fb)) {
|
|
3603
|
-
throw new Error("Invalid PostgrestBuilder");
|
|
3604
|
-
}
|
|
3605
|
-
super(new URL(fb["url"]).searchParams.toString(), opts);
|
|
3606
|
-
this.opts = opts;
|
|
3607
|
-
this.orderBy = [];
|
|
3608
|
-
this._url = new URL(fb["url"]);
|
|
3609
|
-
this._headers = fb["headers"];
|
|
3610
|
-
this._body = isObject(fb["body"]) ? __spreadValues({}, fb["body"]) : void 0;
|
|
3611
|
-
this._method = fb["method"];
|
|
3612
|
-
this.queryKey = sortSearchParams(this._url.searchParams).toString();
|
|
3613
|
-
this.table = getTableFromUrl(this._url.toString());
|
|
3614
|
-
if (this._body) {
|
|
3615
|
-
this.bodyKey = encodeObject(this._body);
|
|
3616
|
-
}
|
|
3617
|
-
const preferHeaders = (this._headers["Prefer"] ?? "").split(",").reduce((prev, curr) => {
|
|
3618
|
-
const s = curr.split("=");
|
|
3619
|
-
return __spreadProps(__spreadValues({}, prev), {
|
|
3620
|
-
[s[0]]: s[1]
|
|
3621
|
-
});
|
|
3622
|
-
}, {});
|
|
3623
|
-
this.count = (_a = preferHeaders["count"]) != null ? _a : null;
|
|
3624
|
-
this.schema = fb["schema"];
|
|
3625
|
-
this.isHead = this._method === "HEAD";
|
|
3626
|
-
const limit = this._url.searchParams.get("limit");
|
|
3627
|
-
this.limit = limit ? Number(limit) : void 0;
|
|
3628
|
-
const offset = this._url.searchParams.get("offset");
|
|
3629
|
-
this.offset = offset ? Number(offset) : void 0;
|
|
3630
|
-
this.orderBy = parseOrderBy(this._url.searchParams);
|
|
3631
|
-
this.orderByKey = this.orderBy.map(
|
|
3632
|
-
({ column, ascending, nullsFirst, foreignTable }) => `${foreignTable ? `${foreignTable}.` : ""}${column}:${ascending ? "asc" : "desc"}.${nullsFirst ? "nullsFirst" : "nullsLast"}`
|
|
3633
|
-
).join("|");
|
|
3634
|
-
}
|
|
3635
|
-
};
|
|
3636
|
-
var upsert = (input, currentData, primaryKeys, filter, mergeFn, orderBy) => {
|
|
3637
|
-
const merge2 = mergeFn != null ? mergeFn : merge;
|
|
3638
|
-
const itemIdx = currentData.findIndex(
|
|
3639
|
-
(oldItem) => primaryKeys.every((pk) => oldItem[pk] === input[pk])
|
|
3640
|
-
);
|
|
3641
|
-
let newItem = input;
|
|
3642
|
-
let newItemIdx = itemIdx;
|
|
3643
|
-
if (itemIdx !== -1) {
|
|
3644
|
-
newItem = merge2(currentData[itemIdx], input);
|
|
3645
|
-
currentData.splice(itemIdx, 1);
|
|
3646
|
-
}
|
|
3647
|
-
if (orderBy && Array.isArray(orderBy) && orderBy.length > 0) {
|
|
3648
|
-
newItemIdx = findIndexOrdered(newItem, currentData, orderBy);
|
|
3649
|
-
}
|
|
3650
|
-
if (newItemIdx === -1) {
|
|
3651
|
-
newItemIdx = 0;
|
|
3652
|
-
}
|
|
3653
|
-
if (filter.apply(newItem)) {
|
|
3654
|
-
currentData.splice(newItemIdx, 0, newItem);
|
|
3655
|
-
}
|
|
3656
|
-
return currentData;
|
|
3657
|
-
};
|
|
3658
|
-
var upsertItem = (op, cache) => __async(void 0, null, function* () {
|
|
3659
|
-
var _a, _b;
|
|
3660
|
-
const {
|
|
3661
|
-
revalidateRelations: revalidateRelationsOpt,
|
|
3662
|
-
revalidateTables: revalidateTablesOpt,
|
|
3663
|
-
schema,
|
|
3664
|
-
table,
|
|
3665
|
-
primaryKeys
|
|
3666
|
-
} = op;
|
|
3667
|
-
const { cacheKeys, decode: decode2, getPostgrestFilter, mutate, revalidate } = cache;
|
|
3668
|
-
const mutations = [];
|
|
3669
|
-
for (const k of cacheKeys) {
|
|
3670
|
-
const key = decode2(k);
|
|
3671
|
-
if (!key) continue;
|
|
3672
|
-
const filter = getPostgrestFilter(key.queryKey);
|
|
3673
|
-
if (key.schema === schema && key.table === table) {
|
|
3674
|
-
const transformedInput = filter.denormalize(op.input);
|
|
3675
|
-
if (filter.applyFilters(transformedInput) || // also allow upsert if either the filter does not apply eq filters on any pk
|
|
3676
|
-
!filter.hasFiltersOnPaths(op.primaryKeys) || // or input matches all pk filters
|
|
3677
|
-
filter.applyFiltersOnPaths(transformedInput, op.primaryKeys)) {
|
|
3678
|
-
const merge2 = (_a = op.merge) != null ? _a : merge;
|
|
3679
|
-
const limit = (_b = key.limit) != null ? _b : 1e3;
|
|
3680
|
-
const orderBy = key.orderByKey ? parseOrderByKey(key.orderByKey) : void 0;
|
|
3681
|
-
if (key.isHead === true || filter.hasWildcardPath || filter.hasAggregatePath) {
|
|
3682
|
-
mutations.push(revalidate(k));
|
|
3683
|
-
} else {
|
|
3684
|
-
mutations.push(
|
|
3685
|
-
mutate(k, (currentData) => {
|
|
3686
|
-
if (!currentData) return currentData;
|
|
3687
|
-
if (isPostgrestHasMorePaginationCacheData(currentData)) {
|
|
3688
|
-
return toHasMorePaginationCacheData(
|
|
3689
|
-
upsert(
|
|
3690
|
-
transformedInput,
|
|
3691
|
-
currentData.flatMap((p) => p.data),
|
|
3692
|
-
primaryKeys,
|
|
3693
|
-
filter,
|
|
3694
|
-
merge2,
|
|
3695
|
-
orderBy
|
|
3696
|
-
),
|
|
3697
|
-
currentData,
|
|
3698
|
-
limit
|
|
3699
|
-
);
|
|
3700
|
-
} else if (isPostgrestPaginationCacheData(currentData)) {
|
|
3701
|
-
return toPaginationCacheData(
|
|
3702
|
-
upsert(
|
|
3703
|
-
transformedInput,
|
|
3704
|
-
currentData.flat(),
|
|
3705
|
-
primaryKeys,
|
|
3706
|
-
filter,
|
|
3707
|
-
merge2,
|
|
3708
|
-
orderBy
|
|
3709
|
-
),
|
|
3710
|
-
limit
|
|
3711
|
-
);
|
|
3712
|
-
} else if (isAnyPostgrestResponse(currentData)) {
|
|
3713
|
-
const { data } = currentData;
|
|
3714
|
-
if (!Array.isArray(data)) {
|
|
3715
|
-
if (data === null) {
|
|
3716
|
-
return {
|
|
3717
|
-
data,
|
|
3718
|
-
count: currentData.count
|
|
3719
|
-
};
|
|
3720
|
-
}
|
|
3721
|
-
const newData2 = merge2(data, transformedInput);
|
|
3722
|
-
return {
|
|
3723
|
-
// Check if the new data is still valid given the key
|
|
3724
|
-
data: filter.apply(newData2) ? newData2 : null,
|
|
3725
|
-
count: currentData.count
|
|
3726
|
-
};
|
|
3727
|
-
}
|
|
3728
|
-
const newData = upsert(
|
|
3729
|
-
transformedInput,
|
|
3730
|
-
// deep copy data to avoid mutating the original
|
|
3731
|
-
JSON.parse(JSON.stringify(data)),
|
|
3732
|
-
primaryKeys,
|
|
3733
|
-
filter,
|
|
3734
|
-
merge2,
|
|
3735
|
-
orderBy
|
|
3736
|
-
);
|
|
3737
|
-
return {
|
|
3738
|
-
data: newData,
|
|
3739
|
-
count: newData.length
|
|
3740
|
-
};
|
|
3741
|
-
}
|
|
3742
|
-
return currentData;
|
|
3743
|
-
})
|
|
3744
|
-
);
|
|
3745
|
-
}
|
|
3746
|
-
}
|
|
3747
|
-
}
|
|
3748
|
-
if (revalidateTablesOpt && shouldRevalidateTable(revalidateTablesOpt, { decodedKey: key })) {
|
|
3749
|
-
mutations.push(revalidate(k));
|
|
3750
|
-
}
|
|
3751
|
-
if (revalidateRelationsOpt && shouldRevalidateRelation(revalidateRelationsOpt, {
|
|
3752
|
-
input: op.input,
|
|
3753
|
-
getPostgrestFilter,
|
|
3754
|
-
decodedKey: key
|
|
3755
|
-
})) {
|
|
3756
|
-
mutations.push(revalidate(k));
|
|
3757
|
-
}
|
|
3758
|
-
}
|
|
3759
|
-
yield Promise.all(mutations);
|
|
3760
|
-
});
|
|
3761
|
-
|
|
3762
|
-
// ../../../node_modules/.pnpm/@supabase-cache-helpers+postgrest-react-query@1.13.6_@supabase+postgrest-js@2.81.1_@tanstack+_yc5q7qvczk7zvppefoodrwog4i/node_modules/@supabase-cache-helpers/postgrest-react-query/dist/index.js
|
|
3763
|
-
import { useQueryClient as useQueryClient3 } from "@tanstack/react-query";
|
|
3764
|
-
import { useQueryClient } from "@tanstack/react-query";
|
|
3765
|
-
import { useQueryClient as useQueryClient2 } from "@tanstack/react-query";
|
|
3766
|
-
import { useQueryClient as useQueryClient4 } from "@tanstack/react-query";
|
|
3767
|
-
import { useQueryClient as useQueryClient5 } from "@tanstack/react-query";
|
|
3768
|
-
import { useQueryClient as useQueryClient6 } from "@tanstack/react-query";
|
|
3769
|
-
import { useMutation } from "@tanstack/react-query";
|
|
3770
|
-
import { useMutation as useMutation2 } from "@tanstack/react-query";
|
|
3771
|
-
import { useMutation as useMutation3 } from "@tanstack/react-query";
|
|
3772
|
-
import { useMutation as useMutation4 } from "@tanstack/react-query";
|
|
3773
|
-
import { useMutation as useMutation5 } from "@tanstack/react-query";
|
|
3774
|
-
import {
|
|
3775
|
-
useQuery as useReactQuery
|
|
3776
|
-
} from "@tanstack/react-query";
|
|
3777
|
-
import {
|
|
3778
|
-
REALTIME_LISTEN_TYPES,
|
|
3779
|
-
REALTIME_POSTGRES_CHANGES_LISTEN_EVENT
|
|
3780
|
-
} from "@supabase/supabase-js";
|
|
3781
|
-
import { useEffect, useState } from "react";
|
|
3782
|
-
import {
|
|
3783
|
-
REALTIME_LISTEN_TYPES as REALTIME_LISTEN_TYPES2,
|
|
3784
|
-
REALTIME_POSTGRES_CHANGES_LISTEN_EVENT as REALTIME_POSTGRES_CHANGES_LISTEN_EVENT2
|
|
3785
|
-
} from "@supabase/supabase-js";
|
|
3786
|
-
import { useEffect as useEffect2, useState as useState2 } from "react";
|
|
3787
|
-
var __defProp2 = Object.defineProperty;
|
|
3788
|
-
var __defProps2 = Object.defineProperties;
|
|
3789
|
-
var __getOwnPropDescs2 = Object.getOwnPropertyDescriptors;
|
|
3790
|
-
var __getOwnPropSymbols2 = Object.getOwnPropertySymbols;
|
|
3791
|
-
var __hasOwnProp2 = Object.prototype.hasOwnProperty;
|
|
3792
|
-
var __propIsEnum2 = Object.prototype.propertyIsEnumerable;
|
|
3793
|
-
var __defNormalProp2 = (obj, key, value) => key in obj ? __defProp2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3794
|
-
var __spreadValues2 = (a, b) => {
|
|
3795
|
-
for (var prop in b || (b = {}))
|
|
3796
|
-
if (__hasOwnProp2.call(b, prop))
|
|
3797
|
-
__defNormalProp2(a, prop, b[prop]);
|
|
3798
|
-
if (__getOwnPropSymbols2)
|
|
3799
|
-
for (var prop of __getOwnPropSymbols2(b)) {
|
|
3800
|
-
if (__propIsEnum2.call(b, prop))
|
|
3801
|
-
__defNormalProp2(a, prop, b[prop]);
|
|
3802
|
-
}
|
|
3803
|
-
return a;
|
|
3804
|
-
};
|
|
3805
|
-
var __spreadProps2 = (a, b) => __defProps2(a, __getOwnPropDescs2(b));
|
|
3806
|
-
var __async2 = (__this, __arguments, generator) => {
|
|
3807
|
-
return new Promise((resolve, reject) => {
|
|
3808
|
-
var fulfilled = (value) => {
|
|
3809
|
-
try {
|
|
3810
|
-
step(generator.next(value));
|
|
3811
|
-
} catch (e) {
|
|
3812
|
-
reject(e);
|
|
3813
|
-
}
|
|
3814
|
-
};
|
|
3815
|
-
var rejected = (value) => {
|
|
3816
|
-
try {
|
|
3817
|
-
step(generator.throw(value));
|
|
3818
|
-
} catch (e) {
|
|
3819
|
-
reject(e);
|
|
3820
|
-
}
|
|
3821
|
-
};
|
|
3822
|
-
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
3823
|
-
step((generator = generator.apply(__this, __arguments)).next());
|
|
3824
|
-
});
|
|
3825
|
-
};
|
|
3826
|
-
var POSTGREST_FILTER_KEY_PREFIX = "postgrest-filter";
|
|
3827
|
-
var usePostgrestFilterCache = () => {
|
|
3828
|
-
const queryClient = useQueryClient();
|
|
3829
|
-
return (query, opts) => {
|
|
3830
|
-
const key = [
|
|
3831
|
-
POSTGREST_FILTER_KEY_PREFIX,
|
|
3832
|
-
query,
|
|
3833
|
-
opts ? encodeObject(opts) : null
|
|
3834
|
-
];
|
|
3835
|
-
const cacheData = queryClient.getQueryData(key);
|
|
3836
|
-
if (cacheData instanceof PostgrestFilter) {
|
|
3837
|
-
return cacheData;
|
|
3838
|
-
}
|
|
3839
|
-
const filter = PostgrestFilter.fromQuery(query, opts);
|
|
3840
|
-
queryClient.setQueryData(key, filter);
|
|
3841
|
-
return filter;
|
|
3842
|
-
};
|
|
3843
|
-
};
|
|
3844
|
-
var KEY_PREFIX = "postgrest";
|
|
3845
|
-
var INFINITE_KEY_PREFIX = "page";
|
|
3846
|
-
var encode = (key, isInfinite) => {
|
|
3847
|
-
var _a;
|
|
3848
|
-
if (!isPostgrestBuilder(key)) {
|
|
3849
|
-
throw new Error("Key is not a PostgrestBuilder");
|
|
3850
|
-
}
|
|
3851
|
-
const parser = new PostgrestParser(key);
|
|
3852
|
-
return [
|
|
3853
|
-
KEY_PREFIX,
|
|
3854
|
-
isInfinite ? INFINITE_KEY_PREFIX : "null",
|
|
3855
|
-
parser.schema,
|
|
3856
|
-
parser.table,
|
|
3857
|
-
parser.queryKey,
|
|
3858
|
-
(_a = parser.bodyKey) != null ? _a : "null",
|
|
3859
|
-
`count=${parser.count}`,
|
|
3860
|
-
`head=${parser.isHead}`,
|
|
3861
|
-
parser.orderByKey
|
|
3862
|
-
];
|
|
3863
|
-
};
|
|
3864
|
-
var decode = (key) => {
|
|
3865
|
-
if (!Array.isArray(key)) return null;
|
|
3866
|
-
const [
|
|
3867
|
-
prefix,
|
|
3868
|
-
infinitePrefix,
|
|
3869
|
-
schema,
|
|
3870
|
-
table,
|
|
3871
|
-
queryKey,
|
|
3872
|
-
bodyKey,
|
|
3873
|
-
count,
|
|
3874
|
-
head,
|
|
3875
|
-
orderByKey
|
|
3876
|
-
] = key;
|
|
3877
|
-
if (prefix !== KEY_PREFIX) return null;
|
|
3878
|
-
const params = new URLSearchParams(queryKey);
|
|
3879
|
-
const limit = params.get("limit");
|
|
3880
|
-
const offset = params.get("offset");
|
|
3881
|
-
const countValue = count.replace("count=", "");
|
|
3882
|
-
return {
|
|
3883
|
-
limit: limit ? Number(limit) : void 0,
|
|
3884
|
-
offset: offset ? Number(offset) : void 0,
|
|
3885
|
-
bodyKey,
|
|
3886
|
-
count: countValue === "null" ? null : countValue,
|
|
3887
|
-
isHead: head === "head=true",
|
|
3888
|
-
isInfinite: infinitePrefix === INFINITE_KEY_PREFIX,
|
|
3889
|
-
key,
|
|
3890
|
-
queryKey,
|
|
3891
|
-
schema,
|
|
3892
|
-
table,
|
|
3893
|
-
orderByKey
|
|
3894
|
-
};
|
|
3895
|
-
};
|
|
3896
|
-
var useQueriesForTableLoader = (table) => {
|
|
3897
|
-
const queryClient = useQueryClient2();
|
|
3898
|
-
const getPostgrestFilter = usePostgrestFilterCache();
|
|
3899
|
-
return () => queryClient.getQueryCache().getAll().map((c) => c.queryKey).reduce(
|
|
3900
|
-
(prev, curr) => {
|
|
3901
|
-
const decodedKey = decode(curr);
|
|
3902
|
-
if ((decodedKey == null ? void 0 : decodedKey.table) === table) {
|
|
3903
|
-
prev.push(getPostgrestFilter(decodedKey.queryKey).params);
|
|
3904
|
-
}
|
|
3905
|
-
return prev;
|
|
3906
|
-
},
|
|
3907
|
-
[]
|
|
3908
|
-
);
|
|
3909
|
-
};
|
|
3910
|
-
function useDeleteItem(opts) {
|
|
3911
|
-
const queryClient = useQueryClient3();
|
|
3912
|
-
const getPostgrestFilter = usePostgrestFilterCache();
|
|
3913
|
-
return (input) => __async2(this, null, function* () {
|
|
3914
|
-
return yield deleteItem(
|
|
3915
|
-
__spreadValues2({
|
|
3916
|
-
input: flatten(input)
|
|
3917
|
-
}, opts),
|
|
3918
|
-
{
|
|
3919
|
-
cacheKeys: queryClient.getQueryCache().getAll().map((c) => c.queryKey),
|
|
3920
|
-
getPostgrestFilter,
|
|
3921
|
-
revalidate: (key) => queryClient.invalidateQueries({ queryKey: key }),
|
|
3922
|
-
mutate: (key, fn) => {
|
|
3923
|
-
queryClient.setQueriesData({ queryKey: key }, fn);
|
|
3924
|
-
},
|
|
3925
|
-
decode
|
|
3926
|
-
}
|
|
3927
|
-
);
|
|
3928
|
-
});
|
|
3929
|
-
}
|
|
3930
|
-
function useUpsertItem(opts) {
|
|
3931
|
-
const queryClient = useQueryClient6();
|
|
3932
|
-
const getPostgrestFilter = usePostgrestFilterCache();
|
|
3933
|
-
return (input) => __async2(this, null, function* () {
|
|
3934
|
-
return yield upsertItem(
|
|
3935
|
-
__spreadValues2({
|
|
3936
|
-
input: flatten(input)
|
|
3937
|
-
}, opts),
|
|
3938
|
-
{
|
|
3939
|
-
cacheKeys: queryClient.getQueryCache().getAll().map((c) => c.queryKey),
|
|
3940
|
-
getPostgrestFilter,
|
|
3941
|
-
revalidate: (key) => queryClient.invalidateQueries({ queryKey: key }),
|
|
3942
|
-
mutate: (key, fn) => {
|
|
3943
|
-
queryClient.setQueriesData({ queryKey: key }, fn);
|
|
3944
|
-
},
|
|
3945
|
-
decode
|
|
3946
|
-
}
|
|
3947
|
-
);
|
|
3948
|
-
});
|
|
3949
|
-
}
|
|
3950
|
-
function useDeleteManyMutation(qb, primaryKeys, query, opts) {
|
|
3951
|
-
const queriesForTable = useQueriesForTableLoader(getTable(qb));
|
|
3952
|
-
const deleteItem2 = useDeleteItem(__spreadProps2(__spreadValues2({}, opts), {
|
|
3953
|
-
primaryKeys,
|
|
3954
|
-
table: getTable(qb),
|
|
3955
|
-
schema: qb.schema
|
|
3956
|
-
}));
|
|
3957
|
-
return useMutation(__spreadValues2({
|
|
3958
|
-
mutationFn: (input) => __async2(this, null, function* () {
|
|
3959
|
-
const result = yield buildDeleteFetcher(
|
|
3960
|
-
qb,
|
|
3961
|
-
primaryKeys,
|
|
3962
|
-
__spreadValues2({
|
|
3963
|
-
query: query != null ? query : void 0,
|
|
3964
|
-
queriesForTable,
|
|
3965
|
-
disabled: opts == null ? void 0 : opts.disableAutoQuery
|
|
3966
|
-
}, opts)
|
|
3967
|
-
)(input);
|
|
3968
|
-
if (result) {
|
|
3969
|
-
for (const r of result) {
|
|
3970
|
-
deleteItem2(r.normalizedData);
|
|
3971
|
-
}
|
|
3972
|
-
}
|
|
3973
|
-
if (!result || result.every((r) => !r.userQueryData)) return null;
|
|
3974
|
-
return result.map((r) => r.userQueryData);
|
|
3975
|
-
})
|
|
3976
|
-
}, opts));
|
|
3977
|
-
}
|
|
3978
|
-
function truthy(value) {
|
|
3979
|
-
return !!value;
|
|
3980
|
-
}
|
|
3981
|
-
var getUserResponse = (d) => {
|
|
3982
|
-
if (!d) return d;
|
|
3983
|
-
return d.map((r) => r.userQueryData).filter(truthy);
|
|
3984
|
-
};
|
|
3985
|
-
function useInsertMutation(qb, primaryKeys, query, opts) {
|
|
3986
|
-
const queriesForTable = useQueriesForTableLoader(getTable(qb));
|
|
3987
|
-
const upsertItem2 = useUpsertItem(__spreadProps2(__spreadValues2({}, opts), {
|
|
3988
|
-
primaryKeys,
|
|
3989
|
-
table: getTable(qb),
|
|
3990
|
-
schema: qb.schema
|
|
3991
|
-
}));
|
|
3992
|
-
return useMutation3(__spreadValues2({
|
|
3993
|
-
mutationFn: (input) => __async2(this, null, function* () {
|
|
3994
|
-
var _a;
|
|
3995
|
-
const result = yield buildInsertFetcher(
|
|
3996
|
-
qb,
|
|
3997
|
-
__spreadValues2({
|
|
3998
|
-
query: query != null ? query : void 0,
|
|
3999
|
-
queriesForTable,
|
|
4000
|
-
disabled: opts == null ? void 0 : opts.disableAutoQuery
|
|
4001
|
-
}, opts)
|
|
4002
|
-
)(input);
|
|
4003
|
-
if (result) {
|
|
4004
|
-
yield Promise.all(
|
|
4005
|
-
result.map(
|
|
4006
|
-
(d) => __async2(this, null, function* () {
|
|
4007
|
-
return yield upsertItem2(d.normalizedData);
|
|
4008
|
-
})
|
|
4009
|
-
)
|
|
4010
|
-
);
|
|
4011
|
-
}
|
|
4012
|
-
return (_a = getUserResponse(result)) != null ? _a : null;
|
|
4013
|
-
})
|
|
4014
|
-
}, opts));
|
|
4015
|
-
}
|
|
4016
|
-
function buildQueryOpts(query, config) {
|
|
4017
|
-
return __spreadValues2({
|
|
4018
|
-
queryKey: encode(query, false),
|
|
4019
|
-
queryFn: (_0) => __async2(this, [_0], function* ({ signal }) {
|
|
4020
|
-
if (isPostgrestTransformBuilder(query)) {
|
|
4021
|
-
query = query.abortSignal(signal);
|
|
4022
|
-
}
|
|
4023
|
-
if (isPostgrestBuilder(query)) {
|
|
4024
|
-
query = query.throwOnError();
|
|
4025
|
-
}
|
|
4026
|
-
return yield query;
|
|
4027
|
-
})
|
|
4028
|
-
}, config);
|
|
4029
|
-
}
|
|
4030
|
-
function useQuery(query, config) {
|
|
4031
|
-
var _a, _b;
|
|
4032
|
-
const result = useReactQuery(
|
|
4033
|
-
buildQueryOpts(query, config)
|
|
4034
|
-
);
|
|
4035
|
-
if (result.isPending || result.isLoadingError) {
|
|
4036
|
-
return __spreadProps2(__spreadValues2({}, result), {
|
|
4037
|
-
data: void 0,
|
|
4038
|
-
count: null
|
|
4039
|
-
});
|
|
4040
|
-
}
|
|
4041
|
-
return __spreadProps2(__spreadValues2({}, result), {
|
|
4042
|
-
data: (_a = result.data) == null ? void 0 : _a.data,
|
|
4043
|
-
count: (_b = result.data) == null ? void 0 : _b.count
|
|
4044
|
-
});
|
|
4045
|
-
}
|
|
4046
|
-
|
|
4047
|
-
export {
|
|
4048
|
-
buildNormalizedQuery,
|
|
4049
|
-
normalizeResponse,
|
|
4050
|
-
encode,
|
|
4051
|
-
useQueriesForTableLoader,
|
|
4052
|
-
useDeleteItem,
|
|
4053
|
-
useUpsertItem,
|
|
4054
|
-
useDeleteManyMutation,
|
|
4055
|
-
useInsertMutation,
|
|
4056
|
-
useQuery
|
|
4057
|
-
};
|
|
4058
|
-
/*! Bundled license information:
|
|
4059
|
-
|
|
4060
|
-
xregexp/src/xregexp.js:
|
|
4061
|
-
(*!
|
|
4062
|
-
* XRegExp 5.1.1
|
|
4063
|
-
* <xregexp.com>
|
|
4064
|
-
* Steven Levithan (c) 2007-present MIT License
|
|
4065
|
-
*)
|
|
4066
|
-
|
|
4067
|
-
xregexp/src/addons/build.js:
|
|
4068
|
-
(*!
|
|
4069
|
-
* XRegExp.build 5.1.1
|
|
4070
|
-
* <xregexp.com>
|
|
4071
|
-
* Steven Levithan (c) 2012-present MIT License
|
|
4072
|
-
*)
|
|
4073
|
-
|
|
4074
|
-
xregexp/src/addons/matchrecursive.js:
|
|
4075
|
-
(*!
|
|
4076
|
-
* XRegExp.matchRecursive 5.1.1
|
|
4077
|
-
* <xregexp.com>
|
|
4078
|
-
* Steven Levithan (c) 2009-present MIT License
|
|
4079
|
-
*)
|
|
4080
|
-
|
|
4081
|
-
xregexp/src/addons/unicode-base.js:
|
|
4082
|
-
(*!
|
|
4083
|
-
* XRegExp Unicode Base 5.1.1
|
|
4084
|
-
* <xregexp.com>
|
|
4085
|
-
* Steven Levithan (c) 2008-present MIT License
|
|
4086
|
-
*)
|
|
4087
|
-
|
|
4088
|
-
xregexp/src/addons/unicode-categories.js:
|
|
4089
|
-
(*!
|
|
4090
|
-
* XRegExp Unicode Categories 5.1.1
|
|
4091
|
-
* <xregexp.com>
|
|
4092
|
-
* Steven Levithan (c) 2010-present MIT License
|
|
4093
|
-
* Unicode data by Mathias Bynens <mathiasbynens.be>
|
|
4094
|
-
*)
|
|
4095
|
-
|
|
4096
|
-
xregexp/src/addons/unicode-properties.js:
|
|
4097
|
-
(*!
|
|
4098
|
-
* XRegExp Unicode Properties 5.1.1
|
|
4099
|
-
* <xregexp.com>
|
|
4100
|
-
* Steven Levithan (c) 2012-present MIT License
|
|
4101
|
-
* Unicode data by Mathias Bynens <mathiasbynens.be>
|
|
4102
|
-
*)
|
|
4103
|
-
|
|
4104
|
-
xregexp/src/addons/unicode-scripts.js:
|
|
4105
|
-
(*!
|
|
4106
|
-
* XRegExp Unicode Scripts 5.1.1
|
|
4107
|
-
* <xregexp.com>
|
|
4108
|
-
* Steven Levithan (c) 2010-present MIT License
|
|
4109
|
-
* Unicode data by Mathias Bynens <mathiasbynens.be>
|
|
4110
|
-
*)
|
|
4111
|
-
*/
|
|
4112
|
-
//# sourceMappingURL=chunk-CTRY7JDP.js.map
|