@lynxflow/seo-engine 2.8.0 → 3.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +661 -0
- package/NOTICE +18 -0
- package/README.md +78 -10
- package/bin/lynx-audit +338 -0
- package/dist/ab-experiments-engine.d.ts +55 -0
- package/dist/ab-testing-bandit.d.ts +51 -0
- package/dist/ab-testing-engine.d.ts +70 -0
- package/dist/ab-testing-sequential.d.ts +59 -0
- package/dist/ab-testing-significance.d.ts +67 -0
- package/dist/account-centric-abm.d.ts +73 -0
- package/dist/ad-cost-roas.d.ts +120 -0
- package/dist/ad-intelligence-cro.d.ts +41 -9
- package/dist/ad-matrix-multiplier.d.ts +36 -0
- package/dist/ad-remix-engine.d.ts +79 -0
- package/dist/advanced-retention.d.ts +77 -0
- package/dist/advanced-segmentation.d.ts +117 -0
- package/dist/aeo-geo-engine.d.ts +366 -0
- package/dist/agent-skills-registry.d.ts +29 -0
- package/dist/agent-ux-scorer.d.ts +53 -0
- package/dist/agentic-ads-guardrails.d.ts +94 -0
- package/dist/agentic-browsing-auditor.d.ts +65 -0
- package/dist/ai-bots-log-analyzer.d.ts +6 -2
- package/dist/ai-citation-auditor.d.ts +40 -0
- package/dist/ai-citation-tracker.d.ts +53 -0
- package/dist/ai-copilot-client.d.ts +1 -0
- package/dist/ai-safety-auditor.d.ts +67 -0
- package/dist/ai-targeting-translator.d.ts +24 -0
- package/dist/ai-visibility-tracker.d.ts +70 -0
- package/dist/alerting-thresholds.d.ts +63 -0
- package/dist/analytics/active-dwell-time-calculator.d.ts +59 -0
- package/dist/analytics/ad-audience-sync-engine.d.ts +69 -0
- package/dist/analytics/adaptive-event-sampler.d.ts +44 -0
- package/dist/analytics/ai-agents-tracker.d.ts +63 -0
- package/dist/analytics/ai-generated-search-snippet-synthesizer.d.ts +45 -0
- package/dist/analytics/ai-overviews-citation-passage-relevance-auditor.d.ts +35 -0
- package/dist/analytics/ai-providers-tracker.d.ts +63 -0
- package/dist/analytics/ai-sov.d.ts +21 -0
- package/dist/analytics/alerts-engine.d.ts +24 -0
- package/dist/analytics/anchor-text-diversity-auditor.d.ts +64 -0
- package/dist/analytics/anchor-text-optimization-distribution-analyzer.d.ts +49 -0
- package/dist/analytics/api-playground-generator.d.ts +56 -0
- package/dist/analytics/api-rate-limit-quota-shield.d.ts +60 -0
- package/dist/analytics/attribution-markov-chain-engine.d.ts +48 -0
- package/dist/analytics/attribution.d.ts +8 -0
- package/dist/analytics/automated-analytics-report-renderer.d.ts +71 -0
- package/dist/analytics/b2b-group-analytics-engine.d.ts +64 -0
- package/dist/analytics/bandwidth-calculator.d.ts +34 -0
- package/dist/analytics/batch-export-scheduler.d.ts +82 -0
- package/dist/analytics/behavioral-cohort-analyzer.d.ts +68 -0
- package/dist/analytics/bofu-quick-wins-opportunity-scorer.d.ts +60 -0
- package/dist/analytics/bot-crawl-frequency-predictor.d.ts +61 -0
- package/dist/analytics/bot-signal-bitmask-decoder.d.ts +60 -0
- package/dist/analytics/bot-simulation-diff-auditor.d.ts +59 -0
- package/dist/analytics/breadcrumb-list-microdata-schema-parity-validator.d.ts +45 -0
- package/dist/analytics/broken-image-detector.d.ts +36 -0
- package/dist/analytics/brotli-zstd-compression-efficiency-auditor.d.ts +43 -0
- package/dist/analytics/calendar-heatmap-engine.d.ts +41 -0
- package/dist/analytics/canary-flag-guardrail-engine.d.ts +80 -0
- package/dist/analytics/canonical-integrity-engine.d.ts +51 -0
- package/dist/analytics/canonical-loop-cluster-detector.d.ts +48 -0
- package/dist/analytics/canvas-replay-capture.d.ts +41 -0
- package/dist/analytics/captcha-gate-verifier.d.ts +66 -0
- package/dist/analytics/cart-abandonment-analyzer.d.ts +80 -0
- package/dist/analytics/cdn-edge-cache-hit-ratio-forecaster.d.ts +43 -0
- package/dist/analytics/cdn-edge-routing-latency-analyzer.d.ts +62 -0
- package/dist/analytics/channel-grouping.d.ts +47 -0
- package/dist/analytics/churn-risk-calculator.d.ts +73 -0
- package/dist/analytics/client-error-tracker.d.ts +83 -0
- package/dist/analytics/client-side-hydration-mismatch-differ.d.ts +41 -0
- package/dist/analytics/client-side-memory-leak-dom-detached-nodes-auditor.d.ts +36 -0
- package/dist/analytics/client-side-page-speed-metrics-summary-aggregator.d.ts +56 -0
- package/dist/analytics/client-side-replay-rage-click-aggregator.d.ts +57 -0
- package/dist/analytics/code-canvas-pipeline.d.ts +50 -0
- package/dist/analytics/cohort-ltv-payback-engine.d.ts +68 -0
- package/dist/analytics/cohort-set-algebra-engine.d.ts +107 -0
- package/dist/analytics/cohorts-retention-engine.d.ts +24 -0
- package/dist/analytics/competitor-ad-transparency-inspector.d.ts +89 -0
- package/dist/analytics/constructed-styles-engine.d.ts +34 -0
- package/dist/analytics/content-decay-audit-engine.d.ts +64 -0
- package/dist/analytics/content-interaction-tracker.d.ts +60 -0
- package/dist/analytics/content-keyword-cannibalization-matrix.d.ts +50 -0
- package/dist/analytics/content-readability-flesch-kincaid-engine.d.ts +40 -0
- package/dist/analytics/content-security-policy-directive-violation-auditor.d.ts +28 -0
- package/dist/analytics/content-security-policy-frame-ancestors-clickjacking-auditor.d.ts +30 -0
- package/dist/analytics/conversion-funnel-latency-sensitivity-scorer.d.ts +57 -0
- package/dist/analytics/conversion-path-length-engine.d.ts +62 -0
- package/dist/analytics/cookie-consent-compliance-auditor.d.ts +73 -0
- package/dist/analytics/core-web-vitals-cumulative-tbt-trend-forecaster.d.ts +40 -0
- package/dist/analytics/core-web-vitals-interaction-event-debouncer.d.ts +39 -0
- package/dist/analytics/core-web-vitals-interaction-input-delay-breakdown-profiler.d.ts +40 -0
- package/dist/analytics/core-web-vitals-interaction-target-dom-element-pinpointer.d.ts +41 -0
- package/dist/analytics/core-web-vitals-interaction-timeline-tracer.d.ts +42 -0
- package/dist/analytics/core-web-vitals-lcp-sub-part-waterfall-profiler.d.ts +45 -0
- package/dist/analytics/core-web-vitals-presentation-delay-breakdown-profiler.d.ts +34 -0
- package/dist/analytics/core-web-vitals-ttfb-diagnostic-auditor.d.ts +60 -0
- package/dist/analytics/correlation-analyzer.d.ts +30 -0
- package/dist/analytics/crawl-budget-priority-queue-forecaster.d.ts +39 -0
- package/dist/analytics/crawl-budget-waste-auditor.d.ts +64 -0
- package/dist/analytics/crawl-depth-click-distance-auditor.d.ts +52 -0
- package/dist/analytics/crawl-log-cross-correlation-engine.d.ts +85 -0
- package/dist/analytics/cross-domain-linker.d.ts +50 -0
- package/dist/analytics/crux.d.ts +9 -0
- package/dist/analytics/css-rules-mutation-tracker.d.ts +28 -0
- package/dist/analytics/cumulative-layout-shift-target-element-clusterer.d.ts +57 -0
- package/dist/analytics/currency-converter.d.ts +37 -0
- package/dist/analytics/custom-alerts-engine.d.ts +37 -0
- package/dist/analytics/custom-variables-engine.d.ts +30 -0
- package/dist/analytics/customer-lifetime-value-survival-engine.d.ts +53 -0
- package/dist/analytics/customer-ltv-modeler.d.ts +80 -0
- package/dist/analytics/dashboard-rss-widget.d.ts +110 -0
- package/dist/analytics/data-retention-lifecycle-manager.d.ts +81 -0
- package/dist/analytics/data-staleness-sentinel.d.ts +37 -0
- package/dist/analytics/device-detector-cache.d.ts +39 -0
- package/dist/analytics/device-hardware-engine.d.ts +34 -0
- package/dist/analytics/disavow-file-format-syntax-validator.d.ts +32 -0
- package/dist/analytics/domain-connect-dns.d.ts +50 -0
- package/dist/analytics/domain-connect-provisioner.d.ts +74 -0
- package/dist/analytics/duplicate-title-meta-description-cluster-matrix.d.ts +40 -0
- package/dist/analytics/dynamic-render-cloaking-detector.d.ts +45 -0
- package/dist/analytics/ecommerce-merchandise-funnel-auditor.d.ts +60 -0
- package/dist/analytics/engagement-matrix-analyzer.d.ts +72 -0
- package/dist/analytics/event-match-quality.d.ts +53 -0
- package/dist/analytics/event-transformation-runtime.d.ts +76 -0
- package/dist/analytics/events.d.ts +24 -0
- package/dist/analytics/excessive-dom-depth-node-count-auditor.d.ts +47 -0
- package/dist/analytics/experiment-running-time-calculator.d.ts +53 -0
- package/dist/analytics/experiment-sample-size-sequential-testing-engine.d.ts +46 -0
- package/dist/analytics/exports.d.ts +2 -0
- package/dist/analytics/facet-url-combinatorial-trap-auditor.d.ts +45 -0
- package/dist/analytics/feature-flag-dormancy-auditor.d.ts +59 -0
- package/dist/analytics/feature-flag-evaluator.d.ts +49 -0
- package/dist/analytics/flag-blast-radius-simulator.d.ts +61 -0
- package/dist/analytics/font-display-cls-layout-shift-auditor.d.ts +51 -0
- package/dist/analytics/font-loading-observer.d.ts +37 -0
- package/dist/analytics/font-preload-unused-bandwidth-waste-auditor.d.ts +40 -0
- package/dist/analytics/font-subsetting-unicode-range-optimizer.d.ts +41 -0
- package/dist/analytics/form-input-friction-tracker.d.ts +38 -0
- package/dist/analytics/frustration-analyzer.d.ts +117 -0
- package/dist/analytics/frustration-signals-engine.d.ts +88 -0
- package/dist/analytics/funnel-velocity-engine.d.ts +55 -0
- package/dist/analytics/funnels.d.ts +22 -0
- package/dist/analytics/ga4-data-transpiler.d.ts +96 -0
- package/dist/analytics/ga4-historical-importer.d.ts +48 -0
- package/dist/analytics/goal-pacing-tracker.d.ts +44 -0
- package/dist/analytics/google-update-impact-analyzer.d.ts +85 -0
- package/dist/analytics/heading-hierarchy-outline-validator.d.ts +47 -0
- package/dist/analytics/heatmap-density-rasterizer.d.ts +57 -0
- package/dist/analytics/holt-winters-forecast-engine.d.ts +61 -0
- package/dist/analytics/hreflang-integrity-engine.d.ts +61 -0
- package/dist/analytics/hreflang-regional-x-default-cascade-resolver.d.ts +29 -0
- package/dist/analytics/hreflang-return-tag-reciprocity-auditor.d.ts +40 -0
- package/dist/analytics/html-doctype-declaration-legacy-syntax-auditor.d.ts +24 -0
- package/dist/analytics/html-entity-encoding-double-escaping-auditor.d.ts +36 -0
- package/dist/analytics/html-lang-directionality-bidi-auditor.d.ts +39 -0
- package/dist/analytics/html-microformat-hcard-hcalendar-auditor.d.ts +34 -0
- package/dist/analytics/html-text-contrast-accessibility-a11y-auditor.d.ts +47 -0
- package/dist/analytics/http-header-security-seo-audit-engine.d.ts +61 -0
- package/dist/analytics/http-strict-transport-security-preload-auditor.d.ts +40 -0
- package/dist/analytics/http2-server-push-deprecation-early-hints-auditor.d.ts +36 -0
- package/dist/analytics/identity-graph-stitching-engine.d.ts +66 -0
- package/dist/analytics/identity-ip-bucket.d.ts +25 -0
- package/dist/analytics/image-format-density-responsive-optimizer.d.ts +46 -0
- package/dist/analytics/in-page-overlay-mapper.d.ts +47 -0
- package/dist/analytics/index.d.ts +35 -0
- package/dist/analytics/indexnow-instant-indexation-submitter.d.ts +46 -0
- package/dist/analytics/indexnow-instant-submission-protocol-auditor.d.ts +33 -0
- package/dist/analytics/infinite-scroll-virtualized-list-seo-auditor.d.ts +41 -0
- package/dist/analytics/internal-link-anchor-nofollow-equity-leak-auditor.d.ts +37 -0
- package/dist/analytics/internal-link-pagerank-auditor.d.ts +62 -0
- package/dist/analytics/internal-search-query-intelligence.d.ts +82 -0
- package/dist/analytics/internal-search-zero-result-spelling-correction-suggester.d.ts +36 -0
- package/dist/analytics/interrupted-time-series-engine.d.ts +64 -0
- package/dist/analytics/intranet-measurable-engine.d.ts +33 -0
- package/dist/analytics/js-hydration-drift-auditor.d.ts +63 -0
- package/dist/analytics/json-ld-local-business-geo-shape-validator.d.ts +55 -0
- package/dist/analytics/keyword-cannibalization-resolver.d.ts +50 -0
- package/dist/analytics/kmeans-persona-discovery-engine.d.ts +57 -0
- package/dist/analytics/lcp-preload-responsive-image-candidate-picker.d.ts +54 -0
- package/dist/analytics/ld-json-graph-nesting-resolver.d.ts +53 -0
- package/dist/analytics/lfa.d.ts +24 -0
- package/dist/analytics/live-funnel-dropoff-alert-engine.d.ts +64 -0
- package/dist/analytics/log-file-search-engine-ip-reverse-dns-verifier.d.ts +35 -0
- package/dist/analytics/logfile-bot-anomaly-detector.d.ts +62 -0
- package/dist/analytics/long-animation-task-tracker.d.ts +45 -0
- package/dist/analytics/long-task-tracker.d.ts +41 -0
- package/dist/analytics/market-basket-association-engine.d.ts +64 -0
- package/dist/analytics/markov-attribution-engine.d.ts +62 -0
- package/dist/analytics/measurement-protocol-validator.d.ts +64 -0
- package/dist/analytics/meta-robots-unavailable-after-header-auditor.d.ts +29 -0
- package/dist/analytics/metric-driver-analyzer.d.ts +41 -0
- package/dist/analytics/metric-formula-engine.d.ts +47 -0
- package/dist/analytics/mixed-content-http-resource-passive-active-auditor.d.ts +39 -0
- package/dist/analytics/mobile-replay-sanitizer.d.ts +37 -0
- package/dist/analytics/mobile-symbolizer.d.ts +57 -0
- package/dist/analytics/monitor.d.ts +11 -0
- package/dist/analytics/movers-and-shakers-detector.d.ts +48 -0
- package/dist/analytics/multi-armed-bandit-allocator.d.ts +59 -0
- package/dist/analytics/multi-attribution-engine.d.ts +23 -0
- package/dist/analytics/multi-domain-hreflang-cluster-graph.d.ts +61 -0
- package/dist/analytics/multi-funnel-engine.d.ts +38 -0
- package/dist/analytics/multi-site-rollup-engine.d.ts +58 -0
- package/dist/analytics/multi-tab-session-sync.d.ts +41 -0
- package/dist/analytics/navigation-menu-depth-click-proximity-auditor.d.ts +41 -0
- package/dist/analytics/navigation-timing-engine.d.ts +64 -0
- package/dist/analytics/network-information-tracker.d.ts +40 -0
- package/dist/analytics/network-sanitizer.d.ts +53 -0
- package/dist/analytics/network-waterfall-analyzer.d.ts +54 -0
- package/dist/analytics/offline-event-reconciler.d.ts +55 -0
- package/dist/analytics/open-graph-social-card-auditor.d.ts +61 -0
- package/dist/analytics/opengraph-twitter-card-image-dimension-auditor.d.ts +43 -0
- package/dist/analytics/orphan-page-rescue-linker.d.ts +66 -0
- package/dist/analytics/page-lifecycle-tracker.d.ts +29 -0
- package/dist/analytics/pagination-infinite-scroll-auditor.d.ts +67 -0
- package/dist/analytics/parameterized-query-engine.d.ts +43 -0
- package/dist/analytics/predictive-lead-scorer.d.ts +73 -0
- package/dist/analytics/privacy-manager-engine.d.ts +34 -0
- package/dist/analytics/product-tour-telemetry.d.ts +59 -0
- package/dist/analytics/proof-of-work-gatekeeper.d.ts +50 -0
- package/dist/analytics/propensity-scorer-ga4.d.ts +58 -0
- package/dist/analytics/proxy-adblock-bypasser.d.ts +36 -0
- package/dist/analytics/pseo-pattern-rollup.d.ts +64 -0
- package/dist/analytics/public-dashboard-manager.d.ts +56 -0
- package/dist/analytics/query-canvas-graph.d.ts +101 -0
- package/dist/analytics/realtime-concurrency-monitor.d.ts +59 -0
- package/dist/analytics/redirect-chain-shortcut-optimizer.d.ts +61 -0
- package/dist/analytics/referrer-spam-detector.d.ts +60 -0
- package/dist/analytics/release-vitals-correlator.d.ts +59 -0
- package/dist/analytics/replay-annotation-engine.d.ts +50 -0
- package/dist/analytics/replay-audio-track-sync.d.ts +64 -0
- package/dist/analytics/replay-timeline-reconstructor.d.ts +71 -0
- package/dist/analytics/resource-hint-speculation-rules-optimizer.d.ts +43 -0
- package/dist/analytics/resource-timing-engine.d.ts +53 -0
- package/dist/analytics/resource-timing-transfer-size-discrepancy-auditor.d.ts +39 -0
- package/dist/analytics/responsive-search-ad-creative-builder.d.ts +71 -0
- package/dist/analytics/retention-curve-fitting-engine.d.ts +53 -0
- package/dist/analytics/retention.d.ts +6 -0
- package/dist/analytics/rfm-segmentation-engine.d.ts +60 -0
- package/dist/analytics/robots-txt-parity-compiler.d.ts +70 -0
- package/dist/analytics/robots-txt-x-robots-tag-header-conflict-auditor.d.ts +38 -0
- package/dist/analytics/rollup-aggregator.d.ts +65 -0
- package/dist/analytics/rss-atom-feed-syndication-discoverability-auditor.d.ts +45 -0
- package/dist/analytics/rss-widget-feed.d.ts +75 -0
- package/dist/analytics/rum.d.ts +12 -0
- package/dist/analytics/scheduled-reports-engine.d.ts +41 -0
- package/dist/analytics/schema-discrepancy-validator.d.ts +79 -0
- package/dist/analytics/schema-graph-auditor.d.ts +59 -0
- package/dist/analytics/schema-org-course-educational-credential-auditor.d.ts +81 -0
- package/dist/analytics/schema-org-recipe-nutritional-information-validator.d.ts +95 -0
- package/dist/analytics/screen-resolution-engine.d.ts +55 -0
- package/dist/analytics/search-engine-bot-ip-range-geo-location-auditor.d.ts +44 -0
- package/dist/analytics/search-engine-organic-cpc-cannibalization-arbitrage-auditor.d.ts +53 -0
- package/dist/analytics/search-engine-sitemap-image-extension-auditor.d.ts +37 -0
- package/dist/analytics/search-engine-sitemap-news-extension-auditor.d.ts +38 -0
- package/dist/analytics/segment-tree-compiler.d.ts +34 -0
- package/dist/analytics/semantic-metric-validator.d.ts +84 -0
- package/dist/analytics/seo-content-thinness-readability-score-synthesizer.d.ts +40 -0
- package/dist/analytics/seo-split-test-engine.d.ts +83 -0
- package/dist/analytics/serp-ai-overview-citation-auditor.d.ts +64 -0
- package/dist/analytics/serp-intent-congruence-auditor.d.ts +54 -0
- package/dist/analytics/serp-rank-cpc-opportunity-matrix.d.ts +50 -0
- package/dist/analytics/serp-rank-distribution-decay-matrix.d.ts +64 -0
- package/dist/analytics/serp-snippet-faq-accordion-eligibility-scorer.d.ts +40 -0
- package/dist/analytics/serp-snippet-opportunity-hunter.d.ts +58 -0
- package/dist/analytics/serp-snippet-pixel-truncation-estimator.d.ts +39 -0
- package/dist/analytics/serp-volatility-sensor.d.ts +56 -0
- package/dist/analytics/server-timing-header-metrics-decomposer.d.ts +26 -0
- package/dist/analytics/session-issue-classifier.d.ts +82 -0
- package/dist/analytics/session-playlist-orchestrator.d.ts +46 -0
- package/dist/analytics/session-replay-live-assist.d.ts +70 -0
- package/dist/analytics/session-replay-privacy-masker.d.ts +36 -0
- package/dist/analytics/session-similarity-matcher.d.ts +39 -0
- package/dist/analytics/sessionizer.d.ts +47 -0
- package/dist/analytics/sessions.d.ts +2 -0
- package/dist/analytics/shapley-attribution-engine.d.ts +55 -0
- package/dist/analytics/site-health-analyzer.d.ts +76 -0
- package/dist/analytics/site-registry-auditor.d.ts +42 -0
- package/dist/analytics/sitemap-health-auditor.d.ts +61 -0
- package/dist/analytics/sites-manager-engine.d.ts +39 -0
- package/dist/analytics/soft-404-thin-content-scorer.d.ts +33 -0
- package/dist/analytics/sourcemap-symbolizer.d.ts +47 -0
- package/dist/analytics/speculation-rules-prerender-candidate-auditor.d.ts +38 -0
- package/dist/analytics/squarified-treemap-engine.d.ts +37 -0
- package/dist/analytics/ssr-streaming-ttfb-flush-auditor.d.ts +45 -0
- package/dist/analytics/standalone-replay-exporter.d.ts +45 -0
- package/dist/analytics/state-mutation-recorder.d.ts +42 -0
- package/dist/analytics/statistical-anomaly-detector.d.ts +66 -0
- package/dist/analytics/stickiness-engine.d.ts +47 -0
- package/dist/analytics/sticky-user-id.d.ts +31 -0
- package/dist/analytics/structured-data-merchant-return-policy-auditor.d.ts +38 -0
- package/dist/analytics/structured-data-rich-results-eligibility-auditor.d.ts +43 -0
- package/dist/analytics/structured-data-validation-aggregate-score-synthesizer.d.ts +43 -0
- package/dist/analytics/subresource-integrity-cdn-tampering-auditor.d.ts +41 -0
- package/dist/analytics/survey-branching-engine.d.ts +45 -0
- package/dist/analytics/survey-sentiment-driver-analyzer.d.ts +62 -0
- package/dist/analytics/tag-trigger-evaluator.d.ts +91 -0
- package/dist/analytics/tasks-timetable-manager.d.ts +62 -0
- package/dist/analytics/text-selection-tracker.d.ts +66 -0
- package/dist/analytics/third-party-script-cpu-execution-profiler.d.ts +50 -0
- package/dist/analytics/third-party-tracker-cname-cloaking-auditor.d.ts +35 -0
- package/dist/analytics/time-series-forecaster.d.ts +81 -0
- package/dist/analytics/timeseries-transform-engine.d.ts +32 -0
- package/dist/analytics/topical-authority-cluster-graph.d.ts +76 -0
- package/dist/analytics/tracker-install-verifier.d.ts +35 -0
- package/dist/analytics/tracking-plan-drift-detector.d.ts +71 -0
- package/dist/analytics/tracking-proxy-config.d.ts +48 -0
- package/dist/analytics/transitions-matrix-calculator.d.ts +66 -0
- package/dist/analytics/types.d.ts +77 -0
- package/dist/analytics/unified.d.ts +56 -0
- package/dist/analytics/user-feedback-engine.d.ts +79 -0
- package/dist/analytics/user-flow-aggregator.d.ts +67 -0
- package/dist/analytics/user-flow-dropoff-sunburst-engine.d.ts +61 -0
- package/dist/analytics/user-journey-sankey-engine.d.ts +79 -0
- package/dist/analytics/user-language-engine.d.ts +48 -0
- package/dist/analytics/user-lifecycle-analyzer.d.ts +46 -0
- package/dist/analytics/utm-inference-engine.d.ts +42 -0
- package/dist/analytics/video-object-schema-key-moments-scorer.d.ts +52 -0
- package/dist/analytics/viewport-meta-mobile-scalability-auditor.d.ts +35 -0
- package/dist/analytics/visit-time-analyzer.d.ts +49 -0
- package/dist/analytics/visit-time-distribution.d.ts +49 -0
- package/dist/analytics/visitor-interest-engine.d.ts +44 -0
- package/dist/analytics/visual-element-heatmap-mapper.d.ts +59 -0
- package/dist/analytics/web-animations-recorder.d.ts +98 -0
- package/dist/analytics/web-vital-cls-attribution-profiler.d.ts +76 -0
- package/dist/analytics/web-vital-inp-attribution-profiler.d.ts +79 -0
- package/dist/analytics/web-vital-interaction-to-next-paint-event-target-decomposer.d.ts +49 -0
- package/dist/analytics/web-vital-lcp-attribution-profiler.d.ts +77 -0
- package/dist/analytics/web-vitals-attribution-engine.d.ts +103 -0
- package/dist/analytics/web-vitals-fcp-speed-index-auditor.d.ts +48 -0
- package/dist/analytics/web-vitals-tbt-loaf-auditor.d.ts +54 -0
- package/dist/analytics/web-worker-offscreen-canvas-performance-auditor.d.ts +37 -0
- package/dist/analytics/webapp-manifest-pwa-installability-auditor.d.ts +41 -0
- package/dist/analytics/webhooks-engine.d.ts +41 -0
- package/dist/analytics/xml-sitemap-index-paginator-splitter.d.ts +44 -0
- package/dist/analytics/xml-sitemap-video-extension-auditor.d.ts +42 -0
- package/dist/analytics-client.d.ts +87 -1
- package/dist/analytics-import.d.ts +49 -0
- package/dist/analytics-plan-generator.d.ts +57 -0
- package/dist/analytics-query-agent.d.ts +21 -0
- package/dist/analytics-tagging-plan.d.ts +130 -0
- package/dist/anti-adblock/stealth-proxy-generator.d.ts +49 -0
- package/dist/api-playground-catalog.d.ts +34 -0
- package/dist/article-autopilot-orchestrator.d.ts +90 -0
- package/dist/attentive-sync-engine.d.ts +25 -0
- package/dist/attribution-model.d.ts +52 -0
- package/dist/audit-log.d.ts +76 -0
- package/dist/audit-scoring-engine.d.ts +48 -0
- package/dist/autonomous-audit-engine.d.ts +104 -0
- package/dist/autonomous-site-assets-generator.d.ts +37 -0
- package/dist/backlinks-client.d.ts +102 -8
- package/dist/backlinks-store.d.ts +115 -0
- package/dist/bandit-optimizer.d.ts +87 -0
- package/dist/bi-enterprise-suite.d.ts +278 -0
- package/dist/boards/rollup.d.ts +19 -0
- package/dist/boards-rollup.d.ts +97 -0
- package/dist/bookmarks-importer.d.ts +29 -0
- package/dist/bulk-seo-orchestrator.d.ts +51 -0
- package/dist/catalogs/ar.json +223 -0
- package/dist/catalogs/de.json +223 -0
- package/dist/catalogs/es.json +223 -0
- package/dist/catalogs/fr.json +398 -0
- package/dist/catalogs/id.json +223 -0
- package/dist/catalogs/it.json +223 -0
- package/dist/catalogs/ja.json +223 -0
- package/dist/catalogs/ko.json +223 -0
- package/dist/catalogs/nl.json +223 -0
- package/dist/catalogs/pl.json +1146 -0
- package/dist/catalogs/pt.json +223 -0
- package/dist/catalogs/ru.json +223 -0
- package/dist/catalogs/sv.json +223 -0
- package/dist/catalogs/tr.json +223 -0
- package/dist/catalogs/vi.json +223 -0
- package/dist/catalogs/zh.json +223 -0
- package/dist/cdp-pipelines.d.ts +44 -0
- package/dist/chart-annotations.d.ts +26 -0
- package/dist/chart-plan/__tests__/chart-types-cases.d.ts +11 -0
- package/dist/chart-plan/__tests__/static-viz-cases.d.ts +11 -0
- package/dist/chart-plan/__tests__/svg-normalize.d.ts +25 -0
- package/dist/chart-plan/dataset.d.ts +25 -0
- package/dist/chart-plan/geometry/bar.d.ts +13 -0
- package/dist/chart-plan/geometry/boxplot.d.ts +70 -0
- package/dist/chart-plan/geometry/cartesian/axes.d.ts +53 -0
- package/dist/chart-plan/geometry/cartesian/layout.d.ts +47 -0
- package/dist/chart-plan/geometry/cartesian/scales.d.ts +46 -0
- package/dist/chart-plan/geometry/cartesian/series.d.ts +33 -0
- package/dist/chart-plan/geometry/choropleth.d.ts +44 -0
- package/dist/chart-plan/geometry/combo.d.ts +34 -0
- package/dist/chart-plan/geometry/funnel.d.ts +60 -0
- package/dist/chart-plan/geometry/gauge-segmented.d.ts +58 -0
- package/dist/chart-plan/geometry/gauge.d.ts +12 -0
- package/dist/chart-plan/geometry/index.d.ts +44 -0
- package/dist/chart-plan/geometry/legend.d.ts +66 -0
- package/dist/chart-plan/geometry/pie.d.ts +28 -0
- package/dist/chart-plan/geometry/progress-bar.d.ts +46 -0
- package/dist/chart-plan/geometry/sankey.d.ts +90 -0
- package/dist/chart-plan/geometry/scatter.d.ts +61 -0
- package/dist/chart-plan/geometry/scorecard.d.ts +11 -0
- package/dist/chart-plan/geometry/sparkline.d.ts +10 -0
- package/dist/chart-plan/geometry/text.d.ts +25 -0
- package/dist/chart-plan/geometry/treemap.d.ts +51 -0
- package/dist/chart-plan/geometry/trend.d.ts +32 -0
- package/dist/chart-plan/geometry/waterfall.d.ts +51 -0
- package/dist/chart-plan/port/color.d.ts +27 -0
- package/dist/chart-plan/port/constants.d.ts +8 -0
- package/dist/chart-plan/port/numbers.d.ts +24 -0
- package/dist/chart-plan/port/text.d.ts +27 -0
- package/dist/chart-plan/renderers/svg.d.ts +11 -0
- package/dist/chart-plan/types.d.ts +134 -0
- package/dist/citation-verifier.d.ts +53 -0
- package/dist/cli.d.ts +89 -0
- package/dist/cli.js +65518 -0
- package/dist/clickhouse/client.d.ts +21 -0
- package/dist/clickhouse/index.d.ts +2 -0
- package/dist/clickhouse/migrate-cli.d.ts +1 -0
- package/dist/clickhouse/migrate.d.ts +6 -0
- package/dist/clickhouse/migrations/001_raw_events.sql +14 -0
- package/dist/clickhouse/migrations/002_analytics.sql +10 -0
- package/dist/clickhouse/migrations/003_crawl.sql +12 -0
- package/dist/clickhouse/migrations/004_rank.sql +11 -0
- package/dist/clickhouse/migrations/005_backlink.sql +12 -0
- package/dist/clickhouse/migrations/006_mv_hourly.sql +11 -0
- package/dist/clickhouse/migrations/007_pulse_mv_hourly.sql +26 -0
- package/dist/clickhouse/migrations/008_pulse_events_codec.sql +34 -0
- package/dist/clickhouse-functions.d.ts +141 -0
- package/dist/cluster-generator.d.ts +103 -0
- package/dist/cms-publication-client.d.ts +108 -0
- package/dist/competitor-backlink-import.d.ts +54 -0
- package/dist/competitor-insights.d.ts +35 -0
- package/dist/competitor-pages-generator.d.ts +60 -0
- package/dist/content-ai-arsenal.d.ts +1 -1
- package/dist/content-freshness.d.ts +48 -0
- package/dist/content-humanizer.d.ts +46 -0
- package/dist/content-prune-matrix.d.ts +49 -0
- package/dist/content-repurposer.d.ts +90 -0
- package/dist/content-writer.d.ts +43 -0
- package/dist/contextual-auto-linker.d.ts +39 -0
- package/dist/contextual-internal-linker.d.ts +48 -0
- package/dist/conversion-funnel-calculator.d.ts +37 -0
- package/dist/conversion-tracking-generator.d.ts +61 -0
- package/dist/conversions-api.d.ts +136 -0
- package/dist/copy-frameworks-master.d.ts +2 -2
- package/dist/crawl-api-enricher.d.ts +110 -0
- package/dist/crawl-config-profile.d.ts +55 -0
- package/dist/crawl-diff-engine.d.ts +69 -0
- package/dist/crawler/native-crawler.d.ts +179 -0
- package/dist/crawler/native-parser.d.ts +68 -0
- package/dist/crawler-retry-policy.d.ts +18 -0
- package/dist/cro-bayesian-calculator.d.ts +74 -0
- package/dist/cro-copywriting-engine.d.ts +2 -2
- package/dist/cro-heuristic-auditor.d.ts +44 -0
- package/dist/cro-industry-benchmarks.d.ts +76 -0
- package/dist/cro-revenue-attribution-engine.d.ts +53 -0
- package/dist/cro-variant-ai-engine.d.ts +37 -0
- package/dist/cross-filter.d.ts +82 -0
- package/dist/crosslink-scorer.d.ts +1 -1
- package/dist/custom-dimensions.d.ts +58 -0
- package/dist/data-lifecycle-manager.d.ts +121 -0
- package/dist/dataforseo-ai-tracking-client.d.ts +182 -0
- package/dist/dataforseo-business-client.d.ts +191 -0
- package/dist/dataforseo-cost-model.d.ts +126 -0
- package/dist/dataforseo-google-ads-client.d.ts +107 -0
- package/dist/dataforseo-labs-client.d.ts +296 -0
- package/dist/dataforseo-llm-mentions-client.d.ts +213 -0
- package/dist/dataforseo-transport.d.ts +156 -0
- package/dist/dataset-matrix-architect.d.ts +125 -0
- package/dist/datasets/index.d.ts +1 -0
- package/dist/datasets/inferColumnTypes.d.ts +32 -0
- package/dist/deep-crawl-importer.d.ts +120 -0
- package/dist/deep-crawler-auditor.d.ts +185 -0
- package/dist/deep-data-audit.d.ts +134 -0
- package/dist/destinations/destination-circuit-breaker.d.ts +63 -0
- package/dist/destinations/destination-erasure-cascade.d.ts +66 -0
- package/dist/destinations/destination-router.d.ts +45 -0
- package/dist/destinations/object-storage.d.ts +43 -0
- package/dist/destinations/warehouse-schema-generator.d.ts +61 -0
- package/dist/device-detection.d.ts +50 -0
- package/dist/documents-transforms.d.ts +41 -0
- package/dist/domain-heritage-checker.d.ts +41 -0
- package/dist/domain-telemetry.d.ts +101 -0
- package/dist/dragonfly-client.d.ts +221 -0
- package/dist/drill-down.d.ts +41 -0
- package/dist/dynamic-seo-mcp-tools.d.ts +155 -0
- package/dist/ecommerce-offer-ladder.d.ts +43 -0
- package/dist/embed-facade-generator.d.ts +64 -0
- package/dist/embeddable-seo-widget.d.ts +1 -1
- package/dist/engine-compat.d.ts +80 -0
- package/dist/engine.d.ts +4 -0
- package/dist/error-tracking.d.ts +20 -0
- package/dist/event-taxonomy.d.ts +39 -0
- package/dist/executive-report-generator.d.ts +59 -0
- package/dist/experiment-assignment.d.ts +34 -0
- package/dist/experiment-framework.d.ts +85 -0
- package/dist/expired-domain-valuator.d.ts +44 -0
- package/dist/exporters/branded-analytics-report.d.ts +90 -0
- package/dist/exporters/excel-action-tracker.d.ts +32 -0
- package/dist/exporters/html-pdf-report.d.ts +35 -0
- package/dist/exporters/markdown-report.d.ts +13 -0
- package/dist/extended-schemas.d.ts +92 -2
- package/dist/flag-decision.d.ts +72 -0
- package/dist/flag-dependency.d.ts +40 -0
- package/dist/flag-override.d.ts +52 -0
- package/dist/flag-release-schedule.d.ts +34 -0
- package/dist/flow-framework-engine.d.ts +25 -0
- package/dist/free-public-tools.d.ts +1 -1
- package/dist/funnel-builder.d.ts +114 -0
- package/dist/g17-live-metrics.d.ts +37 -0
- package/dist/g18-attribution-advanced.d.ts +18 -0
- package/dist/g19-heatmap-rum.d.ts +14 -0
- package/dist/g20-public-status-advanced.d.ts +19 -0
- package/dist/g21-audit-trail.d.ts +35 -0
- package/dist/g22-segment-builder.d.ts +23 -0
- package/dist/g23-funnel-builder.d.ts +37 -0
- package/dist/g24-advanced-sql-engine.d.ts +46 -0
- package/dist/g25-edge-latency.d.ts +2 -0
- package/dist/g26-turnstile-advanced.d.ts +18 -0
- package/dist/g27-third-party-profiles.d.ts +9 -0
- package/dist/g28-live-metrics-advanced.d.ts +25 -0
- package/dist/g29-segment-analysis.d.ts +20 -0
- package/dist/g30-geo-embedding.d.ts +27 -0
- package/dist/g31-identity-resolver.d.ts +27 -0
- package/dist/ga4-gsc-mcp-tools.d.ts +187 -0
- package/dist/gamified-cro-engine.d.ts +62 -0
- package/dist/gbp-client.d.ts +203 -0
- package/dist/geo-badge-generator.d.ts +27 -0
- package/dist/geo-cdn-waf-auditor.d.ts +37 -0
- package/dist/geo-ci-formatter.d.ts +50 -0
- package/dist/geo-citability-scorer.d.ts +77 -0
- package/dist/geo-competitive-narrative.d.ts +76 -0
- package/dist/geo-content-decay.d.ts +27 -0
- package/dist/geo-context-window.d.ts +30 -0
- package/dist/geo-diff-engine.d.ts +60 -0
- package/dist/geo-factual-accuracy-auditor.d.ts +40 -0
- package/dist/geo-fixer.d.ts +36 -0
- package/dist/geo-grid-rank-tracker.d.ts +54 -0
- package/dist/geo-hallucination-bait.d.ts +30 -0
- package/dist/geo-instruction-auditor.d.ts +37 -0
- package/dist/geo-js-auditor.d.ts +25 -0
- package/dist/geo-multi-turn-persistence.d.ts +55 -0
- package/dist/geo-multimodal-auditor.d.ts +33 -0
- package/dist/geo-negative-signals.d.ts +49 -0
- package/dist/geo-page-intent-mapper.d.ts +46 -0
- package/dist/geo-perception-extractor.d.ts +50 -0
- package/dist/geo-platform-auditor.d.ts +82 -0
- package/dist/geo-prompt-injection-detector.d.ts +25 -0
- package/dist/geo-score-calculator.d.ts +214 -0
- package/dist/geo-semantic-coherence.d.ts +36 -0
- package/dist/geo-semantic-drift-detector.d.ts +34 -0
- package/dist/geo-site-scaffolding.d.ts +71 -0
- package/dist/geo-topical-authority-cluster.d.ts +44 -0
- package/dist/geo-topical-authority.d.ts +42 -0
- package/dist/geo-trust-stack.d.ts +45 -0
- package/dist/geo-webmcp-auditor.d.ts +33 -0
- package/dist/geoip.d.ts +61 -0
- package/dist/google-ai-readiness-auditor.d.ts +77 -0
- package/dist/google-policy-sentinel.d.ts +68 -0
- package/dist/gorgias-sync-engine.d.ts +47 -0
- package/dist/governance/schema-discovery.d.ts +37 -0
- package/dist/governance/tracking-plan.d.ts +79 -0
- package/dist/gsc-auto-sync-scheduler.d.ts +80 -0
- package/dist/gsc-disavow-export-engine.d.ts +45 -0
- package/dist/headings-outline-engine.d.ts +37 -0
- package/dist/heatmap-rum.d.ts +67 -0
- package/dist/html-diff-engine.d.ts +44 -0
- package/dist/html-snapshot-replay.d.ts +47 -0
- package/dist/humanity-ai-scrubber.d.ts +77 -3
- package/dist/i18n/index.d.ts +1 -0
- package/dist/i18n/translator.d.ts +71 -0
- package/dist/identity-resolver.d.ts +162 -0
- package/dist/image-cwv-auditor.d.ts +59 -0
- package/dist/image-geo-exif-enricher.d.ts +68 -0
- package/dist/impact-analysis.d.ts +85 -0
- package/dist/index.d.ts +782 -7
- package/dist/index.js +217403 -10597
- package/dist/index.mjs +217403 -10597
- package/dist/indexnow-client.d.ts +33 -1
- package/dist/information-gain-scorer.d.ts +36 -0
- package/dist/instant-matrix-search.d.ts +1 -1
- package/dist/integrations/cloudflare-browser-renderer.d.ts +100 -0
- package/dist/integrations/dataforseo-audit-client.d.ts +152 -0
- package/dist/integrations/linkwarden-connector.d.ts +72 -0
- package/dist/integrations/pagespeed-client.d.ts +61 -0
- package/dist/internal-link-graph-engine.d.ts +120 -0
- package/dist/international-seo-auditor.d.ts +91 -0
- package/dist/inventory-scarcity-engine.d.ts +30 -0
- package/dist/iptc-media-validator.d.ts +30 -0
- package/dist/isr-cache-manager.d.ts +4 -2
- package/dist/jev-qualifier.d.ts +129 -0
- package/dist/jobs/retry-queue.d.ts +19 -0
- package/dist/kafka-producer.d.ts +48 -0
- package/dist/keyword-advanced-catalog.d.ts +59 -0
- package/dist/keyword-analytics-engine.d.ts +119 -0
- package/dist/keyword-bundle-orchestrator.d.ts +44 -0
- package/dist/keyword-cost-estimator.d.ts +45 -0
- package/dist/keyword-export-engine.d.ts +52 -0
- package/dist/keyword-market-validator.d.ts +35 -0
- package/dist/keyword-merger.d.ts +81 -0
- package/dist/keyword-permutator.d.ts +0 -1
- package/dist/keyword-session-manager.d.ts +84 -0
- package/dist/keyword-trend-sparkline.d.ts +55 -0
- package/dist/keywords/cannibalization.d.ts +15 -0
- package/dist/klaviyo-sync-engine.d.ts +75 -0
- package/dist/knowledge-graph-linker.d.ts +31 -1
- package/dist/kvi-opportunity-calculator.d.ts +61 -0
- package/dist/lago-token-meter.d.ts +4 -0
- package/dist/lcp-subparts-analyzer.d.ts +56 -0
- package/dist/links/backlinks-gap.d.ts +31 -0
- package/dist/links/competitors-import.d.ts +17 -0
- package/dist/links/opportunities.d.ts +20 -0
- package/dist/links-matrix-exporter.d.ts +31 -0
- package/dist/live-ai-citation-tester.d.ts +95 -0
- package/dist/live-co-browsing.d.ts +135 -0
- package/dist/live-metrics-advanced.d.ts +60 -0
- package/dist/llm-content-cleaner.d.ts +28 -1
- package/dist/llms-txt-generator.d.ts +42 -0
- package/dist/local-geogrid-simulator.d.ts +48 -0
- package/dist/local-seo-importer.d.ts +143 -0
- package/dist/local-seo-review-intelligence.d.ts +62 -0
- package/dist/longform-article-planner.d.ts +37 -0
- package/dist/lql/compiler.d.ts +2 -0
- package/dist/lql/index.d.ts +4 -0
- package/dist/lql/streaming.d.ts +8 -0
- package/dist/lql/types.d.ts +54 -0
- package/dist/lql/validator.d.ts +2 -0
- package/dist/lylql/compiler.d.ts +2 -0
- package/dist/lylql/index.d.ts +27 -0
- package/dist/lylql/lql-types.d.ts +43 -0
- package/dist/lylql/streaming.d.ts +1 -0
- package/dist/lylql/types.d.ts +3 -0
- package/dist/lylql/validator.d.ts +4 -0
- package/dist/lynx-agent-readiness-auditor.d.ts +89 -0
- package/dist/lynx-pulse-prism-engine.d.ts +70 -0
- package/dist/mailchimp-sync-engine.d.ts +50 -0
- package/dist/marketing-council-engine.d.ts +94 -0
- package/dist/marketing-skills-engine.d.ts +56 -1
- package/dist/marketplace-price-intelligence.d.ts +75 -0
- package/dist/master-audit-orchestrator.d.ts +118 -0
- package/dist/master-marketing-engine.d.ts +1 -1
- package/dist/matrix-engine.d.ts +87 -2
- package/dist/mbql/compiler.d.ts +2 -0
- package/dist/mbql/index.d.ts +4 -0
- package/dist/mbql/streaming.d.ts +8 -0
- package/dist/mbql/types.d.ts +54 -0
- package/dist/mbql/validator.d.ts +2 -0
- package/dist/mcp-seo-server.d.ts +11 -1
- package/dist/mcp-seo-server.js +100293 -0
- package/dist/meta-ad-library-intelligence.d.ts +91 -0
- package/dist/metric-glossary.d.ts +48 -0
- package/dist/mobile-event-queue.d.ts +68 -0
- package/dist/monolith-inliner.d.ts +20 -0
- package/dist/multi-source-attribution.d.ts +59 -0
- package/dist/multi-touch-attribution.d.ts +50 -0
- package/dist/nango-integration.d.ts +99 -0
- package/dist/nap-consistency-checker.d.ts +60 -0
- package/dist/narrative-validator.d.ts +38 -0
- package/dist/near-duplicate-detector.d.ts +84 -0
- package/dist/network-intelligence.d.ts +37 -0
- package/dist/ngram-density-analyzer.d.ts +1 -1
- package/dist/nl-to-sql-engine.d.ts +99 -0
- package/dist/omnisend-sync-engine.d.ts +31 -0
- package/dist/openreplay-adapted/clickmap-adapted.d.ts +17 -0
- package/dist/openreplay-adapted/console-adapted.d.ts +13 -0
- package/dist/openreplay-adapted/exception-adapted.d.ts +18 -0
- package/dist/openreplay-adapted/feature-flags-adapted.d.ts +20 -0
- package/dist/openreplay-adapted/input-adapted.d.ts +16 -0
- package/dist/openreplay-adapted/integrations-adapted.d.ts +29 -0
- package/dist/openreplay-adapted/mouse-adapted.d.ts +19 -0
- package/dist/openreplay-adapted/network-adapted.d.ts +28 -0
- package/dist/openreplay-adapted/performance-adapted.d.ts +16 -0
- package/dist/openreplay-adapted/sourcemap-uploader-adapted.d.ts +22 -0
- package/dist/openreplay-adapted/sourcemapreader-adapted.d.ts +22 -0
- package/dist/openreplay-adapted/state-adapted.d.ts +20 -0
- package/dist/openserp-client.d.ts +48 -0
- package/dist/page-delivery-auditor.d.ts +31 -0
- package/dist/page-snapshotter.d.ts +41 -0
- package/dist/parasite-seo-detector.d.ts +59 -0
- package/dist/period-compare.d.ts +34 -0
- package/dist/persistent-page-store.d.ts +129 -0
- package/dist/pipeline/dlq-manager.d.ts +99 -0
- package/dist/pipeline/event-deduplication.d.ts +59 -0
- package/dist/pipeline/event-replay.d.ts +40 -0
- package/dist/pipeline/event-sampler.d.ts +37 -0
- package/dist/pipeline/event-transform-pipeline.d.ts +89 -0
- package/dist/pipeline/event-watermark-reorderer.d.ts +50 -0
- package/dist/pipeline/payload-compressor.d.ts +20 -0
- package/dist/plugin/custom-dimensions-plugin.d.ts +24 -0
- package/dist/plugin/device-detection-plugin.d.ts +23 -0
- package/dist/plugin/event-bus.d.ts +47 -0
- package/dist/plugin/geoip-plugin.d.ts +25 -0
- package/dist/plugin/heatmap-plugin.d.ts +23 -0
- package/dist/plugin/index.d.ts +6 -0
- package/dist/plugin/manager.d.ts +27 -0
- package/dist/plugin/rum-plugin.d.ts +25 -0
- package/dist/plugin/types.d.ts +33 -0
- package/dist/plugin/user-id-plugin.d.ts +25 -0
- package/dist/plugins/account-analytics/index.d.ts +39 -0
- package/dist/plugins/actions/index.d.ts +68 -0
- package/dist/plugins/activity-log/index.d.ts +58 -0
- package/dist/plugins/ai-agents/index.d.ts +75 -0
- package/dist/plugins/analytics-notebooks/index.d.ts +86 -0
- package/dist/plugins/annotations/index.d.ts +46 -0
- package/dist/plugins/anonymous-tracking/index.d.ts +41 -0
- package/dist/plugins/approvals/index.d.ts +96 -0
- package/dist/plugins/archiving-metrics/index.d.ts +98 -0
- package/dist/plugins/assist-cobrowse/index.d.ts +60 -0
- package/dist/plugins/automated-workflows/index.d.ts +63 -0
- package/dist/plugins/bandwidth/index.d.ts +53 -0
- package/dist/plugins/batch-exports/index.d.ts +95 -0
- package/dist/plugins/bot-tracking/index.d.ts +68 -0
- package/dist/plugins/bulk-tracking/index.d.ts +48 -0
- package/dist/plugins/clips-highlights/index.d.ts +75 -0
- package/dist/plugins/cohort-retention/index.d.ts +43 -0
- package/dist/plugins/consent-analytics/consent-analytics.d.ts +64 -0
- package/dist/plugins/consent-analytics/index.d.ts +1 -0
- package/dist/plugins/content-treemap/index.d.ts +52 -0
- package/dist/plugins/contents/index.d.ts +42 -0
- package/dist/plugins/correlation-analysis/index.d.ts +43 -0
- package/dist/plugins/custom-alerts/index.d.ts +22 -0
- package/dist/plugins/custom-dimensions/index.d.ts +38 -0
- package/dist/plugins/custom-js-tracker/index.d.ts +49 -0
- package/dist/plugins/custom-variables/index.d.ts +57 -0
- package/dist/plugins/dashboard-presets/dashboard-presets.d.ts +51 -0
- package/dist/plugins/dashboard-presets/index.d.ts +1 -0
- package/dist/plugins/dashboard-widgets/index.d.ts +55 -0
- package/dist/plugins/data-quality/index.d.ts +57 -0
- package/dist/plugins/data-warehouse/index.d.ts +100 -0
- package/dist/plugins/db-stats/index.d.ts +75 -0
- package/dist/plugins/device-plugins/index.d.ts +73 -0
- package/dist/plugins/devices-detection/index.d.ts +39 -0
- package/dist/plugins/early-access-features/index.d.ts +51 -0
- package/dist/plugins/ecommerce/index.d.ts +52 -0
- package/dist/plugins/error-tracking/index.d.ts +101 -0
- package/dist/plugins/event-simulator/index.d.ts +53 -0
- package/dist/plugins/event-usage-budgets/index.d.ts +60 -0
- package/dist/plugins/events/index.d.ts +72 -0
- package/dist/plugins/experiments/index.d.ts +87 -0
- package/dist/plugins/feedback/index.d.ts +47 -0
- package/dist/plugins/form-analytics/index.d.ts +53 -0
- package/dist/plugins/geoip/index.d.ts +50 -0
- package/dist/plugins/geoip-updater/index.d.ts +97 -0
- package/dist/plugins/goals/index.d.ts +85 -0
- package/dist/plugins/group-analytics/index.d.ts +65 -0
- package/dist/plugins/heartbeat/index.d.ts +50 -0
- package/dist/plugins/heatmap-scrollmap/index.d.ts +63 -0
- package/dist/plugins/hog-functions/index.d.ts +88 -0
- package/dist/plugins/ingestion-warnings/index.d.ts +80 -0
- package/dist/plugins/insights/index.d.ts +47 -0
- package/dist/plugins/intranet-measurable/index.d.ts +36 -0
- package/dist/plugins/js-tracker-install-check/index.d.ts +62 -0
- package/dist/plugins/language-distribution/index.d.ts +46 -0
- package/dist/plugins/leads/index.d.ts +118 -0
- package/dist/plugins/live/index.d.ts +71 -0
- package/dist/plugins/live-debugger/index.d.ts +100 -0
- package/dist/plugins/live-detailed/index.d.ts +44 -0
- package/dist/plugins/llm-observability/index.d.ts +91 -0
- package/dist/plugins/log-viewer/index.d.ts +59 -0
- package/dist/plugins/marketing-campaigns/index.d.ts +63 -0
- package/dist/plugins/media-analytics/index.d.ts +60 -0
- package/dist/plugins/mobile-app-measurable/index.d.ts +80 -0
- package/dist/plugins/mobile-messaging/index.d.ts +84 -0
- package/dist/plugins/multi-sites/index.d.ts +45 -0
- package/dist/plugins/overlay/index.d.ts +48 -0
- package/dist/plugins/page-performance/index.d.ts +30 -0
- package/dist/plugins/privacy-manager/index.d.ts +108 -0
- package/dist/plugins/product-tours/index.d.ts +58 -0
- package/dist/plugins/provider/index.d.ts +53 -0
- package/dist/plugins/query-cost-profiler/index.d.ts +1 -0
- package/dist/plugins/query-cost-profiler/query-cost-profiler.d.ts +67 -0
- package/dist/plugins/queued-tracking/index.d.ts +57 -0
- package/dist/plugins/real-time-usage/index.d.ts +67 -0
- package/dist/plugins/referrer-brand-enricher/index.d.ts +1 -0
- package/dist/plugins/referrer-brand-enricher/referrer-brand-enricher.d.ts +59 -0
- package/dist/plugins/referrers/index.d.ts +14 -0
- package/dist/plugins/referrers-complet/index.d.ts +52 -0
- package/dist/plugins/registry.d.ts +112 -0
- package/dist/plugins/replay/index.d.ts +64 -0
- package/dist/plugins/replay-vision/index.d.ts +45 -0
- package/dist/plugins/resolution/index.d.ts +49 -0
- package/dist/plugins/resource-transfer/index.d.ts +95 -0
- package/dist/plugins/revenue-analytics/index.d.ts +73 -0
- package/dist/plugins/scheduled-reports/index.d.ts +71 -0
- package/dist/plugins/security-info/index.d.ts +58 -0
- package/dist/plugins/segment-editor/index.d.ts +73 -0
- package/dist/plugins/site-search/index.d.ts +55 -0
- package/dist/plugins/smart-alerts-anomaly/index.d.ts +61 -0
- package/dist/plugins/sql-cohort/index.d.ts +73 -0
- package/dist/plugins/surveys/index.d.ts +97 -0
- package/dist/plugins/system-diagnostics/index.d.ts +65 -0
- package/dist/plugins/tag-manager/container.d.ts +98 -0
- package/dist/plugins/tag-manager/evaluate.d.ts +63 -0
- package/dist/plugins/tag-manager/export.d.ts +62 -0
- package/dist/plugins/tag-manager/index.d.ts +104 -0
- package/dist/plugins/tag-manager/runtime.d.ts +75 -0
- package/dist/plugins/tag-manager/templates.d.ts +87 -0
- package/dist/plugins/tasks-timetable/index.d.ts +46 -0
- package/dist/plugins/taxonomy-dictionary/index.d.ts +60 -0
- package/dist/plugins/theme/index.d.ts +83 -0
- package/dist/plugins/tracking-spam-prevention/index.d.ts +29 -0
- package/dist/plugins/traffic-shield/index.d.ts +1 -0
- package/dist/plugins/traffic-shield/traffic-shield.d.ts +64 -0
- package/dist/plugins/transitions/index.d.ts +69 -0
- package/dist/plugins/two-factor-auth/index.d.ts +59 -0
- package/dist/plugins/user-country-map/index.d.ts +49 -0
- package/dist/plugins/user-id/index.d.ts +32 -0
- package/dist/plugins/user-language/index.d.ts +13 -0
- package/dist/plugins/user-paths/index.d.ts +60 -0
- package/dist/plugins/users-manager/index.d.ts +69 -0
- package/dist/plugins/visit-frequency/index.d.ts +49 -0
- package/dist/plugins/visit-time/index.d.ts +50 -0
- package/dist/plugins/visitor-interest/index.d.ts +77 -0
- package/dist/plugins/visits-summary/index.d.ts +64 -0
- package/dist/plugins/weekly-traffic/index.d.ts +1 -0
- package/dist/plugins/weekly-traffic/weekly-traffic.d.ts +75 -0
- package/dist/plugins/widgetize/index.d.ts +55 -0
- package/dist/postscript-sync-engine.d.ts +35 -0
- package/dist/privacy/network-replay-sanitizer.d.ts +42 -0
- package/dist/privacy/privacy-sanitizer.d.ts +51 -0
- package/dist/privacy-tracker-generator.d.ts +81 -0
- package/dist/privacy-visitor-hasher.d.ts +62 -0
- package/dist/product-analytics.d.ts +51 -0
- package/dist/product-health-analyzer.d.ts +86 -0
- package/dist/product-usage-analytics.d.ts +46 -0
- package/dist/profiles/behavioral-cohort.d.ts +59 -0
- package/dist/profiles/customer-360.d.ts +39 -0
- package/dist/providers/firecrawl-provider.d.ts +30 -0
- package/dist/providers/firecrawl.d.ts +33 -0
- package/dist/providers/profound-provider.d.ts +28 -0
- package/dist/providers/profound.d.ts +30 -0
- package/dist/providers/search-provider.d.ts +9 -0
- package/dist/providers/seranking-provider.d.ts +29 -0
- package/dist/providers/seranking.d.ts +32 -0
- package/dist/pseo-cli.d.ts +9 -0
- package/dist/pseo-feasibility-scorer.d.ts +44 -0
- package/dist/pseo-geo-citability-booster.d.ts +75 -0
- package/dist/pseo-preflight-gate.d.ts +73 -0
- package/dist/pseo-publisher-bridge.d.ts +59 -0
- package/dist/pseo-quality-circuit-breaker.d.ts +60 -0
- package/dist/public-page-interactive.d.ts +77 -0
- package/dist/public-status-pages.d.ts +61 -0
- package/dist/pulse-remote-config.d.ts +36 -0
- package/dist/pulse-shield-engine.d.ts +76 -0
- package/dist/pulse-telemetry.d.ts +77 -0
- package/dist/rank-math-parity.d.ts +2 -2
- package/dist/rbac-granular.d.ts +47 -0
- package/dist/reader-cleaner.d.ts +40 -0
- package/dist/real-user-monitoring.d.ts +93 -0
- package/dist/real-volume-indexability-gate.d.ts +37 -0
- package/dist/realtime-visitors.d.ts +87 -0
- package/dist/regex-redirect-engine.d.ts +75 -0
- package/dist/report-builder.d.ts +79 -0
- package/dist/resource-hub-generator.d.ts +44 -0
- package/dist/reverse-etl/audience-sync.d.ts +76 -0
- package/dist/rich-results-validator.d.ts +54 -0
- package/dist/rivo-sync-engine.d.ts +33 -0
- package/dist/robots-policy.d.ts +54 -0
- package/dist/robots-txt-simulator.d.ts +94 -0
- package/dist/robots-unified.d.ts +132 -0
- package/dist/row-column-ls.d.ts +64 -0
- package/dist/rss-syndication-feed.d.ts +1 -1
- package/dist/rules/checks-runner.d.ts +17 -0
- package/dist/rules/search-central-catalog.d.ts +43 -0
- package/dist/rum-metrics.d.ts +20 -0
- package/dist/saved-segments.d.ts +38 -0
- package/dist/scheduled-reports.d.ts +42 -0
- package/dist/schema-builder.d.ts +14 -0
- package/dist/screaming-frog-importer.d.ts +109 -0
- package/dist/sdk/lynx-mobile-replay.d.ts +129 -0
- package/dist/sdk/lynx-mobile-sdk.d.ts +152 -0
- package/dist/sdk/lynx-node-sdk.d.ts +138 -0
- package/dist/sdk/react-native/lynx-react-native.d.ts +88 -0
- package/dist/sea-seo-bridge-engine.d.ts +121 -0
- package/dist/selfhost-extensions.d.ts +57 -0
- package/dist/semantic/agent-schema.d.ts +322 -0
- package/dist/semantic/cache.d.ts +91 -0
- package/dist/semantic/catalog/seo-models.d.ts +2 -0
- package/dist/semantic/catalog/seo-models.fixtures.d.ts +17 -0
- package/dist/semantic/chart-suggestion.d.ts +23 -0
- package/dist/semantic/compiler.d.ts +69 -0
- package/dist/semantic/diagnostics.d.ts +62 -0
- package/dist/semantic/dialects/bigquery.d.ts +2 -0
- package/dist/semantic/dialects/clickhouse.d.ts +2 -0
- package/dist/semantic/dialects/features.d.ts +10 -0
- package/dist/semantic/dialects/index.d.ts +10 -0
- package/dist/semantic/dialects/postgres.d.ts +2 -0
- package/dist/semantic/dialects/redshift.d.ts +2 -0
- package/dist/semantic/dialects/registry.d.ts +31 -0
- package/dist/semantic/dialects/snowflake.d.ts +2 -0
- package/dist/semantic/dialects/sqlite.d.ts +2 -0
- package/dist/semantic/dialects/types.d.ts +118 -0
- package/dist/semantic/eval-memory.d.ts +41 -0
- package/dist/semantic/expr-json.d.ts +6 -0
- package/dist/semantic/expr.d.ts +59 -0
- package/dist/semantic/filters/coerce.d.ts +54 -0
- package/dist/semantic/filters/evaluate.d.ts +27 -0
- package/dist/semantic/filters/operators.d.ts +55 -0
- package/dist/semantic/filters/types.d.ts +79 -0
- package/dist/semantic/hogql-transpiler.d.ts +49 -0
- package/dist/semantic/metadata.d.ts +139 -0
- package/dist/semantic/parameters/filter-parameter.d.ts +19 -0
- package/dist/semantic/parameters/json.d.ts +11 -0
- package/dist/semantic/parameters/resolve.d.ts +26 -0
- package/dist/semantic/parameters/types.d.ts +23 -0
- package/dist/semantic/parameters/values.d.ts +60 -0
- package/dist/semantic/periods/period-filter.d.ts +32 -0
- package/dist/semantic/periods/relative.d.ts +86 -0
- package/dist/semantic/pipeline.d.ts +197 -0
- package/dist/semantic/pivot-powerset.d.ts +31 -0
- package/dist/semantic/pivot.d.ts +58 -0
- package/dist/semantic/primitives.d.ts +23 -0
- package/dist/semantic/question.d.ts +71 -0
- package/dist/semantic/registry.d.ts +31 -0
- package/dist/semantic/sandbox.d.ts +132 -0
- package/dist/semantic/schema-registry.d.ts +65 -0
- package/dist/semantic/schema-validator.d.ts +16 -0
- package/dist/semantic/schemas/expr.schemas.d.ts +1 -0
- package/dist/semantic/schemas/index.d.ts +4 -0
- package/dist/semantic/schemas/pipeline.schemas.d.ts +1 -0
- package/dist/semantic/schemas/query.schemas.d.ts +1 -0
- package/dist/semantic/schemas/semantic-query.schemas.d.ts +1 -0
- package/dist/semantic/serialization.d.ts +356 -0
- package/dist/semantic/sql-ast-builder.d.ts +45 -0
- package/dist/semantic/sql-ast.d.ts +155 -0
- package/dist/semantic/sql-formatter.d.ts +12 -0
- package/dist/semantic/sql-guard.d.ts +28 -0
- package/dist/semantic/sql-lex.d.ts +31 -0
- package/dist/semantic/sql-snippets.d.ts +39 -0
- package/dist/semantic/streaming.d.ts +54 -0
- package/dist/semantic/timezone.d.ts +24 -0
- package/dist/semantic/transforms/dag.d.ts +43 -0
- package/dist/semantic/types.d.ts +199 -0
- package/dist/semantic/vocabulary.d.ts +10 -0
- package/dist/semantic-auditor.d.ts +51 -0
- package/dist/sendlane-sync-engine.d.ts +32 -0
- package/dist/seo-chart-spec.d.ts +63 -0
- package/dist/seo-diagram-generator.d.ts +86 -0
- package/dist/seo-drift-comparator.d.ts +82 -0
- package/dist/seo-metric-registry.d.ts +86 -0
- package/dist/seo-opportunities-decay.d.ts +1 -1
- package/dist/seo-opportunity-prioritizer.d.ts +53 -15
- package/dist/seo-quadrant-analyzer.d.ts +133 -0
- package/dist/seo-query-builder.d.ts +70 -0
- package/dist/seo-spelling-grammar-auditor.d.ts +42 -0
- package/dist/serp/serp-features.d.ts +10 -0
- package/dist/serp/serp-history.d.ts +21 -0
- package/dist/serp-alert-dispatcher.d.ts +119 -0
- package/dist/serp-client.d.ts +193 -21
- package/dist/serp-features-scorer.d.ts +43 -0
- package/dist/serp-retry-queue.d.ts +50 -0
- package/dist/server-log-parser.d.ts +56 -0
- package/dist/session-replay-adapted.d.ts +27 -0
- package/dist/session-replay-recorder.d.ts +53 -0
- package/dist/shopify-autopilot-bridge.d.ts +69 -0
- package/dist/shopify-discount-engine.d.ts +51 -0
- package/dist/shopify-seo-connector.d.ts +80 -0
- package/dist/short-links.d.ts +59 -0
- package/dist/shortlinks/shortlinks.d.ts +14 -0
- package/dist/site-crawler.d.ts +221 -11
- package/dist/sitemap-chunk-partitioner.d.ts +62 -0
- package/dist/slug-engine.d.ts +6 -0
- package/dist/sms-compliance-engine.d.ts +47 -0
- package/dist/social-ad-creative-intelligence.d.ts +65 -0
- package/dist/social-article-carousel-generator.d.ts +63 -0
- package/dist/social-community-insights.d.ts +30 -2
- package/dist/social-growth-suite.d.ts +12 -2
- package/dist/social-serp-preview-simulator.d.ts +87 -0
- package/dist/spintax-permutator.d.ts +47 -0
- package/dist/sql-engine-advanced.d.ts +476 -0
- package/dist/sql-query-builder.d.ts +23 -0
- package/dist/static-viz-renderer.d.ts +30 -0
- package/dist/strategic-roadmap-generator.d.ts +34 -0
- package/dist/supercocon-hierarchy-architect.d.ts +73 -0
- package/dist/survey-builder.d.ts +59 -0
- package/dist/sxo-experience-optimizer.d.ts +51 -0
- package/dist/technical-rules-auditor.d.ts +37 -6
- package/dist/telemetry-doctor.d.ts +97 -0
- package/dist/timelines/projection.d.ts +69 -0
- package/dist/timelines/visibility.d.ts +80 -0
- package/dist/tools/log-analytics-importer.d.ts +82 -0
- package/dist/tracker-adapted/clickmap-adapted.d.ts +33 -0
- package/dist/tracker-adapted/cohort-builder-adapted.d.ts +25 -0
- package/dist/tracker-adapted/console-adapted.d.ts +10 -0
- package/dist/tracker-adapted/exception-adapted.d.ts +35 -0
- package/dist/tracker-adapted/feature-flags-adapted.d.ts +23 -0
- package/dist/tracker-adapted/input-adapted.d.ts +37 -0
- package/dist/tracker-adapted/integrations-adapted.d.ts +157 -0
- package/dist/tracker-adapted/mixpanel-adapted.d.ts +19 -0
- package/dist/tracker-adapted/ml-alerts-adapted.d.ts +24 -0
- package/dist/tracker-adapted/mouse-adapted.d.ts +16 -0
- package/dist/tracker-adapted/network-adapted.d.ts +25 -0
- package/dist/tracker-adapted/offline-resilient-queue.d.ts +66 -0
- package/dist/tracker-adapted/performance-adapted.d.ts +13 -0
- package/dist/tracker-adapted/sourcemap-uploader-adapted.d.ts +19 -0
- package/dist/tracker-adapted/sourcemapreader-adapted.d.ts +19 -0
- package/dist/tracker-adapted/state-adapted.d.ts +17 -0
- package/dist/traffic-attribution.d.ts +39 -0
- package/dist/traffic-valuation-engine.d.ts +68 -0
- package/dist/types.d.ts +3 -3
- package/dist/ucp-validator.d.ts +67 -0
- package/dist/unified-hybrid-scorer.d.ts +86 -0
- package/dist/universal-seo-bridge.d.ts +174 -0
- package/dist/urlytics-engine.d.ts +0 -1
- package/dist/user-agent-parser.d.ts +25 -0
- package/dist/user-id-tracking.d.ts +74 -0
- package/dist/user-journeys-advanced.d.ts +30 -0
- package/dist/user-journeys.d.ts +19 -0
- package/dist/user-traits.d.ts +15 -0
- package/dist/utm-conventions.d.ts +37 -0
- package/dist/video-seo-metadata-optimizer.d.ts +54 -0
- package/dist/video-youtube-analyzer.d.ts +11 -0
- package/dist/wayback-client.d.ts +36 -0
- package/dist/webhook-service.d.ts +98 -0
- package/dist/webhooks-dispatcher.d.ts +178 -0
- package/dist/weekly-report.d.ts +40 -0
- package/dist/white-label-exports.d.ts +50 -0
- package/dist/word-frequency-analyzer.d.ts +48 -0
- package/dist/xlsx-workbook.d.ts +15 -0
- package/dist/xray-dashboard.d.ts +76 -0
- package/dist/yoast-parity.d.ts +86 -5
- package/dist/yoast-schema-graph.d.ts +39 -0
- package/dist/yoast-variable-replacer.d.ts +34 -0
- package/dist/yotpo-sync-engine.d.ts +28 -0
- package/dist/youtube-api-client.d.ts +139 -0
- package/package.json +32 -8
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import type { AggregateFunction, QueryValue } from "../../seo-query-builder";
|
|
2
|
+
export type SqlDialectId = "sqlite" | "postgres" | "clickhouse" | "bigquery" | "snowflake" | "redshift";
|
|
3
|
+
export type SqlParamType = "string" | "number" | "boolean" | "date";
|
|
4
|
+
export type DateUnit = "day" | "week" | "month" | "year";
|
|
5
|
+
/**
|
|
6
|
+
* Granularites de troncature. `DateUnit` ne couvre que les ecarts
|
|
7
|
+
* calendaires que `dateDiff` sait mesurer ; la troncature, elle, sait
|
|
8
|
+
* descendre a la minute et a l'heure et monter au trimestre.
|
|
9
|
+
*/
|
|
10
|
+
export type DateTruncUnit = DateUnit | "minute" | "hour" | "quarter";
|
|
11
|
+
export type SqlValueType = "string" | "number" | "date" | "boolean";
|
|
12
|
+
/**
|
|
13
|
+
* Un dialecte SQL : tout ce qui varie entre D1 (SQLite), Hyperdrive
|
|
14
|
+
* (Postgres) et ClickHouse.
|
|
15
|
+
*/
|
|
16
|
+
export interface SqlDialect {
|
|
17
|
+
id: SqlDialectId;
|
|
18
|
+
quoteIdent(name: string): string;
|
|
19
|
+
placeholder(index: number, type: SqlParamType): string;
|
|
20
|
+
boolLiteral(value: boolean): string;
|
|
21
|
+
numericCast(expr: string): string;
|
|
22
|
+
safeDivide(numerator: string, denominator: string): string;
|
|
23
|
+
round(expr: string, digits: number): string;
|
|
24
|
+
abs(expr: string): string;
|
|
25
|
+
floor(expr: string): string;
|
|
26
|
+
ceil(expr: string): string;
|
|
27
|
+
lower(expr: string): string;
|
|
28
|
+
upper(expr: string): string;
|
|
29
|
+
length(expr: string): string;
|
|
30
|
+
coalesce(parts: string[]): string;
|
|
31
|
+
concat(parts: string[]): string;
|
|
32
|
+
contains(haystack: string, needle: string): string;
|
|
33
|
+
startsWith(haystack: string, needle: string): string;
|
|
34
|
+
endsWith(haystack: string, needle: string): string;
|
|
35
|
+
cast(expr: string, type: SqlValueType): string;
|
|
36
|
+
dateTrunc(unit: DateTruncUnit, expr: string): string;
|
|
37
|
+
/**
|
|
38
|
+
* Le jour calendaire UTC d'un champ temporel, rendu en texte ISO
|
|
39
|
+
* (`YYYY-MM-DD`).
|
|
40
|
+
*
|
|
41
|
+
* Les trois dialectes rendent le **même texte** : les comparaisons de
|
|
42
|
+
* jours sont donc lexicographiques, et identiques sur D1, Hyperdrive et
|
|
43
|
+
* ClickHouse.
|
|
44
|
+
*/
|
|
45
|
+
dateDayExpr(expr: string): string;
|
|
46
|
+
/**
|
|
47
|
+
* Difference de dates. Convention de signe : `left - right`.
|
|
48
|
+
*
|
|
49
|
+
* - Unites ELAPSED (tronquees vers zero, pas arrondies ni planchées) :
|
|
50
|
+
* `day` (periodes de 24h), `week` (periodes de 7x24h).
|
|
51
|
+
* - Unites CALENDRIER (difference de composantes date) : `month`, `year`.
|
|
52
|
+
*
|
|
53
|
+
* Les trois dialectes doivent renvoyer le meme entier pour les unites
|
|
54
|
+
* elapsed sur une meme paire (left, right), y compris pour les valeurs
|
|
55
|
+
* negatives (troncature vers zero).
|
|
56
|
+
*/
|
|
57
|
+
dateDiff(unit: DateTruncUnit, left: string, right: string): string;
|
|
58
|
+
/**
|
|
59
|
+
* Convertit un instant dans l'heure murale d'un fuseau IANA.
|
|
60
|
+
*
|
|
61
|
+
* SQLite n'embarque pas de base de fuseaux : son implementation leve.
|
|
62
|
+
*/
|
|
63
|
+
applyTimezone(expr: string, timezone: string): string;
|
|
64
|
+
/** Troncature dans l'heure murale d'un fuseau IANA. */
|
|
65
|
+
dateTruncInTimezone(unit: DateTruncUnit, expr: string, timezone: string): string;
|
|
66
|
+
/** Difference de dates dans l'heure murale d'un fuseau IANA. */
|
|
67
|
+
dateDiffInTimezone(unit: DateTruncUnit, left: string, right: string, timezone: string): string;
|
|
68
|
+
aggregate(fn: AggregateFunction, expr: string): string;
|
|
69
|
+
renderLimit(limit: number, offset?: number): string;
|
|
70
|
+
renderTemplate(template: string, ctx: Record<string, unknown>): {
|
|
71
|
+
sql: string;
|
|
72
|
+
params: unknown[];
|
|
73
|
+
};
|
|
74
|
+
paramType(value: QueryValue): SqlParamType;
|
|
75
|
+
/**
|
|
76
|
+
* Compile une fonction fenêtrée (ROW_NUMBER, RANK, LAG, LEAD,
|
|
77
|
+
* SUM OVER, COUNT OVER, AVG OVER, MIN/MAX OVER, NTILE, etc.).
|
|
78
|
+
*/
|
|
79
|
+
window(expr: string, over: {
|
|
80
|
+
partitionBy?: string[];
|
|
81
|
+
orderBy?: string;
|
|
82
|
+
frame?: string;
|
|
83
|
+
}): string;
|
|
84
|
+
/**
|
|
85
|
+
* Compile un offset par rapport à la ligne courante (LAG/LEAD génériques).
|
|
86
|
+
*/
|
|
87
|
+
offset(expr: string, offset: number, defaultValue: string | null, over: {
|
|
88
|
+
partitionBy?: string[];
|
|
89
|
+
orderBy?: string;
|
|
90
|
+
}): string;
|
|
91
|
+
/**
|
|
92
|
+
* Compile une expression de rang (RANK/DENSE_RANK/ROW_NUMBER).
|
|
93
|
+
*/
|
|
94
|
+
rank(kind: "row_number" | "rank" | "dense_rank" | "percent_rank" | "cum_dist", over: {
|
|
95
|
+
partitionBy?: string[];
|
|
96
|
+
orderBy: string;
|
|
97
|
+
}): string;
|
|
98
|
+
/**
|
|
99
|
+
* Compile une fonction d'agrégation fenêtrée (SUM/COUNT/AVG/MIN/MAX OVER).
|
|
100
|
+
*/
|
|
101
|
+
windowAggregate(fn: AggregateFunction, expr: string, over: {
|
|
102
|
+
partitionBy?: string[];
|
|
103
|
+
orderBy?: string;
|
|
104
|
+
frame?: string;
|
|
105
|
+
}): string;
|
|
106
|
+
/**
|
|
107
|
+
* Compile un CTE de nom donné à partir d'une sous-requête.
|
|
108
|
+
*/
|
|
109
|
+
cte(name: string, query: string, columns?: string[]): string;
|
|
110
|
+
/**
|
|
111
|
+
* Retourne `true` si le dialecte supporte les CTE (WITH ... AS (...)).
|
|
112
|
+
*/
|
|
113
|
+
supportsCte(): boolean;
|
|
114
|
+
/**
|
|
115
|
+
* Rend la définition d'une table dérivée (sous-requête dans FROM).
|
|
116
|
+
*/
|
|
117
|
+
derivedTable(query: string, alias: string): string;
|
|
118
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { QueryFilter, QueryValue } from "../seo-query-builder";
|
|
2
|
+
import type { ResolvedParameters } from "./parameters/resolve";
|
|
3
|
+
import { type MetricExpr } from "./expr";
|
|
4
|
+
import { type SandboxAttributes, type SandboxContext } from "./sandbox";
|
|
5
|
+
/**
|
|
6
|
+
* Évaluateur en mémoire de la couche sémantique.
|
|
7
|
+
*
|
|
8
|
+
* Miroir exact du compilateur SQL : une expression doit produire le même
|
|
9
|
+
* résultat en mémoire et en base. Toute divergence entre les deux est un bug.
|
|
10
|
+
*
|
|
11
|
+
* Contrat de `dateDiff` (identique aux trois dialectes SQL) :
|
|
12
|
+
* - unités **écoulées** (`day` = 24 h, `week` = 7 × 24 h) : périodes entières
|
|
13
|
+
* **tronquées vers zéro**, ni arrondies ni planchées ;
|
|
14
|
+
* - unités **calendaires** (`month`, `year`) : différence de composantes de
|
|
15
|
+
* date ;
|
|
16
|
+
* - convention de signe : `left - right` ;
|
|
17
|
+
* - une date invalide rend `null` (et non `0`).
|
|
18
|
+
*/
|
|
19
|
+
export type EvalRow = Record<string, QueryValue>;
|
|
20
|
+
/** Évalue une expression sur une ligne. */
|
|
21
|
+
export declare function evalExpr(expr: MetricExpr, row: EvalRow, aggregates?: Map<MetricExpr, QueryValue>): QueryValue;
|
|
22
|
+
/**
|
|
23
|
+
* Évalue une expression **sur un groupe de lignes** : les agrégats qu'elle
|
|
24
|
+
* contient sont calculés sur le groupe, puis substitués.
|
|
25
|
+
*/
|
|
26
|
+
export declare function evalAggregate(expr: MetricExpr, rows: EvalRow[]): QueryValue;
|
|
27
|
+
/**
|
|
28
|
+
* Filtre sémantique : délègue à `evaluateFilter` de `seo-query-builder.ts`,
|
|
29
|
+
* qui en reste la référence unique (contains/starts_with/ends_with insensibles
|
|
30
|
+
* à la casse, comparaisons numériques strictes).
|
|
31
|
+
*
|
|
32
|
+
* Les options sont transmises telles quelles : une période relative et un
|
|
33
|
+
* paramètre typé doivent se résoudre **de la même façon** en mémoire et en
|
|
34
|
+
* SQL, sinon les deux moteurs de sélection divergeraient.
|
|
35
|
+
*/
|
|
36
|
+
export declare function evaluateSemanticFilter(row: EvalRow, filter: QueryFilter, options?: {
|
|
37
|
+
now?: Date;
|
|
38
|
+
parameters?: ResolvedParameters;
|
|
39
|
+
sandbox?: SandboxContext;
|
|
40
|
+
sandboxAttributes?: SandboxAttributes;
|
|
41
|
+
}): boolean;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { QueryFilter } from "../seo-query-builder";
|
|
2
|
+
import type { MetricExpr } from "./expr";
|
|
3
|
+
export declare function parseMetricExpr(raw: string): MetricExpr;
|
|
4
|
+
export declare function stringifyMetricExpr(expr: MetricExpr): string;
|
|
5
|
+
export declare function parseQueryFilter(raw: string): QueryFilter;
|
|
6
|
+
export declare function stringifyQueryFilter(filter: QueryFilter): string;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type { AggregateFunction, QueryValue } from "../seo-query-builder";
|
|
2
|
+
/**
|
|
3
|
+
* Le langage d'expression de la couche sémantique.
|
|
4
|
+
*
|
|
5
|
+
* Une expression est un **AST JSON** : sérialisable, versionnable, diffable,
|
|
6
|
+
* et exploitable par deux backends — un évaluateur en mémoire et un
|
|
7
|
+
* compilateur SQL. C'est ce qui permet à un catalogue livré par le code et
|
|
8
|
+
* à un modèle écrit par l'utilisateur d'être interchangeables.
|
|
9
|
+
*/
|
|
10
|
+
export declare const METRIC_FNS: readonly ["safeRatio", "safePercent", "normalizeCtrInput", "abs", "round", "floor", "ceil", "lower", "upper", "length", "coalesce", "concat", "contains", "startsWith", "endsWith", "dateTrunc", "dateDiff"];
|
|
11
|
+
export type MetricFn = (typeof METRIC_FNS)[number];
|
|
12
|
+
export declare const METRIC_OPS: readonly ["+", "-", "*", "/", "=", "!=", "<>", ">", ">=", "<", "<="];
|
|
13
|
+
export type MetricOp = (typeof METRIC_OPS)[number];
|
|
14
|
+
export type MetricExpr = {
|
|
15
|
+
kind: "column";
|
|
16
|
+
name: string;
|
|
17
|
+
} | {
|
|
18
|
+
kind: "literal";
|
|
19
|
+
value: QueryValue;
|
|
20
|
+
} | {
|
|
21
|
+
kind: "call";
|
|
22
|
+
fn: MetricFn;
|
|
23
|
+
args: MetricExpr[];
|
|
24
|
+
} | {
|
|
25
|
+
kind: "binary";
|
|
26
|
+
op: MetricOp;
|
|
27
|
+
left: MetricExpr;
|
|
28
|
+
right: MetricExpr;
|
|
29
|
+
} | {
|
|
30
|
+
kind: "agg";
|
|
31
|
+
fn: AggregateFunction;
|
|
32
|
+
expr: MetricExpr;
|
|
33
|
+
} | {
|
|
34
|
+
kind: "case";
|
|
35
|
+
whens: {
|
|
36
|
+
when: MetricExpr;
|
|
37
|
+
then: MetricExpr;
|
|
38
|
+
}[];
|
|
39
|
+
else?: MetricExpr;
|
|
40
|
+
} | {
|
|
41
|
+
kind: "ifnull";
|
|
42
|
+
left: MetricExpr;
|
|
43
|
+
right: MetricExpr;
|
|
44
|
+
};
|
|
45
|
+
export declare const col: (name: string) => MetricExpr;
|
|
46
|
+
export declare const lit: (value: QueryValue) => MetricExpr;
|
|
47
|
+
export declare const call: (fn: MetricFn, ...args: MetricExpr[]) => MetricExpr;
|
|
48
|
+
export declare const bin: (op: MetricOp, left: MetricExpr, right: MetricExpr) => MetricExpr;
|
|
49
|
+
export declare const agg: (fn: AggregateFunction, expr: MetricExpr) => MetricExpr;
|
|
50
|
+
export declare const caseOf: (whens: {
|
|
51
|
+
when: MetricExpr;
|
|
52
|
+
then: MetricExpr;
|
|
53
|
+
}[], elseExpr?: MetricExpr) => MetricExpr;
|
|
54
|
+
export declare const ifnull: (left: MetricExpr, right: MetricExpr) => MetricExpr;
|
|
55
|
+
/**
|
|
56
|
+
* Parcourt l'arbre et retourne les noeuds d'agrégat **sans** descendre dans
|
|
57
|
+
* leur expression interne (l'agrégat est opaque : `sum(sum(x))` n'existe pas).
|
|
58
|
+
*/
|
|
59
|
+
export declare function collectAggregates(expr: MetricExpr): MetricExpr[];
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* La coercition des valeurs de filtre.
|
|
3
|
+
*
|
|
4
|
+
* Un filtre compare une valeur de champ à une valeur saisie par
|
|
5
|
+
* l'utilisateur. Les deux ne sont pas forcément du même type : une
|
|
6
|
+
* colonne `TEXT` porte « 42 », un formulaire saisit `42`, une API envoie
|
|
7
|
+
* `"42"`. Sans coercition, la comparaison échoue et le filtre ne retient
|
|
8
|
+
* rien.
|
|
9
|
+
*
|
|
10
|
+
* La coercition ne s'applique **que** quand le type du champ est connu. Un
|
|
11
|
+
* filtre historique, persisté en base, ne porte pas de type : sa sémantique
|
|
12
|
+
* est alors laissée strictement inchangée, pour que les filtres déjà
|
|
13
|
+
* enregistrés continuent de retenir exactement les mêmes lignes.
|
|
14
|
+
*/
|
|
15
|
+
import type { FilterFieldType, QueryValue } from "./types";
|
|
16
|
+
/** Le résultat d'une coercition : la valeur convertie, ou l'échec. */
|
|
17
|
+
export type CoercionResult = {
|
|
18
|
+
ok: true;
|
|
19
|
+
value: QueryValue;
|
|
20
|
+
} | {
|
|
21
|
+
ok: false;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Convertit une valeur dans le type du champ.
|
|
25
|
+
*
|
|
26
|
+
* Une valeur nulle ou absente est **toujours** valide : elle vaut `null`.
|
|
27
|
+
* Une valeur non convertible fait échouer la coercition.
|
|
28
|
+
*/
|
|
29
|
+
export declare function tryCoerceFilterValue(type: FilterFieldType, value: unknown): CoercionResult;
|
|
30
|
+
/**
|
|
31
|
+
* Convertit une valeur dans le type du champ, ou renvoie `null` si la
|
|
32
|
+
* conversion échoue. `null` est aussi la valeur nulle : appelez
|
|
33
|
+
* `tryCoerceFilterValue` quand la distinction importe.
|
|
34
|
+
*/
|
|
35
|
+
export declare function coerceFilterValue(type: FilterFieldType, value: unknown): QueryValue | null;
|
|
36
|
+
/**
|
|
37
|
+
* Prépare la comparaison des deux côtés d'un filtre.
|
|
38
|
+
*
|
|
39
|
+
* Sans type de champ, les valeurs sont reprises telles quelles : c'est la
|
|
40
|
+
* sémantique historique. Avec un type, les deux côtés sont convertis ; si
|
|
41
|
+
* l'une des deux conversions échoue, la comparaison n'est pas possible.
|
|
42
|
+
*/
|
|
43
|
+
export declare function coerceComparison(type: FilterFieldType | undefined, left: unknown, right: unknown): {
|
|
44
|
+
left: QueryValue;
|
|
45
|
+
right: QueryValue;
|
|
46
|
+
comparable: boolean;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Le jour UTC d'une valeur temporelle, au format `YYYY-MM-DD`.
|
|
50
|
+
*
|
|
51
|
+
* Les opérateurs temporels (`on`) comparent des **jours**, pas des instants :
|
|
52
|
+
* une donnée du 20 octobre à 08:00 appartient au 20 octobre.
|
|
53
|
+
*/
|
|
54
|
+
export declare function toUtcDay(value: unknown): string | null;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* L'évaluation des filtres, en mémoire.
|
|
3
|
+
*
|
|
4
|
+
* Ce module est le pendant de `semantic/compiler.ts` : les deux doivent
|
|
5
|
+
* retenir exactement les mêmes lignes. Le compilateur produit du SQL, ce
|
|
6
|
+
* module produit un booléen ; ils lisent le même `QueryFilter` et appliquent
|
|
7
|
+
* la même sémantique.
|
|
8
|
+
*
|
|
9
|
+
* La sémantique des douze opérateurs historiques est **figée** : des filtres
|
|
10
|
+
* sont persistés en base (`semantic_segments.filter`,
|
|
11
|
+
* `semantic_metrics.filters`) et doivent continuer de retenir les mêmes
|
|
12
|
+
* lignes. Un filtre qui ne porte pas de `fieldType` est donc comparé
|
|
13
|
+
* « à la brute », exactement comme avant l'extension J6.
|
|
14
|
+
*/
|
|
15
|
+
import type { ResolvedParameters } from "../parameters/resolve";
|
|
16
|
+
import type { QueryFilter, QueryRow } from "./types";
|
|
17
|
+
/**
|
|
18
|
+
* Évalue un filtre sur une ligne.
|
|
19
|
+
*
|
|
20
|
+
* Un opérateur inconnu lève une erreur : le filtre porte souvent
|
|
21
|
+
* l'isolation du tenant, et un prédicat neutre exposerait les données de
|
|
22
|
+
* tous les tenants.
|
|
23
|
+
*/
|
|
24
|
+
export declare function evaluateFilter(row: QueryRow, filter: QueryFilter, options?: {
|
|
25
|
+
now?: Date;
|
|
26
|
+
parameters?: ResolvedParameters;
|
|
27
|
+
}): boolean;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Le catalogue des opérateurs de filtre.
|
|
3
|
+
*
|
|
4
|
+
* Ce fichier est une **réécriture** du catalogue d'opérateurs de Metabase
|
|
5
|
+
* (`frontend/src/metabase-lib/v1/operators/constants.ts`).
|
|
6
|
+
* Rien n'y est repris tel quel : l'amont exprime ses opérateurs avec des
|
|
7
|
+
* symboles (`=`, `is-null`, `does-not-contain`) et un système d'arguments
|
|
8
|
+
* dynamiques (`validArgumentsFilters`) ; LynxSEO conserve ses **propres noms**
|
|
9
|
+
* d'opérateurs, parce que des filtres sont persistés en base et que l'API
|
|
10
|
+
* publique du moteur ne peut pas changer.
|
|
11
|
+
*
|
|
12
|
+
* Ce que le port apporte : chaque opérateur sait **quels types de champ** il
|
|
13
|
+
* accepte, **combien d'arguments** il prend, et à quelle catégorie
|
|
14
|
+
* d'interface il appartient. C'est ce qui permet à un formulaire de proposer
|
|
15
|
+
* le bon opérateur, et à l'évaluateur et au compilateur SQL de s'accorder.
|
|
16
|
+
*/
|
|
17
|
+
import type { FilterFieldType, FilterOperator } from "./types";
|
|
18
|
+
/** La catégorie d'interface d'un opérateur. */
|
|
19
|
+
export type FilterOperatorCategory = "comparison" | "text" | "emptiness" | "membership" | "range" | "temporal";
|
|
20
|
+
/** La description d'un opérateur. */
|
|
21
|
+
export interface FilterOperatorSpec {
|
|
22
|
+
/** L'identifiant de l'opérateur, tel qu'il est persisté. */
|
|
23
|
+
name: FilterOperator;
|
|
24
|
+
/** Le libellé affiché dans l'interface, en français. */
|
|
25
|
+
label: string;
|
|
26
|
+
/** Les types de champ compatibles avec l'opérateur. */
|
|
27
|
+
fieldTypes: readonly FilterFieldType[];
|
|
28
|
+
/** Le nombre d'arguments attendus (0, 1 ou 2). */
|
|
29
|
+
arity: 0 | 1 | 2;
|
|
30
|
+
/** La catégorie d'interface. */
|
|
31
|
+
category: FilterOperatorCategory;
|
|
32
|
+
/** L'opérateur compare à une collection de valeurs. */
|
|
33
|
+
multi?: boolean;
|
|
34
|
+
/** L'opérateur textuel distingue la casse. */
|
|
35
|
+
caseSensitive?: boolean;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Le catalogue. L'ordre est celui d'affichage : d'abord l'égalité, puis les
|
|
39
|
+
* comparaisons ordonnées, puis le texte, puis l'emptiness, puis les
|
|
40
|
+
* collections, puis les plages, puis le temporel.
|
|
41
|
+
*/
|
|
42
|
+
export declare const FILTER_OPERATOR_SPECS: readonly FilterOperatorSpec[];
|
|
43
|
+
/**
|
|
44
|
+
* La description d'un opérateur.
|
|
45
|
+
*
|
|
46
|
+
* Un opérateur inconnu est une **erreur** : le filtre porte souvent
|
|
47
|
+
* l'isolation du tenant, et un opérateur méconnu ne doit jamais se dégrader
|
|
48
|
+
* en prédicat neutre.
|
|
49
|
+
*/
|
|
50
|
+
export declare function filterOperatorSpec(name: FilterOperator): FilterOperatorSpec;
|
|
51
|
+
/**
|
|
52
|
+
* Les opérateurs compatibles avec un type de champ, dans l'ordre du
|
|
53
|
+
* catalogue.
|
|
54
|
+
*/
|
|
55
|
+
export declare function operatorsForFieldType(type: FilterFieldType): readonly FilterOperatorSpec[];
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Le vocabulaire des filtres du noyau sémantique.
|
|
3
|
+
*
|
|
4
|
+
* Ces types sont extraits de `seo-query-builder.ts` pour que le module des
|
|
5
|
+
* filtres (`filters/operators.ts`, `filters/coerce.ts`, `filters/evaluate.ts`)
|
|
6
|
+
* n'ait aucune dépendance vers `seo-query-builder.ts` : sans cela, le
|
|
7
|
+
* re-export du filtre évalué créerait un cycle d'imports.
|
|
8
|
+
*
|
|
9
|
+
* `seo-query-builder.ts` ré-exporte tout ce qui est déclaré ici : l'API
|
|
10
|
+
* publique du moteur (`packages/lynx-seo-engine/src/index.ts` fait
|
|
11
|
+
* `export * from "./seo-query-builder"`) reste donc inchangée.
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Le type d'un champ filtrable. Aligné sur `SemanticFieldType` du noyau
|
|
15
|
+
* sémantique : les deux listes décrivent le même système.
|
|
16
|
+
*/
|
|
17
|
+
export type FilterFieldType = "string" | "number" | "date" | "boolean";
|
|
18
|
+
/**
|
|
19
|
+
* Les opérateurs de filtre.
|
|
20
|
+
*
|
|
21
|
+
* Les douze premiers sont historiques : leur sémantique est **figée** et ne
|
|
22
|
+
* doit pas changer, parce que des filtres sont persistés en base
|
|
23
|
+
* (`semantic_segments.filter`, `semantic_metrics.filters`). Les huit
|
|
24
|
+
* suivants sont l'extension J6.
|
|
25
|
+
*/
|
|
26
|
+
export declare const FILTER_OPERATORS: readonly ["equals", "not_equals", "contains", "not_contains", "starts_with", "ends_with", "greater_than", "greater_than_or_equal", "less_than", "less_than_or_equal", "is_empty", "is_not_empty", "in", "not_in", "is_null", "is_not_null", "between", "before", "after", "on"];
|
|
27
|
+
export type FilterOperator = (typeof FILTER_OPERATORS)[number];
|
|
28
|
+
/** Une valeur scalaire de cellule ou de filtre. */
|
|
29
|
+
export type QueryValue = string | number | boolean | null;
|
|
30
|
+
/** Une ligne de résultat, indexée par nom de champ. */
|
|
31
|
+
export type QueryRow = Record<string, QueryValue>;
|
|
32
|
+
/**
|
|
33
|
+
* Un filtre posé sur un champ.
|
|
34
|
+
*
|
|
35
|
+
* `value` est un scalaire pour les opérateurs unaires, un **tableau** pour
|
|
36
|
+
* `in` / `not_in`, et un couple `[borne, borne]` pour `between`.
|
|
37
|
+
*/
|
|
38
|
+
export interface QueryFilter {
|
|
39
|
+
field: string;
|
|
40
|
+
operator: FilterOperator;
|
|
41
|
+
value?: QueryValue | QueryValue[];
|
|
42
|
+
/**
|
|
43
|
+
* Type du champ filtré. Quand il est absent, la coercition est best-effort
|
|
44
|
+
* (comparaison directe). Quand il est présent, la valeur est convertie
|
|
45
|
+
* avant comparaison.
|
|
46
|
+
*/
|
|
47
|
+
fieldType?: FilterFieldType;
|
|
48
|
+
/**
|
|
49
|
+
* Période relative, pour les filtres temporels. Quand elle est présente,
|
|
50
|
+
* elle remplace `value` et produit un intervalle `[début, fin)`.
|
|
51
|
+
*/
|
|
52
|
+
period?: RelativePeriod;
|
|
53
|
+
/**
|
|
54
|
+
* Nom du paramètre qui fournit la valeur du filtre. Quand il est présent,
|
|
55
|
+
* la valeur du paramètre l'emporte sur `value`.
|
|
56
|
+
*/
|
|
57
|
+
parameter?: string;
|
|
58
|
+
/**
|
|
59
|
+
* Nom du paramètre qui fournit la borne haute d'un `between`.
|
|
60
|
+
*/
|
|
61
|
+
parameterTo?: string;
|
|
62
|
+
}
|
|
63
|
+
/** Les unités calendaires supportées par les périodes relatives. */
|
|
64
|
+
export declare const RELATIVE_UNITS: readonly ["day", "week", "month", "quarter", "year"];
|
|
65
|
+
export type RelativeUnit = (typeof RELATIVE_UNITS)[number];
|
|
66
|
+
/**
|
|
67
|
+
* Une période relative, exprimée en unités calendaires.
|
|
68
|
+
*
|
|
69
|
+
* `value` est négatif pour le passé : `-7` avec `unit: "day"` signifie
|
|
70
|
+
* « les sept derniers jours complets ». La résolution en intervalle est faite
|
|
71
|
+
* par `semantic/periods/relative.ts`.
|
|
72
|
+
*/
|
|
73
|
+
export interface RelativePeriod {
|
|
74
|
+
unit: RelativeUnit;
|
|
75
|
+
value: number;
|
|
76
|
+
offsetUnit?: RelativeUnit;
|
|
77
|
+
offsetValue?: number;
|
|
78
|
+
includeCurrent?: boolean;
|
|
79
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HogQL-style SQL ergonomics for LynxSEO.
|
|
3
|
+
*
|
|
4
|
+
* - Dot-property access (`properties.utm_source`, `props.revenue`) is rewritten
|
|
5
|
+
* to the dialect's JSON extraction function.
|
|
6
|
+
* - `cohort('name')` expands to a visitor-id subquery. Custom subqueries can be
|
|
7
|
+
* supplied by the caller; otherwise a built-in `active_users` cohort or a
|
|
8
|
+
* property-based convention is used.
|
|
9
|
+
* - `formatSqlStatement` is re-exported for the SQL editor toolbar.
|
|
10
|
+
*
|
|
11
|
+
* Rewrites never touch string literals, quoted identifiers or comments.
|
|
12
|
+
*/
|
|
13
|
+
export { formatSqlStatement } from "./sql-formatter";
|
|
14
|
+
export type TargetSqlDialect = "clickhouse" | "postgres" | "sqlite";
|
|
15
|
+
export interface HogqlTranspileOptions {
|
|
16
|
+
/** Physical JSON column. Defaults to `properties`; LynxSEO ClickHouse uses `props`. */
|
|
17
|
+
jsonColumn?: string;
|
|
18
|
+
/** Logical names accepted in dot notation. Defaults to properties and props. */
|
|
19
|
+
propertyColumns?: readonly string[];
|
|
20
|
+
}
|
|
21
|
+
export interface CohortMacroOptions extends HogqlTranspileOptions {
|
|
22
|
+
table?: string;
|
|
23
|
+
visitorColumn?: string;
|
|
24
|
+
timeColumn?: string;
|
|
25
|
+
botColumn?: string;
|
|
26
|
+
jsonProperty?: string;
|
|
27
|
+
}
|
|
28
|
+
export interface PrepareHogqlSqlOptions extends CohortMacroOptions {
|
|
29
|
+
dialect?: TargetSqlDialect;
|
|
30
|
+
cohortSubqueries?: Record<string, string>;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Rewrites dot notation outside strings/comments.
|
|
34
|
+
* `properties.utm_source` -> `JSONExtractString(properties, 'utm_source')`
|
|
35
|
+
* (ClickHouse), `properties->>'utm_source'` (Postgres), `json_extract(...)`
|
|
36
|
+
* (SQLite). Qualified references such as `t.properties.x` are left untouched.
|
|
37
|
+
*/
|
|
38
|
+
export declare function transpileHogqlProperties(sql: string, dialect?: TargetSqlDialect, options?: HogqlTranspileOptions): string;
|
|
39
|
+
/**
|
|
40
|
+
* Expands PostHog-style `cohort('name')` macros.
|
|
41
|
+
*
|
|
42
|
+
* Resolution order: caller-supplied subquery, built-in `active_users`, then a
|
|
43
|
+
* property-based convention (`<jsonColumn>.cohort = 'name'`). The generated
|
|
44
|
+
* subquery selects the dialect's visitor column so the macro can be used as
|
|
45
|
+
* `visitor_id IN cohort('...')`.
|
|
46
|
+
*/
|
|
47
|
+
export declare function expandCohortMacro(sql: string, cohortSubqueries?: Record<string, string>, dialect?: TargetSqlDialect, options?: CohortMacroOptions): string;
|
|
48
|
+
/** Applies cohort macros first, then property dot-notation transpilation. */
|
|
49
|
+
export declare function prepareHogqlSql(sql: string, options?: PrepareHogqlSqlOptions): string;
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Le modele de metadonnees : champ, table, base.
|
|
3
|
+
*
|
|
4
|
+
* Ce fichier est une **reecriture** du modele de metadonnees de Metabase
|
|
5
|
+
* (`frontend/src/metabase-lib/v1/metadata/{Field,Table,Database}.ts`). Rien
|
|
6
|
+
* n'y est repris tel quel : l'amont modélise des references de champ
|
|
7
|
+
* (`["field", 42, {"base-type": "type/Text"}]`), des cles etrangeres et des
|
|
8
|
+
* options de dimension ; LynxSEO n'a pas de store de metadonnees, donc ses
|
|
9
|
+
* tables sont decrites par un catalogue derive des schemas de l'application.
|
|
10
|
+
*
|
|
11
|
+
* Ce que le port apporte : un **type semantique** de champ, distinct du type
|
|
12
|
+
* de stockage. Un `text` peut etre un libelle, une URL, un email ou un
|
|
13
|
+
* identifiant ; le type de stockage dit comment la valeur est comparee, le
|
|
14
|
+
* type semantique dit comment elle doit etre presentee et segmentee. C'est ce
|
|
15
|
+
* qui permet a l'interface de proposer des dimensions pertinentes sans
|
|
16
|
+
* deviner le role d'une colonne.
|
|
17
|
+
*/
|
|
18
|
+
import type { SemanticFieldType, SemanticSourceKind } from "./types";
|
|
19
|
+
/**
|
|
20
|
+
* Le role semantique d'un champ.
|
|
21
|
+
*
|
|
22
|
+
* Sous-ensemble de la hierarchie de Metabase (`metabase-types/api`),
|
|
23
|
+
* reecrite pour LynxSEO : on ne garde que les roles qui se traduisent par un
|
|
24
|
+
* traitement different en requete ou en presentation.
|
|
25
|
+
*/
|
|
26
|
+
export type SemanticFieldSemanticType =
|
|
27
|
+
/** Peu de valeurs distinctes : pays, appareil, canal. */
|
|
28
|
+
"category"
|
|
29
|
+
/** Texte libre, non segmentable. */
|
|
30
|
+
| "text"
|
|
31
|
+
/** Libelle d'une entite. */
|
|
32
|
+
| "title"
|
|
33
|
+
/** Adresse d'une page. */
|
|
34
|
+
| "url"
|
|
35
|
+
/** Adresse de courrier. */
|
|
36
|
+
| "email"
|
|
37
|
+
/** Nombre, mesure ou compte. */
|
|
38
|
+
| "number"
|
|
39
|
+
/** Ratio presente en pourcentage. */
|
|
40
|
+
| "percentage"
|
|
41
|
+
/** Montant. */
|
|
42
|
+
| "currency"
|
|
43
|
+
/** Date sans heure. */
|
|
44
|
+
| "date"
|
|
45
|
+
/** Date et heure. */
|
|
46
|
+
| "datetime"
|
|
47
|
+
/** Instant horodate. */
|
|
48
|
+
| "timestamp"
|
|
49
|
+
/** Booleen. */
|
|
50
|
+
| "boolean"
|
|
51
|
+
/** Identifiant. */
|
|
52
|
+
| "id"
|
|
53
|
+
/** Cle etrangere vers une autre table. */
|
|
54
|
+
| "fk"
|
|
55
|
+
/** Role inconnu : le type de stockage fait foi. */
|
|
56
|
+
| "unknown";
|
|
57
|
+
/**
|
|
58
|
+
* Un champ d'une table.
|
|
59
|
+
*
|
|
60
|
+
* Un champ est une **colonne physique**. La dimension d'un modele semantique
|
|
61
|
+
* est une expression qui peut referencing un champ, mais aussi une agregation
|
|
62
|
+
* ou une transformation : les deux niveaux restent distincts.
|
|
63
|
+
*/
|
|
64
|
+
export interface SemanticField {
|
|
65
|
+
/** Le nom de la colonne, tel qu'il existe en base. */
|
|
66
|
+
name: string;
|
|
67
|
+
/** Le type de stockage, compare et compile. */
|
|
68
|
+
type: SemanticFieldType;
|
|
69
|
+
/** Le role semantique, s'il est connu. */
|
|
70
|
+
semanticType?: SemanticFieldSemanticType;
|
|
71
|
+
/** Le type de la base, tel qu'il est declare (`TEXT`, `INTEGER`...). */
|
|
72
|
+
databaseType?: string;
|
|
73
|
+
/** La description, si elle est connue. */
|
|
74
|
+
description?: string;
|
|
75
|
+
/** La table qui porte ce champ. */
|
|
76
|
+
table?: string;
|
|
77
|
+
/** Le champ fait partie de la cle primaire. */
|
|
78
|
+
primaryKey?: boolean;
|
|
79
|
+
}
|
|
80
|
+
/** Une table : un ensemble nomme de champs. */
|
|
81
|
+
export interface SemanticTable {
|
|
82
|
+
/** Le nom de la table, tel qu'il existe en base. */
|
|
83
|
+
name: string;
|
|
84
|
+
/** La description, si elle est connue. */
|
|
85
|
+
description?: string;
|
|
86
|
+
/** Les champs de la table. */
|
|
87
|
+
fields: SemanticField[];
|
|
88
|
+
/** Les noms des champs de la cle primaire. */
|
|
89
|
+
primaryKey?: string[];
|
|
90
|
+
}
|
|
91
|
+
/** Une base : un ensemble nomme de tables. */
|
|
92
|
+
export interface SemanticDatabase {
|
|
93
|
+
/** L'identifiant de la base. */
|
|
94
|
+
id: string;
|
|
95
|
+
/** Le libelle de la base. */
|
|
96
|
+
name: string;
|
|
97
|
+
/** Le dialecte SQL de la base. */
|
|
98
|
+
dialect: SemanticSourceKind;
|
|
99
|
+
/** Les tables de la base. */
|
|
100
|
+
tables: SemanticTable[];
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Le type semantique correspondant a un type de stockage.
|
|
104
|
+
*
|
|
105
|
+
* La correspondance est celle par defaut : un `text` est un texte libre tant
|
|
106
|
+
* qu'aucune autre information ne dit le contraire. Un champ dont le nom ou la
|
|
107
|
+
* description designe un role plus precis (une URL, un email, un identifiant)
|
|
108
|
+
* voit son type semantique corrige a la construction du catalogue.
|
|
109
|
+
*/
|
|
110
|
+
export declare function semanticTypeOf(type: SemanticFieldType): SemanticFieldSemanticType;
|
|
111
|
+
/**
|
|
112
|
+
* Le type a utiliser pour la dimension semantique d'un champ.
|
|
113
|
+
*
|
|
114
|
+
* Le type de stockage ne suffit pas : les horodatages de LynxSEO sont stockes
|
|
115
|
+
* en texte ISO (`created_at` est un `text`), et un montant ou un pourcentage
|
|
116
|
+
* est un nombre. C'est le role semantique qui dit comment comparer la valeur,
|
|
117
|
+
* donc c'est lui qui fait foi pour une dimension.
|
|
118
|
+
*/
|
|
119
|
+
export declare function effectiveFieldType(field: SemanticField): SemanticFieldType;
|
|
120
|
+
/** Recherche une table par son nom, sans distinction de casse. */
|
|
121
|
+
export declare function findTable(database: SemanticDatabase, name: string): SemanticTable | undefined;
|
|
122
|
+
/** Recherche un champ par son nom, sans distinction de casse. */
|
|
123
|
+
export declare function findField(table: SemanticTable, name: string): SemanticField | undefined;
|
|
124
|
+
/**
|
|
125
|
+
* Les champs d'une table, indexes par nom.
|
|
126
|
+
*
|
|
127
|
+
* L'index est construit a la demande : une table du catalogue est petite, et
|
|
128
|
+
* la construction a chaque appel evite de porter un cache invalide quand le
|
|
129
|
+
* catalogue change.
|
|
130
|
+
*/
|
|
131
|
+
export declare function tableFieldsMap(table: SemanticTable): Record<string, SemanticField>;
|
|
132
|
+
/**
|
|
133
|
+
* Une description courte d'un champ, pour l'interface.
|
|
134
|
+
*
|
|
135
|
+
* Exemple : `url_path — texte (chemin de la page)`. La partie entre
|
|
136
|
+
* parentheses n'apparait que si le type semantique ajoute une information a
|
|
137
|
+
* celle du type de stockage.
|
|
138
|
+
*/
|
|
139
|
+
export declare function describeField(field: SemanticField): string;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { QueryFilter } from "../filters/types";
|
|
2
|
+
import type { ResolvedParameters } from "./resolve";
|
|
3
|
+
declare const FIELD_TYPE_BY_PARAMETER_TYPE: {
|
|
4
|
+
readonly string: "string";
|
|
5
|
+
readonly number: "number";
|
|
6
|
+
readonly boolean: "boolean";
|
|
7
|
+
readonly date: "date";
|
|
8
|
+
readonly category: "string";
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Remplace la valeur d'un filtre par celle d'un parametre.
|
|
12
|
+
*
|
|
13
|
+
* Le filtre conserve sa reference au parametre (`parameter`, `parameterTo`)
|
|
14
|
+
* pour rester relisible, mais sa valeur effective est copiee dans `value` :
|
|
15
|
+
* les deux backends — compilation SQL et evaluation memoire — consomment la
|
|
16
|
+
* meme forme resolue, donc ils ne peuvent pas diverger.
|
|
17
|
+
*/
|
|
18
|
+
export declare function resolveParameterFilter(filter: QueryFilter, parameters: ResolvedParameters): QueryFilter;
|
|
19
|
+
export { FIELD_TYPE_BY_PARAMETER_TYPE };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type SemanticParameter } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Relit les parametres d'un modele depuis leur forme serialisee.
|
|
4
|
+
*
|
|
5
|
+
* Une colonne corrompue fait echouer la lecture du modele : un `baseSql` qui
|
|
6
|
+
* reference `{{country}}` sans declaration echouerait plus tard, avec un
|
|
7
|
+
* message qui ne designe pas la cause.
|
|
8
|
+
*/
|
|
9
|
+
export declare function parseSemanticParameters(raw: string | null | undefined): SemanticParameter[];
|
|
10
|
+
/** Serialise les parametres d'un modele. Une liste vide ne produit rien. */
|
|
11
|
+
export declare function stringifySemanticParameters(parameters?: SemanticParameter[]): string | null;
|