@page2ai/core 0.1.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 (55) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +128 -0
  3. package/dist/browser/browser-adapter.d.ts +15 -0
  4. package/dist/browser/browser-adapter.d.ts.map +1 -0
  5. package/dist/browser/browser-adapter.js +74 -0
  6. package/dist/browser/browser-adapter.js.map +1 -0
  7. package/dist/browser/index.d.ts +3 -0
  8. package/dist/browser/index.d.ts.map +1 -0
  9. package/dist/browser/index.js +7 -0
  10. package/dist/browser/index.js.map +1 -0
  11. package/dist/node/basic-renderer.d.ts +9 -0
  12. package/dist/node/basic-renderer.d.ts.map +1 -0
  13. package/dist/node/basic-renderer.js +347 -0
  14. package/dist/node/basic-renderer.js.map +1 -0
  15. package/dist/node/fetch-protected.d.ts +19 -0
  16. package/dist/node/fetch-protected.d.ts.map +1 -0
  17. package/dist/node/fetch-protected.js +92 -0
  18. package/dist/node/fetch-protected.js.map +1 -0
  19. package/dist/node/index.d.ts +28 -0
  20. package/dist/node/index.d.ts.map +1 -0
  21. package/dist/node/index.js +136 -0
  22. package/dist/node/index.js.map +1 -0
  23. package/dist/node/linkedom-adapter.d.ts +17 -0
  24. package/dist/node/linkedom-adapter.d.ts.map +1 -0
  25. package/dist/node/linkedom-adapter.js +112 -0
  26. package/dist/node/linkedom-adapter.js.map +1 -0
  27. package/dist/node/ssrf-guard.d.ts +6 -0
  28. package/dist/node/ssrf-guard.d.ts.map +1 -0
  29. package/dist/node/ssrf-guard.js +73 -0
  30. package/dist/node/ssrf-guard.js.map +1 -0
  31. package/dist/shared/constants.d.ts +12 -0
  32. package/dist/shared/constants.d.ts.map +1 -0
  33. package/dist/shared/constants.js +164 -0
  34. package/dist/shared/constants.js.map +1 -0
  35. package/dist/shared/md-postprocess.d.ts +18 -0
  36. package/dist/shared/md-postprocess.d.ts.map +1 -0
  37. package/dist/shared/md-postprocess.js +538 -0
  38. package/dist/shared/md-postprocess.js.map +1 -0
  39. package/dist/shared/page-adapter.d.ts +26 -0
  40. package/dist/shared/page-adapter.d.ts.map +1 -0
  41. package/dist/shared/page-adapter.js +15 -0
  42. package/dist/shared/page-adapter.js.map +1 -0
  43. package/dist/shared/profiles.d.ts +6 -0
  44. package/dist/shared/profiles.d.ts.map +1 -0
  45. package/dist/shared/profiles.js +185 -0
  46. package/dist/shared/profiles.js.map +1 -0
  47. package/dist/shared/types.d.ts +265 -0
  48. package/dist/shared/types.d.ts.map +1 -0
  49. package/dist/shared/types.js +4 -0
  50. package/dist/shared/types.js.map +1 -0
  51. package/dist/shared/utils.d.ts +21 -0
  52. package/dist/shared/utils.d.ts.map +1 -0
  53. package/dist/shared/utils.js +184 -0
  54. package/dist/shared/utils.js.map +1 -0
  55. package/package.json +81 -0
@@ -0,0 +1,164 @@
1
+ // Page2AI default configuration and shared constants.
2
+ // Values ported verbatim from Rev-032v2 prototype (Sections 3, 5, 16, 22).
3
+ // Indent constant: 3 spaces for CommonMark-compatible nested lists.
4
+ export const INDENT = ' ';
5
+ export const DEFAULTS = {
6
+ fileExtension: 'md',
7
+ interactionMode: 'safe-tabs-and-details',
8
+ lazyLoadMode: 'safe',
9
+ lazyScrollSteps: 8,
10
+ lazySafeViewports: 3,
11
+ lazyScrollWaitMs: 200,
12
+ lazyScrollExtraIdleMs: 250,
13
+ restoreScrollAfterExport: true,
14
+ tabPanelStrategy: 'balanced',
15
+ visualMarkersMode: 'important-only',
16
+ minLargeFontPx: 22,
17
+ minBoldWeight: 600,
18
+ outputMode: 'clean',
19
+ officialMarkdownMode: 'trusted-docs-only',
20
+ trustedOfficialMarkdownHosts: [
21
+ 'developers.openai.com', 'platform.openai.com',
22
+ 'platform.claude.com', 'docs.anthropic.com',
23
+ 'code.claude.com',
24
+ 'docs.github.com',
25
+ 'docs.vercel.com',
26
+ 'supabase.com',
27
+ 'docs.stripe.com',
28
+ 'langchain-ai.github.io',
29
+ ],
30
+ officialMarkdownMinRatio: 0.4,
31
+ extractJsonLd: false,
32
+ extractOpenGraph: false,
33
+ extractMicrodata: false,
34
+ structuredDataPosition: 'before-content',
35
+ extractInternalState: false,
36
+ internalStateMaskingEnabled: true,
37
+ traverseShadowDom: true,
38
+ extractIframeSources: true,
39
+ emitImageSrcsetCandidatesComment: false,
40
+ typeLinkedImages: false,
41
+ includeHiddenMeaningfulText: false,
42
+ maxTextNodeLength: 5000,
43
+ includeVisibleAriaHiddenText: true,
44
+ minAriaHiddenTextLength: 1,
45
+ longAriaHiddenThreshold: 30,
46
+ preserveCodeWhitespace: true,
47
+ includePseudoBeforeText: true,
48
+ includePseudoAfterText: false,
49
+ extractTabs: true,
50
+ tabClickWaitMs: 700,
51
+ tabSettleMs: 250,
52
+ maxTabGroups: 30,
53
+ maxButtonsPerTabGroup: 16,
54
+ minTabButtonTextLength: 1,
55
+ maxTabButtonTextLength: 100,
56
+ maxTabPanelChars: 25000,
57
+ skipCapturedTabPanelsInMainRender: true,
58
+ abortTabCaptureOnUrlDrift: true,
59
+ tabFallbackMaxBodyRatio: 0.5,
60
+ perTabHardTimeoutMs: 5000,
61
+ tabPhaseBudgetMs: 60000,
62
+ dropdownClickWaitMs: 700,
63
+ dropdownSettleMs: 120,
64
+ maxDropdownButtons: 40,
65
+ maxDropdownPanelChars: 12000,
66
+ skipCapturedDropdownPanelsInMainRender: true,
67
+ restoreDetailsAfterExport: true,
68
+ enableFailSafeDownload: true,
69
+ qualityCheckEnabled: true,
70
+ minMainRenderToBodyRatio: 0.30,
71
+ maxMainRenderToBodyRatio: 2.50,
72
+ dedupeConsecutiveDuplicates: true,
73
+ minConsecutiveDuplicatesToCollapse: 3,
74
+ collapseShortAdjacentLines: false,
75
+ shortLineCollapseMaxChars: 50,
76
+ cleanupPunctuation: true,
77
+ dedupeAdjacentLinks: true,
78
+ aggressiveCleanup: false,
79
+ aggressiveCleanupMaxLinkTextLength: 500,
80
+ aggressiveCleanupHtmlTagPattern: /<(img|svg|picture|noscript|iframe|object|embed|video|audio)\b/i,
81
+ stripNoisyAttributesInLinkText: false,
82
+ filterDecorativeImages: false,
83
+ decorativeImageFilenamePatterns: [
84
+ /\bspacer\b/i, /\bblank\b/i, /\btransparent\b/i, /\bpixel\b/i,
85
+ /\bplaceholder\b/i, /\bdivider\b/i, /\b1px\b/i, /\bdot\b/i,
86
+ /\bshim\b/i, /\bclear\b/i,
87
+ ],
88
+ filterDecorativeAlt: false,
89
+ decorativeAltPattern: /^(иконка|icon|logo|figure|picture|логотип|значок|image)\b/i,
90
+ decorativeAltMaxWords: 3,
91
+ suppressRepeatedImages: false,
92
+ suppressRepeatedImageThreshold: 3,
93
+ filterWordPressNoiseLinks: false,
94
+ wordpressNoiseLinkPatterns: [
95
+ /^#$/,
96
+ /^javascript:/i,
97
+ /#wp-toolbar\b/i,
98
+ /#wpadminbar\b/i,
99
+ /#search-header\b/i,
100
+ /#respond\b/i,
101
+ /#comments\b/i,
102
+ ],
103
+ compactLinkLabels: false,
104
+ maxLinkLabelChars: 80,
105
+ maxHiddenFormValueLength: 60,
106
+ maskFormFieldNamePatterns: [
107
+ /nonce/i, /csrf/i, /xsrf/i, /turnstile/i, /captcha/i, /recaptcha/i,
108
+ /authenticity[_-]?token/i, /^_token$/i, /requestverificationtoken/i, /antiforgery/i,
109
+ ],
110
+ emitAppendix: true,
111
+ emitNoscriptFallback: true,
112
+ noscriptOnlyIfMainRenderShort: true,
113
+ detectBadges: true,
114
+ maxBadgeTextLength: 30,
115
+ badgeClassPattern: /\b(badge|tag|chip|pill|label)\b/i,
116
+ unsafeTabButtonTextPatterns: [
117
+ /submit/i, /send/i, /subscribe/i, /unsubscribe/i, /sign\s*up/i, /sign\s*in/i,
118
+ /log\s*in/i, /login/i, /sign\s*out/i, /logout/i, /try\s*now/i, /get\s*started/i,
119
+ /contact/i, /book\s*(a\s*)?demo/i, /buy/i, /purchase/i, /\border\b/i,
120
+ /checkout/i, /pay/i, /delete/i, /remove/i, /accept/i, /reject/i, /confirm/i,
121
+ /cancel/i, /\bsave\b/i, /update/i, /cookie/i, /open\s*menu/i, /close/i,
122
+ /удали/i, /удалить/i, /удалит/i, /оплат/i, /купи/i, /купить/i, /заказ/i,
123
+ /заказать/i, /подпис/i, /отписат/i, /войти/i, /выйти/i, /\bлогин\b/i,
124
+ /регистрац/i, /зарегистр/i, /отправ/i, /отмен/i, /подтвер/i, /сохран/i,
125
+ /закрыть/i, /добавить/i, /создать/i, /начать/i, /продолжит/i, /приня/i,
126
+ /отклон/i, /контакт/i,
127
+ /прыняць/i, /выдалі/i, /закрыц/i, /купіц/i, /заплац/i, /адправ/i,
128
+ /надісла/i, /видали/i, /зареєстру/i, /закри/i, /сплат/i, /придба/i,
129
+ ],
130
+ skipSelectors: [
131
+ 'script', 'style', 'noscript', 'template', 'svg', 'canvas',
132
+ 'object', 'embed', '[data-ai-exporter-skip="true"]',
133
+ ],
134
+ };
135
+ export const BLOCK_TAGS = new Set([
136
+ 'ADDRESS', 'ARTICLE', 'ASIDE', 'BLOCKQUOTE', 'DETAILS', 'DIALOG',
137
+ 'DD', 'DIV', 'DL', 'DT', 'FIELDSET', 'FIGCAPTION', 'FIGURE',
138
+ 'FOOTER', 'FORM', 'HEADER', 'HR', 'LI', 'MAIN', 'NAV', 'OL',
139
+ 'P', 'PRE', 'SECTION', 'TABLE', 'TBODY', 'TD', 'TFOOT', 'TH',
140
+ 'THEAD', 'TR', 'UL',
141
+ ]);
142
+ export const INLINE_FORMATTING_TAGS = new Set([
143
+ 'A', 'ABBR', 'B', 'BDI', 'BDO', 'BR', 'CITE', 'CODE', 'DATA',
144
+ 'DFN', 'EM', 'I', 'KBD', 'MARK', 'Q', 'S', 'SAMP', 'SMALL',
145
+ 'SPAN', 'STRONG', 'SUB', 'SUP', 'TIME', 'U', 'VAR', 'WBR',
146
+ ]);
147
+ export const SOCIAL_DOMAIN_RE = /^https?:\/\/(?:www\.|m\.)?([a-z0-9.-]*?(?:t\.me|telegram\.me|wa\.me|api\.whatsapp\.com|whatsapp\.com|vk\.com|facebook\.com|fb\.com|instagram\.com|youtube\.com|youtu\.be|linkedin\.com|twitter\.com|x\.com|tiktok\.com|threads\.net|max\.ru|ok\.ru|pinterest\.[a-z.]+|reddit\.com|github\.com|discord\.gg|discord\.com|slideshare\.net))/i;
148
+ export const PII_KEY_PATTERNS = [
149
+ /^(?:.*_)?(?:token|tokens)$/i, /^(?:.*_)?password$/i, /^(?:.*_)?secret$/i,
150
+ /^(?:.*_)?api[_-]?key$/i, /^(?:.*_)?session$/i, /^(?:.*_)?authorization$/i,
151
+ /^(?:.*_)?cookie$/i, /^(?:.*_)?jwt$/i, /^(?:.*_)?refresh[_-]?token$/i,
152
+ /^(?:.*_)?access[_-]?token$/i, /^(?:.*_)?email$/i, /^(?:.*_)?phone$/i,
153
+ /^(?:.*_)?credit[_-]?card$/i, /^(?:.*_)?ssn$/i,
154
+ ];
155
+ export const PII_VALUE_PATTERNS = [
156
+ { name: 'email', re: /\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b/g },
157
+ { name: 'jwt', re: /\beyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\b/g },
158
+ { name: 'bearer', re: /\bBearer\s+[A-Za-z0-9._\-+/=]{8,}\b/gi },
159
+ { name: 'sk-key', re: /\bsk-[A-Za-z0-9_-]{16,}\b/g },
160
+ { name: 'pk-key', re: /\bpk_[A-Za-z0-9_-]{16,}\b/g },
161
+ { name: 'us-phone', re: /\b\+?1?[\s.-]?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}\b/g },
162
+ { name: 'intl-phone', re: /\+\d{1,3}[\s.-]?\d{3,4}[\s.-]?\d{3,4}[\s.-]?\d{3,4}\b/g },
163
+ ];
164
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/shared/constants.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { ProgressCallback, ResolvedConfig } from './types.js';
2
+ export interface FenceTracker {
3
+ readonly inFence: boolean;
4
+ check(trimmedLine: string): boolean;
5
+ }
6
+ export declare const createFenceTracker: () => FenceTracker;
7
+ export declare const normalizeMarkdownPreserveCode: (text: string | null | undefined) => string;
8
+ export declare const dedupeConsecutiveDuplicateLines: (text: string, config: Pick<ResolvedConfig, "dedupeConsecutiveDuplicates" | "minConsecutiveDuplicatesToCollapse">) => string;
9
+ export declare const collapseShortAdjacentLines: (text: string, config: Pick<ResolvedConfig, "collapseShortAdjacentLines" | "shortLineCollapseMaxChars">) => string;
10
+ export declare const cleanupPunctuation: (text: string, config: Pick<ResolvedConfig, "cleanupPunctuation">) => string;
11
+ export declare const dedupeAdjacentLinks: (text: string, config: Pick<ResolvedConfig, "dedupeAdjacentLinks">) => string;
12
+ export declare const suppressRepeatedImages: (text: string, config: Pick<ResolvedConfig, "suppressRepeatedImages" | "suppressRepeatedImageThreshold">) => string;
13
+ export declare const compactLinkLabels: (text: string, config: Pick<ResolvedConfig, "compactLinkLabels" | "maxLinkLabelChars">) => string;
14
+ export declare const dedupeRepeatedBlocks: (text: string) => string;
15
+ export declare const dedupeTabPanelDuplicates: (text: string) => string;
16
+ export declare const aggressiveCleanup: (text: string, config: Pick<ResolvedConfig, "aggressiveCleanup" | "aggressiveCleanupMaxLinkTextLength" | "aggressiveCleanupHtmlTagPattern">, progress?: ProgressCallback) => string;
17
+ export declare const postProcessMarkdown: (text: string, config: ResolvedConfig, progress?: ProgressCallback) => string;
18
+ //# sourceMappingURL=md-postprocess.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"md-postprocess.d.ts","sourceRoot":"","sources":["../../src/shared/md-postprocess.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEnE,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,KAAK,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;CACrC;AAED,eAAO,MAAM,kBAAkB,QAAO,YAyBrC,CAAC;AAGF,eAAO,MAAM,6BAA6B,GAAI,MAAM,MAAM,GAAG,IAAI,GAAG,SAAS,KAAG,MA+B/E,CAAC;AAEF,eAAO,MAAM,+BAA+B,GAC1C,MAAM,MAAM,EACZ,QAAQ,IAAI,CAAC,cAAc,EAAE,6BAA6B,GAAG,oCAAoC,CAAC,KACjG,MAkCF,CAAC;AAGF,eAAO,MAAM,0BAA0B,GACrC,MAAM,MAAM,EACZ,QAAQ,IAAI,CAAC,cAAc,EAAE,4BAA4B,GAAG,2BAA2B,CAAC,KACvF,MAqFF,CAAC;AAGF,eAAO,MAAM,kBAAkB,GAC7B,MAAM,MAAM,EACZ,QAAQ,IAAI,CAAC,cAAc,EAAE,oBAAoB,CAAC,KACjD,MA0CF,CAAC;AAGF,eAAO,MAAM,mBAAmB,GAC9B,MAAM,MAAM,EACZ,QAAQ,IAAI,CAAC,cAAc,EAAE,qBAAqB,CAAC,KAClD,MA2DF,CAAC;AAGF,eAAO,MAAM,sBAAsB,GACjC,MAAM,MAAM,EACZ,QAAQ,IAAI,CAAC,cAAc,EAAE,wBAAwB,GAAG,gCAAgC,CAAC,KACxF,MAwCF,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,MAAM,MAAM,EACZ,QAAQ,IAAI,CAAC,cAAc,EAAE,mBAAmB,GAAG,mBAAmB,CAAC,KACtE,MAwBF,CAAC;AAIF,eAAO,MAAM,oBAAoB,GAAI,MAAM,MAAM,KAAG,MAkDnD,CAAC;AAGF,eAAO,MAAM,wBAAwB,GAAI,MAAM,MAAM,KAAG,MA6FvD,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,MAAM,MAAM,EACZ,QAAQ,IAAI,CACV,cAAc,EACd,mBAAmB,GAAG,oCAAoC,GAAG,iCAAiC,CAC/F,EACD,WAAW,gBAAgB,KAC1B,MAgCF,CAAC;AAGF,eAAO,MAAM,mBAAmB,GAC9B,MAAM,MAAM,EACZ,QAAQ,cAAc,EACtB,WAAW,gBAAgB,KAC1B,MAYF,CAAC"}