decocms 2.299.0 → 2.300.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-aQgTv3kr.js → AlertCircle-DQvE1HHW.js} +1 -1
- package/dist/client/assets/{ArrowNarrowLeft-C_pLc5t-.js → ArrowNarrowLeft-JeNHsl7t.js} +1 -1
- package/dist/client/assets/{ArrowUpRight-Bws5ir-q.js → ArrowUpRight-DrX0ZBVK.js} +1 -1
- package/dist/client/assets/{CheckCircle-Cwc7BvQq.js → CheckCircle-jz1wj0OZ.js} +1 -1
- package/dist/client/assets/{ChevronDown-C4MI00HX.js → ChevronDown-CJXiv6mb.js} +1 -1
- package/dist/client/assets/{ChevronRight-DDkghuaf.js → ChevronRight-jhe98Hpl.js} +1 -1
- package/dist/client/assets/{ChevronUp-BjFGxYUb.js → ChevronUp--G-qrAEM.js} +1 -1
- package/dist/client/assets/{Container-U4v06cth.js → Container-LZZyJPZO.js} +1 -1
- package/dist/client/assets/{DotsVertical-BCK2nFhn.js → DotsVertical-B-LaCx0W.js} +1 -1
- package/dist/client/assets/{LinkExternal01-C_yQygSO.js → LinkExternal01-2sbW7UGS.js} +1 -1
- package/dist/client/assets/{Lock01-rLvN1xbd.js → Lock01-BOEORqQ0.js} +1 -1
- package/dist/client/assets/{Palette-CA95sDHj.js → Palette-CZdOy-tN.js} +1 -1
- package/dist/client/assets/{Play-BlOman6C.js → Play-CVmYi0Gz.js} +1 -1
- package/dist/client/assets/{Plus-B5soxpbi.js → Plus-0qTCNeQu.js} +1 -1
- package/dist/client/assets/{RefreshCcw01-onzNEsM4.js → RefreshCcw01-CczH9hEb.js} +1 -1
- package/dist/client/assets/{SearchMd-fvAW1pa8.js → SearchMd-D3ej9sdm.js} +1 -1
- package/dist/client/assets/{Settings02-Cro6-7q4.js → Settings02-DSMqESXP.js} +1 -1
- package/dist/client/assets/{Shield01-DtWtqZJ1.js → Shield01-Dk5a3EIz.js} +1 -1
- package/dist/client/assets/{Star01-BHGJRtit.js → Star01-BRqpvEVh.js} +1 -1
- package/dist/client/assets/{Sun-C6J9iUe_.js → Sun-D-zn2wQr.js} +1 -1
- package/dist/client/assets/{Tool01-DeRpug6W.js → Tool01-ta8c5owo.js} +1 -1
- package/dist/client/assets/{Trash01-BSFNbfe8.js → Trash01-piYSxXuV.js} +1 -1
- package/dist/client/assets/{User01-C-8Fo7RS.js → User01-BRe74tu_.js} +1 -1
- package/dist/client/assets/{Users03-C25Ink_E.js → Users03-BthJNdjb.js} +1 -1
- package/dist/client/assets/{X-Cf3FFZEE.js → X-Bs-K3rP3.js} +1 -1
- package/dist/client/assets/{XCircle-CLM44_6-.js → XCircle-W80KsA2R.js} +1 -1
- package/dist/client/assets/{XClose-B9H_q-Ab.js → XClose-BvTeI7_p.js} +1 -1
- package/dist/client/assets/{Zap-BQvzqOLx.js → Zap-CruZDu0W.js} +1 -1
- package/dist/client/assets/{ZapSquare-CjSpwpWX.js → ZapSquare-oPqMGrmK.js} +1 -1
- package/dist/client/assets/{accordion-YUzrCziW.js → accordion-CbzOgqka.js} +1 -1
- package/dist/client/assets/{agent-icon-CyFFhaia.js → agent-icon-a5rgdmvn.js} +1 -1
- package/dist/client/assets/{agents-list-W7eiHZAH.js → agents-list-DUOWHygM.js} +1 -1
- package/dist/client/assets/ai-providers-BrRsZwwm.js +1 -0
- package/dist/client/assets/{alert-dialog-BRriT9Rx.js → alert-dialog-DpjW0duE.js} +1 -1
- package/dist/client/assets/{auth-catchall-dvNJT_HW.js → auth-catchall-DdrEC2nk.js} +1 -1
- package/dist/client/assets/{automation-list-row-Dr5BqZcR.js → automation-list-row-DmDAOiMK.js} +1 -1
- package/dist/client/assets/{automations-DThDEBhK.js → automations-BGpDui88.js} +1 -1
- package/dist/client/assets/{avatar-DZ7Lcia3.js → avatar-C9H5J0ZH.js} +1 -1
- package/dist/client/assets/{badge-CNKFpwCQ.js → badge-DM1yKdHA.js} +1 -1
- package/dist/client/assets/{brand-context-FHNmQTmw.js → brand-context-CHgKeNYL.js} +1 -1
- package/dist/client/assets/{card-DVXldwSE.js → card-D3EHlDqN.js} +1 -1
- package/dist/client/assets/{chat-context-clHOazkR.js → chat-context-BTwAu2wE.js} +1 -1
- package/dist/client/assets/{checkbox-EVw79nds.js → checkbox-BfEy2ev6.js} +1 -1
- package/dist/client/assets/{collection-detail-C13v-yoJ.js → collection-detail-CwiJKTp0.js} +1 -1
- package/dist/client/assets/{collection-display-button-BM4OZbbR.js → collection-display-button-I1MRNJca.js} +1 -1
- package/dist/client/assets/{collection-search-DjqZM35U.js → collection-search-BDlHgig4.js} +1 -1
- package/dist/client/assets/{collection-search-DoSMDd39.js → collection-search-DTXYBhEG.js} +1 -1
- package/dist/client/assets/{collection-table-wrapper-jyvgWmq5.js → collection-table-wrapper-BZgayY2v.js} +1 -1
- package/dist/client/assets/{collection-tabs-Nu6UZ0Wa.js → collection-tabs-ZB2vm_Ts.js} +1 -1
- package/dist/client/assets/{collections-_TpL4Kbd.js → collections-B4NDDkQp.js} +1 -1
- package/dist/client/assets/{command-BGK9JNiv.js → command-C8axDPx1.js} +1 -1
- package/dist/client/assets/{connection-card-h503T7yE.js → connection-card-B8zimY_1.js} +1 -1
- package/dist/client/assets/{connection-detail-E3ZTKIWY.js → connection-detail-CteDwS0C.js} +1 -1
- package/dist/client/assets/{connection-form-helpers-B5DiwUxU.js → connection-form-helpers-DW_KgaUQ.js} +1 -1
- package/dist/client/assets/{connections-Ba8EED2x.js → connections-DDRTvEHs.js} +1 -1
- package/dist/client/assets/{constants-CiJRSGoE.js → constants-6-xiUPcQ.js} +1 -1
- package/dist/client/assets/{constants-lTcLVS5n.js → constants-o7_eEaEl.js} +1 -1
- package/dist/client/assets/{dialog-BRB-AdlQ.js → dialog-Bt7s8NCP.js} +1 -1
- package/dist/client/assets/{domain-settings-vcc_x35P.js → domain-settings-2mBA4m9S.js} +1 -1
- package/dist/client/assets/{drawer-rKfRlJNC.js → drawer-a25q5Lla.js} +1 -1
- package/dist/client/assets/{dropdown-menu-DaYjsctt.js → dropdown-menu-BNdhp1TS.js} +1 -1
- package/dist/client/assets/{dynamic-plugin-layout-Bs-dtzIc.js → dynamic-plugin-layout-COSx8up3.js} +1 -1
- package/dist/client/assets/{empty-state-DpWDEkDd.js → empty-state-DfhDT_rL.js} +1 -1
- package/dist/client/assets/{empty-state-DLaWKneQ.js → empty-state-TuyNETUf.js} +1 -1
- package/dist/client/assets/{extract-connection-data-DIDviCIp.js → extract-connection-data-D-LoPsgm.js} +1 -1
- package/dist/client/assets/{features-CE8oBb9H.js → features-Dlqphz2t.js} +1 -1
- package/dist/client/assets/{form-mI6GLCMQ.js → form-DdyedIOG.js} +1 -1
- package/dist/client/assets/{general-27HuvgYf.js → general-B4yYUcgX.js} +1 -1
- package/dist/client/assets/{index-DHZDsons.js → index-0ONdtZvR.js} +1 -1
- package/dist/client/assets/index-6xFo1iCj.js +1 -0
- package/dist/client/assets/index-B4J1yAvl.css +1 -0
- package/dist/client/assets/{index-BLqORW7O.js → index-BLw8IR3q.js} +1 -1
- package/dist/client/assets/{index-CD-vU91r.js → index-C656JC4f.js} +1 -1
- package/dist/client/assets/{index-D8ZWoKb1.js → index-CFysdS9W.js} +1 -1
- package/dist/client/assets/{index-B3zZp_Qu.js → index-CPCIVubP.js} +1 -1
- package/dist/client/assets/{index-Ccm19Owr.js → index-CQbllXV7.js} +1 -1
- package/dist/client/assets/{index-cC9WxUf7.js → index-Cpu398f4.js} +1 -1
- package/dist/client/assets/{index-hcEg81hB.js → index-CyHkfxs2.js} +10 -10
- package/dist/client/assets/{index-WenLlWbb.js → index-DC8ny_LW.js} +19 -19
- package/dist/client/assets/{index-oMBghIJJ.js → index-DK4Y3HO1.js} +1 -1
- package/dist/client/assets/{index-CHiZkXhm.js → index-DiI3qNgk.js} +1 -1
- package/dist/client/assets/{index-C4eEdhdn.js → index-DrWfdeB3.js} +1 -1
- package/dist/client/assets/{index-B3FEpuQw.js → index-EieaBqsE.js} +1 -1
- package/dist/client/assets/{index-BdrUauLh.js → index-kpfWZVBp.js} +1 -1
- package/dist/client/assets/{index-B11-oLok.js → index-prfGmBrm.js} +1 -1
- package/dist/client/assets/{infiniteQueryObserver-DkM0VxlF.js → infiniteQueryObserver-WKNIeKEe.js} +1 -1
- package/dist/client/assets/{input-Cuud93wX.js → input-DocW6-0a.js} +1 -1
- package/dist/client/assets/{integration-icon-CsrRg2Lu.js → integration-icon-DtlHVjfw.js} +1 -1
- package/dist/client/assets/{label-Bk3DQN0Y.js → label-DbfzJMol.js} +1 -1
- package/dist/client/assets/{layout-BtQea4Qg.js → layout-Csh5DA6j.js} +1 -1
- package/dist/client/assets/{lean-canvas-recruit-modal-CbbipZjJ.js → lean-canvas-recruit-modal-DUB9h6gA.js} +1 -1
- package/dist/client/assets/{login-BgZ8a57W.js → login-D1QEp6zv.js} +1 -1
- package/dist/client/assets/{members-BrEtD2C0.js → members-CW5_GrD2.js} +1 -1
- package/dist/client/assets/{monaco-editor-B5h0xAd0.js → monaco-editor-CteNuuJr.js} +1 -1
- package/dist/client/assets/{monitoring-stats-row-FmuYstq7.js → monitoring-stats-row-C3CIix3j.js} +1 -1
- package/dist/client/assets/{oauth-callback-BOHYAMsk.js → oauth-callback-DvWEpCtv.js} +1 -1
- package/dist/client/assets/{oauth-callback-ai-provider-D2JxS3R_.js → oauth-callback-ai-provider-D6aB3jn_.js} +1 -1
- package/dist/client/assets/{onboarding-Dls-YBag.js → onboarding-CSq15NJd.js} +1 -1
- package/dist/client/assets/{org-layout-B0WpG86a.js → org-layout-BcG-IuRM.js} +1 -1
- package/dist/client/assets/{org-plugin-layout-fSkxW1jN.js → org-plugin-layout-R-CfCKdC.js} +1 -1
- package/dist/client/assets/{pair-CqYfP4a_.js → pair-4EJpDs9f.js} +1 -1
- package/dist/client/assets/{plugin-empty-state-C3M4-bHq.js → plugin-empty-state-C1qJ21wH.js} +1 -1
- package/dist/client/assets/{plugin-header-Bhl8FTKN.js → plugin-header-CnnrJKt7.js} +1 -1
- package/dist/client/assets/{plugin-layout-DOuAk8f9.js → plugin-layout-OKTV_231.js} +1 -1
- package/dist/client/assets/{popover-BWawolwL.js → popover-BD8OsO_3.js} +1 -1
- package/dist/client/assets/{profile-DKggoElb.js → profile-CPpu_rOC.js} +1 -1
- package/dist/client/assets/{project-app-view-BTqqbkYN.js → project-app-view-gL9oMI0P.js} +1 -1
- package/dist/client/assets/registry-BsoIBUPl.js +2 -0
- package/dist/client/assets/{registry-layout-Bcb0ETu2.js → registry-layout-CNGnjhXy.js} +1 -1
- package/dist/client/assets/{required-auth-layout-B0aP_BYa.js → required-auth-layout-crEy15On.js} +1 -1
- package/dist/client/assets/{reset-password-DAQu9CHm.js → reset-password-kcnAbcv3.js} +1 -1
- package/dist/client/assets/{roles-CV8Id8qK.js → roles-DYIwGuDN.js} +1 -1
- package/dist/client/assets/{scroll-area-0g8Z_dWS.js → scroll-area-DuFte1VC.js} +1 -1
- package/dist/client/assets/{search-input-jyuCy7Ai.js → search-input-DQy0Ln81.js} +1 -1
- package/dist/client/assets/{select-hpzuL2n7.js → select-Ceunqeln.js} +1 -1
- package/dist/client/assets/{select-model-CtHOnPsy.js → select-model-UWZWvXzk.js} +1 -1
- package/dist/client/assets/{settings-layout-ClllTp0r.js → settings-layout-DMvCQRt1.js} +1 -1
- package/dist/client/assets/{settings-section-DTpTGGC-.js → settings-section-iYYh-GAG.js} +1 -1
- package/dist/client/assets/{shell-layout-B405kN5F.js → shell-layout-B8B_ABl6.js} +1 -1
- package/dist/client/assets/{skeleton-B9GboYxM.js → skeleton-D9tsK-SD.js} +1 -1
- package/dist/client/assets/{sso-Dh1NgG1u.js → sso-D0aPF4WO.js} +1 -1
- package/dist/client/assets/{store-2uy2qIUV.js → store-dscxfYPH.js} +1 -1
- package/dist/client/assets/store-registry-D40XBFQ3.js +2 -0
- package/dist/client/assets/{switch-CD5xHhwa.js → switch-PJFUwNv2.js} +1 -1
- package/dist/client/assets/{table-Bl-CW2Ey.js → table-B0qcR2jp.js} +1 -1
- package/dist/client/assets/{tabs-8bRAvOFB.js → tabs-CbvFgdFf.js} +1 -1
- package/dist/client/assets/{task-status-Df19deFg.js → task-status-C0VnLSBE.js} +1 -1
- package/dist/client/assets/{textarea-0ebJKTCS.js → textarea-BBy60ci1.js} +1 -1
- package/dist/client/assets/{toggle-group-BqrVPEZw.js → toggle-group-wE6dZdNy.js} +1 -1
- package/dist/client/assets/{tools-list-1YgWwNhM.js → tools-list-B1mXoVnY.js} +1 -1
- package/dist/client/assets/{tooltip-CGmvkTM6.js → tooltip-MEij__fd.js} +1 -1
- package/dist/client/assets/{types-CN-G9hqy.js → types-DfUe_JMo.js} +1 -1
- package/dist/client/assets/{use-ai-providers-BtZzelvz.js → use-ai-providers-BsFsk2om.js} +1 -1
- package/dist/client/assets/{use-collections-DjbmBbmU.js → use-collections-CuFil9_H.js} +1 -1
- package/dist/client/assets/{use-connection-CffI5S47.js → use-connection-CyKUB7va.js} +1 -1
- package/dist/client/assets/{use-copy-DNx2iDfI.js → use-copy-L-Votg83.js} +1 -1
- package/dist/client/assets/{use-create-virtual-mcp-BFp1mbc9.js → use-create-virtual-mcp-DCZ_Q4yV.js} +1 -1
- package/dist/client/assets/{use-decopilot-events-D5TlUkky.js → use-decopilot-events-BU0YCIkb.js} +1 -1
- package/dist/client/assets/{use-delete-connection-O5X9Xo4O.js → use-delete-connection-CH1yR3V8.js} +1 -1
- package/dist/client/assets/{use-infinite-scroll-FZg8WuOv.js → use-infinite-scroll-CQf3beQh.js} +1 -1
- package/dist/client/assets/{use-list-state-CbWjR069.js → use-list-state-BO6QgJwM.js} +1 -1
- package/dist/client/assets/{use-mcp-tools-CxZifaYv.js → use-mcp-tools-UR7Tvr-a.js} +1 -1
- package/dist/client/assets/{use-members-CXQMD9Vu.js → use-members-0EtHtToT.js} +1 -1
- package/dist/client/assets/{use-navigate-to-agent-C0C5E43c.js → use-navigate-to-agent-C4FkilnS.js} +1 -1
- package/dist/client/assets/{use-org-auth-client-Dy4G77my.js → use-org-auth-client-DSFb3AOu.js} +1 -1
- package/dist/client/assets/{use-org-sso-Drj77Zm1.js → use-org-sso-uVWWV8lc.js} +1 -1
- package/dist/client/assets/{use-organization-roles-DmSBxwGY.js → use-organization-roles-DBQSLgAo.js} +1 -1
- package/dist/client/assets/{use-organization-settings--1KNcya1.js → use-organization-settings-D388Q9Bl.js} +1 -1
- package/dist/client/assets/{use-registry-connections-BaBm7Ii1.js → use-registry-connections-Cdqd9fMq.js} +1 -1
- package/dist/client/assets/{use-status-sounds-BDL4IJ6A.js → use-status-sounds-DcqY0aWN.js} +1 -1
- package/dist/client/assets/{use-tasks-DF42FEXc.js → use-tasks-BJrgZKAK.js} +1 -1
- package/dist/client/assets/{use-view-mode-CBcjjJZG.js → use-view-mode-DLgQEYRO.js} +1 -1
- package/dist/client/assets/{use-virtual-mcp-CTmQF3FY.js → use-virtual-mcp-MAVDLFj3.js} +1 -1
- package/dist/client/assets/useInfiniteQuery-Cb2JkfVZ.js +1 -0
- package/dist/client/assets/useSuspenseInfiniteQuery-JMOXdk3c.js +1 -0
- package/dist/client/assets/{user-DNhBNgsY.js → user-DvRNamCQ.js} +1 -1
- package/dist/client/assets/{view-mode-toggle-KbDgQNkg.js → view-mode-toggle-D8-KKhvu.js} +1 -1
- package/dist/client/assets/{workflow-DZzf5GRI.js → workflow-C2dwTU43.js} +1 -1
- package/dist/client/assets/workflow-detail-BcRuChZH.js +1 -0
- package/dist/client/index.html +2 -2
- package/dist/server/cli.js +1 -1
- package/dist/server/node_modules/get-east-asian-width/index.d.ts +60 -0
- package/dist/server/node_modules/get-east-asian-width/index.js +30 -0
- package/dist/server/node_modules/get-east-asian-width/lookup-data.js +18 -0
- package/dist/server/node_modules/get-east-asian-width/lookup.js +135 -0
- package/dist/server/node_modules/get-east-asian-width/package.json +71 -0
- package/dist/server/node_modules/get-east-asian-width/readme.md +65 -0
- package/dist/server/node_modules/get-east-asian-width/utilities.js +24 -0
- package/dist/server/node_modules/{xtend → pg}/LICENSE +7 -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/package.json +1 -1
- package/dist/client/assets/ai-providers-D112U5ed.js +0 -1
- package/dist/client/assets/index-CLgHTXwu.js +0 -1
- package/dist/client/assets/index-DT63_YMm.css +0 -1
- package/dist/client/assets/registry-BOvZQpcE.js +0 -2
- package/dist/client/assets/store-registry-LkT6leWD.js +0 -2
- package/dist/client/assets/useInfiniteQuery-BugVQNDu.js +0 -1
- package/dist/client/assets/useSuspenseInfiniteQuery-CMPA3kQv.js +0 -1
- package/dist/client/assets/workflow-detail-OXlDN5sZ.js +0 -1
- package/dist/server/node_modules/ansi-styles/index.d.ts +0 -236
- package/dist/server/node_modules/ansi-styles/index.js +0 -223
- package/dist/server/node_modules/ansi-styles/package.json +0 -54
- package/dist/server/node_modules/ansi-styles/readme.md +0 -173
- 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/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/split2/LICENSE +0 -13
- package/dist/server/node_modules/split2/README.md +0 -85
- package/dist/server/node_modules/split2/bench.js +0 -27
- package/dist/server/node_modules/split2/index.js +0 -141
- package/dist/server/node_modules/split2/package.json +0 -39
- package/dist/server/node_modules/split2/test.js +0 -409
- package/dist/server/node_modules/xtend/.jshintrc +0 -30
- package/dist/server/node_modules/xtend/README.md +0 -32
- package/dist/server/node_modules/xtend/immutable.js +0 -19
- package/dist/server/node_modules/xtend/mutable.js +0 -17
- package/dist/server/node_modules/xtend/package.json +0 -55
- package/dist/server/node_modules/xtend/test.js +0 -103
- /package/dist/server/node_modules/{ansi-styles → get-east-asian-width}/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,64 +0,0 @@
|
|
|
1
|
-
declare namespace onetime {
|
|
2
|
-
interface Options {
|
|
3
|
-
/**
|
|
4
|
-
Throw an error when called more than once.
|
|
5
|
-
|
|
6
|
-
@default false
|
|
7
|
-
*/
|
|
8
|
-
throw?: boolean;
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
declare const onetime: {
|
|
13
|
-
/**
|
|
14
|
-
Ensure a function is only called once. When called multiple times it will return the return value from the first call.
|
|
15
|
-
|
|
16
|
-
@param fn - Function that should only be called once.
|
|
17
|
-
@returns A function that only calls `fn` once.
|
|
18
|
-
|
|
19
|
-
@example
|
|
20
|
-
```
|
|
21
|
-
import onetime = require('onetime');
|
|
22
|
-
|
|
23
|
-
let i = 0;
|
|
24
|
-
|
|
25
|
-
const foo = onetime(() => ++i);
|
|
26
|
-
|
|
27
|
-
foo(); //=> 1
|
|
28
|
-
foo(); //=> 1
|
|
29
|
-
foo(); //=> 1
|
|
30
|
-
|
|
31
|
-
onetime.callCount(foo); //=> 3
|
|
32
|
-
```
|
|
33
|
-
*/
|
|
34
|
-
<ArgumentsType extends unknown[], ReturnType>(
|
|
35
|
-
fn: (...arguments: ArgumentsType) => ReturnType,
|
|
36
|
-
options?: onetime.Options
|
|
37
|
-
): (...arguments: ArgumentsType) => ReturnType;
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
Get the number of times `fn` has been called.
|
|
41
|
-
|
|
42
|
-
@param fn - Function to get call count from.
|
|
43
|
-
@returns A number representing how many times `fn` has been called.
|
|
44
|
-
|
|
45
|
-
@example
|
|
46
|
-
```
|
|
47
|
-
import onetime = require('onetime');
|
|
48
|
-
|
|
49
|
-
const foo = onetime(() => {});
|
|
50
|
-
foo();
|
|
51
|
-
foo();
|
|
52
|
-
foo();
|
|
53
|
-
|
|
54
|
-
console.log(onetime.callCount(foo));
|
|
55
|
-
//=> 3
|
|
56
|
-
```
|
|
57
|
-
*/
|
|
58
|
-
callCount(fn: (...arguments: any[]) => unknown): number;
|
|
59
|
-
|
|
60
|
-
// TODO: Remove this for the next major release
|
|
61
|
-
default: typeof onetime;
|
|
62
|
-
};
|
|
63
|
-
|
|
64
|
-
export = onetime;
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
const mimicFn = require('mimic-fn');
|
|
3
|
-
|
|
4
|
-
const calledFunctions = new WeakMap();
|
|
5
|
-
|
|
6
|
-
const onetime = (function_, options = {}) => {
|
|
7
|
-
if (typeof function_ !== 'function') {
|
|
8
|
-
throw new TypeError('Expected a function');
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
let returnValue;
|
|
12
|
-
let callCount = 0;
|
|
13
|
-
const functionName = function_.displayName || function_.name || '<anonymous>';
|
|
14
|
-
|
|
15
|
-
const onetime = function (...arguments_) {
|
|
16
|
-
calledFunctions.set(onetime, ++callCount);
|
|
17
|
-
|
|
18
|
-
if (callCount === 1) {
|
|
19
|
-
returnValue = function_.apply(this, arguments_);
|
|
20
|
-
function_ = null;
|
|
21
|
-
} else if (options.throw === true) {
|
|
22
|
-
throw new Error(`Function \`${functionName}\` can only be called once`);
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
return returnValue;
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
mimicFn(onetime, function_);
|
|
29
|
-
calledFunctions.set(onetime, callCount);
|
|
30
|
-
|
|
31
|
-
return onetime;
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
module.exports = onetime;
|
|
35
|
-
// TODO: Remove this for the next major release
|
|
36
|
-
module.exports.default = onetime;
|
|
37
|
-
|
|
38
|
-
module.exports.callCount = function_ => {
|
|
39
|
-
if (!calledFunctions.has(function_)) {
|
|
40
|
-
throw new Error(`The given function \`${function_.name}\` is not wrapped by the \`onetime\` package`);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
return calledFunctions.get(function_);
|
|
44
|
-
};
|
|
@@ -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,43 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "onetime",
|
|
3
|
-
"version": "5.1.2",
|
|
4
|
-
"description": "Ensure a function is only called once",
|
|
5
|
-
"license": "MIT",
|
|
6
|
-
"repository": "sindresorhus/onetime",
|
|
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
|
-
"engines": {
|
|
14
|
-
"node": ">=6"
|
|
15
|
-
},
|
|
16
|
-
"scripts": {
|
|
17
|
-
"test": "xo && ava && tsd"
|
|
18
|
-
},
|
|
19
|
-
"files": [
|
|
20
|
-
"index.js",
|
|
21
|
-
"index.d.ts"
|
|
22
|
-
],
|
|
23
|
-
"keywords": [
|
|
24
|
-
"once",
|
|
25
|
-
"function",
|
|
26
|
-
"one",
|
|
27
|
-
"onetime",
|
|
28
|
-
"func",
|
|
29
|
-
"fn",
|
|
30
|
-
"single",
|
|
31
|
-
"call",
|
|
32
|
-
"called",
|
|
33
|
-
"prevent"
|
|
34
|
-
],
|
|
35
|
-
"dependencies": {
|
|
36
|
-
"mimic-fn": "^2.1.0"
|
|
37
|
-
},
|
|
38
|
-
"devDependencies": {
|
|
39
|
-
"ava": "^1.4.1",
|
|
40
|
-
"tsd": "^0.7.1",
|
|
41
|
-
"xo": "^0.24.0"
|
|
42
|
-
}
|
|
43
|
-
}
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
# onetime [](https://travis-ci.com/github/sindresorhus/onetime)
|
|
2
|
-
|
|
3
|
-
> Ensure a function is only called once
|
|
4
|
-
|
|
5
|
-
When called multiple times it will return the return value from the first call.
|
|
6
|
-
|
|
7
|
-
*Unlike the module [once](https://github.com/isaacs/once), this one isn't naughty and extending `Function.prototype`.*
|
|
8
|
-
|
|
9
|
-
## Install
|
|
10
|
-
|
|
11
|
-
```
|
|
12
|
-
$ npm install onetime
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
## Usage
|
|
16
|
-
|
|
17
|
-
```js
|
|
18
|
-
const onetime = require('onetime');
|
|
19
|
-
|
|
20
|
-
let i = 0;
|
|
21
|
-
|
|
22
|
-
const foo = onetime(() => ++i);
|
|
23
|
-
|
|
24
|
-
foo(); //=> 1
|
|
25
|
-
foo(); //=> 1
|
|
26
|
-
foo(); //=> 1
|
|
27
|
-
|
|
28
|
-
onetime.callCount(foo); //=> 3
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
```js
|
|
32
|
-
const onetime = require('onetime');
|
|
33
|
-
|
|
34
|
-
const foo = onetime(() => {}, {throw: true});
|
|
35
|
-
|
|
36
|
-
foo();
|
|
37
|
-
|
|
38
|
-
foo();
|
|
39
|
-
//=> Error: Function `foo` can only be called once
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
## API
|
|
43
|
-
|
|
44
|
-
### onetime(fn, options?)
|
|
45
|
-
|
|
46
|
-
Returns a function that only calls `fn` once.
|
|
47
|
-
|
|
48
|
-
#### fn
|
|
49
|
-
|
|
50
|
-
Type: `Function`
|
|
51
|
-
|
|
52
|
-
Function that should only be called once.
|
|
53
|
-
|
|
54
|
-
#### options
|
|
55
|
-
|
|
56
|
-
Type: `object`
|
|
57
|
-
|
|
58
|
-
##### throw
|
|
59
|
-
|
|
60
|
-
Type: `boolean`\
|
|
61
|
-
Default: `false`
|
|
62
|
-
|
|
63
|
-
Throw an error when called more than once.
|
|
64
|
-
|
|
65
|
-
### onetime.callCount(fn)
|
|
66
|
-
|
|
67
|
-
Returns a number representing how many times `fn` has been called.
|
|
68
|
-
|
|
69
|
-
Note: It throws an error if you pass in a function that is not wrapped by `onetime`.
|
|
70
|
-
|
|
71
|
-
```js
|
|
72
|
-
const onetime = require('onetime');
|
|
73
|
-
|
|
74
|
-
const foo = onetime(() => {});
|
|
75
|
-
|
|
76
|
-
foo();
|
|
77
|
-
foo();
|
|
78
|
-
foo();
|
|
79
|
-
|
|
80
|
-
console.log(onetime.callCount(foo));
|
|
81
|
-
//=> 3
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
#### fn
|
|
85
|
-
|
|
86
|
-
Type: `Function`
|
|
87
|
-
|
|
88
|
-
Function to get call count from.
|
|
89
|
-
|
|
90
|
-
## onetime for enterprise
|
|
91
|
-
|
|
92
|
-
Available as part of the Tidelift Subscription.
|
|
93
|
-
|
|
94
|
-
The maintainers of onetime and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. [Learn more.](https://tidelift.com/subscription/pkg/npm-onetime?utm_source=npm-onetime&utm_medium=referral&utm_campaign=enterprise&utm_term=repo)
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
Copyright (c) 2014-2018, Matteo Collina <hello@matteocollina.com>
|
|
2
|
-
|
|
3
|
-
Permission to use, copy, modify, and/or distribute this software for any
|
|
4
|
-
purpose with or without fee is hereby granted, provided that the above
|
|
5
|
-
copyright notice and this permission notice appear in all copies.
|
|
6
|
-
|
|
7
|
-
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
8
|
-
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
9
|
-
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
10
|
-
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
11
|
-
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
12
|
-
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
|
|
13
|
-
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
# Split2(matcher, mapper, options)
|
|
2
|
-
|
|
3
|
-

|
|
4
|
-
|
|
5
|
-
Break up a stream and reassemble it so that each line is a chunk.
|
|
6
|
-
`split2` is inspired by [@dominictarr](https://github.com/dominictarr) [`split`](https://github.com/dominictarr/split) module,
|
|
7
|
-
and it is totally API compatible with it.
|
|
8
|
-
However, it is based on Node.js core [`Transform`](https://nodejs.org/api/stream.html#stream_new_stream_transform_options).
|
|
9
|
-
|
|
10
|
-
`matcher` may be a `String`, or a `RegExp`. Example, read every line in a file ...
|
|
11
|
-
|
|
12
|
-
``` js
|
|
13
|
-
fs.createReadStream(file)
|
|
14
|
-
.pipe(split2())
|
|
15
|
-
.on('data', function (line) {
|
|
16
|
-
//each chunk now is a separate line!
|
|
17
|
-
})
|
|
18
|
-
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
`split` takes the same arguments as `string.split` except it defaults to '/\r?\n/', and the optional `limit` paremeter is ignored.
|
|
22
|
-
[String#split](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/split)
|
|
23
|
-
|
|
24
|
-
`split` takes an optional options object on it's third argument, which
|
|
25
|
-
is directly passed as a
|
|
26
|
-
[Transform](https://nodejs.org/api/stream.html#stream_new_stream_transform_options)
|
|
27
|
-
option.
|
|
28
|
-
|
|
29
|
-
Additionally, the `.maxLength` and `.skipOverflow` options are implemented, which set limits on the internal
|
|
30
|
-
buffer size and the stream's behavior when the limit is exceeded. There is no limit unless `maxLength` is set. When
|
|
31
|
-
the internal buffer size exceeds `maxLength`, the stream emits an error by default. You may also set `skipOverflow` to
|
|
32
|
-
true to suppress the error and instead skip past any lines that cause the internal buffer to exceed `maxLength`.
|
|
33
|
-
|
|
34
|
-
Calling `.destroy` will make the stream emit `close`. Use this to perform cleanup logic
|
|
35
|
-
|
|
36
|
-
``` js
|
|
37
|
-
var splitFile = function(filename) {
|
|
38
|
-
var file = fs.createReadStream(filename)
|
|
39
|
-
|
|
40
|
-
return file
|
|
41
|
-
.pipe(split2())
|
|
42
|
-
.on('close', function() {
|
|
43
|
-
// destroy the file stream in case the split stream was destroyed
|
|
44
|
-
file.destroy()
|
|
45
|
-
})
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
var stream = splitFile('my-file.txt')
|
|
49
|
-
|
|
50
|
-
stream.destroy() // will destroy the input file stream
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
# NDJ - Newline Delimited Json
|
|
54
|
-
|
|
55
|
-
`split2` accepts a function which transforms each line.
|
|
56
|
-
|
|
57
|
-
``` js
|
|
58
|
-
fs.createReadStream(file)
|
|
59
|
-
.pipe(split2(JSON.parse))
|
|
60
|
-
.on('data', function (obj) {
|
|
61
|
-
//each chunk now is a js object
|
|
62
|
-
})
|
|
63
|
-
.on("error", function(error) {
|
|
64
|
-
//handling parsing errors
|
|
65
|
-
})
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
However, in [@dominictarr](https://github.com/dominictarr) [`split`](https://github.com/dominictarr/split) the mapper
|
|
69
|
-
is wrapped in a try-catch, while here it is not: if your parsing logic can throw, wrap it yourself. Otherwise, you can also use the stream error handling when mapper function throw.
|
|
70
|
-
|
|
71
|
-
# License
|
|
72
|
-
|
|
73
|
-
Copyright (c) 2014-2021, Matteo Collina <hello@matteocollina.com>
|
|
74
|
-
|
|
75
|
-
Permission to use, copy, modify, and/or distribute this software for any
|
|
76
|
-
purpose with or without fee is hereby granted, provided that the above
|
|
77
|
-
copyright notice and this permission notice appear in all copies.
|
|
78
|
-
|
|
79
|
-
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
80
|
-
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
81
|
-
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
82
|
-
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
83
|
-
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
84
|
-
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
|
|
85
|
-
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
'use strict'
|
|
2
|
-
|
|
3
|
-
const split = require('./')
|
|
4
|
-
const bench = require('fastbench')
|
|
5
|
-
const binarySplit = require('binary-split')
|
|
6
|
-
const fs = require('fs')
|
|
7
|
-
|
|
8
|
-
function benchSplit (cb) {
|
|
9
|
-
fs.createReadStream('package.json')
|
|
10
|
-
.pipe(split())
|
|
11
|
-
.on('end', cb)
|
|
12
|
-
.resume()
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
function benchBinarySplit (cb) {
|
|
16
|
-
fs.createReadStream('package.json')
|
|
17
|
-
.pipe(binarySplit())
|
|
18
|
-
.on('end', cb)
|
|
19
|
-
.resume()
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
const run = bench([
|
|
23
|
-
benchSplit,
|
|
24
|
-
benchBinarySplit
|
|
25
|
-
], 10000)
|
|
26
|
-
|
|
27
|
-
run(run)
|