decocms 2.310.11 → 2.311.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/assets/{AlertCircle-ahU9qvhl.js → AlertCircle-Cmv1CEej.js} +1 -1
- package/dist/client/assets/{ArrowNarrowLeft-Cfz7wXIJ.js → ArrowNarrowLeft-dh6WZRM9.js} +1 -1
- package/dist/client/assets/{ArrowUpRight-fsqeZb8m.js → ArrowUpRight-ElKc4QT2.js} +1 -1
- package/dist/client/assets/{Check-BZWGhvVO.js → Check-C6557EUz.js} +1 -1
- package/dist/client/assets/{CheckCircle-DnZTB0rF.js → CheckCircle-CpTfilqS.js} +1 -1
- package/dist/client/assets/{ChevronDown-DByhDrk6.js → ChevronDown-DRryf8gN.js} +1 -1
- package/dist/client/assets/{ChevronRight-Cvp-gXt7.js → ChevronRight-CdHf_zmd.js} +1 -1
- package/dist/client/assets/{ChevronUp-BFw72Msp.js → ChevronUp-B1cXKM4U.js} +1 -1
- package/dist/client/assets/{Container-BZ3zep7q.js → Container-DLynv0of.js} +1 -1
- package/dist/client/assets/{DotsVertical-Cd3-k7yF.js → DotsVertical-1_1TY_Iu.js} +1 -1
- package/dist/client/assets/{LinkExternal01-BFjY57TU.js → LinkExternal01-kirIYSrs.js} +1 -1
- package/dist/client/assets/{Lock01-BbWgvWSs.js → Lock01-CjYZrQ5V.js} +1 -1
- package/dist/client/assets/{Palette-Cx-dqqQY.js → Palette-B_rCG80i.js} +1 -1
- package/dist/client/assets/{Play-BdhateWr.js → Play-CiAq5_x9.js} +1 -1
- package/dist/client/assets/{Plus-GSlHqxSR.js → Plus-CE4JnFcs.js} +1 -1
- package/dist/client/assets/{RefreshCcw01-CzqyqIwT.js → RefreshCcw01-7x7ZvE_9.js} +1 -1
- package/dist/client/assets/{SearchMd-DkP82Niw.js → SearchMd-GAS9PfFR.js} +1 -1
- package/dist/client/assets/{Settings02-9htEwxvh.js → Settings02-CQoon3Ff.js} +1 -1
- package/dist/client/assets/{Shield01-CjLFO2rl.js → Shield01-ji9zRv2d.js} +1 -1
- package/dist/client/assets/{Star01-DrZwq7mh.js → Star01-D8sWAc14.js} +1 -1
- package/dist/client/assets/{Sun-DF7l5QZq.js → Sun-vDwF3NGN.js} +1 -1
- package/dist/client/assets/{Tool01-nt_mUbwd.js → Tool01-oZSiObPU.js} +1 -1
- package/dist/client/assets/{Trash01-CDbu5eEt.js → Trash01-C5soIGl6.js} +1 -1
- package/dist/client/assets/{User01-CFEsXTLu.js → User01-LM25a1kB.js} +1 -1
- package/dist/client/assets/{Users03-Cx_Igx1u.js → Users03-DoI9lWmi.js} +1 -1
- package/dist/client/assets/{X-7na_kv9z.js → X-ZXZlQkhq.js} +1 -1
- package/dist/client/assets/{XCircle-Ds505nkY.js → XCircle-Dn1KJRiq.js} +1 -1
- package/dist/client/assets/{XClose-D8TG8w0F.js → XClose-q-SrK0tW.js} +1 -1
- package/dist/client/assets/{Zap-Dtq7fvFY.js → Zap-DJAH18FG.js} +1 -1
- package/dist/client/assets/{ZapSquare-4TndwMW9.js → ZapSquare-LAHLjkWd.js} +1 -1
- package/dist/client/assets/{accordion-DUY0OKAA.js → accordion-aPJ_VyDV.js} +1 -1
- package/dist/client/assets/{agent-icon-BxnaMyxC.js → agent-icon-w1gVp0JB.js} +1 -1
- package/dist/client/assets/{agents-list-CXSQuSMm.js → agents-list-Cq8OGy2L.js} +1 -1
- package/dist/client/assets/ai-providers-C7CtJZ9y.js +1 -0
- package/dist/client/assets/{alert-dialog-B9mZ-dpl.js → alert-dialog-GfhPvYdH.js} +1 -1
- package/dist/client/assets/{auth-catchall-COc5UUU3.js → auth-catchall-oPH9y-3s.js} +1 -1
- package/dist/client/assets/{automation-list-row-nmyGKTz1.js → automation-list-row-HhQTN_eX.js} +1 -1
- package/dist/client/assets/{automations-7nKH5SIF.js → automations-Dhn73Tf5.js} +1 -1
- package/dist/client/assets/{avatar-Cx0C50aU.js → avatar-CtUGIRZI.js} +1 -1
- package/dist/client/assets/{badge-Bht6nYmr.js → badge-CK6LsU4H.js} +1 -1
- package/dist/client/assets/{brand-context-BSxRXPau.js → brand-context-CY9Y_wu3.js} +1 -1
- package/dist/client/assets/{card-BFUnUENJ.js → card-BQEPs756.js} +1 -1
- package/dist/client/assets/{chat-context-C2w2gY8b.js → chat-context-S2WC0LWJ.js} +1 -1
- package/dist/client/assets/{checkbox-Do4xGcLt.js → checkbox-Bkr-bAkM.js} +1 -1
- package/dist/client/assets/{collection-detail-BZgUt9tx.js → collection-detail-B3rDTFtA.js} +1 -1
- package/dist/client/assets/{collection-display-button--S1OiIe7.js → collection-display-button-DWOOXKjP.js} +1 -1
- package/dist/client/assets/{collection-search-CHOGrD3q.js → collection-search-CFttyH_F.js} +1 -1
- package/dist/client/assets/{collection-search-B6mXUx7s.js → collection-search-DZrfYYOZ.js} +1 -1
- package/dist/client/assets/{collection-table-wrapper-CVw6SZCB.js → collection-table-wrapper-BLpRJJYg.js} +1 -1
- package/dist/client/assets/{collection-tabs-CSuzGYeY.js → collection-tabs-BgN6I-bX.js} +1 -1
- package/dist/client/assets/{collections-YX5wuZFA.js → collections-D7PE31gz.js} +1 -1
- package/dist/client/assets/{command-3yJ4z5LL.js → command-NKpG8Bjq.js} +1 -1
- package/dist/client/assets/{connection-card-lhhty3tj.js → connection-card-Bw6Csrb_.js} +1 -1
- package/dist/client/assets/{connection-detail-I0_vr7L4.js → connection-detail-B7_jkNkH.js} +1 -1
- package/dist/client/assets/{connection-form-helpers-CmguSpY9.js → connection-form-helpers-D9n2I0di.js} +1 -1
- package/dist/client/assets/{connections-C8bpnV9z.js → connections-CvsuOS9r.js} +1 -1
- package/dist/client/assets/{constants-DgceTPfw.js → constants-BCiQXBAS.js} +1 -1
- package/dist/client/assets/{constants-JFOjzs_O.js → constants-D5p8hSrx.js} +1 -1
- package/dist/client/assets/{dialog-drGvUDKx.js → dialog-Bco_TCNl.js} +1 -1
- package/dist/client/assets/{domain-settings-CEZLkEnq.js → domain-settings-Xq3tOabS.js} +1 -1
- package/dist/client/assets/{drawer-gLsUGUYZ.js → drawer-xfLDdv10.js} +1 -1
- package/dist/client/assets/{dropdown-menu-BM7SQJAI.js → dropdown-menu-C29eDgrp.js} +1 -1
- package/dist/client/assets/{dynamic-plugin-layout-DrewZkn_.js → dynamic-plugin-layout-2bYpHHwW.js} +1 -1
- package/dist/client/assets/{empty-state-fpPwV1WH.js → empty-state-CUAofipZ.js} +1 -1
- package/dist/client/assets/{empty-state-BYyDKvGo.js → empty-state-aTrcTcvL.js} +1 -1
- package/dist/client/assets/{extract-connection-data-BgQtZAwu.js → extract-connection-data-CKwBsaAT.js} +1 -1
- package/dist/client/assets/{features-Bw9uyW0-.js → features-D9_mCTsW.js} +1 -1
- package/dist/client/assets/{form-ItOujfjm.js → form-CrTfBttw.js} +1 -1
- package/dist/client/assets/{general-CioSeVj_.js → general-CjiadXwc.js} +1 -1
- package/dist/client/assets/{index-DeAQDTDD.js → index-BRFAy-qc.js} +1 -1
- package/dist/client/assets/{index-D6KnSbAq.js → index-BgrgmG6r.js} +1 -1
- package/dist/client/assets/{index-CtG_0A9G.js → index-CF9ILFhD.js} +1 -1
- package/dist/client/assets/index-COjvr9O9.js +1 -0
- package/dist/client/assets/{index-B1Gx5hlg.js → index-CUZMrIc_.js} +1 -1
- package/dist/client/assets/{index-Bsg-EH8E.js → index-D2p5e1Iq.js} +1 -1
- package/dist/client/assets/{index-DEPlnunL.js → index-D4wqiAnr.js} +1 -1
- package/dist/client/assets/{index-DKs1F09Z.js → index-DFz3ygWn.js} +1 -1
- package/dist/client/assets/{index-CIViRjFd.js → index-DmUFwr5_.js} +2 -2
- package/dist/client/assets/{index-DXfyZm_Q.js → index-DniGxDKu.js} +1 -1
- package/dist/client/assets/{index-BlhCj6Vr.js → index-FnOOsGuu.js} +21 -21
- package/dist/client/assets/{index-D2foEawJ.js → index-ZSZq4ha4.js} +1 -1
- package/dist/client/assets/index-eoXEuVdd.js +1 -0
- package/dist/client/assets/{index-y_vkrCQM.js → index-m-YMatXe.js} +1 -1
- package/dist/client/assets/{index-C_pVEuWc.js → index-rcqbXXPT.js} +1 -1
- package/dist/client/assets/{index-BP4cosu_.js → index-xQKlqKQd.js} +1 -1
- package/dist/client/assets/{infiniteQueryObserver-CHcGJIyZ.js → infiniteQueryObserver-DsxEpQPG.js} +1 -1
- package/dist/client/assets/{input-DHXN30Se.js → input-Dpv2eGiI.js} +1 -1
- package/dist/client/assets/{integration-icon-CE13u9KA.js → integration-icon-DvOOsTvb.js} +1 -1
- package/dist/client/assets/{label-D4hgzggA.js → label-BQbLPzWS.js} +1 -1
- package/dist/client/assets/{layout-DUA6qsX1.js → layout-BTmL7V8R.js} +1 -1
- package/dist/client/assets/{lean-canvas-recruit-modal-Dk_y3TGU.js → lean-canvas-recruit-modal-BRgwNI1p.js} +1 -1
- package/dist/client/assets/{login-BvCw_OE1.js → login-nTOwFUFy.js} +1 -1
- package/dist/client/assets/{members-CVGvL4Y1.js → members-CSdeOjd-.js} +1 -1
- package/dist/client/assets/{monaco-editor-BYILvqNd.js → monaco-editor-DBzYYfTm.js} +1 -1
- package/dist/client/assets/{monitoring-stats-row-CqXqzRk5.js → monitoring-stats-row-CnGugtMA.js} +1 -1
- package/dist/client/assets/{oauth-callback-D7Of-CbX.js → oauth-callback-Bh_DU5DY.js} +1 -1
- package/dist/client/assets/{oauth-callback-ai-provider-C1cnLxXi.js → oauth-callback-ai-provider-CD-ytcnR.js} +1 -1
- package/dist/client/assets/{onboarding-BGXXGyUe.js → onboarding-C5vaeZLY.js} +1 -1
- package/dist/client/assets/{org-layout-v1H0zG6y.js → org-layout-BvVTYQyf.js} +1 -1
- package/dist/client/assets/{org-plugin-layout-Cp5rXvaP.js → org-plugin-layout-BTLenkdX.js} +1 -1
- package/dist/client/assets/{pair-B0T5l8E9.js → pair-BS3IG5t6.js} +1 -1
- package/dist/client/assets/{plugin-empty-state-6Jmi0bPK.js → plugin-empty-state-Dad3DPDy.js} +1 -1
- package/dist/client/assets/{plugin-header-BT9Qe8pi.js → plugin-header-x0YNFhRo.js} +1 -1
- package/dist/client/assets/{plugin-layout-Bz8SL1ug.js → plugin-layout-Dj4_yi3O.js} +1 -1
- package/dist/client/assets/{popover-DN_EAxIz.js → popover-B8WVhvgZ.js} +1 -1
- package/dist/client/assets/{profile-D2kx_fYb.js → profile-b10WTUyM.js} +1 -1
- package/dist/client/assets/{project-app-view-DgYg19Pj.js → project-app-view-sIl32f2_.js} +1 -1
- package/dist/client/assets/registry-DJzEIPJ3.js +2 -0
- package/dist/client/assets/{registry-layout-Dm72Atxf.js → registry-layout-Py6FDR2L.js} +1 -1
- package/dist/client/assets/{required-auth-layout-DU2PB2GW.js → required-auth-layout-Do2_0u5Q.js} +1 -1
- package/dist/client/assets/{reset-password-C2p0apyL.js → reset-password-CcFSycm8.js} +1 -1
- package/dist/client/assets/{roles-DQA7XHuT.js → roles-CZsVvePa.js} +1 -1
- package/dist/client/assets/{scroll-area-B7fmUAnT.js → scroll-area-CapTLssz.js} +1 -1
- package/dist/client/assets/{search-input-AF9T19og.js → search-input-B3-QUMJy.js} +1 -1
- package/dist/client/assets/{select-CZHjKwfO.js → select-BiWn49-h.js} +1 -1
- package/dist/client/assets/{select-model-BlAsfEc9.js → select-model-DJFwdiGN.js} +1 -1
- package/dist/client/assets/settings-layout-C1ry7l9n.js +1 -0
- package/dist/client/assets/{settings-section-BXkQzBkr.js → settings-section-BTX4cXxi.js} +1 -1
- package/dist/client/assets/{shell-layout-JI646xyd.js → shell-layout-DlzZ4J6J.js} +1 -1
- package/dist/client/assets/{skeleton-C_6B9i1g.js → skeleton-a_E_S2wJ.js} +1 -1
- package/dist/client/assets/{sso-Di5G8rB8.js → sso-AfMEk6Dy.js} +1 -1
- package/dist/client/assets/store-registry-BPOYIq53.js +2 -0
- package/dist/client/assets/{store-CKIiY2Vu.js → store-s1uRnPlo.js} +1 -1
- package/dist/client/assets/{switch-CUSfwbkU.js → switch-D3y2gsCU.js} +1 -1
- package/dist/client/assets/{table-DZ_h-O6Z.js → table-a45IGOSD.js} +1 -1
- package/dist/client/assets/{tabs-uISMLeAy.js → tabs-BsmpywaL.js} +1 -1
- package/dist/client/assets/{task-status-CJyTA8Rw.js → task-status-CFCyD2cy.js} +1 -1
- package/dist/client/assets/{textarea-CIie7gX7.js → textarea-B0QB1zGt.js} +1 -1
- package/dist/client/assets/{toggle-group-BHW5m7l7.js → toggle-group-CPj_hGHZ.js} +1 -1
- package/dist/client/assets/{tools-list-Co0vKxcI.js → tools-list-DoTFUqEd.js} +1 -1
- package/dist/client/assets/{tooltip-BqHns4a-.js → tooltip-D0CdZrZw.js} +1 -1
- package/dist/client/assets/{types-D-EHCq_Z.js → types-aIDaxl-h.js} +1 -1
- package/dist/client/assets/{use-ai-providers-BsQlVMAK.js → use-ai-providers-D6qL7o2m.js} +1 -1
- package/dist/client/assets/{use-collections-CnoXaIh_.js → use-collections-DkViK-ks.js} +1 -1
- package/dist/client/assets/{use-connection-BNCCSdZe.js → use-connection-DsgQsacQ.js} +1 -1
- package/dist/client/assets/{use-copy-Sel_ed9z.js → use-copy-C3VsdLUz.js} +1 -1
- package/dist/client/assets/{use-create-virtual-mcp-BQoRa9OB.js → use-create-virtual-mcp-DFh-QFWC.js} +1 -1
- package/dist/client/assets/{use-debounced-autosave-BMTKanQV.js → use-debounced-autosave-CjjUnotJ.js} +1 -1
- package/dist/client/assets/{use-decopilot-events-DdA0Y3DD.js → use-decopilot-events-VFA0NpGh.js} +1 -1
- package/dist/client/assets/{use-delete-connection-BWRBYoeT.js → use-delete-connection-DEMGFn-u.js} +1 -1
- package/dist/client/assets/{use-infinite-scroll-DnI8M6Qu.js → use-infinite-scroll-B2tsJ9ux.js} +1 -1
- package/dist/client/assets/{use-list-state-DsQyot8y.js → use-list-state-BpfDykv5.js} +1 -1
- package/dist/client/assets/{use-mcp-tools-CnV9GUfc.js → use-mcp-tools-DNblcX_j.js} +1 -1
- package/dist/client/assets/{use-members-DLA-hyIR.js → use-members-DxYWJoha.js} +1 -1
- package/dist/client/assets/{use-navigate-to-agent-4oqXDdSQ.js → use-navigate-to-agent-DCNL3mVa.js} +1 -1
- package/dist/client/assets/{use-org-auth-client-DDplWK7C.js → use-org-auth-client-C7TX5eR-.js} +1 -1
- package/dist/client/assets/{use-org-sso-CQqTWoyG.js → use-org-sso-Dyy57SLz.js} +1 -1
- package/dist/client/assets/{use-organization-roles-DapIx2FQ.js → use-organization-roles-BlI3X92b.js} +1 -1
- package/dist/client/assets/{use-organization-settings-BjvugK__.js → use-organization-settings-i2PHXa36.js} +1 -1
- package/dist/client/assets/{use-registry-connections-C_7HIX-0.js → use-registry-connections-D1RD1ejX.js} +1 -1
- package/dist/client/assets/{use-status-sounds-CF5-vUhW.js → use-status-sounds-CVXVTk3B.js} +1 -1
- package/dist/client/assets/{use-tasks-C84qgBY4.js → use-tasks-D09f9MF3.js} +1 -1
- package/dist/client/assets/{use-view-mode-fPkbWIir.js → use-view-mode-tC1P9KD5.js} +1 -1
- package/dist/client/assets/{use-virtual-mcp-DOhzVNjI.js → use-virtual-mcp-DmRVQfcC.js} +1 -1
- package/dist/client/assets/useInfiniteQuery-g_wIax9o.js +1 -0
- package/dist/client/assets/useSuspenseInfiniteQuery-DvCTqtUR.js +1 -0
- package/dist/client/assets/{user-BPKG95sg.js → user-B65qTFCS.js} +1 -1
- package/dist/client/assets/{view-mode-toggle-CQCc5-lH.js → view-mode-toggle-0sx2tKzV.js} +1 -1
- package/dist/client/assets/{workflow-DiliYcMw.js → workflow-CjnkA-nG.js} +1 -1
- package/dist/client/assets/workflow-detail-CvZcqR8g.js +1 -0
- package/dist/client/index.html +1 -1
- package/dist/server/cli.js +8 -2
- package/dist/server/node_modules/ansi-styles/index.d.ts +236 -0
- package/dist/server/node_modules/ansi-styles/index.js +223 -0
- package/dist/server/node_modules/{ansi-regex → ansi-styles}/package.json +13 -20
- package/dist/server/node_modules/ansi-styles/readme.md +173 -0
- package/dist/server/node_modules/{postgres-interval/license → pg/LICENSE} +6 -6
- package/dist/server/node_modules/pg/README.md +95 -0
- package/dist/server/node_modules/pg/esm/index.mjs +20 -0
- package/dist/server/node_modules/pg/lib/client.js +743 -0
- package/dist/server/node_modules/pg/lib/connection-parameters.js +171 -0
- package/dist/server/node_modules/pg/lib/connection.js +221 -0
- package/dist/server/node_modules/pg/lib/crypto/cert-signatures.js +122 -0
- package/dist/server/node_modules/pg/lib/crypto/sasl.js +212 -0
- package/dist/server/node_modules/pg/lib/crypto/utils-legacy.js +43 -0
- package/dist/server/node_modules/pg/lib/crypto/utils-webcrypto.js +89 -0
- package/dist/server/node_modules/pg/lib/crypto/utils.js +9 -0
- package/dist/server/node_modules/pg/lib/defaults.js +91 -0
- package/dist/server/node_modules/pg/lib/index.js +73 -0
- package/dist/server/node_modules/pg/lib/native/client.js +323 -0
- package/dist/server/node_modules/pg/lib/native/index.js +2 -0
- package/dist/server/node_modules/pg/lib/native/query.js +165 -0
- package/dist/server/node_modules/pg/lib/query.js +252 -0
- package/dist/server/node_modules/pg/lib/result.js +109 -0
- package/dist/server/node_modules/pg/lib/stream.js +83 -0
- package/dist/server/node_modules/pg/lib/type-overrides.js +35 -0
- package/dist/server/node_modules/pg/lib/utils.js +217 -0
- package/dist/server/node_modules/pg/package.json +76 -0
- package/dist/server/server.js +7 -1
- package/package.json +1 -1
- package/dist/client/assets/ai-providers-BIC302BH.js +0 -1
- package/dist/client/assets/index-B9nyMJrW.js +0 -1
- package/dist/client/assets/index-DIuUyRol.js +0 -1
- package/dist/client/assets/registry-CmDKb_pT.js +0 -2
- package/dist/client/assets/settings-layout-DFUOXvP0.js +0 -1
- package/dist/client/assets/store-registry-Deux9YT9.js +0 -2
- package/dist/client/assets/useInfiniteQuery-COOjSqOK.js +0 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-DcjdAjkk.js +0 -1
- package/dist/client/assets/workflow-detail-DD2pgq9B.js +0 -1
- package/dist/server/node_modules/ansi-regex/index.d.ts +0 -33
- package/dist/server/node_modules/ansi-regex/index.js +0 -14
- package/dist/server/node_modules/ansi-regex/readme.md +0 -66
- package/dist/server/node_modules/emoji-regex/LICENSE-MIT.txt +0 -20
- package/dist/server/node_modules/emoji-regex/README.md +0 -107
- package/dist/server/node_modules/emoji-regex/index.d.ts +0 -3
- package/dist/server/node_modules/emoji-regex/index.js +0 -4
- package/dist/server/node_modules/emoji-regex/index.mjs +0 -4
- package/dist/server/node_modules/emoji-regex/package.json +0 -45
- package/dist/server/node_modules/get-east-asian-width/index.d.ts +0 -60
- package/dist/server/node_modules/get-east-asian-width/index.js +0 -30
- package/dist/server/node_modules/get-east-asian-width/license +0 -9
- package/dist/server/node_modules/get-east-asian-width/lookup-data.js +0 -18
- package/dist/server/node_modules/get-east-asian-width/lookup.js +0 -135
- package/dist/server/node_modules/get-east-asian-width/package.json +0 -71
- package/dist/server/node_modules/get-east-asian-width/readme.md +0 -65
- package/dist/server/node_modules/get-east-asian-width/utilities.js +0 -24
- package/dist/server/node_modules/onetime/index.d.ts +0 -64
- package/dist/server/node_modules/onetime/index.js +0 -44
- package/dist/server/node_modules/onetime/license +0 -9
- package/dist/server/node_modules/onetime/package.json +0 -43
- package/dist/server/node_modules/onetime/readme.md +0 -94
- package/dist/server/node_modules/postgres-date/index.js +0 -116
- package/dist/server/node_modules/postgres-date/license +0 -21
- package/dist/server/node_modules/postgres-date/package.json +0 -33
- package/dist/server/node_modules/postgres-date/readme.md +0 -49
- package/dist/server/node_modules/postgres-interval/index.d.ts +0 -20
- package/dist/server/node_modules/postgres-interval/index.js +0 -125
- package/dist/server/node_modules/postgres-interval/package.json +0 -36
- package/dist/server/node_modules/postgres-interval/readme.md +0 -48
- /package/dist/server/node_modules/{ansi-regex → ansi-styles}/license +0 -0
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
# emoji-regex [](https://github.com/mathiasbynens/emoji-regex/actions/workflows/main.yml) [](https://www.npmjs.com/package/emoji-regex)
|
|
2
|
-
|
|
3
|
-
_emoji-regex_ offers a regular expression to match all emoji symbols and sequences (including textual representations of emoji) as per the Unicode Standard. It’s based on [_emoji-test-regex-pattern_](https://github.com/mathiasbynens/emoji-test-regex-pattern), which generates (at build time) the regular expression pattern based on the Unicode Standard. As a result, _emoji-regex_ can easily be updated whenever new emoji are added to Unicode.
|
|
4
|
-
|
|
5
|
-
Since each version of _emoji-regex_ is tied to the latest Unicode version at the time of release, results are deterministic. This is important for use cases like image replacement, where you want to guarantee that an image asset is available for every possibly matched emoji. If you don’t need a deterministic regex, a lighter-weight, general emoji pattern is available via the [_emoji-regex-xs_](https://github.com/slevithan/emoji-regex-xs) package that follows the same API.
|
|
6
|
-
|
|
7
|
-
## Installation
|
|
8
|
-
|
|
9
|
-
Via [npm](https://www.npmjs.com/):
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
npm install emoji-regex
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
In [Node.js](https://nodejs.org/):
|
|
16
|
-
|
|
17
|
-
```js
|
|
18
|
-
const emojiRegex = require('emoji-regex');
|
|
19
|
-
// Note: because the regular expression has the global flag set, this module
|
|
20
|
-
// exports a function that returns the regex rather than exporting the regular
|
|
21
|
-
// expression itself, to make it impossible to (accidentally) mutate the
|
|
22
|
-
// original regular expression.
|
|
23
|
-
|
|
24
|
-
const text = `
|
|
25
|
-
\u{231A}: ⌚ default emoji presentation character (Emoji_Presentation)
|
|
26
|
-
\u{2194}\u{FE0F}: ↔️ default text presentation character rendered as emoji
|
|
27
|
-
\u{1F469}: 👩 emoji modifier base (Emoji_Modifier_Base)
|
|
28
|
-
\u{1F469}\u{1F3FF}: 👩🏿 emoji modifier base followed by a modifier
|
|
29
|
-
`;
|
|
30
|
-
|
|
31
|
-
const regex = emojiRegex();
|
|
32
|
-
for (const match of text.matchAll(regex)) {
|
|
33
|
-
const emoji = match[0];
|
|
34
|
-
console.log(`Matched sequence ${ emoji } — code points: ${ [...emoji].length }`);
|
|
35
|
-
}
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
Console output:
|
|
39
|
-
|
|
40
|
-
```
|
|
41
|
-
Matched sequence ⌚ — code points: 1
|
|
42
|
-
Matched sequence ⌚ — code points: 1
|
|
43
|
-
Matched sequence ↔️ — code points: 2
|
|
44
|
-
Matched sequence ↔️ — code points: 2
|
|
45
|
-
Matched sequence 👩 — code points: 1
|
|
46
|
-
Matched sequence 👩 — code points: 1
|
|
47
|
-
Matched sequence 👩🏿 — code points: 2
|
|
48
|
-
Matched sequence 👩🏿 — code points: 2
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
## For maintainers
|
|
52
|
-
|
|
53
|
-
### How to update emoji-regex after new Unicode Standard releases
|
|
54
|
-
|
|
55
|
-
1. [Update _emoji-test-regex-pattern_ as described in its repository](https://github.com/mathiasbynens/emoji-test-regex-pattern#how-to-update-emoji-test-regex-pattern-after-new-uts51-releases).
|
|
56
|
-
|
|
57
|
-
1. Bump the _emoji-test-regex-pattern_ dependency to the latest version.
|
|
58
|
-
|
|
59
|
-
1. Update the Unicode data dependency in `package.json` by running the following commands:
|
|
60
|
-
|
|
61
|
-
```sh
|
|
62
|
-
# Example: updating from Unicode v13 to Unicode v14.
|
|
63
|
-
npm uninstall @unicode/unicode-13.0.0
|
|
64
|
-
npm install @unicode/unicode-14.0.0 --save-dev
|
|
65
|
-
````
|
|
66
|
-
|
|
67
|
-
1. Generate the new output:
|
|
68
|
-
|
|
69
|
-
```sh
|
|
70
|
-
npm run build
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
1. Verify that tests still pass:
|
|
74
|
-
|
|
75
|
-
```sh
|
|
76
|
-
npm test
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
### How to publish a new release
|
|
80
|
-
|
|
81
|
-
1. On the `main` branch, bump the emoji-regex version number in `package.json`:
|
|
82
|
-
|
|
83
|
-
```sh
|
|
84
|
-
npm version patch -m 'Release v%s'
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
Instead of `patch`, use `minor` or `major` [as needed](https://semver.org/).
|
|
88
|
-
|
|
89
|
-
Note that this produces a Git commit + tag.
|
|
90
|
-
|
|
91
|
-
1. Push the release commit and tag:
|
|
92
|
-
|
|
93
|
-
```sh
|
|
94
|
-
git push && git push --tags
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
Our CI then automatically publishes the new release to npm.
|
|
98
|
-
|
|
99
|
-
## Author
|
|
100
|
-
|
|
101
|
-
| [](https://twitter.com/mathias "Follow @mathias on Twitter") |
|
|
102
|
-
|---|
|
|
103
|
-
| [Mathias Bynens](https://mathiasbynens.be/) |
|
|
104
|
-
|
|
105
|
-
## License
|
|
106
|
-
|
|
107
|
-
_emoji-regex_ is available under the [MIT](https://mths.be/mit) license.
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
module.exports = () => {
|
|
2
|
-
// https://mths.be/emoji
|
|
3
|
-
return /[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E-\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED8\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])))?))?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3C-\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE8A\uDE8E-\uDEC2\uDEC6\uDEC8\uDECD-\uDEDC\uDEDF-\uDEEA\uDEEF]|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g;
|
|
4
|
-
};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export default () => {
|
|
2
|
-
// https://mths.be/emoji
|
|
3
|
-
return /[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E-\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED8\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDD1D\uDEEF]\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE]|[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE]|\uDEEF\u200D\uD83D\uDC69\uD83C[\uDFFB-\uDFFE])))?))?|\uDD75(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3C-\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE8A\uDE8E-\uDEC2\uDEC6\uDEC8\uDECD-\uDEDC\uDEDF-\uDEEA\uDEEF]|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC30\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3\uDE70]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF]|\uDEEF\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/g;
|
|
4
|
-
};
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "emoji-regex",
|
|
3
|
-
"version": "10.6.0",
|
|
4
|
-
"description": "A regular expression to match all Emoji-only symbols as per the Unicode Standard.",
|
|
5
|
-
"homepage": "https://mths.be/emoji-regex",
|
|
6
|
-
"main": "index.js",
|
|
7
|
-
"module": "index.mjs",
|
|
8
|
-
"types": "index.d.ts",
|
|
9
|
-
"keywords": [
|
|
10
|
-
"unicode",
|
|
11
|
-
"regex",
|
|
12
|
-
"regexp",
|
|
13
|
-
"regular expressions",
|
|
14
|
-
"code points",
|
|
15
|
-
"symbols",
|
|
16
|
-
"characters",
|
|
17
|
-
"emoji"
|
|
18
|
-
],
|
|
19
|
-
"license": "MIT",
|
|
20
|
-
"author": {
|
|
21
|
-
"name": "Mathias Bynens",
|
|
22
|
-
"url": "https://mathiasbynens.be/"
|
|
23
|
-
},
|
|
24
|
-
"repository": {
|
|
25
|
-
"type": "git",
|
|
26
|
-
"url": "https://github.com/mathiasbynens/emoji-regex.git"
|
|
27
|
-
},
|
|
28
|
-
"bugs": "https://github.com/mathiasbynens/emoji-regex/issues",
|
|
29
|
-
"files": [
|
|
30
|
-
"LICENSE-MIT.txt",
|
|
31
|
-
"index.js",
|
|
32
|
-
"index.d.ts",
|
|
33
|
-
"index.mjs"
|
|
34
|
-
],
|
|
35
|
-
"scripts": {
|
|
36
|
-
"build": "node script/build.js",
|
|
37
|
-
"test": "mocha",
|
|
38
|
-
"test:watch": "npm run test -- --watch"
|
|
39
|
-
},
|
|
40
|
-
"devDependencies": {
|
|
41
|
-
"@unicode/unicode-17.0.0": "^1.6.10",
|
|
42
|
-
"emoji-test-regex-pattern": "^2.4.0",
|
|
43
|
-
"mocha": "^11.7.2"
|
|
44
|
-
}
|
|
45
|
-
}
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
export type WidthType = 'fullwidth' | 'halfwidth' | 'wide' | 'narrow' | 'neutral' | 'ambiguous';
|
|
2
|
-
|
|
3
|
-
export type Options = {
|
|
4
|
-
/**
|
|
5
|
-
Whether to treat an `'ambiguous'` character as wide.
|
|
6
|
-
|
|
7
|
-
@default true
|
|
8
|
-
|
|
9
|
-
@example
|
|
10
|
-
```
|
|
11
|
-
import {eastAsianWidth} from 'get-east-asian-width';
|
|
12
|
-
|
|
13
|
-
const codePoint = '⛣'.codePointAt(0);
|
|
14
|
-
|
|
15
|
-
console.log(eastAsianWidth(codePoint));
|
|
16
|
-
//=> 1
|
|
17
|
-
|
|
18
|
-
console.log(eastAsianWidth(codePoint, {ambiguousAsWide: true}));
|
|
19
|
-
//=> 2
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
> Ambiguous characters behave like wide or narrow characters depending on the context (language tag, script identification, associated font, source of data, or explicit markup; all can provide the context). __If the context cannot be established reliably, they should be treated as narrow characters by default.__
|
|
23
|
-
> - http://www.unicode.org/reports/tr11/
|
|
24
|
-
*/
|
|
25
|
-
readonly ambiguousAsWide?: boolean;
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
Returns the width as a number for the given code point.
|
|
30
|
-
|
|
31
|
-
@param codePoint - A Unicode code point.
|
|
32
|
-
|
|
33
|
-
@example
|
|
34
|
-
```
|
|
35
|
-
import {eastAsianWidth} from 'get-east-asian-width';
|
|
36
|
-
|
|
37
|
-
const codePoint = '字'.codePointAt(0);
|
|
38
|
-
|
|
39
|
-
console.log(eastAsianWidth(codePoint));
|
|
40
|
-
//=> 2
|
|
41
|
-
```
|
|
42
|
-
*/
|
|
43
|
-
export function eastAsianWidth(codePoint: number, options?: Options): 1 | 2;
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
Returns the type of “East Asian Width” for the given code point.
|
|
47
|
-
|
|
48
|
-
@param codePoint - A Unicode code point.
|
|
49
|
-
|
|
50
|
-
@example
|
|
51
|
-
```
|
|
52
|
-
import {eastAsianWidthType} from 'get-east-asian-width';
|
|
53
|
-
|
|
54
|
-
const codePoint = '字'.codePointAt(0);
|
|
55
|
-
|
|
56
|
-
console.log(eastAsianWidthType(codePoint));
|
|
57
|
-
//=> 'wide'
|
|
58
|
-
```
|
|
59
|
-
*/
|
|
60
|
-
export function eastAsianWidthType(codePoint: number): WidthType;
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import {getCategory, isAmbiguous, isFullWidth, isWide} from './lookup.js';
|
|
2
|
-
|
|
3
|
-
function validate(codePoint) {
|
|
4
|
-
if (!Number.isSafeInteger(codePoint)) {
|
|
5
|
-
throw new TypeError(`Expected a code point, got \`${typeof codePoint}\`.`);
|
|
6
|
-
}
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
export function eastAsianWidthType(codePoint) {
|
|
10
|
-
validate(codePoint);
|
|
11
|
-
|
|
12
|
-
return getCategory(codePoint);
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
export function eastAsianWidth(codePoint, {ambiguousAsWide = false} = {}) {
|
|
16
|
-
validate(codePoint);
|
|
17
|
-
|
|
18
|
-
if (
|
|
19
|
-
isFullWidth(codePoint)
|
|
20
|
-
|| isWide(codePoint)
|
|
21
|
-
|| (ambiguousAsWide && isAmbiguous(codePoint))
|
|
22
|
-
) {
|
|
23
|
-
return 2;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
return 1;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
// Private exports for https://github.com/sindresorhus/is-fullwidth-code-point
|
|
30
|
-
export {isFullWidth as _isFullWidth, isWide as _isWide} from './lookup.js';
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
6
|
-
|
|
7
|
-
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
|
8
|
-
|
|
9
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
// Generated by scripts/build.js
|
|
2
|
-
|
|
3
|
-
// prettier-ignore
|
|
4
|
-
const ambiguousRanges = [161, 161, 164, 164, 167, 168, 170, 170, 173, 174, 176, 180, 182, 186, 188, 191, 198, 198, 208, 208, 215, 216, 222, 225, 230, 230, 232, 234, 236, 237, 240, 240, 242, 243, 247, 250, 252, 252, 254, 254, 257, 257, 273, 273, 275, 275, 283, 283, 294, 295, 299, 299, 305, 307, 312, 312, 319, 322, 324, 324, 328, 331, 333, 333, 338, 339, 358, 359, 363, 363, 462, 462, 464, 464, 466, 466, 468, 468, 470, 470, 472, 472, 474, 474, 476, 476, 593, 593, 609, 609, 708, 708, 711, 711, 713, 715, 717, 717, 720, 720, 728, 731, 733, 733, 735, 735, 768, 879, 913, 929, 931, 937, 945, 961, 963, 969, 1025, 1025, 1040, 1103, 1105, 1105, 8208, 8208, 8211, 8214, 8216, 8217, 8220, 8221, 8224, 8226, 8228, 8231, 8240, 8240, 8242, 8243, 8245, 8245, 8251, 8251, 8254, 8254, 8308, 8308, 8319, 8319, 8321, 8324, 8364, 8364, 8451, 8451, 8453, 8453, 8457, 8457, 8467, 8467, 8470, 8470, 8481, 8482, 8486, 8486, 8491, 8491, 8531, 8532, 8539, 8542, 8544, 8555, 8560, 8569, 8585, 8585, 8592, 8601, 8632, 8633, 8658, 8658, 8660, 8660, 8679, 8679, 8704, 8704, 8706, 8707, 8711, 8712, 8715, 8715, 8719, 8719, 8721, 8721, 8725, 8725, 8730, 8730, 8733, 8736, 8739, 8739, 8741, 8741, 8743, 8748, 8750, 8750, 8756, 8759, 8764, 8765, 8776, 8776, 8780, 8780, 8786, 8786, 8800, 8801, 8804, 8807, 8810, 8811, 8814, 8815, 8834, 8835, 8838, 8839, 8853, 8853, 8857, 8857, 8869, 8869, 8895, 8895, 8978, 8978, 9312, 9449, 9451, 9547, 9552, 9587, 9600, 9615, 9618, 9621, 9632, 9633, 9635, 9641, 9650, 9651, 9654, 9655, 9660, 9661, 9664, 9665, 9670, 9672, 9675, 9675, 9678, 9681, 9698, 9701, 9711, 9711, 9733, 9734, 9737, 9737, 9742, 9743, 9756, 9756, 9758, 9758, 9792, 9792, 9794, 9794, 9824, 9825, 9827, 9829, 9831, 9834, 9836, 9837, 9839, 9839, 9886, 9887, 9919, 9919, 9926, 9933, 9935, 9939, 9941, 9953, 9955, 9955, 9960, 9961, 9963, 9969, 9972, 9972, 9974, 9977, 9979, 9980, 9982, 9983, 10045, 10045, 10102, 10111, 11094, 11097, 12872, 12879, 57344, 63743, 65024, 65039, 65533, 65533, 127232, 127242, 127248, 127277, 127280, 127337, 127344, 127373, 127375, 127376, 127387, 127404, 917760, 917999, 983040, 1048573, 1048576, 1114109];
|
|
5
|
-
|
|
6
|
-
// prettier-ignore
|
|
7
|
-
const fullwidthRanges = [12288, 12288, 65281, 65376, 65504, 65510];
|
|
8
|
-
|
|
9
|
-
// prettier-ignore
|
|
10
|
-
const halfwidthRanges = [8361, 8361, 65377, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500, 65512, 65518];
|
|
11
|
-
|
|
12
|
-
// prettier-ignore
|
|
13
|
-
const narrowRanges = [32, 126, 162, 163, 165, 166, 172, 172, 175, 175, 10214, 10221, 10629, 10630];
|
|
14
|
-
|
|
15
|
-
// prettier-ignore
|
|
16
|
-
const wideRanges = [4352, 4447, 8986, 8987, 9001, 9002, 9193, 9196, 9200, 9200, 9203, 9203, 9725, 9726, 9748, 9749, 9776, 9783, 9800, 9811, 9855, 9855, 9866, 9871, 9875, 9875, 9889, 9889, 9898, 9899, 9917, 9918, 9924, 9925, 9934, 9934, 9940, 9940, 9962, 9962, 9970, 9971, 9973, 9973, 9978, 9978, 9981, 9981, 9989, 9989, 9994, 9995, 10024, 10024, 10060, 10060, 10062, 10062, 10067, 10069, 10071, 10071, 10133, 10135, 10160, 10160, 10175, 10175, 11035, 11036, 11088, 11088, 11093, 11093, 11904, 11929, 11931, 12019, 12032, 12245, 12272, 12287, 12289, 12350, 12353, 12438, 12441, 12543, 12549, 12591, 12593, 12686, 12688, 12773, 12783, 12830, 12832, 12871, 12880, 42124, 42128, 42182, 43360, 43388, 44032, 55203, 63744, 64255, 65040, 65049, 65072, 65106, 65108, 65126, 65128, 65131, 94176, 94180, 94192, 94198, 94208, 101589, 101631, 101662, 101760, 101874, 110576, 110579, 110581, 110587, 110589, 110590, 110592, 110882, 110898, 110898, 110928, 110930, 110933, 110933, 110948, 110951, 110960, 111355, 119552, 119638, 119648, 119670, 126980, 126980, 127183, 127183, 127374, 127374, 127377, 127386, 127488, 127490, 127504, 127547, 127552, 127560, 127568, 127569, 127584, 127589, 127744, 127776, 127789, 127797, 127799, 127868, 127870, 127891, 127904, 127946, 127951, 127955, 127968, 127984, 127988, 127988, 127992, 128062, 128064, 128064, 128066, 128252, 128255, 128317, 128331, 128334, 128336, 128359, 128378, 128378, 128405, 128406, 128420, 128420, 128507, 128591, 128640, 128709, 128716, 128716, 128720, 128722, 128725, 128728, 128732, 128735, 128747, 128748, 128756, 128764, 128992, 129003, 129008, 129008, 129292, 129338, 129340, 129349, 129351, 129535, 129648, 129660, 129664, 129674, 129678, 129734, 129736, 129736, 129741, 129756, 129759, 129770, 129775, 129784, 131072, 196605, 196608, 262141];
|
|
17
|
-
|
|
18
|
-
export {ambiguousRanges, fullwidthRanges, halfwidthRanges, narrowRanges, wideRanges};
|
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
ambiguousRanges,
|
|
3
|
-
fullwidthRanges,
|
|
4
|
-
halfwidthRanges,
|
|
5
|
-
narrowRanges,
|
|
6
|
-
wideRanges,
|
|
7
|
-
} from './lookup-data.js';
|
|
8
|
-
import {isInRange} from './utilities.js';
|
|
9
|
-
|
|
10
|
-
const minimumAmbiguousCodePoint = ambiguousRanges[0];
|
|
11
|
-
const maximumAmbiguousCodePoint = ambiguousRanges.at(-1);
|
|
12
|
-
const minimumFullWidthCodePoint = fullwidthRanges[0];
|
|
13
|
-
const maximumFullWidthCodePoint = fullwidthRanges.at(-1);
|
|
14
|
-
const minimumHalfWidthCodePoint = halfwidthRanges[0];
|
|
15
|
-
const maximumHalfWidthCodePoint = halfwidthRanges.at(-1);
|
|
16
|
-
const minimumNarrowCodePoint = narrowRanges[0];
|
|
17
|
-
const maximumNarrowCodePoint = narrowRanges.at(-1);
|
|
18
|
-
const minimumWideCodePoint = wideRanges[0];
|
|
19
|
-
const maximumWideCodePoint = wideRanges.at(-1);
|
|
20
|
-
|
|
21
|
-
const commonCjkCodePoint = 0x4E_00;
|
|
22
|
-
const [wideFastPathStart, wideFastPathEnd] = findWideFastPathRange(wideRanges);
|
|
23
|
-
|
|
24
|
-
// Use a hot-path range so common `isWide` calls can skip binary search.
|
|
25
|
-
// The range containing U+4E00 covers common CJK ideographs;
|
|
26
|
-
// fallback to the largest range for resilience to Unicode table changes.
|
|
27
|
-
function findWideFastPathRange(ranges) {
|
|
28
|
-
let fastPathStart = ranges[0];
|
|
29
|
-
let fastPathEnd = ranges[1];
|
|
30
|
-
|
|
31
|
-
for (let index = 0; index < ranges.length; index += 2) {
|
|
32
|
-
const start = ranges[index];
|
|
33
|
-
const end = ranges[index + 1];
|
|
34
|
-
|
|
35
|
-
if (
|
|
36
|
-
commonCjkCodePoint >= start
|
|
37
|
-
&& commonCjkCodePoint <= end
|
|
38
|
-
) {
|
|
39
|
-
return [start, end];
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
if ((end - start) > (fastPathEnd - fastPathStart)) {
|
|
43
|
-
fastPathStart = start;
|
|
44
|
-
fastPathEnd = end;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
return [fastPathStart, fastPathEnd];
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
export const isAmbiguous = codePoint => {
|
|
52
|
-
if (
|
|
53
|
-
codePoint < minimumAmbiguousCodePoint
|
|
54
|
-
|| codePoint > maximumAmbiguousCodePoint
|
|
55
|
-
) {
|
|
56
|
-
return false;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
return isInRange(ambiguousRanges, codePoint);
|
|
60
|
-
};
|
|
61
|
-
|
|
62
|
-
export const isFullWidth = codePoint => {
|
|
63
|
-
if (
|
|
64
|
-
codePoint < minimumFullWidthCodePoint
|
|
65
|
-
|| codePoint > maximumFullWidthCodePoint
|
|
66
|
-
) {
|
|
67
|
-
return false;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
return isInRange(fullwidthRanges, codePoint);
|
|
71
|
-
};
|
|
72
|
-
|
|
73
|
-
const isHalfWidth = codePoint => {
|
|
74
|
-
if (
|
|
75
|
-
codePoint < minimumHalfWidthCodePoint
|
|
76
|
-
|| codePoint > maximumHalfWidthCodePoint
|
|
77
|
-
) {
|
|
78
|
-
return false;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
return isInRange(halfwidthRanges, codePoint);
|
|
82
|
-
};
|
|
83
|
-
|
|
84
|
-
const isNarrow = codePoint => {
|
|
85
|
-
if (
|
|
86
|
-
codePoint < minimumNarrowCodePoint
|
|
87
|
-
|| codePoint > maximumNarrowCodePoint
|
|
88
|
-
) {
|
|
89
|
-
return false;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
return isInRange(narrowRanges, codePoint);
|
|
93
|
-
};
|
|
94
|
-
|
|
95
|
-
export const isWide = codePoint => {
|
|
96
|
-
if (
|
|
97
|
-
codePoint >= wideFastPathStart
|
|
98
|
-
&& codePoint <= wideFastPathEnd
|
|
99
|
-
) {
|
|
100
|
-
return true;
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
if (
|
|
104
|
-
codePoint < minimumWideCodePoint
|
|
105
|
-
|| codePoint > maximumWideCodePoint
|
|
106
|
-
) {
|
|
107
|
-
return false;
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
return isInRange(wideRanges, codePoint);
|
|
111
|
-
};
|
|
112
|
-
|
|
113
|
-
export function getCategory(codePoint) {
|
|
114
|
-
if (isAmbiguous(codePoint)) {
|
|
115
|
-
return 'ambiguous';
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
if (isFullWidth(codePoint)) {
|
|
119
|
-
return 'fullwidth';
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
if (isHalfWidth(codePoint)) {
|
|
123
|
-
return 'halfwidth';
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
if (isNarrow(codePoint)) {
|
|
127
|
-
return 'narrow';
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
if (isWide(codePoint)) {
|
|
131
|
-
return 'wide';
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
return 'neutral';
|
|
135
|
-
}
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "get-east-asian-width",
|
|
3
|
-
"version": "1.5.0",
|
|
4
|
-
"description": "Determine the East Asian Width of a Unicode character",
|
|
5
|
-
"license": "MIT",
|
|
6
|
-
"repository": "sindresorhus/get-east-asian-width",
|
|
7
|
-
"funding": "https://github.com/sponsors/sindresorhus",
|
|
8
|
-
"author": {
|
|
9
|
-
"name": "Sindre Sorhus",
|
|
10
|
-
"email": "sindresorhus@gmail.com",
|
|
11
|
-
"url": "https://sindresorhus.com"
|
|
12
|
-
},
|
|
13
|
-
"type": "module",
|
|
14
|
-
"exports": {
|
|
15
|
-
"types": "./index.d.ts",
|
|
16
|
-
"default": "./index.js"
|
|
17
|
-
},
|
|
18
|
-
"sideEffects": false,
|
|
19
|
-
"engines": {
|
|
20
|
-
"node": ">=18"
|
|
21
|
-
},
|
|
22
|
-
"scripts": {
|
|
23
|
-
"test": "xo && ava && tsc index.d.ts",
|
|
24
|
-
"build": "node scripts/build.js",
|
|
25
|
-
"prepublish": "npm run build"
|
|
26
|
-
},
|
|
27
|
-
"files": [
|
|
28
|
-
"index.js",
|
|
29
|
-
"index.d.ts",
|
|
30
|
-
"lookup.js",
|
|
31
|
-
"lookup-data.js",
|
|
32
|
-
"utilities.js"
|
|
33
|
-
],
|
|
34
|
-
"keywords": [
|
|
35
|
-
"unicode",
|
|
36
|
-
"east-asian-width",
|
|
37
|
-
"eastasianwidth",
|
|
38
|
-
"character",
|
|
39
|
-
"string",
|
|
40
|
-
"width",
|
|
41
|
-
"text",
|
|
42
|
-
"layout",
|
|
43
|
-
"alignment",
|
|
44
|
-
"fullwidth",
|
|
45
|
-
"halfwidth",
|
|
46
|
-
"ambiguous",
|
|
47
|
-
"narrow",
|
|
48
|
-
"wide",
|
|
49
|
-
"neutral",
|
|
50
|
-
"typography",
|
|
51
|
-
"japanese",
|
|
52
|
-
"chinese",
|
|
53
|
-
"korean",
|
|
54
|
-
"codepoint",
|
|
55
|
-
"text-processing",
|
|
56
|
-
"i18n",
|
|
57
|
-
"l10n"
|
|
58
|
-
],
|
|
59
|
-
"devDependencies": {
|
|
60
|
-
"ava": "^5.3.1",
|
|
61
|
-
"outdent": "^0.8.0",
|
|
62
|
-
"simplify-ranges": "^0.1.0",
|
|
63
|
-
"typescript": "^5.2.2",
|
|
64
|
-
"xo": "^0.56.0"
|
|
65
|
-
},
|
|
66
|
-
"xo": {
|
|
67
|
-
"ignores": [
|
|
68
|
-
"lookup-data.js"
|
|
69
|
-
]
|
|
70
|
-
}
|
|
71
|
-
}
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
# get-east-asian-width
|
|
2
|
-
|
|
3
|
-
> Determine the [East Asian Width](https://unicode.org/reports/tr11/) of a Unicode character
|
|
4
|
-
|
|
5
|
-
> East Asian Width categorizes Unicode characters based on their occupied space in East Asian typography, which helps in text layout and alignment, particularly in languages like Japanese, Chinese, and Korean.
|
|
6
|
-
|
|
7
|
-
Unlike other similar packages, this package uses the latest Unicode data (which changes each year).
|
|
8
|
-
|
|
9
|
-
## Install
|
|
10
|
-
|
|
11
|
-
```sh
|
|
12
|
-
npm install get-east-asian-width
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
## Usage
|
|
16
|
-
|
|
17
|
-
```js
|
|
18
|
-
import {eastAsianWidth, eastAsianWidthType} from 'get-east-asian-width';
|
|
19
|
-
|
|
20
|
-
const codePoint = '字'.codePointAt(0);
|
|
21
|
-
|
|
22
|
-
console.log(eastAsianWidth(codePoint));
|
|
23
|
-
//=> 2
|
|
24
|
-
|
|
25
|
-
console.log(eastAsianWidthType(codePoint));
|
|
26
|
-
//=> 'wide'
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
## `eastAsianWidth(codePoint: number, options?: object): 1 | 2`
|
|
30
|
-
|
|
31
|
-
Returns the width as a number for the given code point.
|
|
32
|
-
|
|
33
|
-
### options
|
|
34
|
-
|
|
35
|
-
Type: `object`
|
|
36
|
-
|
|
37
|
-
#### ambiguousAsWide
|
|
38
|
-
|
|
39
|
-
Type: `boolean`\
|
|
40
|
-
Default: `false`
|
|
41
|
-
|
|
42
|
-
Whether to treat an `'ambiguous'` character as wide.
|
|
43
|
-
|
|
44
|
-
```js
|
|
45
|
-
import {eastAsianWidth} from 'get-east-asian-width';
|
|
46
|
-
|
|
47
|
-
const codePoint = '⛣'.codePointAt(0);
|
|
48
|
-
|
|
49
|
-
console.log(eastAsianWidth(codePoint));
|
|
50
|
-
//=> 1
|
|
51
|
-
|
|
52
|
-
console.log(eastAsianWidth(codePoint, {ambiguousAsWide: true}));
|
|
53
|
-
//=> 2
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
> Ambiguous characters behave like wide or narrow characters depending on the context (language tag, script identification, associated font, source of data, or explicit markup; all can provide the context). **If the context cannot be established reliably, they should be treated as narrow characters by default.**
|
|
57
|
-
> - http://www.unicode.org/reports/tr11/
|
|
58
|
-
|
|
59
|
-
## `eastAsianWidthType(codePoint: number): 'fullwidth' | 'halfwidth' | 'wide' | 'narrow' | 'neutral' | 'ambiguous'`
|
|
60
|
-
|
|
61
|
-
Returns the type of “East Asian Width” for the given code point.
|
|
62
|
-
|
|
63
|
-
## Related
|
|
64
|
-
|
|
65
|
-
- [string-width](https://github.com/sindresorhus/string-width) - Get the visual width of a string
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
Binary search on a sorted flat array of [start, end] pairs.
|
|
3
|
-
|
|
4
|
-
@param {number[]} ranges - Flat array of inclusive [start, end] range pairs, e.g. [0, 5, 10, 20].
|
|
5
|
-
@param {number} codePoint - The value to search for.
|
|
6
|
-
@returns {boolean} Whether the value falls within any of the ranges.
|
|
7
|
-
*/
|
|
8
|
-
export const isInRange = (ranges, codePoint) => {
|
|
9
|
-
let low = 0;
|
|
10
|
-
let high = Math.floor(ranges.length / 2) - 1;
|
|
11
|
-
while (low <= high) {
|
|
12
|
-
const mid = Math.floor((low + high) / 2);
|
|
13
|
-
const i = mid * 2;
|
|
14
|
-
if (codePoint < ranges[i]) {
|
|
15
|
-
high = mid - 1;
|
|
16
|
-
} else if (codePoint > ranges[i + 1]) {
|
|
17
|
-
low = mid + 1;
|
|
18
|
-
} else {
|
|
19
|
-
return true;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
return false;
|
|
24
|
-
};
|