@jwilleke/ngdpbase-types 0.0.0 → 5.19.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.
Files changed (304) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +16 -2
  3. package/lib/packages/ngdpbase-types/index.d.ts +32 -0
  4. package/lib/packages/ngdpbase-types/testing.d.ts +43 -0
  5. package/lib/packages/ngdpbase-types/testing.js +53 -0
  6. package/lib/src/cache/CacheDependencies.d.ts +50 -0
  7. package/lib/src/cache/CacheDependencies.js +50 -0
  8. package/lib/src/cache/ICacheAdapter.d.ts +86 -0
  9. package/lib/src/cache/RegionCache.d.ts +171 -0
  10. package/lib/src/context/ActorContext.d.ts +48 -0
  11. package/lib/src/context/ActorContext.js +33 -0
  12. package/lib/src/context/ApiContext.d.ts +194 -0
  13. package/lib/src/context/ApiContext.js +273 -0
  14. package/lib/src/context/BaseContext.d.ts +110 -0
  15. package/lib/src/context/BaseContext.js +143 -0
  16. package/lib/src/context/JobContext.d.ts +153 -0
  17. package/lib/src/context/JobContext.js +144 -0
  18. package/lib/src/context/WikiContext.d.ts +404 -0
  19. package/lib/src/context/bootActions.d.ts +64 -0
  20. package/lib/src/context/bootActions.js +111 -0
  21. package/lib/src/converters/HtmlConverter.d.ts +70 -0
  22. package/lib/src/converters/IContentConverter.d.ts +94 -0
  23. package/lib/src/converters/JSPWikiConverter.d.ts +117 -0
  24. package/lib/src/converters/conversionWarning.d.ts +15 -0
  25. package/lib/src/converters/ncm/bridge.d.ts +22 -0
  26. package/lib/src/converters/ncm/existing.d.ts +23 -0
  27. package/lib/src/converters/ncm/fix/blocks.d.ts +89 -0
  28. package/lib/src/converters/ncm/fix/bulletMarkers.d.ts +21 -0
  29. package/lib/src/converters/ncm/fix/index.d.ts +36 -0
  30. package/lib/src/converters/ncm/fix/jspwikiBullets.d.ts +20 -0
  31. package/lib/src/converters/ncm/fix/jspwikiCodeMarkers.d.ts +38 -0
  32. package/lib/src/converters/ncm/fix/jspwikiHeadings.d.ts +25 -0
  33. package/lib/src/converters/ncm/fix/jspwikiIndent.d.ts +24 -0
  34. package/lib/src/converters/ncm/fix/jspwikiInsert.d.ts +21 -0
  35. package/lib/src/converters/ncm/fix/jspwikiItalic.d.ts +29 -0
  36. package/lib/src/converters/ncm/fix/jspwikiLinkLeftovers.d.ts +27 -0
  37. package/lib/src/converters/ncm/fix/moreInformationFooter.d.ts +25 -0
  38. package/lib/src/converters/ncm/fix/styleClosers.d.ts +25 -0
  39. package/lib/src/converters/ncm/fix/tightenLists.d.ts +30 -0
  40. package/lib/src/converters/ncm/fix/types.d.ts +33 -0
  41. package/lib/src/converters/ncm/footnotes.d.ts +39 -0
  42. package/lib/src/converters/ncm/images.d.ts +49 -0
  43. package/lib/src/converters/ncm/index.d.ts +20 -0
  44. package/lib/src/converters/ncm/links.d.ts +21 -0
  45. package/lib/src/converters/ncm/normalize.d.ts +39 -0
  46. package/lib/src/converters/ncm/placeholder.d.ts +25 -0
  47. package/lib/src/converters/ncm/tables.d.ts +36 -0
  48. package/lib/src/converters/ncm/types.d.ts +42 -0
  49. package/lib/src/http/egressPolicy.d.ts +52 -0
  50. package/lib/src/http/guardedFetch.d.ts +89 -0
  51. package/lib/src/http/guardedFetch.js +113 -0
  52. package/lib/src/http/guardedLookup.d.ts +48 -0
  53. package/lib/src/http/guardedLookup.js +73 -0
  54. package/lib/src/http/ssrf.d.ts +83 -0
  55. package/lib/src/http/ssrf.js +311 -0
  56. package/lib/src/mail/MailProvider.d.ts +36 -0
  57. package/lib/src/mail/NodemailerMailProvider.d.ts +26 -0
  58. package/lib/src/managers/AddonsManager.d.ts +691 -0
  59. package/lib/src/managers/AgentTokenManager.d.ts +269 -0
  60. package/lib/src/managers/AssetManager.d.ts +116 -0
  61. package/lib/src/managers/AttachmentManager.d.ts +1032 -0
  62. package/lib/src/managers/AuthManager.d.ts +1257 -0
  63. package/lib/src/managers/BackgroundJobManager.d.ts +434 -0
  64. package/lib/src/managers/BaseManager.d.ts +427 -0
  65. package/lib/src/managers/BaseManager.js +415 -0
  66. package/lib/src/managers/CacheManager.d.ts +159 -0
  67. package/lib/src/managers/CatalogManager.d.ts +235 -0
  68. package/lib/src/managers/CommentManager.d.ts +75 -0
  69. package/lib/src/managers/ConfigurationManager.d.ts +747 -0
  70. package/lib/src/managers/DatabaseManager.d.ts +188 -0
  71. package/lib/src/managers/DatabaseManager.js +590 -0
  72. package/lib/src/managers/EmailManager.d.ts +47 -0
  73. package/lib/src/managers/ExportManager.d.ts +129 -0
  74. package/lib/src/managers/ExportManager.js +420 -0
  75. package/lib/src/managers/FootnoteManager.d.ts +118 -0
  76. package/lib/src/managers/MediaManager.d.ts +279 -0
  77. package/lib/src/managers/MetricsManager.d.ts +89 -0
  78. package/lib/src/managers/NotificationManager.d.ts +165 -0
  79. package/lib/src/managers/OidcManager.d.ts +210 -0
  80. package/lib/src/managers/OrganizationManager.d.ts +107 -0
  81. package/lib/src/managers/PageManager.d.ts +1645 -0
  82. package/lib/src/managers/PersonManager.d.ts +48 -0
  83. package/lib/src/managers/PluginManager.d.ts +179 -0
  84. package/lib/src/managers/PluginManager.js +393 -0
  85. package/lib/src/managers/PolicyEvaluator.d.ts +213 -0
  86. package/lib/src/managers/RenderingManager.d.ts +358 -0
  87. package/lib/src/managers/RoleManager.d.ts +134 -0
  88. package/lib/src/managers/SearchManager.d.ts +402 -0
  89. package/lib/src/managers/ShareManager.d.ts +251 -0
  90. package/lib/src/managers/TemplateManager.d.ts +176 -0
  91. package/lib/src/managers/ThemeManager.d.ts +56 -0
  92. package/lib/src/managers/UserManager.d.ts +480 -0
  93. package/lib/src/managers/ValidationManager.d.ts +426 -0
  94. package/lib/src/managers/VariableManager.d.ts +145 -0
  95. package/lib/src/middleware/csrf.d.ts +3 -0
  96. package/lib/src/parsers/LinkParser.d.ts +457 -0
  97. package/lib/src/parsers/MarkupParser.d.ts +769 -0
  98. package/lib/src/parsers/context/ParseContext.d.ts +314 -0
  99. package/lib/src/parsers/data/emoji-map.d.ts +18 -0
  100. package/lib/src/parsers/dom/DOMBuilder.d.ts +210 -0
  101. package/lib/src/parsers/dom/DOMParser.d.ts +252 -0
  102. package/lib/src/parsers/dom/Tokenizer.d.ts +358 -0
  103. package/lib/src/parsers/dom/WikiDocument.d.ts +272 -0
  104. package/lib/src/parsers/dom/handlers/DOMLinkHandler.d.ts +260 -0
  105. package/lib/src/parsers/dom/handlers/DOMPluginHandler.d.ts +212 -0
  106. package/lib/src/parsers/dom/handlers/DOMVariableHandler.d.ts +171 -0
  107. package/lib/src/parsers/filters/BaseFilter.d.ts +269 -0
  108. package/lib/src/parsers/filters/FilterChain.d.ts +320 -0
  109. package/lib/src/parsers/handlers/BaseSyntaxHandler.d.ts +331 -0
  110. package/lib/src/parsers/handlers/HandlerRegistry.d.ts +225 -0
  111. package/lib/src/parsers/handlers/JSPWikiPreprocessor.d.ts +89 -0
  112. package/lib/src/parsers/handlers/LinkParserHandler.d.ts +80 -0
  113. package/lib/src/parsers/handlers/PluginSyntaxHandler.d.ts +78 -0
  114. package/lib/src/parsers/handlers/WikiFormHandler.d.ts +149 -0
  115. package/lib/src/parsers/handlers/WikiTagHandler.d.ts +125 -0
  116. package/lib/src/parsers/jspwikiTableRow.d.ts +39 -0
  117. package/lib/src/parsers/styleBlockSyntax.d.ts +14 -0
  118. package/lib/src/plugins/types.d.ts +79 -0
  119. package/lib/src/providers/AgentTokenAuthProvider.d.ts +40 -0
  120. package/lib/src/providers/AuthentikBearerAuthProvider.d.ts +75 -0
  121. package/lib/src/providers/BaseAttachmentProvider.d.ts +197 -0
  122. package/lib/src/providers/BaseAuthProvider.d.ts +220 -0
  123. package/lib/src/providers/BaseCacheProvider.d.ts +140 -0
  124. package/lib/src/providers/BaseCredentialsProvider.d.ts +84 -0
  125. package/lib/src/providers/BaseDatabaseProvider.d.ts +22 -0
  126. package/lib/src/providers/BaseDatabaseProvider.js +12 -0
  127. package/lib/src/providers/BaseLoggingProvider.d.ts +68 -0
  128. package/lib/src/providers/BaseLoggingProvider.js +37 -0
  129. package/lib/src/providers/BaseMediaProvider.d.ts +308 -0
  130. package/lib/src/providers/BasePageProvider.d.ts +337 -0
  131. package/lib/src/providers/BaseProvider.d.ts +98 -0
  132. package/lib/src/providers/BaseProvider.js +74 -0
  133. package/lib/src/providers/BaseSearchProvider.d.ts +362 -0
  134. package/lib/src/providers/BasicAttachmentProvider.d.ts +599 -0
  135. package/lib/src/providers/CloudflareAccessAuthProvider.d.ts +72 -0
  136. package/lib/src/providers/FileCredentialsProvider.d.ts +33 -0
  137. package/lib/src/providers/FileJobStateProvider.d.ts +58 -0
  138. package/lib/src/providers/FileLoggingProvider.d.ts +43 -0
  139. package/lib/src/providers/FileLoggingProvider.js +120 -0
  140. package/lib/src/providers/FileOidcAdapter.d.ts +25 -0
  141. package/lib/src/providers/FileSystemMediaProvider.d.ts +403 -0
  142. package/lib/src/providers/LunrSearchProvider.d.ts +280 -0
  143. package/lib/src/providers/MagicLinkAuthProvider.d.ts +125 -0
  144. package/lib/src/providers/NullCacheProvider.d.ts +72 -0
  145. package/lib/src/providers/OidcAuthProvider.d.ts +180 -0
  146. package/lib/src/providers/OidcBearerAuthProvider.d.ts +30 -0
  147. package/lib/src/providers/PasskeyAuthProvider.d.ts +58 -0
  148. package/lib/src/providers/PasswordAuthProvider.d.ts +20 -0
  149. package/lib/src/providers/SqliteDatabaseProvider.d.ts +55 -0
  150. package/lib/src/providers/SqliteDatabaseProvider.js +90 -0
  151. package/lib/src/providers/SqliteJobStateProvider.d.ts +41 -0
  152. package/lib/src/providers/databaseMigrations.d.ts +8 -0
  153. package/lib/src/providers/databaseMigrations.js +47 -0
  154. package/lib/src/providers/jobState.d.ts +99 -0
  155. package/lib/src/providers/lunrQueryToMiniSearch.d.ts +32 -0
  156. package/lib/src/providers/mediaFilenameDate.d.ts +22 -0
  157. package/lib/src/providers/sqliteBackup.d.ts +128 -0
  158. package/lib/src/providers/sqliteBackup.js +365 -0
  159. package/lib/src/providers/sqliteLocation.d.ts +17 -0
  160. package/lib/src/providers/sqliteLocation.js +55 -0
  161. package/lib/src/providers/sqliteMigrations.d.ts +48 -0
  162. package/lib/src/providers/sqliteMigrations.js +72 -0
  163. package/lib/src/rendering/githubAlerts.d.ts +22 -0
  164. package/lib/src/rendering/htmlPolicy.d.ts +76 -0
  165. package/lib/src/rendering/markdownConverter.d.ts +73 -0
  166. package/lib/src/security/PolicyDecisionPoint.d.ts +245 -0
  167. package/lib/src/security/PolicyInformationPoint.d.ts +448 -0
  168. package/lib/src/security/pageActions.d.ts +40 -0
  169. package/lib/src/security/permissions.generated.d.ts +78 -0
  170. package/lib/src/types/Asset.d.ts +414 -0
  171. package/lib/src/types/Catalog.d.ts +61 -0
  172. package/lib/src/types/Comment.d.ts +11 -0
  173. package/lib/src/types/Config.d.ts +388 -0
  174. package/lib/src/types/Organization.d.ts +78 -0
  175. package/lib/src/types/OrganizationProvider.d.ts +38 -0
  176. package/lib/src/types/Page.d.ts +220 -0
  177. package/lib/src/types/Person.d.ts +56 -0
  178. package/lib/src/types/PersonProvider.d.ts +25 -0
  179. package/lib/src/types/Policy.d.ts +139 -0
  180. package/lib/src/types/Policy.js +17 -0
  181. package/lib/src/types/Provider.d.ts +810 -0
  182. package/lib/src/types/Role.d.ts +84 -0
  183. package/lib/src/types/RoleProvider.d.ts +35 -0
  184. package/lib/src/types/Schema.d.ts +425 -0
  185. package/lib/src/types/Share.d.ts +172 -0
  186. package/lib/src/types/Share.js +81 -0
  187. package/lib/src/types/User.d.ts +304 -0
  188. package/lib/src/types/Version.d.ts +189 -0
  189. package/lib/src/types/WikiEngine.d.ts +128 -0
  190. package/lib/src/types/express.d.ts +120 -0
  191. package/lib/src/types/express.js +1 -0
  192. package/lib/src/types/guards.d.ts +78 -0
  193. package/lib/src/types/heic-decode.d.ts +16 -0
  194. package/lib/src/types/index.d.ts +19 -0
  195. package/lib/src/types/linkedom.d.ts +77 -0
  196. package/lib/src/types/markdown-it-plugins.d.ts +21 -0
  197. package/lib/src/utils/DeltaStorage.d.ts +118 -0
  198. package/lib/src/utils/LocaleUtils.d.ts +105 -0
  199. package/lib/src/utils/LocaleUtils.js +294 -0
  200. package/lib/src/utils/PageNameMatcher.d.ts +98 -0
  201. package/lib/src/utils/PathPreflight.d.ts +38 -0
  202. package/lib/src/utils/PathPreflight.js +50 -0
  203. package/lib/src/utils/SectionUtils.d.ts +40 -0
  204. package/lib/src/utils/addonConfigLayer.d.ts +144 -0
  205. package/lib/src/utils/addonConfigLayer.js +382 -0
  206. package/lib/src/utils/addonDatabaseRules.d.ts +25 -0
  207. package/lib/src/utils/addonDatabaseRules.js +57 -0
  208. package/lib/src/utils/addonHost.d.ts +51 -0
  209. package/lib/src/utils/addonHost.js +72 -0
  210. package/lib/src/utils/addonInstaller.d.ts +109 -0
  211. package/lib/src/utils/addonLock.d.ts +37 -0
  212. package/lib/src/utils/addonLock.js +48 -0
  213. package/lib/src/utils/addonPageSync.d.ts +45 -0
  214. package/lib/src/utils/addonProvenance.d.ts +48 -0
  215. package/lib/src/utils/addonTarball.d.ts +41 -0
  216. package/lib/src/utils/addonsPathResolver.d.ts +76 -0
  217. package/lib/src/utils/addonsPathResolver.js +129 -0
  218. package/lib/src/utils/assetMetadataTags.d.ts +66 -0
  219. package/lib/src/utils/atomicWrite.d.ts +28 -0
  220. package/lib/src/utils/auditConfigChange.d.ts +57 -0
  221. package/lib/src/utils/auditEventNames.d.ts +50 -0
  222. package/lib/src/utils/auditEventNames.generated.d.ts +169 -0
  223. package/lib/src/utils/auditEventNames.generated.js +174 -0
  224. package/lib/src/utils/auditEventNames.js +49 -0
  225. package/lib/src/utils/auditEvents.d.ts +265 -0
  226. package/lib/src/utils/auditEvents.js +309 -0
  227. package/lib/src/utils/auditRegistry.d.ts +102 -0
  228. package/lib/src/utils/auditRegistry.js +168 -0
  229. package/lib/src/utils/bip39English.d.ts +2 -0
  230. package/lib/src/utils/configEnvKeys.d.ts +68 -0
  231. package/lib/src/utils/configFiles.d.ts +74 -0
  232. package/lib/src/utils/configFiles.js +150 -0
  233. package/lib/src/utils/delegation.d.ts +48 -0
  234. package/lib/src/utils/deriveUsername.d.ts +21 -0
  235. package/lib/src/utils/explainMediaPath.d.ts +123 -0
  236. package/lib/src/utils/formerTitles.d.ts +69 -0
  237. package/lib/src/utils/frontmatterAccess.d.ts +54 -0
  238. package/lib/src/utils/headlessAdminPassword.d.ts +55 -0
  239. package/lib/src/utils/imageTransform.d.ts +52 -0
  240. package/lib/src/utils/instanceEnvSecret.d.ts +51 -0
  241. package/lib/src/utils/jobSlots.d.ts +43 -0
  242. package/lib/src/utils/keywordNormalizer.d.ts +127 -0
  243. package/lib/src/utils/logger.d.ts +70 -0
  244. package/lib/src/utils/logger.js +106 -0
  245. package/lib/src/utils/magicLinkDeviceState.d.ts +95 -0
  246. package/lib/src/utils/managerUtils.d.ts +40 -0
  247. package/lib/src/utils/migrateLegacyPrivateAttachments.d.ts +15 -0
  248. package/lib/src/utils/orgFilename.d.ts +22 -0
  249. package/lib/src/utils/pageFeature.d.ts +27 -0
  250. package/lib/src/utils/pageFrontmatter.d.ts +21 -0
  251. package/lib/src/utils/pageNotes.d.ts +150 -0
  252. package/lib/src/utils/pageTitleRule.d.ts +37 -0
  253. package/lib/src/utils/pageToArticle.d.ts +59 -0
  254. package/lib/src/utils/pageUrl.d.ts +18 -0
  255. package/lib/src/utils/passwordChange.d.ts +12 -0
  256. package/lib/src/utils/passwordHash.d.ts +60 -0
  257. package/lib/src/utils/permissionCatalog.d.ts +52 -0
  258. package/lib/src/utils/pluginFormatters.d.ts +452 -0
  259. package/lib/src/utils/pluginFormatters.js +714 -0
  260. package/lib/src/utils/privateLinkRewrite.d.ts +42 -0
  261. package/lib/src/utils/privateStoreAccess.d.ts +57 -0
  262. package/lib/src/utils/privateStoreAccess.js +65 -0
  263. package/lib/src/utils/privateStoreCatalogs.d.ts +40 -0
  264. package/lib/src/utils/privateStoreCrypto.d.ts +127 -0
  265. package/lib/src/utils/privateStoreDoor.d.ts +181 -0
  266. package/lib/src/utils/privateStoreExport.d.ts +72 -0
  267. package/lib/src/utils/privateStoreFiles.d.ts +120 -0
  268. package/lib/src/utils/privateStoreMeta.d.ts +64 -0
  269. package/lib/src/utils/privateStoreMigrations.d.ts +37 -0
  270. package/lib/src/utils/privateStorePath.d.ts +259 -0
  271. package/lib/src/utils/privateStorePath.js +436 -0
  272. package/lib/src/utils/privateStoreTakeout.d.ts +76 -0
  273. package/lib/src/utils/privateStoreUnlock.d.ts +175 -0
  274. package/lib/src/utils/proxyClaim.d.ts +59 -0
  275. package/lib/src/utils/proxyClaim.js +30 -0
  276. package/lib/src/utils/redactPrivateNames.d.ts +21 -0
  277. package/lib/src/utils/redactPrivateNames.js +89 -0
  278. package/lib/src/utils/redactSecrets.d.ts +58 -0
  279. package/lib/src/utils/redactSecrets.js +171 -0
  280. package/lib/src/utils/renameLinkRewrite.d.ts +112 -0
  281. package/lib/src/utils/roleGrants.d.ts +35 -0
  282. package/lib/src/utils/safeRedirect.d.ts +32 -0
  283. package/lib/src/utils/schedule.d.ts +54 -0
  284. package/lib/src/utils/secretFileMode.d.ts +17 -0
  285. package/lib/src/utils/seededShippedPages.d.ts +45 -0
  286. package/lib/src/utils/sensitiveValues.d.ts +59 -0
  287. package/lib/src/utils/sensitiveValues.js +106 -0
  288. package/lib/src/utils/sessionEnd.d.ts +12 -0
  289. package/lib/src/utils/sessionGeneration.d.ts +24 -0
  290. package/lib/src/utils/sessionIdle.d.ts +41 -0
  291. package/lib/src/utils/sessionLimits.d.ts +68 -0
  292. package/lib/src/utils/shareLockbox.d.ts +64 -0
  293. package/lib/src/utils/sigstoreTrustedRoot.d.ts +33 -0
  294. package/lib/src/utils/sniffMime.d.ts +21 -0
  295. package/lib/src/utils/storeSearchIndex.d.ts +75 -0
  296. package/lib/src/utils/subjectMayDo.d.ts +21 -0
  297. package/lib/src/utils/systemCategoryRules.d.ts +30 -0
  298. package/lib/src/utils/systemCategoryRules.js +41 -0
  299. package/lib/src/utils/userCreateError.d.ts +62 -0
  300. package/lib/src/utils/username.d.ts +53 -0
  301. package/lib/src/utils/vaultUrlRewrite.d.ts +27 -0
  302. package/lib/src/utils/version.d.ts +84 -0
  303. package/lib/src/utils/videoFrame.d.ts +21 -0
  304. package/package.json +54 -3
@@ -0,0 +1,457 @@
1
+ /**
2
+ * LinkParser - Centralized link parsing for ngdpbase
3
+ *
4
+ * Inspired by JSPWiki's link parsing implementation, this class provides
5
+ * a centralized, flexible, and maintainable approach to parsing various
6
+ * types of links in wiki content.
7
+ *
8
+ * Supports the following link formats:
9
+ * - [PageName] - Simple internal wiki links
10
+ * - [DisplayText|Target] - Links with custom display text
11
+ * - [DisplayText|Target|attributes] - Links with custom attributes
12
+ *
13
+ * Features:
14
+ * - Centralized parsing logic to reduce brittle code
15
+ * - Security-focused attribute validation
16
+ * - Support for internal wiki links, external links, and InterWiki links
17
+ * - Extensible architecture for future link types
18
+ * - Comprehensive error handling and validation
19
+ *
20
+ * @class LinkParser
21
+ *
22
+ * @property {LinkParserOptions} options - Parser configuration options
23
+ * @property {Set<string>} pageNames - Cache of available page names
24
+ * @property {PageNameMatcher|null} pageNameMatcher - Page name matching utility
25
+ * @property {Map<string, InterWikiSiteConfig>} interWikiSites - InterWiki site configurations
26
+ * @property {RegExp} linkPattern - Regular expression for link matching
27
+ *
28
+ * @see {@link PageNameMatcher} for fuzzy page matching
29
+ * @see {@link RenderingManager} for usage
30
+ *
31
+ * @example
32
+ * const linkParser = new LinkParser();
33
+ * linkParser.setPageNames(['Main', 'Help', 'About']);
34
+ * const html = linkParser.parseLinks('[Main] and [Help|Documentation]');
35
+ *
36
+ * @author ngdpbase
37
+ * @version 1.0.0
38
+ * @see https://github.com/jwilleke/ngdpbase/issues/75
39
+ */
40
+ import PageNameMatcher from '../utils/PageNameMatcher.js';
41
+ /**
42
+ * A bracket that is not escaped: preceded by an even number of backslashes,
43
+ * none included (#1480). CommonMark's `\[` is a literal `[`, so it is not
44
+ * a link, a variable or a plugin, for the renderer, the link graph or the
45
+ * rename rewriter alike. `\\[` — an escaped backslash — still opens one.
46
+ * A lookbehind, so it consumes nothing and match offsets are unchanged.
47
+ */
48
+ export declare const UNESCAPED_BRACKET = "(?<=(?:^|[^\\\\])(?:\\\\\\\\)*)";
49
+ /**
50
+ * Not a task-list checkbox (#1476, operator: task lists are supported): a
51
+ * `[ ]`, `[x]` or `[X]` right after a list marker (`-`, `*`, `+`, `1.`,
52
+ * `1)`) at the start of a line, followed by a space. GitHub's task lists —
53
+ * markdown-it-task-lists renders them — and never a link to a page named
54
+ * "x". A lookahead, so it consumes nothing. Needs the `m` flag for `^`, so it
55
+ * spells the line start as `(?:^|\n)` instead.
56
+ */
57
+ export declare const NOT_TASK_MARKER = "(?!(?<=(?:^|\\n)[ \\t]*(?:[-*+]|\\d+[.)])[ \\t]+)\\[[ xX]\\][ \\t])";
58
+ /**
59
+ * Not a GitHub alert marker (#1493): `[!NOTE]`, `[!TIP]`, `[!IMPORTANT]`,
60
+ * `[!WARNING]` or `[!CAUTION]` alone on a blockquote's line, which the page
61
+ * profile renders as an alert box — never a link to a page named "!NOTE". A
62
+ * lookahead, so it consumes nothing; spells the line start as `(?:^|\n)`.
63
+ */
64
+ export declare const NOT_ALERT_MARKER = "(?!(?<=(?:^|\\n)[ \\t]*(?:>[ \\t]?)+[ \\t]*)\\[!(?:NOTE|TIP|IMPORTANT|WARNING|CAUTION)\\][ \\t]*(?:\\n|$))";
65
+ /**
66
+ * The wiki link syntax, as a source string: `[text]`, `[text|target]` or
67
+ * `[text|target|attributes]`. The trailing `(?!\()` skips `[text](url)` —
68
+ * that is a markdown link, and its bracket text is not a wiki link target.
69
+ *
70
+ * Exported as a source string rather than a RegExp because the compiled form
71
+ * needs the `g` flag, and a shared global RegExp carries `lastIndex` between
72
+ * callers. Use {@link wikiLinkPattern} to get a fresh one.
73
+ *
74
+ * Shared so that anything reasoning about link targets — rendering, the
75
+ * link graph, the rename rewriter (#1094) — agrees with the parser about what
76
+ * a link *is*. A second copy of this pattern is a second answer waiting to
77
+ * drift from this one.
78
+ */
79
+ export declare const WIKI_LINK_PATTERN_SOURCE = "(?<=(?:^|[^\\\\])(?:\\\\\\\\)*)(?!(?<=(?:^|\\n)[ \\t]*(?:[-*+]|\\d+[.)])[ \\t]+)\\[[ xX]\\][ \\t])(?!(?<=(?:^|\\n)[ \\t]*(?:>[ \\t]?)+[ \\t]*)\\[!(?:NOTE|TIP|IMPORTANT|WARNING|CAUTION)\\][ \\t]*(?:\\n|$))\\[([^|\\]]+)(?:\\|([^|\\]]+))?(?:\\|([^\\]]+))?\\](?!\\()";
80
+ /** A reference label as CommonMark matches it: case-insensitive, inner whitespace collapsed. */
81
+ export declare function referenceLabel(raw: string): string;
82
+ /**
83
+ * Where the page's reference links are (#1491): each definition's `[label]`,
84
+ * and each use of a defined label — `[text][label]` (no space between),
85
+ * `[label][]` and `[label]`. markdown-it renders them and hides the
86
+ * definitions; every other `[…]` stays a wiki link. A page that defines
87
+ * nothing has no ranges, so it renders exactly as before.
88
+ */
89
+ export declare function referenceLinkRanges(content: string): Array<[number, number]>;
90
+ /**
91
+ * The link text of every Markdown link whose text holds brackets of its own
92
+ * (#1708): `[a [b] c](url)`. CommonMark allows balanced brackets there, and
93
+ * markdown-it renders them, but the wiki link syntax took the inner `[b`
94
+ * first and split the link. Each range runs from the opening `[` to its
95
+ * matching `]`, which is followed by `(`.
96
+ *
97
+ * Every reader of wiki links skips a match that starts inside one of these
98
+ * ranges, so the renderer, the link graph and the rename rewriter agree that
99
+ * the brackets are link text. An escaped bracket (#1480) is not counted, and
100
+ * link text that starts with NCM's `[[` escape is left to it. One
101
+ * pass with a stack, so a long page costs no more than its length.
102
+ *
103
+ * Reference links (#1491) are Markdown link text too: `[text][label]`,
104
+ * `[label][]` and `[label]` when the page defines `label`, and the
105
+ * definition line's `[label]` itself. See {@link referenceLinkRanges}.
106
+ */
107
+ export declare function markdownLinkTextRanges(content: string): Array<[number, number]>;
108
+ /** Whether `offset` falls inside one of `ranges`, its opening bracket included. */
109
+ export declare function insideMarkdownLinkText(ranges: ReadonlyArray<[number, number]>, offset: number): boolean;
110
+ /** A fresh global RegExp for the wiki link syntax. Never share one. */
111
+ export declare function wikiLinkPattern(): RegExp;
112
+ /**
113
+ * Target shapes that are NOT internal wiki page names. Non-global, so these
114
+ * are stateless and safe to share.
115
+ */
116
+ export declare const LINK_URL_PATTERNS: {
117
+ readonly external: RegExp;
118
+ readonly email: RegExp;
119
+ readonly anchor: RegExp;
120
+ readonly absolute: RegExp;
121
+ };
122
+ /** `Site:path` — an InterWiki reference, not a local page. */
123
+ export declare const INTERWIKI_PATTERN: RegExp;
124
+ /**
125
+ * Default CSS classes for different link types
126
+ */
127
+ export interface DefaultClasses {
128
+ /** Class for internal wiki links */
129
+ internal: string;
130
+ /** Class for external links */
131
+ external: string;
132
+ /** Class for InterWiki links */
133
+ interwiki: string;
134
+ /** Class for red links (non-existent pages) */
135
+ redlink: string;
136
+ }
137
+ /**
138
+ * URL pattern definitions for link type detection
139
+ */
140
+ export interface UrlPatterns {
141
+ /** Pattern for external HTTP/HTTPS URLs */
142
+ external: RegExp;
143
+ /** Pattern for email links */
144
+ email: RegExp;
145
+ /** Pattern for anchor links */
146
+ anchor: RegExp;
147
+ /** Pattern for absolute paths */
148
+ absolute: RegExp;
149
+ }
150
+ /**
151
+ * Security configuration options
152
+ */
153
+ export interface SecurityOptions {
154
+ /** Validate URLs for safety */
155
+ validateUrls: boolean;
156
+ /** Sanitize HTML attributes */
157
+ sanitizeAttributes: boolean;
158
+ /** Prevent XSS attacks */
159
+ preventXSS: boolean;
160
+ }
161
+ /**
162
+ * LinkParser configuration options
163
+ */
164
+ export interface LinkParserOptions {
165
+ /** Allowed HTML attributes for links */
166
+ allowedAttributes: string[];
167
+ /** Default CSS classes for link types */
168
+ defaultClasses: DefaultClasses;
169
+ /** URL patterns for validation */
170
+ urlPatterns: UrlPatterns;
171
+ /** InterWiki site pattern */
172
+ interWikiPattern: RegExp;
173
+ /** Security settings */
174
+ security: SecurityOptions;
175
+ }
176
+ /**
177
+ * InterWiki site configuration
178
+ */
179
+ export interface InterWikiSiteConfig {
180
+ /** URL template with %s placeholder for page name */
181
+ url: string;
182
+ /** Description of the InterWiki site */
183
+ description?: string;
184
+ /** Whether to open links in new window */
185
+ openInNewWindow?: boolean;
186
+ }
187
+ /**
188
+ * HTML attributes for links
189
+ */
190
+ export interface LinkAttributes {
191
+ [key: string]: string;
192
+ }
193
+ /**
194
+ * Parsing context for link generation
195
+ */
196
+ export interface ParserContext {
197
+ /** Current page name */
198
+ pageName?: string;
199
+ /** Additional context data */
200
+ [key: string]: unknown;
201
+ }
202
+ /**
203
+ * Parser statistics
204
+ */
205
+ export interface ParserStats {
206
+ /** Number of page names in cache */
207
+ pageNamesCount: number;
208
+ /** Number of InterWiki sites configured */
209
+ interWikiSitesCount: number;
210
+ /** Number of allowed attributes */
211
+ allowedAttributes: number;
212
+ /** Whether security features are enabled */
213
+ securityEnabled: boolean;
214
+ }
215
+ /**
216
+ * Link data structure for Link constructor
217
+ */
218
+ export interface LinkData {
219
+ /** Original text from content */
220
+ originalText?: string;
221
+ /** Display text for the link */
222
+ text?: string;
223
+ /** Target page or URL */
224
+ target?: string | null;
225
+ /** Raw attributes string */
226
+ attributesString?: string | null;
227
+ /** Parsed attributes object */
228
+ attributes?: LinkAttributes;
229
+ /** Start index in content */
230
+ startIndex?: number;
231
+ /** End index in content */
232
+ endIndex?: number;
233
+ }
234
+ /**
235
+ * Link information object returned by toObject()
236
+ */
237
+ export interface LinkInfo {
238
+ /** Original text from content */
239
+ originalText: string;
240
+ /** Display text for the link */
241
+ text: string;
242
+ /** Target page or URL */
243
+ target: string | null;
244
+ /** Parsed attributes */
245
+ attributes: LinkAttributes;
246
+ /** Whether this is a simple link */
247
+ isSimple: boolean;
248
+ /** Whether the link has attributes */
249
+ hasAttributes: boolean;
250
+ }
251
+ /**
252
+ * Link type enumeration
253
+ */
254
+ export type LinkType = 'internal' | 'external' | 'interwiki' | 'email' | 'anchor';
255
+ /**
256
+ * Main LinkParser class
257
+ */
258
+ export declare class LinkParser {
259
+ /** Parser configuration options */
260
+ options: LinkParserOptions;
261
+ /** Cache of available page names */
262
+ pageNames: Set<string>;
263
+ /** Page name matcher for fuzzy matching */
264
+ pageNameMatcher: PageNameMatcher | null;
265
+ /** InterWiki sites configuration */
266
+ interWikiSites: Map<string, InterWikiSiteConfig>;
267
+ /** Link pattern regex */
268
+ linkPattern: RegExp;
269
+ /**
270
+ * Create a new LinkParser instance
271
+ *
272
+ * @constructor
273
+ * @param {Partial<LinkParserOptions>} [options={}] - Configuration options
274
+ */
275
+ constructor(options?: Partial<LinkParserOptions>);
276
+ /**
277
+ * Set the list of existing wiki page names for link validation
278
+ * @param {string[]} pageNames - Array of page names
279
+ * @param {boolean} matchEnglishPlurals - Enable plural matching (default: true)
280
+ * @param {boolean} matchCamelCase - Enable CamelCase matching (default: false)
281
+ */
282
+ setPageNames(pageNames: string[], matchEnglishPlurals?: boolean, matchCamelCase?: boolean): void;
283
+ /**
284
+ * Add a page name to the known pages
285
+ * @param {string} pageName - Page name to add
286
+ */
287
+ addPageName(pageName: string): void;
288
+ /**
289
+ * Set InterWiki sites configuration
290
+ * @param {Map<string, InterWikiSiteConfig> | Record<string, InterWikiSiteConfig>} sites - InterWiki sites configuration
291
+ */
292
+ setInterWikiSites(sites: Map<string, InterWikiSiteConfig> | Record<string, InterWikiSiteConfig>): void;
293
+ /**
294
+ * Parse all links in the given content
295
+ * @param {string} content - Content containing wiki links
296
+ * @param {ParserContext} context - Parsing context (pageName, etc.)
297
+ * @returns {string} Content with links converted to HTML
298
+ */
299
+ parseLinks(content: string, context?: ParserContext): string;
300
+ /**
301
+ * Find all links in the content
302
+ * @param {string} content - Content to search
303
+ * @returns {Link[]} Array of Link objects
304
+ */
305
+ findLinks(content: string): Link[];
306
+ /**
307
+ * Parse link attributes from attribute string
308
+ * @param {string} attributeString - String containing attributes
309
+ * @returns {LinkAttributes} Parsed attributes object
310
+ */
311
+ parseAttributes(attributeString: string): LinkAttributes;
312
+ /**
313
+ * Generate HTML for a link
314
+ * @param {Link} link - Link object to process
315
+ * @param {ParserContext} context - Parsing context
316
+ * @returns {string} HTML link
317
+ */
318
+ generateLinkHtml(link: Link, context: ParserContext): string;
319
+ /**
320
+ * Determine the type of link
321
+ * @param {Link} link - Link object
322
+ * @returns {LinkType} Link type
323
+ */
324
+ determineLinkType(link: Link): LinkType;
325
+ /**
326
+ * Generate HTML for internal wiki links
327
+ * @param {Link} link - Link object
328
+ * @param {ParserContext} _context - Parsing context (unused)
329
+ * @returns {string} HTML link
330
+ */
331
+ generateInternalLink(link: Link, _context: ParserContext): string;
332
+ /**
333
+ * Generate HTML for external links
334
+ * @param {Link} link - Link object
335
+ * @param {ParserContext} _context - Parsing context (unused)
336
+ * @returns {string} HTML link
337
+ */
338
+ generateExternalLink(link: Link, _context: ParserContext): string;
339
+ /**
340
+ * Generate HTML for InterWiki links
341
+ * @param {Link} link - Link object
342
+ * @param {ParserContext} _context - Parsing context (unused)
343
+ * @returns {string} HTML link
344
+ */
345
+ generateInterWikiLink(link: Link, _context: ParserContext): string;
346
+ /**
347
+ * Generate HTML for email links
348
+ * @param {Link} link - Link object
349
+ * @param {ParserContext} _context - Parsing context (unused)
350
+ * @returns {string} HTML link
351
+ */
352
+ generateEmailLink(link: Link, _context: ParserContext): string;
353
+ /**
354
+ * Generate HTML for anchor links
355
+ * @param {Link} link - Link object
356
+ * @param {ParserContext} _context - Parsing context (unused)
357
+ * @returns {string} HTML link
358
+ */
359
+ generateAnchorLink(link: Link, _context: ParserContext): string;
360
+ /**
361
+ * Build HTML attribute string
362
+ * @param {LinkAttributes} customAttributes - Custom attributes from link
363
+ * @param {Record<string, string | undefined>} defaultAttributes - Default attributes
364
+ * @returns {string} HTML attribute string
365
+ */
366
+ buildAttributeString(customAttributes?: LinkAttributes, defaultAttributes?: Record<string, string | undefined>): string;
367
+ /**
368
+ * Validate URL safety
369
+ * @param {string} url - URL to validate
370
+ * @returns {boolean} True if URL is safe
371
+ */
372
+ isUrlSafe(url: string): boolean;
373
+ /**
374
+ * Sanitize style attribute value
375
+ * @param {string} style - Style value
376
+ * @returns {string} Sanitized style
377
+ */
378
+ sanitizeStyleAttribute(style: string): string;
379
+ /**
380
+ * Sanitize attribute value to prevent XSS
381
+ * @param {string} value - Attribute value
382
+ * @returns {string} Sanitized value
383
+ */
384
+ sanitizeAttributeValue(value: string): string;
385
+ /**
386
+ * Escape HTML characters
387
+ * @param {string} text - Text to escape
388
+ * @returns {string} Escaped text
389
+ */
390
+ escapeHtml(text: string): string;
391
+ /**
392
+ * Get parser statistics
393
+ * @returns {ParserStats} Parser statistics
394
+ */
395
+ getStats(): ParserStats;
396
+ }
397
+ /**
398
+ * Link class representing a parsed link
399
+ */
400
+ export declare class Link {
401
+ /** Original text from content */
402
+ originalText: string;
403
+ /** Display text for the link */
404
+ text: string;
405
+ /** Target page or URL */
406
+ target: string | null;
407
+ /** Raw attributes string */
408
+ attributesString: string | null;
409
+ /** Parsed attributes object */
410
+ attributes: LinkAttributes;
411
+ /** Start index in content */
412
+ startIndex: number;
413
+ /** End index in content */
414
+ endIndex: number;
415
+ /**
416
+ * Create a new Link instance
417
+ * @param {LinkData} data - Link data
418
+ */
419
+ constructor(data?: LinkData);
420
+ /**
421
+ * Check if this is a simple link (no target specified)
422
+ * @returns {boolean} True if simple link
423
+ */
424
+ isSimple(): boolean;
425
+ /**
426
+ * Get the effective target (target or text if no target)
427
+ * @returns {string} Effective target
428
+ */
429
+ getEffectiveTarget(): string;
430
+ /**
431
+ * Check if link has attributes
432
+ * @returns {boolean} True if has attributes
433
+ */
434
+ hasAttributes(): boolean;
435
+ /**
436
+ * Get attribute value by name
437
+ * @param {string} name - Attribute name
438
+ * @returns {string | undefined} Attribute value
439
+ */
440
+ getAttribute(name: string): string | undefined;
441
+ /**
442
+ * Set attribute value
443
+ * @param {string} name - Attribute name
444
+ * @param {string} value - Attribute value
445
+ */
446
+ setAttribute(name: string, value: string): void;
447
+ /**
448
+ * Get link information as object
449
+ * @returns {LinkInfo} Link information
450
+ */
451
+ toObject(): LinkInfo;
452
+ }
453
+ declare const _default: {
454
+ LinkParser: typeof LinkParser;
455
+ Link: typeof Link;
456
+ };
457
+ export default _default;