@openclaw/matrix 2026.7.2-beta.7 → 2026.7.34

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.
Files changed (368) hide show
  1. package/README.md +1 -1
  2. package/dist/{account-selection-kqquRzCf.js → .setup/account-selection-BOQeTqax.mjs} +18 -17
  3. package/dist/{approval-handler.runtime-DSeaIsGa.js → .setup/approval-handler.runtime-CEXm9_-p.mjs} +18 -28
  4. package/dist/{approval-ids-BdJGPAJT.js → .setup/approval-ids-DdFnDB3h.mjs} +1 -1
  5. package/dist/{approval-reaction-auth-BjOpELxu.js → .setup/approval-reaction-auth-CREvd7S7.mjs} +2 -2
  6. package/dist/.setup/approval-reactions-Cltyp8nL.mjs +113 -0
  7. package/dist/.setup/async-lock-BcLS4KOc.mjs +19 -0
  8. package/dist/{channel-vj788dNZ.js → .setup/channel-an4umty1.mjs} +186 -144
  9. package/dist/{channel.runtime-CLoF2S9T.js → .setup/channel.runtime-GHcIBJ7H.mjs} +51 -45
  10. package/dist/{cli-DMqfDE-q.js → .setup/cli-B3WYmv5U.mjs} +882 -901
  11. package/dist/{cli-metadata-C7D53SND.js → .setup/cli-metadata-RUKCn0wJ.mjs} +1 -1
  12. package/dist/{client-6eRENr7k.js → .setup/client-Ct0bUHCo.mjs} +5 -5
  13. package/dist/{shared-CUMWxcMz.js → .setup/client-DFBQtzCe.mjs} +422 -179
  14. package/dist/.setup/client-bootstrap-Be8jvNle.mjs +74 -0
  15. package/dist/{config-schema-Djxw3C6b.js → .setup/config-schema-D9J_vUF6.mjs} +89 -70
  16. package/dist/.setup/credentials-BhZlA0kL.mjs +56 -0
  17. package/dist/.setup/credentials-read-CRHg6XPm.mjs +114 -0
  18. package/dist/{credentials-write.runtime-Be9zNSUw.js → .setup/credentials-write.runtime-dWuLafsk.mjs} +1 -1
  19. package/dist/{crypto-runtime-D9_6J5tZ.js → .setup/crypto-runtime-D-cZa8P0.mjs} +81 -35
  20. package/dist/.setup/crypto-state-store-B43k3z3W.mjs +352 -0
  21. package/dist/{deps-CcVJfvRM.js → .setup/deps-Dy6yreL4.mjs} +92 -25
  22. package/dist/{device-health-B4-YXtJR.js → .setup/device-health-D4LBxuPq.mjs} +1 -6
  23. package/dist/{directory-live-C8dVBiCc.js → .setup/directory-live-BTEYxMwy.mjs} +10 -9
  24. package/dist/.setup/doctor-BGnvMzOR.mjs +169 -0
  25. package/dist/.setup/doctor-contract-DNJw0fdq.mjs +246 -0
  26. package/dist/{draft-stream-CtvOXq0Z.js → .setup/draft-stream-C-_OhpE8.mjs} +1 -6
  27. package/dist/{encryption-guidance-CbEFe38F.js → .setup/encryption-guidance-CpuuwmjL.mjs} +4 -3
  28. package/dist/{env-auth-CQsYbz-p.js → .setup/env-auth-CYJL1jNl.mjs} +2 -2
  29. package/dist/{env-vars-B0NxQnPk.js → .setup/env-vars-KzaYveuy.mjs} +1 -3
  30. package/dist/{exec-approval-resolver-BCgqRtZS.js → .setup/exec-approval-resolver-f9j6staN.mjs} +1 -2
  31. package/dist/{file-sync-store-DiiFsayX.js → .setup/file-sync-store-DU0cnYAz.mjs} +30 -25
  32. package/dist/{http-client-CycYxU9-.js → .setup/http-client-C954In2D.mjs} +45 -25
  33. package/dist/{idb-persistence-B6x7dMsF.js → .setup/idb-persistence-_HKTXkVC.mjs} +76 -78
  34. package/dist/{idb-persistence-lock-DAJ49nZX.js → .setup/idb-persistence-lock-B3fZXyF_.mjs} +1 -1
  35. package/dist/.setup/legacy-crypto-inspector-Byp8LCys.mjs +42 -0
  36. package/dist/.setup/legacy-crypto-restore-YQVoK1B2.mjs +93 -0
  37. package/dist/{logger-D0GCSDQq.js → .setup/logger-DpoogOgz.mjs} +1 -1
  38. package/dist/{logging-DV-p52N0.js → .setup/logging-CgxQOJJP.mjs} +2 -9
  39. package/dist/.setup/matrix-migration.runtime-BDH5c3fN.mjs +530 -0
  40. package/dist/{media-text-BTwzADS_.js → .setup/media-text-Cib-dxkn.mjs} +1 -1
  41. package/dist/{messages-DxQJkhxs.js → .setup/messages-D4DYGHYX.mjs} +15 -67
  42. package/dist/.setup/migration-snapshot-backup-CpgYhiUp.mjs +70 -0
  43. package/dist/.setup/migration-snapshot.runtime-O8qkMVaC.mjs +2 -0
  44. package/dist/{monitor-VyWlSLwo.js → .setup/monitor-DNcW_oAN.mjs} +2525 -2361
  45. package/dist/.setup/probe.runtime-CMPh0mFk.mjs +2 -0
  46. package/dist/{profile-update-CffmyW_4.js → .setup/profile-update-DzOL3Wiw.mjs} +5 -4
  47. package/dist/{reaction-events-B00WSi98.js → .setup/reaction-events-BcvgXxHb.mjs} +14 -64
  48. package/dist/{resolve-targets-nm2L48sh.js → .setup/resolve-targets-Bq80X9Sn.mjs} +3 -3
  49. package/dist/{resolver.runtime-DS6uPaEe.js → .setup/resolver.runtime-CeBHR9-T.mjs} +1 -1
  50. package/dist/{runtime-api-D1xI_cvh.js → .setup/runtime-api-CEsWNdil.mjs} +4 -4
  51. package/dist/.setup/runtime-setter-api-DGMubGUq.mjs +3 -0
  52. package/dist/{sdk-bUytQHx7.js → .setup/sdk-He1quVAq.mjs} +592 -261
  53. package/dist/.setup/secret-contract-api-CiTJ7pd5.mjs +3 -0
  54. package/dist/{secret-contract-M3hRmGO-.js → .setup/secret-contract-phPvlNfV.mjs} +53 -28
  55. package/dist/{send-BldGYG8g.js → .setup/send-CGgl0uTn.mjs} +133 -660
  56. package/dist/{setup-bootstrap-Deleiibz.js → .setup/setup-bootstrap-DUXBC8X2.mjs} +4 -4
  57. package/dist/{setup-core-BVfBv2ai.js → .setup/setup-core-bhdcEo7v.mjs} +239 -189
  58. package/dist/.setup/setup-plugin-api-CAwZ_Bi7.mjs +43 -0
  59. package/dist/.setup/setup-plugin-api-DIFVsOs3.mjs +2 -0
  60. package/dist/{setup-surface-BBq3WeqX.js → .setup/setup-surface-05_G-MnT.mjs} +149 -92
  61. package/dist/{startup-verification-wm3_i88s.js → .setup/startup-verification-BTwIGu1J.mjs} +7 -6
  62. package/dist/.setup/storage-NGZq5zet.mjs +432 -0
  63. package/dist/{storage-paths-gUmSydsW.js → .setup/storage-paths-BWo_ZEMC.mjs} +13 -2
  64. package/dist/{subagent-hooks-dkPAF6Et.js → .setup/subagent-hooks-BSWPJEmo.mjs} +2 -2
  65. package/dist/{thread-binding-api-DRbBZlhS.js → .setup/thread-binding-api-B7UaOoKv.mjs} +1 -1
  66. package/dist/{thread-bindings-DGbl3vDW.js → .setup/thread-bindings-DqmjG2on.mjs} +8 -8
  67. package/dist/{tool-actions.runtime-uu9blSqO.js → .setup/tool-actions.runtime-CXDLk2jg.mjs} +196 -332
  68. package/dist/{verification-DYMQ1QpI.js → .setup/verification-DeWOtZJr.mjs} +4 -3
  69. package/dist/api.js +9 -9
  70. package/dist/auth-presence.js +21 -13
  71. package/dist/channel-plugin-api.js +1 -1
  72. package/dist/cli-metadata.js +1 -1
  73. package/dist/contract-api.js +2 -2
  74. package/dist/doctor-contract-api.js +99 -524
  75. package/dist/helper-api.js +4 -4
  76. package/dist/index.js +1 -1
  77. package/dist/plugin-entry.handlers.runtime.js +2 -2
  78. package/dist/runtime-api.js +8 -8
  79. package/dist/runtime-heavy-api.js +3 -0
  80. package/dist/runtime-setter-api.js +1 -1
  81. package/dist/secret-contract-api.js +1 -1
  82. package/dist/session-binding-contract-api.js +3 -3
  83. package/dist/setup-entry.js +4 -3
  84. package/dist/setup-plugin-api.js +1 -44
  85. package/dist/subagent-hooks-api.js +1 -1
  86. package/dist/thread-binding-api.js +1 -1
  87. package/dist/thread-bindings-runtime.js +1 -1
  88. package/node_modules/@matrix-org/matrix-sdk-crypto-wasm/package.json +1 -1
  89. package/node_modules/@matrix-org/matrix-sdk-crypto-wasm/pkg/matrix_sdk_crypto_wasm.d.ts +2 -14
  90. package/node_modules/@matrix-org/matrix-sdk-crypto-wasm/pkg/matrix_sdk_crypto_wasm_bg.cjs +384 -409
  91. package/node_modules/@matrix-org/matrix-sdk-crypto-wasm/pkg/matrix_sdk_crypto_wasm_bg.js +224 -246
  92. package/node_modules/@matrix-org/matrix-sdk-crypto-wasm/pkg/matrix_sdk_crypto_wasm_bg.wasm +0 -0
  93. package/node_modules/@matrix-org/matrix-sdk-crypto-wasm/pkg/matrix_sdk_crypto_wasm_bg.wasm.d.ts +58 -59
  94. package/node_modules/markdown-it/README.md +18 -294
  95. package/node_modules/markdown-it/bin/markdown-it.mjs +2 -2
  96. package/node_modules/markdown-it/dist/browser/markdown-it.esm.min.mjs +3013 -0
  97. package/node_modules/markdown-it/dist/browser/markdown-it.esm.min.mjs.map +1 -0
  98. package/node_modules/markdown-it/dist/browser/markdown-it.umd.min.js +14 -0
  99. package/node_modules/markdown-it/dist/browser/markdown-it.umd.min.js.map +1 -0
  100. package/node_modules/markdown-it/dist/markdown-it.cjs.js +4420 -0
  101. package/node_modules/markdown-it/dist/markdown-it.cjs.js.map +1 -0
  102. package/node_modules/markdown-it/dist/markdown-it.d.cts +19 -0
  103. package/node_modules/markdown-it/dist/markdown-it.d.mts +950 -0
  104. package/node_modules/markdown-it/dist/{index.cjs.js → markdown-it.mjs} +1504 -1525
  105. package/node_modules/markdown-it/dist/markdown-it.mjs.map +1 -0
  106. package/node_modules/markdown-it/node_modules/argparse/LICENSE +1 -208
  107. package/node_modules/markdown-it/node_modules/argparse/README.md +46 -41
  108. package/node_modules/markdown-it/node_modules/argparse/lib/_colorize.js +72 -0
  109. package/node_modules/markdown-it/node_modules/argparse/lib/argparse.d.ts +292 -0
  110. package/node_modules/markdown-it/node_modules/argparse/{argparse.js → lib/argparse.js} +1142 -1029
  111. package/node_modules/markdown-it/node_modules/argparse/lib/difflib.js +190 -0
  112. package/node_modules/markdown-it/node_modules/argparse/lib/sub.js +4 -4
  113. package/node_modules/markdown-it/node_modules/argparse/lib/textwrap.js +28 -28
  114. package/node_modules/markdown-it/node_modules/argparse/package.json +18 -11
  115. package/node_modules/markdown-it/node_modules/entities/dist/decode-codepoint.d.ts +8 -0
  116. package/node_modules/markdown-it/node_modules/entities/dist/decode-codepoint.d.ts.map +1 -0
  117. package/node_modules/markdown-it/node_modules/entities/dist/decode-codepoint.js +46 -0
  118. package/node_modules/markdown-it/node_modules/entities/dist/decode-codepoint.js.map +1 -0
  119. package/node_modules/markdown-it/node_modules/entities/{lib → dist}/decode.d.ts +28 -45
  120. package/node_modules/markdown-it/node_modules/entities/dist/decode.d.ts.map +1 -0
  121. package/node_modules/markdown-it/node_modules/entities/{lib/esm → dist}/decode.js +189 -141
  122. package/node_modules/markdown-it/node_modules/entities/dist/decode.js.map +1 -0
  123. package/node_modules/markdown-it/node_modules/entities/{lib/esm → dist}/encode.d.ts +4 -2
  124. package/node_modules/markdown-it/node_modules/entities/dist/encode.d.ts.map +1 -0
  125. package/node_modules/markdown-it/node_modules/entities/dist/encode.js +90 -0
  126. package/node_modules/markdown-it/node_modules/entities/dist/encode.js.map +1 -0
  127. package/node_modules/markdown-it/node_modules/entities/{lib → dist}/escape.d.ts +15 -10
  128. package/node_modules/markdown-it/node_modules/entities/dist/escape.d.ts.map +1 -0
  129. package/node_modules/markdown-it/node_modules/entities/dist/escape.js +132 -0
  130. package/node_modules/markdown-it/node_modules/entities/dist/escape.js.map +1 -0
  131. package/node_modules/markdown-it/node_modules/entities/dist/generated/decode-data-html.d.ts +3 -0
  132. package/node_modules/markdown-it/node_modules/entities/dist/generated/decode-data-html.d.ts.map +1 -0
  133. package/node_modules/markdown-it/node_modules/entities/dist/generated/decode-data-html.js +5 -0
  134. package/node_modules/markdown-it/node_modules/entities/dist/generated/decode-data-html.js.map +1 -0
  135. package/node_modules/markdown-it/node_modules/entities/dist/generated/decode-data-xml.d.ts +3 -0
  136. package/node_modules/markdown-it/node_modules/entities/dist/generated/decode-data-xml.d.ts.map +1 -0
  137. package/node_modules/markdown-it/node_modules/entities/dist/generated/decode-data-xml.js +5 -0
  138. package/node_modules/markdown-it/node_modules/entities/dist/generated/decode-data-xml.js.map +1 -0
  139. package/node_modules/markdown-it/node_modules/entities/dist/generated/encode-html.d.ts +5 -0
  140. package/node_modules/markdown-it/node_modules/entities/dist/generated/encode-html.d.ts.map +1 -0
  141. package/node_modules/markdown-it/node_modules/entities/dist/generated/encode-html.js +12 -0
  142. package/node_modules/markdown-it/node_modules/entities/dist/generated/encode-html.js.map +1 -0
  143. package/node_modules/markdown-it/node_modules/entities/{lib/esm → dist}/index.d.ts +14 -21
  144. package/node_modules/markdown-it/node_modules/entities/dist/index.d.ts.map +1 -0
  145. package/node_modules/markdown-it/node_modules/entities/dist/index.js +91 -0
  146. package/node_modules/markdown-it/node_modules/entities/dist/index.js.map +1 -0
  147. package/node_modules/markdown-it/node_modules/entities/dist/internal/bin-trie-flags.d.ts +17 -0
  148. package/node_modules/markdown-it/node_modules/entities/dist/internal/bin-trie-flags.d.ts.map +1 -0
  149. package/node_modules/markdown-it/node_modules/entities/dist/internal/bin-trie-flags.js +18 -0
  150. package/node_modules/markdown-it/node_modules/entities/dist/internal/bin-trie-flags.js.map +1 -0
  151. package/node_modules/markdown-it/node_modules/entities/dist/internal/decode-shared.d.ts +7 -0
  152. package/node_modules/markdown-it/node_modules/entities/dist/internal/decode-shared.d.ts.map +1 -0
  153. package/node_modules/markdown-it/node_modules/entities/dist/internal/decode-shared.js +17 -0
  154. package/node_modules/markdown-it/node_modules/entities/dist/internal/decode-shared.js.map +1 -0
  155. package/node_modules/markdown-it/node_modules/entities/dist/internal/encode-shared.d.ts +33 -0
  156. package/node_modules/markdown-it/node_modules/entities/dist/internal/encode-shared.d.ts.map +1 -0
  157. package/node_modules/markdown-it/node_modules/entities/dist/internal/encode-shared.js +93 -0
  158. package/node_modules/markdown-it/node_modules/entities/dist/internal/encode-shared.js.map +1 -0
  159. package/node_modules/markdown-it/node_modules/entities/package.json +63 -70
  160. package/node_modules/markdown-it/node_modules/entities/readme.md +54 -45
  161. package/node_modules/markdown-it/node_modules/entities/src/decode-codepoint.ts +50 -0
  162. package/node_modules/markdown-it/node_modules/entities/src/decode.ts +671 -0
  163. package/node_modules/markdown-it/node_modules/entities/src/encode.ts +95 -0
  164. package/node_modules/markdown-it/node_modules/entities/src/escape.ts +160 -0
  165. package/node_modules/markdown-it/node_modules/entities/src/generated/decode-data-html.ts +7 -0
  166. package/node_modules/markdown-it/node_modules/entities/src/generated/decode-data-xml.ts +7 -0
  167. package/node_modules/markdown-it/node_modules/entities/src/generated/encode-html.ts +18 -0
  168. package/node_modules/markdown-it/node_modules/entities/src/index.ts +162 -0
  169. package/node_modules/markdown-it/node_modules/entities/src/internal/bin-trie-flags.ts +16 -0
  170. package/node_modules/markdown-it/node_modules/entities/src/internal/decode-shared.ts +18 -0
  171. package/node_modules/markdown-it/node_modules/entities/src/internal/encode-shared.ts +123 -0
  172. package/node_modules/markdown-it/node_modules/linkify-it/README.md +49 -86
  173. package/node_modules/markdown-it/node_modules/linkify-it/build/index.cjs.js +636 -825
  174. package/node_modules/markdown-it/node_modules/linkify-it/build/index.cjs.js.map +1 -0
  175. package/node_modules/markdown-it/node_modules/linkify-it/build/index.d.ts +236 -0
  176. package/node_modules/markdown-it/node_modules/linkify-it/build/index.mjs +538 -0
  177. package/node_modules/markdown-it/node_modules/linkify-it/build/index.mjs.map +1 -0
  178. package/node_modules/markdown-it/node_modules/linkify-it/package.json +23 -20
  179. package/node_modules/markdown-it/node_modules/uc.micro/README.md +18 -1
  180. package/node_modules/markdown-it/node_modules/uc.micro/build/index.cjs.js +13 -18
  181. package/node_modules/markdown-it/node_modules/uc.micro/build/index.d.ts +6 -0
  182. package/node_modules/markdown-it/node_modules/uc.micro/build/index.mjs +8 -0
  183. package/node_modules/markdown-it/node_modules/uc.micro/package.json +12 -17
  184. package/node_modules/markdown-it/package.json +47 -30
  185. package/node_modules/matrix-js-sdk/CHANGELOG.md +0 -11
  186. package/node_modules/matrix-js-sdk/package.json +1 -1
  187. package/node_modules/music-metadata/lib/common/Util.d.ts +1 -1
  188. package/node_modules/music-metadata/lib/common/Util.js +1 -7
  189. package/node_modules/music-metadata/lib/id3v2/FrameHeader.js +3 -23
  190. package/node_modules/music-metadata/lib/id3v2/FrameParser.js +2 -2
  191. package/node_modules/music-metadata/lib/id3v2/ID3v2Token.js +1 -1
  192. package/node_modules/music-metadata/lib/mp4/AtomToken.js +13 -38
  193. package/node_modules/music-metadata/lib/mpeg/MpegParser.js +1 -1
  194. package/node_modules/music-metadata/package.json +6 -6
  195. package/node_modules/typebox/build/compile/validator.d.mts +4 -1
  196. package/node_modules/typebox/build/guard/guard.d.mts +1 -1
  197. package/node_modules/typebox/build/guard/guard.mjs +2 -5
  198. package/node_modules/typebox/build/guard/string.mjs +4 -16
  199. package/node_modules/typebox/build/schema/engine/_functions.mjs +15 -34
  200. package/node_modules/typebox/build/type/action/readonly_object.d.mts +0 -5
  201. package/node_modules/typebox/build/type/action/readonly_object.mjs +0 -8
  202. package/node_modules/typebox/build/typebox.d.mts +1 -1
  203. package/node_modules/typebox/build/typebox.mjs +1 -1
  204. package/node_modules/typebox/package.json +1 -1
  205. package/node_modules/typebox/readme.md +32 -29
  206. package/openclaw.plugin.json +146 -152
  207. package/package.json +31 -114
  208. package/dist/accounts-DfngqebB.js +0 -130
  209. package/dist/active-client-DXvz2gCo.js +0 -20
  210. package/dist/approval-reactions-D-BxBK_L.js +0 -202
  211. package/dist/client-Dbso3-0V.js +0 -30
  212. package/dist/client-bootstrap-XsIkHNt0.js +0 -110
  213. package/dist/create-client-BmSU-q-D.js +0 -61
  214. package/dist/credentials-W2EmwRhu.js +0 -65
  215. package/dist/credentials-read-DVmFCm7X.js +0 -77
  216. package/dist/doctor-CM8ijNpW.js +0 -64
  217. package/dist/doctor-contract-BMSJkkAE.js +0 -167
  218. package/dist/inbound-dedupe-CaBLblef.js +0 -48
  219. package/dist/probe.runtime-BuieqmS3.js +0 -3
  220. package/dist/record-shared-CWWx6fvI.js +0 -2
  221. package/dist/recovery-key-store-BNnHvXdk.js +0 -275
  222. package/dist/room-info-CAFZ3Z9J.js +0 -87
  223. package/dist/route-DY6at4qJ.js +0 -161
  224. package/dist/storage-BvAkgzvT.js +0 -685
  225. package/node_modules/markdown-it/dist/index.cjs.js.map +0 -1
  226. package/node_modules/markdown-it/dist/markdown-it.js +0 -3975
  227. package/node_modules/markdown-it/dist/markdown-it.js.map +0 -1
  228. package/node_modules/markdown-it/dist/markdown-it.min.js +0 -3
  229. package/node_modules/markdown-it/dist/markdown-it.min.js.map +0 -1
  230. package/node_modules/markdown-it/index.mjs +0 -1
  231. package/node_modules/markdown-it/lib/common/html_blocks.mjs +0 -67
  232. package/node_modules/markdown-it/lib/common/html_re.mjs +0 -25
  233. package/node_modules/markdown-it/lib/common/utils.mjs +0 -324
  234. package/node_modules/markdown-it/lib/helpers/index.mjs +0 -11
  235. package/node_modules/markdown-it/lib/helpers/parse_link_destination.mjs +0 -77
  236. package/node_modules/markdown-it/lib/helpers/parse_link_label.mjs +0 -49
  237. package/node_modules/markdown-it/lib/helpers/parse_link_title.mjs +0 -66
  238. package/node_modules/markdown-it/lib/index.mjs +0 -565
  239. package/node_modules/markdown-it/lib/parser_block.mjs +0 -134
  240. package/node_modules/markdown-it/lib/parser_core.mjs +0 -62
  241. package/node_modules/markdown-it/lib/parser_inline.mjs +0 -197
  242. package/node_modules/markdown-it/lib/presets/commonmark.mjs +0 -88
  243. package/node_modules/markdown-it/lib/presets/default.mjs +0 -47
  244. package/node_modules/markdown-it/lib/presets/zero.mjs +0 -70
  245. package/node_modules/markdown-it/lib/renderer.mjs +0 -322
  246. package/node_modules/markdown-it/lib/ruler.mjs +0 -340
  247. package/node_modules/markdown-it/lib/rules_block/blockquote.mjs +0 -209
  248. package/node_modules/markdown-it/lib/rules_block/code.mjs +0 -30
  249. package/node_modules/markdown-it/lib/rules_block/fence.mjs +0 -94
  250. package/node_modules/markdown-it/lib/rules_block/heading.mjs +0 -51
  251. package/node_modules/markdown-it/lib/rules_block/hr.mjs +0 -40
  252. package/node_modules/markdown-it/lib/rules_block/html_block.mjs +0 -80
  253. package/node_modules/markdown-it/lib/rules_block/lheading.mjs +0 -85
  254. package/node_modules/markdown-it/lib/rules_block/list.mjs +0 -331
  255. package/node_modules/markdown-it/lib/rules_block/paragraph.mjs +0 -48
  256. package/node_modules/markdown-it/lib/rules_block/reference.mjs +0 -212
  257. package/node_modules/markdown-it/lib/rules_block/state_block.mjs +0 -220
  258. package/node_modules/markdown-it/lib/rules_block/table.mjs +0 -228
  259. package/node_modules/markdown-it/lib/rules_core/block.mjs +0 -13
  260. package/node_modules/markdown-it/lib/rules_core/inline.mjs +0 -11
  261. package/node_modules/markdown-it/lib/rules_core/linkify.mjs +0 -134
  262. package/node_modules/markdown-it/lib/rules_core/normalize.mjs +0 -17
  263. package/node_modules/markdown-it/lib/rules_core/replacements.mjs +0 -101
  264. package/node_modules/markdown-it/lib/rules_core/smartquotes.mjs +0 -209
  265. package/node_modules/markdown-it/lib/rules_core/state_core.mjs +0 -17
  266. package/node_modules/markdown-it/lib/rules_core/text_join.mjs +0 -43
  267. package/node_modules/markdown-it/lib/rules_inline/autolink.mjs +0 -72
  268. package/node_modules/markdown-it/lib/rules_inline/backticks.mjs +0 -60
  269. package/node_modules/markdown-it/lib/rules_inline/balance_pairs.mjs +0 -124
  270. package/node_modules/markdown-it/lib/rules_inline/emphasis.mjs +0 -123
  271. package/node_modules/markdown-it/lib/rules_inline/entity.mjs +0 -51
  272. package/node_modules/markdown-it/lib/rules_inline/escape.mjs +0 -83
  273. package/node_modules/markdown-it/lib/rules_inline/fragments_join.mjs +0 -38
  274. package/node_modules/markdown-it/lib/rules_inline/html_inline.mjs +0 -50
  275. package/node_modules/markdown-it/lib/rules_inline/image.mjs +0 -138
  276. package/node_modules/markdown-it/lib/rules_inline/link.mjs +0 -139
  277. package/node_modules/markdown-it/lib/rules_inline/linkify.mjs +0 -63
  278. package/node_modules/markdown-it/lib/rules_inline/newline.mjs +0 -42
  279. package/node_modules/markdown-it/lib/rules_inline/state_inline.mjs +0 -154
  280. package/node_modules/markdown-it/lib/rules_inline/strikethrough.mjs +0 -127
  281. package/node_modules/markdown-it/lib/rules_inline/text.mjs +0 -86
  282. package/node_modules/markdown-it/lib/token.mjs +0 -191
  283. package/node_modules/markdown-it/node_modules/argparse/CHANGELOG.md +0 -216
  284. package/node_modules/markdown-it/node_modules/entities/lib/decode.d.ts.map +0 -1
  285. package/node_modules/markdown-it/node_modules/entities/lib/decode.js +0 -536
  286. package/node_modules/markdown-it/node_modules/entities/lib/decode.js.map +0 -1
  287. package/node_modules/markdown-it/node_modules/entities/lib/decode_codepoint.d.ts +0 -19
  288. package/node_modules/markdown-it/node_modules/entities/lib/decode_codepoint.d.ts.map +0 -1
  289. package/node_modules/markdown-it/node_modules/entities/lib/decode_codepoint.js +0 -76
  290. package/node_modules/markdown-it/node_modules/entities/lib/decode_codepoint.js.map +0 -1
  291. package/node_modules/markdown-it/node_modules/entities/lib/encode.d.ts +0 -22
  292. package/node_modules/markdown-it/node_modules/entities/lib/encode.d.ts.map +0 -1
  293. package/node_modules/markdown-it/node_modules/entities/lib/encode.js +0 -77
  294. package/node_modules/markdown-it/node_modules/entities/lib/encode.js.map +0 -1
  295. package/node_modules/markdown-it/node_modules/entities/lib/escape.d.ts.map +0 -1
  296. package/node_modules/markdown-it/node_modules/entities/lib/escape.js +0 -122
  297. package/node_modules/markdown-it/node_modules/entities/lib/escape.js.map +0 -1
  298. package/node_modules/markdown-it/node_modules/entities/lib/esm/decode.d.ts +0 -211
  299. package/node_modules/markdown-it/node_modules/entities/lib/esm/decode.d.ts.map +0 -1
  300. package/node_modules/markdown-it/node_modules/entities/lib/esm/decode.js.map +0 -1
  301. package/node_modules/markdown-it/node_modules/entities/lib/esm/decode_codepoint.d.ts +0 -19
  302. package/node_modules/markdown-it/node_modules/entities/lib/esm/decode_codepoint.d.ts.map +0 -1
  303. package/node_modules/markdown-it/node_modules/entities/lib/esm/decode_codepoint.js +0 -71
  304. package/node_modules/markdown-it/node_modules/entities/lib/esm/decode_codepoint.js.map +0 -1
  305. package/node_modules/markdown-it/node_modules/entities/lib/esm/encode.d.ts.map +0 -1
  306. package/node_modules/markdown-it/node_modules/entities/lib/esm/encode.js +0 -69
  307. package/node_modules/markdown-it/node_modules/entities/lib/esm/encode.js.map +0 -1
  308. package/node_modules/markdown-it/node_modules/entities/lib/esm/escape.d.ts +0 -43
  309. package/node_modules/markdown-it/node_modules/entities/lib/esm/escape.d.ts.map +0 -1
  310. package/node_modules/markdown-it/node_modules/entities/lib/esm/escape.js +0 -116
  311. package/node_modules/markdown-it/node_modules/entities/lib/esm/escape.js.map +0 -1
  312. package/node_modules/markdown-it/node_modules/entities/lib/esm/generated/decode-data-html.d.ts +0 -3
  313. package/node_modules/markdown-it/node_modules/entities/lib/esm/generated/decode-data-html.d.ts.map +0 -1
  314. package/node_modules/markdown-it/node_modules/entities/lib/esm/generated/decode-data-html.js +0 -7
  315. package/node_modules/markdown-it/node_modules/entities/lib/esm/generated/decode-data-html.js.map +0 -1
  316. package/node_modules/markdown-it/node_modules/entities/lib/esm/generated/decode-data-xml.d.ts +0 -3
  317. package/node_modules/markdown-it/node_modules/entities/lib/esm/generated/decode-data-xml.d.ts.map +0 -1
  318. package/node_modules/markdown-it/node_modules/entities/lib/esm/generated/decode-data-xml.js +0 -7
  319. package/node_modules/markdown-it/node_modules/entities/lib/esm/generated/decode-data-xml.js.map +0 -1
  320. package/node_modules/markdown-it/node_modules/entities/lib/esm/generated/encode-html.d.ts +0 -8
  321. package/node_modules/markdown-it/node_modules/entities/lib/esm/generated/encode-html.d.ts.map +0 -1
  322. package/node_modules/markdown-it/node_modules/entities/lib/esm/generated/encode-html.js +0 -10
  323. package/node_modules/markdown-it/node_modules/entities/lib/esm/generated/encode-html.js.map +0 -1
  324. package/node_modules/markdown-it/node_modules/entities/lib/esm/index.d.ts.map +0 -1
  325. package/node_modules/markdown-it/node_modules/entities/lib/esm/index.js +0 -99
  326. package/node_modules/markdown-it/node_modules/entities/lib/esm/index.js.map +0 -1
  327. package/node_modules/markdown-it/node_modules/entities/lib/esm/package.json +0 -1
  328. package/node_modules/markdown-it/node_modules/entities/lib/generated/decode-data-html.d.ts +0 -3
  329. package/node_modules/markdown-it/node_modules/entities/lib/generated/decode-data-html.d.ts.map +0 -1
  330. package/node_modules/markdown-it/node_modules/entities/lib/generated/decode-data-html.js +0 -9
  331. package/node_modules/markdown-it/node_modules/entities/lib/generated/decode-data-html.js.map +0 -1
  332. package/node_modules/markdown-it/node_modules/entities/lib/generated/decode-data-xml.d.ts +0 -3
  333. package/node_modules/markdown-it/node_modules/entities/lib/generated/decode-data-xml.d.ts.map +0 -1
  334. package/node_modules/markdown-it/node_modules/entities/lib/generated/decode-data-xml.js +0 -9
  335. package/node_modules/markdown-it/node_modules/entities/lib/generated/decode-data-xml.js.map +0 -1
  336. package/node_modules/markdown-it/node_modules/entities/lib/generated/encode-html.d.ts +0 -8
  337. package/node_modules/markdown-it/node_modules/entities/lib/generated/encode-html.d.ts.map +0 -1
  338. package/node_modules/markdown-it/node_modules/entities/lib/generated/encode-html.js +0 -12
  339. package/node_modules/markdown-it/node_modules/entities/lib/generated/encode-html.js.map +0 -1
  340. package/node_modules/markdown-it/node_modules/entities/lib/index.d.ts +0 -96
  341. package/node_modules/markdown-it/node_modules/entities/lib/index.d.ts.map +0 -1
  342. package/node_modules/markdown-it/node_modules/entities/lib/index.js +0 -126
  343. package/node_modules/markdown-it/node_modules/entities/lib/index.js.map +0 -1
  344. package/node_modules/markdown-it/node_modules/linkify-it/index.mjs +0 -646
  345. package/node_modules/markdown-it/node_modules/linkify-it/lib/re.mjs +0 -193
  346. package/node_modules/markdown-it/node_modules/uc.micro/categories/Cc/regex.mjs +0 -1
  347. package/node_modules/markdown-it/node_modules/uc.micro/categories/Cf/regex.mjs +0 -1
  348. package/node_modules/markdown-it/node_modules/uc.micro/categories/P/regex.mjs +0 -1
  349. package/node_modules/markdown-it/node_modules/uc.micro/categories/S/regex.mjs +0 -1
  350. package/node_modules/markdown-it/node_modules/uc.micro/categories/Z/regex.mjs +0 -1
  351. package/node_modules/markdown-it/node_modules/uc.micro/index.mjs +0 -8
  352. package/node_modules/markdown-it/node_modules/uc.micro/properties/Any/regex.mjs +0 -1
  353. /package/dist/{account-config-BZWN9tGS.js → .setup/account-config-BZWN9tGS.mjs} +0 -0
  354. /package/dist/{backup-health-Dm_YMVFT.js → .setup/backup-health-Dm_YMVFT.mjs} +0 -0
  355. /package/dist/{config-paths-CnREYb1Y.js → .setup/config-paths-CnREYb1Y.mjs} +0 -0
  356. /package/dist/{config-secret-input.runtime-CwsP3--c.js → .setup/config-secret-input.runtime-CwsP3--c.mjs} +0 -0
  357. /package/dist/{crypto-node.runtime-6Aj_ltHQ.js → .setup/crypto-node.runtime-6Aj_ltHQ.mjs} +0 -0
  358. /package/dist/{errors-C47hvAF8.js → .setup/errors-C47hvAF8.mjs} +0 -0
  359. /package/dist/{preflight-audio.runtime-BZxxQsxY.js → .setup/preflight-audio.runtime-BZxxQsxY.mjs} +0 -0
  360. /package/dist/{reaction-common-DkrQdBSZ.js → .setup/reaction-common-DkrQdBSZ.mjs} +0 -0
  361. /package/dist/{rolldown-runtime-8H4AJuhK.js → .setup/rolldown-runtime-8H4AJuhK.mjs} +0 -0
  362. /package/dist/{runtime-6S3DNFNv.js → .setup/runtime-6S3DNFNv.mjs} +0 -0
  363. /package/dist/{runtime-BefyhPWv.js → .setup/runtime-BefyhPWv.mjs} +0 -0
  364. /package/dist/{sync-state-CWbp0QSY.js → .setup/sync-state-CWbp0QSY.mjs} +0 -0
  365. /package/dist/{target-ids-B-5aQxwn.js → .setup/target-ids-B-5aQxwn.mjs} +0 -0
  366. /package/dist/{thread-bindings-shared-CKnY4LSd.js → .setup/thread-bindings-shared-CKnY4LSd.mjs} +0 -0
  367. /package/dist/{timeout-abort-signal-DMrgRFIy.js → .setup/timeout-abort-signal-DMrgRFIy.mjs} +0 -0
  368. /package/dist/{url-validation-GRHde6lq.js → .setup/url-validation-GRHde6lq.mjs} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs.js","names":[],"sources":["../src/rebuilder.ts","../src/linkifyit.ts"],"sourcesContent":["/* eslint-disable no-return-assign, prefer-regex-literals */\n\nimport { Any, Cc, Z, P } from 'uc.micro'\n\n/**\n * @category types\n */\nexport interface REBuilderOptions {\n '---'?: boolean\n fuzzyIP?: boolean\n schema_names?: string[]\n tlds?: string[]\n urlAuth?: boolean\n maxLength?: number\n}\n\nexport class REBuilder {\n src_Any = Any.source\n src_Cc = Cc.source\n src_Z = Z.source\n src_P = P.source\n // \\p{\\Z\\P\\Cc\\CF} (white spaces + control + format + punctuation)\n src_ZPCc = [this.src_Z, this.src_P, this.src_Cc].join('|')\n // \\p{\\Z\\Cc} (white spaces + control)\n src_ZCc = [this.src_Z, this.src_Cc].join('|')\n cache: Record<string, RegExp | undefined> = {}\n opts: REBuilderOptions = { maxLength: 10000, urlAuth: false, schema_names: [] }\n\n constructor (opts: REBuilderOptions = {}) {\n this.opts = { ...this.opts, ...opts }\n }\n\n set (opts: REBuilderOptions = {}) {\n this.opts = { ...this.opts, ...opts }\n\n this.cache = {}\n return this\n }\n\n escapeRE (str: string) { return str.replace(/[.?*+^$[\\]\\\\(){}|-]/g, '\\\\$&') }\n\n nestedPairRE (open: string, close: string, depth = 4) {\n const openRE = this.escapeRE(open)\n const closeRE = this.escapeRE(close)\n const atom = `(?:(?!${this.src_ZCc}|${openRE}|${closeRE}).)`\n\n let pair = `${openRE}${atom}{0,1000}${closeRE}`\n\n for (let level = 2; level <= depth; level++) {\n pair = `${openRE}(?:${atom}|${pair}){0,1000}${closeRE}`\n }\n\n return pair\n }\n\n // Partials\n\n get_text_separators () {\n // Experimental. List of chars, completely prohibited in links\n // because can separate it from other part of text\n return this.cache.text_separators ??= /[><\\uff5c]/\n }\n\n get_pseudo_letter () {\n return this.cache.src_pseudo_letter ??= new RegExp(\n // All possible word characters (everything without punctuation, spaces & controls)\n // Defined via punctuation & spaces to save space\n // Should be something like \\p{\\L\\N\\S\\M} (\\w but without `_`)\n `(?:(?!${this.get_text_separators().source}|${this.src_ZPCc})${this.src_Any})`\n )\n }\n\n get_ipv4_addr () {\n return this.cache.src_ip4 ??= new RegExp(\n '(?:' +\n '(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])[.]' +\n '){3}' +\n '(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])'\n )\n }\n\n get_ipv6_addr () {\n const h16 = '[0-9A-Fa-f]{1,4}'\n const ls32 = `(?:(?:${h16}:${h16})|${this.get_ipv4_addr().source})`\n\n return this.cache.src_ip6_addr ??= new RegExp(\n '(?:' +\n `(?:${h16}:){6}${ls32}|` +\n `::(?:${h16}:){5}${ls32}|` +\n `(?:${h16})?::(?:${h16}:){4}${ls32}|` +\n `(?:(?:${h16}:){0,1}${h16})?::(?:${h16}:){3}${ls32}|` +\n `(?:(?:${h16}:){0,2}${h16})?::(?:${h16}:){2}${ls32}|` +\n `(?:(?:${h16}:){0,3}${h16})?::${h16}:${ls32}|` +\n `(?:(?:${h16}:){0,4}${h16})?::${ls32}|` +\n `(?:(?:${h16}:){0,5}${h16})?::${h16}|` +\n `(?:(?:${h16}:){0,6}${h16})?::` +\n ')'\n )\n }\n\n get_ipv6_url_host () {\n return this.cache.src_ip6_host ??= new RegExp(\n `\\\\[${this.get_ipv6_addr().source}\\\\]`\n )\n }\n\n get_ipv6_mail_host () {\n return this.cache.src_ipv6_mail_host ??= new RegExp(\n `\\\\[IPv6:${this.get_ipv6_addr().source}\\\\]`\n )\n }\n\n get_auth () {\n return this.cache.src_auth ??= new RegExp(\n // Prohibit any of \"@/[]()\" in user/pass to avoid wrong domain fetch.\n // Length is capped to exclude possible rescans till the end and avoid O(n^2)\n // DoS. No standard limit, just take something reasonable.\n `(?:(?:(?!${this.src_ZCc}|[@/\\\\[\\\\]()]).){1,50}@)?`\n )\n }\n\n get_port () {\n return this.cache.src_port ??= new RegExp(\n '(?::(?:6(?:[0-4]\\\\d{3}|5(?:[0-4]\\\\d{2}|5(?:[0-2]\\\\d|3[0-5])))|[1-5]?\\\\d{1,4}))?'\n )\n }\n\n get_host_terminator () {\n // Force greedy fetch, we should not stop earlier than host part is fully fetched.\n return this.cache.src_host_terminator ??= new RegExp(\n `(?=$|${this.get_text_separators().source}|${this.src_ZPCc})` +\n `(?!${this.opts['---'] ? '-(?!--)|' : '-|'}_|:\\\\d|\\\\.-|\\\\.(?!$|${this.src_ZPCc}))`\n )\n }\n\n get_path_terminator () {\n return this.cache.src_path_terminator ??= new RegExp(\n `${this.src_ZPCc}|${this.get_text_separators().source}`\n // `${this.src_ZCc}|${this.get_text_separators().source}|[()[\\\\]{}.,\"'?!\\\\-;]`\n )\n }\n\n get_path () {\n return this.cache.src_path ??= new RegExp(\n '(?:' +\n '[/?#]' +\n '(?:' +\n `${this.nestedPairRE('[', ']')}|` +\n `${this.nestedPairRE('(', ')')}|` +\n `${this.nestedPairRE('{', '}')}|` +\n `\\\\\"(?:(?!${this.src_ZCc}|[\"]).){1,100}\\\\\"|` +\n `\\\\'(?:(?!${this.src_ZCc}|[']).){1,100}\\\\'|` +\n\n // allow `I'm_king` if no pair found\n `\\\\'(?=${this.get_pseudo_letter().source}|[-])|` +\n\n // 1. google has many dots in \"google search\" links (#66, #81).\n // github has ... in commit range links,\n // Restrict to\n // - english\n // - percent-encoded\n // - parts of file path\n // - params separator\n // until more examples found.\n //\n // 2. Allow `..:XX` for Odysee links (optional `:`), #100\n // This may be narrowed down later via separate rule.\n '\\\\.{2,20}[:]?[a-zA-Z0-9%/&]|' +\n\n `\\\\.(?!${this.src_ZCc}|[.]|$)|` +\n (this.opts['---']\n ? '\\\\-(?!--(?:[^-]|$))(?:-{0,19})|' // `---` => long dash, terminate\n : '\\\\-{1,20}|'\n ) +\n // allow `,,,` in paths\n `,(?!${this.src_ZCc}|$)|` +\n\n // allow `;` if not followed by space-like char\n `;(?!${this.src_ZCc}|$)|` +\n\n // allow `!!!` in paths, but not at the end\n `\\\\!{1,20}(?!${this.src_ZCc}|[!]|$)|` +\n\n `\\\\?(?!${this.src_ZCc}|[?]|$)|` +\n\n this.get_path_extra().source +\n\n // allowed punctuation chars in path.\n '[\\\\\\\\/:%@#&=_~*]|' +\n\n // if no special rules matched, consume all chars except terminators.\n `(?!${this.get_path_terminator().source}).` +\n `){1,${this.opts.maxLength}}` +\n '|\\\\/' +\n ')?'\n )\n }\n\n get_mail_name () {\n return this.cache.src_mail_name ??= new RegExp(\n // RFC 5321 dot-string only (no quoted-string), max 64 ASCII characters.\n \"[-!#$%&'*+/=?^_`{|}~a-zA-Z0-9](?:[-!#$%&'*+/=?^_`{|}~a-zA-Z0-9]|[.](?=[-!#$%&'*+/=?^_`{|}~a-zA-Z0-9])){0,63}\"\n )\n }\n\n get_xn () {\n return this.cache.src_xn ??= new RegExp(\n 'xn--[a-z0-9\\\\-]{1,59}'\n )\n }\n\n get_tld () {\n if (this.cache.tld) return this.cache.tld\n\n const tlds_src = [...new Set(this.opts.tlds || [])].sort().reverse()\n .join('|')\n\n this.cache.tld = new RegExp(\n `${tlds_src || '$#none#$'}|${this.get_xn().source}`\n )\n return this.cache.tld\n }\n\n get_domain_root () {\n return this.cache.src_domain_root ??= new RegExp(\n // More to read about domain names\n // http://serverfault.com/questions/638260/\n\n // Allow letters & digits (http://test1)\n '(?:' +\n this.get_xn().source +\n '|' +\n `${this.get_pseudo_letter().source}{1,63}` +\n ')'\n )\n }\n\n get_domain () {\n return this.cache.src_domain ??= new RegExp(\n '(?:' +\n this.get_xn().source +\n '|' +\n `(?:${this.get_pseudo_letter().source})` +\n '|' +\n `(?:${this.get_pseudo_letter().source}(?:-|${this.get_pseudo_letter().source}){0,61}${this.get_pseudo_letter().source})` +\n ')'\n )\n }\n\n // Host rules, depending on the type\n\n get_url_host_port () {\n return this.cache.url_host_port ??= new RegExp(\n '(?:' +\n // Don't need IP v4 check, because digits are already allowed\n // in normal domain names\n this.get_ipv6_url_host().source +\n '|' +\n `(?:(?:(?:${this.get_domain().source})\\\\.){0,10}${this.get_domain().source})`/* _root */ +\n ')' +\n this.get_port().source +\n this.get_host_terminator().source\n )\n }\n\n get_fuzzy_url_host_port () {\n // - TLD as anchor\n // - No local domains\n return this.cache.fuzzy_url_host_port ??= new RegExp(\n '(?:' +\n (this.opts.fuzzyIP ? this.get_ipv4_addr().source + '|' : '') +\n `(?:(?:(?:${this.get_domain().source})\\\\.){1,10}(?:${this.get_tld().source}))` +\n ')' +\n // No port in fuzzy links to reduce search\n this.get_host_terminator().source\n )\n }\n\n get_mail_host () {\n // Similar to normal url host, but\n // - with different ipv6 format (and without port).\n // - with reduced max subdomains\n return this.cache.src_mail_host ??= new RegExp(\n '(?:' +\n this.get_ipv6_mail_host().source +\n '|' +\n `(?:(?:(?:${this.get_domain().source})\\\\.){0,4}${this.get_domain().source})` +\n ')' +\n this.get_host_terminator().source\n )\n }\n\n get_fuzzy_mail_host () {\n // Similar to normal mail host, but without local domains.\n return this.cache.src_fuzzy_mail_host ??= new RegExp(\n '(?:' +\n this.get_ipv6_mail_host().source +\n '|' +\n `(?:(?:(?:${this.get_domain().source})[.]){1,4}${this.get_domain_root().source})` +\n ')' +\n this.get_host_terminator().source\n )\n }\n\n // Hooks\n\n get_path_extra () {\n return this.cache.src_path_extra ??= new RegExp('')\n }\n\n // \"Public\" rules\n\n get_fuzzy_mail_host_search () {\n return this.cache.mail_fuzzy_host_search ??= new RegExp(\n `@${this.get_fuzzy_mail_host().source}`,\n 'ig'\n )\n }\n\n get_fuzzy_link_search () {\n return this.cache.link_fuzzy_search ??= new RegExp(\n // Fuzzy link can't be prepended with .:/\\- and non punctuation.\n // but can start with > (markdown blockquote)\n `(^|(?![.:/\\\\-_@])(?:[$+<=>^\\`|\\uff5c]|${this.src_ZPCc}))` +\n `(?:(?![$+<=>^\\`|\\uff5c])${this.get_fuzzy_url_host_port().source}${this.get_path().source})`,\n 'ig'\n )\n }\n\n get_http_validator () {\n return this.cache.http_validator ??= new RegExp(\n '\\\\/\\\\/' +\n (this.opts.urlAuth ? this.get_auth().source : '') +\n this.get_url_host_port().source +\n this.get_path().source,\n 'iy'\n )\n }\n\n get_relative_proto_validator () {\n return this.cache.relative_proto_validator ??= new RegExp(\n (this.opts.urlAuth ? this.get_auth().source : '') +\n // Don't allow single-level domains, because of false positives like '//test'\n // with code comments.\n `(?:localhost|${this.get_ipv6_url_host().source}|(?:(?:${this.get_domain().source})[.]){1,10}${this.get_domain_root().source})` +\n this.get_port().source +\n this.get_host_terminator().source +\n this.get_path().source,\n\n 'iy'\n )\n }\n\n get_mail_name_validator () {\n return this.cache.mail_name_validator ??= new RegExp(\n `(?:^|${this.get_text_separators().source}|\"|\\\\(|${this.src_ZCc})` +\n `(${this.get_mail_name().source})$`\n )\n }\n\n get_mailto_validator () {\n return this.cache.mailto_validator ??= new RegExp(\n `${this.get_mail_name().source}@${this.get_mail_host().source}`,\n 'iy'\n )\n }\n\n get_schema_names () {\n return this.cache.schema_names ??= new RegExp((this.opts.schema_names || []).map(name => this.escapeRE(name)).join('|'))\n }\n\n get_schema_search () {\n return this.cache.schema_search ??= new RegExp(\n `(^|(?!_)(?:[><\\uff5c]|${this.src_ZPCc}))(${this.get_schema_names().source})`,\n 'ig'\n )\n }\n\n get_schema_at_start () {\n return this.cache.schema_at_start ??= new RegExp(\n `^${this.get_schema_search().source}`,\n 'i'\n )\n }\n}\n","import { REBuilder } from './rebuilder.ts'\n\n//\n\n/**\n * Recognition options for schemaless links.\n *\n * @category types\n */\nexport interface LinkifyOptions {\n /** Recognize URLs without `http(s)://` prefix. Default `false`. */\n fuzzyLink?: boolean\n /** Recognize emails without `mailto:` prefix. Default `true`. */\n fuzzyEmail?: boolean\n /**\n * Allow IPs in fuzzy links. Can conflict with some texts, like version\n * numbers. Default `false`.\n */\n fuzzyIP?: boolean\n /**\n * Terminate link with `---` if it is considered a long dash. Default `false`.\n */\n '---'?: boolean\n /** Allowed TLDs list for fuzzy links. Replaces the default list when set. */\n tlds?: string[]\n /** Recognize authentication data in URLs. Default `false`. */\n urlAuth?: boolean\n /** Maximum link length. Default `10000`. */\n maxLength?: number\n}\n\nexport interface LinkifyConstructorOptions extends LinkifyOptions {\n /** Custom regular expression builder. */\n rebuilder?: REBuilder\n}\n\n/**\n * Custom schema definition.\n *\n * @category types\n */\nexport interface SchemaOpts {\n /**\n * Checks text after the schema prefix. Should return matched tail length on\n * success, or `0` on fail.\n */\n validate: (text: string, pos: number, self: LinkifyIt) => number\n /**\n * Optional function to normalize `text` and `url` of matched result, for\n * example for `@twitter` mentions.\n */\n normalize?: (match: Match, self: LinkifyIt) => void\n}\n\ntype Schema = Required<SchemaOpts>\n\ninterface MatchCandidate {\n schema: string\n index: number\n lastIndex: number\n}\n\nconst web_schema: Schema = {\n validate: (text: string, pos: number, self: LinkifyIt) => {\n const re = self.re.get_http_validator()\n re.lastIndex = pos\n\n const m = re.exec(text)\n return m ? m[0].length : 0\n },\n normalize: (match: Match, self: LinkifyIt) => self.normalize(match)\n}\n\nconst defaultSchemas: Record<string, Schema> = {\n 'http:': web_schema,\n 'https:': web_schema,\n 'ftp:': web_schema,\n '//': {\n validate: function (text: string, pos: number, self: LinkifyIt) {\n const re = self.re.get_relative_proto_validator()\n re.lastIndex = pos\n\n const m = re.exec(text)\n if (m) {\n // should not be `://` & `///`, that protects from errors in protocol name\n if (pos >= 3 && text[pos - 3] === ':') { return 0 }\n if (pos >= 3 && text[pos - 3] === '/') { return 0 }\n return m[0].length\n }\n return 0\n },\n normalize: (match: Match, self: LinkifyIt) => self.normalize(match)\n },\n 'mailto:': {\n validate: function (text: string, pos: number, self: LinkifyIt) {\n const re = self.re.get_mailto_validator()\n re.lastIndex = pos\n\n const m = re.exec(text)\n return m ? m[0].length : 0\n },\n normalize: (match: Match, self: LinkifyIt) => self.normalize(match)\n }\n}\n\n// List of 2-character tlds (autogenerated by ./support/tlds_2char_gen.js)\nconst tlds_2ch = 'a:cdefgilmnoqrstuwxz|b:abdefghijmnorstvwyz|c:acdfghiklmnoruvwxyz|d:ejkmoz|e:cegrstu|f:ijkmor|g:abdefghilmnpqrstuwy|h:kmnrtu|i:delmnoqrst|j:emop|k:eghimnprwyz|l:abcikrstuvy|m:acdeghklmnopqrstuvwxyz|n:acefgilopruz|o:m|p:aefghklmnrstwy|q:a|r:eosuw|s:abcdeghijklmnortuvxyz|t:cdfghjklmnortvwz|u:agksyz|v:aceginu|w:fs|y:et|z:amw'\n\n// DON'T try to make PRs with changes. Extend TLDs with LinkifyIt.tlds() instead\nconst tlds_default = 'biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф'\n\nfunction unpackTlds (): string[] {\n const result = tlds_default.split('|')\n\n tlds_2ch.split('|').forEach((item) => {\n const sep = item.indexOf(':')\n\n const prefix = item.slice(0, sep)\n\n for (const suffix of item.slice(sep + 1)) {\n result.push(prefix + suffix)\n }\n })\n\n return result\n}\n\nconst defaultOptions: Required<LinkifyOptions> = {\n fuzzyLink: false,\n fuzzyEmail: true,\n fuzzyIP: false,\n '---': false,\n tlds: unpackTlds(),\n urlAuth: false,\n maxLength: 10000\n}\n\n/**\n * Match result returned by {@link LinkifyIt.match} and\n * {@link LinkifyIt.matchAtStart}.\n *\n * @category types\n */\nexport class Match {\n /** Prefix (protocol) for matched string. Empty for fuzzy links. */\n schema: string\n /** First position of matched string. */\n index: number\n /** Next position after matched string. */\n lastIndex: number\n /** Matched string. */\n raw: string\n /** Normalized text of matched string. */\n text: string\n /** Normalized URL of matched string. */\n url: string\n\n constructor (text: string, schema: string, index: number, lastIndex: number) {\n const raw = text.slice(index, lastIndex)\n\n this.schema = schema.toLowerCase()\n this.index = index\n this.lastIndex = lastIndex\n this.raw = raw\n this.text = raw\n this.url = raw\n }\n}\n\n/** Linkifier instance. */\nexport class LinkifyIt {\n __opts__: Required<LinkifyOptions>\n private __schemas__: Record<string, Schema>\n re: REBuilder\n\n /**\n * Creates new linkifier instance.\n *\n * By default understands:\n *\n * - `http(s)://...` , `ftp://...`, `mailto:...` & `//...` links\n * - \"fuzzy\" emails (foo@bar.com).\n *\n * See {@link LinkifyConstructorOptions} for available options.\n *\n * @param options Recognition options.\n *\n * @example\n * ```javascript\n * import { LinkifyIt } from 'linkify-it'\n *\n * const linkify = new LinkifyIt({ fuzzyLink: true })\n *\n * linkify\n * .tlds(require('tlds')) // Reload with full TLD list\n * .tlds('onion', true) // Add unofficial `.onion` domain\n * .add('ftp:', null) // Disable `ftp:` protocol\n * .set({ fuzzyIP: true }) // Enable IPs in fuzzy links\n *\n * console.log(linkify.test('Site github.com!')) // true\n * console.log(linkify.match('Site github.com!'))\n * ```\n */\n constructor (options: LinkifyConstructorOptions = {}) {\n const { rebuilder, ...linkifyOptions } = options\n\n this.__opts__ = { ...defaultOptions, ...linkifyOptions }\n\n this.__schemas__ = { ...defaultSchemas }\n\n this.re = rebuilder || new REBuilder()\n this.re.set({\n ...this.__opts__,\n schema_names: Object.keys(this.__schemas__)\n })\n }\n\n /**\n * Add new rule definition.\n *\n * `schema` is a link prefix (usually, protocol name with `:` at the end,\n * `skype:` for example). `linkify-it` makes sure that prefix is not\n * preceded with alphanumeric char and symbols. Only whitespaces and\n * punctuation allowed.\n *\n * `definition` is a rule to check tail after link prefix. To disable an\n * existing rule, pass `null`.\n *\n * @param schema Rule name (fixed pattern prefix).\n * @param definition Schema definition, or `null` to disable the rule.\n *\n * See [twitter mentions example](https://github.com/markdown-it/linkify-it/blob/master/examples/twitter.mjs).\n */\n add (schema: string, definition: SchemaOpts | null = null): this {\n if (!definition) {\n delete this.__schemas__[schema]\n } else {\n const def = {\n normalize: (match: Match, self: LinkifyIt) => self.normalize(match),\n ...definition\n }\n this.__schemas__[schema] = def\n }\n\n this.re.set({\n ...this.__opts__,\n schema_names: Object.keys(this.__schemas__)\n })\n return this\n }\n\n /**\n * Set recognition options for links without schema.\n *\n * @param options Recognition options.\n */\n set (options: LinkifyOptions = {}): this {\n this.__opts__ = { ...this.__opts__, ...options }\n this.re.set({\n ...this.__opts__,\n schema_names: Object.keys(this.__schemas__)\n })\n return this\n }\n\n /**\n * Searches linkifiable pattern and returns `true` on success or `false` on fail.\n *\n * @param text Text to scan.\n */\n test (text: string): boolean {\n if (!text.length) { return false }\n\n let m, re\n\n // try to scan for link with schema - that's the most simple rule\n re = this.re.get_schema_search()\n re.lastIndex = 0\n while ((m = re.exec(text)) !== null) {\n if (this.testSchemaAt(text, m[2], re.lastIndex)) { return true }\n }\n\n if (this.__opts__.fuzzyLink && this.__schemas__['http:']) {\n // guess schemaless links\n re = this.re.get_fuzzy_link_search()\n re.lastIndex = 0\n if (re.exec(text) !== null) { return true }\n }\n\n if (this.__opts__.fuzzyEmail && this.__schemas__['mailto:']) {\n // guess schemaless emails\n if (text.indexOf('@') >= 0) {\n // We can't skip this check, because this cases are possible:\n // 192.168.1.1@gmail.com, my.in@example.com\n const mailHostRe = this.re.get_fuzzy_mail_host_search()\n const mailNameRe = this.re.get_mail_name_validator()\n mailHostRe.lastIndex = 0\n\n while ((m = mailHostRe.exec(text)) !== null) {\n const name = text.slice(Math.max(0, m.index - 65), m.index)\n if (mailNameRe.test(name)) { return true }\n }\n }\n }\n\n return false\n }\n\n /**\n * Similar to {@link LinkifyIt.test} but checks only specific protocol tail exactly\n * at given position. Returns length of found pattern (0 on fail).\n *\n * @param text Text to scan.\n * @param schema Rule (schema) name.\n * @param pos Text offset to check from.\n */\n testSchemaAt (text: string, schema: string, pos: number): number {\n // If not supported schema check requested - terminate\n if (!this.__schemas__[schema.toLowerCase()]) { return 0 }\n\n return this.__schemas__[schema.toLowerCase()].validate(\n text.slice(0, pos + this.__opts__.maxLength),\n pos,\n this\n )\n }\n\n /**\n * Returns array of found link descriptions or `null` on fail. We strongly\n * recommend to use {@link LinkifyIt.test} first, for best speed.\n *\n * @param text Text to scan.\n */\n match (text: string): Match[] | null {\n const result: Match[] = []\n const schemaRe = this.re.get_schema_search()\n let fuzzyLinkRe: RegExp | undefined\n let mailHostRe: RegExp | undefined\n let mailNameRe: RegExp | undefined\n let fuzzyLinkCandidate: MatchCandidate | undefined\n let fuzzyEmailCandidate: MatchCandidate | undefined\n let schemaPrefix: MatchCandidate | undefined\n let schemaDone = false\n let fuzzyLinkDone = false\n let fuzzyEmailDone = false\n let pos = 0\n\n if (!text.length) { return null }\n\n schemaRe.lastIndex = 0\n\n if (this.__opts__.fuzzyLink && this.__schemas__['http:']) {\n fuzzyLinkRe = this.re.get_fuzzy_link_search()\n fuzzyLinkRe.lastIndex = 0\n }\n\n if (this.__opts__.fuzzyEmail && this.__schemas__['mailto:']) {\n mailHostRe = this.re.get_fuzzy_mail_host_search()\n mailHostRe.lastIndex = 0\n mailNameRe = this.re.get_mail_name_validator()\n }\n\n for (;;) {\n const scanFrom = Math.max(pos - 1, 0)\n\n if (mailHostRe && mailNameRe && !fuzzyEmailDone && (!fuzzyEmailCandidate || fuzzyEmailCandidate.index < pos)) {\n if (mailHostRe.lastIndex < scanFrom) { mailHostRe.lastIndex = scanFrom }\n\n for (;;) {\n const m = mailHostRe.exec(text)\n if (!m) {\n fuzzyEmailDone = true\n fuzzyEmailCandidate = undefined\n break\n }\n\n const name = mailNameRe.exec(text.slice(Math.max(0, m.index - 65), m.index))\n if (!name) { continue }\n\n fuzzyEmailCandidate = {\n schema: 'mailto:',\n index: m.index - name[1].length,\n lastIndex: m.index + m[0].length\n }\n\n if (fuzzyEmailCandidate.index >= pos) { break }\n if (mailHostRe.lastIndex < scanFrom) { mailHostRe.lastIndex = scanFrom }\n }\n }\n\n if (fuzzyLinkRe && !fuzzyLinkDone && (!fuzzyLinkCandidate || fuzzyLinkCandidate.index < pos)) {\n if (fuzzyLinkRe.lastIndex < scanFrom) { fuzzyLinkRe.lastIndex = scanFrom }\n\n for (;;) {\n const m = fuzzyLinkRe.exec(text)\n if (!m) {\n fuzzyLinkDone = true\n fuzzyLinkCandidate = undefined\n break\n }\n\n fuzzyLinkCandidate = {\n schema: '',\n index: m.index + m[1].length,\n lastIndex: m.index + m[0].length\n }\n\n if (fuzzyLinkCandidate.index >= pos) { break }\n if (fuzzyLinkRe.lastIndex < scanFrom) { fuzzyLinkRe.lastIndex = scanFrom }\n }\n }\n\n let fuzzyCandidate = fuzzyEmailCandidate\n if (!fuzzyCandidate ||\n (fuzzyLinkCandidate &&\n (fuzzyLinkCandidate.index < fuzzyCandidate.index ||\n (fuzzyLinkCandidate.index === fuzzyCandidate.index && fuzzyLinkCandidate.lastIndex > fuzzyCandidate.lastIndex)))) {\n fuzzyCandidate = fuzzyLinkCandidate\n }\n\n let schemaCandidate: MatchCandidate | undefined\n\n if (!schemaDone) {\n for (;;) {\n if (!schemaPrefix) {\n if (schemaRe.lastIndex < scanFrom) { schemaRe.lastIndex = scanFrom }\n\n const m = schemaRe.exec(text)\n if (!m) {\n schemaDone = true\n break\n }\n\n schemaPrefix = {\n schema: m[2],\n index: m.index + m[1].length,\n lastIndex: m.index + m[0].length\n }\n }\n\n if (schemaPrefix.index < pos) {\n schemaPrefix = undefined\n continue\n }\n\n if (fuzzyCandidate && schemaPrefix.index > fuzzyCandidate.index) { break }\n\n const prefix = schemaPrefix\n schemaPrefix = undefined\n\n const len = this.testSchemaAt(text, prefix.schema, prefix.lastIndex)\n if (len) {\n schemaCandidate = {\n schema: prefix.schema,\n index: prefix.index,\n lastIndex: prefix.lastIndex + len\n }\n break\n }\n }\n }\n\n let candidate = schemaCandidate\n if (!candidate ||\n (fuzzyEmailCandidate &&\n (fuzzyEmailCandidate.index < candidate.index ||\n (fuzzyEmailCandidate.index === candidate.index && fuzzyEmailCandidate.lastIndex > candidate.lastIndex)))) {\n candidate = fuzzyEmailCandidate\n }\n if (!candidate ||\n (fuzzyLinkCandidate &&\n (fuzzyLinkCandidate.index < candidate.index ||\n (fuzzyLinkCandidate.index === candidate.index && fuzzyLinkCandidate.lastIndex > candidate.lastIndex)))) {\n candidate = fuzzyLinkCandidate\n }\n\n if (!candidate) { break }\n\n if (candidate === fuzzyEmailCandidate) {\n fuzzyEmailCandidate = undefined\n } else if (candidate === fuzzyLinkCandidate) {\n fuzzyLinkCandidate = undefined\n }\n\n const match = new Match(text, candidate.schema, candidate.index, candidate.lastIndex)\n if (match.schema) {\n this.__schemas__[match.schema].normalize(match, this)\n } else {\n this.normalize(match)\n }\n result.push(match)\n pos = candidate.lastIndex\n }\n\n if (result.length) {\n return result\n }\n\n return null\n }\n\n /**\n * Returns fully-formed (not fuzzy) link if it starts at the beginning\n * of the string, and null otherwise.\n *\n * @param text Text to scan.\n */\n matchAtStart (text: string): Match | null {\n if (!text.length) return null\n\n const m = this.re.get_schema_at_start().exec(text)\n if (!m) return null\n\n const len = this.testSchemaAt(text, m[2], m[0].length)\n if (!len) return null\n\n const match = new Match(text, m[2], m.index + m[1].length, m.index + m[0].length + len)\n\n this.__schemas__[match.schema].normalize(match, this)\n return match\n }\n\n /**\n * Load (or merge) new TLDs list. Those are used for fuzzy links (without\n * prefix) to avoid false positives. By default this algorithm is used:\n *\n * - hostname with any 2-letter root zones are ok.\n * - biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф\n * are ok.\n * - encoded (`xn--...`) root zones are ok.\n *\n * If list is replaced, then exact match for 2-chars root zones will be checked.\n *\n * @param list List of TLDs.\n * @param keepOld Merge with current list if `true` (`false` by default).\n */\n tlds (list: string | string[], keepOld = false): this {\n list = Array.isArray(list) ? list : [list]\n\n if (!keepOld) {\n this.__opts__.tlds = list\n } else {\n this.__opts__.tlds = this.__opts__.tlds.concat(list)\n }\n\n this.re.set({\n ...this.__opts__,\n schema_names: Object.keys(this.__schemas__)\n })\n return this\n }\n\n /**\n * Default normalizer (if schema does not define its own).\n *\n * @param match Match to normalize.\n */\n normalize (match: Match): void {\n // Do minimal possible changes by default. Need to collect feedback prior\n // to move forward https://github.com/markdown-it/linkify-it/issues/1\n\n if (!match.schema) { match.url = `http://${match.url}` }\n\n if (match.schema === 'mailto:' && !/^mailto:/i.test(match.url)) {\n match.url = `mailto:${match.url}`\n }\n }\n}\n\nfunction linkifyit (options: LinkifyConstructorOptions = {}): LinkifyIt {\n return new LinkifyIt(options)\n}\n\nexport { linkifyit }\n"],"mappings":"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"}
@@ -0,0 +1,236 @@
1
+ /**
2
+ * @category types
3
+ */
4
+ interface REBuilderOptions {
5
+ '---'?: boolean;
6
+ fuzzyIP?: boolean;
7
+ schema_names?: string[];
8
+ tlds?: string[];
9
+ urlAuth?: boolean;
10
+ maxLength?: number;
11
+ }
12
+ declare class REBuilder {
13
+ src_Any: string;
14
+ src_Cc: string;
15
+ src_Z: string;
16
+ src_P: string;
17
+ src_ZPCc: string;
18
+ src_ZCc: string;
19
+ cache: Record<string, RegExp | undefined>;
20
+ opts: REBuilderOptions;
21
+ constructor(opts?: REBuilderOptions);
22
+ set(opts?: REBuilderOptions): this;
23
+ escapeRE(str: string): string;
24
+ nestedPairRE(open: string, close: string, depth?: number): string;
25
+ get_text_separators(): RegExp;
26
+ get_pseudo_letter(): RegExp;
27
+ get_ipv4_addr(): RegExp;
28
+ get_ipv6_addr(): RegExp;
29
+ get_ipv6_url_host(): RegExp;
30
+ get_ipv6_mail_host(): RegExp;
31
+ get_auth(): RegExp;
32
+ get_port(): RegExp;
33
+ get_host_terminator(): RegExp;
34
+ get_path_terminator(): RegExp;
35
+ get_path(): RegExp;
36
+ get_mail_name(): RegExp;
37
+ get_xn(): RegExp;
38
+ get_tld(): RegExp;
39
+ get_domain_root(): RegExp;
40
+ get_domain(): RegExp;
41
+ get_url_host_port(): RegExp;
42
+ get_fuzzy_url_host_port(): RegExp;
43
+ get_mail_host(): RegExp;
44
+ get_fuzzy_mail_host(): RegExp;
45
+ get_path_extra(): RegExp;
46
+ get_fuzzy_mail_host_search(): RegExp;
47
+ get_fuzzy_link_search(): RegExp;
48
+ get_http_validator(): RegExp;
49
+ get_relative_proto_validator(): RegExp;
50
+ get_mail_name_validator(): RegExp;
51
+ get_mailto_validator(): RegExp;
52
+ get_schema_names(): RegExp;
53
+ get_schema_search(): RegExp;
54
+ get_schema_at_start(): RegExp;
55
+ }
56
+
57
+ /**
58
+ * Recognition options for schemaless links.
59
+ *
60
+ * @category types
61
+ */
62
+ interface LinkifyOptions {
63
+ /** Recognize URLs without `http(s)://` prefix. Default `false`. */
64
+ fuzzyLink?: boolean;
65
+ /** Recognize emails without `mailto:` prefix. Default `true`. */
66
+ fuzzyEmail?: boolean;
67
+ /**
68
+ * Allow IPs in fuzzy links. Can conflict with some texts, like version
69
+ * numbers. Default `false`.
70
+ */
71
+ fuzzyIP?: boolean;
72
+ /**
73
+ * Terminate link with `---` if it is considered a long dash. Default `false`.
74
+ */
75
+ '---'?: boolean;
76
+ /** Allowed TLDs list for fuzzy links. Replaces the default list when set. */
77
+ tlds?: string[];
78
+ /** Recognize authentication data in URLs. Default `false`. */
79
+ urlAuth?: boolean;
80
+ /** Maximum link length. Default `10000`. */
81
+ maxLength?: number;
82
+ }
83
+ interface LinkifyConstructorOptions extends LinkifyOptions {
84
+ /** Custom regular expression builder. */
85
+ rebuilder?: REBuilder;
86
+ }
87
+ /**
88
+ * Custom schema definition.
89
+ *
90
+ * @category types
91
+ */
92
+ interface SchemaOpts {
93
+ /**
94
+ * Checks text after the schema prefix. Should return matched tail length on
95
+ * success, or `0` on fail.
96
+ */
97
+ validate: (text: string, pos: number, self: LinkifyIt) => number;
98
+ /**
99
+ * Optional function to normalize `text` and `url` of matched result, for
100
+ * example for `@twitter` mentions.
101
+ */
102
+ normalize?: (match: Match, self: LinkifyIt) => void;
103
+ }
104
+ /**
105
+ * Match result returned by {@link LinkifyIt.match} and
106
+ * {@link LinkifyIt.matchAtStart}.
107
+ *
108
+ * @category types
109
+ */
110
+ declare class Match {
111
+ /** Prefix (protocol) for matched string. Empty for fuzzy links. */
112
+ schema: string;
113
+ /** First position of matched string. */
114
+ index: number;
115
+ /** Next position after matched string. */
116
+ lastIndex: number;
117
+ /** Matched string. */
118
+ raw: string;
119
+ /** Normalized text of matched string. */
120
+ text: string;
121
+ /** Normalized URL of matched string. */
122
+ url: string;
123
+ constructor(text: string, schema: string, index: number, lastIndex: number);
124
+ }
125
+ /** Linkifier instance. */
126
+ declare class LinkifyIt {
127
+ __opts__: Required<LinkifyOptions>;
128
+ private __schemas__;
129
+ re: REBuilder;
130
+ /**
131
+ * Creates new linkifier instance.
132
+ *
133
+ * By default understands:
134
+ *
135
+ * - `http(s)://...` , `ftp://...`, `mailto:...` & `//...` links
136
+ * - "fuzzy" emails (foo@bar.com).
137
+ *
138
+ * See {@link LinkifyConstructorOptions} for available options.
139
+ *
140
+ * @param options Recognition options.
141
+ *
142
+ * @example
143
+ * ```javascript
144
+ * import { LinkifyIt } from 'linkify-it'
145
+ *
146
+ * const linkify = new LinkifyIt({ fuzzyLink: true })
147
+ *
148
+ * linkify
149
+ * .tlds(require('tlds')) // Reload with full TLD list
150
+ * .tlds('onion', true) // Add unofficial `.onion` domain
151
+ * .add('ftp:', null) // Disable `ftp:` protocol
152
+ * .set({ fuzzyIP: true }) // Enable IPs in fuzzy links
153
+ *
154
+ * console.log(linkify.test('Site github.com!')) // true
155
+ * console.log(linkify.match('Site github.com!'))
156
+ * ```
157
+ */
158
+ constructor(options?: LinkifyConstructorOptions);
159
+ /**
160
+ * Add new rule definition.
161
+ *
162
+ * `schema` is a link prefix (usually, protocol name with `:` at the end,
163
+ * `skype:` for example). `linkify-it` makes sure that prefix is not
164
+ * preceded with alphanumeric char and symbols. Only whitespaces and
165
+ * punctuation allowed.
166
+ *
167
+ * `definition` is a rule to check tail after link prefix. To disable an
168
+ * existing rule, pass `null`.
169
+ *
170
+ * @param schema Rule name (fixed pattern prefix).
171
+ * @param definition Schema definition, or `null` to disable the rule.
172
+ *
173
+ * See [twitter mentions example](https://github.com/markdown-it/linkify-it/blob/master/examples/twitter.mjs).
174
+ */
175
+ add(schema: string, definition?: SchemaOpts | null): this;
176
+ /**
177
+ * Set recognition options for links without schema.
178
+ *
179
+ * @param options Recognition options.
180
+ */
181
+ set(options?: LinkifyOptions): this;
182
+ /**
183
+ * Searches linkifiable pattern and returns `true` on success or `false` on fail.
184
+ *
185
+ * @param text Text to scan.
186
+ */
187
+ test(text: string): boolean;
188
+ /**
189
+ * Similar to {@link LinkifyIt.test} but checks only specific protocol tail exactly
190
+ * at given position. Returns length of found pattern (0 on fail).
191
+ *
192
+ * @param text Text to scan.
193
+ * @param schema Rule (schema) name.
194
+ * @param pos Text offset to check from.
195
+ */
196
+ testSchemaAt(text: string, schema: string, pos: number): number;
197
+ /**
198
+ * Returns array of found link descriptions or `null` on fail. We strongly
199
+ * recommend to use {@link LinkifyIt.test} first, for best speed.
200
+ *
201
+ * @param text Text to scan.
202
+ */
203
+ match(text: string): Match[] | null;
204
+ /**
205
+ * Returns fully-formed (not fuzzy) link if it starts at the beginning
206
+ * of the string, and null otherwise.
207
+ *
208
+ * @param text Text to scan.
209
+ */
210
+ matchAtStart(text: string): Match | null;
211
+ /**
212
+ * Load (or merge) new TLDs list. Those are used for fuzzy links (without
213
+ * prefix) to avoid false positives. By default this algorithm is used:
214
+ *
215
+ * - hostname with any 2-letter root zones are ok.
216
+ * - biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф
217
+ * are ok.
218
+ * - encoded (`xn--...`) root zones are ok.
219
+ *
220
+ * If list is replaced, then exact match for 2-chars root zones will be checked.
221
+ *
222
+ * @param list List of TLDs.
223
+ * @param keepOld Merge with current list if `true` (`false` by default).
224
+ */
225
+ tlds(list: string | string[], keepOld?: boolean): this;
226
+ /**
227
+ * Default normalizer (if schema does not define its own).
228
+ *
229
+ * @param match Match to normalize.
230
+ */
231
+ normalize(match: Match): void;
232
+ }
233
+ declare function linkifyit(options?: LinkifyConstructorOptions): LinkifyIt;
234
+
235
+ export { LinkifyIt, Match, REBuilder, linkifyit };
236
+ export type { LinkifyConstructorOptions, LinkifyOptions, REBuilderOptions, SchemaOpts };