* Enhance TypeScript definitions for Plausible tracking library
Updated the plausible.d.ts file to improve documentation by adding JSDoc comments for all functions and properties. This enhances clarity and usability for developers integrating the tracking library.
* Update CHANGELOG.md to reflect changes in TypeScript definition comments for improved IDE integration
* Format
* Remove subtitle from changelog
---------
Co-authored-by: Ahmed Hassanein <eng.a7mad.gamal@gmail.com>
* add module name to service_error when check times out
Otherwise, it can sometimes remain unclear in the diagnostics, whether
it was InstallationV2 or InstallationV2CacheBust that timed out.
* Remove duplicate timeout logic
The current production logs show two types of verification timeouts:
* service_error: "Unhandled Browserless response status: 408" (vast
majority of cases)
* service_error: :timeout (only a few cases)
The latter happens when we hit the Req receive_timeout
(endpoint_timeout + 2s). I've seen Browserless not respect the timeout
param from time to time, so it's better to keep the timeout logic
"in-house" only.
* make service_error into a map with code and extra
* interpret temporary service errors
...but still consider them "unhandled" for telemetry, also notifying Sentry
and logging the warning.
* separate sentry messages (verification)
* make Verification.ChecksTest more DRY
* organize tests into describe blocks
* test verification telemetry and logging
* fix codespell
* get rid of legacy verification
* rename Checks.InstallationV2 -> Checks.VerifyInstallation
* delete Live.Installation and rename Live.InstallationV2 -> Live.Installation
* rename installationv2 (live) files as well
* delete old change-domain routes
Also rename current liveview modules and routes, removing the v2 suffix
* rename domain_change_v2 files, removing v2 suffix
* remove legacy JS verifier code
Also fix dockerignore and elixir.yml referencing a wrong priv path
* rename verification_v2_test -> verification_test
* remove v2 prefix from logs and sentry messages
* clean up duplicate external_sites_controller_test.exs tests
* remove flag
* fix typespec
* pass timeout as query param to Browserless too
* Fixup external sites controller test module (#5826)
* fix test description
---------
Co-authored-by: Artur Pata <artur.pata@gmail.com>
* Start passing official installs that are using legacy .compat installation
* Pass the first domain for verifying legacy compat installs
* Fix variable access issue
* Fix non-existent function call
* Comment why split domainString
* Add logic to find Plausible script tag
* Clarify where cookies fixtures come from
* Add case for snippet not found
* Fix issue with installation type not propagating to diagnostics
* Better struct definition
* Refactor verification tests to be more comprehensive
* Fix compile error related to Test.Support.DNS
* Fix DNS imports for CE
* Refactor when tracker is in HTML is detected
* Show Plausible not detected errors with installation type specific recommendations
* Update diagnostics and diagnostics tests for verification
* Format
* Stop calling statuses between 200..299 as errors
* Remove function that populates diagnostics randomly
* Accept cookies (WIP)
* Make resolving Plausible function call a priority
* Update tracker script version
* Remove cookieBannerLikely, replace with debug-only cookiesConsentResult
* Use compact rules
* Make verifier tests less flaky
* Add fixtures for accepting cookies
* Limit CMPs
* Fix dep position
* Improve "back to settings" button
* Dark mode support for change domain
* Purge CDN cache on domain change
* Allow npm installation_type
* Detect npm installation type in detector
* Support npm installation type in onboarding
* Show warning in change domain flow for npm
* Make CE tests happy
* Cleanup
* npm_likely -> npm
* Cleanup
* Add fast failing dns check to verification
* Convert Detection to a checks pipeline
* Convert detection to checks pipeline
* Unify browserless checks, set retry policy, timeouts
* Fix spelling
* Update change domain v2
* Fix issue with handling errors with detection
* Include timeoutMs in detector function args
* Allow saving npm installation type (#5639)
* small code style/comment improvements
---------
Co-authored-by: RobertJoonas <56999674+RobertJoonas@users.noreply.github.com>
Co-authored-by: Robert Joonas <robertjoonas16@gmail.com>
* Allow customizing lib passed from init
Going to be used by GTM (and possibly wordpress) to make it easier to detect what source was used for install
* chore: Bump tracker_script_version to 28
* Handle canceled execution context when verifying v2 installs
* Show diagnostics even on verification success for superadmins
* Add check for scriptv2 user to support branching off to v2 site verification better
* fix comment on localhost dogfood tracking
* improve detector script and integrate into Elixir
* wait for window.plausible.l instead of window.plausible
* do not touch source files during compilation
* stop referencing compiler hint module attr
* new verifier script with tests + telemetry
* dataDomainMismatch tests
* more tests for callbackStatus and plausibleInstalled
* create priv/verifier subfolder + fix Elixir CI
* bump CI cache version
* organize verifier tests
* Remove accidentally committed verifier
* Rework compilation: Make it a variant, always return new verifier code in tests
* Make priv/tracker/verifier/ exist
* Handle static checks with grace
* Fix paths
* Fix paths
* Add some tests
* Add one more test
* split up the JS
* proxyLikely + code structure refactor + unit tests
* fix telemetry fields
* move most telemetry to logs
* run verifier tests only on chromium
* detect wordpressPlugin and wordpressLikely
* detect GTM
* rename JS checks
* detect cookiebot
* include new fields in logs
* different logs for browserless request vs js failures
* detect manual extension
* detect unknown attrs + fix logging
* stick to Elixir checks for snippet detection
* fix codespell
* fix IO.inspect
* remove unnecessary fields from test mock
* cookiebot doc
* move test into verifier subfolder
* do not duplicate ts types
* comma -> semicolon in log
* test dynamically loaded snippet
* improve logging on Browserless error
---------
Co-authored-by: Karl-Aksel Puulmann <oxymaccy@gmail.com>
* Sync pathname to event.props.path for special path-based goals
* Stop adding event.props.path for 'Form: Submission' events
* Update tracker script version
* Fix test expectations
* Fix format
* Simplify maybe_put_props_path with 'with'
* Add specs, fix factory
* Update tracker changelog
* Update EE/CE changelog
* Remove business logic from factory
* Refactor event.props.path sync result to be validated with the rest of the custom props
* Clarify doctests and update function name
* Do not send duplicate tagged form events
* Update changelog
* chore: Bump tracker_script_version to 22
* Share HTML fixture
---------
Co-authored-by: apata <apata@users.noreply.github.com>
* Make delays conditional on COMPILE_COMPAT, otherwise rely on keepalive fetch
* Add tests
* Fix webkit related test file-download feature tests issues
* Remove ternaries for scriptConfig in tests
* Make sure .compat scripts don't contain unreachable code blocks
* Test legacy .compat extension in a separate block
* Tests for tagged events
* Remove extraneous tests, add needed tests
* Add tests for v2 features overlap and outbound link clicks
* Add changelog, add current behaviour test for outbound links
* Remove mockRequest, unify API
* Fix coverage of legacy compat navigation, add back interactive event test
* chore: Bump tracker_script_version to 21
* Update specs
* Fix issues with _ variable
* Fix args
* Types and formatting cleanup
---------
Co-authored-by: apata <apata@users.noreply.github.com>