diff --git a/.bundlemonrc.json b/.bundlemonrc.json index 4dfd4d327..61a914d94 100644 --- a/.bundlemonrc.json +++ b/.bundlemonrc.json @@ -22,7 +22,7 @@ }, { "path": "./libraries/browser-tracker-core/dist/index.module.js", - "maxSize": "25kb", + "maxSize": "26.5kb", "maxPercentIncrease": 10 }, { @@ -31,5 +31,5 @@ "maxPercentIncrease": 10 } ], - "reportOutput": ["github"] + "reportOutput": [] } diff --git a/.github/RELEASE.md b/.github/RELEASE.md new file mode 100644 index 000000000..c4f8ad361 --- /dev/null +++ b/.github/RELEASE.md @@ -0,0 +1,92 @@ +# Preparing a release + +The `Prepare release PR` workflow (`.github/workflows/prepare-release.yml`) +automates the "Prepare for X.Y.Z release" commit and the release PR that +maintainers used to write by hand. + +Note: the JS tracker is a Rush monorepo. Per-package version bumps and per- +package `CHANGELOG.md` entries are produced by `rush version --bump` and +`rush publish --apply` during `publish.yml`, **not** by the prepare-release +workflow. The prepare-release step only sets the `nextBump` field in +`common/config/rush/version-policies.json` so Rush bumps to the right target +on publish. + +## How a release works now + +1. Create the release branch from `master` and merge feature/bug-fix PRs into + it as usual: + ```bash + git checkout master && git pull + git checkout -b release/4.9.0 + git push -u origin release/4.9.0 + ``` +2. When the branch is ready to ship, go to **Actions → Prepare release PR → + Run workflow** and fill in: + - `release_branch`: `release/4.9.0` + - `dry_run`: leave unchecked for a real run; check it for a preview. +3. The workflow computes the correct `nextBump` (`patch` / `minor` / `major`) + from the current version in `version-policies.json` vs the target version + parsed from the branch name, then updates the single line in + `common/config/rush/version-policies.json`. +4. Commits as `Prepare for X.Y.Z release` and pushes to the release branch. +5. Asks Claude to draft the PR body from the commits on the branch (using the + previous release PR as a style example) — flat bullets for 1–2 changes, + `**New features** / **Enhancements** / **Bug fixes**` groups for 3+, with + `thanks to @user` attribution for external contributors only. +6. Opens (or updates) a PR titled `Release/X.Y.Z` against `master`. + +Review the PR, edit the PR body in place if needed, then merge. After +merging, run **Actions → Deploy Tracker** with the version string as the +input. `publish.yml` runs `rush version --bump` (which performs the actual +per-package version bumps and generates the per-package CHANGELOGs from the +`rush change` files under `common/changes/`), cross-validates the resulting +tracker version against your input, builds, tests, publishes to npm, tags +`X.Y.Z`, and creates the GitHub release with `sp.js` / `sp.lite.js` and the +plugins zip attached. + +## Re-running on the same branch + +If you push a small fix to the release branch after the workflow ran, re-run +the workflow. It detects that `HEAD` is already a `Prepare for X.Y.Z release` +commit and skips the bump+commit — it only refreshes the PR body. + +If you need the bump re-done from scratch, drop the prepare commit locally +(`git reset --hard HEAD~1 && git push --force-with-lease`) and re-run the +workflow. + +## Dry-run mode + +`dry_run: true` runs everything up to (but not including) the push and the PR +write. The full `git diff` and the generated PR body are printed to the +workflow log. Use this the first time you exercise the workflow on a real +release branch. + +## Inputs that will make the workflow fail loudly + +- A `release_branch` that doesn't match `release/X.Y.Z`. +- A `release_branch` that doesn't exist on origin. +- A target version that isn't a valid next semver bump from the current + version in `version-policies.json` (e.g. you're on `4.8.1` and you ask + for `5.1.0`; the script only accepts the next patch, the next minor, or + the next major). +- A previous release tag that can't be found on `master` (the workflow needs + one to compute the commit list). + +## Notes on the commit filter + +`commits-raw.txt` is built by filtering out commits the JS publish pipeline +creates automatically, so they don't end up in the release notes: + +- `Prepare for ...` +- `Bump versions [skip ci]` (from `rush version --bump`) +- `Update changelogs [skip ci]` (from `rush publish --apply`) +- `Applying documentation updates.` (api-docs commit during publish) + +If the publish pipeline ever changes its commit subjects, update the +`grep -v -E` line in `prepare-release.yml` to match. + +## Requirements + +- `ANTHROPIC_API_KEY` secret must be set on the repository. +- `GITHUB_TOKEN` (provided automatically) needs `contents: write` and + `pull-requests: write`, which the workflow declares. diff --git a/.github/scripts/classify-commits.sh b/.github/scripts/classify-commits.sh new file mode 100755 index 000000000..62e87ae72 --- /dev/null +++ b/.github/scripts/classify-commits.sh @@ -0,0 +1,179 @@ +#!/usr/bin/env bash +# +# Classify release commits into categories for CHANGELOG entries and PR bodies. +# +# Reads annotated commit lines on stdin, one per line, in the format produced by +# the "Annotate commits with author + external flag" workflow step: +# +# -- author= external= +# +# Writes TSV to stdout, one line per included commit: +# +# \t\t\t\t +# +# where is one of: breaking, feature, fix, improvement, enhancement +# and is either "#NNN" or empty. +# +# Chore-type commits (chore/ci/docs/test/build/style, version-bump and +# release-automation commits) are dropped entirely. +# +# Classification order: +# 1. Conventional-commit prefix (feat:, fix:, perf:, ...). A "!" before the +# colon, or a "BREAKING CHANGE" marker, promotes the commit to breaking. +# 2. Leading imperative verb, for the many historical commits in these repos +# that predate conventional commits. +# 3. Anything left over becomes "enhancement". + +set -euo pipefail + +# Subjects matching these patterns are release-automation noise, never user-facing. +readonly SKIP_SUBJECT_RE='^(Prepare for |Bump versions|Update changelogs|Applying documentation updates|Merge (branch|pull request|remote-tracking)|Release/|Run rush change|Initial (commit|release)|Resync )' + +# Conventional-commit types that never appear in release notes. +readonly SKIP_TYPE_RE='^(chore|ci|docs|test|tests|build|style|revert)$' + +# Bare-subject chore detection, for the many commits predating conventional +# commits. Deliberately narrow: it requires a chore *object* (CI, README, API +# docs, the test suite, a linter) so that user-facing changes which merely +# mention a version or a dependency are still included. Verified against the +# existing hand-written CHANGELOGs, which omit exactly these. +readonly SKIP_BARE_RE='(^|[[:space:]])(ci|CI)([[:space:]]|$)|[Ll]inting|[Ll]int issues|(unit|integration|flaky)[[:space:]]+tests?|tests?[[:space:]]+(in|on)[[:space:]]+CI|README|API docs|api docs|[Dd]ocumentation (build|updates|page)|docs\.snowplow\.io|API ref|[Cc]hangelog|GitHub [Aa]ction|publish action|prepare-release|\[skip ci\]|[Cc]laude|CLAUDE\.md|[Aa]gent pipeline|instrumentation|jest tests|[Ss]igning config for demo|[Bb]undlemon|[Cc]overalls|[Dd]ependabot|[Aa]ddress (PR )?review|[Aa]ddress review comments|[Ff]ix(up)? review|[Aa]pply review|[Ss]elf-review|[Rr]ebase|[Mm]erge conflict|[Tt]ypo in (test|CI)' + +while IFS= read -r line; do + [[ -z "$line" ]] && continue + + # Split the trailing "-- author=... external=..." metadata off the subject. + # The separator is optional: dry runs and manual testing pipe bare + # " " lines, and treating those as metadata would leak the + # parsed fields into the description. + if [[ "$line" == *" -- author="* ]]; then + meta="${line##*" -- "}" + head="${line%" -- "*}" + else + meta="" + head="$line" + fi + + # The leading short sha is dropped; only the subject drives classification. + subject="${head#* }" + [[ "$subject" == "$head" ]] && subject="" + [[ -z "$subject" ]] && continue + + login="" + external="false" + if [[ -n "$meta" ]]; then + if [[ "$meta" =~ author=([^[:space:]]*) ]]; then + login="${BASH_REMATCH[1]}" + fi + if [[ "$meta" =~ external=([^[:space:]]*) ]]; then + external="${BASH_REMATCH[1]}" + fi + fi + + # Drop release-automation commits. + if [[ "$subject" =~ $SKIP_SUBJECT_RE ]]; then + continue + fi + + breaking="false" + # "BREAKING CHANGE" / "BREAKING-CHANGE" anywhere in the subject is a strong signal. + if [[ "$subject" == *"BREAKING CHANGE"* || "$subject" == *"BREAKING-CHANGE"* ]]; then + breaking="true" + fi + + category="" + description="$subject" + + # --- Rule 1: conventional-commit prefix --------------------------------- + # Matches "type: ", "type(scope): ", and the breaking "type!: " / "type(scope)!: ". + if [[ "$subject" =~ ^([a-zA-Z]+)(\(([^\)]*)\))?(!)?:[[:space:]]+(.*)$ ]]; then + type="$(printf '%s' "${BASH_REMATCH[1]}" | tr '[:upper:]' '[:lower:]')" + bang="${BASH_REMATCH[4]}" + rest="${BASH_REMATCH[5]}" + + if [[ "$type" =~ $SKIP_TYPE_RE ]]; then + continue + fi + + [[ -n "$bang" ]] && breaking="true" + + case "$type" in + feat|feature) category="feature" ;; + fix|bugfix) category="fix" ;; + perf|refactor) category="improvement" ;; + *) category="" ;; # unknown type: fall through to the verb rule + esac + + if [[ -n "$category" ]]; then + # Drop the scope. It duplicates information already obvious from the + # description in these repos (e.g. "emitter: wake emitter on signal"), + # and keeping it forces an awkward capitalisation of the scope token. + description="$rest" + fi + fi + + # --- Rule 2: leading imperative verb ----------------------------------- + # Covers the bare-subject style used throughout these repos' history. + if [[ -z "$category" ]]; then + # Bare chore commits (CI, docs, lint, test-suite upkeep) are not + # user-facing. Only applied here: an explicit "feat:"/"fix:" prefix in + # rule 1 always wins, so a genuine fix mentioning CI is never dropped. + if [[ "$subject" =~ $SKIP_BARE_RE ]]; then + continue + fi + + verb="$(printf '%s' "$subject" | awk '{print tolower($1)}')" + case "$verb" in + fix|fixes|fixed|resolve|resolves|correct|corrects|prevent|prevents|address|addresses|avoid|avoids|handle|handles|guard) + category="fix" ;; + add|adds|added|introduce|introduces|support|supports|expose|exposes|implement|implements|allow|allows|enable|enables|create|creates) + category="feature" ;; + improve|improves|update|updates|upgrade|upgrades|refactor|refactors|change|changes|make|makes|migrate|migrates|remove|removes|strip|strips|filter|filters|rename|renames|switch|switches|reduce|reduces|optimise|optimize|simplify|declare|deprecate|deprecates|move|moves|replace|replaces|drop|drops|adjust|adjusts|annotate|clean|unify|tidy|undeprecate|reintroduce) + category="improvement" ;; + *) + category="enhancement" ;; + esac + fi + + [[ "$breaking" == "true" ]] && category="breaking" + + # Extract a PR/issue reference to preserve at the end of the line. + # + # Subjects may carry two references: a trailing "(#NNN)" squash-merge marker + # added by GitHub, and an inline "(close #NNN)" issue link written by the + # author. Prefer the inline issue reference (it names the user-visible issue) + # and strip both markers so the formatters re-append exactly one. + pr_ref="" + if [[ "$description" =~ \((close[sd]?|fix(e[sd])?|resolve[sd]?)[[:space:]]+\#([0-9]+)\) ]]; then + # Preserve the "close" keyword: the existing CHANGELOGs write "(close #720)", + # and it keeps GitHub's issue-closing semantics visible in the notes. + pr_ref="${BASH_REMATCH[1]} #${BASH_REMATCH[3]}" + description="$(printf '%s' "$description" \ + | sed -E 's/[[:space:]]*\((close[sd]?|fix(e[sd])?|resolve[sd]?)[[:space:]]+#[0-9]+\)//I')" + # Drop a redundant trailing squash marker, e.g. "... (close #720) (#720)". + description="$(printf '%s' "$description" | sed -E 's/[[:space:]]*\(#[0-9]+\)[[:space:]]*$//')" + elif [[ "$description" =~ \(\#([0-9]+)\)[[:space:]]*$ ]]; then + pr_ref="#${BASH_REMATCH[1]}" + description="$(printf '%s' "$description" | sed -E 's/[[:space:]]*\(#[0-9]+\)[[:space:]]*$//')" + elif [[ "$description" =~ \#([0-9]+) ]]; then + pr_ref="#${BASH_REMATCH[1]}" + fi + + # Strip an inline BREAKING CHANGE marker; the category already conveys it. + description="$(printf '%s' "$description" \ + | sed -E 's/^BREAKING[ -]CHANGE:?[[:space:]]*//; s/[[:space:]]*BREAKING[ -]CHANGE:?[[:space:]]*/ /')" + + # Tidy whitespace and drop a trailing period for consistent list formatting. + description="$(printf '%s' "$description" | sed -E 's/[[:space:]]+/ /g; s/^ //; s/ $//; s/\.$//')" + [[ -z "$description" ]] && continue + + # Capitalise the first letter so bare conventional-commit bodies read as list items. + first="$(printf '%s' "${description:0:1}" | tr '[:lower:]' '[:upper:]')" + description="${first}${description:1}" + + # Empty fields are written as "-": bash's word splitting collapses runs of + # tabs, so a genuinely empty column would shift every later field left. + # The formatters translate "-" back to an empty string. + printf '%s\t%s\t%s\t%s\t%s\n' \ + "$category" "$description" "${pr_ref:--}" "${login:--}" "$external" +done diff --git a/.github/scripts/format-pr-body.sh b/.github/scripts/format-pr-body.sh new file mode 100755 index 000000000..016689db9 --- /dev/null +++ b/.github/scripts/format-pr-body.sh @@ -0,0 +1,55 @@ +#!/usr/bin/env bash +# +# Format classified commits into a release PR body. +# +# Reads the TSV produced by classify-commits.sh on stdin and writes +# GitHub-flavoured markdown to stdout: bullets grouped under bold headers, +# with external contributors credited. +# +# Groups with no entries are omitted. If nothing at all is classifiable the +# script emits a short placeholder rather than an empty body, so the PR is +# never opened with a blank description. + +set -euo pipefail + +work="$(mktemp -d)" +trap 'rm -rf "$work"' EXIT + +# Bucket the incoming rows by category. +while IFS=$'\t' read -r category description pr_ref login external; do + [[ -z "${category:-}" ]] && continue + # classify-commits.sh writes "-" for empty columns; see the note there. + [[ "$pr_ref" == "-" ]] && pr_ref="" + [[ "$login" == "-" ]] && login="" + + line="- ${description}" + [[ -n "$pr_ref" ]] && line="${line} (${pr_ref})" + # Credit external contributors only; team members are not called out. + if [[ "$external" == "true" && -n "$login" ]]; then + line="${line} thanks to @${login}" + fi + printf '%s\n' "$line" >> "$work/$category" +done + +emit_group() { + local file="$1" header="$2" + [[ -s "$work/$file" ]] || return 0 + printf '%s\n' "$header" + cat "$work/$file" + printf '\n' +} + +{ + emit_group breaking '**Breaking changes:**' + emit_group feature '**New features:**' + emit_group improvement '**Improvements:**' + emit_group fix '**Bug fixes:**' + emit_group enhancement '**Enhancements:**' +} > "$work/body.md" + +if [[ -s "$work/body.md" ]]; then + # Trim the trailing blank line left by the last group. + awk 'NF || NR < prev_nonblank' prev_nonblank="$(awk 'NF{n=NR}END{print n}' "$work/body.md")" "$work/body.md" +else + printf '%s\n' 'No user-facing changes in this release.' +fi diff --git a/.github/scripts/prepare-release.js b/.github/scripts/prepare-release.js new file mode 100755 index 000000000..4cafe45e9 --- /dev/null +++ b/.github/scripts/prepare-release.js @@ -0,0 +1,76 @@ +#!/usr/bin/env node +/** + * Prepare for X.Y.Z release: set the `nextBump` field in + * common/config/rush/version-policies.json so that Rush will bump from the + * current version to the target version on the next publish. + * + * Usage: node .github/scripts/prepare-release.js + * + * The file uses JSON-with-comments, so we don't JSON.parse it — we read the + * current `version` with a regex and rewrite the `nextBump` line in place. + */ +'use strict'; + +const fs = require('fs'); +const path = require('path'); + +const target = process.argv[2]; +if (!target || !/^\d+\.\d+\.\d+$/.test(target)) { + console.error(`Usage: ${process.argv[1]} `); + process.exit(2); +} + +const repoRoot = path.resolve(__dirname, '..', '..'); +const policyPath = path.join(repoRoot, 'common/config/rush/version-policies.json'); +const original = fs.readFileSync(policyPath, 'utf8'); + +const versionMatch = original.match(/"version"\s*:\s*"(\d+\.\d+\.\d+)"/); +if (!versionMatch) { + console.error('Could not find "version" field in version-policies.json'); + process.exit(1); +} +const current = versionMatch[1]; +console.log(`Current version: ${current}`); +console.log(`Target version: ${target}`); + +if (current === target) { + console.error(`Current version is already ${target}; nothing to do.`); + process.exit(1); +} + +const [cMaj, cMin, cPatch] = current.split('.').map(Number); +const [tMaj, tMin, tPatch] = target.split('.').map(Number); + +let nextBump; +if (tMaj > cMaj && tMin === 0 && tPatch === 0) { + nextBump = 'major'; +} else if (tMaj === cMaj && tMin > cMin && tPatch === 0) { + nextBump = 'minor'; +} else if (tMaj === cMaj && tMin === cMin && tPatch > cPatch) { + nextBump = 'patch'; +} else { + console.error( + `Target ${target} is not a valid next semver bump from ${current}. ` + + `Expected one of: ${cMaj}.${cMin}.${cPatch + 1} (patch), ` + + `${cMaj}.${cMin + 1}.0 (minor), or ${cMaj + 1}.0.0 (major).` + ); + process.exit(1); +} +console.log(`Computed nextBump: ${nextBump}`); + +// Rewrite the "nextBump" line in place. Preserve indentation and trailing +// whitespace/newline exactly so the diff is the single intended change. +const nextBumpRegex = /(^\s*"nextBump"\s*:\s*")(prerelease|release|patch|minor|major)(")/m; +if (!nextBumpRegex.test(original)) { + console.error('Could not find "nextBump" field in version-policies.json'); + process.exit(1); +} +const updated = original.replace(nextBumpRegex, `$1${nextBump}$3`); + +if (updated === original) { + console.log(`nextBump is already "${nextBump}"; no change needed.`); + process.exit(0); +} + +fs.writeFileSync(policyPath, updated); +console.log(`Updated nextBump to "${nextBump}" in ${policyPath}`); diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 326dd53b7..1d17917f9 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -21,7 +21,7 @@ jobs: - name: Use Node.js 18 uses: actions/setup-node@v3 with: - node-version: 18.x + node-version: 22.x - name: pnpm cache uses: actions/cache@v3 diff --git a/.github/workflows/change_check.yml b/.github/workflows/change_check.yml index b15ddf33b..d4bda6f73 100644 --- a/.github/workflows/change_check.yml +++ b/.github/workflows/change_check.yml @@ -6,6 +6,11 @@ jobs: check: runs-on: ubuntu-latest + permissions: + contents: read + pull-requests: write + checks: write + env: BROWSERSLIST_IGNORE_OLD_DATA: true @@ -18,7 +23,7 @@ jobs: - name: Use Node.js 18 uses: actions/setup-node@v3 with: - node-version: 18.x + node-version: 22.x - name: pnpm cache uses: actions/cache@v3 @@ -55,7 +60,10 @@ jobs: run: api-extractor run - name: Check bundle size using bundlemon - run: npx bundlemon@1.4.0 + if: github.event.pull_request.head.repo.full_name == github.repository + run: npx bundlemon@3 env: - BUNDLEMON_PROJECT_ID: 630fceda4ed824a9d3733ec0 - CI_COMMIT_SHA: ${{github.event.pull_request.head.sha || github.sha}} + BUNDLEMON_PROJECT_ID: 69e5e44cf67d5035af9fd1c0 + BUNDLEMON_PROJECT_APIKEY: ${{ secrets.BUNDLEMON_PROJECT_APIKEY }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + CI_COMMIT_SHA: ${{ github.event.pull_request.head.sha || github.sha }} diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index a0f49e65f..35b78acf4 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -16,7 +16,7 @@ jobs: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 with: - node-version: 18 + node-version: 22 - name: Install dependencies working-directory: ./api-docs diff --git a/.github/workflows/prepare-release.yml b/.github/workflows/prepare-release.yml new file mode 100644 index 000000000..4fd04babf --- /dev/null +++ b/.github/workflows/prepare-release.yml @@ -0,0 +1,186 @@ +name: Prepare release PR + +on: + workflow_dispatch: + inputs: + release_branch: + description: 'Release branch (must already exist, format: release/X.Y.Z)' + required: true + type: string + dry_run: + description: 'Print the planned commit and PR body without pushing or opening a PR' + required: false + type: boolean + default: false + +permissions: + contents: write + pull-requests: write + +jobs: + prepare: + runs-on: ubuntu-latest + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + BASE_BRANCH: master + # Workflow inputs are exposed as environment variables and referenced as + # "$RELEASE_BRANCH" in run: blocks, never interpolated as ${{ }} into an + # inline script. Direct interpolation splices the raw value into the shell + # before it runs, which is a script-injection sink (see ST-482). + RELEASE_BRANCH: ${{ inputs.release_branch }} + DRY_RUN: ${{ inputs.dry_run }} + steps: + - name: Validate inputs + id: validate + run: | + set -euo pipefail + if [[ ! "$RELEASE_BRANCH" =~ ^release/([0-9]+\.[0-9]+\.[0-9]+)$ ]]; then + echo "::error::release_branch must match 'release/X.Y.Z' (got: $RELEASE_BRANCH)" + exit 1 + fi + version="${BASH_REMATCH[1]}" + echo "version=$version" >> "$GITHUB_OUTPUT" + echo "release_date=$(date -u +%Y-%m-%d)" >> "$GITHUB_OUTPUT" + + - name: Checkout release branch + uses: actions/checkout@v4 + with: + ref: ${{ inputs.release_branch }} + fetch-depth: 0 + token: ${{ secrets.GITHUB_TOKEN }} + + - name: Use Node.js 22 + uses: actions/setup-node@v4 + with: + node-version: 22 + + - name: Configure git + run: | + git config user.name 'snowplow-ci' + git config user.email 'ci@snowplowanalytics.com' + + - name: Verify branch state + id: state + env: + VERSION: ${{ steps.validate.outputs.version }} + run: | + set -euo pipefail + git fetch origin "$BASE_BRANCH" + + # Idempotent re-run: if HEAD is already "Prepare for X.Y.Z release", + # skip the bump+commit and only refresh the PR body. + head_subject="$(git log -1 --pretty=%s)" + if [[ "$head_subject" == "Prepare for $VERSION release" ]]; then + echo "Branch HEAD is already the prepare-release commit; will skip bump+commit and only refresh the PR." + echo "already_prepared=true" >> "$GITHUB_OUTPUT" + else + echo "already_prepared=false" >> "$GITHUB_OUTPUT" + fi + + - name: Collect commits since previous release + id: commits + run: | + set -euo pipefail + # Previous tag = highest semver tag reachable from BASE_BRANCH. + prev_tag="$(git tag --merged "origin/$BASE_BRANCH" | grep -E '^[0-9]+\.[0-9]+\.[0-9]+$' | sort -V | tail -1 || true)" + if [[ -z "$prev_tag" ]]; then + echo "::error::Could not determine previous release tag" + exit 1 + fi + echo "prev_tag=$prev_tag" >> "$GITHUB_OUTPUT" + + # Commits on the release branch since prev_tag. classify-commits.sh + # drops the commits the JS publish pipeline creates automatically + # ("Bump versions [skip ci]", "Update changelogs [skip ci]", + # "Applying documentation updates.") along with other chores. + git log --no-merges "$prev_tag..HEAD" --pretty='%h %s' > commits-raw.txt || true + git log --merges "$prev_tag..HEAD" --pretty='%h %s' >> commits-raw.txt || true + + # De-dup by short sha, preserve order + awk '!seen[$1]++' commits-raw.txt > commits.txt + echo "Commits since $prev_tag:" + cat commits.txt + + - name: Annotate commits with author + external flag + env: + REPOSITORY: ${{ github.repository }} + run: | + set -euo pipefail + : > commits-annotated.txt + while read -r line; do + [[ -z "$line" ]] && continue + sha="$(echo "$line" | awk '{print $1}')" + subject="$(echo "$line" | cut -d' ' -f2-)" + pr_num="$(echo "$subject" | grep -oE '#[0-9]+' | head -1 | tr -d '#' || true)" + login="" + external="false" + if [[ -n "$pr_num" ]]; then + if json="$(gh api "repos/$REPOSITORY/pulls/$pr_num" 2>/dev/null)"; then + login="$(echo "$json" | jq -r '.user.login // ""')" + assoc="$(echo "$json" | jq -r '.author_association // ""')" + case "$assoc" in + MEMBER|OWNER|COLLABORATOR) external="false" ;; + *) external="true" ;; + esac + fi + fi + echo "$sha $subject -- author=$login external=$external" >> commits-annotated.txt + done < commits.txt + echo "Annotated commits:" + cat commits-annotated.txt + + - name: Set nextBump in version-policies.json + if: steps.state.outputs.already_prepared == 'false' + env: + VERSION: ${{ steps.validate.outputs.version }} + run: node .github/scripts/prepare-release.js "$VERSION" + + - name: Commit "Prepare for release" + if: steps.state.outputs.already_prepared == 'false' && inputs.dry_run == false + env: + VERSION: ${{ steps.validate.outputs.version }} + run: | + set -euo pipefail + git add common/config/rush/version-policies.json + # If the script was a no-op (nextBump already correct), skip the commit. + if git diff --cached --quiet; then + echo "No staged changes; nextBump was already set correctly. Skipping commit." + else + git commit -m "Prepare for $VERSION release" + git push origin "$RELEASE_BRANCH" + fi + + - name: Show planned changes (dry run) + if: inputs.dry_run == true + run: | + echo "=== Diff that would be committed ===" + git --no-pager diff + echo "====================================" + + - name: Generate PR body + run: | + set -euo pipefail + ./.github/scripts/classify-commits.sh < commits-annotated.txt > classified.tsv + ./.github/scripts/format-pr-body.sh < classified.tsv > pr-body.md + + echo "=== Generated PR body ===" + cat pr-body.md + echo "=========================" + + - name: Open or update release PR + if: inputs.dry_run == false + env: + VERSION: ${{ steps.validate.outputs.version }} + run: | + set -euo pipefail + existing="$(gh pr list --head "$RELEASE_BRANCH" --base "$BASE_BRANCH" --state open --json number --jq '.[0].number' || true)" + if [[ -n "$existing" ]]; then + gh pr edit "$existing" --title "Release/$VERSION" --body-file pr-body.md + echo "Updated existing PR #$existing" + else + gh pr create \ + --base "$BASE_BRANCH" \ + --head "$RELEASE_BRANCH" \ + --title "Release/$VERSION" \ + --body-file pr-body.md + fi diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index d29590991..26ec022ab 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -22,7 +22,7 @@ jobs: - name: Use Node.js 18 uses: actions/setup-node@v3 with: - node-version: 18 + node-version: 22 - name: pnpm cache uses: actions/cache@v3 @@ -79,7 +79,7 @@ jobs: working-directory: ./trackers/react-native-tracker run: | api-extractor run - api-documenter markdown --input-folder temp --output-folder ../../api-docs/docs/node-tracker/markdown + api-documenter markdown --input-folder temp --output-folder ../../api-docs/docs/react-native-tracker/markdown - name: Apply API documentation updates run: | diff --git a/.github/workflows/publish_branch.yml b/.github/workflows/publish_branch.yml index a03197fad..09af511d7 100644 --- a/.github/workflows/publish_branch.yml +++ b/.github/workflows/publish_branch.yml @@ -17,7 +17,7 @@ jobs: - name: Use Node.js 18 uses: actions/setup-node@v3 with: - node-version: 18 + node-version: 22 - name: Get dist-tag from branch name env: diff --git a/.github/workflows/publish_prerelease.yml b/.github/workflows/publish_prerelease.yml index 3907bd014..5f238358c 100644 --- a/.github/workflows/publish_prerelease.yml +++ b/.github/workflows/publish_prerelease.yml @@ -22,7 +22,7 @@ jobs: - name: Use Node.js 18 uses: actions/setup-node@v3 with: - node-version: 18 + node-version: 22 - name: pnpm cache uses: actions/cache@v3 diff --git a/.github/workflows/snyk.yml b/.github/workflows/snyk.yml index 1d9aca3ae..753187e98 100644 --- a/.github/workflows/snyk.yml +++ b/.github/workflows/snyk.yml @@ -10,7 +10,7 @@ jobs: - name: Use Node.js 18 uses: actions/setup-node@v3 with: - node-version: 18 + node-version: 22 - name: pnpm cache uses: actions/cache@v3 diff --git a/.nvmrc b/.nvmrc index 3c032078a..2bd5a0a98 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -18 +22 diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 000000000..a04310f6b --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,554 @@ +# Snowplow JavaScript Tracker - CLAUDE.md + +## Project Overview + +The Snowplow JavaScript Tracker is a comprehensive analytics tracking library for web, browser, and React Native applications. It provides event tracking capabilities for sending data to Snowplow collectors. The project uses a monorepo structure managed by Rush.js with TypeScript as the primary language. + +### Key Technologies +- **Language**: TypeScript/JavaScript +- **Build System**: Rush.js (monorepo) + Rollup +- **Package Manager**: pnpm (v9.7.1) +- **Testing**: Jest with jsdom +- **Target Environments**: Browser, Node.js, React Native + +## Development Commands + +```bash +# Install dependencies and build all packages +rush install +rush build + +# Run tests +rush test # Run all tests +rush test:unit # Unit tests only +rush test:e2e # E2E tests + +# Build specific package +cd trackers/browser-tracker && rushx build + +# Quality checks +rush lint # ESLint +rush format # Prettier +``` + +## Architecture + +### System Design +The tracker follows a **layered plugin architecture** with core libraries providing fundamental tracking capabilities and plugins extending functionality for specific use cases. + +``` +┌─────────────────────────────────────────┐ +│ Trackers Layer │ +│ (browser, javascript, node, react-native) │ +├─────────────────────────────────────────┤ +│ Plugins Layer │ +│ (30+ browser plugins for features) │ +├─────────────────────────────────────────┤ +│ Core Libraries Layer │ +│ (tracker-core, browser-tracker-core) │ +└─────────────────────────────────────────┘ +``` + +### Module Organization +- **libraries/**: Core tracking functionality + - `tracker-core`: Platform-agnostic tracking logic + - `browser-tracker-core`: Browser-specific core features +- **trackers/**: Platform-specific tracker implementations +- **plugins/**: Feature-specific plugins (ad tracking, media, ecommerce, etc.) +- **common/**: Shared Rush.js configuration and scripts + +## Core Architectural Principles + +### 1. Plugin-Based Architecture +```typescript +// ✅ Correct: Plugin pattern with activation lifecycle +export function MyPlugin(): BrowserPlugin { + return { + activateBrowserPlugin: (tracker) => { + _trackers[tracker.id] = tracker; + } + }; +} + +// ❌ Wrong: Direct tracker manipulation +export function myFeature(tracker) { + tracker.someMethod(); // Breaks encapsulation +} +``` + +### 2. Event Builder Pattern +```typescript +// ✅ Correct: Use builder functions for events +import { buildSelfDescribingEvent } from '@snowplow/tracker-core'; +const event = buildSelfDescribingEvent({ schema, data }); + +// ❌ Wrong: Manual event construction +const event = { e: 'ue', ue_pr: {...} }; // Don't construct manually +``` + +### 3. Type-Safe Self-Describing JSON +```typescript +// ✅ Correct: Typed SelfDescribingJson +export type MyEventData = { + field: string; + value: number; +}; +const event: SelfDescribingJson = { + schema: 'iglu:com.example/event/jsonschema/1-0-0', + data: { field: 'test', value: 42 } +}; + +// ❌ Wrong: Untyped data objects +const event = { schema: '...', data: someData }; +``` + +### 4. Workspace Dependencies +```typescript +// ✅ Correct: Use workspace protocol for internal deps +"dependencies": { + "@snowplow/tracker-core": "workspace:*" +} + +// ❌ Wrong: Version-specific internal dependencies +"dependencies": { + "@snowplow/tracker-core": "^3.0.0" +} +``` + +## Layer Organization & Responsibilities + +### Core Libraries (`libraries/`) +- **tracker-core**: Event building, payload construction, emitter logic +- **browser-tracker-core**: Browser APIs, storage, cookies, DOM helpers + +### Trackers (`trackers/`) +- **browser-tracker**: Modern browser tracking API +- **javascript-tracker**: Legacy SP.js compatible tracker +- **node-tracker**: Server-side Node.js tracking +- **react-native-tracker**: Mobile app tracking + +### Plugins (`plugins/`) +Each plugin follows the standard structure: +``` +browser-plugin-*/ +├── src/ +│ ├── index.ts # Plugin export & registration +│ ├── api.ts # Public API functions +│ ├── types.ts # TypeScript definitions +│ └── schemata.ts # Event schemas +├── test/ +├── package.json +└── rollup.config.js +``` + +## Critical Import Patterns + +### 1. Core Imports +```typescript +// ✅ Correct: Import from package roots +import { BrowserPlugin } from '@snowplow/browser-tracker-core'; +import { buildSelfDescribingEvent } from '@snowplow/tracker-core'; + +// ❌ Wrong: Deep imports into src +import { something } from '@snowplow/browser-tracker-core/src/helpers'; +``` + +### 2. Plugin Registration +```typescript +// ✅ Correct: Plugin initialization pattern +import { AdTrackingPlugin } from '@snowplow/browser-plugin-ad-tracking'; + +newTracker('sp', 'collector.example.com', { + plugins: [AdTrackingPlugin()] +}); + +// ❌ Wrong: Direct plugin function calls +AdTrackingPlugin.trackAdClick(); // Plugins need registration +``` + +### 3. Type Exports +```typescript +// ✅ Correct: Re-export types with functions +export { AdClickEvent, trackAdClick } from './api'; + +// ❌ Wrong: Forget to export event types +export { trackAdClick } from './api'; // Missing type export +``` + +## Essential Library Patterns + +### Event Tracking Pattern +```typescript +// Standard event tracking with context +export function trackMyEvent( + event: MyEvent & CommonEventProperties, + trackers: Array = Object.keys(_trackers) +) { + dispatchToTrackersInCollection(trackers, _trackers, (t) => { + t.core.track(buildMyEvent(event), event.context, event.timestamp); + }); +} +``` + +### Plugin State Management +```typescript +// Plugin-scoped tracker registry +const _trackers: Record = {}; + +export function MyPlugin(): BrowserPlugin { + return { + activateBrowserPlugin: (tracker) => { + _trackers[tracker.id] = tracker; + } + }; +} +``` + +### Schema Definition Pattern +```typescript +// schemata.ts - Centralized schema constants +export const MY_SCHEMA = 'iglu:com.snowplowanalytics.snowplow/my_event/jsonschema/1-0-0'; + +// Usage in event builders +const event: SelfDescribingJson = { + schema: MY_SCHEMA, + data: eventData +}; +``` + +## Model Organization Pattern + +### Event Type Definitions +```typescript +// types.ts - Event data interfaces +export interface MediaPlayerEvent { + currentTime: number; + duration?: number; + ended: boolean; + loop: boolean; + // ... other fields +} + +// Composite types for API +export type MediaTrackEvent = MediaPlayerEvent & { + eventType: MediaEventType; + label?: string; +}; +``` + +### Context Builders +```typescript +// Context creation pattern +export function buildMediaContext(player: MediaPlayer): SelfDescribingJson { + return { + schema: MEDIA_PLAYER_SCHEMA, + data: { + currentTime: player.currentTime, + duration: player.duration, + // ... map player state + } + }; +} +``` + +## Common Pitfalls & Solutions + +### 1. Forgetting Plugin Registration +```typescript +// ❌ Wrong: Using plugin API without registration +import { trackAdClick } from '@snowplow/browser-plugin-ad-tracking'; +trackAdClick(event); // Error: _trackers is empty + +// ✅ Correct: Register plugin first +import { AdTrackingPlugin, trackAdClick } from '@snowplow/browser-plugin-ad-tracking'; +newTracker('sp', 'collector.example.com', { + plugins: [AdTrackingPlugin()] +}); +trackAdClick(event); // Works correctly +``` + +### 2. Incorrect Timestamp Types +```typescript +// ❌ Wrong: String timestamps +event.timestamp = '2024-01-01T00:00:00Z'; + +// ✅ Correct: Use Timestamp ADT +event.timestamp = { type: 'ttm', value: Date.now() }; +// or just number for device timestamp +event.timestamp = Date.now(); +``` + +### 3. Manual Payload Construction +```typescript +// ❌ Wrong: Building payloads manually +const payload = { + e: 'se', + se_ca: 'category', + se_ac: 'action' +}; + +// ✅ Correct: Use builder functions +const payload = buildStructEvent({ + category: 'category', + action: 'action' +}); +``` + +## File Structure Template + +### New Plugin Structure +``` +plugins/browser-plugin-[feature]/ +├── src/ +│ ├── index.ts # Plugin export +│ ├── api.ts # Public tracking functions +│ ├── types.ts # TypeScript interfaces +│ ├── schemata.ts # Schema constants +│ └── contexts.ts # Context builders +├── test/ +│ └── [feature].test.ts # Jest tests +├── package.json # Workspace package +├── tsconfig.json # TypeScript config +├── rollup.config.js # Build configuration +└── README.md # Documentation +``` + +## Testing Patterns + +### Test Directory Structure +Each package maintains its own `test/` directory with TypeScript test files: +``` +package/ +├── test/ +│ ├── *.test.ts # Unit tests +│ ├── integration/ # Integration tests +│ ├── functional/ # E2E/browser tests +│ └── __snapshots__/ # Jest snapshots +``` + +### Test File Naming Conventions +```typescript +// ✅ Correct: Descriptive test file names +events.test.ts // Testing event functions +contexts.test.ts // Testing context builders +browser_props.test.ts // Testing browser properties + +// ❌ Wrong: Generic or unclear names +test.test.ts // Too generic +unit.test.ts // Not descriptive +``` + +### Test Suite Structure +```typescript +// ✅ Correct: Nested describe blocks with clear naming +describe('AdTrackingPlugin', () => { + describe('#trackAdClick', () => { + it('tracks click event with correct schema', () => {}); + it('includes required fields in payload', () => {}); + }); +}); + +// ❌ Wrong: Flat structure without context +describe('tests', () => { + it('test1', () => {}); + it('test2', () => {}); +}); +``` + +### Common Test Utilities +```typescript +// Using lodash/fp for test data extraction +import F from 'lodash/fp'; + +const getUEEvents = F.compose(F.filter(F.compose(F.eq('ue'), F.get('e')))); +const extractEventProperties = F.map(F.compose( + F.get('data'), + (cx: string) => JSON.parse(cx), + F.get('ue_pr') +)); +``` + +### Mock Setup Pattern +```typescript +// Standard mock configuration in tests +beforeAll(() => { + jest.spyOn(document, 'title', 'get').mockReturnValue('Test Title'); +}); + +beforeEach(() => { + jest.clearAllMocks(); + // Reset tracker state between tests +}); +``` + +### Snapshot Testing +```typescript +// ✅ Correct: Snapshot for complex objects +expect(buildMediaContext(player)).toMatchSnapshot(); + +// ❌ Wrong: Snapshot for simple values +expect(event.id).toMatchSnapshot(); // Use toBe() instead +``` + +### Test Categories & Best Practices + +#### 1. Unit Tests +Test individual functions and modules in isolation: +```typescript +// ✅ Correct: Testing pure functions +it('makeDimension correctly floors dimension type values', () => { + expect(makeDimension(800.5)).toBe(800); + expect(makeDimension('not-a-number')).toBe(0); +}); +``` + +#### 2. Integration Tests +Test multi-component interactions: +```typescript +// ✅ Correct: Testing plugin integration with tracker +it('registers plugin and tracks events', () => { + const tracker = createTracker({ plugins: [MyPlugin()] }); + trackMyEvent({ data: 'test' }); + expect(eventStore.getEvents()).toHaveLength(1); +}); +``` + +#### 3. Functional/E2E Tests +Browser automation tests for full tracker behavior: +```typescript +// Located in test/functional/ +it('persists session across page reloads', async () => { + await browser.url('/test-page'); + const sessionId = await browser.execute(() => tracker.getSessionId()); + await browser.refresh(); + const newSessionId = await browser.execute(() => tracker.getSessionId()); + expect(sessionId).toBe(newSessionId); +}); +``` + +### Testing Configuration + +#### Jest Configuration Pattern +```javascript +// jest.config.js - Standard config for packages +module.exports = { + preset: 'ts-jest', + testEnvironment: 'jsdom', + setupFilesAfterEnv: ['../../setupTestGlobals.ts'], + reporters: ['jest-standard-reporter'] +}; +``` + +#### Global Test Setup +```typescript +// setupTestGlobals.ts - Shared test utilities +import 'whatwg-fetch'; +global.crypto = { + getRandomValues: (buffer) => nodeCrypto.randomFillSync(buffer) +}; +``` + +### Event Store Testing Pattern +```typescript +// ✅ Correct: Using in-memory event store for tests +import { newInMemoryEventStore } from '@snowplow/tracker-core'; + +const eventStore = newInMemoryEventStore(); +const tracker = createTracker({ eventStore }); +// Verify events: eventStore.getEvents() +``` + +### Testing Async Behavior +```typescript +// ✅ Correct: Testing timer-based functionality +it('sends ping event after interval', async () => { + jest.useFakeTimers(); + startPingInterval(player, 30); + jest.advanceTimersByTime(30000); + await Promise.resolve(); // Allow async operations + expect(trackMediaPing).toHaveBeenCalled(); + jest.useRealTimers(); +}); +``` + +## Quick Reference + +### Import Checklist +- [ ] Import from package root, not `/src` +- [ ] Include type exports with functions +- [ ] Use `workspace:*` for internal dependencies +- [ ] Import builders from `@snowplow/tracker-core` +- [ ] Import browser utils from `@snowplow/browser-tracker-core` + +### Common Tasks + +```typescript +// Create new tracker +import { newTracker } from '@snowplow/browser-tracker'; +newTracker('sp', 'collector.example.com', { + appId: 'my-app', + plugins: [/* plugins */] +}); + +// Track custom event +import { trackSelfDescribingEvent } from '@snowplow/browser-tracker'; +trackSelfDescribingEvent({ + event: { + schema: 'iglu:com.example/event/jsonschema/1-0-0', + data: { /* event data */ } + } +}); + +// Add global context +import { addGlobalContexts } from '@snowplow/browser-tracker'; +addGlobalContexts([{ + schema: 'iglu:com.example/context/jsonschema/1-0-0', + data: { /* context data */ } +}]); + +// Test a tracker with in-memory event store +import { createTracker } from '../helpers'; +import { newInMemoryEventStore } from '@snowplow/tracker-core'; +const eventStore = newInMemoryEventStore(); +const tracker = createTracker({ eventStore }); +``` + +## Contributing to CLAUDE.md + +When adding or updating content in this document, please follow these guidelines: + +### File Size Limit +- **CLAUDE.md must not exceed 40KB** (currently ~11KB) +- Check file size after updates: `wc -c CLAUDE.md` +- Remove outdated content if approaching the limit + +### Code Examples +- Keep all code examples **4 lines or fewer** +- Focus on the essential pattern, not complete implementations +- Use `// ❌` and `// ✅` to clearly show wrong vs right approaches + +### Content Organization +- Add new patterns to existing sections when possible +- Create new sections sparingly to maintain structure +- Update the architectural principles section for major changes +- Ensure examples follow current codebase conventions + +### Quality Standards +- Test any new patterns in actual code before documenting +- Verify imports and syntax are correct for the codebase +- Keep language concise and actionable +- Focus on "what" and "how", minimize "why" explanations + +### Multiple CLAUDE.md Files +- **Directory-specific CLAUDE.md files** can be created for specialized modules +- Follow the same structure and guidelines as this root CLAUDE.md +- Keep them focused on directory-specific patterns and conventions +- Maximum 20KB per directory-specific CLAUDE.md file + +### Instructions for LLMs +When editing files in this repository, **always check for CLAUDE.md guidance**: + +1. **Look for CLAUDE.md in the same directory** as the file being edited +2. **If not found, check parent directories** recursively up to project root +3. **Follow the patterns and conventions** described in the applicable CLAUDE.md +4. **Prioritize directory-specific guidance** over root-level guidance when conflicts exist \ No newline at end of file diff --git a/api-docs/docs/browser-tracker/browser-tracker.api.md b/api-docs/docs/browser-tracker/browser-tracker.api.md index 022373eb4..00e3908cd 100644 --- a/api-docs/docs/browser-tracker/browser-tracker.api.md +++ b/api-docs/docs/browser-tracker/browser-tracker.api.md @@ -15,10 +15,21 @@ export type ActivityCallbackData = { minYOffset: number; maxXOffset: number; maxYOffset: number; + activityMetrics?: ActivityMetrics; +}; + +// @public +export type ActivityMetrics = { + mouseDistance: number; + scrollDistance: number; + keyPresses: number; + clicks: number; + touches: number; }; // @public export interface ActivityTrackingConfiguration { + activityMetrics?: boolean; heartbeatDelay: number; minimumVisitLength: number; } @@ -68,6 +79,7 @@ export interface BrowserTracker { enableAnonymousTracking: (configuration?: EnableAnonymousTrackingConfiguration) => void; flushBuffer: (configuration?: FlushBufferConfiguration) => void; getCookieName: (basename: string) => string; + getDomainSessionId: () => string; getDomainSessionIndex: () => number; getDomainUserId: () => string; getDomainUserInfo: () => ParsedIdCookie; @@ -219,12 +231,14 @@ export function discardHashTag(enable: boolean, trackers?: Array): void; export interface EmitterConfigurationBase { bufferSize?: number; connectionTimeout?: number; + cookieExtensionService?: string; credentials?: "omit" | "same-origin" | "include"; customFetch?: (input: Request, options?: RequestInit) => Promise; customHeaders?: Record; dontRetryStatusCodes?: number[]; eventMethod?: EventMethod; eventStore?: EventStore; + // @deprecated (undocumented) idService?: string; keepalive?: boolean; maxGetBytes?: number; @@ -328,6 +342,9 @@ export interface FlushBufferConfiguration { newBufferSize?: number; } +// @public +export function getDomainSessionId(trackerId?: string): string | undefined; + // @public export type JsonProcessor = (payloadBuilder: PayloadBuilder, jsonForProcessing: EventJson, contextEntitiesForProcessing: SelfDescribingJson[]) => void; @@ -537,7 +554,9 @@ export type TrackerConfiguration = { plugins?: Array; onSessionUpdateCallback?: (updatedSession: ClientSession) => void; preservePageViewIdForUrl?: PreservePageViewIdForUrl; + preserveOriginalReferrer?: boolean; synchronousCookieWrite?: boolean; + disableSessionContextWithinWebView?: boolean; } & EmitterConfigurationBase & LocalStorageEventStoreConfigurationBase; // @public diff --git a/api-docs/docs/browser-tracker/markdown/browser-tracker.activitycallbackdata.md b/api-docs/docs/browser-tracker/markdown/browser-tracker.activitycallbackdata.md index 99a37d953..b146d8477 100644 --- a/api-docs/docs/browser-tracker/markdown/browser-tracker.activitycallbackdata.md +++ b/api-docs/docs/browser-tracker/markdown/browser-tracker.activitycallbackdata.md @@ -16,5 +16,6 @@ type ActivityCallbackData = { minYOffset: number; maxXOffset: number; maxYOffset: number; + activityMetrics?: ActivityMetrics; }; ``` diff --git a/api-docs/docs/browser-tracker/markdown/browser-tracker.activitymetrics.md b/api-docs/docs/browser-tracker/markdown/browser-tracker.activitymetrics.md new file mode 100644 index 000000000..6f461105c --- /dev/null +++ b/api-docs/docs/browser-tracker/markdown/browser-tracker.activitymetrics.md @@ -0,0 +1,19 @@ + + +[Home](./index.md) > [@snowplow/browser-tracker](./browser-tracker.md) > [ActivityMetrics](./browser-tracker.activitymetrics.md) + +## ActivityMetrics type + +Quantitative activity metrics accumulated between page pings. Attached as a context entity when activityMetrics is enabled. + +Signature: + +```typescript +type ActivityMetrics = { + mouseDistance: number; + scrollDistance: number; + keyPresses: number; + clicks: number; + touches: number; +}; +``` diff --git a/api-docs/docs/browser-tracker/markdown/browser-tracker.activitytrackingconfiguration.activitymetrics.md b/api-docs/docs/browser-tracker/markdown/browser-tracker.activitytrackingconfiguration.activitymetrics.md new file mode 100644 index 000000000..af2a96371 --- /dev/null +++ b/api-docs/docs/browser-tracker/markdown/browser-tracker.activitytrackingconfiguration.activitymetrics.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/browser-tracker](./browser-tracker.md) > [ActivityTrackingConfiguration](./browser-tracker.activitytrackingconfiguration.md) > [activityMetrics](./browser-tracker.activitytrackingconfiguration.activitymetrics.md) + +## ActivityTrackingConfiguration.activityMetrics property + +Enable activity metrics to attach an activity\_metrics entity to each page ping + +Signature: + +```typescript +activityMetrics?: boolean; +``` diff --git a/api-docs/docs/browser-tracker/markdown/browser-tracker.activitytrackingconfiguration.md b/api-docs/docs/browser-tracker/markdown/browser-tracker.activitytrackingconfiguration.md index fc634fbf0..cb4cf5be3 100644 --- a/api-docs/docs/browser-tracker/markdown/browser-tracker.activitytrackingconfiguration.md +++ b/api-docs/docs/browser-tracker/markdown/browser-tracker.activitytrackingconfiguration.md @@ -16,6 +16,7 @@ interface ActivityTrackingConfiguration | Property | Type | Description | | --- | --- | --- | +| [activityMetrics?](./browser-tracker.activitytrackingconfiguration.activitymetrics.md) | boolean | (Optional) Enable activity metrics to attach an activity\_metrics entity to each page ping | | [heartbeatDelay](./browser-tracker.activitytrackingconfiguration.heartbeatdelay.md) | number | The interval at which the callback will be fired | | [minimumVisitLength](./browser-tracker.activitytrackingconfiguration.minimumvisitlength.md) | number | The minimum time that must have elapsed before first heartbeat | diff --git a/api-docs/docs/browser-tracker/markdown/browser-tracker.browsertracker.getdomainsessionid.md b/api-docs/docs/browser-tracker/markdown/browser-tracker.browsertracker.getdomainsessionid.md new file mode 100644 index 000000000..0ba75df76 --- /dev/null +++ b/api-docs/docs/browser-tracker/markdown/browser-tracker.browsertracker.getdomainsessionid.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/browser-tracker](./browser-tracker.md) > [BrowserTracker](./browser-tracker.browsertracker.md) > [getDomainSessionId](./browser-tracker.browsertracker.getdomainsessionid.md) + +## BrowserTracker.getDomainSessionId property + +Get the current domain session ID (from first party cookie) + +Signature: + +```typescript +getDomainSessionId: () => string; +``` diff --git a/api-docs/docs/browser-tracker/markdown/browser-tracker.browsertracker.md b/api-docs/docs/browser-tracker/markdown/browser-tracker.browsertracker.md index 151168e3b..a08c031d1 100644 --- a/api-docs/docs/browser-tracker/markdown/browser-tracker.browsertracker.md +++ b/api-docs/docs/browser-tracker/markdown/browser-tracker.browsertracker.md @@ -30,6 +30,7 @@ interface BrowserTracker | [enableAnonymousTracking](./browser-tracker.browsertracker.enableanonymoustracking.md) | (configuration?: EnableAnonymousTrackingConfiguration) => void | Enables anonymous tracking (ie. tracker initialized without anonymousTracking) | | [flushBuffer](./browser-tracker.browsertracker.flushbuffer.md) | (configuration?: FlushBufferConfiguration) => void | Send all events in the outQueue Only need to use this when sending events with a bufferSize of at least 2 | | [getCookieName](./browser-tracker.browsertracker.getcookiename.md) | (basename: string) => string | Get the cookie name as cookieNamePrefix + basename + . + domain. | +| [getDomainSessionId](./browser-tracker.browsertracker.getdomainsessionid.md) | () => string | Get the current domain session ID (from first party cookie) | | [getDomainSessionIndex](./browser-tracker.browsertracker.getdomainsessionindex.md) | () => number | Get the domain session index also known as current memorized visit count. | | [getDomainUserId](./browser-tracker.browsertracker.getdomainuserid.md) | () => string | Get visitor ID (from first party cookie) | | [getDomainUserInfo](./browser-tracker.browsertracker.getdomainuserinfo.md) | () => ParsedIdCookie | Get the visitor information (from first party cookie) | diff --git a/api-docs/docs/browser-tracker/markdown/browser-tracker.emitterconfigurationbase.cookieextensionservice.md b/api-docs/docs/browser-tracker/markdown/browser-tracker.emitterconfigurationbase.cookieextensionservice.md new file mode 100644 index 000000000..2bb4f496c --- /dev/null +++ b/api-docs/docs/browser-tracker/markdown/browser-tracker.emitterconfigurationbase.cookieextensionservice.md @@ -0,0 +1,15 @@ + + +[Home](./index.md) > [@snowplow/browser-tracker](./browser-tracker.md) > [EmitterConfigurationBase](./browser-tracker.emitterconfigurationbase.md) > [cookieExtensionService](./browser-tracker.emitterconfigurationbase.cookieextensionservice.md) + +## EmitterConfigurationBase.cookieExtensionService property + +Cookie extension service full URL. This URL will be added to the queue and will be called using a GET method. This option is there to allow the service URL to be called in order to set any required identifiers e.g. extra cookies. + +The request respects the `anonymousTracking` option, including the SP-Anonymous header if needed, and any additional custom headers from the customHeaders option. + +Signature: + +```typescript +cookieExtensionService?: string; +``` diff --git a/api-docs/docs/browser-tracker/markdown/browser-tracker.emitterconfigurationbase.idservice.md b/api-docs/docs/browser-tracker/markdown/browser-tracker.emitterconfigurationbase.idservice.md index 1c805e74b..699c4a7e6 100644 --- a/api-docs/docs/browser-tracker/markdown/browser-tracker.emitterconfigurationbase.idservice.md +++ b/api-docs/docs/browser-tracker/markdown/browser-tracker.emitterconfigurationbase.idservice.md @@ -4,9 +4,10 @@ ## EmitterConfigurationBase.idService property -Id service full URL. This URL will be added to the queue and will be called using a GET method. This option is there to allow the service URL to be called in order to set any required identifiers e.g. extra cookies. - -The request respects the `anonymousTracking` option, including the SP-Anonymous header if needed, and any additional custom headers from the customHeaders option. +> Warning: This API is now obsolete. +> +> Use `cookieExtensionService` instead. +> Signature: diff --git a/api-docs/docs/browser-tracker/markdown/browser-tracker.emitterconfigurationbase.md b/api-docs/docs/browser-tracker/markdown/browser-tracker.emitterconfigurationbase.md index 6999663b6..8ec405334 100644 --- a/api-docs/docs/browser-tracker/markdown/browser-tracker.emitterconfigurationbase.md +++ b/api-docs/docs/browser-tracker/markdown/browser-tracker.emitterconfigurationbase.md @@ -16,13 +16,14 @@ interface EmitterConfigurationBase | --- | --- | --- | | [bufferSize?](./browser-tracker.emitterconfigurationbase.buffersize.md) | number | (Optional) The amount of events that should be buffered before sending Recommended to leave as 1 to reduce change of losing events | | [connectionTimeout?](./browser-tracker.emitterconfigurationbase.connectiontimeout.md) | number | (Optional) How long to wait before aborting requests to the collector | +| [cookieExtensionService?](./browser-tracker.emitterconfigurationbase.cookieextensionservice.md) | string | (Optional) Cookie extension service full URL. This URL will be added to the queue and will be called using a GET method. This option is there to allow the service URL to be called in order to set any required identifiers e.g. extra cookies.The request respects the anonymousTracking option, including the SP-Anonymous header if needed, and any additional custom headers from the customHeaders option. | | [credentials?](./browser-tracker.emitterconfigurationbase.credentials.md) | "omit" \| "same-origin" \| "include" | (Optional) Controls whether or not the browser sends credentials (defaults to 'include') | | [customFetch?](./browser-tracker.emitterconfigurationbase.customfetch.md) | (input: Request, options?: RequestInit) => Promise<Response> | (Optional) Enables overriding the default fetch function with a custom implementation. | | [customHeaders?](./browser-tracker.emitterconfigurationbase.customheaders.md) | Record<string, string> | (Optional) An object of key value pairs which represent headers to attach when sending a POST request, only works for POST | | [dontRetryStatusCodes?](./browser-tracker.emitterconfigurationbase.dontretrystatuscodes.md) | number\[\] | (Optional) List of HTTP response status codes for which events sent to Collector should not be retried in future request. Only non-success status codes are considered (greater or equal to 300). The don't retry codes are only considered for GET and POST requests. By default, the tracker retries on all non-success status codes except for 400, 401, 403, 410, and 422 (these don't retry codes will remain even if you set your own dontRetryStatusCodes but can be changed using the retryStatusCodes). | | [eventMethod?](./browser-tracker.emitterconfigurationbase.eventmethod.md) | EventMethod | (Optional) The preferred technique to use to send events | | [eventStore?](./browser-tracker.emitterconfigurationbase.eventstore.md) | EventStore | (Optional) Enables providing a custom EventStore implementation to store events before sending them to the collector. | -| [idService?](./browser-tracker.emitterconfigurationbase.idservice.md) | string | (Optional) Id service full URL. This URL will be added to the queue and will be called using a GET method. This option is there to allow the service URL to be called in order to set any required identifiers e.g. extra cookies.The request respects the anonymousTracking option, including the SP-Anonymous header if needed, and any additional custom headers from the customHeaders option. | +| [idService?](./browser-tracker.emitterconfigurationbase.idservice.md) | string | (Optional) | | [keepalive?](./browser-tracker.emitterconfigurationbase.keepalive.md) | boolean | (Optional) Indicates that the request should be allowed to outlive the webpage that initiated it. Enables collector requests to complete even if the page is closed or navigated away from. Note: Browsers put a limit on keepalive requests of 64KB. In case of multiple keepalive requests in parallel (may happen in case of multiple trackers), the limit is shared. | | [maxGetBytes?](./browser-tracker.emitterconfigurationbase.maxgetbytes.md) | number | (Optional) The max size a GET request (its complete URL) can be. Requests over this size will be tried as a POST request. | | [maxPostBytes?](./browser-tracker.emitterconfigurationbase.maxpostbytes.md) | number | (Optional) The max size a POST request can be before the tracker will force send it Also dictates the max size of a POST request before a batch of events is split into multiple requests | diff --git a/api-docs/docs/browser-tracker/markdown/browser-tracker.getdomainsessionid.md b/api-docs/docs/browser-tracker/markdown/browser-tracker.getdomainsessionid.md new file mode 100644 index 000000000..bb8adc275 --- /dev/null +++ b/api-docs/docs/browser-tracker/markdown/browser-tracker.getdomainsessionid.md @@ -0,0 +1,26 @@ + + +[Home](./index.md) > [@snowplow/browser-tracker](./browser-tracker.md) > [getDomainSessionId](./browser-tracker.getdomainsessionid.md) + +## getDomainSessionId() function + +Get the domain session ID (from the first-party cookie) for a tracker. + +Signature: + +```typescript +declare function getDomainSessionId(trackerId?: string): string | undefined; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| trackerId | string | The tracker identifier which the domain session ID will be retrieved from. Defaults to the first initialised tracker. | + +Returns: + +string \| undefined + +The domain session ID, or undefined if no matching tracker is found + diff --git a/api-docs/docs/browser-tracker/markdown/browser-tracker.md b/api-docs/docs/browser-tracker/markdown/browser-tracker.md index 9671fbced..71c0e88b7 100644 --- a/api-docs/docs/browser-tracker/markdown/browser-tracker.md +++ b/api-docs/docs/browser-tracker/markdown/browser-tracker.md @@ -28,6 +28,7 @@ | [enableActivityTrackingCallback(configuration, trackers)](./browser-tracker.enableactivitytrackingcallback.md) | Enables page activity tracking (replaces collector ping with callback). | | [enableAnonymousTracking(configuration, trackers)](./browser-tracker.enableanonymoustracking.md) | Enables anonymous tracking (ie. tracker initialized without anonymousTracking) | | [flushBuffer(configuration, trackers)](./browser-tracker.flushbuffer.md) | Send all events in the outQueue Only need to use this when sending events with a bufferSize of at least 2 | +| [getDomainSessionId(trackerId)](./browser-tracker.getdomainsessionid.md) | Get the domain session ID (from the first-party cookie) for a tracker. | | [newSession(trackers)](./browser-tracker.newsession.md) | Expires current session and starts a new session. | | [newTracker(trackerId, endpoint, configuration)](./browser-tracker.newtracker.md) | Initialise a new tracker | | [preservePageViewId(trackers)](./browser-tracker.preservepageviewid.md) | Stop regenerating pageViewId (available from web_page context) | @@ -96,6 +97,7 @@ | --- | --- | | [ActivityCallback](./browser-tracker.activitycallback.md) | The callback for enableActivityTrackingCallback | | [ActivityCallbackData](./browser-tracker.activitycallbackdata.md) | The data which is passed to the Activity Tracking callback | +| [ActivityMetrics](./browser-tracker.activitymetrics.md) | Quantitative activity metrics accumulated between page pings. Attached as a context entity when activityMetrics is enabled. | | [AnonymousTrackingOptions](./browser-tracker.anonymoustrackingoptions.md) | | | [BuiltInContexts](./browser-tracker.builtincontexts.md) | | | [ConditionalContextProvider](./browser-tracker.conditionalcontextprovider.md) | Conditional context providers are two element arrays used to decide when to attach contexts, where: - the first element is some conditional criterion - the second element is any number of context primitives | diff --git a/api-docs/docs/browser-tracker/markdown/browser-tracker.trackerconfiguration.md b/api-docs/docs/browser-tracker/markdown/browser-tracker.trackerconfiguration.md index 5aae2288c..1bd565422 100644 --- a/api-docs/docs/browser-tracker/markdown/browser-tracker.trackerconfiguration.md +++ b/api-docs/docs/browser-tracker/markdown/browser-tracker.trackerconfiguration.md @@ -31,7 +31,9 @@ type TrackerConfiguration = { plugins?: Array; onSessionUpdateCallback?: (updatedSession: ClientSession) => void; preservePageViewIdForUrl?: PreservePageViewIdForUrl; + preserveOriginalReferrer?: boolean; synchronousCookieWrite?: boolean; + disableSessionContextWithinWebView?: boolean; } & EmitterConfigurationBase & LocalStorageEventStoreConfigurationBase; ``` diff --git a/api-docs/docs/index.md b/api-docs/docs/index.md index e2d694363..8bf9f9e93 100644 --- a/api-docs/docs/index.md +++ b/api-docs/docs/index.md @@ -2,21 +2,25 @@ sidebar_position: 1 --- -# JavaScript Trackers -The Snowplow JavaScript Trackers support being used in a number of environments. There are three versions of the tracker. +# JavaScript trackers +The Snowplow JavaScript trackers support being used in a number of environments. ## Web tracking We have two flavours of web tracker: JavaScript and Browser. -- JavaScript Tracker (v2 and v3) for loading via tags, by adding code snippets to your website or Tag Manager solution. -- Browser Tracker (v3) for installation into web apps via npm. Popular when natively integrating tracking into React, Angular and Vue applications. +- JavaScript tracker (v2, v3, and v4) for loading via tags, by adding code snippets to your website or Tag Manager solution. +- Browser tracker (v3 and v4) for installation into web apps via npm. Popular when natively integrating tracking into React, Angular and Vue applications. -Find the documentation for both in the [Web trackers](https://docs.snowplow.io/docs/collecting-data/collecting-from-own-applications/javascript-trackers/web-tracker/) section. +From v3 onwards, the JavaScript tracker is implemented as a wrapper around the Browser tracker. +Find high-level documentation for both in the [Web trackers](https://docs.snowplow.io/docs/sources/trackers/web-trackers/) section. ## Server-side tracking -Track events in server-side Node.js environments using the Node.js Tracker (v3). Used via npm. +Track events in server-side Node.js environments using the Node.js tracker (v3 and v4). Used via npm. -Find the documentation in the [Node.js tracker](https://docs.snowplow.io/docs/collecting-data/collecting-from-own-applications/javascript-trackers/node-js-tracker) section. +Find high-level documentation in the [Node.js tracker](https://docs.snowplow.io/docs/sources/trackers/node-js-tracker/) section. +## App tracking +Track events in React Native environments including mobile applications with the React Native tracker. +Find high-level documentation in the [React Native tracker](https://docs.snowplow.io/docs/sources/trackers/react-native-tracker/) section. diff --git a/api-docs/docs/node-tracker/markdown/index.md b/api-docs/docs/node-tracker/markdown/index.md index 58bc37403..87f8bb7e7 100644 --- a/api-docs/docs/node-tracker/markdown/index.md +++ b/api-docs/docs/node-tracker/markdown/index.md @@ -8,5 +8,5 @@ | Package | Description | | --- | --- | -| [@snowplow/react-native-tracker](./react-native-tracker.md) | | +| [@snowplow/node-tracker](./node-tracker.md) | | diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.adclickevent.advertiserid.md b/api-docs/docs/node-tracker/markdown/node-tracker.adclickevent.advertiserid.md new file mode 100644 index 000000000..3e5e1c1f2 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.adclickevent.advertiserid.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [AdClickEvent](./node-tracker.adclickevent.md) > [advertiserId](./node-tracker.adclickevent.advertiserid.md) + +## AdClickEvent.advertiserId property + +Identifier for the advertiser which the campaign belongs to + +Signature: + +```typescript +advertiserId?: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.adclickevent.bannerid.md b/api-docs/docs/node-tracker/markdown/node-tracker.adclickevent.bannerid.md new file mode 100644 index 000000000..79afd60f4 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.adclickevent.bannerid.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [AdClickEvent](./node-tracker.adclickevent.md) > [bannerId](./node-tracker.adclickevent.bannerid.md) + +## AdClickEvent.bannerId property + +Identifier for the ad banner being displayed + +Signature: + +```typescript +bannerId?: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.adclickevent.campaignid.md b/api-docs/docs/node-tracker/markdown/node-tracker.adclickevent.campaignid.md new file mode 100644 index 000000000..4a067d9d9 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.adclickevent.campaignid.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [AdClickEvent](./node-tracker.adclickevent.md) > [campaignId](./node-tracker.adclickevent.campaignid.md) + +## AdClickEvent.campaignId property + +Identifier for the advertiser which the campaign belongs to + +Signature: + +```typescript +campaignId?: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.adclickevent.clickid.md b/api-docs/docs/node-tracker/markdown/node-tracker.adclickevent.clickid.md new file mode 100644 index 000000000..85816030e --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.adclickevent.clickid.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [AdClickEvent](./node-tracker.adclickevent.md) > [clickId](./node-tracker.adclickevent.clickid.md) + +## AdClickEvent.clickId property + +Identifier for the particular click instance + +Signature: + +```typescript +clickId?: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.adclickevent.cost.md b/api-docs/docs/node-tracker/markdown/node-tracker.adclickevent.cost.md new file mode 100644 index 000000000..18c8f7a07 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.adclickevent.cost.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [AdClickEvent](./node-tracker.adclickevent.md) > [cost](./node-tracker.adclickevent.cost.md) + +## AdClickEvent.cost property + +Advertisement cost + +Signature: + +```typescript +cost?: number; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.adclickevent.costmodel.md b/api-docs/docs/node-tracker/markdown/node-tracker.adclickevent.costmodel.md new file mode 100644 index 000000000..d568b747c --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.adclickevent.costmodel.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [AdClickEvent](./node-tracker.adclickevent.md) > [costModel](./node-tracker.adclickevent.costmodel.md) + +## AdClickEvent.costModel property + +The cost model for the campaign + +Signature: + +```typescript +costModel?: "cpa" | "cpc" | "cpm"; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.adclickevent.impressionid.md b/api-docs/docs/node-tracker/markdown/node-tracker.adclickevent.impressionid.md new file mode 100644 index 000000000..8af82e525 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.adclickevent.impressionid.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [AdClickEvent](./node-tracker.adclickevent.md) > [impressionId](./node-tracker.adclickevent.impressionid.md) + +## AdClickEvent.impressionId property + +Identifier for the particular impression instance + +Signature: + +```typescript +impressionId?: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.adclickevent.md b/api-docs/docs/node-tracker/markdown/node-tracker.adclickevent.md new file mode 100644 index 000000000..f7b092d92 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.adclickevent.md @@ -0,0 +1,32 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [AdClickEvent](./node-tracker.adclickevent.md) + +## AdClickEvent interface + +An Ad Click Event Used to track an advertisement click + +Signature: + +```typescript +interface AdClickEvent +``` + +## Remarks + +If you provide the cost field, you must also provide one of 'cpa', 'cpc', and 'cpm' for the costModel field. + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [advertiserId?](./node-tracker.adclickevent.advertiserid.md) | string | (Optional) Identifier for the advertiser which the campaign belongs to | +| [bannerId?](./node-tracker.adclickevent.bannerid.md) | string | (Optional) Identifier for the ad banner being displayed | +| [campaignId?](./node-tracker.adclickevent.campaignid.md) | string | (Optional) Identifier for the advertiser which the campaign belongs to | +| [clickId?](./node-tracker.adclickevent.clickid.md) | string | (Optional) Identifier for the particular click instance | +| [cost?](./node-tracker.adclickevent.cost.md) | number | (Optional) Advertisement cost | +| [costModel?](./node-tracker.adclickevent.costmodel.md) | "cpa" \| "cpc" \| "cpm" | (Optional) The cost model for the campaign | +| [impressionId?](./node-tracker.adclickevent.impressionid.md) | string | (Optional) Identifier for the particular impression instance | +| [targetUrl](./node-tracker.adclickevent.targeturl.md) | string | The destination URL of the advertisement | +| [zoneId?](./node-tracker.adclickevent.zoneid.md) | string | (Optional) Identifier for the zone where the ad banner is located | + diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.adclickevent.targeturl.md b/api-docs/docs/node-tracker/markdown/node-tracker.adclickevent.targeturl.md new file mode 100644 index 000000000..7da8c1ed8 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.adclickevent.targeturl.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [AdClickEvent](./node-tracker.adclickevent.md) > [targetUrl](./node-tracker.adclickevent.targeturl.md) + +## AdClickEvent.targetUrl property + +The destination URL of the advertisement + +Signature: + +```typescript +targetUrl: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.adclickevent.zoneid.md b/api-docs/docs/node-tracker/markdown/node-tracker.adclickevent.zoneid.md new file mode 100644 index 000000000..678870cf5 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.adclickevent.zoneid.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [AdClickEvent](./node-tracker.adclickevent.md) > [zoneId](./node-tracker.adclickevent.zoneid.md) + +## AdClickEvent.zoneId property + +Identifier for the zone where the ad banner is located + +Signature: + +```typescript +zoneId?: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.adconversionevent.action.md b/api-docs/docs/node-tracker/markdown/node-tracker.adconversionevent.action.md new file mode 100644 index 000000000..7a4372493 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.adconversionevent.action.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [AdConversionEvent](./node-tracker.adconversionevent.md) > [action](./node-tracker.adconversionevent.action.md) + +## AdConversionEvent.action property + +The type of user interaction e.g. 'purchase' + +Signature: + +```typescript +action?: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.adconversionevent.advertiserid.md b/api-docs/docs/node-tracker/markdown/node-tracker.adconversionevent.advertiserid.md new file mode 100644 index 000000000..442ca64d4 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.adconversionevent.advertiserid.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [AdConversionEvent](./node-tracker.adconversionevent.md) > [advertiserId](./node-tracker.adconversionevent.advertiserid.md) + +## AdConversionEvent.advertiserId property + +Identifier for the advertiser which the campaign belongs to + +Signature: + +```typescript +advertiserId?: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.adconversionevent.campaignid.md b/api-docs/docs/node-tracker/markdown/node-tracker.adconversionevent.campaignid.md new file mode 100644 index 000000000..052760288 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.adconversionevent.campaignid.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [AdConversionEvent](./node-tracker.adconversionevent.md) > [campaignId](./node-tracker.adconversionevent.campaignid.md) + +## AdConversionEvent.campaignId property + +Identifier for the advertiser which the campaign belongs to + +Signature: + +```typescript +campaignId?: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.adconversionevent.category.md b/api-docs/docs/node-tracker/markdown/node-tracker.adconversionevent.category.md new file mode 100644 index 000000000..993a9384b --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.adconversionevent.category.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [AdConversionEvent](./node-tracker.adconversionevent.md) > [category](./node-tracker.adconversionevent.category.md) + +## AdConversionEvent.category property + +Conversion category + +Signature: + +```typescript +category?: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.adconversionevent.conversionid.md b/api-docs/docs/node-tracker/markdown/node-tracker.adconversionevent.conversionid.md new file mode 100644 index 000000000..714874194 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.adconversionevent.conversionid.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [AdConversionEvent](./node-tracker.adconversionevent.md) > [conversionId](./node-tracker.adconversionevent.conversionid.md) + +## AdConversionEvent.conversionId property + +Identifier for the particular conversion instance + +Signature: + +```typescript +conversionId?: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.adconversionevent.cost.md b/api-docs/docs/node-tracker/markdown/node-tracker.adconversionevent.cost.md new file mode 100644 index 000000000..1745c1116 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.adconversionevent.cost.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [AdConversionEvent](./node-tracker.adconversionevent.md) > [cost](./node-tracker.adconversionevent.cost.md) + +## AdConversionEvent.cost property + +Advertisement cost + +Signature: + +```typescript +cost?: number; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.adconversionevent.costmodel.md b/api-docs/docs/node-tracker/markdown/node-tracker.adconversionevent.costmodel.md new file mode 100644 index 000000000..60ad5c84f --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.adconversionevent.costmodel.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [AdConversionEvent](./node-tracker.adconversionevent.md) > [costModel](./node-tracker.adconversionevent.costmodel.md) + +## AdConversionEvent.costModel property + +The cost model for the campaign + +Signature: + +```typescript +costModel?: "cpa" | "cpc" | "cpm"; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.adconversionevent.initialvalue.md b/api-docs/docs/node-tracker/markdown/node-tracker.adconversionevent.initialvalue.md new file mode 100644 index 000000000..fc4d27d82 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.adconversionevent.initialvalue.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [AdConversionEvent](./node-tracker.adconversionevent.md) > [initialValue](./node-tracker.adconversionevent.initialvalue.md) + +## AdConversionEvent.initialValue property + +How much the conversion is initially worth + +Signature: + +```typescript +initialValue?: number; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.adconversionevent.md b/api-docs/docs/node-tracker/markdown/node-tracker.adconversionevent.md new file mode 100644 index 000000000..c9fb83e7c --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.adconversionevent.md @@ -0,0 +1,32 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [AdConversionEvent](./node-tracker.adconversionevent.md) + +## AdConversionEvent interface + +An Ad Conversion Event Used to track an advertisement click + +Signature: + +```typescript +interface AdConversionEvent +``` + +## Remarks + +If you provide the cost field, you must also provide one of 'cpa', 'cpc', and 'cpm' for the costModel field. + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [action?](./node-tracker.adconversionevent.action.md) | string | (Optional) The type of user interaction e.g. 'purchase' | +| [advertiserId?](./node-tracker.adconversionevent.advertiserid.md) | string | (Optional) Identifier for the advertiser which the campaign belongs to | +| [campaignId?](./node-tracker.adconversionevent.campaignid.md) | string | (Optional) Identifier for the advertiser which the campaign belongs to | +| [category?](./node-tracker.adconversionevent.category.md) | string | (Optional) Conversion category | +| [conversionId?](./node-tracker.adconversionevent.conversionid.md) | string | (Optional) Identifier for the particular conversion instance | +| [cost?](./node-tracker.adconversionevent.cost.md) | number | (Optional) Advertisement cost | +| [costModel?](./node-tracker.adconversionevent.costmodel.md) | "cpa" \| "cpc" \| "cpm" | (Optional) The cost model for the campaign | +| [initialValue?](./node-tracker.adconversionevent.initialvalue.md) | number | (Optional) How much the conversion is initially worth | +| [property?](./node-tracker.adconversionevent.property.md) | string | (Optional) Describes the object of the conversion | + diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.adconversionevent.property.md b/api-docs/docs/node-tracker/markdown/node-tracker.adconversionevent.property.md new file mode 100644 index 000000000..620fbd221 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.adconversionevent.property.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [AdConversionEvent](./node-tracker.adconversionevent.md) > [property](./node-tracker.adconversionevent.property.md) + +## AdConversionEvent.property property + +Describes the object of the conversion + +Signature: + +```typescript +property?: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.addtocartevent.category.md b/api-docs/docs/node-tracker/markdown/node-tracker.addtocartevent.category.md new file mode 100644 index 000000000..c673cc6da --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.addtocartevent.category.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [AddToCartEvent](./node-tracker.addtocartevent.md) > [category](./node-tracker.addtocartevent.category.md) + +## AddToCartEvent.category property + +The category of the product + +Signature: + +```typescript +category?: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.addtocartevent.currency.md b/api-docs/docs/node-tracker/markdown/node-tracker.addtocartevent.currency.md new file mode 100644 index 000000000..e039e4930 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.addtocartevent.currency.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [AddToCartEvent](./node-tracker.addtocartevent.md) > [currency](./node-tracker.addtocartevent.currency.md) + +## AddToCartEvent.currency property + +The currency of the product + +Signature: + +```typescript +currency?: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.addtocartevent.md b/api-docs/docs/node-tracker/markdown/node-tracker.addtocartevent.md new file mode 100644 index 000000000..db24e8413 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.addtocartevent.md @@ -0,0 +1,25 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [AddToCartEvent](./node-tracker.addtocartevent.md) + +## AddToCartEvent interface + +An Add To Cart Event For tracking users adding items from a cart on an ecommerce site. + +Signature: + +```typescript +interface AddToCartEvent +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [category?](./node-tracker.addtocartevent.category.md) | string | (Optional) The category of the product | +| [currency?](./node-tracker.addtocartevent.currency.md) | string | (Optional) The currency of the product | +| [name?](./node-tracker.addtocartevent.name.md) | string | (Optional) The name of the product | +| [quantity](./node-tracker.addtocartevent.quantity.md) | number | The number added to the cart | +| [sku](./node-tracker.addtocartevent.sku.md) | string | A Product Stock Keeping Unit (SKU) | +| [unitPrice?](./node-tracker.addtocartevent.unitprice.md) | number | (Optional) The price of the product | + diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.addtocartevent.name.md b/api-docs/docs/node-tracker/markdown/node-tracker.addtocartevent.name.md new file mode 100644 index 000000000..ee05beaa6 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.addtocartevent.name.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [AddToCartEvent](./node-tracker.addtocartevent.md) > [name](./node-tracker.addtocartevent.name.md) + +## AddToCartEvent.name property + +The name of the product + +Signature: + +```typescript +name?: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.addtocartevent.quantity.md b/api-docs/docs/node-tracker/markdown/node-tracker.addtocartevent.quantity.md new file mode 100644 index 000000000..faa389463 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.addtocartevent.quantity.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [AddToCartEvent](./node-tracker.addtocartevent.md) > [quantity](./node-tracker.addtocartevent.quantity.md) + +## AddToCartEvent.quantity property + +The number added to the cart + +Signature: + +```typescript +quantity: number; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.addtocartevent.sku.md b/api-docs/docs/node-tracker/markdown/node-tracker.addtocartevent.sku.md new file mode 100644 index 000000000..7812ee51e --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.addtocartevent.sku.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [AddToCartEvent](./node-tracker.addtocartevent.md) > [sku](./node-tracker.addtocartevent.sku.md) + +## AddToCartEvent.sku property + +A Product Stock Keeping Unit (SKU) + +Signature: + +```typescript +sku: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.addtocartevent.unitprice.md b/api-docs/docs/node-tracker/markdown/node-tracker.addtocartevent.unitprice.md new file mode 100644 index 000000000..1004e0b41 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.addtocartevent.unitprice.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [AddToCartEvent](./node-tracker.addtocartevent.md) > [unitPrice](./node-tracker.addtocartevent.unitprice.md) + +## AddToCartEvent.unitPrice property + +The price of the product + +Signature: + +```typescript +unitPrice?: number; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.adimpressionevent.advertiserid.md b/api-docs/docs/node-tracker/markdown/node-tracker.adimpressionevent.advertiserid.md new file mode 100644 index 000000000..714669fd1 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.adimpressionevent.advertiserid.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [AdImpressionEvent](./node-tracker.adimpressionevent.md) > [advertiserId](./node-tracker.adimpressionevent.advertiserid.md) + +## AdImpressionEvent.advertiserId property + +Identifier for the advertiser which the campaign belongs to + +Signature: + +```typescript +advertiserId?: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.adimpressionevent.bannerid.md b/api-docs/docs/node-tracker/markdown/node-tracker.adimpressionevent.bannerid.md new file mode 100644 index 000000000..6abc38e9c --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.adimpressionevent.bannerid.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [AdImpressionEvent](./node-tracker.adimpressionevent.md) > [bannerId](./node-tracker.adimpressionevent.bannerid.md) + +## AdImpressionEvent.bannerId property + +Identifier for the ad banner being displayed + +Signature: + +```typescript +bannerId?: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.adimpressionevent.campaignid.md b/api-docs/docs/node-tracker/markdown/node-tracker.adimpressionevent.campaignid.md new file mode 100644 index 000000000..295fd04d9 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.adimpressionevent.campaignid.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [AdImpressionEvent](./node-tracker.adimpressionevent.md) > [campaignId](./node-tracker.adimpressionevent.campaignid.md) + +## AdImpressionEvent.campaignId property + +Identifier for the advertiser which the campaign belongs to + +Signature: + +```typescript +campaignId?: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.adimpressionevent.cost.md b/api-docs/docs/node-tracker/markdown/node-tracker.adimpressionevent.cost.md new file mode 100644 index 000000000..a44fd3ac0 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.adimpressionevent.cost.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [AdImpressionEvent](./node-tracker.adimpressionevent.md) > [cost](./node-tracker.adimpressionevent.cost.md) + +## AdImpressionEvent.cost property + +Advertisement cost + +Signature: + +```typescript +cost?: number; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.adimpressionevent.costmodel.md b/api-docs/docs/node-tracker/markdown/node-tracker.adimpressionevent.costmodel.md new file mode 100644 index 000000000..976c9370a --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.adimpressionevent.costmodel.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [AdImpressionEvent](./node-tracker.adimpressionevent.md) > [costModel](./node-tracker.adimpressionevent.costmodel.md) + +## AdImpressionEvent.costModel property + +The cost model for the campaign + +Signature: + +```typescript +costModel?: "cpa" | "cpc" | "cpm"; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.adimpressionevent.impressionid.md b/api-docs/docs/node-tracker/markdown/node-tracker.adimpressionevent.impressionid.md new file mode 100644 index 000000000..1085dc7f1 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.adimpressionevent.impressionid.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [AdImpressionEvent](./node-tracker.adimpressionevent.md) > [impressionId](./node-tracker.adimpressionevent.impressionid.md) + +## AdImpressionEvent.impressionId property + +Identifier for the particular impression instance + +Signature: + +```typescript +impressionId?: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.adimpressionevent.md b/api-docs/docs/node-tracker/markdown/node-tracker.adimpressionevent.md new file mode 100644 index 000000000..b1e09a8c9 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.adimpressionevent.md @@ -0,0 +1,31 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [AdImpressionEvent](./node-tracker.adimpressionevent.md) + +## AdImpressionEvent interface + +An Ad Impression Event Used to track an advertisement impression + +Signature: + +```typescript +interface AdImpressionEvent +``` + +## Remarks + +If you provide the cost field, you must also provide one of 'cpa', 'cpc', and 'cpm' for the costModel field. + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [advertiserId?](./node-tracker.adimpressionevent.advertiserid.md) | string | (Optional) Identifier for the advertiser which the campaign belongs to | +| [bannerId?](./node-tracker.adimpressionevent.bannerid.md) | string | (Optional) Identifier for the ad banner being displayed | +| [campaignId?](./node-tracker.adimpressionevent.campaignid.md) | string | (Optional) Identifier for the advertiser which the campaign belongs to | +| [cost?](./node-tracker.adimpressionevent.cost.md) | number | (Optional) Advertisement cost | +| [costModel?](./node-tracker.adimpressionevent.costmodel.md) | "cpa" \| "cpc" \| "cpm" | (Optional) The cost model for the campaign | +| [impressionId?](./node-tracker.adimpressionevent.impressionid.md) | string | (Optional) Identifier for the particular impression instance | +| [targetUrl?](./node-tracker.adimpressionevent.targeturl.md) | string | (Optional) The destination URL of the advertisement | +| [zoneId?](./node-tracker.adimpressionevent.zoneid.md) | string | (Optional) Identifier for the zone where the ad banner is located | + diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.adimpressionevent.targeturl.md b/api-docs/docs/node-tracker/markdown/node-tracker.adimpressionevent.targeturl.md new file mode 100644 index 000000000..969998014 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.adimpressionevent.targeturl.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [AdImpressionEvent](./node-tracker.adimpressionevent.md) > [targetUrl](./node-tracker.adimpressionevent.targeturl.md) + +## AdImpressionEvent.targetUrl property + +The destination URL of the advertisement + +Signature: + +```typescript +targetUrl?: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.adimpressionevent.zoneid.md b/api-docs/docs/node-tracker/markdown/node-tracker.adimpressionevent.zoneid.md new file mode 100644 index 000000000..5a0f779e0 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.adimpressionevent.zoneid.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [AdImpressionEvent](./node-tracker.adimpressionevent.md) > [zoneId](./node-tracker.adimpressionevent.zoneid.md) + +## AdImpressionEvent.zoneId property + +Identifier for the zone where the ad banner is located + +Signature: + +```typescript +zoneId?: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.buildadclick.md b/api-docs/docs/node-tracker/markdown/node-tracker.buildadclick.md new file mode 100644 index 000000000..785a252c5 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.buildadclick.md @@ -0,0 +1,30 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [buildAdClick](./node-tracker.buildadclick.md) + +## buildAdClick() function + +Build a Ad Click Event Used to track an advertisement click + +Signature: + +```typescript +declare function buildAdClick(event: AdClickEvent): PayloadBuilder; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| event | AdClickEvent | Contains the properties for the Ad Click event | + +Returns: + +PayloadBuilder + +PayloadBuilder to be sent to + +## Remarks + +If you provide the cost field, you must also provide one of 'cpa', 'cpc', and 'cpm' for the costModel field. + diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.buildadconversion.md b/api-docs/docs/node-tracker/markdown/node-tracker.buildadconversion.md new file mode 100644 index 000000000..03f7a9eff --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.buildadconversion.md @@ -0,0 +1,30 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [buildAdConversion](./node-tracker.buildadconversion.md) + +## buildAdConversion() function + +Build a Ad Conversion Event Used to track an advertisement click + +Signature: + +```typescript +declare function buildAdConversion(event: AdConversionEvent): PayloadBuilder; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| event | AdConversionEvent | Contains the properties for the Ad Conversion event | + +Returns: + +PayloadBuilder + +PayloadBuilder to be sent to + +## Remarks + +If you provide the cost field, you must also provide one of 'cpa', 'cpc', and 'cpm' for the costModel field. + diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.buildaddtocart.md b/api-docs/docs/node-tracker/markdown/node-tracker.buildaddtocart.md new file mode 100644 index 000000000..d03b5d54f --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.buildaddtocart.md @@ -0,0 +1,26 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [buildAddToCart](./node-tracker.buildaddtocart.md) + +## buildAddToCart() function + +Build a Add To Cart Event For tracking users adding items from a cart on an ecommerce site. + +Signature: + +```typescript +declare function buildAddToCart(event: AddToCartEvent): PayloadBuilder; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| event | AddToCartEvent | Contains the properties for the Add To Cart event | + +Returns: + +PayloadBuilder + +PayloadBuilder to be sent to + diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.buildadimpression.md b/api-docs/docs/node-tracker/markdown/node-tracker.buildadimpression.md new file mode 100644 index 000000000..69913bd47 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.buildadimpression.md @@ -0,0 +1,30 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [buildAdImpression](./node-tracker.buildadimpression.md) + +## buildAdImpression() function + +Build a Ad Impression Event Used to track an advertisement impression + +Signature: + +```typescript +declare function buildAdImpression(event: AdImpressionEvent): PayloadBuilder; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| event | AdImpressionEvent | Contains the properties for the Ad Impression event | + +Returns: + +PayloadBuilder + +PayloadBuilder to be sent to + +## Remarks + +If you provide the cost field, you must also provide one of 'cpa', 'cpc', and 'cpm' for the costModel field. + diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.buildconsentgranted.md b/api-docs/docs/node-tracker/markdown/node-tracker.buildconsentgranted.md new file mode 100644 index 000000000..8ed40e118 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.buildconsentgranted.md @@ -0,0 +1,26 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [buildConsentGranted](./node-tracker.buildconsentgranted.md) + +## buildConsentGranted() function + +Build a Consent Granted Event Used for tracking when a user grants their consent + +Signature: + +```typescript +declare function buildConsentGranted(event: ConsentGrantedEvent): EventPayloadAndContext; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| event | ConsentGrantedEvent | Contains the properties for the Consent Granted event | + +Returns: + +EventPayloadAndContext + +An object containing the PayloadBuilder to be sent to and a 'consent\_document' context + diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.buildconsentwithdrawn.md b/api-docs/docs/node-tracker/markdown/node-tracker.buildconsentwithdrawn.md new file mode 100644 index 000000000..1c1daff46 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.buildconsentwithdrawn.md @@ -0,0 +1,26 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [buildConsentWithdrawn](./node-tracker.buildconsentwithdrawn.md) + +## buildConsentWithdrawn() function + +Build a Consent Withdrawn Event Used for tracking when a user withdraws their consent + +Signature: + +```typescript +declare function buildConsentWithdrawn(event: ConsentWithdrawnEvent): EventPayloadAndContext; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| event | ConsentWithdrawnEvent | Contains the properties for the Consent Withdrawn event | + +Returns: + +EventPayloadAndContext + +An object containing the PayloadBuilder to be sent to and a 'consent\_document' context + diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.buildecommercetransaction.md b/api-docs/docs/node-tracker/markdown/node-tracker.buildecommercetransaction.md new file mode 100644 index 000000000..3710ec68c --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.buildecommercetransaction.md @@ -0,0 +1,26 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [buildEcommerceTransaction](./node-tracker.buildecommercetransaction.md) + +## buildEcommerceTransaction() function + +Build an Ecommerce Transaction Event Allows for tracking common ecommerce events, this event is usually used when a consumer completes a transaction. + +Signature: + +```typescript +declare function buildEcommerceTransaction(event: EcommerceTransactionEvent): PayloadBuilder; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| event | EcommerceTransactionEvent | Contains the properties for the Ecommerce Transactoion event | + +Returns: + +PayloadBuilder + +PayloadBuilder to be sent to + diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.buildecommercetransactionitem.md b/api-docs/docs/node-tracker/markdown/node-tracker.buildecommercetransactionitem.md new file mode 100644 index 000000000..6454fe481 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.buildecommercetransactionitem.md @@ -0,0 +1,26 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [buildEcommerceTransactionItem](./node-tracker.buildecommercetransactionitem.md) + +## buildEcommerceTransactionItem() function + +Build an Ecommerce Transaction Item Event Related to the [buildEcommerceTransaction()](./node-tracker.buildecommercetransaction.md) Each Ecommerce Transaction may contain one or more EcommerceTransactionItem events + +Signature: + +```typescript +declare function buildEcommerceTransactionItem(event: EcommerceTransactionItemEvent): PayloadBuilder; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| event | EcommerceTransactionItemEvent | Contains the properties for the Ecommerce Transaction Item event | + +Returns: + +PayloadBuilder + +PayloadBuilder to be sent to + diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.buildformfocusorchange.md b/api-docs/docs/node-tracker/markdown/node-tracker.buildformfocusorchange.md new file mode 100644 index 000000000..2e85d8821 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.buildformfocusorchange.md @@ -0,0 +1,26 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [buildFormFocusOrChange](./node-tracker.buildformfocusorchange.md) + +## buildFormFocusOrChange() function + +Build a Form Focus or Change Form Event based on schema property When a user focuses on a form element or when a user makes a change to a form element. + +Signature: + +```typescript +declare function buildFormFocusOrChange(event: FormFocusOrChangeEvent): PayloadBuilder; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| event | FormFocusOrChangeEvent | Contains the properties for the Form Focus or Change Form event | + +Returns: + +PayloadBuilder + +PayloadBuilder to be sent to + diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.buildformsubmission.md b/api-docs/docs/node-tracker/markdown/node-tracker.buildformsubmission.md new file mode 100644 index 000000000..7f25820d9 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.buildformsubmission.md @@ -0,0 +1,26 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [buildFormSubmission](./node-tracker.buildformsubmission.md) + +## buildFormSubmission() function + +Build a Form Submission Event Used to track when a user submits a form + +Signature: + +```typescript +declare function buildFormSubmission(event: FormSubmissionEvent): PayloadBuilder; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| event | FormSubmissionEvent | Contains the properties for the Form Submission event | + +Returns: + +PayloadBuilder + +PayloadBuilder to be sent to + diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.buildlinkclick.md b/api-docs/docs/node-tracker/markdown/node-tracker.buildlinkclick.md new file mode 100644 index 000000000..0d93ee880 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.buildlinkclick.md @@ -0,0 +1,26 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [buildLinkClick](./node-tracker.buildlinkclick.md) + +## buildLinkClick() function + +Build a Link Click Event Used when a user clicks on a link on a webpage, typically an anchor tag `` + +Signature: + +```typescript +declare function buildLinkClick(event: LinkClickEvent): PayloadBuilder; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| event | LinkClickEvent | Contains the properties for the Link Click event | + +Returns: + +PayloadBuilder + +PayloadBuilder to be sent to + diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.buildpageping.md b/api-docs/docs/node-tracker/markdown/node-tracker.buildpageping.md new file mode 100644 index 000000000..f72b55146 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.buildpageping.md @@ -0,0 +1,26 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [buildPagePing](./node-tracker.buildpageping.md) + +## buildPagePing() function + +Build a Page Ping Event Fires when activity tracking is enabled in the browser. Tracks same information as the last tracked Page View and includes scroll information from the current page view + +Signature: + +```typescript +declare function buildPagePing(event: PagePingEvent): PayloadBuilder; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| event | PagePingEvent | Contains the properties for the Page Ping event | + +Returns: + +PayloadBuilder + +PayloadBuilder to be sent to + diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.buildpageview.md b/api-docs/docs/node-tracker/markdown/node-tracker.buildpageview.md new file mode 100644 index 000000000..25a198ad1 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.buildpageview.md @@ -0,0 +1,26 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [buildPageView](./node-tracker.buildpageview.md) + +## buildPageView() function + +Build a Page View Event Represents a Page View, which is typically fired as soon as possible when a web page is loaded within the users browser. Often also fired on "virtual page views" within Single Page Applications (SPA). + +Signature: + +```typescript +declare function buildPageView(event: PageViewEvent): PayloadBuilder; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| event | PageViewEvent | Contains the properties for the Page View event | + +Returns: + +PayloadBuilder + +PayloadBuilder to be sent to + diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.buildremovefromcart.md b/api-docs/docs/node-tracker/markdown/node-tracker.buildremovefromcart.md new file mode 100644 index 000000000..d9aa28129 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.buildremovefromcart.md @@ -0,0 +1,26 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [buildRemoveFromCart](./node-tracker.buildremovefromcart.md) + +## buildRemoveFromCart() function + +Build a Remove From Cart Event For tracking users removing items from a cart on an ecommerce site. + +Signature: + +```typescript +declare function buildRemoveFromCart(event: RemoveFromCartEvent): PayloadBuilder; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| event | RemoveFromCartEvent | Contains the properties for the Remove From Cart event | + +Returns: + +PayloadBuilder + +PayloadBuilder to be sent to + diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.buildscreenview.md b/api-docs/docs/node-tracker/markdown/node-tracker.buildscreenview.md new file mode 100644 index 000000000..8ead82eac --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.buildscreenview.md @@ -0,0 +1,26 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [buildScreenView](./node-tracker.buildscreenview.md) + +## buildScreenView() function + +Build a Scren View Event Similar to a Page View but less focused on typical web properties Often used for mobile applications as the user is presented with new views as they performance navigation events + +Signature: + +```typescript +declare function buildScreenView(event: ScreenViewEvent): PayloadBuilder; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| event | ScreenViewEvent | Contains the properties for the Screen View event. One or more properties must be included. | + +Returns: + +PayloadBuilder + +PayloadBuilder to be sent to + diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.buildselfdescribingevent.md b/api-docs/docs/node-tracker/markdown/node-tracker.buildselfdescribingevent.md new file mode 100644 index 000000000..4f293a24a --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.buildselfdescribingevent.md @@ -0,0 +1,26 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [buildSelfDescribingEvent](./node-tracker.buildselfdescribingevent.md) + +## buildSelfDescribingEvent() function + +Build a self-describing event A custom event type, allowing for an event to be tracked using your own custom schema and a data object which conforms to the supplied schema + +Signature: + +```typescript +declare function buildSelfDescribingEvent>(event: SelfDescribingEvent): PayloadBuilder; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| event | SelfDescribingEvent<T> | Contains the properties and schema location for the event | + +Returns: + +PayloadBuilder + +PayloadBuilder to be sent to + diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.buildsitesearch.md b/api-docs/docs/node-tracker/markdown/node-tracker.buildsitesearch.md new file mode 100644 index 000000000..d974da411 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.buildsitesearch.md @@ -0,0 +1,26 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [buildSiteSearch](./node-tracker.buildsitesearch.md) + +## buildSiteSearch() function + +Build a Site Search Event Used when a user performs a search action on a page + +Signature: + +```typescript +declare function buildSiteSearch(event: SiteSearchEvent): PayloadBuilder; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| event | SiteSearchEvent | Contains the properties for the Site Search event | + +Returns: + +PayloadBuilder + +PayloadBuilder to be sent to + diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.buildsocialinteraction.md b/api-docs/docs/node-tracker/markdown/node-tracker.buildsocialinteraction.md new file mode 100644 index 000000000..1fe5f8d23 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.buildsocialinteraction.md @@ -0,0 +1,26 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [buildSocialInteraction](./node-tracker.buildsocialinteraction.md) + +## buildSocialInteraction() function + +Build a Social Interaction Event Social tracking will be used to track the way users interact with Facebook, Twitter and Google + widgets e.g. to capture “like this” or “tweet this” events. + +Signature: + +```typescript +declare function buildSocialInteraction(event: SocialInteractionEvent): PayloadBuilder; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| event | SocialInteractionEvent | Contains the properties for the Social Interaction event | + +Returns: + +PayloadBuilder + +PayloadBuilder to be sent to + diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.buildstructevent.md b/api-docs/docs/node-tracker/markdown/node-tracker.buildstructevent.md new file mode 100644 index 000000000..a7d5ce436 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.buildstructevent.md @@ -0,0 +1,26 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [buildStructEvent](./node-tracker.buildstructevent.md) + +## buildStructEvent() function + +Build a Structured Event A classic style of event tracking, allows for easier movement between analytics systems. A loosely typed event, creating a Self Describing event is preferred, but useful for interoperability. + +Signature: + +```typescript +declare function buildStructEvent(event: StructuredEvent): PayloadBuilder; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| event | StructuredEvent | Contains the properties for the Structured event | + +Returns: + +PayloadBuilder + +PayloadBuilder to be sent to + diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.conditionalcontextprovider.md b/api-docs/docs/node-tracker/markdown/node-tracker.conditionalcontextprovider.md similarity index 70% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.conditionalcontextprovider.md rename to api-docs/docs/node-tracker/markdown/node-tracker.conditionalcontextprovider.md index ae264a7a2..4fea54096 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.conditionalcontextprovider.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.conditionalcontextprovider.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [ConditionalContextProvider](./react-native-tracker.conditionalcontextprovider.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [ConditionalContextProvider](./node-tracker.conditionalcontextprovider.md) ## ConditionalContextProvider type diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.consentgrantedevent.description.md b/api-docs/docs/node-tracker/markdown/node-tracker.consentgrantedevent.description.md new file mode 100644 index 000000000..5a2897ce7 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.consentgrantedevent.description.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [ConsentGrantedEvent](./node-tracker.consentgrantedevent.md) > [description](./node-tracker.consentgrantedevent.description.md) + +## ConsentGrantedEvent.description property + +Description of the document granting consent + +Signature: + +```typescript +description?: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.consentgrantedevent.expiry.md b/api-docs/docs/node-tracker/markdown/node-tracker.consentgrantedevent.expiry.md new file mode 100644 index 000000000..7980124c9 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.consentgrantedevent.expiry.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [ConsentGrantedEvent](./node-tracker.consentgrantedevent.md) > [expiry](./node-tracker.consentgrantedevent.expiry.md) + +## ConsentGrantedEvent.expiry property + +When the consent expires + +Signature: + +```typescript +expiry?: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.consentgrantedevent.id.md b/api-docs/docs/node-tracker/markdown/node-tracker.consentgrantedevent.id.md new file mode 100644 index 000000000..e97adbf21 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.consentgrantedevent.id.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [ConsentGrantedEvent](./node-tracker.consentgrantedevent.md) > [id](./node-tracker.consentgrantedevent.id.md) + +## ConsentGrantedEvent.id property + +Identifier for the document granting consent + +Signature: + +```typescript +id: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.consentgrantedevent.md b/api-docs/docs/node-tracker/markdown/node-tracker.consentgrantedevent.md new file mode 100644 index 000000000..9a8ca92aa --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.consentgrantedevent.md @@ -0,0 +1,24 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [ConsentGrantedEvent](./node-tracker.consentgrantedevent.md) + +## ConsentGrantedEvent interface + +A Consent Granted Event Used for tracking when a user grants their consent + +Signature: + +```typescript +interface ConsentGrantedEvent +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [description?](./node-tracker.consentgrantedevent.description.md) | string | (Optional) Description of the document granting consent | +| [expiry?](./node-tracker.consentgrantedevent.expiry.md) | string | (Optional) When the consent expires | +| [id](./node-tracker.consentgrantedevent.id.md) | string | Identifier for the document granting consent | +| [name?](./node-tracker.consentgrantedevent.name.md) | string | (Optional) Name of the document granting consent | +| [version](./node-tracker.consentgrantedevent.version.md) | string | Version of the document granting consent | + diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.consentgrantedevent.name.md b/api-docs/docs/node-tracker/markdown/node-tracker.consentgrantedevent.name.md new file mode 100644 index 000000000..2f5c1717c --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.consentgrantedevent.name.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [ConsentGrantedEvent](./node-tracker.consentgrantedevent.md) > [name](./node-tracker.consentgrantedevent.name.md) + +## ConsentGrantedEvent.name property + +Name of the document granting consent + +Signature: + +```typescript +name?: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.consentgrantedevent.version.md b/api-docs/docs/node-tracker/markdown/node-tracker.consentgrantedevent.version.md new file mode 100644 index 000000000..f09fa300e --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.consentgrantedevent.version.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [ConsentGrantedEvent](./node-tracker.consentgrantedevent.md) > [version](./node-tracker.consentgrantedevent.version.md) + +## ConsentGrantedEvent.version property + +Version of the document granting consent + +Signature: + +```typescript +version: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.consentwithdrawnevent.all.md b/api-docs/docs/node-tracker/markdown/node-tracker.consentwithdrawnevent.all.md new file mode 100644 index 000000000..214968a3a --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.consentwithdrawnevent.all.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [ConsentWithdrawnEvent](./node-tracker.consentwithdrawnevent.md) > [all](./node-tracker.consentwithdrawnevent.all.md) + +## ConsentWithdrawnEvent.all property + +Specifies whether all consent should be withdrawn + +Signature: + +```typescript +all: boolean; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.consentwithdrawnevent.description.md b/api-docs/docs/node-tracker/markdown/node-tracker.consentwithdrawnevent.description.md new file mode 100644 index 000000000..721fd25f3 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.consentwithdrawnevent.description.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [ConsentWithdrawnEvent](./node-tracker.consentwithdrawnevent.md) > [description](./node-tracker.consentwithdrawnevent.description.md) + +## ConsentWithdrawnEvent.description property + +Description of the document withdrawing consent + +Signature: + +```typescript +description?: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.consentwithdrawnevent.id.md b/api-docs/docs/node-tracker/markdown/node-tracker.consentwithdrawnevent.id.md new file mode 100644 index 000000000..55ce74932 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.consentwithdrawnevent.id.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [ConsentWithdrawnEvent](./node-tracker.consentwithdrawnevent.md) > [id](./node-tracker.consentwithdrawnevent.id.md) + +## ConsentWithdrawnEvent.id property + +Identifier for the document withdrawing consent + +Signature: + +```typescript +id?: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.consentwithdrawnevent.md b/api-docs/docs/node-tracker/markdown/node-tracker.consentwithdrawnevent.md new file mode 100644 index 000000000..83ea1e980 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.consentwithdrawnevent.md @@ -0,0 +1,24 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [ConsentWithdrawnEvent](./node-tracker.consentwithdrawnevent.md) + +## ConsentWithdrawnEvent interface + +A Consent Withdrawn Event Used for tracking when a user withdraws their consent + +Signature: + +```typescript +interface ConsentWithdrawnEvent +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [all](./node-tracker.consentwithdrawnevent.all.md) | boolean | Specifies whether all consent should be withdrawn | +| [description?](./node-tracker.consentwithdrawnevent.description.md) | string | (Optional) Description of the document withdrawing consent | +| [id?](./node-tracker.consentwithdrawnevent.id.md) | string | (Optional) Identifier for the document withdrawing consent | +| [name?](./node-tracker.consentwithdrawnevent.name.md) | string | (Optional) Name of the document withdrawing consent | +| [version?](./node-tracker.consentwithdrawnevent.version.md) | string | (Optional) Version of the document withdrawing consent | + diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.consentwithdrawnevent.name.md b/api-docs/docs/node-tracker/markdown/node-tracker.consentwithdrawnevent.name.md new file mode 100644 index 000000000..eb924a795 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.consentwithdrawnevent.name.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [ConsentWithdrawnEvent](./node-tracker.consentwithdrawnevent.md) > [name](./node-tracker.consentwithdrawnevent.name.md) + +## ConsentWithdrawnEvent.name property + +Name of the document withdrawing consent + +Signature: + +```typescript +name?: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.consentwithdrawnevent.version.md b/api-docs/docs/node-tracker/markdown/node-tracker.consentwithdrawnevent.version.md new file mode 100644 index 000000000..557356eca --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.consentwithdrawnevent.version.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [ConsentWithdrawnEvent](./node-tracker.consentwithdrawnevent.md) > [version](./node-tracker.consentwithdrawnevent.version.md) + +## ConsentWithdrawnEvent.version property + +Version of the document withdrawing consent + +Signature: + +```typescript +version?: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.contextevent.event.md b/api-docs/docs/node-tracker/markdown/node-tracker.contextevent.event.md new file mode 100644 index 000000000..e7e6dacb8 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.contextevent.event.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [ContextEvent](./node-tracker.contextevent.md) > [event](./node-tracker.contextevent.event.md) + +## ContextEvent.event property + +The event payload + +Signature: + +```typescript +event: Payload; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.contextevent.eventschema.md b/api-docs/docs/node-tracker/markdown/node-tracker.contextevent.eventschema.md new file mode 100644 index 000000000..6dfc354d8 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.contextevent.eventschema.md @@ -0,0 +1,18 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [ContextEvent](./node-tracker.contextevent.md) > [eventSchema](./node-tracker.contextevent.eventschema.md) + +## ContextEvent.eventSchema property + +The event schema where one is available, or empty string + +Signature: + +```typescript +eventSchema: string; +``` + +## Example + +'iglu:com.snowplowanalytics.snowplow/ad\_impression/jsonschema/1-0-0' + diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.contextevent.eventtype.md b/api-docs/docs/node-tracker/markdown/node-tracker.contextevent.eventtype.md new file mode 100644 index 000000000..ba6cc94cd --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.contextevent.eventtype.md @@ -0,0 +1,18 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [ContextEvent](./node-tracker.contextevent.md) > [eventType](./node-tracker.contextevent.eventtype.md) + +## ContextEvent.eventType property + +The event type + +Signature: + +```typescript +eventType: string; +``` + +## Example + +'page\_view' + diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.contextevent.md b/api-docs/docs/node-tracker/markdown/node-tracker.contextevent.md new file mode 100644 index 000000000..1c30d7d74 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.contextevent.md @@ -0,0 +1,22 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [ContextEvent](./node-tracker.contextevent.md) + +## ContextEvent interface + +Argument for [ContextGenerator](./node-tracker.contextgenerator.md) and [ContextFilter](./node-tracker.contextfilter.md) callback + +Signature: + +```typescript +interface ContextEvent +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [event](./node-tracker.contextevent.event.md) | Payload | The event payload | +| [eventSchema](./node-tracker.contextevent.eventschema.md) | string | The event schema where one is available, or empty string | +| [eventType](./node-tracker.contextevent.eventtype.md) | string | The event type | + diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.contextfilter.md b/api-docs/docs/node-tracker/markdown/node-tracker.contextfilter.md similarity index 69% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.contextfilter.md rename to api-docs/docs/node-tracker/markdown/node-tracker.contextfilter.md index b458e6646..6285a22da 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.contextfilter.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.contextfilter.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [ContextFilter](./react-native-tracker.contextfilter.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [ContextFilter](./node-tracker.contextfilter.md) ## ContextFilter type diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.contextgenerator.md b/api-docs/docs/node-tracker/markdown/node-tracker.contextgenerator.md similarity index 70% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.contextgenerator.md rename to api-docs/docs/node-tracker/markdown/node-tracker.contextgenerator.md index 0cbf292e9..1e2764916 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.contextgenerator.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.contextgenerator.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [ContextGenerator](./react-native-tracker.contextgenerator.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [ContextGenerator](./node-tracker.contextgenerator.md) ## ContextGenerator type diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.contextprimitive.md b/api-docs/docs/node-tracker/markdown/node-tracker.contextprimitive.md similarity index 63% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.contextprimitive.md rename to api-docs/docs/node-tracker/markdown/node-tracker.contextprimitive.md index e2fe51369..95819e7f0 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.contextprimitive.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.contextprimitive.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [ContextPrimitive](./react-native-tracker.contextprimitive.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [ContextPrimitive](./node-tracker.contextprimitive.md) ## ContextPrimitive type diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.coreconfiguration.base64.md b/api-docs/docs/node-tracker/markdown/node-tracker.coreconfiguration.base64.md new file mode 100644 index 000000000..fe7094e46 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.coreconfiguration.base64.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [CoreConfiguration](./node-tracker.coreconfiguration.md) > [base64](./node-tracker.coreconfiguration.base64.md) + +## CoreConfiguration.base64 property + +Signature: + +```typescript +base64?: boolean; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.coreconfiguration.callback.md b/api-docs/docs/node-tracker/markdown/node-tracker.coreconfiguration.callback.md new file mode 100644 index 000000000..56c5a063a --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.coreconfiguration.callback.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [CoreConfiguration](./node-tracker.coreconfiguration.md) > [callback](./node-tracker.coreconfiguration.callback.md) + +## CoreConfiguration.callback property + +Signature: + +```typescript +callback?: (PayloadData: PayloadBuilder) => void; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.coreconfiguration.coreplugins.md b/api-docs/docs/node-tracker/markdown/node-tracker.coreconfiguration.coreplugins.md new file mode 100644 index 000000000..99bbd569d --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.coreconfiguration.coreplugins.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [CoreConfiguration](./node-tracker.coreconfiguration.md) > [corePlugins](./node-tracker.coreconfiguration.coreplugins.md) + +## CoreConfiguration.corePlugins property + +Signature: + +```typescript +corePlugins?: Array; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.coreconfiguration.md b/api-docs/docs/node-tracker/markdown/node-tracker.coreconfiguration.md new file mode 100644 index 000000000..1db83da79 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.coreconfiguration.md @@ -0,0 +1,22 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [CoreConfiguration](./node-tracker.coreconfiguration.md) + +## CoreConfiguration interface + +The configuration object for the tracker core library + +Signature: + +```typescript +interface CoreConfiguration +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [base64?](./node-tracker.coreconfiguration.base64.md) | boolean | (Optional) | +| [callback?](./node-tracker.coreconfiguration.callback.md) | (PayloadData: PayloadBuilder) => void | (Optional) | +| [corePlugins?](./node-tracker.coreconfiguration.coreplugins.md) | Array<CorePlugin> | (Optional) | + diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.coreplugin.activatecoreplugin.md b/api-docs/docs/node-tracker/markdown/node-tracker.coreplugin.activatecoreplugin.md similarity index 61% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.coreplugin.activatecoreplugin.md rename to api-docs/docs/node-tracker/markdown/node-tracker.coreplugin.activatecoreplugin.md index 90d55d741..0af3894f6 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.coreplugin.activatecoreplugin.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.coreplugin.activatecoreplugin.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [CorePlugin](./react-native-tracker.coreplugin.md) > [activateCorePlugin](./react-native-tracker.coreplugin.activatecoreplugin.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [CorePlugin](./node-tracker.coreplugin.md) > [activateCorePlugin](./node-tracker.coreplugin.activatecoreplugin.md) ## CorePlugin.activateCorePlugin property diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.coreplugin.aftertrack.md b/api-docs/docs/node-tracker/markdown/node-tracker.coreplugin.aftertrack.md similarity index 52% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.coreplugin.aftertrack.md rename to api-docs/docs/node-tracker/markdown/node-tracker.coreplugin.aftertrack.md index d50881781..e379642e3 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.coreplugin.aftertrack.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.coreplugin.aftertrack.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [CorePlugin](./react-native-tracker.coreplugin.md) > [afterTrack](./react-native-tracker.coreplugin.aftertrack.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [CorePlugin](./node-tracker.coreplugin.md) > [afterTrack](./node-tracker.coreplugin.aftertrack.md) ## CorePlugin.afterTrack property diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.coreplugin.beforetrack.md b/api-docs/docs/node-tracker/markdown/node-tracker.coreplugin.beforetrack.md similarity index 59% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.coreplugin.beforetrack.md rename to api-docs/docs/node-tracker/markdown/node-tracker.coreplugin.beforetrack.md index a172901cf..fb031028f 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.coreplugin.beforetrack.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.coreplugin.beforetrack.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [CorePlugin](./react-native-tracker.coreplugin.md) > [beforeTrack](./react-native-tracker.coreplugin.beforetrack.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [CorePlugin](./node-tracker.coreplugin.md) > [beforeTrack](./node-tracker.coreplugin.beforetrack.md) ## CorePlugin.beforeTrack property diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.coreplugin.contexts.md b/api-docs/docs/node-tracker/markdown/node-tracker.coreplugin.contexts.md similarity index 57% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.coreplugin.contexts.md rename to api-docs/docs/node-tracker/markdown/node-tracker.coreplugin.contexts.md index 015b3117c..9ae49b41e 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.coreplugin.contexts.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.coreplugin.contexts.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [CorePlugin](./react-native-tracker.coreplugin.md) > [contexts](./react-native-tracker.coreplugin.contexts.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [CorePlugin](./node-tracker.coreplugin.md) > [contexts](./node-tracker.coreplugin.contexts.md) ## CorePlugin.contexts property diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.coreplugin.deactivateplugin.md b/api-docs/docs/node-tracker/markdown/node-tracker.coreplugin.deactivateplugin.md similarity index 59% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.coreplugin.deactivateplugin.md rename to api-docs/docs/node-tracker/markdown/node-tracker.coreplugin.deactivateplugin.md index edbdd11ce..ea93f1c66 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.coreplugin.deactivateplugin.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.coreplugin.deactivateplugin.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [CorePlugin](./react-native-tracker.coreplugin.md) > [deactivatePlugin](./react-native-tracker.coreplugin.deactivateplugin.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [CorePlugin](./node-tracker.coreplugin.md) > [deactivatePlugin](./node-tracker.coreplugin.deactivateplugin.md) ## CorePlugin.deactivatePlugin property diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.coreplugin.filter.md b/api-docs/docs/node-tracker/markdown/node-tracker.coreplugin.filter.md similarity index 57% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.coreplugin.filter.md rename to api-docs/docs/node-tracker/markdown/node-tracker.coreplugin.filter.md index 7c621722c..4ce80a4f4 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.coreplugin.filter.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.coreplugin.filter.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [CorePlugin](./react-native-tracker.coreplugin.md) > [filter](./react-native-tracker.coreplugin.filter.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [CorePlugin](./node-tracker.coreplugin.md) > [filter](./node-tracker.coreplugin.filter.md) ## CorePlugin.filter property diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.coreplugin.logger.md b/api-docs/docs/node-tracker/markdown/node-tracker.coreplugin.logger.md similarity index 56% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.coreplugin.logger.md rename to api-docs/docs/node-tracker/markdown/node-tracker.coreplugin.logger.md index 65ad62785..d2430b4c0 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.coreplugin.logger.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.coreplugin.logger.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [CorePlugin](./react-native-tracker.coreplugin.md) > [logger](./react-native-tracker.coreplugin.logger.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [CorePlugin](./node-tracker.coreplugin.md) > [logger](./node-tracker.coreplugin.logger.md) ## CorePlugin.logger property diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.coreplugin.md b/api-docs/docs/node-tracker/markdown/node-tracker.coreplugin.md new file mode 100644 index 000000000..65e4f9ae4 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.coreplugin.md @@ -0,0 +1,26 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [CorePlugin](./node-tracker.coreplugin.md) + +## CorePlugin interface + +Interface which defines Core Plugins + +Signature: + +```typescript +interface CorePlugin +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [activateCorePlugin?](./node-tracker.coreplugin.activatecoreplugin.md) | (core: TrackerCore) => void | (Optional) Called when the plugin is initialised during the trackerCore construction | +| [afterTrack?](./node-tracker.coreplugin.aftertrack.md) | (payload: Payload) => void | (Optional) Called just after the trackerCore callback fires | +| [beforeTrack?](./node-tracker.coreplugin.beforetrack.md) | (payloadBuilder: PayloadBuilder) => void | (Optional) Called before the filter method is called and before the trackerCore callback fires (if the filter passes) | +| [contexts?](./node-tracker.coreplugin.contexts.md) | () => SelfDescribingJson\[\] | (Optional) Called when constructing the context for each event Useful for adding additional context to events | +| [deactivatePlugin?](./node-tracker.coreplugin.deactivateplugin.md) | (core: TrackerCore) => void | (Optional) Called when the tracker is being destroyed. Should be used to clean up any resources or listeners that the plugin has created. | +| [filter?](./node-tracker.coreplugin.filter.md) | (payload: Payload) => boolean | (Optional) Called before the payload is sent to the callback to decide whether to send the payload or skip it | +| [logger?](./node-tracker.coreplugin.logger.md) | (logger: Logger) => void | (Optional) Passed a logger instance which can be used to send log information to the active logger | + diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.corepluginconfiguration.md b/api-docs/docs/node-tracker/markdown/node-tracker.corepluginconfiguration.md similarity index 52% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.corepluginconfiguration.md rename to api-docs/docs/node-tracker/markdown/node-tracker.corepluginconfiguration.md index e14a922ec..a224d4cc0 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.corepluginconfiguration.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.corepluginconfiguration.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [CorePluginConfiguration](./react-native-tracker.corepluginconfiguration.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [CorePluginConfiguration](./node-tracker.corepluginconfiguration.md) ## CorePluginConfiguration interface @@ -16,5 +16,5 @@ interface CorePluginConfiguration | Property | Type | Description | | --- | --- | --- | -| [plugin](./react-native-tracker.corepluginconfiguration.plugin.md) | CorePlugin | | +| [plugin](./node-tracker.corepluginconfiguration.plugin.md) | CorePlugin | | diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.corepluginconfiguration.plugin.md b/api-docs/docs/node-tracker/markdown/node-tracker.corepluginconfiguration.plugin.md new file mode 100644 index 000000000..2aaa9bf92 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.corepluginconfiguration.plugin.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [CorePluginConfiguration](./node-tracker.corepluginconfiguration.md) > [plugin](./node-tracker.corepluginconfiguration.plugin.md) + +## CorePluginConfiguration.plugin property + +Signature: + +```typescript +plugin: CorePlugin; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.customemitter.md b/api-docs/docs/node-tracker/markdown/node-tracker.customemitter.md new file mode 100644 index 000000000..2d4fa82f9 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.customemitter.md @@ -0,0 +1,14 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [CustomEmitter](./node-tracker.customemitter.md) + +## CustomEmitter type + +Signature: + +```typescript +type CustomEmitter = { + /* Function returning custom Emitter or Emitter[] to be used. If set, other options are irrelevant */ + customEmitter: () => Emitter | Array; +}; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.devicetimestamp.md b/api-docs/docs/node-tracker/markdown/node-tracker.devicetimestamp.md new file mode 100644 index 000000000..f0a53829d --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.devicetimestamp.md @@ -0,0 +1,21 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [DeviceTimestamp](./node-tracker.devicetimestamp.md) + +## DeviceTimestamp interface + +A representation of a Device Timestamp (dtm) + +Signature: + +```typescript +interface DeviceTimestamp +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [type](./node-tracker.devicetimestamp.type.md) | "dtm" | | +| [value](./node-tracker.devicetimestamp.value.md) | number | | + diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.devicetimestamp.type.md b/api-docs/docs/node-tracker/markdown/node-tracker.devicetimestamp.type.md new file mode 100644 index 000000000..8e307ef38 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.devicetimestamp.type.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [DeviceTimestamp](./node-tracker.devicetimestamp.md) > [type](./node-tracker.devicetimestamp.type.md) + +## DeviceTimestamp.type property + +Signature: + +```typescript +readonly type: "dtm"; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.devicetimestamp.value.md b/api-docs/docs/node-tracker/markdown/node-tracker.devicetimestamp.value.md new file mode 100644 index 000000000..573fa64f2 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.devicetimestamp.value.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [DeviceTimestamp](./node-tracker.devicetimestamp.md) > [value](./node-tracker.devicetimestamp.value.md) + +## DeviceTimestamp.value property + +Signature: + +```typescript +readonly value: number; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.ecommercetransactionevent.affiliation.md b/api-docs/docs/node-tracker/markdown/node-tracker.ecommercetransactionevent.affiliation.md new file mode 100644 index 000000000..d994df3ee --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.ecommercetransactionevent.affiliation.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EcommerceTransactionEvent](./node-tracker.ecommercetransactionevent.md) > [affiliation](./node-tracker.ecommercetransactionevent.affiliation.md) + +## EcommerceTransactionEvent.affiliation property + +Transaction affiliation (e.g. store where sale took place) + +Signature: + +```typescript +affiliation?: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.ecommercetransactionevent.city.md b/api-docs/docs/node-tracker/markdown/node-tracker.ecommercetransactionevent.city.md new file mode 100644 index 000000000..b8782e255 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.ecommercetransactionevent.city.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EcommerceTransactionEvent](./node-tracker.ecommercetransactionevent.md) > [city](./node-tracker.ecommercetransactionevent.city.md) + +## EcommerceTransactionEvent.city property + +Delivery address, city + +Signature: + +```typescript +city?: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.ecommercetransactionevent.country.md b/api-docs/docs/node-tracker/markdown/node-tracker.ecommercetransactionevent.country.md new file mode 100644 index 000000000..cadfddea4 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.ecommercetransactionevent.country.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EcommerceTransactionEvent](./node-tracker.ecommercetransactionevent.md) > [country](./node-tracker.ecommercetransactionevent.country.md) + +## EcommerceTransactionEvent.country property + +Delivery address, country + +Signature: + +```typescript +country?: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.ecommercetransactionevent.currency.md b/api-docs/docs/node-tracker/markdown/node-tracker.ecommercetransactionevent.currency.md new file mode 100644 index 000000000..dc6658910 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.ecommercetransactionevent.currency.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EcommerceTransactionEvent](./node-tracker.ecommercetransactionevent.md) > [currency](./node-tracker.ecommercetransactionevent.currency.md) + +## EcommerceTransactionEvent.currency property + +Currency of the transaction + +Signature: + +```typescript +currency?: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.ecommercetransactionevent.md b/api-docs/docs/node-tracker/markdown/node-tracker.ecommercetransactionevent.md new file mode 100644 index 000000000..4ad6238cc --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.ecommercetransactionevent.md @@ -0,0 +1,28 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EcommerceTransactionEvent](./node-tracker.ecommercetransactionevent.md) + +## EcommerceTransactionEvent interface + +An Ecommerce Transaction Event Allows for tracking common ecommerce events, this event is usually used when a customer completes a transaction. + +Signature: + +```typescript +interface EcommerceTransactionEvent +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [affiliation?](./node-tracker.ecommercetransactionevent.affiliation.md) | string | (Optional) Transaction affiliation (e.g. store where sale took place) | +| [city?](./node-tracker.ecommercetransactionevent.city.md) | string | (Optional) Delivery address, city | +| [country?](./node-tracker.ecommercetransactionevent.country.md) | string | (Optional) Delivery address, country | +| [currency?](./node-tracker.ecommercetransactionevent.currency.md) | string | (Optional) Currency of the transaction | +| [orderId](./node-tracker.ecommercetransactionevent.orderid.md) | string | An identifier for the order | +| [shipping?](./node-tracker.ecommercetransactionevent.shipping.md) | number | (Optional) The amount of shipping costs for this transaction | +| [state?](./node-tracker.ecommercetransactionevent.state.md) | string | (Optional) Delivery address, state | +| [tax?](./node-tracker.ecommercetransactionevent.tax.md) | number | (Optional) The amount of tax on the transaction | +| [total](./node-tracker.ecommercetransactionevent.total.md) | number | The total value of the order | + diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.ecommercetransactionevent.orderid.md b/api-docs/docs/node-tracker/markdown/node-tracker.ecommercetransactionevent.orderid.md new file mode 100644 index 000000000..d18cc0704 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.ecommercetransactionevent.orderid.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EcommerceTransactionEvent](./node-tracker.ecommercetransactionevent.md) > [orderId](./node-tracker.ecommercetransactionevent.orderid.md) + +## EcommerceTransactionEvent.orderId property + +An identifier for the order + +Signature: + +```typescript +orderId: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.ecommercetransactionevent.shipping.md b/api-docs/docs/node-tracker/markdown/node-tracker.ecommercetransactionevent.shipping.md new file mode 100644 index 000000000..2c15dbec8 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.ecommercetransactionevent.shipping.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EcommerceTransactionEvent](./node-tracker.ecommercetransactionevent.md) > [shipping](./node-tracker.ecommercetransactionevent.shipping.md) + +## EcommerceTransactionEvent.shipping property + +The amount of shipping costs for this transaction + +Signature: + +```typescript +shipping?: number; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.ecommercetransactionevent.state.md b/api-docs/docs/node-tracker/markdown/node-tracker.ecommercetransactionevent.state.md new file mode 100644 index 000000000..ab136f265 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.ecommercetransactionevent.state.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EcommerceTransactionEvent](./node-tracker.ecommercetransactionevent.md) > [state](./node-tracker.ecommercetransactionevent.state.md) + +## EcommerceTransactionEvent.state property + +Delivery address, state + +Signature: + +```typescript +state?: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.ecommercetransactionevent.tax.md b/api-docs/docs/node-tracker/markdown/node-tracker.ecommercetransactionevent.tax.md new file mode 100644 index 000000000..59d0f6c6f --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.ecommercetransactionevent.tax.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EcommerceTransactionEvent](./node-tracker.ecommercetransactionevent.md) > [tax](./node-tracker.ecommercetransactionevent.tax.md) + +## EcommerceTransactionEvent.tax property + +The amount of tax on the transaction + +Signature: + +```typescript +tax?: number; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.ecommercetransactionevent.total.md b/api-docs/docs/node-tracker/markdown/node-tracker.ecommercetransactionevent.total.md new file mode 100644 index 000000000..eec8b36bb --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.ecommercetransactionevent.total.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EcommerceTransactionEvent](./node-tracker.ecommercetransactionevent.md) > [total](./node-tracker.ecommercetransactionevent.total.md) + +## EcommerceTransactionEvent.total property + +The total value of the order + +Signature: + +```typescript +total: number; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.ecommercetransactionitemevent.category.md b/api-docs/docs/node-tracker/markdown/node-tracker.ecommercetransactionitemevent.category.md new file mode 100644 index 000000000..565961252 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.ecommercetransactionitemevent.category.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EcommerceTransactionItemEvent](./node-tracker.ecommercetransactionitemevent.md) > [category](./node-tracker.ecommercetransactionitemevent.category.md) + +## EcommerceTransactionItemEvent.category property + +The category the product belongs to + +Signature: + +```typescript +category?: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.ecommercetransactionitemevent.currency.md b/api-docs/docs/node-tracker/markdown/node-tracker.ecommercetransactionitemevent.currency.md new file mode 100644 index 000000000..9054c2e57 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.ecommercetransactionitemevent.currency.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EcommerceTransactionItemEvent](./node-tracker.ecommercetransactionitemevent.md) > [currency](./node-tracker.ecommercetransactionitemevent.currency.md) + +## EcommerceTransactionItemEvent.currency property + +The currency of the product for the transaction + +Signature: + +```typescript +currency?: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.ecommercetransactionitemevent.md b/api-docs/docs/node-tracker/markdown/node-tracker.ecommercetransactionitemevent.md new file mode 100644 index 000000000..726b48866 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.ecommercetransactionitemevent.md @@ -0,0 +1,26 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EcommerceTransactionItemEvent](./node-tracker.ecommercetransactionitemevent.md) + +## EcommerceTransactionItemEvent interface + +An Ecommerce Transaction Item Related to the [EcommerceTransactionEvent](./node-tracker.ecommercetransactionevent.md) Each Ecommerce Transaction may contain one or more EcommerceTransactionItem events + +Signature: + +```typescript +interface EcommerceTransactionItemEvent +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [category?](./node-tracker.ecommercetransactionitemevent.category.md) | string | (Optional) The category the product belongs to | +| [currency?](./node-tracker.ecommercetransactionitemevent.currency.md) | string | (Optional) The currency of the product for the transaction | +| [name?](./node-tracker.ecommercetransactionitemevent.name.md) | string | (Optional) The name of the product | +| [orderId](./node-tracker.ecommercetransactionitemevent.orderid.md) | string | An identifier for the order | +| [price](./node-tracker.ecommercetransactionitemevent.price.md) | number | The price of the product | +| [quantity?](./node-tracker.ecommercetransactionitemevent.quantity.md) | number | (Optional) The quanity of this product within the transaction | +| [sku](./node-tracker.ecommercetransactionitemevent.sku.md) | string | A Product Stock Keeping Unit (SKU) | + diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.ecommercetransactionitemevent.name.md b/api-docs/docs/node-tracker/markdown/node-tracker.ecommercetransactionitemevent.name.md new file mode 100644 index 000000000..ea68d4a77 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.ecommercetransactionitemevent.name.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EcommerceTransactionItemEvent](./node-tracker.ecommercetransactionitemevent.md) > [name](./node-tracker.ecommercetransactionitemevent.name.md) + +## EcommerceTransactionItemEvent.name property + +The name of the product + +Signature: + +```typescript +name?: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.ecommercetransactionitemevent.orderid.md b/api-docs/docs/node-tracker/markdown/node-tracker.ecommercetransactionitemevent.orderid.md new file mode 100644 index 000000000..e20a39c00 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.ecommercetransactionitemevent.orderid.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EcommerceTransactionItemEvent](./node-tracker.ecommercetransactionitemevent.md) > [orderId](./node-tracker.ecommercetransactionitemevent.orderid.md) + +## EcommerceTransactionItemEvent.orderId property + +An identifier for the order + +Signature: + +```typescript +orderId: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.ecommercetransactionitemevent.price.md b/api-docs/docs/node-tracker/markdown/node-tracker.ecommercetransactionitemevent.price.md new file mode 100644 index 000000000..9cf674c15 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.ecommercetransactionitemevent.price.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EcommerceTransactionItemEvent](./node-tracker.ecommercetransactionitemevent.md) > [price](./node-tracker.ecommercetransactionitemevent.price.md) + +## EcommerceTransactionItemEvent.price property + +The price of the product + +Signature: + +```typescript +price: number; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.ecommercetransactionitemevent.quantity.md b/api-docs/docs/node-tracker/markdown/node-tracker.ecommercetransactionitemevent.quantity.md new file mode 100644 index 000000000..433b60092 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.ecommercetransactionitemevent.quantity.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EcommerceTransactionItemEvent](./node-tracker.ecommercetransactionitemevent.md) > [quantity](./node-tracker.ecommercetransactionitemevent.quantity.md) + +## EcommerceTransactionItemEvent.quantity property + +The quanity of this product within the transaction + +Signature: + +```typescript +quantity?: number; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.ecommercetransactionitemevent.sku.md b/api-docs/docs/node-tracker/markdown/node-tracker.ecommercetransactionitemevent.sku.md new file mode 100644 index 000000000..3178268ed --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.ecommercetransactionitemevent.sku.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EcommerceTransactionItemEvent](./node-tracker.ecommercetransactionitemevent.md) > [sku](./node-tracker.ecommercetransactionitemevent.sku.md) + +## EcommerceTransactionItemEvent.sku property + +A Product Stock Keeping Unit (SKU) + +Signature: + +```typescript +sku: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitter.flush.md b/api-docs/docs/node-tracker/markdown/node-tracker.emitter.flush.md similarity index 55% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.emitter.flush.md rename to api-docs/docs/node-tracker/markdown/node-tracker.emitter.flush.md index 351d0e37e..a64176e70 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitter.flush.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.emitter.flush.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [Emitter](./react-native-tracker.emitter.md) > [flush](./react-native-tracker.emitter.flush.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [Emitter](./node-tracker.emitter.md) > [flush](./node-tracker.emitter.flush.md) ## Emitter.flush property diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitter.input.md b/api-docs/docs/node-tracker/markdown/node-tracker.emitter.input.md similarity index 56% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.emitter.input.md rename to api-docs/docs/node-tracker/markdown/node-tracker.emitter.input.md index 5f22e9b5c..562cf2ccf 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitter.input.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.emitter.input.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [Emitter](./react-native-tracker.emitter.md) > [input](./react-native-tracker.emitter.input.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [Emitter](./node-tracker.emitter.md) > [input](./node-tracker.emitter.input.md) ## Emitter.input property diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.emitter.md b/api-docs/docs/node-tracker/markdown/node-tracker.emitter.md new file mode 100644 index 000000000..b09554040 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.emitter.md @@ -0,0 +1,24 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [Emitter](./node-tracker.emitter.md) + +## Emitter interface + +Emitter is responsible for sending events to the collector. It manages the event queue and sends events in batches depending on configuration. + +Signature: + +```typescript +interface Emitter +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [flush](./node-tracker.emitter.flush.md) | () => Promise<void> | Forces the emitter to send all events in the event store to the collector. | +| [input](./node-tracker.emitter.input.md) | (payload: Payload) => Promise<void> | Adds a payload to the event store or sends it to the collector. | +| [setAnonymousTracking](./node-tracker.emitter.setanonymoustracking.md) | (anonymous: boolean) => void | Sets the server anonymization flag. | +| [setBufferSize](./node-tracker.emitter.setbuffersize.md) | (bufferSize: number) => void | Updates the buffer size of the emitter. | +| [setCollectorUrl](./node-tracker.emitter.setcollectorurl.md) | (url: string) => void | Updates the collector URL to which events will be sent. | + diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitter.setanonymoustracking.md b/api-docs/docs/node-tracker/markdown/node-tracker.emitter.setanonymoustracking.md similarity index 52% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.emitter.setanonymoustracking.md rename to api-docs/docs/node-tracker/markdown/node-tracker.emitter.setanonymoustracking.md index 7de2afba3..bcaf2bafe 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitter.setanonymoustracking.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.emitter.setanonymoustracking.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [Emitter](./react-native-tracker.emitter.md) > [setAnonymousTracking](./react-native-tracker.emitter.setanonymoustracking.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [Emitter](./node-tracker.emitter.md) > [setAnonymousTracking](./node-tracker.emitter.setanonymoustracking.md) ## Emitter.setAnonymousTracking property diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitter.setbuffersize.md b/api-docs/docs/node-tracker/markdown/node-tracker.emitter.setbuffersize.md similarity index 52% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.emitter.setbuffersize.md rename to api-docs/docs/node-tracker/markdown/node-tracker.emitter.setbuffersize.md index 630e81e5e..8cee1c8fd 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitter.setbuffersize.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.emitter.setbuffersize.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [Emitter](./react-native-tracker.emitter.md) > [setBufferSize](./react-native-tracker.emitter.setbuffersize.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [Emitter](./node-tracker.emitter.md) > [setBufferSize](./node-tracker.emitter.setbuffersize.md) ## Emitter.setBufferSize property diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitter.setcollectorurl.md b/api-docs/docs/node-tracker/markdown/node-tracker.emitter.setcollectorurl.md similarity index 53% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.emitter.setcollectorurl.md rename to api-docs/docs/node-tracker/markdown/node-tracker.emitter.setcollectorurl.md index 2d170a707..ba73c3063 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitter.setcollectorurl.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.emitter.setcollectorurl.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [Emitter](./react-native-tracker.emitter.md) > [setCollectorUrl](./react-native-tracker.emitter.setcollectorurl.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [Emitter](./node-tracker.emitter.md) > [setCollectorUrl](./node-tracker.emitter.setcollectorurl.md) ## Emitter.setCollectorUrl property diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfiguration.endpoint.md b/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfiguration.endpoint.md new file mode 100644 index 000000000..45a7d2da4 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfiguration.endpoint.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EmitterConfiguration](./node-tracker.emitterconfiguration.md) > [endpoint](./node-tracker.emitterconfiguration.endpoint.md) + +## EmitterConfiguration.endpoint property + +Signature: + +```typescript +endpoint: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfiguration.md b/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfiguration.md new file mode 100644 index 000000000..44081c050 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfiguration.md @@ -0,0 +1,22 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EmitterConfiguration](./node-tracker.emitterconfiguration.md) + +## EmitterConfiguration interface + +Signature: + +```typescript +interface EmitterConfiguration extends EmitterConfigurationBase +``` +Extends: EmitterConfigurationBase + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [endpoint](./node-tracker.emitterconfiguration.endpoint.md) | string | | +| [port?](./node-tracker.emitterconfiguration.port.md) | number | (Optional) | +| [protocol?](./node-tracker.emitterconfiguration.protocol.md) | "http" \| "https" | (Optional) | +| [serverAnonymization?](./node-tracker.emitterconfiguration.serveranonymization.md) | boolean | (Optional) | + diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfiguration.port.md b/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfiguration.port.md new file mode 100644 index 000000000..0b9115e49 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfiguration.port.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EmitterConfiguration](./node-tracker.emitterconfiguration.md) > [port](./node-tracker.emitterconfiguration.port.md) + +## EmitterConfiguration.port property + +Signature: + +```typescript +port?: number; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfiguration.protocol.md b/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfiguration.protocol.md new file mode 100644 index 000000000..53ddd4abb --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfiguration.protocol.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EmitterConfiguration](./node-tracker.emitterconfiguration.md) > [protocol](./node-tracker.emitterconfiguration.protocol.md) + +## EmitterConfiguration.protocol property + +Signature: + +```typescript +protocol?: "http" | "https"; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfiguration.serveranonymization.md b/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfiguration.serveranonymization.md new file mode 100644 index 000000000..99c586940 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfiguration.serveranonymization.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EmitterConfiguration](./node-tracker.emitterconfiguration.md) > [serverAnonymization](./node-tracker.emitterconfiguration.serveranonymization.md) + +## EmitterConfiguration.serverAnonymization property + +Signature: + +```typescript +serverAnonymization?: boolean; +``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfigurationbase.buffersize.md b/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.buffersize.md similarity index 54% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfigurationbase.buffersize.md rename to api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.buffersize.md index 5141933a2..ddb5aa747 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfigurationbase.buffersize.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.buffersize.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) > [bufferSize](./react-native-tracker.emitterconfigurationbase.buffersize.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EmitterConfigurationBase](./node-tracker.emitterconfigurationbase.md) > [bufferSize](./node-tracker.emitterconfigurationbase.buffersize.md) ## EmitterConfigurationBase.bufferSize property diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.connectiontimeout.md b/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.connectiontimeout.md new file mode 100644 index 000000000..3177ccdd8 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.connectiontimeout.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EmitterConfigurationBase](./node-tracker.emitterconfigurationbase.md) > [connectionTimeout](./node-tracker.emitterconfigurationbase.connectiontimeout.md) + +## EmitterConfigurationBase.connectionTimeout property + +How long to wait before aborting requests to the collector + +Signature: + +```typescript +connectionTimeout?: number; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.cookieextensionservice.md b/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.cookieextensionservice.md new file mode 100644 index 000000000..4031cdaa4 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.cookieextensionservice.md @@ -0,0 +1,15 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EmitterConfigurationBase](./node-tracker.emitterconfigurationbase.md) > [cookieExtensionService](./node-tracker.emitterconfigurationbase.cookieextensionservice.md) + +## EmitterConfigurationBase.cookieExtensionService property + +Cookie extension service full URL. This URL will be added to the queue and will be called using a GET method. This option is there to allow the service URL to be called in order to set any required identifiers e.g. extra cookies. + +The request respects the `anonymousTracking` option, including the SP-Anonymous header if needed, and any additional custom headers from the customHeaders option. + +Signature: + +```typescript +cookieExtensionService?: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfigurationbase.credentials.md b/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.credentials.md similarity index 53% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfigurationbase.credentials.md rename to api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.credentials.md index 1219ad5b7..5535ee412 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfigurationbase.credentials.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.credentials.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) > [credentials](./react-native-tracker.emitterconfigurationbase.credentials.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EmitterConfigurationBase](./node-tracker.emitterconfigurationbase.md) > [credentials](./node-tracker.emitterconfigurationbase.credentials.md) ## EmitterConfigurationBase.credentials property diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfigurationbase.customfetch.md b/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.customfetch.md similarity index 55% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfigurationbase.customfetch.md rename to api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.customfetch.md index 3831bffeb..568ece696 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfigurationbase.customfetch.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.customfetch.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) > [customFetch](./react-native-tracker.emitterconfigurationbase.customfetch.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EmitterConfigurationBase](./node-tracker.emitterconfigurationbase.md) > [customFetch](./node-tracker.emitterconfigurationbase.customfetch.md) ## EmitterConfigurationBase.customFetch property diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfigurationbase.customheaders.md b/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.customheaders.md similarity index 54% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfigurationbase.customheaders.md rename to api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.customheaders.md index 19bb72078..a143554d3 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfigurationbase.customheaders.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.customheaders.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) > [customHeaders](./react-native-tracker.emitterconfigurationbase.customheaders.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EmitterConfigurationBase](./node-tracker.emitterconfigurationbase.md) > [customHeaders](./node-tracker.emitterconfigurationbase.customheaders.md) ## EmitterConfigurationBase.customHeaders property diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfigurationbase.dontretrystatuscodes.md b/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.dontretrystatuscodes.md similarity index 71% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfigurationbase.dontretrystatuscodes.md rename to api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.dontretrystatuscodes.md index 899a420d2..ffc915ec3 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfigurationbase.dontretrystatuscodes.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.dontretrystatuscodes.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) > [dontRetryStatusCodes](./react-native-tracker.emitterconfigurationbase.dontretrystatuscodes.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EmitterConfigurationBase](./node-tracker.emitterconfigurationbase.md) > [dontRetryStatusCodes](./node-tracker.emitterconfigurationbase.dontretrystatuscodes.md) ## EmitterConfigurationBase.dontRetryStatusCodes property diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.eventmethod.md b/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.eventmethod.md new file mode 100644 index 000000000..cd30544bf --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.eventmethod.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EmitterConfigurationBase](./node-tracker.emitterconfigurationbase.md) > [eventMethod](./node-tracker.emitterconfigurationbase.eventmethod.md) + +## EmitterConfigurationBase.eventMethod property + +The preferred technique to use to send events + +Signature: + +```typescript +eventMethod?: EventMethod; +``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfigurationbase.eventstore.md b/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.eventstore.md similarity index 53% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfigurationbase.eventstore.md rename to api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.eventstore.md index 8c872a534..eb6fbfaba 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfigurationbase.eventstore.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.eventstore.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) > [eventStore](./react-native-tracker.emitterconfigurationbase.eventstore.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EmitterConfigurationBase](./node-tracker.emitterconfigurationbase.md) > [eventStore](./node-tracker.emitterconfigurationbase.eventstore.md) ## EmitterConfigurationBase.eventStore property diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.idservice.md b/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.idservice.md new file mode 100644 index 000000000..8eee6aa69 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.idservice.md @@ -0,0 +1,16 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EmitterConfigurationBase](./node-tracker.emitterconfigurationbase.md) > [idService](./node-tracker.emitterconfigurationbase.idservice.md) + +## EmitterConfigurationBase.idService property + +> Warning: This API is now obsolete. +> +> Use `cookieExtensionService` instead. +> + +Signature: + +```typescript +idService?: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfigurationbase.keepalive.md b/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.keepalive.md similarity index 67% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfigurationbase.keepalive.md rename to api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.keepalive.md index 01c8c2818..480135076 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfigurationbase.keepalive.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.keepalive.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) > [keepalive](./react-native-tracker.emitterconfigurationbase.keepalive.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EmitterConfigurationBase](./node-tracker.emitterconfigurationbase.md) > [keepalive](./node-tracker.emitterconfigurationbase.keepalive.md) ## EmitterConfigurationBase.keepalive property diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfigurationbase.maxgetbytes.md b/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.maxgetbytes.md similarity index 53% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfigurationbase.maxgetbytes.md rename to api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.maxgetbytes.md index f9dfdedc5..cba914977 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfigurationbase.maxgetbytes.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.maxgetbytes.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) > [maxGetBytes](./react-native-tracker.emitterconfigurationbase.maxgetbytes.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EmitterConfigurationBase](./node-tracker.emitterconfigurationbase.md) > [maxGetBytes](./node-tracker.emitterconfigurationbase.maxgetbytes.md) ## EmitterConfigurationBase.maxGetBytes property diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfigurationbase.maxpostbytes.md b/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.maxpostbytes.md similarity index 58% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfigurationbase.maxpostbytes.md rename to api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.maxpostbytes.md index 1933473d1..8cdcf05b5 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfigurationbase.maxpostbytes.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.maxpostbytes.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) > [maxPostBytes](./react-native-tracker.emitterconfigurationbase.maxpostbytes.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EmitterConfigurationBase](./node-tracker.emitterconfigurationbase.md) > [maxPostBytes](./node-tracker.emitterconfigurationbase.maxpostbytes.md) ## EmitterConfigurationBase.maxPostBytes property diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.md b/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.md new file mode 100644 index 000000000..637112285 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.md @@ -0,0 +1,36 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EmitterConfigurationBase](./node-tracker.emitterconfigurationbase.md) + +## EmitterConfigurationBase interface + +Signature: + +```typescript +interface EmitterConfigurationBase +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [bufferSize?](./node-tracker.emitterconfigurationbase.buffersize.md) | number | (Optional) The amount of events that should be buffered before sending Recommended to leave as 1 to reduce change of losing events | +| [connectionTimeout?](./node-tracker.emitterconfigurationbase.connectiontimeout.md) | number | (Optional) How long to wait before aborting requests to the collector | +| [cookieExtensionService?](./node-tracker.emitterconfigurationbase.cookieextensionservice.md) | string | (Optional) Cookie extension service full URL. This URL will be added to the queue and will be called using a GET method. This option is there to allow the service URL to be called in order to set any required identifiers e.g. extra cookies.The request respects the anonymousTracking option, including the SP-Anonymous header if needed, and any additional custom headers from the customHeaders option. | +| [credentials?](./node-tracker.emitterconfigurationbase.credentials.md) | "omit" \| "same-origin" \| "include" | (Optional) Controls whether or not the browser sends credentials (defaults to 'include') | +| [customFetch?](./node-tracker.emitterconfigurationbase.customfetch.md) | (input: Request, options?: RequestInit) => Promise<Response> | (Optional) Enables overriding the default fetch function with a custom implementation. | +| [customHeaders?](./node-tracker.emitterconfigurationbase.customheaders.md) | Record<string, string> | (Optional) An object of key value pairs which represent headers to attach when sending a POST request, only works for POST | +| [dontRetryStatusCodes?](./node-tracker.emitterconfigurationbase.dontretrystatuscodes.md) | number\[\] | (Optional) List of HTTP response status codes for which events sent to Collector should not be retried in future request. Only non-success status codes are considered (greater or equal to 300). The don't retry codes are only considered for GET and POST requests. By default, the tracker retries on all non-success status codes except for 400, 401, 403, 410, and 422 (these don't retry codes will remain even if you set your own dontRetryStatusCodes but can be changed using the retryStatusCodes). | +| [eventMethod?](./node-tracker.emitterconfigurationbase.eventmethod.md) | EventMethod | (Optional) The preferred technique to use to send events | +| [eventStore?](./node-tracker.emitterconfigurationbase.eventstore.md) | EventStore | (Optional) Enables providing a custom EventStore implementation to store events before sending them to the collector. | +| [idService?](./node-tracker.emitterconfigurationbase.idservice.md) | string | (Optional) | +| [keepalive?](./node-tracker.emitterconfigurationbase.keepalive.md) | boolean | (Optional) Indicates that the request should be allowed to outlive the webpage that initiated it. Enables collector requests to complete even if the page is closed or navigated away from. Note: Browsers put a limit on keepalive requests of 64KB. In case of multiple keepalive requests in parallel (may happen in case of multiple trackers), the limit is shared. | +| [maxGetBytes?](./node-tracker.emitterconfigurationbase.maxgetbytes.md) | number | (Optional) The max size a GET request (its complete URL) can be. Requests over this size will be tried as a POST request. | +| [maxPostBytes?](./node-tracker.emitterconfigurationbase.maxpostbytes.md) | number | (Optional) The max size a POST request can be before the tracker will force send it Also dictates the max size of a POST request before a batch of events is split into multiple requests | +| [onRequestFailure?](./node-tracker.emitterconfigurationbase.onrequestfailure.md) | (data: RequestFailure, response?: Response) => void | (Optional) A callback function to be executed whenever a request fails to be sent to the collector. This is the inverse of the onRequestSuccess callback, so any non 2xx status code will trigger this callback. | +| [onRequestSuccess?](./node-tracker.emitterconfigurationbase.onrequestsuccess.md) | (data: EventBatch, response: Response) => void | (Optional) A callback function to be executed whenever a request is successfully sent to the collector. In practice this means any request which returns a 2xx status code will trigger this callback. | +| [postPath?](./node-tracker.emitterconfigurationbase.postpath.md) | string | (Optional) The post path which events will be sent to. Ensure your collector is configured to accept events on this post path | +| [retryFailedRequests?](./node-tracker.emitterconfigurationbase.retryfailedrequests.md) | boolean | (Optional) Whether to retry failed requests to the collector.Failed requests are requests that failed due to \[timeouts\](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/timeout\_event), \[network errors\](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/error\_event), and \[abort events\](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/abort\_event).Takes precedent over retryStatusCodes and dontRetryStatusCodes. | +| [retryStatusCodes?](./node-tracker.emitterconfigurationbase.retrystatuscodes.md) | number\[\] | (Optional) List of HTTP response status codes for which events sent to Collector should be retried in future requests. Only non-success status codes are considered (greater or equal to 300). The retry codes are only considered for GET and POST requests. They take priority over the dontRetryStatusCodes option. By default, the tracker retries on all non-success status codes except for 400, 401, 403, 410, and 422. | +| [useStm?](./node-tracker.emitterconfigurationbase.usestm.md) | boolean | (Optional) Should the Sent Timestamp be attached to events. Only applies for GET events. | + diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfigurationbase.onrequestfailure.md b/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.onrequestfailure.md similarity index 61% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfigurationbase.onrequestfailure.md rename to api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.onrequestfailure.md index 966c194ad..2ded72a24 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfigurationbase.onrequestfailure.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.onrequestfailure.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) > [onRequestFailure](./react-native-tracker.emitterconfigurationbase.onrequestfailure.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EmitterConfigurationBase](./node-tracker.emitterconfigurationbase.md) > [onRequestFailure](./node-tracker.emitterconfigurationbase.onrequestfailure.md) ## EmitterConfigurationBase.onRequestFailure property diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfigurationbase.onrequestsuccess.md b/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.onrequestsuccess.md similarity index 61% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfigurationbase.onrequestsuccess.md rename to api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.onrequestsuccess.md index aa3a00827..6f117725e 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfigurationbase.onrequestsuccess.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.onrequestsuccess.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) > [onRequestSuccess](./react-native-tracker.emitterconfigurationbase.onrequestsuccess.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EmitterConfigurationBase](./node-tracker.emitterconfigurationbase.md) > [onRequestSuccess](./node-tracker.emitterconfigurationbase.onrequestsuccess.md) ## EmitterConfigurationBase.onRequestSuccess property diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfigurationbase.postpath.md b/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.postpath.md similarity index 53% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfigurationbase.postpath.md rename to api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.postpath.md index f12cdb29b..58fc97c56 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfigurationbase.postpath.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.postpath.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) > [postPath](./react-native-tracker.emitterconfigurationbase.postpath.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EmitterConfigurationBase](./node-tracker.emitterconfigurationbase.md) > [postPath](./node-tracker.emitterconfigurationbase.postpath.md) ## EmitterConfigurationBase.postPath property diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfigurationbase.retryfailedrequests.md b/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.retryfailedrequests.md similarity index 70% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfigurationbase.retryfailedrequests.md rename to api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.retryfailedrequests.md index 133d36e9d..7a32a9f98 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfigurationbase.retryfailedrequests.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.retryfailedrequests.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) > [retryFailedRequests](./react-native-tracker.emitterconfigurationbase.retryfailedrequests.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EmitterConfigurationBase](./node-tracker.emitterconfigurationbase.md) > [retryFailedRequests](./node-tracker.emitterconfigurationbase.retryfailedrequests.md) ## EmitterConfigurationBase.retryFailedRequests property diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfigurationbase.retrystatuscodes.md b/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.retrystatuscodes.md similarity index 69% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfigurationbase.retrystatuscodes.md rename to api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.retrystatuscodes.md index 2e275eb64..06dac5047 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfigurationbase.retrystatuscodes.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.retrystatuscodes.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) > [retryStatusCodes](./react-native-tracker.emitterconfigurationbase.retrystatuscodes.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EmitterConfigurationBase](./node-tracker.emitterconfigurationbase.md) > [retryStatusCodes](./node-tracker.emitterconfigurationbase.retrystatuscodes.md) ## EmitterConfigurationBase.retryStatusCodes property diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfigurationbase.usestm.md b/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.usestm.md similarity index 50% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfigurationbase.usestm.md rename to api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.usestm.md index 357628928..be353a69e 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfigurationbase.usestm.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.emitterconfigurationbase.usestm.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) > [useStm](./react-native-tracker.emitterconfigurationbase.usestm.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EmitterConfigurationBase](./node-tracker.emitterconfigurationbase.md) > [useStm](./node-tracker.emitterconfigurationbase.usestm.md) ## EmitterConfigurationBase.useStm property diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.eventbatch.md b/api-docs/docs/node-tracker/markdown/node-tracker.eventbatch.md similarity index 60% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.eventbatch.md rename to api-docs/docs/node-tracker/markdown/node-tracker.eventbatch.md index 3eda10ed8..c5d63edf2 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.eventbatch.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.eventbatch.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EventBatch](./react-native-tracker.eventbatch.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EventBatch](./node-tracker.eventbatch.md) ## EventBatch type diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.eventjson.md b/api-docs/docs/node-tracker/markdown/node-tracker.eventjson.md similarity index 63% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.eventjson.md rename to api-docs/docs/node-tracker/markdown/node-tracker.eventjson.md index 6772b5486..573a64802 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.eventjson.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.eventjson.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EventJson](./react-native-tracker.eventjson.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EventJson](./node-tracker.eventjson.md) ## EventJson type diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.eventjsonwithkeys.md b/api-docs/docs/node-tracker/markdown/node-tracker.eventjsonwithkeys.md similarity index 66% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.eventjsonwithkeys.md rename to api-docs/docs/node-tracker/markdown/node-tracker.eventjsonwithkeys.md index 025ecd9e2..39bfe8d8b 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.eventjsonwithkeys.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.eventjsonwithkeys.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EventJsonWithKeys](./react-native-tracker.eventjsonwithkeys.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EventJsonWithKeys](./node-tracker.eventjsonwithkeys.md) ## EventJsonWithKeys type diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.eventmethod.md b/api-docs/docs/node-tracker/markdown/node-tracker.eventmethod.md similarity index 53% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.eventmethod.md rename to api-docs/docs/node-tracker/markdown/node-tracker.eventmethod.md index c76297fad..56f45e628 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.eventmethod.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.eventmethod.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EventMethod](./react-native-tracker.eventmethod.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EventMethod](./node-tracker.eventmethod.md) ## EventMethod type diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.eventpayloadandcontext.context.md b/api-docs/docs/node-tracker/markdown/node-tracker.eventpayloadandcontext.context.md similarity index 50% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.eventpayloadandcontext.context.md rename to api-docs/docs/node-tracker/markdown/node-tracker.eventpayloadandcontext.context.md index e4dfd9d8a..450dac748 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.eventpayloadandcontext.context.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.eventpayloadandcontext.context.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EventPayloadAndContext](./react-native-tracker.eventpayloadandcontext.md) > [context](./react-native-tracker.eventpayloadandcontext.context.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EventPayloadAndContext](./node-tracker.eventpayloadandcontext.md) > [context](./node-tracker.eventpayloadandcontext.context.md) ## EventPayloadAndContext.context property diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.eventpayloadandcontext.event.md b/api-docs/docs/node-tracker/markdown/node-tracker.eventpayloadandcontext.event.md new file mode 100644 index 000000000..75e3aad07 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.eventpayloadandcontext.event.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EventPayloadAndContext](./node-tracker.eventpayloadandcontext.md) > [event](./node-tracker.eventpayloadandcontext.event.md) + +## EventPayloadAndContext.event property + +Tracker payload for the event data + +Signature: + +```typescript +event: PayloadBuilder; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.eventpayloadandcontext.md b/api-docs/docs/node-tracker/markdown/node-tracker.eventpayloadandcontext.md new file mode 100644 index 000000000..3f94b70a3 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.eventpayloadandcontext.md @@ -0,0 +1,21 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EventPayloadAndContext](./node-tracker.eventpayloadandcontext.md) + +## EventPayloadAndContext interface + +Interface for returning a built event (PayloadBuilder) and context (Array of SelfDescribingJson). + +Signature: + +```typescript +interface EventPayloadAndContext +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [context](./node-tracker.eventpayloadandcontext.context.md) | Array<SelfDescribingJson> | List of context entities to track along with the event | +| [event](./node-tracker.eventpayloadandcontext.event.md) | PayloadBuilder | Tracker payload for the event data | + diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.eventstore.add.md b/api-docs/docs/node-tracker/markdown/node-tracker.eventstore.add.md new file mode 100644 index 000000000..b63a8d256 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.eventstore.add.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EventStore](./node-tracker.eventstore.md) > [add](./node-tracker.eventstore.add.md) + +## EventStore.add property + +Add an event to the store + +Signature: + +```typescript +add: (payload: EventStorePayload) => Promise; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.eventstore.count.md b/api-docs/docs/node-tracker/markdown/node-tracker.eventstore.count.md new file mode 100644 index 000000000..cd321fb5a --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.eventstore.count.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EventStore](./node-tracker.eventstore.md) > [count](./node-tracker.eventstore.count.md) + +## EventStore.count property + +Count all events in the store + +Signature: + +```typescript +count: () => Promise; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.eventstore.getall.md b/api-docs/docs/node-tracker/markdown/node-tracker.eventstore.getall.md new file mode 100644 index 000000000..353635c20 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.eventstore.getall.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EventStore](./node-tracker.eventstore.md) > [getAll](./node-tracker.eventstore.getall.md) + +## EventStore.getAll property + +Retrieve all payloads including their meta configuration in the store + +Signature: + +```typescript +getAll: () => Promise; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.eventstore.getallpayloads.md b/api-docs/docs/node-tracker/markdown/node-tracker.eventstore.getallpayloads.md new file mode 100644 index 000000000..43bc85fb6 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.eventstore.getallpayloads.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EventStore](./node-tracker.eventstore.md) > [getAllPayloads](./node-tracker.eventstore.getallpayloads.md) + +## EventStore.getAllPayloads property + +Retrieve all pure payloads in the store + +Signature: + +```typescript +getAllPayloads: () => Promise; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.eventstore.iterator.md b/api-docs/docs/node-tracker/markdown/node-tracker.eventstore.iterator.md new file mode 100644 index 000000000..0eace0e1c --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.eventstore.iterator.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EventStore](./node-tracker.eventstore.md) > [iterator](./node-tracker.eventstore.iterator.md) + +## EventStore.iterator property + +Get an iterator over all events in the store + +Signature: + +```typescript +iterator: () => EventStoreIterator; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.eventstore.md b/api-docs/docs/node-tracker/markdown/node-tracker.eventstore.md new file mode 100644 index 000000000..88b86e7c4 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.eventstore.md @@ -0,0 +1,25 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EventStore](./node-tracker.eventstore.md) + +## EventStore interface + +EventStore allows storing and retrieving events before they are sent to the collector + +Signature: + +```typescript +interface EventStore +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [add](./node-tracker.eventstore.add.md) | (payload: EventStorePayload) => Promise<number> | Add an event to the store | +| [count](./node-tracker.eventstore.count.md) | () => Promise<number> | Count all events in the store | +| [getAll](./node-tracker.eventstore.getall.md) | () => Promise<readonly EventStorePayload\[\]> | Retrieve all payloads including their meta configuration in the store | +| [getAllPayloads](./node-tracker.eventstore.getallpayloads.md) | () => Promise<readonly Payload\[\]> | Retrieve all pure payloads in the store | +| [iterator](./node-tracker.eventstore.iterator.md) | () => EventStoreIterator | Get an iterator over all events in the store | +| [removeHead](./node-tracker.eventstore.removehead.md) | (count: number) => Promise<void> | Remove the first count events from the store | + diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.eventstore.removehead.md b/api-docs/docs/node-tracker/markdown/node-tracker.eventstore.removehead.md new file mode 100644 index 000000000..8bfe8ad87 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.eventstore.removehead.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EventStore](./node-tracker.eventstore.md) > [removeHead](./node-tracker.eventstore.removehead.md) + +## EventStore.removeHead property + +Remove the first `count` events from the store + +Signature: + +```typescript +removeHead: (count: number) => Promise; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.eventstoreconfiguration.maxsize.md b/api-docs/docs/node-tracker/markdown/node-tracker.eventstoreconfiguration.maxsize.md new file mode 100644 index 000000000..52aaa8357 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.eventstoreconfiguration.maxsize.md @@ -0,0 +1,15 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EventStoreConfiguration](./node-tracker.eventstoreconfiguration.md) > [maxSize](./node-tracker.eventstoreconfiguration.maxsize.md) + +## EventStoreConfiguration.maxSize property + +The maximum amount of events that will be buffered in the event store + +This is useful to ensure the Tracker doesn't fill the 5MB or 10MB available to each website should the collector be unavailable due to lost connectivity. Will drop old events once the limit is hit + +Signature: + +```typescript +maxSize?: number; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.eventstoreconfiguration.md b/api-docs/docs/node-tracker/markdown/node-tracker.eventstoreconfiguration.md new file mode 100644 index 000000000..96bc0bee7 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.eventstoreconfiguration.md @@ -0,0 +1,18 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EventStoreConfiguration](./node-tracker.eventstoreconfiguration.md) + +## EventStoreConfiguration interface + +Signature: + +```typescript +interface EventStoreConfiguration +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [maxSize?](./node-tracker.eventstoreconfiguration.maxsize.md) | number | (Optional) The maximum amount of events that will be buffered in the event storeThis is useful to ensure the Tracker doesn't fill the 5MB or 10MB available to each website should the collector be unavailable due to lost connectivity. Will drop old events once the limit is hit | + diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.eventstoreiterator.md b/api-docs/docs/node-tracker/markdown/node-tracker.eventstoreiterator.md new file mode 100644 index 000000000..944e7f666 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.eventstoreiterator.md @@ -0,0 +1,20 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EventStoreIterator](./node-tracker.eventstoreiterator.md) + +## EventStoreIterator interface + +EventStoreIterator allows iterating over all events in the store. + +Signature: + +```typescript +interface EventStoreIterator +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [next](./node-tracker.eventstoreiterator.next.md) | () => Promise<EventStoreIteratorNextResult> | Retrieve the next event in the store | + diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.eventstoreiterator.next.md b/api-docs/docs/node-tracker/markdown/node-tracker.eventstoreiterator.next.md similarity index 51% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.eventstoreiterator.next.md rename to api-docs/docs/node-tracker/markdown/node-tracker.eventstoreiterator.next.md index c2e95a935..d1cd8e14e 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.eventstoreiterator.next.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.eventstoreiterator.next.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EventStoreIterator](./react-native-tracker.eventstoreiterator.md) > [next](./react-native-tracker.eventstoreiterator.next.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EventStoreIterator](./node-tracker.eventstoreiterator.md) > [next](./node-tracker.eventstoreiterator.next.md) ## EventStoreIterator.next property diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.eventstorepayload.md b/api-docs/docs/node-tracker/markdown/node-tracker.eventstorepayload.md new file mode 100644 index 000000000..df0cbeeae --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.eventstorepayload.md @@ -0,0 +1,19 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EventStorePayload](./node-tracker.eventstorepayload.md) + +## EventStorePayload interface + +Signature: + +```typescript +interface EventStorePayload +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [payload](./node-tracker.eventstorepayload.payload.md) | Payload | The event payload to be stored | +| [svrAnon?](./node-tracker.eventstorepayload.svranon.md) | boolean | (Optional) If the request should undergo server anonymization. | + diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.eventstorepayload.payload.md b/api-docs/docs/node-tracker/markdown/node-tracker.eventstorepayload.payload.md new file mode 100644 index 000000000..208ebd71f --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.eventstorepayload.payload.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EventStorePayload](./node-tracker.eventstorepayload.md) > [payload](./node-tracker.eventstorepayload.payload.md) + +## EventStorePayload.payload property + +The event payload to be stored + +Signature: + +```typescript +payload: Payload; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.eventstorepayload.svranon.md b/api-docs/docs/node-tracker/markdown/node-tracker.eventstorepayload.svranon.md new file mode 100644 index 000000000..f35fbcff4 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.eventstorepayload.svranon.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [EventStorePayload](./node-tracker.eventstorepayload.md) > [svrAnon](./node-tracker.eventstorepayload.svranon.md) + +## EventStorePayload.svrAnon property + +If the request should undergo server anonymization. + +Signature: + +```typescript +svrAnon?: boolean; +``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.filterprovider.md b/api-docs/docs/node-tracker/markdown/node-tracker.filterprovider.md similarity index 72% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.filterprovider.md rename to api-docs/docs/node-tracker/markdown/node-tracker.filterprovider.md index a58d155e1..20ce14b69 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.filterprovider.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.filterprovider.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [FilterProvider](./react-native-tracker.filterprovider.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [FilterProvider](./node-tracker.filterprovider.md) ## FilterProvider type diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.formelement.md b/api-docs/docs/node-tracker/markdown/node-tracker.formelement.md new file mode 100644 index 000000000..1e8793c31 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.formelement.md @@ -0,0 +1,18 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [FormElement](./node-tracker.formelement.md) + +## FormElement type + +A representation of an element within a form + +Signature: + +```typescript +type FormElement = { + name: string; + value: string | null; + nodeName: string; + type?: string | null; +}; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.formfocusorchangeevent.elementclasses.md b/api-docs/docs/node-tracker/markdown/node-tracker.formfocusorchangeevent.elementclasses.md new file mode 100644 index 000000000..1a14e2505 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.formfocusorchangeevent.elementclasses.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [FormFocusOrChangeEvent](./node-tracker.formfocusorchangeevent.md) > [elementClasses](./node-tracker.formfocusorchangeevent.elementclasses.md) + +## FormFocusOrChangeEvent.elementClasses property + +The class names on the element + +Signature: + +```typescript +elementClasses?: Array | null; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.formfocusorchangeevent.elementid.md b/api-docs/docs/node-tracker/markdown/node-tracker.formfocusorchangeevent.elementid.md new file mode 100644 index 000000000..17e6a12c2 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.formfocusorchangeevent.elementid.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [FormFocusOrChangeEvent](./node-tracker.formfocusorchangeevent.md) > [elementId](./node-tracker.formfocusorchangeevent.elementid.md) + +## FormFocusOrChangeEvent.elementId property + +The element ID which the user is interacting with + +Signature: + +```typescript +elementId: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.formfocusorchangeevent.formid.md b/api-docs/docs/node-tracker/markdown/node-tracker.formfocusorchangeevent.formid.md new file mode 100644 index 000000000..bd2f9d9b3 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.formfocusorchangeevent.formid.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [FormFocusOrChangeEvent](./node-tracker.formfocusorchangeevent.md) > [formId](./node-tracker.formfocusorchangeevent.formid.md) + +## FormFocusOrChangeEvent.formId property + +The ID of the form which the element belongs to + +Signature: + +```typescript +formId: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.formfocusorchangeevent.md b/api-docs/docs/node-tracker/markdown/node-tracker.formfocusorchangeevent.md new file mode 100644 index 000000000..af684f575 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.formfocusorchangeevent.md @@ -0,0 +1,26 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [FormFocusOrChangeEvent](./node-tracker.formfocusorchangeevent.md) + +## FormFocusOrChangeEvent interface + +Represents either a Form Focus or Form Change event When a user focuses on a form element or when a user makes a change to a form element. + +Signature: + +```typescript +interface FormFocusOrChangeEvent +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [elementClasses?](./node-tracker.formfocusorchangeevent.elementclasses.md) | Array<string> \| null | (Optional) The class names on the element | +| [elementId](./node-tracker.formfocusorchangeevent.elementid.md) | string | The element ID which the user is interacting with | +| [formId](./node-tracker.formfocusorchangeevent.formid.md) | string | The ID of the form which the element belongs to | +| [nodeName](./node-tracker.formfocusorchangeevent.nodename.md) | string | The name of the node ("INPUT", "TEXTAREA", "SELECT") | +| [schema](./node-tracker.formfocusorchangeevent.schema.md) | "change\_form" \| "focus\_form" | The schema which will be used for the event | +| [type?](./node-tracker.formfocusorchangeevent.type.md) | string \| null | (Optional) The type of element (e.g. "datetime", "text", "radio", etc.) | +| [value](./node-tracker.formfocusorchangeevent.value.md) | string \| null | The value of the element at the time of the event firing | + diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.formfocusorchangeevent.nodename.md b/api-docs/docs/node-tracker/markdown/node-tracker.formfocusorchangeevent.nodename.md new file mode 100644 index 000000000..74a541da3 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.formfocusorchangeevent.nodename.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [FormFocusOrChangeEvent](./node-tracker.formfocusorchangeevent.md) > [nodeName](./node-tracker.formfocusorchangeevent.nodename.md) + +## FormFocusOrChangeEvent.nodeName property + +The name of the node ("INPUT", "TEXTAREA", "SELECT") + +Signature: + +```typescript +nodeName: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.formfocusorchangeevent.schema.md b/api-docs/docs/node-tracker/markdown/node-tracker.formfocusorchangeevent.schema.md new file mode 100644 index 000000000..247eb8ead --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.formfocusorchangeevent.schema.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [FormFocusOrChangeEvent](./node-tracker.formfocusorchangeevent.md) > [schema](./node-tracker.formfocusorchangeevent.schema.md) + +## FormFocusOrChangeEvent.schema property + +The schema which will be used for the event + +Signature: + +```typescript +schema: "change_form" | "focus_form"; +``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.formfocusorchangeevent.type.md b/api-docs/docs/node-tracker/markdown/node-tracker.formfocusorchangeevent.type.md similarity index 50% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.formfocusorchangeevent.type.md rename to api-docs/docs/node-tracker/markdown/node-tracker.formfocusorchangeevent.type.md index da56b8396..cc6feca41 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.formfocusorchangeevent.type.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.formfocusorchangeevent.type.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [FormFocusOrChangeEvent](./react-native-tracker.formfocusorchangeevent.md) > [type](./react-native-tracker.formfocusorchangeevent.type.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [FormFocusOrChangeEvent](./node-tracker.formfocusorchangeevent.md) > [type](./node-tracker.formfocusorchangeevent.type.md) ## FormFocusOrChangeEvent.type property diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.formfocusorchangeevent.value.md b/api-docs/docs/node-tracker/markdown/node-tracker.formfocusorchangeevent.value.md new file mode 100644 index 000000000..a7f34f175 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.formfocusorchangeevent.value.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [FormFocusOrChangeEvent](./node-tracker.formfocusorchangeevent.md) > [value](./node-tracker.formfocusorchangeevent.value.md) + +## FormFocusOrChangeEvent.value property + +The value of the element at the time of the event firing + +Signature: + +```typescript +value: string | null; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.formsubmissionevent.elements.md b/api-docs/docs/node-tracker/markdown/node-tracker.formsubmissionevent.elements.md new file mode 100644 index 000000000..b8b5badaf --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.formsubmissionevent.elements.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [FormSubmissionEvent](./node-tracker.formsubmissionevent.md) > [elements](./node-tracker.formsubmissionevent.elements.md) + +## FormSubmissionEvent.elements property + +The elements contained within the form + +Signature: + +```typescript +elements?: Array; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.formsubmissionevent.formclasses.md b/api-docs/docs/node-tracker/markdown/node-tracker.formsubmissionevent.formclasses.md new file mode 100644 index 000000000..52bc3040a --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.formsubmissionevent.formclasses.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [FormSubmissionEvent](./node-tracker.formsubmissionevent.md) > [formClasses](./node-tracker.formsubmissionevent.formclasses.md) + +## FormSubmissionEvent.formClasses property + +The class names on the form + +Signature: + +```typescript +formClasses?: Array; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.formsubmissionevent.formid.md b/api-docs/docs/node-tracker/markdown/node-tracker.formsubmissionevent.formid.md new file mode 100644 index 000000000..c87c64433 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.formsubmissionevent.formid.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [FormSubmissionEvent](./node-tracker.formsubmissionevent.md) > [formId](./node-tracker.formsubmissionevent.formid.md) + +## FormSubmissionEvent.formId property + +The ID of the form + +Signature: + +```typescript +formId: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.formsubmissionevent.md b/api-docs/docs/node-tracker/markdown/node-tracker.formsubmissionevent.md new file mode 100644 index 000000000..10a9b5f82 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.formsubmissionevent.md @@ -0,0 +1,22 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [FormSubmissionEvent](./node-tracker.formsubmissionevent.md) + +## FormSubmissionEvent interface + +A Form Submission Event Used to track when a user submits a form + +Signature: + +```typescript +interface FormSubmissionEvent +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [elements?](./node-tracker.formsubmissionevent.elements.md) | Array<FormElement> | (Optional) The elements contained within the form | +| [formClasses?](./node-tracker.formsubmissionevent.formclasses.md) | Array<string> | (Optional) The class names on the form | +| [formId](./node-tracker.formsubmissionevent.formid.md) | string | The ID of the form | + diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.jsonprocessor.md b/api-docs/docs/node-tracker/markdown/node-tracker.jsonprocessor.md similarity index 69% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.jsonprocessor.md rename to api-docs/docs/node-tracker/markdown/node-tracker.jsonprocessor.md index 35d77f46d..cc2f190c2 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.jsonprocessor.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.jsonprocessor.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [JsonProcessor](./react-native-tracker.jsonprocessor.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [JsonProcessor](./node-tracker.jsonprocessor.md) ## JsonProcessor type diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.linkclickevent.elementclasses.md b/api-docs/docs/node-tracker/markdown/node-tracker.linkclickevent.elementclasses.md new file mode 100644 index 000000000..1e6e5c891 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.linkclickevent.elementclasses.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [LinkClickEvent](./node-tracker.linkclickevent.md) > [elementClasses](./node-tracker.linkclickevent.elementclasses.md) + +## LinkClickEvent.elementClasses property + +An array of class names from the element clicked + +Signature: + +```typescript +elementClasses?: Array; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.linkclickevent.elementcontent.md b/api-docs/docs/node-tracker/markdown/node-tracker.linkclickevent.elementcontent.md new file mode 100644 index 000000000..3612c2946 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.linkclickevent.elementcontent.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [LinkClickEvent](./node-tracker.linkclickevent.md) > [elementContent](./node-tracker.linkclickevent.elementcontent.md) + +## LinkClickEvent.elementContent property + +The content of the element if present and enabled + +Signature: + +```typescript +elementContent?: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.linkclickevent.elementid.md b/api-docs/docs/node-tracker/markdown/node-tracker.linkclickevent.elementid.md new file mode 100644 index 000000000..b755d563e --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.linkclickevent.elementid.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [LinkClickEvent](./node-tracker.linkclickevent.md) > [elementId](./node-tracker.linkclickevent.elementid.md) + +## LinkClickEvent.elementId property + +The ID of the element clicked if present + +Signature: + +```typescript +elementId?: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.linkclickevent.elementtarget.md b/api-docs/docs/node-tracker/markdown/node-tracker.linkclickevent.elementtarget.md new file mode 100644 index 000000000..8a3f1e7be --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.linkclickevent.elementtarget.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [LinkClickEvent](./node-tracker.linkclickevent.md) > [elementTarget](./node-tracker.linkclickevent.elementtarget.md) + +## LinkClickEvent.elementTarget property + +The target value of the element if present + +Signature: + +```typescript +elementTarget?: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.linkclickevent.md b/api-docs/docs/node-tracker/markdown/node-tracker.linkclickevent.md new file mode 100644 index 000000000..4ec30914a --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.linkclickevent.md @@ -0,0 +1,24 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [LinkClickEvent](./node-tracker.linkclickevent.md) + +## LinkClickEvent interface + +A Link Click Event Used when a user clicks on a link on a webpage, typically an anchor tag `` + +Signature: + +```typescript +interface LinkClickEvent +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [elementClasses?](./node-tracker.linkclickevent.elementclasses.md) | Array<string> | (Optional) An array of class names from the element clicked | +| [elementContent?](./node-tracker.linkclickevent.elementcontent.md) | string | (Optional) The content of the element if present and enabled | +| [elementId?](./node-tracker.linkclickevent.elementid.md) | string | (Optional) The ID of the element clicked if present | +| [elementTarget?](./node-tracker.linkclickevent.elementtarget.md) | string | (Optional) The target value of the element if present | +| [targetUrl](./node-tracker.linkclickevent.targeturl.md) | string | The target URL of the link | + diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.linkclickevent.targeturl.md b/api-docs/docs/node-tracker/markdown/node-tracker.linkclickevent.targeturl.md new file mode 100644 index 000000000..f31b90e57 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.linkclickevent.targeturl.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [LinkClickEvent](./node-tracker.linkclickevent.md) > [targetUrl](./node-tracker.linkclickevent.targeturl.md) + +## LinkClickEvent.targetUrl property + +The target URL of the link + +Signature: + +```typescript +targetUrl: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.log_level.md b/api-docs/docs/node-tracker/markdown/node-tracker.log_level.md similarity index 71% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.log_level.md rename to api-docs/docs/node-tracker/markdown/node-tracker.log_level.md index 820f56307..745f621c1 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.log_level.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.log_level.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [LOG\_LEVEL](./react-native-tracker.log_level.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [LOG\_LEVEL](./node-tracker.log_level.md) ## LOG\_LEVEL enum diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.logger.debug.md b/api-docs/docs/node-tracker/markdown/node-tracker.logger.debug.md similarity index 51% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.logger.debug.md rename to api-docs/docs/node-tracker/markdown/node-tracker.logger.debug.md index a5470c124..f4617e1b8 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.logger.debug.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.logger.debug.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [Logger](./react-native-tracker.logger.md) > [debug](./react-native-tracker.logger.debug.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [Logger](./node-tracker.logger.md) > [debug](./node-tracker.logger.debug.md) ## Logger.debug property diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.logger.error.md b/api-docs/docs/node-tracker/markdown/node-tracker.logger.error.md similarity index 53% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.logger.error.md rename to api-docs/docs/node-tracker/markdown/node-tracker.logger.error.md index b13733fc3..baec2704d 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.logger.error.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.logger.error.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [Logger](./react-native-tracker.logger.md) > [error](./react-native-tracker.logger.error.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [Logger](./node-tracker.logger.md) > [error](./node-tracker.logger.error.md) ## Logger.error property diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.logger.info.md b/api-docs/docs/node-tracker/markdown/node-tracker.logger.info.md similarity index 51% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.logger.info.md rename to api-docs/docs/node-tracker/markdown/node-tracker.logger.info.md index 27b3239e6..ea9410890 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.logger.info.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.logger.info.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [Logger](./react-native-tracker.logger.md) > [info](./react-native-tracker.logger.info.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [Logger](./node-tracker.logger.md) > [info](./node-tracker.logger.info.md) ## Logger.info property diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.logger.md b/api-docs/docs/node-tracker/markdown/node-tracker.logger.md new file mode 100644 index 000000000..9a8937ca1 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.logger.md @@ -0,0 +1,22 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [Logger](./node-tracker.logger.md) + +## Logger interface + +Signature: + +```typescript +interface Logger +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [debug](./node-tracker.logger.debug.md) | (message: string, ...extraParams: unknown\[\]) => void | | +| [error](./node-tracker.logger.error.md) | (message: string, error?: unknown, ...extraParams: unknown\[\]) => void | | +| [info](./node-tracker.logger.info.md) | (message: string, ...extraParams: unknown\[\]) => void | | +| [setLogLevel](./node-tracker.logger.setloglevel.md) | (level: LOG\_LEVEL) => void | | +| [warn](./node-tracker.logger.warn.md) | (message: string, error?: unknown, ...extraParams: unknown\[\]) => void | | + diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.logger.setloglevel.md b/api-docs/docs/node-tracker/markdown/node-tracker.logger.setloglevel.md new file mode 100644 index 000000000..b08ef823c --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.logger.setloglevel.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [Logger](./node-tracker.logger.md) > [setLogLevel](./node-tracker.logger.setloglevel.md) + +## Logger.setLogLevel property + +Signature: + +```typescript +setLogLevel: (level: LOG_LEVEL) => void; +``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.logger.warn.md b/api-docs/docs/node-tracker/markdown/node-tracker.logger.warn.md similarity index 53% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.logger.warn.md rename to api-docs/docs/node-tracker/markdown/node-tracker.logger.warn.md index 07bd67498..deb16cc0f 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.logger.warn.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.logger.warn.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [Logger](./react-native-tracker.logger.md) > [warn](./react-native-tracker.logger.warn.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [Logger](./node-tracker.logger.md) > [warn](./node-tracker.logger.warn.md) ## Logger.warn property diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.md b/api-docs/docs/node-tracker/markdown/node-tracker.md new file mode 100644 index 000000000..c93bdbcac --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.md @@ -0,0 +1,110 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) + +## node-tracker package + +## Enumerations + +| Enumeration | Description | +| --- | --- | +| [LOG\_LEVEL](./node-tracker.log_level.md) | | + +## Functions + +| Function | Description | +| --- | --- | +| [buildAdClick(event)](./node-tracker.buildadclick.md) | Build a Ad Click Event Used to track an advertisement click | +| [buildAdConversion(event)](./node-tracker.buildadconversion.md) | Build a Ad Conversion Event Used to track an advertisement click | +| [buildAddToCart(event)](./node-tracker.buildaddtocart.md) | Build a Add To Cart Event For tracking users adding items from a cart on an ecommerce site. | +| [buildAdImpression(event)](./node-tracker.buildadimpression.md) | Build a Ad Impression Event Used to track an advertisement impression | +| [buildConsentGranted(event)](./node-tracker.buildconsentgranted.md) | Build a Consent Granted Event Used for tracking when a user grants their consent | +| [buildConsentWithdrawn(event)](./node-tracker.buildconsentwithdrawn.md) | Build a Consent Withdrawn Event Used for tracking when a user withdraws their consent | +| [buildEcommerceTransaction(event)](./node-tracker.buildecommercetransaction.md) | Build an Ecommerce Transaction Event Allows for tracking common ecommerce events, this event is usually used when a consumer completes a transaction. | +| [buildEcommerceTransactionItem(event)](./node-tracker.buildecommercetransactionitem.md) | Build an Ecommerce Transaction Item Event Related to the [buildEcommerceTransaction()](./node-tracker.buildecommercetransaction.md) Each Ecommerce Transaction may contain one or more EcommerceTransactionItem events | +| [buildFormFocusOrChange(event)](./node-tracker.buildformfocusorchange.md) | Build a Form Focus or Change Form Event based on schema property When a user focuses on a form element or when a user makes a change to a form element. | +| [buildFormSubmission(event)](./node-tracker.buildformsubmission.md) | Build a Form Submission Event Used to track when a user submits a form | +| [buildLinkClick(event)](./node-tracker.buildlinkclick.md) | Build a Link Click Event Used when a user clicks on a link on a webpage, typically an anchor tag <a> | +| [buildPagePing(event)](./node-tracker.buildpageping.md) | Build a Page Ping Event Fires when activity tracking is enabled in the browser. Tracks same information as the last tracked Page View and includes scroll information from the current page view | +| [buildPageView(event)](./node-tracker.buildpageview.md) | Build a Page View Event Represents a Page View, which is typically fired as soon as possible when a web page is loaded within the users browser. Often also fired on "virtual page views" within Single Page Applications (SPA). | +| [buildRemoveFromCart(event)](./node-tracker.buildremovefromcart.md) | Build a Remove From Cart Event For tracking users removing items from a cart on an ecommerce site. | +| [buildScreenView(event)](./node-tracker.buildscreenview.md) | Build a Scren View Event Similar to a Page View but less focused on typical web properties Often used for mobile applications as the user is presented with new views as they performance navigation events | +| [buildSelfDescribingEvent(event)](./node-tracker.buildselfdescribingevent.md) | Build a self-describing event A custom event type, allowing for an event to be tracked using your own custom schema and a data object which conforms to the supplied schema | +| [buildSiteSearch(event)](./node-tracker.buildsitesearch.md) | Build a Site Search Event Used when a user performs a search action on a page | +| [buildSocialInteraction(event)](./node-tracker.buildsocialinteraction.md) | Build a Social Interaction Event Social tracking will be used to track the way users interact with Facebook, Twitter and Google + widgets e.g. to capture “like this” or “tweet this” events. | +| [buildStructEvent(event)](./node-tracker.buildstructevent.md) | Build a Structured Event A classic style of event tracking, allows for easier movement between analytics systems. A loosely typed event, creating a Self Describing event is preferred, but useful for interoperability. | +| [newTracker(trackerConfiguration, emitterConfiguration)](./node-tracker.newtracker.md) | | + +## Interfaces + +| Interface | Description | +| --- | --- | +| [AdClickEvent](./node-tracker.adclickevent.md) | An Ad Click Event Used to track an advertisement click | +| [AdConversionEvent](./node-tracker.adconversionevent.md) | An Ad Conversion Event Used to track an advertisement click | +| [AddToCartEvent](./node-tracker.addtocartevent.md) | An Add To Cart Event For tracking users adding items from a cart on an ecommerce site. | +| [AdImpressionEvent](./node-tracker.adimpressionevent.md) | An Ad Impression Event Used to track an advertisement impression | +| [ConsentGrantedEvent](./node-tracker.consentgrantedevent.md) | A Consent Granted Event Used for tracking when a user grants their consent | +| [ConsentWithdrawnEvent](./node-tracker.consentwithdrawnevent.md) | A Consent Withdrawn Event Used for tracking when a user withdraws their consent | +| [ContextEvent](./node-tracker.contextevent.md) | Argument for [ContextGenerator](./node-tracker.contextgenerator.md) and [ContextFilter](./node-tracker.contextfilter.md) callback | +| [CoreConfiguration](./node-tracker.coreconfiguration.md) | The configuration object for the tracker core library | +| [CorePlugin](./node-tracker.coreplugin.md) | Interface which defines Core Plugins | +| [CorePluginConfiguration](./node-tracker.corepluginconfiguration.md) | The configuration of the plugin to add | +| [DeviceTimestamp](./node-tracker.devicetimestamp.md) | A representation of a Device Timestamp (dtm) | +| [EcommerceTransactionEvent](./node-tracker.ecommercetransactionevent.md) | An Ecommerce Transaction Event Allows for tracking common ecommerce events, this event is usually used when a customer completes a transaction. | +| [EcommerceTransactionItemEvent](./node-tracker.ecommercetransactionitemevent.md) | An Ecommerce Transaction Item Related to the [EcommerceTransactionEvent](./node-tracker.ecommercetransactionevent.md) Each Ecommerce Transaction may contain one or more EcommerceTransactionItem events | +| [Emitter](./node-tracker.emitter.md) | Emitter is responsible for sending events to the collector. It manages the event queue and sends events in batches depending on configuration. | +| [EmitterConfiguration](./node-tracker.emitterconfiguration.md) | | +| [EmitterConfigurationBase](./node-tracker.emitterconfigurationbase.md) | | +| [EventPayloadAndContext](./node-tracker.eventpayloadandcontext.md) | Interface for returning a built event (PayloadBuilder) and context (Array of SelfDescribingJson). | +| [EventStore](./node-tracker.eventstore.md) | EventStore allows storing and retrieving events before they are sent to the collector | +| [EventStoreConfiguration](./node-tracker.eventstoreconfiguration.md) | | +| [EventStoreIterator](./node-tracker.eventstoreiterator.md) | EventStoreIterator allows iterating over all events in the store. | +| [EventStorePayload](./node-tracker.eventstorepayload.md) | | +| [FormFocusOrChangeEvent](./node-tracker.formfocusorchangeevent.md) | Represents either a Form Focus or Form Change event When a user focuses on a form element or when a user makes a change to a form element. | +| [FormSubmissionEvent](./node-tracker.formsubmissionevent.md) | A Form Submission Event Used to track when a user submits a form | +| [LinkClickEvent](./node-tracker.linkclickevent.md) | A Link Click Event Used when a user clicks on a link on a webpage, typically an anchor tag <a> | +| [Logger](./node-tracker.logger.md) | | +| [PagePingEvent](./node-tracker.pagepingevent.md) | A Page Ping Event Fires when activity tracking is enabled in the browser. Tracks same information as the last tracked Page View and includes scroll information from the current page view | +| [PageViewEvent](./node-tracker.pageviewevent.md) | A Page View Event Represents a Page View, which is typically fired as soon as possible when a web page is loaded within the users browser. Often also fired on "virtual page views" within Single Page Applications (SPA). | +| [PayloadBuilder](./node-tracker.payloadbuilder.md) | Interface for mutable object encapsulating tracker payload | +| [RemoveFromCartEvent](./node-tracker.removefromcartevent.md) | An Remove To Cart Event For tracking users removing items from a cart on an ecommerce site. | +| [RuleSet](./node-tracker.ruleset.md) | A ruleset has accept or reject properties that contain rules for matching Iglu schema URIs | +| [ScreenViewEvent](./node-tracker.screenviewevent.md) | A Screen View Event Similar to a Page View but less focused on typical web properties Often used for mobile applications as the user is presented with new views as they performance navigation events | +| [SelfDescribingEvent](./node-tracker.selfdescribingevent.md) | A Self Describing Event A custom event type, allowing for an event to be tracked using your own custom schema and a data object which conforms to the supplied schema | +| [SiteSearchEvent](./node-tracker.sitesearchevent.md) | A Site Search Event Used when a user performs a search action on a page | +| [SocialInteractionEvent](./node-tracker.socialinteractionevent.md) | A Social Interaction Event Social tracking will be used to track the way users interact with Facebook, Twitter and Google + widgets e.g. to capture “like this” or “tweet this” events. | +| [StructuredEvent](./node-tracker.structuredevent.md) | A Structured Event A classic style of event tracking, allows for easier movement between analytics systems. A loosely typed event, creating a Self Describing event is preferred, but useful for interoperability. | +| [Tracker](./node-tracker.tracker.md) | | +| [TrackerConfiguration](./node-tracker.trackerconfiguration.md) | | +| [TrackerCore](./node-tracker.trackercore.md) | Export interface containing all Core functions | +| [TrueTimestamp](./node-tracker.truetimestamp.md) | A representation of a True Timestamp (ttm) | + +## Variables + +| Variable | Description | +| --- | --- | +| [version](./node-tracker.version.md) | | + +## Type Aliases + +| Type Alias | Description | +| --- | --- | +| [ConditionalContextProvider](./node-tracker.conditionalcontextprovider.md) | Conditional context providers are two element arrays used to decide when to attach contexts, where: - the first element is some conditional criterion - the second element is any number of context primitives | +| [ContextFilter](./node-tracker.contextfilter.md) | A context filter is a user-supplied callback that is evaluated for each event to determine if the context associated with the filter should be attached to the event | +| [ContextGenerator](./node-tracker.contextgenerator.md) | A context generator is a user-supplied callback that is evaluated for each event to allow an additional context to be dynamically attached to the event | +| [ContextPrimitive](./node-tracker.contextprimitive.md) | A context primitive is either a self-describing JSON or a context generator | +| [CustomEmitter](./node-tracker.customemitter.md) | | +| [EventBatch](./node-tracker.eventbatch.md) | A collection of event payloads which are sent to the collector. | +| [EventJson](./node-tracker.eventjson.md) | An array of tuples which represents the unprocessed JSON to be added to the Payload | +| [EventJsonWithKeys](./node-tracker.eventjsonwithkeys.md) | A tuple which represents the unprocessed JSON to be added to the Payload | +| [EventMethod](./node-tracker.eventmethod.md) | | +| [FilterProvider](./node-tracker.filterprovider.md) | A filter provider is a tuple that has two parts: a context filter and the context primitive(s) If the context filter evaluates to true, the tracker will attach the context primitive(s) | +| [FormElement](./node-tracker.formelement.md) | A representation of an element within a form | +| [JsonProcessor](./node-tracker.jsonprocessor.md) | A function which will processor the Json onto the injected PayloadBuilder | +| [NodeEmitterConfiguration](./node-tracker.nodeemitterconfiguration.md) | | +| [Payload](./node-tracker.payload.md) | Type for a Payload dictionary | +| [RequestFailure](./node-tracker.requestfailure.md) | The data that will be available to the onRequestFailure callback | +| [RuleSetProvider](./node-tracker.rulesetprovider.md) | A ruleset provider is aa tuple that has two parts: a ruleset and the context primitive(s) If the ruleset allows the current event schema URI, the tracker will attach the context primitive(s) | +| [SelfDescribingJson](./node-tracker.selfdescribingjson.md) | Export interface for any Self-Describing JSON such as context or Self Describing events | +| [Timestamp](./node-tracker.timestamp.md) | Algebraic datatype representing possible timestamp type choice | + diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.newtracker.md b/api-docs/docs/node-tracker/markdown/node-tracker.newtracker.md new file mode 100644 index 000000000..380cb6c16 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.newtracker.md @@ -0,0 +1,23 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [newTracker](./node-tracker.newtracker.md) + +## newTracker() function + +Signature: + +```typescript +declare function newTracker(trackerConfiguration: TrackerConfiguration, emitterConfiguration: NodeEmitterConfiguration | NodeEmitterConfiguration[]): Tracker; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| trackerConfiguration | TrackerConfiguration | | +| emitterConfiguration | NodeEmitterConfiguration \| NodeEmitterConfiguration\[\] | | + +Returns: + +Tracker + diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.nodeemitterconfiguration.md b/api-docs/docs/node-tracker/markdown/node-tracker.nodeemitterconfiguration.md new file mode 100644 index 000000000..258018399 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.nodeemitterconfiguration.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [NodeEmitterConfiguration](./node-tracker.nodeemitterconfiguration.md) + +## NodeEmitterConfiguration type + +Signature: + +```typescript +type NodeEmitterConfiguration = CustomEmitter | EmitterConfiguration; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.pagepingevent.maxxoffset.md b/api-docs/docs/node-tracker/markdown/node-tracker.pagepingevent.maxxoffset.md new file mode 100644 index 000000000..d34b5f1ed --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.pagepingevent.maxxoffset.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [PagePingEvent](./node-tracker.pagepingevent.md) > [maxXOffset](./node-tracker.pagepingevent.maxxoffset.md) + +## PagePingEvent.maxXOffset property + +The maximum X scroll position for the current page view + +Signature: + +```typescript +maxXOffset?: number; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.pagepingevent.maxyoffset.md b/api-docs/docs/node-tracker/markdown/node-tracker.pagepingevent.maxyoffset.md new file mode 100644 index 000000000..06ccfd1fa --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.pagepingevent.maxyoffset.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [PagePingEvent](./node-tracker.pagepingevent.md) > [maxYOffset](./node-tracker.pagepingevent.maxyoffset.md) + +## PagePingEvent.maxYOffset property + +The maximum Y scroll position for the current page view + +Signature: + +```typescript +maxYOffset?: number; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.pagepingevent.md b/api-docs/docs/node-tracker/markdown/node-tracker.pagepingevent.md new file mode 100644 index 000000000..70195df4e --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.pagepingevent.md @@ -0,0 +1,24 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [PagePingEvent](./node-tracker.pagepingevent.md) + +## PagePingEvent interface + +A Page Ping Event Fires when activity tracking is enabled in the browser. Tracks same information as the last tracked Page View and includes scroll information from the current page view + +Signature: + +```typescript +interface PagePingEvent extends PageViewEvent +``` +Extends: PageViewEvent + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [maxXOffset?](./node-tracker.pagepingevent.maxxoffset.md) | number | (Optional) The maximum X scroll position for the current page view | +| [maxYOffset?](./node-tracker.pagepingevent.maxyoffset.md) | number | (Optional) The maximum Y scroll position for the current page view | +| [minXOffset?](./node-tracker.pagepingevent.minxoffset.md) | number | (Optional) The minimum X scroll position for the current page view | +| [minYOffset?](./node-tracker.pagepingevent.minyoffset.md) | number | (Optional) The minimum Y scroll position for the current page view | + diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.pagepingevent.minxoffset.md b/api-docs/docs/node-tracker/markdown/node-tracker.pagepingevent.minxoffset.md new file mode 100644 index 000000000..5b54313d6 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.pagepingevent.minxoffset.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [PagePingEvent](./node-tracker.pagepingevent.md) > [minXOffset](./node-tracker.pagepingevent.minxoffset.md) + +## PagePingEvent.minXOffset property + +The minimum X scroll position for the current page view + +Signature: + +```typescript +minXOffset?: number; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.pagepingevent.minyoffset.md b/api-docs/docs/node-tracker/markdown/node-tracker.pagepingevent.minyoffset.md new file mode 100644 index 000000000..ea3e5a487 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.pagepingevent.minyoffset.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [PagePingEvent](./node-tracker.pagepingevent.md) > [minYOffset](./node-tracker.pagepingevent.minyoffset.md) + +## PagePingEvent.minYOffset property + +The minimum Y scroll position for the current page view + +Signature: + +```typescript +minYOffset?: number; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.pageviewevent.md b/api-docs/docs/node-tracker/markdown/node-tracker.pageviewevent.md new file mode 100644 index 000000000..68379fae6 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.pageviewevent.md @@ -0,0 +1,22 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [PageViewEvent](./node-tracker.pageviewevent.md) + +## PageViewEvent interface + +A Page View Event Represents a Page View, which is typically fired as soon as possible when a web page is loaded within the users browser. Often also fired on "virtual page views" within Single Page Applications (SPA). + +Signature: + +```typescript +interface PageViewEvent +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [pageTitle?](./node-tracker.pageviewevent.pagetitle.md) | string \| null | (Optional) The current page title in the users browser | +| [pageUrl?](./node-tracker.pageviewevent.pageurl.md) | string \| null | (Optional) The current URL visible in the users browser | +| [referrer?](./node-tracker.pageviewevent.referrer.md) | string \| null | (Optional) The URL of the referring page | + diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.pageviewevent.pagetitle.md b/api-docs/docs/node-tracker/markdown/node-tracker.pageviewevent.pagetitle.md similarity index 50% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.pageviewevent.pagetitle.md rename to api-docs/docs/node-tracker/markdown/node-tracker.pageviewevent.pagetitle.md index b7bf7a9e9..45d440241 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.pageviewevent.pagetitle.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.pageviewevent.pagetitle.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PageViewEvent](./react-native-tracker.pageviewevent.md) > [pageTitle](./react-native-tracker.pageviewevent.pagetitle.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [PageViewEvent](./node-tracker.pageviewevent.md) > [pageTitle](./node-tracker.pageviewevent.pagetitle.md) ## PageViewEvent.pageTitle property diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.pageviewevent.pageurl.md b/api-docs/docs/node-tracker/markdown/node-tracker.pageviewevent.pageurl.md similarity index 50% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.pageviewevent.pageurl.md rename to api-docs/docs/node-tracker/markdown/node-tracker.pageviewevent.pageurl.md index 048e84af6..dff6ff16f 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.pageviewevent.pageurl.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.pageviewevent.pageurl.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PageViewEvent](./react-native-tracker.pageviewevent.md) > [pageUrl](./react-native-tracker.pageviewevent.pageurl.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [PageViewEvent](./node-tracker.pageviewevent.md) > [pageUrl](./node-tracker.pageviewevent.pageurl.md) ## PageViewEvent.pageUrl property diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.pageviewevent.referrer.md b/api-docs/docs/node-tracker/markdown/node-tracker.pageviewevent.referrer.md new file mode 100644 index 000000000..510d0ba44 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.pageviewevent.referrer.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [PageViewEvent](./node-tracker.pageviewevent.md) > [referrer](./node-tracker.pageviewevent.referrer.md) + +## PageViewEvent.referrer property + +The URL of the referring page + +Signature: + +```typescript +referrer?: string | null; +``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.payload.md b/api-docs/docs/node-tracker/markdown/node-tracker.payload.md similarity index 58% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.payload.md rename to api-docs/docs/node-tracker/markdown/node-tracker.payload.md index 37d76b5ad..69b929d26 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.payload.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.payload.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [Payload](./react-native-tracker.payload.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [Payload](./node-tracker.payload.md) ## Payload type diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.payloadbuilder.add.md b/api-docs/docs/node-tracker/markdown/node-tracker.payloadbuilder.add.md similarity index 50% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.payloadbuilder.add.md rename to api-docs/docs/node-tracker/markdown/node-tracker.payloadbuilder.add.md index 74190086a..979815d0b 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.payloadbuilder.add.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.payloadbuilder.add.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PayloadBuilder](./react-native-tracker.payloadbuilder.md) > [add](./react-native-tracker.payloadbuilder.add.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [PayloadBuilder](./node-tracker.payloadbuilder.md) > [add](./node-tracker.payloadbuilder.add.md) ## PayloadBuilder.add property diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.payloadbuilder.addcontextentity.md b/api-docs/docs/node-tracker/markdown/node-tracker.payloadbuilder.addcontextentity.md similarity index 53% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.payloadbuilder.addcontextentity.md rename to api-docs/docs/node-tracker/markdown/node-tracker.payloadbuilder.addcontextentity.md index 4b6346ea6..84929af64 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.payloadbuilder.addcontextentity.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.payloadbuilder.addcontextentity.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PayloadBuilder](./react-native-tracker.payloadbuilder.md) > [addContextEntity](./react-native-tracker.payloadbuilder.addcontextentity.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [PayloadBuilder](./node-tracker.payloadbuilder.md) > [addContextEntity](./node-tracker.payloadbuilder.addcontextentity.md) ## PayloadBuilder.addContextEntity property diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.payloadbuilder.adddict.md b/api-docs/docs/node-tracker/markdown/node-tracker.payloadbuilder.adddict.md similarity index 50% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.payloadbuilder.adddict.md rename to api-docs/docs/node-tracker/markdown/node-tracker.payloadbuilder.adddict.md index 720e5fbea..a4fa7da8a 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.payloadbuilder.adddict.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.payloadbuilder.adddict.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PayloadBuilder](./react-native-tracker.payloadbuilder.md) > [addDict](./react-native-tracker.payloadbuilder.adddict.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [PayloadBuilder](./node-tracker.payloadbuilder.md) > [addDict](./node-tracker.payloadbuilder.adddict.md) ## PayloadBuilder.addDict property diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.payloadbuilder.addjson.md b/api-docs/docs/node-tracker/markdown/node-tracker.payloadbuilder.addjson.md similarity index 57% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.payloadbuilder.addjson.md rename to api-docs/docs/node-tracker/markdown/node-tracker.payloadbuilder.addjson.md index fb29f5c20..0e572fb3c 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.payloadbuilder.addjson.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.payloadbuilder.addjson.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PayloadBuilder](./react-native-tracker.payloadbuilder.md) > [addJson](./react-native-tracker.payloadbuilder.addjson.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [PayloadBuilder](./node-tracker.payloadbuilder.md) > [addJson](./node-tracker.payloadbuilder.addjson.md) ## PayloadBuilder.addJson property diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.payloadbuilder.build.md b/api-docs/docs/node-tracker/markdown/node-tracker.payloadbuilder.build.md new file mode 100644 index 000000000..da0bc05e3 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.payloadbuilder.build.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [PayloadBuilder](./node-tracker.payloadbuilder.md) > [build](./node-tracker.payloadbuilder.build.md) + +## PayloadBuilder.build property + +Builds and returns the Payload + +Signature: + +```typescript +build: () => Payload; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.payloadbuilder.getjson.md b/api-docs/docs/node-tracker/markdown/node-tracker.payloadbuilder.getjson.md new file mode 100644 index 000000000..515efac39 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.payloadbuilder.getjson.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [PayloadBuilder](./node-tracker.payloadbuilder.md) > [getJson](./node-tracker.payloadbuilder.getjson.md) + +## PayloadBuilder.getJson property + +Gets all JSON objects added to payload + +Signature: + +```typescript +getJson: () => EventJson; +``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.payloadbuilder.getpayload.md b/api-docs/docs/node-tracker/markdown/node-tracker.payloadbuilder.getpayload.md similarity index 51% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.payloadbuilder.getpayload.md rename to api-docs/docs/node-tracker/markdown/node-tracker.payloadbuilder.getpayload.md index f76229127..0c704fd6b 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.payloadbuilder.getpayload.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.payloadbuilder.getpayload.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PayloadBuilder](./react-native-tracker.payloadbuilder.md) > [getPayload](./react-native-tracker.payloadbuilder.getpayload.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [PayloadBuilder](./node-tracker.payloadbuilder.md) > [getPayload](./node-tracker.payloadbuilder.getpayload.md) ## PayloadBuilder.getPayload property diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.payloadbuilder.md b/api-docs/docs/node-tracker/markdown/node-tracker.payloadbuilder.md new file mode 100644 index 000000000..ecda8875f --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.payloadbuilder.md @@ -0,0 +1,27 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [PayloadBuilder](./node-tracker.payloadbuilder.md) + +## PayloadBuilder interface + +Interface for mutable object encapsulating tracker payload + +Signature: + +```typescript +interface PayloadBuilder +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [add](./node-tracker.payloadbuilder.add.md) | (key: string, value: unknown) => void | Adds an entry to the Payload | +| [addContextEntity](./node-tracker.payloadbuilder.addcontextentity.md) | (entity: SelfDescribingJson) => void | Caches a context entity to be added to payload on build | +| [addDict](./node-tracker.payloadbuilder.adddict.md) | (dict: Payload) => void | Merges a payload into the existing payload | +| [addJson](./node-tracker.payloadbuilder.addjson.md) | (keyIfEncoded: string, keyIfNotEncoded: string, json: Record<string, unknown>) => void | Caches a JSON object to be added to payload on build | +| [build](./node-tracker.payloadbuilder.build.md) | () => Payload | Builds and returns the Payload | +| [getJson](./node-tracker.payloadbuilder.getjson.md) | () => EventJson | Gets all JSON objects added to payload | +| [getPayload](./node-tracker.payloadbuilder.getpayload.md) | () => Payload | Gets the current payload, before cached JSON is processed | +| [withJsonProcessor](./node-tracker.payloadbuilder.withjsonprocessor.md) | (jsonProcessor: JsonProcessor) => void | Adds a function which will be executed when building the payload to process the JSON which has been added to this payload | + diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.payloadbuilder.withjsonprocessor.md b/api-docs/docs/node-tracker/markdown/node-tracker.payloadbuilder.withjsonprocessor.md similarity index 58% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.payloadbuilder.withjsonprocessor.md rename to api-docs/docs/node-tracker/markdown/node-tracker.payloadbuilder.withjsonprocessor.md index 247963bea..993c4d7af 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.payloadbuilder.withjsonprocessor.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.payloadbuilder.withjsonprocessor.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PayloadBuilder](./react-native-tracker.payloadbuilder.md) > [withJsonProcessor](./react-native-tracker.payloadbuilder.withjsonprocessor.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [PayloadBuilder](./node-tracker.payloadbuilder.md) > [withJsonProcessor](./node-tracker.payloadbuilder.withjsonprocessor.md) ## PayloadBuilder.withJsonProcessor property diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.removefromcartevent.category.md b/api-docs/docs/node-tracker/markdown/node-tracker.removefromcartevent.category.md new file mode 100644 index 000000000..78fd85461 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.removefromcartevent.category.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [RemoveFromCartEvent](./node-tracker.removefromcartevent.md) > [category](./node-tracker.removefromcartevent.category.md) + +## RemoveFromCartEvent.category property + +The category of the product + +Signature: + +```typescript +category?: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.removefromcartevent.currency.md b/api-docs/docs/node-tracker/markdown/node-tracker.removefromcartevent.currency.md new file mode 100644 index 000000000..49749c5dc --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.removefromcartevent.currency.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [RemoveFromCartEvent](./node-tracker.removefromcartevent.md) > [currency](./node-tracker.removefromcartevent.currency.md) + +## RemoveFromCartEvent.currency property + +The currency of the product + +Signature: + +```typescript +currency?: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.removefromcartevent.md b/api-docs/docs/node-tracker/markdown/node-tracker.removefromcartevent.md new file mode 100644 index 000000000..2ce7163be --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.removefromcartevent.md @@ -0,0 +1,25 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [RemoveFromCartEvent](./node-tracker.removefromcartevent.md) + +## RemoveFromCartEvent interface + +An Remove To Cart Event For tracking users removing items from a cart on an ecommerce site. + +Signature: + +```typescript +interface RemoveFromCartEvent +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [category?](./node-tracker.removefromcartevent.category.md) | string | (Optional) The category of the product | +| [currency?](./node-tracker.removefromcartevent.currency.md) | string | (Optional) The currency of the product | +| [name?](./node-tracker.removefromcartevent.name.md) | string | (Optional) The name of the product | +| [quantity](./node-tracker.removefromcartevent.quantity.md) | number | The number removed from the cart | +| [sku](./node-tracker.removefromcartevent.sku.md) | string | A Product Stock Keeping Unit (SKU) | +| [unitPrice?](./node-tracker.removefromcartevent.unitprice.md) | number | (Optional) The price of the product | + diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.removefromcartevent.name.md b/api-docs/docs/node-tracker/markdown/node-tracker.removefromcartevent.name.md new file mode 100644 index 000000000..f7fb450b1 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.removefromcartevent.name.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [RemoveFromCartEvent](./node-tracker.removefromcartevent.md) > [name](./node-tracker.removefromcartevent.name.md) + +## RemoveFromCartEvent.name property + +The name of the product + +Signature: + +```typescript +name?: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.removefromcartevent.quantity.md b/api-docs/docs/node-tracker/markdown/node-tracker.removefromcartevent.quantity.md new file mode 100644 index 000000000..718048c88 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.removefromcartevent.quantity.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [RemoveFromCartEvent](./node-tracker.removefromcartevent.md) > [quantity](./node-tracker.removefromcartevent.quantity.md) + +## RemoveFromCartEvent.quantity property + +The number removed from the cart + +Signature: + +```typescript +quantity: number; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.removefromcartevent.sku.md b/api-docs/docs/node-tracker/markdown/node-tracker.removefromcartevent.sku.md new file mode 100644 index 000000000..f8314446e --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.removefromcartevent.sku.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [RemoveFromCartEvent](./node-tracker.removefromcartevent.md) > [sku](./node-tracker.removefromcartevent.sku.md) + +## RemoveFromCartEvent.sku property + +A Product Stock Keeping Unit (SKU) + +Signature: + +```typescript +sku: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.removefromcartevent.unitprice.md b/api-docs/docs/node-tracker/markdown/node-tracker.removefromcartevent.unitprice.md new file mode 100644 index 000000000..db5c2bf06 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.removefromcartevent.unitprice.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [RemoveFromCartEvent](./node-tracker.removefromcartevent.md) > [unitPrice](./node-tracker.removefromcartevent.unitprice.md) + +## RemoveFromCartEvent.unitPrice property + +The price of the product + +Signature: + +```typescript +unitPrice?: number; +``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.requestfailure.md b/api-docs/docs/node-tracker/markdown/node-tracker.requestfailure.md similarity index 66% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.requestfailure.md rename to api-docs/docs/node-tracker/markdown/node-tracker.requestfailure.md index 063d363fc..63f977207 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.requestfailure.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.requestfailure.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [RequestFailure](./react-native-tracker.requestfailure.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [RequestFailure](./node-tracker.requestfailure.md) ## RequestFailure type diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.ruleset.accept.md b/api-docs/docs/node-tracker/markdown/node-tracker.ruleset.accept.md new file mode 100644 index 000000000..2c29e5003 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.ruleset.accept.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [RuleSet](./node-tracker.ruleset.md) > [accept](./node-tracker.ruleset.accept.md) + +## RuleSet.accept property + +Signature: + +```typescript +accept?: Array | string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.ruleset.md b/api-docs/docs/node-tracker/markdown/node-tracker.ruleset.md new file mode 100644 index 000000000..451a5a5dd --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.ruleset.md @@ -0,0 +1,21 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [RuleSet](./node-tracker.ruleset.md) + +## RuleSet interface + +A ruleset has accept or reject properties that contain rules for matching Iglu schema URIs + +Signature: + +```typescript +interface RuleSet +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [accept?](./node-tracker.ruleset.accept.md) | Array<string> \| string | (Optional) | +| [reject?](./node-tracker.ruleset.reject.md) | Array<string> \| string | (Optional) | + diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.ruleset.reject.md b/api-docs/docs/node-tracker/markdown/node-tracker.ruleset.reject.md new file mode 100644 index 000000000..393a8b016 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.ruleset.reject.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [RuleSet](./node-tracker.ruleset.md) > [reject](./node-tracker.ruleset.reject.md) + +## RuleSet.reject property + +Signature: + +```typescript +reject?: Array | string; +``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.rulesetprovider.md b/api-docs/docs/node-tracker/markdown/node-tracker.rulesetprovider.md similarity index 71% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.rulesetprovider.md rename to api-docs/docs/node-tracker/markdown/node-tracker.rulesetprovider.md index a9798a553..41a471fb7 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.rulesetprovider.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.rulesetprovider.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [RuleSetProvider](./react-native-tracker.rulesetprovider.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [RuleSetProvider](./node-tracker.rulesetprovider.md) ## RuleSetProvider type diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.screenviewevent.id.md b/api-docs/docs/node-tracker/markdown/node-tracker.screenviewevent.id.md new file mode 100644 index 000000000..5d48b9793 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.screenviewevent.id.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [ScreenViewEvent](./node-tracker.screenviewevent.md) > [id](./node-tracker.screenviewevent.id.md) + +## ScreenViewEvent.id property + +The identifier of the screen + +Signature: + +```typescript +id?: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.screenviewevent.md b/api-docs/docs/node-tracker/markdown/node-tracker.screenviewevent.md new file mode 100644 index 000000000..7ae8e119f --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.screenviewevent.md @@ -0,0 +1,21 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [ScreenViewEvent](./node-tracker.screenviewevent.md) + +## ScreenViewEvent interface + +A Screen View Event Similar to a Page View but less focused on typical web properties Often used for mobile applications as the user is presented with new views as they performance navigation events + +Signature: + +```typescript +interface ScreenViewEvent +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [id?](./node-tracker.screenviewevent.id.md) | string | (Optional) The identifier of the screen | +| [name?](./node-tracker.screenviewevent.name.md) | string | (Optional) The name of the screen | + diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.screenviewevent.name.md b/api-docs/docs/node-tracker/markdown/node-tracker.screenviewevent.name.md new file mode 100644 index 000000000..698ad7b77 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.screenviewevent.name.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [ScreenViewEvent](./node-tracker.screenviewevent.md) > [name](./node-tracker.screenviewevent.name.md) + +## ScreenViewEvent.name property + +The name of the screen + +Signature: + +```typescript +name?: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.selfdescribingevent.event.md b/api-docs/docs/node-tracker/markdown/node-tracker.selfdescribingevent.event.md new file mode 100644 index 000000000..d66b67808 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.selfdescribingevent.event.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [SelfDescribingEvent](./node-tracker.selfdescribingevent.md) > [event](./node-tracker.selfdescribingevent.event.md) + +## SelfDescribingEvent.event property + +The Self Describing JSON which describes the event + +Signature: + +```typescript +event: SelfDescribingJson; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.selfdescribingevent.md b/api-docs/docs/node-tracker/markdown/node-tracker.selfdescribingevent.md new file mode 100644 index 000000000..47653d298 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.selfdescribingevent.md @@ -0,0 +1,20 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [SelfDescribingEvent](./node-tracker.selfdescribingevent.md) + +## SelfDescribingEvent interface + +A Self Describing Event A custom event type, allowing for an event to be tracked using your own custom schema and a data object which conforms to the supplied schema + +Signature: + +```typescript +interface SelfDescribingEvent> +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [event](./node-tracker.selfdescribingevent.event.md) | SelfDescribingJson<T> | The Self Describing JSON which describes the event | + diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.selfdescribingjson.md b/api-docs/docs/node-tracker/markdown/node-tracker.selfdescribingjson.md new file mode 100644 index 000000000..14c5d7379 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.selfdescribingjson.md @@ -0,0 +1,16 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [SelfDescribingJson](./node-tracker.selfdescribingjson.md) + +## SelfDescribingJson type + +Export interface for any Self-Describing JSON such as context or Self Describing events + +Signature: + +```typescript +type SelfDescribingJson> = { + schema: string; + data: T extends any[] ? never : T extends {} ? T : never; +}; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.sitesearchevent.filters.md b/api-docs/docs/node-tracker/markdown/node-tracker.sitesearchevent.filters.md new file mode 100644 index 000000000..e963f101d --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.sitesearchevent.filters.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [SiteSearchEvent](./node-tracker.sitesearchevent.md) > [filters](./node-tracker.sitesearchevent.filters.md) + +## SiteSearchEvent.filters property + +Any filters which have been applied to the search + +Signature: + +```typescript +filters?: Record; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.sitesearchevent.md b/api-docs/docs/node-tracker/markdown/node-tracker.sitesearchevent.md new file mode 100644 index 000000000..b412bbd27 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.sitesearchevent.md @@ -0,0 +1,23 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [SiteSearchEvent](./node-tracker.sitesearchevent.md) + +## SiteSearchEvent interface + +A Site Search Event Used when a user performs a search action on a page + +Signature: + +```typescript +interface SiteSearchEvent +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [filters?](./node-tracker.sitesearchevent.filters.md) | Record<string, string \| boolean> | (Optional) Any filters which have been applied to the search | +| [pageResults?](./node-tracker.sitesearchevent.pageresults.md) | number | (Optional) The number of visible results on the page | +| [terms](./node-tracker.sitesearchevent.terms.md) | Array<string> | The terms of the search | +| [totalResults?](./node-tracker.sitesearchevent.totalresults.md) | number | (Optional) The total number of results for this search | + diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.sitesearchevent.pageresults.md b/api-docs/docs/node-tracker/markdown/node-tracker.sitesearchevent.pageresults.md new file mode 100644 index 000000000..a30c5d6ed --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.sitesearchevent.pageresults.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [SiteSearchEvent](./node-tracker.sitesearchevent.md) > [pageResults](./node-tracker.sitesearchevent.pageresults.md) + +## SiteSearchEvent.pageResults property + +The number of visible results on the page + +Signature: + +```typescript +pageResults?: number; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.sitesearchevent.terms.md b/api-docs/docs/node-tracker/markdown/node-tracker.sitesearchevent.terms.md new file mode 100644 index 000000000..6f4a45ceb --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.sitesearchevent.terms.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [SiteSearchEvent](./node-tracker.sitesearchevent.md) > [terms](./node-tracker.sitesearchevent.terms.md) + +## SiteSearchEvent.terms property + +The terms of the search + +Signature: + +```typescript +terms: Array; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.sitesearchevent.totalresults.md b/api-docs/docs/node-tracker/markdown/node-tracker.sitesearchevent.totalresults.md new file mode 100644 index 000000000..7b79bd694 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.sitesearchevent.totalresults.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [SiteSearchEvent](./node-tracker.sitesearchevent.md) > [totalResults](./node-tracker.sitesearchevent.totalresults.md) + +## SiteSearchEvent.totalResults property + +The total number of results for this search + +Signature: + +```typescript +totalResults?: number; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.socialinteractionevent.action.md b/api-docs/docs/node-tracker/markdown/node-tracker.socialinteractionevent.action.md new file mode 100644 index 000000000..b0f8c0975 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.socialinteractionevent.action.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [SocialInteractionEvent](./node-tracker.socialinteractionevent.md) > [action](./node-tracker.socialinteractionevent.action.md) + +## SocialInteractionEvent.action property + +Social action performed + +Signature: + +```typescript +action: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.socialinteractionevent.md b/api-docs/docs/node-tracker/markdown/node-tracker.socialinteractionevent.md new file mode 100644 index 000000000..b079030fa --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.socialinteractionevent.md @@ -0,0 +1,22 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [SocialInteractionEvent](./node-tracker.socialinteractionevent.md) + +## SocialInteractionEvent interface + +A Social Interaction Event Social tracking will be used to track the way users interact with Facebook, Twitter and Google + widgets e.g. to capture “like this” or “tweet this” events. + +Signature: + +```typescript +interface SocialInteractionEvent +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [action](./node-tracker.socialinteractionevent.action.md) | string | Social action performed | +| [network](./node-tracker.socialinteractionevent.network.md) | string | Social network | +| [target?](./node-tracker.socialinteractionevent.target.md) | string | (Optional) Object social action is performed on | + diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.socialinteractionevent.network.md b/api-docs/docs/node-tracker/markdown/node-tracker.socialinteractionevent.network.md new file mode 100644 index 000000000..a5301b629 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.socialinteractionevent.network.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [SocialInteractionEvent](./node-tracker.socialinteractionevent.md) > [network](./node-tracker.socialinteractionevent.network.md) + +## SocialInteractionEvent.network property + +Social network + +Signature: + +```typescript +network: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.socialinteractionevent.target.md b/api-docs/docs/node-tracker/markdown/node-tracker.socialinteractionevent.target.md new file mode 100644 index 000000000..a809bc4bb --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.socialinteractionevent.target.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [SocialInteractionEvent](./node-tracker.socialinteractionevent.md) > [target](./node-tracker.socialinteractionevent.target.md) + +## SocialInteractionEvent.target property + +Object social action is performed on + +Signature: + +```typescript +target?: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.structuredevent.action.md b/api-docs/docs/node-tracker/markdown/node-tracker.structuredevent.action.md new file mode 100644 index 000000000..7ecfbb207 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.structuredevent.action.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [StructuredEvent](./node-tracker.structuredevent.md) > [action](./node-tracker.structuredevent.action.md) + +## StructuredEvent.action property + +Signature: + +```typescript +action: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.structuredevent.category.md b/api-docs/docs/node-tracker/markdown/node-tracker.structuredevent.category.md new file mode 100644 index 000000000..663b2514c --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.structuredevent.category.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [StructuredEvent](./node-tracker.structuredevent.md) > [category](./node-tracker.structuredevent.category.md) + +## StructuredEvent.category property + +Signature: + +```typescript +category: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.structuredevent.label.md b/api-docs/docs/node-tracker/markdown/node-tracker.structuredevent.label.md new file mode 100644 index 000000000..c92653178 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.structuredevent.label.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [StructuredEvent](./node-tracker.structuredevent.md) > [label](./node-tracker.structuredevent.label.md) + +## StructuredEvent.label property + +Signature: + +```typescript +label?: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.structuredevent.md b/api-docs/docs/node-tracker/markdown/node-tracker.structuredevent.md new file mode 100644 index 000000000..f42afa8ac --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.structuredevent.md @@ -0,0 +1,24 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [StructuredEvent](./node-tracker.structuredevent.md) + +## StructuredEvent interface + +A Structured Event A classic style of event tracking, allows for easier movement between analytics systems. A loosely typed event, creating a Self Describing event is preferred, but useful for interoperability. + +Signature: + +```typescript +interface StructuredEvent +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [action](./node-tracker.structuredevent.action.md) | string | | +| [category](./node-tracker.structuredevent.category.md) | string | | +| [label?](./node-tracker.structuredevent.label.md) | string | (Optional) | +| [property?](./node-tracker.structuredevent.property.md) | string | (Optional) | +| [value?](./node-tracker.structuredevent.value.md) | number | (Optional) | + diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.structuredevent.property.md b/api-docs/docs/node-tracker/markdown/node-tracker.structuredevent.property.md new file mode 100644 index 000000000..3cf1a6ba1 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.structuredevent.property.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [StructuredEvent](./node-tracker.structuredevent.md) > [property](./node-tracker.structuredevent.property.md) + +## StructuredEvent.property property + +Signature: + +```typescript +property?: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.structuredevent.value.md b/api-docs/docs/node-tracker/markdown/node-tracker.structuredevent.value.md new file mode 100644 index 000000000..e1d1d056d --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.structuredevent.value.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [StructuredEvent](./node-tracker.structuredevent.md) > [value](./node-tracker.structuredevent.value.md) + +## StructuredEvent.value property + +Signature: + +```typescript +value?: number; +``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.timestamp.md b/api-docs/docs/node-tracker/markdown/node-tracker.timestamp.md similarity index 63% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.timestamp.md rename to api-docs/docs/node-tracker/markdown/node-tracker.timestamp.md index 015586490..0092ffdc2 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.timestamp.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.timestamp.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [Timestamp](./react-native-tracker.timestamp.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [Timestamp](./node-tracker.timestamp.md) ## Timestamp type diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.tracker.flush.md b/api-docs/docs/node-tracker/markdown/node-tracker.tracker.flush.md new file mode 100644 index 000000000..44a151f1b --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.tracker.flush.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [Tracker](./node-tracker.tracker.md) > [flush](./node-tracker.tracker.flush.md) + +## Tracker.flush property + +Calls flush on all emitters in order to send all queued events to the collector + +Signature: + +```typescript +flush: () => Promise; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.tracker.md b/api-docs/docs/node-tracker/markdown/node-tracker.tracker.md new file mode 100644 index 000000000..04f6d564b --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.tracker.md @@ -0,0 +1,23 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [Tracker](./node-tracker.tracker.md) + +## Tracker interface + +Signature: + +```typescript +interface Tracker extends TrackerCore +``` +Extends: TrackerCore + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [flush](./node-tracker.tracker.flush.md) | () => Promise<void> | Calls flush on all emitters in order to send all queued events to the collector | +| [setDomainUserId](./node-tracker.tracker.setdomainuserid.md) | (userId: string) => void | Set the domain user ID | +| [setNetworkUserId](./node-tracker.tracker.setnetworkuserid.md) | (userId: string) => void | Set the network user ID | +| [setSessionId](./node-tracker.tracker.setsessionid.md) | (sessionId: string) => void | Set the session ID (domain_sessionid in the atomic events) | +| [setSessionIndex](./node-tracker.tracker.setsessionindex.md) | (sessionIndex: string \| number) => void | Set the session index (domain_sessionidx in the atomic events) | + diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.tracker.setdomainuserid.md b/api-docs/docs/node-tracker/markdown/node-tracker.tracker.setdomainuserid.md new file mode 100644 index 000000000..afa5bbeca --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.tracker.setdomainuserid.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [Tracker](./node-tracker.tracker.md) > [setDomainUserId](./node-tracker.tracker.setdomainuserid.md) + +## Tracker.setDomainUserId property + +Set the domain user ID + +Signature: + +```typescript +setDomainUserId: (userId: string) => void; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.tracker.setnetworkuserid.md b/api-docs/docs/node-tracker/markdown/node-tracker.tracker.setnetworkuserid.md new file mode 100644 index 000000000..ae7ff4348 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.tracker.setnetworkuserid.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [Tracker](./node-tracker.tracker.md) > [setNetworkUserId](./node-tracker.tracker.setnetworkuserid.md) + +## Tracker.setNetworkUserId property + +Set the network user ID + +Signature: + +```typescript +setNetworkUserId: (userId: string) => void; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.tracker.setsessionid.md b/api-docs/docs/node-tracker/markdown/node-tracker.tracker.setsessionid.md new file mode 100644 index 000000000..24cc52945 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.tracker.setsessionid.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [Tracker](./node-tracker.tracker.md) > [setSessionId](./node-tracker.tracker.setsessionid.md) + +## Tracker.setSessionId property + +Set the session ID (`domain_sessionid` in the atomic events) + +Signature: + +```typescript +setSessionId: (sessionId: string) => void; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.tracker.setsessionindex.md b/api-docs/docs/node-tracker/markdown/node-tracker.tracker.setsessionindex.md new file mode 100644 index 000000000..0432007c2 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.tracker.setsessionindex.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [Tracker](./node-tracker.tracker.md) > [setSessionIndex](./node-tracker.tracker.setsessionindex.md) + +## Tracker.setSessionIndex property + +Set the session index (`domain_sessionidx` in the atomic events) + +Signature: + +```typescript +setSessionIndex: (sessionIndex: string | number) => void; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.trackerconfiguration.appid.md b/api-docs/docs/node-tracker/markdown/node-tracker.trackerconfiguration.appid.md new file mode 100644 index 000000000..2db6fb611 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.trackerconfiguration.appid.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [TrackerConfiguration](./node-tracker.trackerconfiguration.md) > [appId](./node-tracker.trackerconfiguration.appid.md) + +## TrackerConfiguration.appId property + +Signature: + +```typescript +appId: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackerconfiguration.encodebase64.md b/api-docs/docs/node-tracker/markdown/node-tracker.trackerconfiguration.encodebase64.md similarity index 51% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.trackerconfiguration.encodebase64.md rename to api-docs/docs/node-tracker/markdown/node-tracker.trackerconfiguration.encodebase64.md index 9e2fcafe8..185fa5a9b 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackerconfiguration.encodebase64.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.trackerconfiguration.encodebase64.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerConfiguration](./react-native-tracker.trackerconfiguration.md) > [encodeBase64](./react-native-tracker.trackerconfiguration.encodebase64.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [TrackerConfiguration](./node-tracker.trackerconfiguration.md) > [encodeBase64](./node-tracker.trackerconfiguration.encodebase64.md) ## TrackerConfiguration.encodeBase64 property diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.trackerconfiguration.md b/api-docs/docs/node-tracker/markdown/node-tracker.trackerconfiguration.md new file mode 100644 index 000000000..a75af36b9 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.trackerconfiguration.md @@ -0,0 +1,20 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [TrackerConfiguration](./node-tracker.trackerconfiguration.md) + +## TrackerConfiguration interface + +Signature: + +```typescript +interface TrackerConfiguration +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [appId](./node-tracker.trackerconfiguration.appid.md) | string | | +| [encodeBase64?](./node-tracker.trackerconfiguration.encodebase64.md) | boolean | (Optional) Whether unstructured events and custom contexts should be base64 encoded. | +| [namespace](./node-tracker.trackerconfiguration.namespace.md) | string | | + diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.trackerconfiguration.namespace.md b/api-docs/docs/node-tracker/markdown/node-tracker.trackerconfiguration.namespace.md new file mode 100644 index 000000000..fefc411bb --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.trackerconfiguration.namespace.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [TrackerConfiguration](./node-tracker.trackerconfiguration.md) > [namespace](./node-tracker.trackerconfiguration.namespace.md) + +## TrackerConfiguration.namespace property + +Signature: + +```typescript +namespace: string; +``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.addglobalcontexts.md b/api-docs/docs/node-tracker/markdown/node-tracker.trackercore.addglobalcontexts.md similarity index 74% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.addglobalcontexts.md rename to api-docs/docs/node-tracker/markdown/node-tracker.trackercore.addglobalcontexts.md index 4d7ef62ba..3ba235436 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.addglobalcontexts.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.trackercore.addglobalcontexts.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [addGlobalContexts](./react-native-tracker.trackercore.addglobalcontexts.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [TrackerCore](./node-tracker.trackercore.md) > [addGlobalContexts](./node-tracker.trackercore.addglobalcontexts.md) ## TrackerCore.addGlobalContexts() method diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.addpayloaddict.md b/api-docs/docs/node-tracker/markdown/node-tracker.trackercore.addpayloaddict.md similarity index 62% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.addpayloaddict.md rename to api-docs/docs/node-tracker/markdown/node-tracker.trackercore.addpayloaddict.md index 5c5affebf..e57e6f3bd 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.addpayloaddict.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.trackercore.addpayloaddict.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [addPayloadDict](./react-native-tracker.trackercore.addpayloaddict.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [TrackerCore](./node-tracker.trackercore.md) > [addPayloadDict](./node-tracker.trackercore.addpayloaddict.md) ## TrackerCore.addPayloadDict() method diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.addpayloadpair.md b/api-docs/docs/node-tracker/markdown/node-tracker.trackercore.addpayloadpair.md similarity index 54% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.addpayloadpair.md rename to api-docs/docs/node-tracker/markdown/node-tracker.trackercore.addpayloadpair.md index 9de08f3da..801ba6a44 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.addpayloadpair.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.trackercore.addpayloadpair.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [addPayloadPair](./react-native-tracker.trackercore.addpayloadpair.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [TrackerCore](./node-tracker.trackercore.md) > [addPayloadPair](./node-tracker.trackercore.addpayloadpair.md) ## TrackerCore.addPayloadPair property diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.addplugin.md b/api-docs/docs/node-tracker/markdown/node-tracker.trackercore.addplugin.md similarity index 66% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.addplugin.md rename to api-docs/docs/node-tracker/markdown/node-tracker.trackercore.addplugin.md index 1df2fa1a7..fc585d9cf 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.addplugin.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.trackercore.addplugin.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [addPlugin](./react-native-tracker.trackercore.addplugin.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [TrackerCore](./node-tracker.trackercore.md) > [addPlugin](./node-tracker.trackercore.addplugin.md) ## TrackerCore.addPlugin() method diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.clearglobalcontexts.md b/api-docs/docs/node-tracker/markdown/node-tracker.trackercore.clearglobalcontexts.md similarity index 50% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.clearglobalcontexts.md rename to api-docs/docs/node-tracker/markdown/node-tracker.trackercore.clearglobalcontexts.md index 35a7fce36..76592d2d7 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.clearglobalcontexts.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.trackercore.clearglobalcontexts.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [clearGlobalContexts](./react-native-tracker.trackercore.clearglobalcontexts.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [TrackerCore](./node-tracker.trackercore.md) > [clearGlobalContexts](./node-tracker.trackercore.clearglobalcontexts.md) ## TrackerCore.clearGlobalContexts() method diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.deactivate.md b/api-docs/docs/node-tracker/markdown/node-tracker.trackercore.deactivate.md similarity index 63% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.deactivate.md rename to api-docs/docs/node-tracker/markdown/node-tracker.trackercore.deactivate.md index cb5771396..2d2babccd 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.deactivate.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.trackercore.deactivate.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [deactivate](./react-native-tracker.trackercore.deactivate.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [TrackerCore](./node-tracker.trackercore.md) > [deactivate](./node-tracker.trackercore.deactivate.md) ## TrackerCore.deactivate() method diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.getbase64encoding.md b/api-docs/docs/node-tracker/markdown/node-tracker.trackercore.getbase64encoding.md similarity index 51% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.getbase64encoding.md rename to api-docs/docs/node-tracker/markdown/node-tracker.trackercore.getbase64encoding.md index 6398bf5b1..7b42a4140 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.getbase64encoding.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.trackercore.getbase64encoding.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [getBase64Encoding](./react-native-tracker.trackercore.getbase64encoding.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [TrackerCore](./node-tracker.trackercore.md) > [getBase64Encoding](./node-tracker.trackercore.getbase64encoding.md) ## TrackerCore.getBase64Encoding() method diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.trackercore.md b/api-docs/docs/node-tracker/markdown/node-tracker.trackercore.md new file mode 100644 index 000000000..d63fc8419 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.trackercore.md @@ -0,0 +1,47 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [TrackerCore](./node-tracker.trackercore.md) + +## TrackerCore interface + +Export interface containing all Core functions + +Signature: + +```typescript +interface TrackerCore +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [addPayloadPair](./node-tracker.trackercore.addpayloadpair.md) | (key: string, value: unknown) => void | Set a persistent key-value pair to be added to every payload | +| [track](./node-tracker.trackercore.track.md) | (pb: PayloadBuilder, context?: Array<SelfDescribingJson> \| null, timestamp?: Timestamp \| null) => Payload \| undefined | Call with a payload from a buildX function Adds context and payloadPairs name-value pairs to the payload Applies the callback to the built payload | + +## Methods + +| Method | Description | +| --- | --- | +| [addGlobalContexts(contexts)](./node-tracker.trackercore.addglobalcontexts.md) | Adds contexts globally, contexts added here will be attached to all applicable events | +| [addPayloadDict(dict)](./node-tracker.trackercore.addpayloaddict.md) | Merges a dictionary into payloadPairs | +| [addPlugin(configuration)](./node-tracker.trackercore.addplugin.md) | Add a plugin into the plugin collection after Core has already been initialised | +| [clearGlobalContexts()](./node-tracker.trackercore.clearglobalcontexts.md) | Removes all global contexts | +| [deactivate()](./node-tracker.trackercore.deactivate.md) | Deactivate tracker core including all plugins. This is useful for cleaning up resources or listeners that have been created. Once deactivated, the tracker won't be able to track any events. | +| [getBase64Encoding()](./node-tracker.trackercore.getbase64encoding.md) | Get current base64 encoding state | +| [removeGlobalContexts(contexts)](./node-tracker.trackercore.removeglobalcontexts.md) | Removes previously added global context, performs a deep comparison of the contexts or conditional contexts | +| [resetPayloadPairs(dict)](./node-tracker.trackercore.resetpayloadpairs.md) | Replace payloadPairs with a new dictionary | +| [setAppId(appId)](./node-tracker.trackercore.setappid.md) | Set the application ID | +| [setBase64Encoding(encode)](./node-tracker.trackercore.setbase64encoding.md) | Turn base 64 encoding on or off | +| [setColorDepth(depth)](./node-tracker.trackercore.setcolordepth.md) | Set the color depth | +| [setIpAddress(ip)](./node-tracker.trackercore.setipaddress.md) | Set the IP address | +| [setLang(lang)](./node-tracker.trackercore.setlang.md) | Set the language | +| [setPlatform(value)](./node-tracker.trackercore.setplatform.md) | Set the platform | +| [setScreenResolution(width, height)](./node-tracker.trackercore.setscreenresolution.md) | Set the screen resolution | +| [setTimezone(timezone)](./node-tracker.trackercore.settimezone.md) | Set the timezone | +| [setTrackerNamespace(name)](./node-tracker.trackercore.settrackernamespace.md) | Set the tracker namespace | +| [setTrackerVersion(version)](./node-tracker.trackercore.settrackerversion.md) | Set the tracker version | +| [setUseragent(useragent)](./node-tracker.trackercore.setuseragent.md) | Set the Useragent | +| [setUserId(userId)](./node-tracker.trackercore.setuserid.md) | Set the user ID | +| [setViewport(width, height)](./node-tracker.trackercore.setviewport.md) | Set the viewport dimensions | + diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.removeglobalcontexts.md b/api-docs/docs/node-tracker/markdown/node-tracker.trackercore.removeglobalcontexts.md similarity index 71% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.removeglobalcontexts.md rename to api-docs/docs/node-tracker/markdown/node-tracker.trackercore.removeglobalcontexts.md index c34c36ae9..774aef674 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.removeglobalcontexts.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.trackercore.removeglobalcontexts.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [removeGlobalContexts](./react-native-tracker.trackercore.removeglobalcontexts.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [TrackerCore](./node-tracker.trackercore.md) > [removeGlobalContexts](./node-tracker.trackercore.removeglobalcontexts.md) ## TrackerCore.removeGlobalContexts() method diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.resetpayloadpairs.md b/api-docs/docs/node-tracker/markdown/node-tracker.trackercore.resetpayloadpairs.md similarity index 63% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.resetpayloadpairs.md rename to api-docs/docs/node-tracker/markdown/node-tracker.trackercore.resetpayloadpairs.md index 7aa688a02..8113180dd 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.resetpayloadpairs.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.trackercore.resetpayloadpairs.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [resetPayloadPairs](./react-native-tracker.trackercore.resetpayloadpairs.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [TrackerCore](./node-tracker.trackercore.md) > [resetPayloadPairs](./node-tracker.trackercore.resetpayloadpairs.md) ## TrackerCore.resetPayloadPairs() method diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.setappid.md b/api-docs/docs/node-tracker/markdown/node-tracker.trackercore.setappid.md similarity index 62% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.setappid.md rename to api-docs/docs/node-tracker/markdown/node-tracker.trackercore.setappid.md index abd0a93a1..e25c39c44 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.setappid.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.trackercore.setappid.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [setAppId](./react-native-tracker.trackercore.setappid.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [TrackerCore](./node-tracker.trackercore.md) > [setAppId](./node-tracker.trackercore.setappid.md) ## TrackerCore.setAppId() method diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.setbase64encoding.md b/api-docs/docs/node-tracker/markdown/node-tracker.trackercore.setbase64encoding.md similarity index 60% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.setbase64encoding.md rename to api-docs/docs/node-tracker/markdown/node-tracker.trackercore.setbase64encoding.md index dba55d738..7a6317ef0 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.setbase64encoding.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.trackercore.setbase64encoding.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [setBase64Encoding](./react-native-tracker.trackercore.setbase64encoding.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [TrackerCore](./node-tracker.trackercore.md) > [setBase64Encoding](./node-tracker.trackercore.setbase64encoding.md) ## TrackerCore.setBase64Encoding() method diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.setcolordepth.md b/api-docs/docs/node-tracker/markdown/node-tracker.trackercore.setcolordepth.md similarity index 60% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.setcolordepth.md rename to api-docs/docs/node-tracker/markdown/node-tracker.trackercore.setcolordepth.md index 112999575..b63a709dd 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.setcolordepth.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.trackercore.setcolordepth.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [setColorDepth](./react-native-tracker.trackercore.setcolordepth.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [TrackerCore](./node-tracker.trackercore.md) > [setColorDepth](./node-tracker.trackercore.setcolordepth.md) ## TrackerCore.setColorDepth() method diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.setipaddress.md b/api-docs/docs/node-tracker/markdown/node-tracker.trackercore.setipaddress.md similarity index 59% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.setipaddress.md rename to api-docs/docs/node-tracker/markdown/node-tracker.trackercore.setipaddress.md index 31498859f..3b67872fb 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.setipaddress.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.trackercore.setipaddress.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [setIpAddress](./react-native-tracker.trackercore.setipaddress.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [TrackerCore](./node-tracker.trackercore.md) > [setIpAddress](./node-tracker.trackercore.setipaddress.md) ## TrackerCore.setIpAddress() method diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.setlang.md b/api-docs/docs/node-tracker/markdown/node-tracker.trackercore.setlang.md similarity index 60% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.setlang.md rename to api-docs/docs/node-tracker/markdown/node-tracker.trackercore.setlang.md index 7100dc2ee..899bca60d 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.setlang.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.trackercore.setlang.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [setLang](./react-native-tracker.trackercore.setlang.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [TrackerCore](./node-tracker.trackercore.md) > [setLang](./node-tracker.trackercore.setlang.md) ## TrackerCore.setLang() method diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.setplatform.md b/api-docs/docs/node-tracker/markdown/node-tracker.trackercore.setplatform.md similarity index 60% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.setplatform.md rename to api-docs/docs/node-tracker/markdown/node-tracker.trackercore.setplatform.md index 6c1ba1297..88e822f73 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.setplatform.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.trackercore.setplatform.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [setPlatform](./react-native-tracker.trackercore.setplatform.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [TrackerCore](./node-tracker.trackercore.md) > [setPlatform](./node-tracker.trackercore.setplatform.md) ## TrackerCore.setPlatform() method diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.setscreenresolution.md b/api-docs/docs/node-tracker/markdown/node-tracker.trackercore.setscreenresolution.md similarity index 63% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.setscreenresolution.md rename to api-docs/docs/node-tracker/markdown/node-tracker.trackercore.setscreenresolution.md index b24ab49f7..a911fd57c 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.setscreenresolution.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.trackercore.setscreenresolution.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [setScreenResolution](./react-native-tracker.trackercore.setscreenresolution.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [TrackerCore](./node-tracker.trackercore.md) > [setScreenResolution](./node-tracker.trackercore.setscreenresolution.md) ## TrackerCore.setScreenResolution() method diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.settimezone.md b/api-docs/docs/node-tracker/markdown/node-tracker.trackercore.settimezone.md similarity index 59% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.settimezone.md rename to api-docs/docs/node-tracker/markdown/node-tracker.trackercore.settimezone.md index 3268c1374..ae1538649 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.settimezone.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.trackercore.settimezone.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [setTimezone](./react-native-tracker.trackercore.settimezone.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [TrackerCore](./node-tracker.trackercore.md) > [setTimezone](./node-tracker.trackercore.settimezone.md) ## TrackerCore.setTimezone() method diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.settrackernamespace.md b/api-docs/docs/node-tracker/markdown/node-tracker.trackercore.settrackernamespace.md similarity index 59% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.settrackernamespace.md rename to api-docs/docs/node-tracker/markdown/node-tracker.trackercore.settrackernamespace.md index a07eb93af..58263903b 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.settrackernamespace.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.trackercore.settrackernamespace.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [setTrackerNamespace](./react-native-tracker.trackercore.settrackernamespace.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [TrackerCore](./node-tracker.trackercore.md) > [setTrackerNamespace](./node-tracker.trackercore.settrackernamespace.md) ## TrackerCore.setTrackerNamespace() method diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.settrackerversion.md b/api-docs/docs/node-tracker/markdown/node-tracker.trackercore.settrackerversion.md similarity index 60% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.settrackerversion.md rename to api-docs/docs/node-tracker/markdown/node-tracker.trackercore.settrackerversion.md index a2abc9b95..1b8824e87 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.settrackerversion.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.trackercore.settrackerversion.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [setTrackerVersion](./react-native-tracker.trackercore.settrackerversion.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [TrackerCore](./node-tracker.trackercore.md) > [setTrackerVersion](./node-tracker.trackercore.settrackerversion.md) ## TrackerCore.setTrackerVersion() method diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.setuseragent.md b/api-docs/docs/node-tracker/markdown/node-tracker.trackercore.setuseragent.md similarity index 60% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.setuseragent.md rename to api-docs/docs/node-tracker/markdown/node-tracker.trackercore.setuseragent.md index eb86f389d..ca24eafb3 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.setuseragent.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.trackercore.setuseragent.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [setUseragent](./react-native-tracker.trackercore.setuseragent.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [TrackerCore](./node-tracker.trackercore.md) > [setUseragent](./node-tracker.trackercore.setuseragent.md) ## TrackerCore.setUseragent() method diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.setuserid.md b/api-docs/docs/node-tracker/markdown/node-tracker.trackercore.setuserid.md similarity index 59% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.setuserid.md rename to api-docs/docs/node-tracker/markdown/node-tracker.trackercore.setuserid.md index e0b1a998c..4fe139f63 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.setuserid.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.trackercore.setuserid.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [setUserId](./react-native-tracker.trackercore.setuserid.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [TrackerCore](./node-tracker.trackercore.md) > [setUserId](./node-tracker.trackercore.setuserid.md) ## TrackerCore.setUserId() method diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.setviewport.md b/api-docs/docs/node-tracker/markdown/node-tracker.trackercore.setviewport.md similarity index 63% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.setviewport.md rename to api-docs/docs/node-tracker/markdown/node-tracker.trackercore.setviewport.md index b7fffbf25..ef6eff820 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.setviewport.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.trackercore.setviewport.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [setViewport](./react-native-tracker.trackercore.setviewport.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [TrackerCore](./node-tracker.trackercore.md) > [setViewport](./node-tracker.trackercore.setviewport.md) ## TrackerCore.setViewport() method diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.track.md b/api-docs/docs/node-tracker/markdown/node-tracker.trackercore.track.md similarity index 66% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.track.md rename to api-docs/docs/node-tracker/markdown/node-tracker.trackercore.track.md index c6787defc..30162bf17 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.track.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.trackercore.track.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [track](./react-native-tracker.trackercore.track.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [TrackerCore](./node-tracker.trackercore.md) > [track](./node-tracker.trackercore.track.md) ## TrackerCore.track property diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.truetimestamp.md b/api-docs/docs/node-tracker/markdown/node-tracker.truetimestamp.md new file mode 100644 index 000000000..d4b2ad656 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.truetimestamp.md @@ -0,0 +1,21 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [TrueTimestamp](./node-tracker.truetimestamp.md) + +## TrueTimestamp interface + +A representation of a True Timestamp (ttm) + +Signature: + +```typescript +interface TrueTimestamp +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [type](./node-tracker.truetimestamp.type.md) | "ttm" | | +| [value](./node-tracker.truetimestamp.value.md) | number | | + diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.truetimestamp.type.md b/api-docs/docs/node-tracker/markdown/node-tracker.truetimestamp.type.md new file mode 100644 index 000000000..1eb184bf3 --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.truetimestamp.type.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [TrueTimestamp](./node-tracker.truetimestamp.md) > [type](./node-tracker.truetimestamp.type.md) + +## TrueTimestamp.type property + +Signature: + +```typescript +readonly type: "ttm"; +``` diff --git a/api-docs/docs/node-tracker/markdown/node-tracker.truetimestamp.value.md b/api-docs/docs/node-tracker/markdown/node-tracker.truetimestamp.value.md new file mode 100644 index 000000000..0f8349f7b --- /dev/null +++ b/api-docs/docs/node-tracker/markdown/node-tracker.truetimestamp.value.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [TrueTimestamp](./node-tracker.truetimestamp.md) > [value](./node-tracker.truetimestamp.value.md) + +## TrueTimestamp.value property + +Signature: + +```typescript +readonly value: number; +``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.version.md b/api-docs/docs/node-tracker/markdown/node-tracker.version.md similarity index 51% rename from api-docs/docs/node-tracker/markdown/react-native-tracker.version.md rename to api-docs/docs/node-tracker/markdown/node-tracker.version.md index 2614e08f0..6d17a1434 100644 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.version.md +++ b/api-docs/docs/node-tracker/markdown/node-tracker.version.md @@ -1,6 +1,6 @@ -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [version](./react-native-tracker.version.md) +[Home](./index.md) > [@snowplow/node-tracker](./node-tracker.md) > [version](./node-tracker.version.md) ## version variable diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.applifecycleconfiguration.appbuild.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.applifecycleconfiguration.appbuild.md deleted file mode 100644 index 03a2ecbd5..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.applifecycleconfiguration.appbuild.md +++ /dev/null @@ -1,15 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [AppLifecycleConfiguration](./react-native-tracker.applifecycleconfiguration.md) > [appBuild](./react-native-tracker.applifecycleconfiguration.appbuild.md) - -## AppLifecycleConfiguration.appBuild property - -Build name of the application e.g s9f2k2d or 1.1.0 beta - -Entity schema: `iglu:com.snowplowanalytics.mobile/application/jsonschema/1-0-0` - -Signature: - -```typescript -appBuild?: string; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.applifecycleconfiguration.appversion.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.applifecycleconfiguration.appversion.md deleted file mode 100644 index 06a720972..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.applifecycleconfiguration.appversion.md +++ /dev/null @@ -1,15 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [AppLifecycleConfiguration](./react-native-tracker.applifecycleconfiguration.md) > [appVersion](./react-native-tracker.applifecycleconfiguration.appversion.md) - -## AppLifecycleConfiguration.appVersion property - -Version number of the application e.g 1.1.0 (semver or git commit hash). - -Entity schema if `appBuild` property is set: `iglu:com.snowplowanalytics.mobile/application/jsonschema/1-0-0` Entity schema if `appBuild` property is not set: `iglu:com.snowplowanalytics.snowplow/application/jsonschema/1-0-0` - -Signature: - -```typescript -appVersion?: string; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.applifecycleconfiguration.installautotracking.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.applifecycleconfiguration.installautotracking.md deleted file mode 100644 index d052ad96e..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.applifecycleconfiguration.installautotracking.md +++ /dev/null @@ -1,15 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [AppLifecycleConfiguration](./react-native-tracker.applifecycleconfiguration.md) > [installAutotracking](./react-native-tracker.applifecycleconfiguration.installautotracking.md) - -## AppLifecycleConfiguration.installAutotracking property - -Whether to automatically track app install event on first run. - -Schema: `iglu:com.snowplowanalytics.mobile/application_install/jsonschema/1-0-0` - -Signature: - -```typescript -installAutotracking?: boolean; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.applifecycleconfiguration.lifecycleautotracking.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.applifecycleconfiguration.lifecycleautotracking.md deleted file mode 100644 index 47c7faf07..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.applifecycleconfiguration.lifecycleautotracking.md +++ /dev/null @@ -1,15 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [AppLifecycleConfiguration](./react-native-tracker.applifecycleconfiguration.md) > [lifecycleAutotracking](./react-native-tracker.applifecycleconfiguration.lifecycleautotracking.md) - -## AppLifecycleConfiguration.lifecycleAutotracking property - -Whether to automatically track app lifecycle events (app foreground and background events). Also adds a lifecycle context entity to all events. - -Foreground event schema: `iglu:com.snowplowanalytics.snowplow/application_foreground/jsonschema/1-0-0` Background event schema: `iglu:com.snowplowanalytics.snowplow/application_background/jsonschema/1-0-0` Context entity schema: `iglu:com.snowplowanalytics.mobile/application_lifecycle/jsonschema/1-0-0` - -Signature: - -```typescript -lifecycleAutotracking?: boolean; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.applifecycleconfiguration.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.applifecycleconfiguration.md deleted file mode 100644 index bc402d9b3..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.applifecycleconfiguration.md +++ /dev/null @@ -1,23 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [AppLifecycleConfiguration](./react-native-tracker.applifecycleconfiguration.md) - -## AppLifecycleConfiguration interface - -Configuration for app lifecycle tracking - -Signature: - -```typescript -export interface AppLifecycleConfiguration -``` - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [appBuild?](./react-native-tracker.applifecycleconfiguration.appbuild.md) | string | (Optional) Build name of the application e.g s9f2k2d or 1.1.0 betaEntity schema: iglu:com.snowplowanalytics.mobile/application/jsonschema/1-0-0 | -| [appVersion?](./react-native-tracker.applifecycleconfiguration.appversion.md) | string | (Optional) Version number of the application e.g 1.1.0 (semver or git commit hash).Entity schema if appBuild property is set: iglu:com.snowplowanalytics.mobile/application/jsonschema/1-0-0 Entity schema if appBuild property is not set: iglu:com.snowplowanalytics.snowplow/application/jsonschema/1-0-0 | -| [installAutotracking?](./react-native-tracker.applifecycleconfiguration.installautotracking.md) | boolean | (Optional) Whether to automatically track app install event on first run.Schema: iglu:com.snowplowanalytics.mobile/application_install/jsonschema/1-0-0 | -| [lifecycleAutotracking?](./react-native-tracker.applifecycleconfiguration.lifecycleautotracking.md) | boolean | (Optional) Whether to automatically track app lifecycle events (app foreground and background events). Also adds a lifecycle context entity to all events.Foreground event schema: iglu:com.snowplowanalytics.snowplow/application_foreground/jsonschema/1-0-0 Background event schema: iglu:com.snowplowanalytics.snowplow/application_background/jsonschema/1-0-0 Context entity schema: iglu:com.snowplowanalytics.mobile/application_lifecycle/jsonschema/1-0-0 | - diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.asyncstorage.getitem.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.asyncstorage.getitem.md deleted file mode 100644 index 1fcf3de87..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.asyncstorage.getitem.md +++ /dev/null @@ -1,11 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [AsyncStorage](./react-native-tracker.asyncstorage.md) > [getItem](./react-native-tracker.asyncstorage.getitem.md) - -## AsyncStorage.getItem property - -Signature: - -```typescript -getItem: (key: string) => Promise; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.asyncstorage.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.asyncstorage.md deleted file mode 100644 index ad1c77a88..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.asyncstorage.md +++ /dev/null @@ -1,19 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [AsyncStorage](./react-native-tracker.asyncstorage.md) - -## AsyncStorage interface - -Signature: - -```typescript -export interface AsyncStorage -``` - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [getItem](./react-native-tracker.asyncstorage.getitem.md) | (key: string) => Promise<string \| null> | | -| [setItem](./react-native-tracker.asyncstorage.setitem.md) | (key: string, value: string) => Promise<void> | | - diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.asyncstorage.setitem.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.asyncstorage.setitem.md deleted file mode 100644 index 5d3b79d9d..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.asyncstorage.setitem.md +++ /dev/null @@ -1,11 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [AsyncStorage](./react-native-tracker.asyncstorage.md) > [setItem](./react-native-tracker.asyncstorage.setitem.md) - -## AsyncStorage.setItem property - -Signature: - -```typescript -setItem: (key: string, value: string) => Promise; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.coreconfiguration.base64.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.coreconfiguration.base64.md deleted file mode 100644 index 0bceab7f6..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.coreconfiguration.base64.md +++ /dev/null @@ -1,11 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [CoreConfiguration](./react-native-tracker.coreconfiguration.md) > [base64](./react-native-tracker.coreconfiguration.base64.md) - -## CoreConfiguration.base64 property - -Signature: - -```typescript -base64?: boolean; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.coreconfiguration.callback.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.coreconfiguration.callback.md deleted file mode 100644 index 1e771a210..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.coreconfiguration.callback.md +++ /dev/null @@ -1,11 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [CoreConfiguration](./react-native-tracker.coreconfiguration.md) > [callback](./react-native-tracker.coreconfiguration.callback.md) - -## CoreConfiguration.callback property - -Signature: - -```typescript -callback?: (PayloadData: PayloadBuilder) => void; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.coreconfiguration.coreplugins.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.coreconfiguration.coreplugins.md deleted file mode 100644 index 01cb1e158..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.coreconfiguration.coreplugins.md +++ /dev/null @@ -1,11 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [CoreConfiguration](./react-native-tracker.coreconfiguration.md) > [corePlugins](./react-native-tracker.coreconfiguration.coreplugins.md) - -## CoreConfiguration.corePlugins property - -Signature: - -```typescript -corePlugins?: Array; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.coreconfiguration.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.coreconfiguration.md deleted file mode 100644 index 1b3a10636..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.coreconfiguration.md +++ /dev/null @@ -1,22 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [CoreConfiguration](./react-native-tracker.coreconfiguration.md) - -## CoreConfiguration interface - -The configuration object for the tracker core library - -Signature: - -```typescript -interface CoreConfiguration -``` - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [base64?](./react-native-tracker.coreconfiguration.base64.md) | boolean | (Optional) | -| [callback?](./react-native-tracker.coreconfiguration.callback.md) | (PayloadData: PayloadBuilder) => void | (Optional) | -| [corePlugins?](./react-native-tracker.coreconfiguration.coreplugins.md) | Array<CorePlugin> | (Optional) | - diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.coreplugin.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.coreplugin.md deleted file mode 100644 index 85529ca8c..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.coreplugin.md +++ /dev/null @@ -1,26 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [CorePlugin](./react-native-tracker.coreplugin.md) - -## CorePlugin interface - -Interface which defines Core Plugins - -Signature: - -```typescript -interface CorePlugin -``` - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [activateCorePlugin?](./react-native-tracker.coreplugin.activatecoreplugin.md) | (core: TrackerCore) => void | (Optional) Called when the plugin is initialised during the trackerCore construction | -| [afterTrack?](./react-native-tracker.coreplugin.aftertrack.md) | (payload: Payload) => void | (Optional) Called just after the trackerCore callback fires | -| [beforeTrack?](./react-native-tracker.coreplugin.beforetrack.md) | (payloadBuilder: PayloadBuilder) => void | (Optional) Called before the filter method is called and before the trackerCore callback fires (if the filter passes) | -| [contexts?](./react-native-tracker.coreplugin.contexts.md) | () => SelfDescribingJson\[\] | (Optional) Called when constructing the context for each event Useful for adding additional context to events | -| [deactivatePlugin?](./react-native-tracker.coreplugin.deactivateplugin.md) | (core: TrackerCore) => void | (Optional) Called when the tracker is being destroyed. Should be used to clean up any resources or listeners that the plugin has created. | -| [filter?](./react-native-tracker.coreplugin.filter.md) | (payload: Payload) => boolean | (Optional) Called before the payload is sent to the callback to decide whether to send the payload or skip it | -| [logger?](./react-native-tracker.coreplugin.logger.md) | (logger: Logger) => void | (Optional) Passed a logger instance which can be used to send log information to the active logger | - diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.corepluginconfiguration.plugin.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.corepluginconfiguration.plugin.md deleted file mode 100644 index 6ab300b27..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.corepluginconfiguration.plugin.md +++ /dev/null @@ -1,11 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [CorePluginConfiguration](./react-native-tracker.corepluginconfiguration.md) > [plugin](./react-native-tracker.corepluginconfiguration.plugin.md) - -## CorePluginConfiguration.plugin property - -Signature: - -```typescript -plugin: CorePlugin; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.deeplinkconfiguration.deeplinkcontext.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.deeplinkconfiguration.deeplinkcontext.md deleted file mode 100644 index ad1dc7387..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.deeplinkconfiguration.deeplinkcontext.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [DeepLinkConfiguration](./react-native-tracker.deeplinkconfiguration.md) > [deepLinkContext](./react-native-tracker.deeplinkconfiguration.deeplinkcontext.md) - -## DeepLinkConfiguration.deepLinkContext property - -Whether to track the deep link context entity with information from the deep link received event on the first screen view event. - -Signature: - -```typescript -deepLinkContext?: boolean; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.deeplinkconfiguration.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.deeplinkconfiguration.md deleted file mode 100644 index 506c7ed7a..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.deeplinkconfiguration.md +++ /dev/null @@ -1,20 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [DeepLinkConfiguration](./react-native-tracker.deeplinkconfiguration.md) - -## DeepLinkConfiguration interface - -Configuration for deep link tracking - -Signature: - -```typescript -export interface DeepLinkConfiguration -``` - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [deepLinkContext?](./react-native-tracker.deeplinkconfiguration.deeplinkcontext.md) | boolean | (Optional) Whether to track the deep link context entity with information from the deep link received event on the first screen view event. | - diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.deeplinkreceivedprops.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.deeplinkreceivedprops.md deleted file mode 100644 index 6a10e920c..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.deeplinkreceivedprops.md +++ /dev/null @@ -1,16 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [DeepLinkReceivedProps](./react-native-tracker.deeplinkreceivedprops.md) - -## DeepLinkReceivedProps type - -DeepLinkReceived event properties schema: iglu:com.snowplowanalytics.mobile/deep\_link\_received/jsonschema/1-0-0 - -Signature: - -```typescript -export declare type DeepLinkReceivedProps = { - url: string; - referrer?: string; -}; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.devicetimestamp.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.devicetimestamp.md deleted file mode 100644 index 22804fc75..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.devicetimestamp.md +++ /dev/null @@ -1,21 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [DeviceTimestamp](./react-native-tracker.devicetimestamp.md) - -## DeviceTimestamp interface - -A representation of a Device Timestamp (dtm) - -Signature: - -```typescript -interface DeviceTimestamp -``` - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [type](./react-native-tracker.devicetimestamp.type.md) | "dtm" | | -| [value](./react-native-tracker.devicetimestamp.value.md) | number | | - diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.devicetimestamp.type.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.devicetimestamp.type.md deleted file mode 100644 index b02eee053..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.devicetimestamp.type.md +++ /dev/null @@ -1,11 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [DeviceTimestamp](./react-native-tracker.devicetimestamp.md) > [type](./react-native-tracker.devicetimestamp.type.md) - -## DeviceTimestamp.type property - -Signature: - -```typescript -readonly type: "dtm"; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.devicetimestamp.value.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.devicetimestamp.value.md deleted file mode 100644 index 2b5a2fb23..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.devicetimestamp.value.md +++ /dev/null @@ -1,11 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [DeviceTimestamp](./react-native-tracker.devicetimestamp.md) > [value](./react-native-tracker.devicetimestamp.value.md) - -## DeviceTimestamp.value property - -Signature: - -```typescript -readonly value: number; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitter.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.emitter.md deleted file mode 100644 index 24f95cde0..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitter.md +++ /dev/null @@ -1,24 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [Emitter](./react-native-tracker.emitter.md) - -## Emitter interface - -Emitter is responsible for sending events to the collector. It manages the event queue and sends events in batches depending on configuration. - -Signature: - -```typescript -interface Emitter -``` - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [flush](./react-native-tracker.emitter.flush.md) | () => Promise<void> | Forces the emitter to send all events in the event store to the collector. | -| [input](./react-native-tracker.emitter.input.md) | (payload: Payload) => Promise<void> | Adds a payload to the event store or sends it to the collector. | -| [setAnonymousTracking](./react-native-tracker.emitter.setanonymoustracking.md) | (anonymous: boolean) => void | Sets the server anonymization flag. | -| [setBufferSize](./react-native-tracker.emitter.setbuffersize.md) | (bufferSize: number) => void | Updates the buffer size of the emitter. | -| [setCollectorUrl](./react-native-tracker.emitter.setcollectorurl.md) | (url: string) => void | Updates the collector URL to which events will be sent. | - diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfiguration.endpoint.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfiguration.endpoint.md deleted file mode 100644 index 6e3c59555..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfiguration.endpoint.md +++ /dev/null @@ -1,11 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfiguration](./react-native-tracker.emitterconfiguration.md) > [endpoint](./react-native-tracker.emitterconfiguration.endpoint.md) - -## EmitterConfiguration.endpoint property - -Signature: - -```typescript -endpoint: string; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfiguration.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfiguration.md deleted file mode 100644 index e8f5c3fc3..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfiguration.md +++ /dev/null @@ -1,22 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfiguration](./react-native-tracker.emitterconfiguration.md) - -## EmitterConfiguration interface - -Signature: - -```typescript -interface EmitterConfiguration extends EmitterConfigurationBase -``` -Extends: EmitterConfigurationBase - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [endpoint](./react-native-tracker.emitterconfiguration.endpoint.md) | string | | -| [port?](./react-native-tracker.emitterconfiguration.port.md) | number | (Optional) | -| [protocol?](./react-native-tracker.emitterconfiguration.protocol.md) | "http" \| "https" | (Optional) | -| [serverAnonymization?](./react-native-tracker.emitterconfiguration.serveranonymization.md) | boolean | (Optional) | - diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfiguration.port.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfiguration.port.md deleted file mode 100644 index 082b7ac51..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfiguration.port.md +++ /dev/null @@ -1,11 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfiguration](./react-native-tracker.emitterconfiguration.md) > [port](./react-native-tracker.emitterconfiguration.port.md) - -## EmitterConfiguration.port property - -Signature: - -```typescript -port?: number; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfiguration.protocol.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfiguration.protocol.md deleted file mode 100644 index 8a3715d36..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfiguration.protocol.md +++ /dev/null @@ -1,11 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfiguration](./react-native-tracker.emitterconfiguration.md) > [protocol](./react-native-tracker.emitterconfiguration.protocol.md) - -## EmitterConfiguration.protocol property - -Signature: - -```typescript -protocol?: "http" | "https"; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfiguration.serveranonymization.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfiguration.serveranonymization.md deleted file mode 100644 index 74628321b..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfiguration.serveranonymization.md +++ /dev/null @@ -1,11 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfiguration](./react-native-tracker.emitterconfiguration.md) > [serverAnonymization](./react-native-tracker.emitterconfiguration.serveranonymization.md) - -## EmitterConfiguration.serverAnonymization property - -Signature: - -```typescript -serverAnonymization?: boolean; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfigurationbase.connectiontimeout.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfigurationbase.connectiontimeout.md deleted file mode 100644 index 01c13b8bc..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfigurationbase.connectiontimeout.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) > [connectionTimeout](./react-native-tracker.emitterconfigurationbase.connectiontimeout.md) - -## EmitterConfigurationBase.connectionTimeout property - -How long to wait before aborting requests to the collector - -Signature: - -```typescript -connectionTimeout?: number; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfigurationbase.eventmethod.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfigurationbase.eventmethod.md deleted file mode 100644 index dfb2be7e8..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfigurationbase.eventmethod.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) > [eventMethod](./react-native-tracker.emitterconfigurationbase.eventmethod.md) - -## EmitterConfigurationBase.eventMethod property - -The preferred technique to use to send events - -Signature: - -```typescript -eventMethod?: EventMethod; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfigurationbase.idservice.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfigurationbase.idservice.md deleted file mode 100644 index c0a9d46b3..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfigurationbase.idservice.md +++ /dev/null @@ -1,15 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) > [idService](./react-native-tracker.emitterconfigurationbase.idservice.md) - -## EmitterConfigurationBase.idService property - -Id service full URL. This URL will be added to the queue and will be called using a GET method. This option is there to allow the service URL to be called in order to set any required identifiers e.g. extra cookies. - -The request respects the `anonymousTracking` option, including the SP-Anonymous header if needed, and any additional custom headers from the customHeaders option. - -Signature: - -```typescript -idService?: string; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfigurationbase.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfigurationbase.md deleted file mode 100644 index 9aacc07ea..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.emitterconfigurationbase.md +++ /dev/null @@ -1,35 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) - -## EmitterConfigurationBase interface - -Signature: - -```typescript -interface EmitterConfigurationBase -``` - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [bufferSize?](./react-native-tracker.emitterconfigurationbase.buffersize.md) | number | (Optional) The amount of events that should be buffered before sending Recommended to leave as 1 to reduce change of losing events | -| [connectionTimeout?](./react-native-tracker.emitterconfigurationbase.connectiontimeout.md) | number | (Optional) How long to wait before aborting requests to the collector | -| [credentials?](./react-native-tracker.emitterconfigurationbase.credentials.md) | "omit" \| "same-origin" \| "include" | (Optional) Controls whether or not the browser sends credentials (defaults to 'include') | -| [customFetch?](./react-native-tracker.emitterconfigurationbase.customfetch.md) | (input: Request, options?: RequestInit) => Promise<Response> | (Optional) Enables overriding the default fetch function with a custom implementation. | -| [customHeaders?](./react-native-tracker.emitterconfigurationbase.customheaders.md) | Record<string, string> | (Optional) An object of key value pairs which represent headers to attach when sending a POST request, only works for POST | -| [dontRetryStatusCodes?](./react-native-tracker.emitterconfigurationbase.dontretrystatuscodes.md) | number\[\] | (Optional) List of HTTP response status codes for which events sent to Collector should not be retried in future request. Only non-success status codes are considered (greater or equal to 300). The don't retry codes are only considered for GET and POST requests. By default, the tracker retries on all non-success status codes except for 400, 401, 403, 410, and 422 (these don't retry codes will remain even if you set your own dontRetryStatusCodes but can be changed using the retryStatusCodes). | -| [eventMethod?](./react-native-tracker.emitterconfigurationbase.eventmethod.md) | EventMethod | (Optional) The preferred technique to use to send events | -| [eventStore?](./react-native-tracker.emitterconfigurationbase.eventstore.md) | EventStore | (Optional) Enables providing a custom EventStore implementation to store events before sending them to the collector. | -| [idService?](./react-native-tracker.emitterconfigurationbase.idservice.md) | string | (Optional) Id service full URL. This URL will be added to the queue and will be called using a GET method. This option is there to allow the service URL to be called in order to set any required identifiers e.g. extra cookies.The request respects the anonymousTracking option, including the SP-Anonymous header if needed, and any additional custom headers from the customHeaders option. | -| [keepalive?](./react-native-tracker.emitterconfigurationbase.keepalive.md) | boolean | (Optional) Indicates that the request should be allowed to outlive the webpage that initiated it. Enables collector requests to complete even if the page is closed or navigated away from. Note: Browsers put a limit on keepalive requests of 64KB. In case of multiple keepalive requests in parallel (may happen in case of multiple trackers), the limit is shared. | -| [maxGetBytes?](./react-native-tracker.emitterconfigurationbase.maxgetbytes.md) | number | (Optional) The max size a GET request (its complete URL) can be. Requests over this size will be tried as a POST request. | -| [maxPostBytes?](./react-native-tracker.emitterconfigurationbase.maxpostbytes.md) | number | (Optional) The max size a POST request can be before the tracker will force send it Also dictates the max size of a POST request before a batch of events is split into multiple requests | -| [onRequestFailure?](./react-native-tracker.emitterconfigurationbase.onrequestfailure.md) | (data: RequestFailure, response?: Response) => void | (Optional) A callback function to be executed whenever a request fails to be sent to the collector. This is the inverse of the onRequestSuccess callback, so any non 2xx status code will trigger this callback. | -| [onRequestSuccess?](./react-native-tracker.emitterconfigurationbase.onrequestsuccess.md) | (data: EventBatch, response: Response) => void | (Optional) A callback function to be executed whenever a request is successfully sent to the collector. In practice this means any request which returns a 2xx status code will trigger this callback. | -| [postPath?](./react-native-tracker.emitterconfigurationbase.postpath.md) | string | (Optional) The post path which events will be sent to. Ensure your collector is configured to accept events on this post path | -| [retryFailedRequests?](./react-native-tracker.emitterconfigurationbase.retryfailedrequests.md) | boolean | (Optional) Whether to retry failed requests to the collector.Failed requests are requests that failed due to \[timeouts\](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/timeout\_event), \[network errors\](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/error\_event), and \[abort events\](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/abort\_event).Takes precedent over retryStatusCodes and dontRetryStatusCodes. | -| [retryStatusCodes?](./react-native-tracker.emitterconfigurationbase.retrystatuscodes.md) | number\[\] | (Optional) List of HTTP response status codes for which events sent to Collector should be retried in future requests. Only non-success status codes are considered (greater or equal to 300). The retry codes are only considered for GET and POST requests. They take priority over the dontRetryStatusCodes option. By default, the tracker retries on all non-success status codes except for 400, 401, 403, 410, and 422. | -| [useStm?](./react-native-tracker.emitterconfigurationbase.usestm.md) | boolean | (Optional) Should the Sent Timestamp be attached to events. Only applies for GET events. | - diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.eventcontext.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.eventcontext.md deleted file mode 100644 index 9e3cbe32b..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.eventcontext.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EventContext](./react-native-tracker.eventcontext.md) - -## EventContext type - -EventContext type - -Signature: - -```typescript -export declare type EventContext = SelfDescribingJson; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.eventpayloadandcontext.event.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.eventpayloadandcontext.event.md deleted file mode 100644 index 4046b70a7..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.eventpayloadandcontext.event.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EventPayloadAndContext](./react-native-tracker.eventpayloadandcontext.md) > [event](./react-native-tracker.eventpayloadandcontext.event.md) - -## EventPayloadAndContext.event property - -Tracker payload for the event data - -Signature: - -```typescript -event: PayloadBuilder; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.eventpayloadandcontext.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.eventpayloadandcontext.md deleted file mode 100644 index 2d62a8d95..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.eventpayloadandcontext.md +++ /dev/null @@ -1,21 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EventPayloadAndContext](./react-native-tracker.eventpayloadandcontext.md) - -## EventPayloadAndContext interface - -Interface for returning a built event (PayloadBuilder) and context (Array of SelfDescribingJson). - -Signature: - -```typescript -interface EventPayloadAndContext -``` - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [context](./react-native-tracker.eventpayloadandcontext.context.md) | Array<SelfDescribingJson> | List of context entities to track along with the event | -| [event](./react-native-tracker.eventpayloadandcontext.event.md) | PayloadBuilder | Tracker payload for the event data | - diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.eventstoreconfiguration.asyncstorage.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.eventstoreconfiguration.asyncstorage.md deleted file mode 100644 index 980c7f6c9..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.eventstoreconfiguration.asyncstorage.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EventStoreConfiguration](./react-native-tracker.eventstoreconfiguration.md) > [asyncStorage](./react-native-tracker.eventstoreconfiguration.asyncstorage.md) - -## EventStoreConfiguration.asyncStorage property - -The Async storage implementation. In environments where AsyncStorage is not available or where another kind of storage is used, you can provide a custom implementation. - -Signature: - -```typescript -asyncStorage?: AsyncStorage; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.eventstoreconfiguration.maxeventstoresize.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.eventstoreconfiguration.maxeventstoresize.md deleted file mode 100644 index ccc4debe4..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.eventstoreconfiguration.maxeventstoresize.md +++ /dev/null @@ -1,15 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EventStoreConfiguration](./react-native-tracker.eventstoreconfiguration.md) > [maxEventStoreSize](./react-native-tracker.eventstoreconfiguration.maxeventstoresize.md) - -## EventStoreConfiguration.maxEventStoreSize property - -The maximum amount of events that will be buffered in the event store - -Will drop events once the limit is hit - -Signature: - -```typescript -maxEventStoreSize?: number; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.eventstoreconfiguration.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.eventstoreconfiguration.md deleted file mode 100644 index deee2aeca..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.eventstoreconfiguration.md +++ /dev/null @@ -1,22 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EventStoreConfiguration](./react-native-tracker.eventstoreconfiguration.md) - -## EventStoreConfiguration interface - -Configuration for the event store - -Signature: - -```typescript -export interface EventStoreConfiguration -``` - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [asyncStorage?](./react-native-tracker.eventstoreconfiguration.asyncstorage.md) | [AsyncStorage](./react-native-tracker.asyncstorage.md) | (Optional) The Async storage implementation. In environments where AsyncStorage is not available or where another kind of storage is used, you can provide a custom implementation. | -| [maxEventStoreSize?](./react-native-tracker.eventstoreconfiguration.maxeventstoresize.md) | number | (Optional) The maximum amount of events that will be buffered in the event storeWill drop events once the limit is hit | -| [useAsyncStorageForEventStore?](./react-native-tracker.eventstoreconfiguration.useasyncstorageforeventstore.md) | boolean | (Optional) Whether to use the AsyncStorage library as the persistent event store for the event store | - diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.eventstoreconfiguration.useasyncstorageforeventstore.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.eventstoreconfiguration.useasyncstorageforeventstore.md deleted file mode 100644 index 275e64ede..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.eventstoreconfiguration.useasyncstorageforeventstore.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EventStoreConfiguration](./react-native-tracker.eventstoreconfiguration.md) > [useAsyncStorageForEventStore](./react-native-tracker.eventstoreconfiguration.useasyncstorageforeventstore.md) - -## EventStoreConfiguration.useAsyncStorageForEventStore property - -Whether to use the AsyncStorage library as the persistent event store for the event store - -Signature: - -```typescript -useAsyncStorageForEventStore?: boolean; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.eventstoreiterator.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.eventstoreiterator.md deleted file mode 100644 index 4b9d4e13b..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.eventstoreiterator.md +++ /dev/null @@ -1,20 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EventStoreIterator](./react-native-tracker.eventstoreiterator.md) - -## EventStoreIterator interface - -EventStoreIterator allows iterating over all events in the store. - -Signature: - -```typescript -interface EventStoreIterator -``` - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [next](./react-native-tracker.eventstoreiterator.next.md) | () => Promise<EventStoreIteratorNextResult> | Retrieve the next event in the store | - diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.eventstorepayload.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.eventstorepayload.md deleted file mode 100644 index 472ba6f8f..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.eventstorepayload.md +++ /dev/null @@ -1,19 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EventStorePayload](./react-native-tracker.eventstorepayload.md) - -## EventStorePayload interface - -Signature: - -```typescript -interface EventStorePayload -``` - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [payload](./react-native-tracker.eventstorepayload.payload.md) | Payload | The event payload to be stored | -| [svrAnon?](./react-native-tracker.eventstorepayload.svranon.md) | boolean | (Optional) If the request should undergo server anonymization. | - diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.eventstorepayload.payload.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.eventstorepayload.payload.md deleted file mode 100644 index 76807caf0..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.eventstorepayload.payload.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EventStorePayload](./react-native-tracker.eventstorepayload.md) > [payload](./react-native-tracker.eventstorepayload.payload.md) - -## EventStorePayload.payload property - -The event payload to be stored - -Signature: - -```typescript -payload: Payload; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.eventstorepayload.svranon.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.eventstorepayload.svranon.md deleted file mode 100644 index 5db52ecfc..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.eventstorepayload.svranon.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EventStorePayload](./react-native-tracker.eventstorepayload.md) > [svrAnon](./react-native-tracker.eventstorepayload.svranon.md) - -## EventStorePayload.svrAnon property - -If the request should undergo server anonymization. - -Signature: - -```typescript -svrAnon?: boolean; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.formfocusorchangeevent.elementclasses.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.formfocusorchangeevent.elementclasses.md deleted file mode 100644 index f5fcd4679..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.formfocusorchangeevent.elementclasses.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [FormFocusOrChangeEvent](./react-native-tracker.formfocusorchangeevent.md) > [elementClasses](./react-native-tracker.formfocusorchangeevent.elementclasses.md) - -## FormFocusOrChangeEvent.elementClasses property - -The class names on the element - -Signature: - -```typescript -elementClasses?: Array | null; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.formfocusorchangeevent.elementid.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.formfocusorchangeevent.elementid.md deleted file mode 100644 index b0432e03b..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.formfocusorchangeevent.elementid.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [FormFocusOrChangeEvent](./react-native-tracker.formfocusorchangeevent.md) > [elementId](./react-native-tracker.formfocusorchangeevent.elementid.md) - -## FormFocusOrChangeEvent.elementId property - -The element ID which the user is interacting with - -Signature: - -```typescript -elementId: string; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.formfocusorchangeevent.formid.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.formfocusorchangeevent.formid.md deleted file mode 100644 index 2d90c18ee..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.formfocusorchangeevent.formid.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [FormFocusOrChangeEvent](./react-native-tracker.formfocusorchangeevent.md) > [formId](./react-native-tracker.formfocusorchangeevent.formid.md) - -## FormFocusOrChangeEvent.formId property - -The ID of the form which the element belongs to - -Signature: - -```typescript -formId: string; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.formfocusorchangeevent.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.formfocusorchangeevent.md deleted file mode 100644 index 534758912..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.formfocusorchangeevent.md +++ /dev/null @@ -1,26 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [FormFocusOrChangeEvent](./react-native-tracker.formfocusorchangeevent.md) - -## FormFocusOrChangeEvent interface - -Represents either a Form Focus or Form Change event When a user focuses on a form element or when a user makes a change to a form element. - -Signature: - -```typescript -interface FormFocusOrChangeEvent -``` - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [elementClasses?](./react-native-tracker.formfocusorchangeevent.elementclasses.md) | Array<string> \| null | (Optional) The class names on the element | -| [elementId](./react-native-tracker.formfocusorchangeevent.elementid.md) | string | The element ID which the user is interacting with | -| [formId](./react-native-tracker.formfocusorchangeevent.formid.md) | string | The ID of the form which the element belongs to | -| [nodeName](./react-native-tracker.formfocusorchangeevent.nodename.md) | string | The name of the node ("INPUT", "TEXTAREA", "SELECT") | -| [schema](./react-native-tracker.formfocusorchangeevent.schema.md) | "change\_form" \| "focus\_form" | The schema which will be used for the event | -| [type?](./react-native-tracker.formfocusorchangeevent.type.md) | string \| null | (Optional) The type of element (e.g. "datetime", "text", "radio", etc.) | -| [value](./react-native-tracker.formfocusorchangeevent.value.md) | string \| null | The value of the element at the time of the event firing | - diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.formfocusorchangeevent.nodename.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.formfocusorchangeevent.nodename.md deleted file mode 100644 index ee9f369ae..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.formfocusorchangeevent.nodename.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [FormFocusOrChangeEvent](./react-native-tracker.formfocusorchangeevent.md) > [nodeName](./react-native-tracker.formfocusorchangeevent.nodename.md) - -## FormFocusOrChangeEvent.nodeName property - -The name of the node ("INPUT", "TEXTAREA", "SELECT") - -Signature: - -```typescript -nodeName: string; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.formfocusorchangeevent.schema.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.formfocusorchangeevent.schema.md deleted file mode 100644 index 474e39187..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.formfocusorchangeevent.schema.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [FormFocusOrChangeEvent](./react-native-tracker.formfocusorchangeevent.md) > [schema](./react-native-tracker.formfocusorchangeevent.schema.md) - -## FormFocusOrChangeEvent.schema property - -The schema which will be used for the event - -Signature: - -```typescript -schema: "change_form" | "focus_form"; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.formfocusorchangeevent.value.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.formfocusorchangeevent.value.md deleted file mode 100644 index 9af73bad8..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.formfocusorchangeevent.value.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [FormFocusOrChangeEvent](./react-native-tracker.formfocusorchangeevent.md) > [value](./react-native-tracker.formfocusorchangeevent.value.md) - -## FormFocusOrChangeEvent.value property - -The value of the element at the time of the event firing - -Signature: - -```typescript -value: string | null; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.getalltrackers.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.getalltrackers.md deleted file mode 100644 index 2d148726e..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.getalltrackers.md +++ /dev/null @@ -1,19 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [getAllTrackers](./react-native-tracker.getalltrackers.md) - -## getAllTrackers() function - -Retrieves all initialized trackers - -Signature: - -```typescript -export declare function getAllTrackers(): ReactNativeTracker[]; -``` -Returns: - -[ReactNativeTracker](./react-native-tracker.reactnativetracker.md)\[\] - -All initialized trackers - diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.gettracker.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.gettracker.md deleted file mode 100644 index 7a3376ae2..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.gettracker.md +++ /dev/null @@ -1,26 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [getTracker](./react-native-tracker.gettracker.md) - -## getTracker() function - -Retrieves an initialized tracker given its namespace - -Signature: - -```typescript -export declare function getTracker(trackerNamespace: string): ReactNativeTracker | undefined; -``` - -## Parameters - -| Parameter | Type | Description | -| --- | --- | --- | -| trackerNamespace | string | Tracker namespace | - -Returns: - -[ReactNativeTracker](./react-native-tracker.reactnativetracker.md) \| undefined - -Tracker instance if exists - diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.getwebviewcallback.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.getwebviewcallback.md deleted file mode 100644 index eb5648225..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.getwebviewcallback.md +++ /dev/null @@ -1,25 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [getWebViewCallback](./react-native-tracker.getwebviewcallback.md) - -## getWebViewCallback() function - -Enables tracking events from apps rendered in react-native-webview components. The apps need to use the Snowplow WebView tracker to track the events. - -To subscribe for the events, set the `onMessage` attribute: `` - -Signature: - -```typescript -export declare function getWebViewCallback(): (message: { - nativeEvent: { - data: string; - }; -}) => void; -``` -Returns: - -(message: { nativeEvent: { data: string; }; }) => void - -Callback to subscribe for events from Web views tracked using the Snowplow WebView tracker. - diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.listitemviewprops.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.listitemviewprops.md deleted file mode 100644 index 70e90a10f..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.listitemviewprops.md +++ /dev/null @@ -1,18 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [ListItemViewProps](./react-native-tracker.listitemviewprops.md) - -## ListItemViewProps type - -Event tracking the view of an item in a list. If screen engagement tracking is enabled, the list item view events will be aggregated into a `screen_summary` entity. - -Schema: `iglu:com.snowplowanalytics.mobile/list_item_view/jsonschema/1-0-0` - -Signature: - -```typescript -export declare type ListItemViewProps = { - index: number; - itemsCount?: number; -}; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.logger.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.logger.md deleted file mode 100644 index edbfd7edd..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.logger.md +++ /dev/null @@ -1,22 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [Logger](./react-native-tracker.logger.md) - -## Logger interface - -Signature: - -```typescript -interface Logger -``` - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [debug](./react-native-tracker.logger.debug.md) | (message: string, ...extraParams: unknown\[\]) => void | | -| [error](./react-native-tracker.logger.error.md) | (message: string, error?: unknown, ...extraParams: unknown\[\]) => void | | -| [info](./react-native-tracker.logger.info.md) | (message: string, ...extraParams: unknown\[\]) => void | | -| [setLogLevel](./react-native-tracker.logger.setloglevel.md) | (level: LOG\_LEVEL) => void | | -| [warn](./react-native-tracker.logger.warn.md) | (message: string, error?: unknown, ...extraParams: unknown\[\]) => void | | - diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.logger.setloglevel.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.logger.setloglevel.md deleted file mode 100644 index 700d5b330..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.logger.setloglevel.md +++ /dev/null @@ -1,11 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [Logger](./react-native-tracker.logger.md) > [setLogLevel](./react-native-tracker.logger.setloglevel.md) - -## Logger.setLogLevel property - -Signature: - -```typescript -setLogLevel: (level: LOG_LEVEL) => void; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.md deleted file mode 100644 index 55fdabf3b..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.md +++ /dev/null @@ -1,94 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) - -## react-native-tracker package - -## Enumerations - -| Enumeration | Description | -| --- | --- | -| [LOG\_LEVEL](./react-native-tracker.log_level.md) | | -| [PlatformContextProperty](./react-native-tracker.platformcontextproperty.md) | | - -## Functions - -| Function | Description | -| --- | --- | -| [getAllTrackers()](./react-native-tracker.getalltrackers.md) | Retrieves all initialized trackers | -| [getTracker(trackerNamespace)](./react-native-tracker.gettracker.md) | Retrieves an initialized tracker given its namespace | -| [getWebViewCallback()](./react-native-tracker.getwebviewcallback.md) | Enables tracking events from apps rendered in react-native-webview components. The apps need to use the Snowplow WebView tracker to track the events.To subscribe for the events, set the onMessage attribute: <WebView onMessage={getWebViewCallback()} ... /> | -| [newTracker(configuration)](./react-native-tracker.newtracker.md) | Creates a new tracker instance with the given configuration | -| [removeAllTrackers()](./react-native-tracker.removealltrackers.md) | Removes all initialized trackers | -| [removeTracker(trackerNamespace)](./react-native-tracker.removetracker.md) | Removes a tracker given its namespace | - -## Interfaces - -| Interface | Description | -| --- | --- | -| [AppLifecycleConfiguration](./react-native-tracker.applifecycleconfiguration.md) | Configuration for app lifecycle tracking | -| [AsyncStorage](./react-native-tracker.asyncstorage.md) | | -| [CoreConfiguration](./react-native-tracker.coreconfiguration.md) | The configuration object for the tracker core library | -| [CorePlugin](./react-native-tracker.coreplugin.md) | Interface which defines Core Plugins | -| [CorePluginConfiguration](./react-native-tracker.corepluginconfiguration.md) | The configuration of the plugin to add | -| [DeepLinkConfiguration](./react-native-tracker.deeplinkconfiguration.md) | Configuration for deep link tracking | -| [DeviceTimestamp](./react-native-tracker.devicetimestamp.md) | A representation of a Device Timestamp (dtm) | -| [Emitter](./react-native-tracker.emitter.md) | Emitter is responsible for sending events to the collector. It manages the event queue and sends events in batches depending on configuration. | -| [EmitterConfiguration](./react-native-tracker.emitterconfiguration.md) | | -| [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) | | -| [EventPayloadAndContext](./react-native-tracker.eventpayloadandcontext.md) | Interface for returning a built event (PayloadBuilder) and context (Array of SelfDescribingJson). | -| [EventStoreConfiguration](./react-native-tracker.eventstoreconfiguration.md) | Configuration for the event store | -| [EventStoreIterator](./react-native-tracker.eventstoreiterator.md) | EventStoreIterator allows iterating over all events in the store. | -| [EventStorePayload](./react-native-tracker.eventstorepayload.md) | | -| [FormFocusOrChangeEvent](./react-native-tracker.formfocusorchangeevent.md) | Represents either a Form Focus or Form Change event When a user focuses on a form element or when a user makes a change to a form element. | -| [Logger](./react-native-tracker.logger.md) | | -| [PageViewEvent](./react-native-tracker.pageviewevent.md) | A Page View Event Represents a Page View, which is typically fired as soon as possible when a web page is loaded within the users browser. Often also fired on "virtual page views" within Single Page Applications (SPA). | -| [PayloadBuilder](./react-native-tracker.payloadbuilder.md) | Interface for mutable object encapsulating tracker payload | -| [PlatformContextConfiguration](./react-native-tracker.platformcontextconfiguration.md) | | -| [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) | Overrides for the values for properties of the platform context. | -| [RuleSet](./react-native-tracker.ruleset.md) | A ruleset has accept or reject properties that contain rules for matching Iglu schema URIs | -| [SessionConfiguration](./react-native-tracker.sessionconfiguration.md) | Configuration for session tracking | -| [SessionState](./react-native-tracker.sessionstate.md) | Current session state that is tracked in events. | -| [SubjectConfiguration](./react-native-tracker.subjectconfiguration.md) | Configuration of subject properties tracked with events | -| [TrackerConfiguration](./react-native-tracker.trackerconfiguration.md) | The configuration object for initialising the tracker | -| [TrackerCore](./react-native-tracker.trackercore.md) | Export interface containing all Core functions | -| [TrueTimestamp](./react-native-tracker.truetimestamp.md) | A representation of a True Timestamp (ttm) | - -## Variables - -| Variable | Description | -| --- | --- | -| [version](./react-native-tracker.version.md) | | - -## Type Aliases - -| Type Alias | Description | -| --- | --- | -| [ConditionalContextProvider](./react-native-tracker.conditionalcontextprovider.md) | Conditional context providers are two element arrays used to decide when to attach contexts, where: - the first element is some conditional criterion - the second element is any number of context primitives | -| [ContextFilter](./react-native-tracker.contextfilter.md) | A context filter is a user-supplied callback that is evaluated for each event to determine if the context associated with the filter should be attached to the event | -| [ContextGenerator](./react-native-tracker.contextgenerator.md) | A context generator is a user-supplied callback that is evaluated for each event to allow an additional context to be dynamically attached to the event | -| [ContextPrimitive](./react-native-tracker.contextprimitive.md) | A context primitive is either a self-describing JSON or a context generator | -| [DeepLinkReceivedProps](./react-native-tracker.deeplinkreceivedprops.md) | DeepLinkReceived event properties schema: iglu:com.snowplowanalytics.mobile/deep\_link\_received/jsonschema/1-0-0 | -| [EventBatch](./react-native-tracker.eventbatch.md) | A collection of event payloads which are sent to the collector. | -| [EventContext](./react-native-tracker.eventcontext.md) | EventContext type | -| [EventJson](./react-native-tracker.eventjson.md) | An array of tuples which represents the unprocessed JSON to be added to the Payload | -| [EventJsonWithKeys](./react-native-tracker.eventjsonwithkeys.md) | A tuple which represents the unprocessed JSON to be added to the Payload | -| [EventMethod](./react-native-tracker.eventmethod.md) | | -| [FilterProvider](./react-native-tracker.filterprovider.md) | A filter provider is a tuple that has two parts: a context filter and the context primitive(s) If the context filter evaluates to true, the tracker will attach the context primitive(s) | -| [JsonProcessor](./react-native-tracker.jsonprocessor.md) | A function which will processor the Json onto the injected PayloadBuilder | -| [ListItemViewProps](./react-native-tracker.listitemviewprops.md) | Event tracking the view of an item in a list. If screen engagement tracking is enabled, the list item view events will be aggregated into a screen_summary entity.Schema: iglu:com.snowplowanalytics.mobile/list_item_view/jsonschema/1-0-0 | -| [MessageNotificationAttachmentProps](./react-native-tracker.messagenotificationattachmentprops.md) | Attachment object that identify an attachment in the MessageNotification. | -| [MessageNotificationProps](./react-native-tracker.messagenotificationprops.md) | MessageNotification event properties schema: iglu:com.snowplowanalytics.mobile/message\_notification/jsonschema/1-0-0 | -| [Payload](./react-native-tracker.payload.md) | Type for a Payload dictionary | -| [ReactNativeTracker](./react-native-tracker.reactnativetracker.md) | The ReactNativeTracker type | -| [RequestFailure](./react-native-tracker.requestfailure.md) | The data that will be available to the onRequestFailure callback | -| [RuleSetProvider](./react-native-tracker.rulesetprovider.md) | A ruleset provider is aa tuple that has two parts: a ruleset and the context primitive(s) If the ruleset allows the current event schema URI, the tracker will attach the context primitive(s) | -| [ScreenSize](./react-native-tracker.screensize.md) | Screen size in pixels | -| [ScreenViewProps](./react-native-tracker.screenviewprops.md) | ScreenView event properties schema: iglu:com.snowplowanalytics.mobile/screen\_view/jsonschema/1-0-0 | -| [ScrollChangedProps](./react-native-tracker.scrollchangedprops.md) | Event tracked when a scroll view's scroll position changes. If screen engagement tracking is enabled, the scroll changed events will be aggregated into a screen_summary entity.Schema: iglu:com.snowplowanalytics.mobile/scroll_changed/jsonschema/1-0-0 | -| [SelfDescribing](./react-native-tracker.selfdescribing.md) | Interface for any self-describing JSON such as context entities or self-describing events | -| [StructuredProps](./react-native-tracker.structuredprops.md) | Properties for a structured event. A classic style of event tracking, allows for easier movement between analytics systems. Self-describing events are preferred for their schema validation. | -| [Timestamp](./react-native-tracker.timestamp.md) | Algebraic datatype representing possible timestamp type choice | -| [TimingProps](./react-native-tracker.timingprops.md) | Timing event properties | -| [Trigger](./react-native-tracker.trigger.md) | Trigger for MessageNotification event | - diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.messagenotificationattachmentprops.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.messagenotificationattachmentprops.md deleted file mode 100644 index fe7d17288..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.messagenotificationattachmentprops.md +++ /dev/null @@ -1,17 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [MessageNotificationAttachmentProps](./react-native-tracker.messagenotificationattachmentprops.md) - -## MessageNotificationAttachmentProps type - -Attachment object that identify an attachment in the MessageNotification. - -Signature: - -```typescript -export declare type MessageNotificationAttachmentProps = { - identifier: string; - type: string; - url: string; -}; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.messagenotificationprops.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.messagenotificationprops.md deleted file mode 100644 index 392fe4a38..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.messagenotificationprops.md +++ /dev/null @@ -1,35 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [MessageNotificationProps](./react-native-tracker.messagenotificationprops.md) - -## MessageNotificationProps type - -MessageNotification event properties schema: iglu:com.snowplowanalytics.mobile/message\_notification/jsonschema/1-0-0 - -Signature: - -```typescript -export declare type MessageNotificationProps = { - action?: string; - attachments?: MessageNotificationAttachmentProps[]; - body: string; - bodyLocArgs?: string[]; - bodyLocKey?: string; - category?: string; - contentAvailable?: boolean; - group?: string; - icon?: string; - notificationCount?: number; - notificationTimestamp?: string; - sound?: string; - subtitle?: string; - tag?: string; - threadIdentifier?: string; - title: string; - titleLocArgs?: string[]; - titleLocKey?: string; - trigger: Trigger; -}; -``` -References: [MessageNotificationAttachmentProps](./react-native-tracker.messagenotificationattachmentprops.md), [Trigger](./react-native-tracker.trigger.md) - diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.newtracker.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.newtracker.md deleted file mode 100644 index 8859e9070..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.newtracker.md +++ /dev/null @@ -1,26 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [newTracker](./react-native-tracker.newtracker.md) - -## newTracker() function - -Creates a new tracker instance with the given configuration - -Signature: - -```typescript -export declare function newTracker(configuration: Configuration): Promise; -``` - -## Parameters - -| Parameter | Type | Description | -| --- | --- | --- | -| configuration | Configuration | Configuration for the tracker | - -Returns: - -Promise<[ReactNativeTracker](./react-native-tracker.reactnativetracker.md)> - -Tracker instance - diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.pageviewevent.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.pageviewevent.md deleted file mode 100644 index 87f820cf5..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.pageviewevent.md +++ /dev/null @@ -1,22 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PageViewEvent](./react-native-tracker.pageviewevent.md) - -## PageViewEvent interface - -A Page View Event Represents a Page View, which is typically fired as soon as possible when a web page is loaded within the users browser. Often also fired on "virtual page views" within Single Page Applications (SPA). - -Signature: - -```typescript -interface PageViewEvent -``` - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [pageTitle?](./react-native-tracker.pageviewevent.pagetitle.md) | string \| null | (Optional) The current page title in the users browser | -| [pageUrl?](./react-native-tracker.pageviewevent.pageurl.md) | string \| null | (Optional) The current URL visible in the users browser | -| [referrer?](./react-native-tracker.pageviewevent.referrer.md) | string \| null | (Optional) The URL of the referring page | - diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.pageviewevent.referrer.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.pageviewevent.referrer.md deleted file mode 100644 index 9796c0cd6..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.pageviewevent.referrer.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PageViewEvent](./react-native-tracker.pageviewevent.md) > [referrer](./react-native-tracker.pageviewevent.referrer.md) - -## PageViewEvent.referrer property - -The URL of the referring page - -Signature: - -```typescript -referrer?: string | null; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.payloadbuilder.build.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.payloadbuilder.build.md deleted file mode 100644 index 473ffa6d9..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.payloadbuilder.build.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PayloadBuilder](./react-native-tracker.payloadbuilder.md) > [build](./react-native-tracker.payloadbuilder.build.md) - -## PayloadBuilder.build property - -Builds and returns the Payload - -Signature: - -```typescript -build: () => Payload; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.payloadbuilder.getjson.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.payloadbuilder.getjson.md deleted file mode 100644 index 0007e17f7..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.payloadbuilder.getjson.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PayloadBuilder](./react-native-tracker.payloadbuilder.md) > [getJson](./react-native-tracker.payloadbuilder.getjson.md) - -## PayloadBuilder.getJson property - -Gets all JSON objects added to payload - -Signature: - -```typescript -getJson: () => EventJson; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.payloadbuilder.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.payloadbuilder.md deleted file mode 100644 index 656667e94..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.payloadbuilder.md +++ /dev/null @@ -1,27 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PayloadBuilder](./react-native-tracker.payloadbuilder.md) - -## PayloadBuilder interface - -Interface for mutable object encapsulating tracker payload - -Signature: - -```typescript -interface PayloadBuilder -``` - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [add](./react-native-tracker.payloadbuilder.add.md) | (key: string, value: unknown) => void | Adds an entry to the Payload | -| [addContextEntity](./react-native-tracker.payloadbuilder.addcontextentity.md) | (entity: SelfDescribingJson) => void | Caches a context entity to be added to payload on build | -| [addDict](./react-native-tracker.payloadbuilder.adddict.md) | (dict: Payload) => void | Merges a payload into the existing payload | -| [addJson](./react-native-tracker.payloadbuilder.addjson.md) | (keyIfEncoded: string, keyIfNotEncoded: string, json: Record<string, unknown>) => void | Caches a JSON object to be added to payload on build | -| [build](./react-native-tracker.payloadbuilder.build.md) | () => Payload | Builds and returns the Payload | -| [getJson](./react-native-tracker.payloadbuilder.getjson.md) | () => EventJson | Gets all JSON objects added to payload | -| [getPayload](./react-native-tracker.payloadbuilder.getpayload.md) | () => Payload | Gets the current payload, before cached JSON is processed | -| [withJsonProcessor](./react-native-tracker.payloadbuilder.withjsonprocessor.md) | (jsonProcessor: JsonProcessor) => void | Adds a function which will be executed when building the payload to process the JSON which has been added to this payload | - diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextconfiguration.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextconfiguration.md deleted file mode 100644 index dbcbbbe9e..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextconfiguration.md +++ /dev/null @@ -1,20 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextConfiguration](./react-native-tracker.platformcontextconfiguration.md) - -## PlatformContextConfiguration interface - -Signature: - -```typescript -export interface PlatformContextConfiguration -``` - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [platformContext?](./react-native-tracker.platformcontextconfiguration.platformcontext.md) | boolean | (Optional) Whether to track the mobile context with information about the device. Note: Only some properties (osType, osVersion, deviceManufacturer, deviceModel, resolution, language, scale) will be tracked by default. Other properties can be assigned using the PlatformContextRetriever. | -| [platformContextProperties?](./react-native-tracker.platformcontextconfiguration.platformcontextproperties.md) | [PlatformContextProperty](./react-native-tracker.platformcontextproperty.md)\[\] | (Optional) List of properties of the platform context to track. If not passed and platformContext is enabled, all available properties will be tracked. The required osType, osVersion, deviceManufacturer, and deviceModel properties will be tracked in the entity regardless of this setting. | -| [platformContextRetriever?](./react-native-tracker.platformcontextconfiguration.platformcontextretriever.md) | [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) | (Optional) Set of callbacks to be used to retrieve properties of the platform context. Overrides the tracker implementation for setting the properties. | - diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextconfiguration.platformcontext.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextconfiguration.platformcontext.md deleted file mode 100644 index 1bd9ded23..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextconfiguration.platformcontext.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextConfiguration](./react-native-tracker.platformcontextconfiguration.md) > [platformContext](./react-native-tracker.platformcontextconfiguration.platformcontext.md) - -## PlatformContextConfiguration.platformContext property - -Whether to track the mobile context with information about the device. Note: Only some properties (osType, osVersion, deviceManufacturer, deviceModel, resolution, language, scale) will be tracked by default. Other properties can be assigned using the PlatformContextRetriever. - -Signature: - -```typescript -platformContext?: boolean; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextconfiguration.platformcontextproperties.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextconfiguration.platformcontextproperties.md deleted file mode 100644 index c8b5a4c0a..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextconfiguration.platformcontextproperties.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextConfiguration](./react-native-tracker.platformcontextconfiguration.md) > [platformContextProperties](./react-native-tracker.platformcontextconfiguration.platformcontextproperties.md) - -## PlatformContextConfiguration.platformContextProperties property - -List of properties of the platform context to track. If not passed and `platformContext` is enabled, all available properties will be tracked. The required `osType`, `osVersion`, `deviceManufacturer`, and `deviceModel` properties will be tracked in the entity regardless of this setting. - -Signature: - -```typescript -platformContextProperties?: PlatformContextProperty[]; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextconfiguration.platformcontextretriever.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextconfiguration.platformcontextretriever.md deleted file mode 100644 index 5200d1c37..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextconfiguration.platformcontextretriever.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextConfiguration](./react-native-tracker.platformcontextconfiguration.md) > [platformContextRetriever](./react-native-tracker.platformcontextconfiguration.platformcontextretriever.md) - -## PlatformContextConfiguration.platformContextRetriever property - -Set of callbacks to be used to retrieve properties of the platform context. Overrides the tracker implementation for setting the properties. - -Signature: - -```typescript -platformContextRetriever?: PlatformContextRetriever; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextproperty.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextproperty.md deleted file mode 100644 index ecab1bfd9..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextproperty.md +++ /dev/null @@ -1,37 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextProperty](./react-native-tracker.platformcontextproperty.md) - -## PlatformContextProperty enum - -Signature: - -```typescript -export declare enum PlatformContextProperty -``` - -## Enumeration Members - -| Member | Value | Description | -| --- | --- | --- | -| AndroidIdfa | "androidIdfa" | Advertising identifier on Android. Note: This is not automatically assigned by the tracker as it may be considered as fingerprinting. You can assign it using the PlatformContextRetriever. | -| AppAvailableMemory | "appAvailableMemory" | Amount of memory in bytes available to the current app. The property is not tracked in the current version of the tracker due to the tracker not being able to access the API, see the issue here: https://github.com/snowplow/snowplow-ios-tracker/issues/772 Note: this property is not automatically assigned but can be assigned using the PlatformContextRetriever. | -| AppleIdfa | "appleIdfa" | Advertising identifier on iOS. Note: this property is not automatically assigned but can be assigned using the PlatformContextRetriever. | -| AppleIdfv | "appleIdfv" | UUID identifier for vendors on iOS. Note: this property is not automatically assigned but can be assigned using the PlatformContextRetriever. | -| AppSetId | "appSetId" | Android vendor ID scoped to the set of apps published under the same Google Play developer account (see https://developer.android.com/training/articles/app-set-id). Note: This is not automatically assigned by the tracker as it may be considered as fingerprinting. You can assign it using the PlatformContextRetriever. | -| AppSetIdScope | "appSetIdScope" | Scope of the appSetId. Can be scoped to the app or to a developer account on an app store (all apps from the same developer on the same device will have the same ID). Note: This is not automatically assigned by the tracker as it may be considered as fingerprinting. You can assign it using the PlatformContextRetriever. | -| AvailableStorage | "availableStorage" | Bytes of storage remaining. Note: This is not automatically assigned by the tracker as it may be considered as fingerprinting. You can assign it using the PlatformContextRetriever. | -| BatteryLevel | "batteryLevel" | Remaining battery level as an integer percentage of total battery capacity. Note: this property is not automatically assigned but can be assigned using the PlatformContextRetriever. | -| BatteryState | "batteryState" | Battery state for the device. Note: this property is not automatically assigned but can be assigned using the PlatformContextRetriever. | -| Carrier | "carrier" | The carrier of the SIM inserted in the device. Note: this property is not automatically assigned but can be assigned using the PlatformContextRetriever. | -| IsPortrait | "isPortrait" | A Boolean indicating whether the device orientation is portrait (either upright or upside down). Note: This is not automatically assigned by the tracker as it may be considered as fingerprinting. You can assign it using the PlatformContextRetriever. | -| Language | "language" | System language currently used on the device (ISO 639). | -| LowPowerMode | "lowPowerMode" | A Boolean indicating whether Low Power Mode is enabled. | -| NetworkTechnology | "networkTechnology" | Radio access technology that the device is using. Note: this property is not automatically assigned but can be assigned using the PlatformContextRetriever. | -| NetworkType | "networkType" | Type of network the device is connected to. Note: this property is not automatically assigned but can be assigned using the PlatformContextRetriever. | -| PhysicalMemory | "physicalMemory" | Total physical system memory in bytes. Note: this property is not automatically assigned but can be assigned using the PlatformContextRetriever. | -| Resolution | "resolution" | Screen resolution in pixels. Arrives in the form of WIDTHxHEIGHT (e.g., 1200x900). Doesn't change when device orientation changes. Note: This is not automatically assigned by the tracker as it may be considered as fingerprinting. You can assign it using the PlatformContextRetriever. | -| Scale | "scale" | Scale factor used to convert logical coordinates to device coordinates of the screen (uses UIScreen.scale on iOS). | -| SystemAvailableMemory | "systemAvailableMemory" | Available memory on the system in bytes (Android only). Note: This is not automatically assigned by the tracker as it may be considered as fingerprinting. You can assign it using the PlatformContextRetriever. | -| TotalStorage | "totalStorage" | Total size of storage in bytes. Note: This is not automatically assigned by the tracker as it may be considered as fingerprinting. You can assign it using the PlatformContextRetriever. | - diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getandroididfa.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getandroididfa.md deleted file mode 100644 index ddb929aba..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getandroididfa.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getAndroidIdfa](./react-native-tracker.platformcontextretriever.getandroididfa.md) - -## PlatformContextRetriever.getAndroidIdfa property - -Advertising identifier on Android. - -Signature: - -```typescript -getAndroidIdfa?: () => Promise; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getappavailablememory.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getappavailablememory.md deleted file mode 100644 index b3d16dd2c..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getappavailablememory.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getAppAvailableMemory](./react-native-tracker.platformcontextretriever.getappavailablememory.md) - -## PlatformContextRetriever.getAppAvailableMemory property - -Amount of memory in bytes available to the current app - -Signature: - -```typescript -getAppAvailableMemory?: () => Promise; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getappleidfa.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getappleidfa.md deleted file mode 100644 index d7df9689b..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getappleidfa.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getAppleIdfa](./react-native-tracker.platformcontextretriever.getappleidfa.md) - -## PlatformContextRetriever.getAppleIdfa property - -Advertising identifier on iOS (UUID formatted string) - -Signature: - -```typescript -getAppleIdfa?: () => Promise; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getappleidfv.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getappleidfv.md deleted file mode 100644 index 708c2fab8..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getappleidfv.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getAppleIdfv](./react-native-tracker.platformcontextretriever.getappleidfv.md) - -## PlatformContextRetriever.getAppleIdfv property - -UUID identifier for vendors on iOS - -Signature: - -```typescript -getAppleIdfv?: () => Promise; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getappsetid.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getappsetid.md deleted file mode 100644 index 26883e060..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getappsetid.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getAppSetId](./react-native-tracker.platformcontextretriever.getappsetid.md) - -## PlatformContextRetriever.getAppSetId property - -Android vendor ID scoped to the set of apps published under the same Google Play developer account (see https://developer.android.com/training/articles/app-set-id). - -Signature: - -```typescript -getAppSetId?: () => Promise; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getappsetidscope.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getappsetidscope.md deleted file mode 100644 index ba739a067..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getappsetidscope.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getAppSetIdScope](./react-native-tracker.platformcontextretriever.getappsetidscope.md) - -## PlatformContextRetriever.getAppSetIdScope property - -Scope of the `appSetId`. Can be scoped to the app or to a developer account on an app store (all apps from the same developer on the same device will have the same ID). - -Signature: - -```typescript -getAppSetIdScope?: () => Promise; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getavailablestorage.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getavailablestorage.md deleted file mode 100644 index 3e272c06d..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getavailablestorage.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getAvailableStorage](./react-native-tracker.platformcontextretriever.getavailablestorage.md) - -## PlatformContextRetriever.getAvailableStorage property - -Bytes of storage remaining - -Signature: - -```typescript -getAvailableStorage?: () => Promise; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getbatterylevel.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getbatterylevel.md deleted file mode 100644 index 903119131..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getbatterylevel.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getBatteryLevel](./react-native-tracker.platformcontextretriever.getbatterylevel.md) - -## PlatformContextRetriever.getBatteryLevel property - -Remaining battery level as an integer percentage of total battery capacity - -Signature: - -```typescript -getBatteryLevel?: () => Promise; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getbatterystate.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getbatterystate.md deleted file mode 100644 index 572cf8433..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getbatterystate.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getBatteryState](./react-native-tracker.platformcontextretriever.getbatterystate.md) - -## PlatformContextRetriever.getBatteryState property - -Battery state for the device - -Signature: - -```typescript -getBatteryState?: () => Promise<'unplugged' | 'charging' | 'full' | undefined>; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getcarrier.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getcarrier.md deleted file mode 100644 index 1e585d9e3..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getcarrier.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getCarrier](./react-native-tracker.platformcontextretriever.getcarrier.md) - -## PlatformContextRetriever.getCarrier property - -The carrier of the SIM inserted in the device - -Signature: - -```typescript -getCarrier?: () => Promise; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getdevicemanufacturer.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getdevicemanufacturer.md deleted file mode 100644 index fd01882c8..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getdevicemanufacturer.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getDeviceManufacturer](./react-native-tracker.platformcontextretriever.getdevicemanufacturer.md) - -## PlatformContextRetriever.getDeviceManufacturer property - -The manufacturer of the product/hardware - -Signature: - -```typescript -getDeviceManufacturer?: () => Promise; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getdevicemodel.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getdevicemodel.md deleted file mode 100644 index d4e678e30..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getdevicemodel.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getDeviceModel](./react-native-tracker.platformcontextretriever.getdevicemodel.md) - -## PlatformContextRetriever.getDeviceModel property - -The end-user-visible name for the end product - -Signature: - -```typescript -getDeviceModel?: () => Promise; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getlanguage.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getlanguage.md deleted file mode 100644 index f898f2ee3..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getlanguage.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getLanguage](./react-native-tracker.platformcontextretriever.getlanguage.md) - -## PlatformContextRetriever.getLanguage property - -System language currently used on the device (ISO 639) - -Signature: - -```typescript -getLanguage?: () => Promise; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getlowpowermode.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getlowpowermode.md deleted file mode 100644 index a977aee13..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getlowpowermode.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getLowPowerMode](./react-native-tracker.platformcontextretriever.getlowpowermode.md) - -## PlatformContextRetriever.getLowPowerMode property - -A Boolean indicating whether Low Power Mode is enabled - -Signature: - -```typescript -getLowPowerMode?: () => Promise; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getnetworktechnology.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getnetworktechnology.md deleted file mode 100644 index aaea92c69..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getnetworktechnology.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getNetworkTechnology](./react-native-tracker.platformcontextretriever.getnetworktechnology.md) - -## PlatformContextRetriever.getNetworkTechnology property - -Radio access technology that the device is using - -Signature: - -```typescript -getNetworkTechnology?: () => Promise; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getnetworktype.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getnetworktype.md deleted file mode 100644 index 1890e85a6..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getnetworktype.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getNetworkType](./react-native-tracker.platformcontextretriever.getnetworktype.md) - -## PlatformContextRetriever.getNetworkType property - -Type of network the device is connected to - -Signature: - -```typescript -getNetworkType?: () => Promise<'mobile' | 'wifi' | 'offline' | undefined>; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getostype.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getostype.md deleted file mode 100644 index 3c2904a26..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getostype.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getOsType](./react-native-tracker.platformcontextretriever.getostype.md) - -## PlatformContextRetriever.getOsType property - -Operating system type (e.g., ios, tvos, watchos, osx, android) - -Signature: - -```typescript -getOsType?: () => Promise; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getosversion.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getosversion.md deleted file mode 100644 index 204cf64b2..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getosversion.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getOsVersion](./react-native-tracker.platformcontextretriever.getosversion.md) - -## PlatformContextRetriever.getOsVersion property - -The current version of the operating system - -Signature: - -```typescript -getOsVersion?: () => Promise; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getphysicalmemory.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getphysicalmemory.md deleted file mode 100644 index 333e960da..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getphysicalmemory.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getPhysicalMemory](./react-native-tracker.platformcontextretriever.getphysicalmemory.md) - -## PlatformContextRetriever.getPhysicalMemory property - -Total physical system memory in bytes - -Signature: - -```typescript -getPhysicalMemory?: () => Promise; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getresolution.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getresolution.md deleted file mode 100644 index 12ea40cc5..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getresolution.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getResolution](./react-native-tracker.platformcontextretriever.getresolution.md) - -## PlatformContextRetriever.getResolution property - -Screen resolution in pixels. Arrives in the form of WIDTHxHEIGHT (e.g., 1200x900). Doesn't change when device orientation changes - -Signature: - -```typescript -getResolution?: () => Promise; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getscale.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getscale.md deleted file mode 100644 index 3a4f0351a..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getscale.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getScale](./react-native-tracker.platformcontextretriever.getscale.md) - -## PlatformContextRetriever.getScale property - -Scale factor used to convert logical coordinates to device coordinates of the screen (uses UIScreen.scale on iOS) - -Signature: - -```typescript -getScale?: () => Promise; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getsystemavailablememory.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getsystemavailablememory.md deleted file mode 100644 index 43e158abc..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.getsystemavailablememory.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getSystemAvailableMemory](./react-native-tracker.platformcontextretriever.getsystemavailablememory.md) - -## PlatformContextRetriever.getSystemAvailableMemory property - -Available memory on the system in bytes (Android only). - -Signature: - -```typescript -getSystemAvailableMemory?: () => Promise; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.gettotalstorage.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.gettotalstorage.md deleted file mode 100644 index af2f197c9..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.gettotalstorage.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getTotalStorage](./react-native-tracker.platformcontextretriever.gettotalstorage.md) - -## PlatformContextRetriever.getTotalStorage property - -Total size of storage in bytes - -Signature: - -```typescript -getTotalStorage?: () => Promise; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.isportrait.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.isportrait.md deleted file mode 100644 index dcbcf2877..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.isportrait.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [isPortrait](./react-native-tracker.platformcontextretriever.isportrait.md) - -## PlatformContextRetriever.isPortrait property - -A Boolean indicating whether the device orientation is portrait (either upright or upside down) - -Signature: - -```typescript -isPortrait?: () => Promise; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.md deleted file mode 100644 index cbaea8df5..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.platformcontextretriever.md +++ /dev/null @@ -1,43 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) - -## PlatformContextRetriever interface - -Overrides for the values for properties of the platform context. - -Signature: - -```typescript -export interface PlatformContextRetriever -``` - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [getAndroidIdfa?](./react-native-tracker.platformcontextretriever.getandroididfa.md) | () => Promise<string \| undefined> | (Optional) Advertising identifier on Android. | -| [getAppAvailableMemory?](./react-native-tracker.platformcontextretriever.getappavailablememory.md) | () => Promise<number \| undefined> | (Optional) Amount of memory in bytes available to the current app | -| [getAppleIdfa?](./react-native-tracker.platformcontextretriever.getappleidfa.md) | () => Promise<string \| undefined> | (Optional) Advertising identifier on iOS (UUID formatted string) | -| [getAppleIdfv?](./react-native-tracker.platformcontextretriever.getappleidfv.md) | () => Promise<string \| undefined> | (Optional) UUID identifier for vendors on iOS | -| [getAppSetId?](./react-native-tracker.platformcontextretriever.getappsetid.md) | () => Promise<string \| undefined> | (Optional) Android vendor ID scoped to the set of apps published under the same Google Play developer account (see https://developer.android.com/training/articles/app-set-id). | -| [getAppSetIdScope?](./react-native-tracker.platformcontextretriever.getappsetidscope.md) | () => Promise<string \| undefined> | (Optional) Scope of the appSetId. Can be scoped to the app or to a developer account on an app store (all apps from the same developer on the same device will have the same ID). | -| [getAvailableStorage?](./react-native-tracker.platformcontextretriever.getavailablestorage.md) | () => Promise<number \| undefined> | (Optional) Bytes of storage remaining | -| [getBatteryLevel?](./react-native-tracker.platformcontextretriever.getbatterylevel.md) | () => Promise<number \| undefined> | (Optional) Remaining battery level as an integer percentage of total battery capacity | -| [getBatteryState?](./react-native-tracker.platformcontextretriever.getbatterystate.md) | () => Promise<'unplugged' \| 'charging' \| 'full' \| undefined> | (Optional) Battery state for the device | -| [getCarrier?](./react-native-tracker.platformcontextretriever.getcarrier.md) | () => Promise<string \| undefined> | (Optional) The carrier of the SIM inserted in the device | -| [getDeviceManufacturer?](./react-native-tracker.platformcontextretriever.getdevicemanufacturer.md) | () => Promise<string> | (Optional) The manufacturer of the product/hardware | -| [getDeviceModel?](./react-native-tracker.platformcontextretriever.getdevicemodel.md) | () => Promise<string> | (Optional) The end-user-visible name for the end product | -| [getLanguage?](./react-native-tracker.platformcontextretriever.getlanguage.md) | () => Promise<string \| undefined> | (Optional) System language currently used on the device (ISO 639) | -| [getLowPowerMode?](./react-native-tracker.platformcontextretriever.getlowpowermode.md) | () => Promise<boolean \| undefined> | (Optional) A Boolean indicating whether Low Power Mode is enabled | -| [getNetworkTechnology?](./react-native-tracker.platformcontextretriever.getnetworktechnology.md) | () => Promise<string \| undefined> | (Optional) Radio access technology that the device is using | -| [getNetworkType?](./react-native-tracker.platformcontextretriever.getnetworktype.md) | () => Promise<'mobile' \| 'wifi' \| 'offline' \| undefined> | (Optional) Type of network the device is connected to | -| [getOsType?](./react-native-tracker.platformcontextretriever.getostype.md) | () => Promise<string> | (Optional) Operating system type (e.g., ios, tvos, watchos, osx, android) | -| [getOsVersion?](./react-native-tracker.platformcontextretriever.getosversion.md) | () => Promise<string> | (Optional) The current version of the operating system | -| [getPhysicalMemory?](./react-native-tracker.platformcontextretriever.getphysicalmemory.md) | () => Promise<number \| undefined> | (Optional) Total physical system memory in bytes | -| [getResolution?](./react-native-tracker.platformcontextretriever.getresolution.md) | () => Promise<string \| undefined> | (Optional) Screen resolution in pixels. Arrives in the form of WIDTHxHEIGHT (e.g., 1200x900). Doesn't change when device orientation changes | -| [getScale?](./react-native-tracker.platformcontextretriever.getscale.md) | () => Promise<number \| undefined> | (Optional) Scale factor used to convert logical coordinates to device coordinates of the screen (uses UIScreen.scale on iOS) | -| [getSystemAvailableMemory?](./react-native-tracker.platformcontextretriever.getsystemavailablememory.md) | () => Promise<number \| undefined> | (Optional) Available memory on the system in bytes (Android only). | -| [getTotalStorage?](./react-native-tracker.platformcontextretriever.gettotalstorage.md) | () => Promise<number \| undefined> | (Optional) Total size of storage in bytes | -| [isPortrait?](./react-native-tracker.platformcontextretriever.isportrait.md) | () => Promise<boolean \| undefined> | (Optional) A Boolean indicating whether the device orientation is portrait (either upright or upside down) | - diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.reactnativetracker.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.reactnativetracker.md deleted file mode 100644 index c6354bb03..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.reactnativetracker.md +++ /dev/null @@ -1,54 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [ReactNativeTracker](./react-native-tracker.reactnativetracker.md) - -## ReactNativeTracker type - -The ReactNativeTracker type - -Signature: - -```typescript -export declare type ReactNativeTracker = { - namespace: string; - readonly trackSelfDescribingEvent: = Record>(argmap: SelfDescribing, contexts?: EventContext[]) => void; - readonly trackScreenViewEvent: (argmap: ScreenViewProps, contexts?: EventContext[]) => void; - readonly trackScrollChangedEvent: (argmap: ScrollChangedProps, contexts?: EventContext[]) => void; - readonly trackListItemViewEvent: (argmap: ListItemViewProps, contexts?: EventContext[]) => void; - readonly trackStructuredEvent: (argmap: StructuredProps, contexts?: EventContext[]) => void; - readonly trackPageViewEvent: (argmap: PageViewEvent, contexts?: EventContext[]) => void; - readonly trackTimingEvent: (argmap: TimingProps, contexts?: EventContext[]) => void; - readonly trackDeepLinkReceivedEvent: (argmap: DeepLinkReceivedProps, contexts?: EventContext[]) => void; - readonly trackMessageNotificationEvent: (argmap: MessageNotificationProps, contexts?: EventContext[]) => void; - addGlobalContexts(contexts: Array | Record): void; - clearGlobalContexts(): void; - removeGlobalContexts(contexts: Array): void; - addPlugin(configuration: BrowserPluginConfiguration): void; - flush: () => Promise; - readonly setAppId: (appId: string) => void; - readonly setPlatform: (value: string) => void; - readonly setUserId: (newUid: string) => void; - readonly setNetworkUserId: (newNuid: string | undefined) => void; - readonly setDomainUserId: (newDuid: string | undefined) => void; - readonly setIpAddress: (newIp: string) => void; - readonly setUseragent: (newUagent: string) => void; - readonly setTimezone: (newTz: string) => void; - readonly setLanguage: (newLang: string) => void; - readonly setScreenResolution: (newRes: ScreenSize) => void; - readonly setScreenViewport: (newView: ScreenSize) => void; - readonly setColorDepth: (newLang: number) => void; - readonly setSubjectData: (config: SubjectConfiguration) => void; - readonly getSessionUserId: () => Promise; - readonly getSessionId: () => Promise; - readonly getSessionIndex: () => Promise; - readonly getSessionState: () => Promise; - readonly getIsInBackground: () => boolean | undefined; - readonly getBackgroundIndex: () => number | undefined; - readonly getForegroundIndex: () => number | undefined; - readonly enablePlatformContext: () => Promise; - readonly disablePlatformContext: () => void; - readonly refreshPlatformContext: () => Promise; -}; -``` -References: [SelfDescribing](./react-native-tracker.selfdescribing.md), [EventContext](./react-native-tracker.eventcontext.md), [ScreenViewProps](./react-native-tracker.screenviewprops.md), [ScrollChangedProps](./react-native-tracker.scrollchangedprops.md), [ListItemViewProps](./react-native-tracker.listitemviewprops.md), [StructuredProps](./react-native-tracker.structuredprops.md), [TimingProps](./react-native-tracker.timingprops.md), [DeepLinkReceivedProps](./react-native-tracker.deeplinkreceivedprops.md), [MessageNotificationProps](./react-native-tracker.messagenotificationprops.md), [ScreenSize](./react-native-tracker.screensize.md), [SubjectConfiguration](./react-native-tracker.subjectconfiguration.md), [SessionState](./react-native-tracker.sessionstate.md) - diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.removealltrackers.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.removealltrackers.md deleted file mode 100644 index f89c21a42..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.removealltrackers.md +++ /dev/null @@ -1,19 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [removeAllTrackers](./react-native-tracker.removealltrackers.md) - -## removeAllTrackers() function - -Removes all initialized trackers - -Signature: - -```typescript -export declare function removeAllTrackers(): void; -``` -Returns: - -void - -- A boolean promise - diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.removetracker.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.removetracker.md deleted file mode 100644 index fd63a38eb..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.removetracker.md +++ /dev/null @@ -1,24 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [removeTracker](./react-native-tracker.removetracker.md) - -## removeTracker() function - -Removes a tracker given its namespace - -Signature: - -```typescript -export declare function removeTracker(trackerNamespace: string): void; -``` - -## Parameters - -| Parameter | Type | Description | -| --- | --- | --- | -| trackerNamespace | string | Tracker namespace | - -Returns: - -void - diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.ruleset.accept.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.ruleset.accept.md deleted file mode 100644 index d47792084..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.ruleset.accept.md +++ /dev/null @@ -1,11 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [RuleSet](./react-native-tracker.ruleset.md) > [accept](./react-native-tracker.ruleset.accept.md) - -## RuleSet.accept property - -Signature: - -```typescript -accept?: Array | string; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.ruleset.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.ruleset.md deleted file mode 100644 index 157720f6c..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.ruleset.md +++ /dev/null @@ -1,21 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [RuleSet](./react-native-tracker.ruleset.md) - -## RuleSet interface - -A ruleset has accept or reject properties that contain rules for matching Iglu schema URIs - -Signature: - -```typescript -interface RuleSet -``` - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [accept?](./react-native-tracker.ruleset.accept.md) | Array<string> \| string | (Optional) | -| [reject?](./react-native-tracker.ruleset.reject.md) | Array<string> \| string | (Optional) | - diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.ruleset.reject.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.ruleset.reject.md deleted file mode 100644 index a3b017794..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.ruleset.reject.md +++ /dev/null @@ -1,11 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [RuleSet](./react-native-tracker.ruleset.md) > [reject](./react-native-tracker.ruleset.reject.md) - -## RuleSet.reject property - -Signature: - -```typescript -reject?: Array | string; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.screensize.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.screensize.md deleted file mode 100644 index fb7a11e45..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.screensize.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [ScreenSize](./react-native-tracker.screensize.md) - -## ScreenSize type - -Screen size in pixels - -Signature: - -```typescript -export declare type ScreenSize = [number, number]; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.screenviewprops.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.screenviewprops.md deleted file mode 100644 index 22ed34862..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.screenviewprops.md +++ /dev/null @@ -1,21 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [ScreenViewProps](./react-native-tracker.screenviewprops.md) - -## ScreenViewProps type - -ScreenView event properties schema: iglu:com.snowplowanalytics.mobile/screen\_view/jsonschema/1-0-0 - -Signature: - -```typescript -export declare type ScreenViewProps = { - name: string; - id?: string; - type?: string; - previousName?: string; - previousId?: string; - previousType?: string; - transitionType?: string; -}; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.scrollchangedprops.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.scrollchangedprops.md deleted file mode 100644 index 32d3980b5..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.scrollchangedprops.md +++ /dev/null @@ -1,22 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [ScrollChangedProps](./react-native-tracker.scrollchangedprops.md) - -## ScrollChangedProps type - -Event tracked when a scroll view's scroll position changes. If screen engagement tracking is enabled, the scroll changed events will be aggregated into a `screen_summary` entity. - -Schema: `iglu:com.snowplowanalytics.mobile/scroll_changed/jsonschema/1-0-0` - -Signature: - -```typescript -export declare type ScrollChangedProps = { - yOffset?: number; - xOffset?: number; - viewHeight?: number; - viewWidth?: number; - contentHeight?: number; - contentWidth?: number; -}; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.selfdescribing.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.selfdescribing.md deleted file mode 100644 index 35c03afef..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.selfdescribing.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SelfDescribing](./react-native-tracker.selfdescribing.md) - -## SelfDescribing type - -Interface for any self-describing JSON such as context entities or self-describing events - -Signature: - -```typescript -export declare type SelfDescribing> = SelfDescribingJson; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.sessionconfiguration.backgroundsessiontimeout.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.sessionconfiguration.backgroundsessiontimeout.md deleted file mode 100644 index 823f3e277..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.sessionconfiguration.backgroundsessiontimeout.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SessionConfiguration](./react-native-tracker.sessionconfiguration.md) > [backgroundSessionTimeout](./react-native-tracker.sessionconfiguration.backgroundsessiontimeout.md) - -## SessionConfiguration.backgroundSessionTimeout property - -The amount of time in seconds before the session id is updated while the app is in the background - -Signature: - -```typescript -backgroundSessionTimeout?: number; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.sessionconfiguration.foregroundsessiontimeout.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.sessionconfiguration.foregroundsessiontimeout.md deleted file mode 100644 index 5282a3ef2..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.sessionconfiguration.foregroundsessiontimeout.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SessionConfiguration](./react-native-tracker.sessionconfiguration.md) > [foregroundSessionTimeout](./react-native-tracker.sessionconfiguration.foregroundsessiontimeout.md) - -## SessionConfiguration.foregroundSessionTimeout property - -The amount of time in seconds before the session id is updated while the app is in the foreground - -Signature: - -```typescript -foregroundSessionTimeout?: number; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.sessionconfiguration.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.sessionconfiguration.md deleted file mode 100644 index 1123c753c..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.sessionconfiguration.md +++ /dev/null @@ -1,22 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SessionConfiguration](./react-native-tracker.sessionconfiguration.md) - -## SessionConfiguration interface - -Configuration for session tracking - -Signature: - -```typescript -export interface SessionConfiguration -``` - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [backgroundSessionTimeout?](./react-native-tracker.sessionconfiguration.backgroundsessiontimeout.md) | number | (Optional) The amount of time in seconds before the session id is updated while the app is in the background | -| [foregroundSessionTimeout?](./react-native-tracker.sessionconfiguration.foregroundsessiontimeout.md) | number | (Optional) The amount of time in seconds before the session id is updated while the app is in the foreground | -| [sessionContext?](./react-native-tracker.sessionconfiguration.sessioncontext.md) | boolean | (Optional) Whether session context is attached to tracked events. | - diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.sessionconfiguration.sessioncontext.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.sessionconfiguration.sessioncontext.md deleted file mode 100644 index 080fd7c72..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.sessionconfiguration.sessioncontext.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SessionConfiguration](./react-native-tracker.sessionconfiguration.md) > [sessionContext](./react-native-tracker.sessionconfiguration.sessioncontext.md) - -## SessionConfiguration.sessionContext property - -Whether session context is attached to tracked events. - -Signature: - -```typescript -sessionContext?: boolean; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.sessionstate.eventindex.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.sessionstate.eventindex.md deleted file mode 100644 index 2fcff3c89..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.sessionstate.eventindex.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SessionState](./react-native-tracker.sessionstate.md) > [eventIndex](./react-native-tracker.sessionstate.eventindex.md) - -## SessionState.eventIndex property - -Optional index of the current event in the session - -Signature: - -```typescript -eventIndex?: number; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.sessionstate.firsteventid.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.sessionstate.firsteventid.md deleted file mode 100644 index 8cb3eb771..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.sessionstate.firsteventid.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SessionState](./react-native-tracker.sessionstate.md) > [firstEventId](./react-native-tracker.sessionstate.firsteventid.md) - -## SessionState.firstEventId property - -The optional identifier of the first event for this session - -Signature: - -```typescript -firstEventId?: string; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.sessionstate.firsteventtimestamp.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.sessionstate.firsteventtimestamp.md deleted file mode 100644 index 8277b59f8..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.sessionstate.firsteventtimestamp.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SessionState](./react-native-tracker.sessionstate.md) > [firstEventTimestamp](./react-native-tracker.sessionstate.firsteventtimestamp.md) - -## SessionState.firstEventTimestamp property - -Optional date-time timestamp of when the first event in the session was tracked - -Signature: - -```typescript -firstEventTimestamp?: string; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.sessionstate.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.sessionstate.md deleted file mode 100644 index a0a5ec91c..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.sessionstate.md +++ /dev/null @@ -1,27 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SessionState](./react-native-tracker.sessionstate.md) - -## SessionState interface - -Current session state that is tracked in events. - -Signature: - -```typescript -export interface SessionState -``` - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [eventIndex?](./react-native-tracker.sessionstate.eventindex.md) | number | (Optional) Optional index of the current event in the session | -| [firstEventId?](./react-native-tracker.sessionstate.firsteventid.md) | string | (Optional) The optional identifier of the first event for this session | -| [firstEventTimestamp?](./react-native-tracker.sessionstate.firsteventtimestamp.md) | string | (Optional) Optional date-time timestamp of when the first event in the session was tracked | -| [previousSessionId?](./react-native-tracker.sessionstate.previoussessionid.md) | string | (Optional) The previous session identifier for this user | -| [sessionId](./react-native-tracker.sessionstate.sessionid.md) | string | An identifier for the session | -| [sessionIndex](./react-native-tracker.sessionstate.sessionindex.md) | number | The index of the current session for this user | -| [storageMechanism](./react-native-tracker.sessionstate.storagemechanism.md) | string | The mechanism that the session information has been stored on the device | -| [userId](./react-native-tracker.sessionstate.userid.md) | string | An identifier for the user of the session | - diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.sessionstate.previoussessionid.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.sessionstate.previoussessionid.md deleted file mode 100644 index bd7063348..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.sessionstate.previoussessionid.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SessionState](./react-native-tracker.sessionstate.md) > [previousSessionId](./react-native-tracker.sessionstate.previoussessionid.md) - -## SessionState.previousSessionId property - -The previous session identifier for this user - -Signature: - -```typescript -previousSessionId?: string; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.sessionstate.sessionid.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.sessionstate.sessionid.md deleted file mode 100644 index 2a5411f66..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.sessionstate.sessionid.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SessionState](./react-native-tracker.sessionstate.md) > [sessionId](./react-native-tracker.sessionstate.sessionid.md) - -## SessionState.sessionId property - -An identifier for the session - -Signature: - -```typescript -sessionId: string; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.sessionstate.sessionindex.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.sessionstate.sessionindex.md deleted file mode 100644 index 132af44a1..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.sessionstate.sessionindex.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SessionState](./react-native-tracker.sessionstate.md) > [sessionIndex](./react-native-tracker.sessionstate.sessionindex.md) - -## SessionState.sessionIndex property - -The index of the current session for this user - -Signature: - -```typescript -sessionIndex: number; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.sessionstate.storagemechanism.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.sessionstate.storagemechanism.md deleted file mode 100644 index be6f76270..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.sessionstate.storagemechanism.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SessionState](./react-native-tracker.sessionstate.md) > [storageMechanism](./react-native-tracker.sessionstate.storagemechanism.md) - -## SessionState.storageMechanism property - -The mechanism that the session information has been stored on the device - -Signature: - -```typescript -storageMechanism: string; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.sessionstate.userid.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.sessionstate.userid.md deleted file mode 100644 index 9fd0de69e..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.sessionstate.userid.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SessionState](./react-native-tracker.sessionstate.md) > [userId](./react-native-tracker.sessionstate.userid.md) - -## SessionState.userId property - -An identifier for the user of the session - -Signature: - -```typescript -userId: string; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.structuredprops.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.structuredprops.md deleted file mode 100644 index 4d0ea6262..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.structuredprops.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [StructuredProps](./react-native-tracker.structuredprops.md) - -## StructuredProps type - -Properties for a structured event. A classic style of event tracking, allows for easier movement between analytics systems. Self-describing events are preferred for their schema validation. - -Signature: - -```typescript -export declare type StructuredProps = StructuredEvent; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.subjectconfiguration.colordepth.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.subjectconfiguration.colordepth.md deleted file mode 100644 index 293d0019e..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.subjectconfiguration.colordepth.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SubjectConfiguration](./react-native-tracker.subjectconfiguration.md) > [colorDepth](./react-native-tracker.subjectconfiguration.colordepth.md) - -## SubjectConfiguration.colorDepth property - -Color depth (integer) - -Signature: - -```typescript -colorDepth?: number; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.subjectconfiguration.domainuserid.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.subjectconfiguration.domainuserid.md deleted file mode 100644 index ae25b158c..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.subjectconfiguration.domainuserid.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SubjectConfiguration](./react-native-tracker.subjectconfiguration.md) > [domainUserId](./react-native-tracker.subjectconfiguration.domainuserid.md) - -## SubjectConfiguration.domainUserId property - -The domain user id (DUID) is a generated identifier that is stored in a first party cookie on Web. The React Native tracker does not assign it automatically. - -Signature: - -```typescript -domainUserId?: string; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.subjectconfiguration.ipaddress.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.subjectconfiguration.ipaddress.md deleted file mode 100644 index 9e2dbe11d..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.subjectconfiguration.ipaddress.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SubjectConfiguration](./react-native-tracker.subjectconfiguration.md) > [ipAddress](./react-native-tracker.subjectconfiguration.ipaddress.md) - -## SubjectConfiguration.ipAddress property - -Override the IP address of the device - -Signature: - -```typescript -ipAddress?: string; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.subjectconfiguration.language.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.subjectconfiguration.language.md deleted file mode 100644 index 381bc4ec0..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.subjectconfiguration.language.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SubjectConfiguration](./react-native-tracker.subjectconfiguration.md) > [language](./react-native-tracker.subjectconfiguration.language.md) - -## SubjectConfiguration.language property - -The language set in the device - -Signature: - -```typescript -language?: string; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.subjectconfiguration.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.subjectconfiguration.md deleted file mode 100644 index 142bbc301..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.subjectconfiguration.md +++ /dev/null @@ -1,29 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SubjectConfiguration](./react-native-tracker.subjectconfiguration.md) - -## SubjectConfiguration interface - -Configuration of subject properties tracked with events - -Signature: - -```typescript -export interface SubjectConfiguration -``` - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [colorDepth?](./react-native-tracker.subjectconfiguration.colordepth.md) | number | (Optional) Color depth (integer) | -| [domainUserId?](./react-native-tracker.subjectconfiguration.domainuserid.md) | string | (Optional) The domain user id (DUID) is a generated identifier that is stored in a first party cookie on Web. The React Native tracker does not assign it automatically. | -| [ipAddress?](./react-native-tracker.subjectconfiguration.ipaddress.md) | string | (Optional) Override the IP address of the device | -| [language?](./react-native-tracker.subjectconfiguration.language.md) | string | (Optional) The language set in the device | -| [networkUserId?](./react-native-tracker.subjectconfiguration.networkuserid.md) | string | (Optional) Override the network user id (UUIDv4) that is assigned by the collector and stored in cookies | -| [screenResolution?](./react-native-tracker.subjectconfiguration.screenresolution.md) | [ScreenSize](./react-native-tracker.screensize.md) | (Optional) The screen resolution | -| [screenViewport?](./react-native-tracker.subjectconfiguration.screenviewport.md) | [ScreenSize](./react-native-tracker.screensize.md) | (Optional) The screen viewport size | -| [timezone?](./react-native-tracker.subjectconfiguration.timezone.md) | string | (Optional) The timezone label | -| [useragent?](./react-native-tracker.subjectconfiguration.useragent.md) | string | (Optional) The custom user-agent. It overrides the user-agent used by default. | -| [userId?](./react-native-tracker.subjectconfiguration.userid.md) | string | (Optional) Business-defined user ID for this user | - diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.subjectconfiguration.networkuserid.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.subjectconfiguration.networkuserid.md deleted file mode 100644 index 94be46858..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.subjectconfiguration.networkuserid.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SubjectConfiguration](./react-native-tracker.subjectconfiguration.md) > [networkUserId](./react-native-tracker.subjectconfiguration.networkuserid.md) - -## SubjectConfiguration.networkUserId property - -Override the network user id (UUIDv4) that is assigned by the collector and stored in cookies - -Signature: - -```typescript -networkUserId?: string; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.subjectconfiguration.screenresolution.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.subjectconfiguration.screenresolution.md deleted file mode 100644 index 54cead3b9..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.subjectconfiguration.screenresolution.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SubjectConfiguration](./react-native-tracker.subjectconfiguration.md) > [screenResolution](./react-native-tracker.subjectconfiguration.screenresolution.md) - -## SubjectConfiguration.screenResolution property - -The screen resolution - -Signature: - -```typescript -screenResolution?: ScreenSize; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.subjectconfiguration.screenviewport.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.subjectconfiguration.screenviewport.md deleted file mode 100644 index 76e8df0ac..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.subjectconfiguration.screenviewport.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SubjectConfiguration](./react-native-tracker.subjectconfiguration.md) > [screenViewport](./react-native-tracker.subjectconfiguration.screenviewport.md) - -## SubjectConfiguration.screenViewport property - -The screen viewport size - -Signature: - -```typescript -screenViewport?: ScreenSize; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.subjectconfiguration.timezone.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.subjectconfiguration.timezone.md deleted file mode 100644 index 7e49640c4..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.subjectconfiguration.timezone.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SubjectConfiguration](./react-native-tracker.subjectconfiguration.md) > [timezone](./react-native-tracker.subjectconfiguration.timezone.md) - -## SubjectConfiguration.timezone property - -The timezone label - -Signature: - -```typescript -timezone?: string; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.subjectconfiguration.useragent.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.subjectconfiguration.useragent.md deleted file mode 100644 index cca9bdc93..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.subjectconfiguration.useragent.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SubjectConfiguration](./react-native-tracker.subjectconfiguration.md) > [useragent](./react-native-tracker.subjectconfiguration.useragent.md) - -## SubjectConfiguration.useragent property - -The custom user-agent. It overrides the user-agent used by default. - -Signature: - -```typescript -useragent?: string; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.subjectconfiguration.userid.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.subjectconfiguration.userid.md deleted file mode 100644 index 6a64efa57..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.subjectconfiguration.userid.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SubjectConfiguration](./react-native-tracker.subjectconfiguration.md) > [userId](./react-native-tracker.subjectconfiguration.userid.md) - -## SubjectConfiguration.userId property - -Business-defined user ID for this user - -Signature: - -```typescript -userId?: string; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.timingprops.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.timingprops.md deleted file mode 100644 index 6aaee34f7..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.timingprops.md +++ /dev/null @@ -1,18 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TimingProps](./react-native-tracker.timingprops.md) - -## TimingProps type - -Timing event properties - -Signature: - -```typescript -export declare type TimingProps = { - category: string; - variable: string; - timing: number; - label?: string; -}; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackerconfiguration.appid.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.trackerconfiguration.appid.md deleted file mode 100644 index fe9ce9c7b..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackerconfiguration.appid.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerConfiguration](./react-native-tracker.trackerconfiguration.md) > [appId](./react-native-tracker.trackerconfiguration.appid.md) - -## TrackerConfiguration.appId property - -The application ID - -Signature: - -```typescript -appId?: string; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackerconfiguration.deviceplatform.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.trackerconfiguration.deviceplatform.md deleted file mode 100644 index 524068eb4..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackerconfiguration.deviceplatform.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerConfiguration](./react-native-tracker.trackerconfiguration.md) > [devicePlatform](./react-native-tracker.trackerconfiguration.deviceplatform.md) - -## TrackerConfiguration.devicePlatform property - -The device platform the tracker runs on. - -Signature: - -```typescript -devicePlatform?: Platform; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackerconfiguration.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.trackerconfiguration.md deleted file mode 100644 index 957545535..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackerconfiguration.md +++ /dev/null @@ -1,24 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerConfiguration](./react-native-tracker.trackerconfiguration.md) - -## TrackerConfiguration interface - -The configuration object for initialising the tracker - -Signature: - -```typescript -export interface TrackerConfiguration -``` - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [appId?](./react-native-tracker.trackerconfiguration.appid.md) | string | (Optional) The application ID | -| [devicePlatform?](./react-native-tracker.trackerconfiguration.deviceplatform.md) | Platform | (Optional) The device platform the tracker runs on. | -| [encodeBase64?](./react-native-tracker.trackerconfiguration.encodebase64.md) | boolean | (Optional) Whether unstructured events and custom contexts should be base64 encoded. | -| [namespace](./react-native-tracker.trackerconfiguration.namespace.md) | string | The namespace of the tracker | -| [plugins?](./react-native-tracker.trackerconfiguration.plugins.md) | BrowserPlugin\[\] | (Optional) Inject plugins which will be evaluated for each event | - diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackerconfiguration.namespace.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.trackerconfiguration.namespace.md deleted file mode 100644 index dc1b7c27b..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackerconfiguration.namespace.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerConfiguration](./react-native-tracker.trackerconfiguration.md) > [namespace](./react-native-tracker.trackerconfiguration.namespace.md) - -## TrackerConfiguration.namespace property - -The namespace of the tracker - -Signature: - -```typescript -namespace: string; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackerconfiguration.plugins.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.trackerconfiguration.plugins.md deleted file mode 100644 index 747583695..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackerconfiguration.plugins.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerConfiguration](./react-native-tracker.trackerconfiguration.md) > [plugins](./react-native-tracker.trackerconfiguration.plugins.md) - -## TrackerConfiguration.plugins property - -Inject plugins which will be evaluated for each event - -Signature: - -```typescript -plugins?: BrowserPlugin[]; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.md deleted file mode 100644 index d2e490b5c..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.trackercore.md +++ /dev/null @@ -1,47 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) - -## TrackerCore interface - -Export interface containing all Core functions - -Signature: - -```typescript -interface TrackerCore -``` - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [addPayloadPair](./react-native-tracker.trackercore.addpayloadpair.md) | (key: string, value: unknown) => void | Set a persistent key-value pair to be added to every payload | -| [track](./react-native-tracker.trackercore.track.md) | (pb: PayloadBuilder, context?: Array<SelfDescribingJson> \| null, timestamp?: Timestamp \| null) => Payload \| undefined | Call with a payload from a buildX function Adds context and payloadPairs name-value pairs to the payload Applies the callback to the built payload | - -## Methods - -| Method | Description | -| --- | --- | -| [addGlobalContexts(contexts)](./react-native-tracker.trackercore.addglobalcontexts.md) | Adds contexts globally, contexts added here will be attached to all applicable events | -| [addPayloadDict(dict)](./react-native-tracker.trackercore.addpayloaddict.md) | Merges a dictionary into payloadPairs | -| [addPlugin(configuration)](./react-native-tracker.trackercore.addplugin.md) | Add a plugin into the plugin collection after Core has already been initialised | -| [clearGlobalContexts()](./react-native-tracker.trackercore.clearglobalcontexts.md) | Removes all global contexts | -| [deactivate()](./react-native-tracker.trackercore.deactivate.md) | Deactivate tracker core including all plugins. This is useful for cleaning up resources or listeners that have been created. Once deactivated, the tracker won't be able to track any events. | -| [getBase64Encoding()](./react-native-tracker.trackercore.getbase64encoding.md) | Get current base64 encoding state | -| [removeGlobalContexts(contexts)](./react-native-tracker.trackercore.removeglobalcontexts.md) | Removes previously added global context, performs a deep comparison of the contexts or conditional contexts | -| [resetPayloadPairs(dict)](./react-native-tracker.trackercore.resetpayloadpairs.md) | Replace payloadPairs with a new dictionary | -| [setAppId(appId)](./react-native-tracker.trackercore.setappid.md) | Set the application ID | -| [setBase64Encoding(encode)](./react-native-tracker.trackercore.setbase64encoding.md) | Turn base 64 encoding on or off | -| [setColorDepth(depth)](./react-native-tracker.trackercore.setcolordepth.md) | Set the color depth | -| [setIpAddress(ip)](./react-native-tracker.trackercore.setipaddress.md) | Set the IP address | -| [setLang(lang)](./react-native-tracker.trackercore.setlang.md) | Set the language | -| [setPlatform(value)](./react-native-tracker.trackercore.setplatform.md) | Set the platform | -| [setScreenResolution(width, height)](./react-native-tracker.trackercore.setscreenresolution.md) | Set the screen resolution | -| [setTimezone(timezone)](./react-native-tracker.trackercore.settimezone.md) | Set the timezone | -| [setTrackerNamespace(name)](./react-native-tracker.trackercore.settrackernamespace.md) | Set the tracker namespace | -| [setTrackerVersion(version)](./react-native-tracker.trackercore.settrackerversion.md) | Set the tracker version | -| [setUseragent(useragent)](./react-native-tracker.trackercore.setuseragent.md) | Set the Useragent | -| [setUserId(userId)](./react-native-tracker.trackercore.setuserid.md) | Set the user ID | -| [setViewport(width, height)](./react-native-tracker.trackercore.setviewport.md) | Set the viewport dimensions | - diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.trigger.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.trigger.md deleted file mode 100644 index 649a12dbe..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.trigger.md +++ /dev/null @@ -1,13 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [Trigger](./react-native-tracker.trigger.md) - -## Trigger type - -Trigger for MessageNotification event - -Signature: - -```typescript -export declare type Trigger = 'push' | 'location' | 'calendar' | 'timeInterval' | 'other'; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.truetimestamp.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.truetimestamp.md deleted file mode 100644 index 5f72c3dc2..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.truetimestamp.md +++ /dev/null @@ -1,21 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrueTimestamp](./react-native-tracker.truetimestamp.md) - -## TrueTimestamp interface - -A representation of a True Timestamp (ttm) - -Signature: - -```typescript -interface TrueTimestamp -``` - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [type](./react-native-tracker.truetimestamp.type.md) | "ttm" | | -| [value](./react-native-tracker.truetimestamp.value.md) | number | | - diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.truetimestamp.type.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.truetimestamp.type.md deleted file mode 100644 index 0c5f08f1d..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.truetimestamp.type.md +++ /dev/null @@ -1,11 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrueTimestamp](./react-native-tracker.truetimestamp.md) > [type](./react-native-tracker.truetimestamp.type.md) - -## TrueTimestamp.type property - -Signature: - -```typescript -readonly type: "ttm"; -``` diff --git a/api-docs/docs/node-tracker/markdown/react-native-tracker.truetimestamp.value.md b/api-docs/docs/node-tracker/markdown/react-native-tracker.truetimestamp.value.md deleted file mode 100644 index 0adbe9cae..000000000 --- a/api-docs/docs/node-tracker/markdown/react-native-tracker.truetimestamp.value.md +++ /dev/null @@ -1,11 +0,0 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrueTimestamp](./react-native-tracker.truetimestamp.md) > [value](./react-native-tracker.truetimestamp.value.md) - -## TrueTimestamp.value property - -Signature: - -```typescript -readonly value: number; -``` diff --git a/api-docs/docs/node-tracker/node-tracker.api.md b/api-docs/docs/node-tracker/node-tracker.api.md index 5a9b6fd16..40280aaea 100644 --- a/api-docs/docs/node-tracker/node-tracker.api.md +++ b/api-docs/docs/node-tracker/node-tracker.api.md @@ -244,12 +244,14 @@ export interface EmitterConfiguration extends EmitterConfigurationBase { export interface EmitterConfigurationBase { bufferSize?: number; connectionTimeout?: number; + cookieExtensionService?: string; credentials?: "omit" | "same-origin" | "include"; customFetch?: (input: Request, options?: RequestInit) => Promise; customHeaders?: Record; dontRetryStatusCodes?: number[]; eventMethod?: EventMethod; eventStore?: EventStore; + // @deprecated (undocumented) idService?: string; keepalive?: boolean; maxGetBytes?: number; diff --git a/api-docs/docs/react-native-tracker/markdown/index.md b/api-docs/docs/react-native-tracker/markdown/index.md index 3cff770ab..58bc37403 100644 --- a/api-docs/docs/react-native-tracker/markdown/index.md +++ b/api-docs/docs/react-native-tracker/markdown/index.md @@ -1,12 +1,12 @@ - - -[Home](./index.md) - -## API Reference - -## Packages - -| Package | Description | -| --- | --- | -| [@snowplow/react-native-tracker](./react-native-tracker.md) | | - + + +[Home](./index.md) + +## API Reference + +## Packages + +| Package | Description | +| --- | --- | +| [@snowplow/react-native-tracker](./react-native-tracker.md) | | + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.applifecycleconfiguration.appbuild.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.applifecycleconfiguration.appbuild.md index e9dc7a44f..03a2ecbd5 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.applifecycleconfiguration.appbuild.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.applifecycleconfiguration.appbuild.md @@ -1,15 +1,15 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [AppLifecycleConfiguration](./react-native-tracker.applifecycleconfiguration.md) > [appBuild](./react-native-tracker.applifecycleconfiguration.appbuild.md) - -## AppLifecycleConfiguration.appBuild property - -Build name of the application e.g s9f2k2d or 1.1.0 beta - -Entity schema: `iglu:com.snowplowanalytics.mobile/application/jsonschema/1-0-0` - -Signature: - -```typescript -appBuild?: string; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [AppLifecycleConfiguration](./react-native-tracker.applifecycleconfiguration.md) > [appBuild](./react-native-tracker.applifecycleconfiguration.appbuild.md) + +## AppLifecycleConfiguration.appBuild property + +Build name of the application e.g s9f2k2d or 1.1.0 beta + +Entity schema: `iglu:com.snowplowanalytics.mobile/application/jsonschema/1-0-0` + +Signature: + +```typescript +appBuild?: string; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.applifecycleconfiguration.appversion.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.applifecycleconfiguration.appversion.md index 8b5f4fdfe..06a720972 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.applifecycleconfiguration.appversion.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.applifecycleconfiguration.appversion.md @@ -1,15 +1,15 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [AppLifecycleConfiguration](./react-native-tracker.applifecycleconfiguration.md) > [appVersion](./react-native-tracker.applifecycleconfiguration.appversion.md) - -## AppLifecycleConfiguration.appVersion property - -Version number of the application e.g 1.1.0 (semver or git commit hash). - -Entity schema if `appBuild` property is set: `iglu:com.snowplowanalytics.mobile/application/jsonschema/1-0-0` Entity schema if `appBuild` property is not set: `iglu:com.snowplowanalytics.snowplow/application/jsonschema/1-0-0` - -Signature: - -```typescript -appVersion?: string; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [AppLifecycleConfiguration](./react-native-tracker.applifecycleconfiguration.md) > [appVersion](./react-native-tracker.applifecycleconfiguration.appversion.md) + +## AppLifecycleConfiguration.appVersion property + +Version number of the application e.g 1.1.0 (semver or git commit hash). + +Entity schema if `appBuild` property is set: `iglu:com.snowplowanalytics.mobile/application/jsonschema/1-0-0` Entity schema if `appBuild` property is not set: `iglu:com.snowplowanalytics.snowplow/application/jsonschema/1-0-0` + +Signature: + +```typescript +appVersion?: string; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.applifecycleconfiguration.installautotracking.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.applifecycleconfiguration.installautotracking.md index 707da58ae..d052ad96e 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.applifecycleconfiguration.installautotracking.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.applifecycleconfiguration.installautotracking.md @@ -1,15 +1,15 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [AppLifecycleConfiguration](./react-native-tracker.applifecycleconfiguration.md) > [installAutotracking](./react-native-tracker.applifecycleconfiguration.installautotracking.md) - -## AppLifecycleConfiguration.installAutotracking property - -Whether to automatically track app install event on first run. - -Schema: `iglu:com.snowplowanalytics.mobile/application_install/jsonschema/1-0-0` - -Signature: - -```typescript -installAutotracking?: boolean; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [AppLifecycleConfiguration](./react-native-tracker.applifecycleconfiguration.md) > [installAutotracking](./react-native-tracker.applifecycleconfiguration.installautotracking.md) + +## AppLifecycleConfiguration.installAutotracking property + +Whether to automatically track app install event on first run. + +Schema: `iglu:com.snowplowanalytics.mobile/application_install/jsonschema/1-0-0` + +Signature: + +```typescript +installAutotracking?: boolean; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.applifecycleconfiguration.lifecycleautotracking.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.applifecycleconfiguration.lifecycleautotracking.md index cb90cb23f..47c7faf07 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.applifecycleconfiguration.lifecycleautotracking.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.applifecycleconfiguration.lifecycleautotracking.md @@ -1,15 +1,15 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [AppLifecycleConfiguration](./react-native-tracker.applifecycleconfiguration.md) > [lifecycleAutotracking](./react-native-tracker.applifecycleconfiguration.lifecycleautotracking.md) - -## AppLifecycleConfiguration.lifecycleAutotracking property - -Whether to automatically track app lifecycle events (app foreground and background events). Also adds a lifecycle context entity to all events. - -Foreground event schema: `iglu:com.snowplowanalytics.snowplow/application_foreground/jsonschema/1-0-0` Background event schema: `iglu:com.snowplowanalytics.snowplow/application_background/jsonschema/1-0-0` Context entity schema: `iglu:com.snowplowanalytics.mobile/application_lifecycle/jsonschema/1-0-0` - -Signature: - -```typescript -lifecycleAutotracking?: boolean; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [AppLifecycleConfiguration](./react-native-tracker.applifecycleconfiguration.md) > [lifecycleAutotracking](./react-native-tracker.applifecycleconfiguration.lifecycleautotracking.md) + +## AppLifecycleConfiguration.lifecycleAutotracking property + +Whether to automatically track app lifecycle events (app foreground and background events). Also adds a lifecycle context entity to all events. + +Foreground event schema: `iglu:com.snowplowanalytics.snowplow/application_foreground/jsonschema/1-0-0` Background event schema: `iglu:com.snowplowanalytics.snowplow/application_background/jsonschema/1-0-0` Context entity schema: `iglu:com.snowplowanalytics.mobile/application_lifecycle/jsonschema/1-0-0` + +Signature: + +```typescript +lifecycleAutotracking?: boolean; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.applifecycleconfiguration.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.applifecycleconfiguration.md index 0c1f62a04..bc402d9b3 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.applifecycleconfiguration.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.applifecycleconfiguration.md @@ -1,23 +1,23 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [AppLifecycleConfiguration](./react-native-tracker.applifecycleconfiguration.md) - -## AppLifecycleConfiguration interface - -Configuration for app lifecycle tracking - -Signature: - -```typescript -export interface AppLifecycleConfiguration -``` - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [appBuild?](./react-native-tracker.applifecycleconfiguration.appbuild.md) | string | (Optional) Build name of the application e.g s9f2k2d or 1.1.0 betaEntity schema: iglu:com.snowplowanalytics.mobile/application/jsonschema/1-0-0 | -| [appVersion?](./react-native-tracker.applifecycleconfiguration.appversion.md) | string | (Optional) Version number of the application e.g 1.1.0 (semver or git commit hash).Entity schema if appBuild property is set: iglu:com.snowplowanalytics.mobile/application/jsonschema/1-0-0 Entity schema if appBuild property is not set: iglu:com.snowplowanalytics.snowplow/application/jsonschema/1-0-0 | -| [installAutotracking?](./react-native-tracker.applifecycleconfiguration.installautotracking.md) | boolean | (Optional) Whether to automatically track app install event on first run.Schema: iglu:com.snowplowanalytics.mobile/application_install/jsonschema/1-0-0 | -| [lifecycleAutotracking?](./react-native-tracker.applifecycleconfiguration.lifecycleautotracking.md) | boolean | (Optional) Whether to automatically track app lifecycle events (app foreground and background events). Also adds a lifecycle context entity to all events.Foreground event schema: iglu:com.snowplowanalytics.snowplow/application_foreground/jsonschema/1-0-0 Background event schema: iglu:com.snowplowanalytics.snowplow/application_background/jsonschema/1-0-0 Context entity schema: iglu:com.snowplowanalytics.mobile/application_lifecycle/jsonschema/1-0-0 | - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [AppLifecycleConfiguration](./react-native-tracker.applifecycleconfiguration.md) + +## AppLifecycleConfiguration interface + +Configuration for app lifecycle tracking + +Signature: + +```typescript +export interface AppLifecycleConfiguration +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [appBuild?](./react-native-tracker.applifecycleconfiguration.appbuild.md) | string | (Optional) Build name of the application e.g s9f2k2d or 1.1.0 betaEntity schema: iglu:com.snowplowanalytics.mobile/application/jsonschema/1-0-0 | +| [appVersion?](./react-native-tracker.applifecycleconfiguration.appversion.md) | string | (Optional) Version number of the application e.g 1.1.0 (semver or git commit hash).Entity schema if appBuild property is set: iglu:com.snowplowanalytics.mobile/application/jsonschema/1-0-0 Entity schema if appBuild property is not set: iglu:com.snowplowanalytics.snowplow/application/jsonschema/1-0-0 | +| [installAutotracking?](./react-native-tracker.applifecycleconfiguration.installautotracking.md) | boolean | (Optional) Whether to automatically track app install event on first run.Schema: iglu:com.snowplowanalytics.mobile/application_install/jsonschema/1-0-0 | +| [lifecycleAutotracking?](./react-native-tracker.applifecycleconfiguration.lifecycleautotracking.md) | boolean | (Optional) Whether to automatically track app lifecycle events (app foreground and background events). Also adds a lifecycle context entity to all events.Foreground event schema: iglu:com.snowplowanalytics.snowplow/application_foreground/jsonschema/1-0-0 Background event schema: iglu:com.snowplowanalytics.snowplow/application_background/jsonschema/1-0-0 Context entity schema: iglu:com.snowplowanalytics.mobile/application_lifecycle/jsonschema/1-0-0 | + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.asyncstorage.getitem.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.asyncstorage.getitem.md index fa733d18f..1fcf3de87 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.asyncstorage.getitem.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.asyncstorage.getitem.md @@ -1,11 +1,11 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [AsyncStorage](./react-native-tracker.asyncstorage.md) > [getItem](./react-native-tracker.asyncstorage.getitem.md) - -## AsyncStorage.getItem property - -Signature: - -```typescript -getItem: (key: string) => Promise; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [AsyncStorage](./react-native-tracker.asyncstorage.md) > [getItem](./react-native-tracker.asyncstorage.getitem.md) + +## AsyncStorage.getItem property + +Signature: + +```typescript +getItem: (key: string) => Promise; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.asyncstorage.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.asyncstorage.md index 4ad2b4544..ad1c77a88 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.asyncstorage.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.asyncstorage.md @@ -1,19 +1,19 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [AsyncStorage](./react-native-tracker.asyncstorage.md) - -## AsyncStorage interface - -Signature: - -```typescript -export interface AsyncStorage -``` - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [getItem](./react-native-tracker.asyncstorage.getitem.md) | (key: string) => Promise<string \| null> | | -| [setItem](./react-native-tracker.asyncstorage.setitem.md) | (key: string, value: string) => Promise<void> | | - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [AsyncStorage](./react-native-tracker.asyncstorage.md) + +## AsyncStorage interface + +Signature: + +```typescript +export interface AsyncStorage +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [getItem](./react-native-tracker.asyncstorage.getitem.md) | (key: string) => Promise<string \| null> | | +| [setItem](./react-native-tracker.asyncstorage.setitem.md) | (key: string, value: string) => Promise<void> | | + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.asyncstorage.setitem.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.asyncstorage.setitem.md index a9a6706ee..5d3b79d9d 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.asyncstorage.setitem.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.asyncstorage.setitem.md @@ -1,11 +1,11 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [AsyncStorage](./react-native-tracker.asyncstorage.md) > [setItem](./react-native-tracker.asyncstorage.setitem.md) - -## AsyncStorage.setItem property - -Signature: - -```typescript -setItem: (key: string, value: string) => Promise; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [AsyncStorage](./react-native-tracker.asyncstorage.md) > [setItem](./react-native-tracker.asyncstorage.setitem.md) + +## AsyncStorage.setItem property + +Signature: + +```typescript +setItem: (key: string, value: string) => Promise; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.conditionalcontextprovider.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.conditionalcontextprovider.md index 8e599149a..ae264a7a2 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.conditionalcontextprovider.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.conditionalcontextprovider.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [ConditionalContextProvider](./react-native-tracker.conditionalcontextprovider.md) - -## ConditionalContextProvider type - -Conditional context providers are two element arrays used to decide when to attach contexts, where: - the first element is some conditional criterion - the second element is any number of context primitives - -Signature: - -```typescript -type ConditionalContextProvider = FilterProvider | RuleSetProvider; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [ConditionalContextProvider](./react-native-tracker.conditionalcontextprovider.md) + +## ConditionalContextProvider type + +Conditional context providers are two element arrays used to decide when to attach contexts, where: - the first element is some conditional criterion - the second element is any number of context primitives + +Signature: + +```typescript +type ConditionalContextProvider = FilterProvider | RuleSetProvider; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.contextfilter.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.contextfilter.md index eb81894c3..b458e6646 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.contextfilter.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.contextfilter.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [ContextFilter](./react-native-tracker.contextfilter.md) - -## ContextFilter type - -A context filter is a user-supplied callback that is evaluated for each event to determine if the context associated with the filter should be attached to the event - -Signature: - -```typescript -type ContextFilter = (args?: ContextEvent) => boolean; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [ContextFilter](./react-native-tracker.contextfilter.md) + +## ContextFilter type + +A context filter is a user-supplied callback that is evaluated for each event to determine if the context associated with the filter should be attached to the event + +Signature: + +```typescript +type ContextFilter = (args?: ContextEvent) => boolean; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.contextgenerator.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.contextgenerator.md index 922474bff..0cbf292e9 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.contextgenerator.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.contextgenerator.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [ContextGenerator](./react-native-tracker.contextgenerator.md) - -## ContextGenerator type - -A context generator is a user-supplied callback that is evaluated for each event to allow an additional context to be dynamically attached to the event - -Signature: - -```typescript -type ContextGenerator = (args?: ContextEvent) => SelfDescribingJson | SelfDescribingJson[] | undefined; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [ContextGenerator](./react-native-tracker.contextgenerator.md) + +## ContextGenerator type + +A context generator is a user-supplied callback that is evaluated for each event to allow an additional context to be dynamically attached to the event + +Signature: + +```typescript +type ContextGenerator = (args?: ContextEvent) => SelfDescribingJson | SelfDescribingJson[] | undefined; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.contextprimitive.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.contextprimitive.md index 88dda7cc3..e2fe51369 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.contextprimitive.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.contextprimitive.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [ContextPrimitive](./react-native-tracker.contextprimitive.md) - -## ContextPrimitive type - -A context primitive is either a self-describing JSON or a context generator - -Signature: - -```typescript -type ContextPrimitive = SelfDescribingJson | ContextGenerator; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [ContextPrimitive](./react-native-tracker.contextprimitive.md) + +## ContextPrimitive type + +A context primitive is either a self-describing JSON or a context generator + +Signature: + +```typescript +type ContextPrimitive = SelfDescribingJson | ContextGenerator; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.coreconfiguration.base64.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.coreconfiguration.base64.md index e44c1611b..0bceab7f6 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.coreconfiguration.base64.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.coreconfiguration.base64.md @@ -1,11 +1,11 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [CoreConfiguration](./react-native-tracker.coreconfiguration.md) > [base64](./react-native-tracker.coreconfiguration.base64.md) - -## CoreConfiguration.base64 property - -Signature: - -```typescript -base64?: boolean; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [CoreConfiguration](./react-native-tracker.coreconfiguration.md) > [base64](./react-native-tracker.coreconfiguration.base64.md) + +## CoreConfiguration.base64 property + +Signature: + +```typescript +base64?: boolean; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.coreconfiguration.callback.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.coreconfiguration.callback.md index 0686d575a..1e771a210 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.coreconfiguration.callback.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.coreconfiguration.callback.md @@ -1,11 +1,11 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [CoreConfiguration](./react-native-tracker.coreconfiguration.md) > [callback](./react-native-tracker.coreconfiguration.callback.md) - -## CoreConfiguration.callback property - -Signature: - -```typescript -callback?: (PayloadData: PayloadBuilder) => void; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [CoreConfiguration](./react-native-tracker.coreconfiguration.md) > [callback](./react-native-tracker.coreconfiguration.callback.md) + +## CoreConfiguration.callback property + +Signature: + +```typescript +callback?: (PayloadData: PayloadBuilder) => void; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.coreconfiguration.coreplugins.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.coreconfiguration.coreplugins.md index 8b0fb17ad..01cb1e158 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.coreconfiguration.coreplugins.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.coreconfiguration.coreplugins.md @@ -1,11 +1,11 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [CoreConfiguration](./react-native-tracker.coreconfiguration.md) > [corePlugins](./react-native-tracker.coreconfiguration.coreplugins.md) - -## CoreConfiguration.corePlugins property - -Signature: - -```typescript -corePlugins?: Array; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [CoreConfiguration](./react-native-tracker.coreconfiguration.md) > [corePlugins](./react-native-tracker.coreconfiguration.coreplugins.md) + +## CoreConfiguration.corePlugins property + +Signature: + +```typescript +corePlugins?: Array; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.coreconfiguration.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.coreconfiguration.md index f859c3d98..1b3a10636 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.coreconfiguration.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.coreconfiguration.md @@ -1,22 +1,22 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [CoreConfiguration](./react-native-tracker.coreconfiguration.md) - -## CoreConfiguration interface - -The configuration object for the tracker core library - -Signature: - -```typescript -interface CoreConfiguration -``` - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [base64?](./react-native-tracker.coreconfiguration.base64.md) | boolean | (Optional) | -| [callback?](./react-native-tracker.coreconfiguration.callback.md) | (PayloadData: PayloadBuilder) => void | (Optional) | -| [corePlugins?](./react-native-tracker.coreconfiguration.coreplugins.md) | Array<CorePlugin> | (Optional) | - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [CoreConfiguration](./react-native-tracker.coreconfiguration.md) + +## CoreConfiguration interface + +The configuration object for the tracker core library + +Signature: + +```typescript +interface CoreConfiguration +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [base64?](./react-native-tracker.coreconfiguration.base64.md) | boolean | (Optional) | +| [callback?](./react-native-tracker.coreconfiguration.callback.md) | (PayloadData: PayloadBuilder) => void | (Optional) | +| [corePlugins?](./react-native-tracker.coreconfiguration.coreplugins.md) | Array<CorePlugin> | (Optional) | + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.coreplugin.activatecoreplugin.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.coreplugin.activatecoreplugin.md index 3bfb61b0f..90d55d741 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.coreplugin.activatecoreplugin.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.coreplugin.activatecoreplugin.md @@ -1,18 +1,18 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [CorePlugin](./react-native-tracker.coreplugin.md) > [activateCorePlugin](./react-native-tracker.coreplugin.activatecoreplugin.md) - -## CorePlugin.activateCorePlugin property - -Called when the plugin is initialised during the trackerCore construction - -Signature: - -```typescript -activateCorePlugin?: (core: TrackerCore) => void; -``` - -## Remarks - -Use to capture the specific core instance for each instance of a core plugin - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [CorePlugin](./react-native-tracker.coreplugin.md) > [activateCorePlugin](./react-native-tracker.coreplugin.activatecoreplugin.md) + +## CorePlugin.activateCorePlugin property + +Called when the plugin is initialised during the trackerCore construction + +Signature: + +```typescript +activateCorePlugin?: (core: TrackerCore) => void; +``` + +## Remarks + +Use to capture the specific core instance for each instance of a core plugin + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.coreplugin.aftertrack.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.coreplugin.aftertrack.md index 317cf078e..d50881781 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.coreplugin.aftertrack.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.coreplugin.aftertrack.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [CorePlugin](./react-native-tracker.coreplugin.md) > [afterTrack](./react-native-tracker.coreplugin.aftertrack.md) - -## CorePlugin.afterTrack property - -Called just after the trackerCore callback fires - -Signature: - -```typescript -afterTrack?: (payload: Payload) => void; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [CorePlugin](./react-native-tracker.coreplugin.md) > [afterTrack](./react-native-tracker.coreplugin.aftertrack.md) + +## CorePlugin.afterTrack property + +Called just after the trackerCore callback fires + +Signature: + +```typescript +afterTrack?: (payload: Payload) => void; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.coreplugin.beforetrack.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.coreplugin.beforetrack.md index 0aebe9b93..a172901cf 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.coreplugin.beforetrack.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.coreplugin.beforetrack.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [CorePlugin](./react-native-tracker.coreplugin.md) > [beforeTrack](./react-native-tracker.coreplugin.beforetrack.md) - -## CorePlugin.beforeTrack property - -Called before the `filter` method is called and before the trackerCore callback fires (if the filter passes) - -Signature: - -```typescript -beforeTrack?: (payloadBuilder: PayloadBuilder) => void; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [CorePlugin](./react-native-tracker.coreplugin.md) > [beforeTrack](./react-native-tracker.coreplugin.beforetrack.md) + +## CorePlugin.beforeTrack property + +Called before the `filter` method is called and before the trackerCore callback fires (if the filter passes) + +Signature: + +```typescript +beforeTrack?: (payloadBuilder: PayloadBuilder) => void; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.coreplugin.contexts.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.coreplugin.contexts.md index 5c1f4adde..015b3117c 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.coreplugin.contexts.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.coreplugin.contexts.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [CorePlugin](./react-native-tracker.coreplugin.md) > [contexts](./react-native-tracker.coreplugin.contexts.md) - -## CorePlugin.contexts property - -Called when constructing the context for each event Useful for adding additional context to events - -Signature: - -```typescript -contexts?: () => SelfDescribingJson[]; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [CorePlugin](./react-native-tracker.coreplugin.md) > [contexts](./react-native-tracker.coreplugin.contexts.md) + +## CorePlugin.contexts property + +Called when constructing the context for each event Useful for adding additional context to events + +Signature: + +```typescript +contexts?: () => SelfDescribingJson[]; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.coreplugin.deactivateplugin.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.coreplugin.deactivateplugin.md index 72db41582..edbdd11ce 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.coreplugin.deactivateplugin.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.coreplugin.deactivateplugin.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [CorePlugin](./react-native-tracker.coreplugin.md) > [deactivatePlugin](./react-native-tracker.coreplugin.deactivateplugin.md) - -## CorePlugin.deactivatePlugin property - -Called when the tracker is being destroyed. Should be used to clean up any resources or listeners that the plugin has created. - -Signature: - -```typescript -deactivatePlugin?: (core: TrackerCore) => void; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [CorePlugin](./react-native-tracker.coreplugin.md) > [deactivatePlugin](./react-native-tracker.coreplugin.deactivateplugin.md) + +## CorePlugin.deactivatePlugin property + +Called when the tracker is being destroyed. Should be used to clean up any resources or listeners that the plugin has created. + +Signature: + +```typescript +deactivatePlugin?: (core: TrackerCore) => void; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.coreplugin.filter.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.coreplugin.filter.md index ae98d2d91..7c621722c 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.coreplugin.filter.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.coreplugin.filter.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [CorePlugin](./react-native-tracker.coreplugin.md) > [filter](./react-native-tracker.coreplugin.filter.md) - -## CorePlugin.filter property - -Called before the payload is sent to the callback to decide whether to send the payload or skip it - -Signature: - -```typescript -filter?: (payload: Payload) => boolean; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [CorePlugin](./react-native-tracker.coreplugin.md) > [filter](./react-native-tracker.coreplugin.filter.md) + +## CorePlugin.filter property + +Called before the payload is sent to the callback to decide whether to send the payload or skip it + +Signature: + +```typescript +filter?: (payload: Payload) => boolean; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.coreplugin.logger.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.coreplugin.logger.md index 7ad0ab7d7..65ad62785 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.coreplugin.logger.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.coreplugin.logger.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [CorePlugin](./react-native-tracker.coreplugin.md) > [logger](./react-native-tracker.coreplugin.logger.md) - -## CorePlugin.logger property - -Passed a logger instance which can be used to send log information to the active logger - -Signature: - -```typescript -logger?: (logger: Logger) => void; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [CorePlugin](./react-native-tracker.coreplugin.md) > [logger](./react-native-tracker.coreplugin.logger.md) + +## CorePlugin.logger property + +Passed a logger instance which can be used to send log information to the active logger + +Signature: + +```typescript +logger?: (logger: Logger) => void; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.coreplugin.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.coreplugin.md index 9e767ed1b..85529ca8c 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.coreplugin.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.coreplugin.md @@ -1,26 +1,26 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [CorePlugin](./react-native-tracker.coreplugin.md) - -## CorePlugin interface - -Interface which defines Core Plugins - -Signature: - -```typescript -interface CorePlugin -``` - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [activateCorePlugin?](./react-native-tracker.coreplugin.activatecoreplugin.md) | (core: TrackerCore) => void | (Optional) Called when the plugin is initialised during the trackerCore construction | -| [afterTrack?](./react-native-tracker.coreplugin.aftertrack.md) | (payload: Payload) => void | (Optional) Called just after the trackerCore callback fires | -| [beforeTrack?](./react-native-tracker.coreplugin.beforetrack.md) | (payloadBuilder: PayloadBuilder) => void | (Optional) Called before the filter method is called and before the trackerCore callback fires (if the filter passes) | -| [contexts?](./react-native-tracker.coreplugin.contexts.md) | () => SelfDescribingJson\[\] | (Optional) Called when constructing the context for each event Useful for adding additional context to events | -| [deactivatePlugin?](./react-native-tracker.coreplugin.deactivateplugin.md) | (core: TrackerCore) => void | (Optional) Called when the tracker is being destroyed. Should be used to clean up any resources or listeners that the plugin has created. | -| [filter?](./react-native-tracker.coreplugin.filter.md) | (payload: Payload) => boolean | (Optional) Called before the payload is sent to the callback to decide whether to send the payload or skip it | -| [logger?](./react-native-tracker.coreplugin.logger.md) | (logger: Logger) => void | (Optional) Passed a logger instance which can be used to send log information to the active logger | - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [CorePlugin](./react-native-tracker.coreplugin.md) + +## CorePlugin interface + +Interface which defines Core Plugins + +Signature: + +```typescript +interface CorePlugin +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [activateCorePlugin?](./react-native-tracker.coreplugin.activatecoreplugin.md) | (core: TrackerCore) => void | (Optional) Called when the plugin is initialised during the trackerCore construction | +| [afterTrack?](./react-native-tracker.coreplugin.aftertrack.md) | (payload: Payload) => void | (Optional) Called just after the trackerCore callback fires | +| [beforeTrack?](./react-native-tracker.coreplugin.beforetrack.md) | (payloadBuilder: PayloadBuilder) => void | (Optional) Called before the filter method is called and before the trackerCore callback fires (if the filter passes) | +| [contexts?](./react-native-tracker.coreplugin.contexts.md) | () => SelfDescribingJson\[\] | (Optional) Called when constructing the context for each event Useful for adding additional context to events | +| [deactivatePlugin?](./react-native-tracker.coreplugin.deactivateplugin.md) | (core: TrackerCore) => void | (Optional) Called when the tracker is being destroyed. Should be used to clean up any resources or listeners that the plugin has created. | +| [filter?](./react-native-tracker.coreplugin.filter.md) | (payload: Payload) => boolean | (Optional) Called before the payload is sent to the callback to decide whether to send the payload or skip it | +| [logger?](./react-native-tracker.coreplugin.logger.md) | (logger: Logger) => void | (Optional) Passed a logger instance which can be used to send log information to the active logger | + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.corepluginconfiguration.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.corepluginconfiguration.md index 6643a70a4..e14a922ec 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.corepluginconfiguration.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.corepluginconfiguration.md @@ -1,20 +1,20 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [CorePluginConfiguration](./react-native-tracker.corepluginconfiguration.md) - -## CorePluginConfiguration interface - -The configuration of the plugin to add - -Signature: - -```typescript -interface CorePluginConfiguration -``` - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [plugin](./react-native-tracker.corepluginconfiguration.plugin.md) | CorePlugin | | - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [CorePluginConfiguration](./react-native-tracker.corepluginconfiguration.md) + +## CorePluginConfiguration interface + +The configuration of the plugin to add + +Signature: + +```typescript +interface CorePluginConfiguration +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [plugin](./react-native-tracker.corepluginconfiguration.plugin.md) | CorePlugin | | + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.corepluginconfiguration.plugin.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.corepluginconfiguration.plugin.md index 197cb22b1..6ab300b27 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.corepluginconfiguration.plugin.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.corepluginconfiguration.plugin.md @@ -1,11 +1,11 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [CorePluginConfiguration](./react-native-tracker.corepluginconfiguration.md) > [plugin](./react-native-tracker.corepluginconfiguration.plugin.md) - -## CorePluginConfiguration.plugin property - -Signature: - -```typescript -plugin: CorePlugin; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [CorePluginConfiguration](./react-native-tracker.corepluginconfiguration.md) > [plugin](./react-native-tracker.corepluginconfiguration.plugin.md) + +## CorePluginConfiguration.plugin property + +Signature: + +```typescript +plugin: CorePlugin; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.deeplinkconfiguration.deeplinkcontext.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.deeplinkconfiguration.deeplinkcontext.md index b3f4ecc00..ad1dc7387 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.deeplinkconfiguration.deeplinkcontext.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.deeplinkconfiguration.deeplinkcontext.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [DeepLinkConfiguration](./react-native-tracker.deeplinkconfiguration.md) > [deepLinkContext](./react-native-tracker.deeplinkconfiguration.deeplinkcontext.md) - -## DeepLinkConfiguration.deepLinkContext property - -Whether to track the deep link context entity with information from the deep link received event on the first screen view event. - -Signature: - -```typescript -deepLinkContext?: boolean; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [DeepLinkConfiguration](./react-native-tracker.deeplinkconfiguration.md) > [deepLinkContext](./react-native-tracker.deeplinkconfiguration.deeplinkcontext.md) + +## DeepLinkConfiguration.deepLinkContext property + +Whether to track the deep link context entity with information from the deep link received event on the first screen view event. + +Signature: + +```typescript +deepLinkContext?: boolean; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.deeplinkconfiguration.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.deeplinkconfiguration.md index 61f41ea5f..506c7ed7a 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.deeplinkconfiguration.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.deeplinkconfiguration.md @@ -1,20 +1,20 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [DeepLinkConfiguration](./react-native-tracker.deeplinkconfiguration.md) - -## DeepLinkConfiguration interface - -Configuration for deep link tracking - -Signature: - -```typescript -export interface DeepLinkConfiguration -``` - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [deepLinkContext?](./react-native-tracker.deeplinkconfiguration.deeplinkcontext.md) | boolean | (Optional) Whether to track the deep link context entity with information from the deep link received event on the first screen view event. | - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [DeepLinkConfiguration](./react-native-tracker.deeplinkconfiguration.md) + +## DeepLinkConfiguration interface + +Configuration for deep link tracking + +Signature: + +```typescript +export interface DeepLinkConfiguration +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [deepLinkContext?](./react-native-tracker.deeplinkconfiguration.deeplinkcontext.md) | boolean | (Optional) Whether to track the deep link context entity with information from the deep link received event on the first screen view event. | + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.deeplinkreceivedprops.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.deeplinkreceivedprops.md index 1edfc692e..6a10e920c 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.deeplinkreceivedprops.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.deeplinkreceivedprops.md @@ -1,16 +1,16 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [DeepLinkReceivedProps](./react-native-tracker.deeplinkreceivedprops.md) - -## DeepLinkReceivedProps type - -DeepLinkReceived event properties schema: iglu:com.snowplowanalytics.mobile/deep\_link\_received/jsonschema/1-0-0 - -Signature: - -```typescript -export declare type DeepLinkReceivedProps = { - url: string; - referrer?: string; -}; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [DeepLinkReceivedProps](./react-native-tracker.deeplinkreceivedprops.md) + +## DeepLinkReceivedProps type + +DeepLinkReceived event properties schema: iglu:com.snowplowanalytics.mobile/deep\_link\_received/jsonschema/1-0-0 + +Signature: + +```typescript +export declare type DeepLinkReceivedProps = { + url: string; + referrer?: string; +}; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.devicetimestamp.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.devicetimestamp.md index c7b3b8bf1..22804fc75 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.devicetimestamp.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.devicetimestamp.md @@ -1,21 +1,21 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [DeviceTimestamp](./react-native-tracker.devicetimestamp.md) - -## DeviceTimestamp interface - -A representation of a Device Timestamp (dtm) - -Signature: - -```typescript -interface DeviceTimestamp -``` - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [type](./react-native-tracker.devicetimestamp.type.md) | "dtm" | | -| [value](./react-native-tracker.devicetimestamp.value.md) | number | | - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [DeviceTimestamp](./react-native-tracker.devicetimestamp.md) + +## DeviceTimestamp interface + +A representation of a Device Timestamp (dtm) + +Signature: + +```typescript +interface DeviceTimestamp +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [type](./react-native-tracker.devicetimestamp.type.md) | "dtm" | | +| [value](./react-native-tracker.devicetimestamp.value.md) | number | | + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.devicetimestamp.type.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.devicetimestamp.type.md index 7aeaa9276..b02eee053 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.devicetimestamp.type.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.devicetimestamp.type.md @@ -1,11 +1,11 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [DeviceTimestamp](./react-native-tracker.devicetimestamp.md) > [type](./react-native-tracker.devicetimestamp.type.md) - -## DeviceTimestamp.type property - -Signature: - -```typescript -readonly type: "dtm"; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [DeviceTimestamp](./react-native-tracker.devicetimestamp.md) > [type](./react-native-tracker.devicetimestamp.type.md) + +## DeviceTimestamp.type property + +Signature: + +```typescript +readonly type: "dtm"; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.devicetimestamp.value.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.devicetimestamp.value.md index 1bab215d8..2b5a2fb23 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.devicetimestamp.value.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.devicetimestamp.value.md @@ -1,11 +1,11 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [DeviceTimestamp](./react-native-tracker.devicetimestamp.md) > [value](./react-native-tracker.devicetimestamp.value.md) - -## DeviceTimestamp.value property - -Signature: - -```typescript -readonly value: number; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [DeviceTimestamp](./react-native-tracker.devicetimestamp.md) > [value](./react-native-tracker.devicetimestamp.value.md) + +## DeviceTimestamp.value property + +Signature: + +```typescript +readonly value: number; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitter.flush.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitter.flush.md index 5ecd11b0c..351d0e37e 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitter.flush.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitter.flush.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [Emitter](./react-native-tracker.emitter.md) > [flush](./react-native-tracker.emitter.flush.md) - -## Emitter.flush property - -Forces the emitter to send all events in the event store to the collector. - -Signature: - -```typescript -flush: () => Promise; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [Emitter](./react-native-tracker.emitter.md) > [flush](./react-native-tracker.emitter.flush.md) + +## Emitter.flush property + +Forces the emitter to send all events in the event store to the collector. + +Signature: + +```typescript +flush: () => Promise; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitter.input.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitter.input.md index bdee0549e..5f22e9b5c 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitter.input.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitter.input.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [Emitter](./react-native-tracker.emitter.md) > [input](./react-native-tracker.emitter.input.md) - -## Emitter.input property - -Adds a payload to the event store or sends it to the collector. - -Signature: - -```typescript -input: (payload: Payload) => Promise; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [Emitter](./react-native-tracker.emitter.md) > [input](./react-native-tracker.emitter.input.md) + +## Emitter.input property + +Adds a payload to the event store or sends it to the collector. + +Signature: + +```typescript +input: (payload: Payload) => Promise; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitter.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitter.md index 902f30e5b..24f95cde0 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitter.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitter.md @@ -1,24 +1,24 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [Emitter](./react-native-tracker.emitter.md) - -## Emitter interface - -Emitter is responsible for sending events to the collector. It manages the event queue and sends events in batches depending on configuration. - -Signature: - -```typescript -interface Emitter -``` - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [flush](./react-native-tracker.emitter.flush.md) | () => Promise<void> | Forces the emitter to send all events in the event store to the collector. | -| [input](./react-native-tracker.emitter.input.md) | (payload: Payload) => Promise<void> | Adds a payload to the event store or sends it to the collector. | -| [setAnonymousTracking](./react-native-tracker.emitter.setanonymoustracking.md) | (anonymous: boolean) => void | Sets the server anonymization flag. | -| [setBufferSize](./react-native-tracker.emitter.setbuffersize.md) | (bufferSize: number) => void | Updates the buffer size of the emitter. | -| [setCollectorUrl](./react-native-tracker.emitter.setcollectorurl.md) | (url: string) => void | Updates the collector URL to which events will be sent. | - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [Emitter](./react-native-tracker.emitter.md) + +## Emitter interface + +Emitter is responsible for sending events to the collector. It manages the event queue and sends events in batches depending on configuration. + +Signature: + +```typescript +interface Emitter +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [flush](./react-native-tracker.emitter.flush.md) | () => Promise<void> | Forces the emitter to send all events in the event store to the collector. | +| [input](./react-native-tracker.emitter.input.md) | (payload: Payload) => Promise<void> | Adds a payload to the event store or sends it to the collector. | +| [setAnonymousTracking](./react-native-tracker.emitter.setanonymoustracking.md) | (anonymous: boolean) => void | Sets the server anonymization flag. | +| [setBufferSize](./react-native-tracker.emitter.setbuffersize.md) | (bufferSize: number) => void | Updates the buffer size of the emitter. | +| [setCollectorUrl](./react-native-tracker.emitter.setcollectorurl.md) | (url: string) => void | Updates the collector URL to which events will be sent. | + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitter.setanonymoustracking.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitter.setanonymoustracking.md index fd00c1f20..7de2afba3 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitter.setanonymoustracking.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitter.setanonymoustracking.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [Emitter](./react-native-tracker.emitter.md) > [setAnonymousTracking](./react-native-tracker.emitter.setanonymoustracking.md) - -## Emitter.setAnonymousTracking property - -Sets the server anonymization flag. - -Signature: - -```typescript -setAnonymousTracking: (anonymous: boolean) => void; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [Emitter](./react-native-tracker.emitter.md) > [setAnonymousTracking](./react-native-tracker.emitter.setanonymoustracking.md) + +## Emitter.setAnonymousTracking property + +Sets the server anonymization flag. + +Signature: + +```typescript +setAnonymousTracking: (anonymous: boolean) => void; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitter.setbuffersize.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitter.setbuffersize.md index 2a60acd68..630e81e5e 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitter.setbuffersize.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitter.setbuffersize.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [Emitter](./react-native-tracker.emitter.md) > [setBufferSize](./react-native-tracker.emitter.setbuffersize.md) - -## Emitter.setBufferSize property - -Updates the buffer size of the emitter. - -Signature: - -```typescript -setBufferSize: (bufferSize: number) => void; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [Emitter](./react-native-tracker.emitter.md) > [setBufferSize](./react-native-tracker.emitter.setbuffersize.md) + +## Emitter.setBufferSize property + +Updates the buffer size of the emitter. + +Signature: + +```typescript +setBufferSize: (bufferSize: number) => void; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitter.setcollectorurl.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitter.setcollectorurl.md index 5d2d5aedd..2d170a707 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitter.setcollectorurl.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitter.setcollectorurl.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [Emitter](./react-native-tracker.emitter.md) > [setCollectorUrl](./react-native-tracker.emitter.setcollectorurl.md) - -## Emitter.setCollectorUrl property - -Updates the collector URL to which events will be sent. - -Signature: - -```typescript -setCollectorUrl: (url: string) => void; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [Emitter](./react-native-tracker.emitter.md) > [setCollectorUrl](./react-native-tracker.emitter.setcollectorurl.md) + +## Emitter.setCollectorUrl property + +Updates the collector URL to which events will be sent. + +Signature: + +```typescript +setCollectorUrl: (url: string) => void; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfiguration.endpoint.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfiguration.endpoint.md index fb4a0e4c4..6e3c59555 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfiguration.endpoint.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfiguration.endpoint.md @@ -1,11 +1,11 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfiguration](./react-native-tracker.emitterconfiguration.md) > [endpoint](./react-native-tracker.emitterconfiguration.endpoint.md) - -## EmitterConfiguration.endpoint property - -Signature: - -```typescript -endpoint: string; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfiguration](./react-native-tracker.emitterconfiguration.md) > [endpoint](./react-native-tracker.emitterconfiguration.endpoint.md) + +## EmitterConfiguration.endpoint property + +Signature: + +```typescript +endpoint: string; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfiguration.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfiguration.md index 14e34b8a3..e8f5c3fc3 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfiguration.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfiguration.md @@ -1,22 +1,22 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfiguration](./react-native-tracker.emitterconfiguration.md) - -## EmitterConfiguration interface - -Signature: - -```typescript -interface EmitterConfiguration extends EmitterConfigurationBase -``` -Extends: EmitterConfigurationBase - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [endpoint](./react-native-tracker.emitterconfiguration.endpoint.md) | string | | -| [port?](./react-native-tracker.emitterconfiguration.port.md) | number | (Optional) | -| [protocol?](./react-native-tracker.emitterconfiguration.protocol.md) | "http" \| "https" | (Optional) | -| [serverAnonymization?](./react-native-tracker.emitterconfiguration.serveranonymization.md) | boolean | (Optional) | - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfiguration](./react-native-tracker.emitterconfiguration.md) + +## EmitterConfiguration interface + +Signature: + +```typescript +interface EmitterConfiguration extends EmitterConfigurationBase +``` +Extends: EmitterConfigurationBase + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [endpoint](./react-native-tracker.emitterconfiguration.endpoint.md) | string | | +| [port?](./react-native-tracker.emitterconfiguration.port.md) | number | (Optional) | +| [protocol?](./react-native-tracker.emitterconfiguration.protocol.md) | "http" \| "https" | (Optional) | +| [serverAnonymization?](./react-native-tracker.emitterconfiguration.serveranonymization.md) | boolean | (Optional) | + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfiguration.port.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfiguration.port.md index e6a29ff90..082b7ac51 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfiguration.port.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfiguration.port.md @@ -1,11 +1,11 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfiguration](./react-native-tracker.emitterconfiguration.md) > [port](./react-native-tracker.emitterconfiguration.port.md) - -## EmitterConfiguration.port property - -Signature: - -```typescript -port?: number; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfiguration](./react-native-tracker.emitterconfiguration.md) > [port](./react-native-tracker.emitterconfiguration.port.md) + +## EmitterConfiguration.port property + +Signature: + +```typescript +port?: number; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfiguration.protocol.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfiguration.protocol.md index a42e49002..8a3715d36 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfiguration.protocol.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfiguration.protocol.md @@ -1,11 +1,11 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfiguration](./react-native-tracker.emitterconfiguration.md) > [protocol](./react-native-tracker.emitterconfiguration.protocol.md) - -## EmitterConfiguration.protocol property - -Signature: - -```typescript -protocol?: "http" | "https"; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfiguration](./react-native-tracker.emitterconfiguration.md) > [protocol](./react-native-tracker.emitterconfiguration.protocol.md) + +## EmitterConfiguration.protocol property + +Signature: + +```typescript +protocol?: "http" | "https"; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfiguration.serveranonymization.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfiguration.serveranonymization.md index 3cbe93fdf..74628321b 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfiguration.serveranonymization.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfiguration.serveranonymization.md @@ -1,11 +1,11 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfiguration](./react-native-tracker.emitterconfiguration.md) > [serverAnonymization](./react-native-tracker.emitterconfiguration.serveranonymization.md) - -## EmitterConfiguration.serverAnonymization property - -Signature: - -```typescript -serverAnonymization?: boolean; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfiguration](./react-native-tracker.emitterconfiguration.md) > [serverAnonymization](./react-native-tracker.emitterconfiguration.serveranonymization.md) + +## EmitterConfiguration.serverAnonymization property + +Signature: + +```typescript +serverAnonymization?: boolean; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.buffersize.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.buffersize.md index dae8a0475..5141933a2 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.buffersize.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.buffersize.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) > [bufferSize](./react-native-tracker.emitterconfigurationbase.buffersize.md) - -## EmitterConfigurationBase.bufferSize property - -The amount of events that should be buffered before sending Recommended to leave as 1 to reduce change of losing events - -Signature: - -```typescript -bufferSize?: number; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) > [bufferSize](./react-native-tracker.emitterconfigurationbase.buffersize.md) + +## EmitterConfigurationBase.bufferSize property + +The amount of events that should be buffered before sending Recommended to leave as 1 to reduce change of losing events + +Signature: + +```typescript +bufferSize?: number; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.connectiontimeout.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.connectiontimeout.md index a9eb8adcc..01c13b8bc 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.connectiontimeout.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.connectiontimeout.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) > [connectionTimeout](./react-native-tracker.emitterconfigurationbase.connectiontimeout.md) - -## EmitterConfigurationBase.connectionTimeout property - -How long to wait before aborting requests to the collector - -Signature: - -```typescript -connectionTimeout?: number; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) > [connectionTimeout](./react-native-tracker.emitterconfigurationbase.connectiontimeout.md) + +## EmitterConfigurationBase.connectionTimeout property + +How long to wait before aborting requests to the collector + +Signature: + +```typescript +connectionTimeout?: number; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.cookieextensionservice.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.cookieextensionservice.md new file mode 100644 index 000000000..86cabc539 --- /dev/null +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.cookieextensionservice.md @@ -0,0 +1,15 @@ + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) > [cookieExtensionService](./react-native-tracker.emitterconfigurationbase.cookieextensionservice.md) + +## EmitterConfigurationBase.cookieExtensionService property + +Cookie extension service full URL. This URL will be added to the queue and will be called using a GET method. This option is there to allow the service URL to be called in order to set any required identifiers e.g. extra cookies. + +The request respects the `anonymousTracking` option, including the SP-Anonymous header if needed, and any additional custom headers from the customHeaders option. + +Signature: + +```typescript +cookieExtensionService?: string; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.credentials.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.credentials.md index a27495bf9..1219ad5b7 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.credentials.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.credentials.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) > [credentials](./react-native-tracker.emitterconfigurationbase.credentials.md) - -## EmitterConfigurationBase.credentials property - -Controls whether or not the browser sends credentials (defaults to 'include') - -Signature: - -```typescript -credentials?: "omit" | "same-origin" | "include"; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) > [credentials](./react-native-tracker.emitterconfigurationbase.credentials.md) + +## EmitterConfigurationBase.credentials property + +Controls whether or not the browser sends credentials (defaults to 'include') + +Signature: + +```typescript +credentials?: "omit" | "same-origin" | "include"; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.customfetch.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.customfetch.md index 8109e3c34..3831bffeb 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.customfetch.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.customfetch.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) > [customFetch](./react-native-tracker.emitterconfigurationbase.customfetch.md) - -## EmitterConfigurationBase.customFetch property - -Enables overriding the default fetch function with a custom implementation. - -Signature: - -```typescript -customFetch?: (input: Request, options?: RequestInit) => Promise; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) > [customFetch](./react-native-tracker.emitterconfigurationbase.customfetch.md) + +## EmitterConfigurationBase.customFetch property + +Enables overriding the default fetch function with a custom implementation. + +Signature: + +```typescript +customFetch?: (input: Request, options?: RequestInit) => Promise; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.customheaders.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.customheaders.md index c090b8bb7..19bb72078 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.customheaders.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.customheaders.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) > [customHeaders](./react-native-tracker.emitterconfigurationbase.customheaders.md) - -## EmitterConfigurationBase.customHeaders property - -An object of key value pairs which represent headers to attach when sending a POST request, only works for POST - -Signature: - -```typescript -customHeaders?: Record; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) > [customHeaders](./react-native-tracker.emitterconfigurationbase.customheaders.md) + +## EmitterConfigurationBase.customHeaders property + +An object of key value pairs which represent headers to attach when sending a POST request, only works for POST + +Signature: + +```typescript +customHeaders?: Record; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.dontretrystatuscodes.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.dontretrystatuscodes.md index 54c2af656..899a420d2 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.dontretrystatuscodes.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.dontretrystatuscodes.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) > [dontRetryStatusCodes](./react-native-tracker.emitterconfigurationbase.dontretrystatuscodes.md) - -## EmitterConfigurationBase.dontRetryStatusCodes property - -List of HTTP response status codes for which events sent to Collector should not be retried in future request. Only non-success status codes are considered (greater or equal to 300). The don't retry codes are only considered for GET and POST requests. By default, the tracker retries on all non-success status codes except for 400, 401, 403, 410, and 422 (these don't retry codes will remain even if you set your own `dontRetryStatusCodes` but can be changed using the `retryStatusCodes`). - -Signature: - -```typescript -dontRetryStatusCodes?: number[]; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) > [dontRetryStatusCodes](./react-native-tracker.emitterconfigurationbase.dontretrystatuscodes.md) + +## EmitterConfigurationBase.dontRetryStatusCodes property + +List of HTTP response status codes for which events sent to Collector should not be retried in future request. Only non-success status codes are considered (greater or equal to 300). The don't retry codes are only considered for GET and POST requests. By default, the tracker retries on all non-success status codes except for 400, 401, 403, 410, and 422 (these don't retry codes will remain even if you set your own `dontRetryStatusCodes` but can be changed using the `retryStatusCodes`). + +Signature: + +```typescript +dontRetryStatusCodes?: number[]; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.eventmethod.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.eventmethod.md index 42e035712..dfb2be7e8 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.eventmethod.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.eventmethod.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) > [eventMethod](./react-native-tracker.emitterconfigurationbase.eventmethod.md) - -## EmitterConfigurationBase.eventMethod property - -The preferred technique to use to send events - -Signature: - -```typescript -eventMethod?: EventMethod; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) > [eventMethod](./react-native-tracker.emitterconfigurationbase.eventmethod.md) + +## EmitterConfigurationBase.eventMethod property + +The preferred technique to use to send events + +Signature: + +```typescript +eventMethod?: EventMethod; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.eventstore.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.eventstore.md index fa5ccff1a..8c872a534 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.eventstore.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.eventstore.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) > [eventStore](./react-native-tracker.emitterconfigurationbase.eventstore.md) - -## EmitterConfigurationBase.eventStore property - -Enables providing a custom EventStore implementation to store events before sending them to the collector. - -Signature: - -```typescript -eventStore?: EventStore; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) > [eventStore](./react-native-tracker.emitterconfigurationbase.eventstore.md) + +## EmitterConfigurationBase.eventStore property + +Enables providing a custom EventStore implementation to store events before sending them to the collector. + +Signature: + +```typescript +eventStore?: EventStore; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.idservice.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.idservice.md index 379cb6a53..63952083d 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.idservice.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.idservice.md @@ -1,15 +1,16 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) > [idService](./react-native-tracker.emitterconfigurationbase.idservice.md) - -## EmitterConfigurationBase.idService property - -Id service full URL. This URL will be added to the queue and will be called using a GET method. This option is there to allow the service URL to be called in order to set any required identifiers e.g. extra cookies. - -The request respects the `anonymousTracking` option, including the SP-Anonymous header if needed, and any additional custom headers from the customHeaders option. - -Signature: - -```typescript -idService?: string; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) > [idService](./react-native-tracker.emitterconfigurationbase.idservice.md) + +## EmitterConfigurationBase.idService property + +> Warning: This API is now obsolete. +> +> Use `cookieExtensionService` instead. +> + +Signature: + +```typescript +idService?: string; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.keepalive.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.keepalive.md index 7fed66590..01c8c2818 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.keepalive.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.keepalive.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) > [keepalive](./react-native-tracker.emitterconfigurationbase.keepalive.md) - -## EmitterConfigurationBase.keepalive property - -Indicates that the request should be allowed to outlive the webpage that initiated it. Enables collector requests to complete even if the page is closed or navigated away from. Note: Browsers put a limit on keepalive requests of 64KB. In case of multiple keepalive requests in parallel (may happen in case of multiple trackers), the limit is shared. - -Signature: - -```typescript -keepalive?: boolean; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) > [keepalive](./react-native-tracker.emitterconfigurationbase.keepalive.md) + +## EmitterConfigurationBase.keepalive property + +Indicates that the request should be allowed to outlive the webpage that initiated it. Enables collector requests to complete even if the page is closed or navigated away from. Note: Browsers put a limit on keepalive requests of 64KB. In case of multiple keepalive requests in parallel (may happen in case of multiple trackers), the limit is shared. + +Signature: + +```typescript +keepalive?: boolean; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.maxgetbytes.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.maxgetbytes.md index 8f1246938..f9dfdedc5 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.maxgetbytes.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.maxgetbytes.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) > [maxGetBytes](./react-native-tracker.emitterconfigurationbase.maxgetbytes.md) - -## EmitterConfigurationBase.maxGetBytes property - -The max size a GET request (its complete URL) can be. Requests over this size will be tried as a POST request. - -Signature: - -```typescript -maxGetBytes?: number; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) > [maxGetBytes](./react-native-tracker.emitterconfigurationbase.maxgetbytes.md) + +## EmitterConfigurationBase.maxGetBytes property + +The max size a GET request (its complete URL) can be. Requests over this size will be tried as a POST request. + +Signature: + +```typescript +maxGetBytes?: number; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.maxpostbytes.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.maxpostbytes.md index 322cff750..1933473d1 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.maxpostbytes.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.maxpostbytes.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) > [maxPostBytes](./react-native-tracker.emitterconfigurationbase.maxpostbytes.md) - -## EmitterConfigurationBase.maxPostBytes property - -The max size a POST request can be before the tracker will force send it Also dictates the max size of a POST request before a batch of events is split into multiple requests - -Signature: - -```typescript -maxPostBytes?: number; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) > [maxPostBytes](./react-native-tracker.emitterconfigurationbase.maxpostbytes.md) + +## EmitterConfigurationBase.maxPostBytes property + +The max size a POST request can be before the tracker will force send it Also dictates the max size of a POST request before a batch of events is split into multiple requests + +Signature: + +```typescript +maxPostBytes?: number; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.md index f3d64191d..d30a00963 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.md @@ -1,35 +1,36 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) - -## EmitterConfigurationBase interface - -Signature: - -```typescript -interface EmitterConfigurationBase -``` - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [bufferSize?](./react-native-tracker.emitterconfigurationbase.buffersize.md) | number | (Optional) The amount of events that should be buffered before sending Recommended to leave as 1 to reduce change of losing events | -| [connectionTimeout?](./react-native-tracker.emitterconfigurationbase.connectiontimeout.md) | number | (Optional) How long to wait before aborting requests to the collector | -| [credentials?](./react-native-tracker.emitterconfigurationbase.credentials.md) | "omit" \| "same-origin" \| "include" | (Optional) Controls whether or not the browser sends credentials (defaults to 'include') | -| [customFetch?](./react-native-tracker.emitterconfigurationbase.customfetch.md) | (input: Request, options?: RequestInit) => Promise<Response> | (Optional) Enables overriding the default fetch function with a custom implementation. | -| [customHeaders?](./react-native-tracker.emitterconfigurationbase.customheaders.md) | Record<string, string> | (Optional) An object of key value pairs which represent headers to attach when sending a POST request, only works for POST | -| [dontRetryStatusCodes?](./react-native-tracker.emitterconfigurationbase.dontretrystatuscodes.md) | number\[\] | (Optional) List of HTTP response status codes for which events sent to Collector should not be retried in future request. Only non-success status codes are considered (greater or equal to 300). The don't retry codes are only considered for GET and POST requests. By default, the tracker retries on all non-success status codes except for 400, 401, 403, 410, and 422 (these don't retry codes will remain even if you set your own dontRetryStatusCodes but can be changed using the retryStatusCodes). | -| [eventMethod?](./react-native-tracker.emitterconfigurationbase.eventmethod.md) | EventMethod | (Optional) The preferred technique to use to send events | -| [eventStore?](./react-native-tracker.emitterconfigurationbase.eventstore.md) | EventStore | (Optional) Enables providing a custom EventStore implementation to store events before sending them to the collector. | -| [idService?](./react-native-tracker.emitterconfigurationbase.idservice.md) | string | (Optional) Id service full URL. This URL will be added to the queue and will be called using a GET method. This option is there to allow the service URL to be called in order to set any required identifiers e.g. extra cookies.The request respects the anonymousTracking option, including the SP-Anonymous header if needed, and any additional custom headers from the customHeaders option. | -| [keepalive?](./react-native-tracker.emitterconfigurationbase.keepalive.md) | boolean | (Optional) Indicates that the request should be allowed to outlive the webpage that initiated it. Enables collector requests to complete even if the page is closed or navigated away from. Note: Browsers put a limit on keepalive requests of 64KB. In case of multiple keepalive requests in parallel (may happen in case of multiple trackers), the limit is shared. | -| [maxGetBytes?](./react-native-tracker.emitterconfigurationbase.maxgetbytes.md) | number | (Optional) The max size a GET request (its complete URL) can be. Requests over this size will be tried as a POST request. | -| [maxPostBytes?](./react-native-tracker.emitterconfigurationbase.maxpostbytes.md) | number | (Optional) The max size a POST request can be before the tracker will force send it Also dictates the max size of a POST request before a batch of events is split into multiple requests | -| [onRequestFailure?](./react-native-tracker.emitterconfigurationbase.onrequestfailure.md) | (data: RequestFailure, response?: Response) => void | (Optional) A callback function to be executed whenever a request fails to be sent to the collector. This is the inverse of the onRequestSuccess callback, so any non 2xx status code will trigger this callback. | -| [onRequestSuccess?](./react-native-tracker.emitterconfigurationbase.onrequestsuccess.md) | (data: EventBatch, response: Response) => void | (Optional) A callback function to be executed whenever a request is successfully sent to the collector. In practice this means any request which returns a 2xx status code will trigger this callback. | -| [postPath?](./react-native-tracker.emitterconfigurationbase.postpath.md) | string | (Optional) The post path which events will be sent to. Ensure your collector is configured to accept events on this post path | -| [retryFailedRequests?](./react-native-tracker.emitterconfigurationbase.retryfailedrequests.md) | boolean | (Optional) Whether to retry failed requests to the collector.Failed requests are requests that failed due to \[timeouts\](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/timeout\_event), \[network errors\](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/error\_event), and \[abort events\](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/abort\_event).Takes precedent over retryStatusCodes and dontRetryStatusCodes. | -| [retryStatusCodes?](./react-native-tracker.emitterconfigurationbase.retrystatuscodes.md) | number\[\] | (Optional) List of HTTP response status codes for which events sent to Collector should be retried in future requests. Only non-success status codes are considered (greater or equal to 300). The retry codes are only considered for GET and POST requests. They take priority over the dontRetryStatusCodes option. By default, the tracker retries on all non-success status codes except for 400, 401, 403, 410, and 422. | -| [useStm?](./react-native-tracker.emitterconfigurationbase.usestm.md) | boolean | (Optional) Should the Sent Timestamp be attached to events. Only applies for GET events. | - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) + +## EmitterConfigurationBase interface + +Signature: + +```typescript +interface EmitterConfigurationBase +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [bufferSize?](./react-native-tracker.emitterconfigurationbase.buffersize.md) | number | (Optional) The amount of events that should be buffered before sending Recommended to leave as 1 to reduce change of losing events | +| [connectionTimeout?](./react-native-tracker.emitterconfigurationbase.connectiontimeout.md) | number | (Optional) How long to wait before aborting requests to the collector | +| [cookieExtensionService?](./react-native-tracker.emitterconfigurationbase.cookieextensionservice.md) | string | (Optional) Cookie extension service full URL. This URL will be added to the queue and will be called using a GET method. This option is there to allow the service URL to be called in order to set any required identifiers e.g. extra cookies.The request respects the anonymousTracking option, including the SP-Anonymous header if needed, and any additional custom headers from the customHeaders option. | +| [credentials?](./react-native-tracker.emitterconfigurationbase.credentials.md) | "omit" \| "same-origin" \| "include" | (Optional) Controls whether or not the browser sends credentials (defaults to 'include') | +| [customFetch?](./react-native-tracker.emitterconfigurationbase.customfetch.md) | (input: Request, options?: RequestInit) => Promise<Response> | (Optional) Enables overriding the default fetch function with a custom implementation. | +| [customHeaders?](./react-native-tracker.emitterconfigurationbase.customheaders.md) | Record<string, string> | (Optional) An object of key value pairs which represent headers to attach when sending a POST request, only works for POST | +| [dontRetryStatusCodes?](./react-native-tracker.emitterconfigurationbase.dontretrystatuscodes.md) | number\[\] | (Optional) List of HTTP response status codes for which events sent to Collector should not be retried in future request. Only non-success status codes are considered (greater or equal to 300). The don't retry codes are only considered for GET and POST requests. By default, the tracker retries on all non-success status codes except for 400, 401, 403, 410, and 422 (these don't retry codes will remain even if you set your own dontRetryStatusCodes but can be changed using the retryStatusCodes). | +| [eventMethod?](./react-native-tracker.emitterconfigurationbase.eventmethod.md) | EventMethod | (Optional) The preferred technique to use to send events | +| [eventStore?](./react-native-tracker.emitterconfigurationbase.eventstore.md) | EventStore | (Optional) Enables providing a custom EventStore implementation to store events before sending them to the collector. | +| [idService?](./react-native-tracker.emitterconfigurationbase.idservice.md) | string | (Optional) | +| [keepalive?](./react-native-tracker.emitterconfigurationbase.keepalive.md) | boolean | (Optional) Indicates that the request should be allowed to outlive the webpage that initiated it. Enables collector requests to complete even if the page is closed or navigated away from. Note: Browsers put a limit on keepalive requests of 64KB. In case of multiple keepalive requests in parallel (may happen in case of multiple trackers), the limit is shared. | +| [maxGetBytes?](./react-native-tracker.emitterconfigurationbase.maxgetbytes.md) | number | (Optional) The max size a GET request (its complete URL) can be. Requests over this size will be tried as a POST request. | +| [maxPostBytes?](./react-native-tracker.emitterconfigurationbase.maxpostbytes.md) | number | (Optional) The max size a POST request can be before the tracker will force send it Also dictates the max size of a POST request before a batch of events is split into multiple requests | +| [onRequestFailure?](./react-native-tracker.emitterconfigurationbase.onrequestfailure.md) | (data: RequestFailure, response?: Response) => void | (Optional) A callback function to be executed whenever a request fails to be sent to the collector. This is the inverse of the onRequestSuccess callback, so any non 2xx status code will trigger this callback. | +| [onRequestSuccess?](./react-native-tracker.emitterconfigurationbase.onrequestsuccess.md) | (data: EventBatch, response: Response) => void | (Optional) A callback function to be executed whenever a request is successfully sent to the collector. In practice this means any request which returns a 2xx status code will trigger this callback. | +| [postPath?](./react-native-tracker.emitterconfigurationbase.postpath.md) | string | (Optional) The post path which events will be sent to. Ensure your collector is configured to accept events on this post path | +| [retryFailedRequests?](./react-native-tracker.emitterconfigurationbase.retryfailedrequests.md) | boolean | (Optional) Whether to retry failed requests to the collector.Failed requests are requests that failed due to \[timeouts\](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/timeout\_event), \[network errors\](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/error\_event), and \[abort events\](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/abort\_event).Takes precedent over retryStatusCodes and dontRetryStatusCodes. | +| [retryStatusCodes?](./react-native-tracker.emitterconfigurationbase.retrystatuscodes.md) | number\[\] | (Optional) List of HTTP response status codes for which events sent to Collector should be retried in future requests. Only non-success status codes are considered (greater or equal to 300). The retry codes are only considered for GET and POST requests. They take priority over the dontRetryStatusCodes option. By default, the tracker retries on all non-success status codes except for 400, 401, 403, 410, and 422. | +| [useStm?](./react-native-tracker.emitterconfigurationbase.usestm.md) | boolean | (Optional) Should the Sent Timestamp be attached to events. Only applies for GET events. | + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.onrequestfailure.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.onrequestfailure.md index e016fb3eb..966c194ad 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.onrequestfailure.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.onrequestfailure.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) > [onRequestFailure](./react-native-tracker.emitterconfigurationbase.onrequestfailure.md) - -## EmitterConfigurationBase.onRequestFailure property - -A callback function to be executed whenever a request fails to be sent to the collector. This is the inverse of the onRequestSuccess callback, so any non 2xx status code will trigger this callback. - -Signature: - -```typescript -onRequestFailure?: (data: RequestFailure, response?: Response) => void; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) > [onRequestFailure](./react-native-tracker.emitterconfigurationbase.onrequestfailure.md) + +## EmitterConfigurationBase.onRequestFailure property + +A callback function to be executed whenever a request fails to be sent to the collector. This is the inverse of the onRequestSuccess callback, so any non 2xx status code will trigger this callback. + +Signature: + +```typescript +onRequestFailure?: (data: RequestFailure, response?: Response) => void; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.onrequestsuccess.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.onrequestsuccess.md index f10204f74..aa3a00827 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.onrequestsuccess.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.onrequestsuccess.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) > [onRequestSuccess](./react-native-tracker.emitterconfigurationbase.onrequestsuccess.md) - -## EmitterConfigurationBase.onRequestSuccess property - -A callback function to be executed whenever a request is successfully sent to the collector. In practice this means any request which returns a 2xx status code will trigger this callback. - -Signature: - -```typescript -onRequestSuccess?: (data: EventBatch, response: Response) => void; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) > [onRequestSuccess](./react-native-tracker.emitterconfigurationbase.onrequestsuccess.md) + +## EmitterConfigurationBase.onRequestSuccess property + +A callback function to be executed whenever a request is successfully sent to the collector. In practice this means any request which returns a 2xx status code will trigger this callback. + +Signature: + +```typescript +onRequestSuccess?: (data: EventBatch, response: Response) => void; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.postpath.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.postpath.md index 22919166b..f12cdb29b 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.postpath.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.postpath.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) > [postPath](./react-native-tracker.emitterconfigurationbase.postpath.md) - -## EmitterConfigurationBase.postPath property - -The post path which events will be sent to. Ensure your collector is configured to accept events on this post path - -Signature: - -```typescript -postPath?: string; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) > [postPath](./react-native-tracker.emitterconfigurationbase.postpath.md) + +## EmitterConfigurationBase.postPath property + +The post path which events will be sent to. Ensure your collector is configured to accept events on this post path + +Signature: + +```typescript +postPath?: string; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.retryfailedrequests.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.retryfailedrequests.md index f3f91e095..133d36e9d 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.retryfailedrequests.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.retryfailedrequests.md @@ -1,17 +1,17 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) > [retryFailedRequests](./react-native-tracker.emitterconfigurationbase.retryfailedrequests.md) - -## EmitterConfigurationBase.retryFailedRequests property - -Whether to retry failed requests to the collector. - -Failed requests are requests that failed due to \[timeouts\](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/timeout\_event), \[network errors\](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/error\_event), and \[abort events\](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/abort\_event). - -Takes precedent over `retryStatusCodes` and `dontRetryStatusCodes`. - -Signature: - -```typescript -retryFailedRequests?: boolean; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) > [retryFailedRequests](./react-native-tracker.emitterconfigurationbase.retryfailedrequests.md) + +## EmitterConfigurationBase.retryFailedRequests property + +Whether to retry failed requests to the collector. + +Failed requests are requests that failed due to \[timeouts\](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/timeout\_event), \[network errors\](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/error\_event), and \[abort events\](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/abort\_event). + +Takes precedent over `retryStatusCodes` and `dontRetryStatusCodes`. + +Signature: + +```typescript +retryFailedRequests?: boolean; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.retrystatuscodes.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.retrystatuscodes.md index 9aa2a5e3b..2e275eb64 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.retrystatuscodes.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.retrystatuscodes.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) > [retryStatusCodes](./react-native-tracker.emitterconfigurationbase.retrystatuscodes.md) - -## EmitterConfigurationBase.retryStatusCodes property - -List of HTTP response status codes for which events sent to Collector should be retried in future requests. Only non-success status codes are considered (greater or equal to 300). The retry codes are only considered for GET and POST requests. They take priority over the `dontRetryStatusCodes` option. By default, the tracker retries on all non-success status codes except for 400, 401, 403, 410, and 422. - -Signature: - -```typescript -retryStatusCodes?: number[]; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) > [retryStatusCodes](./react-native-tracker.emitterconfigurationbase.retrystatuscodes.md) + +## EmitterConfigurationBase.retryStatusCodes property + +List of HTTP response status codes for which events sent to Collector should be retried in future requests. Only non-success status codes are considered (greater or equal to 300). The retry codes are only considered for GET and POST requests. They take priority over the `dontRetryStatusCodes` option. By default, the tracker retries on all non-success status codes except for 400, 401, 403, 410, and 422. + +Signature: + +```typescript +retryStatusCodes?: number[]; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.usestm.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.usestm.md index 44ab994f9..357628928 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.usestm.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.emitterconfigurationbase.usestm.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) > [useStm](./react-native-tracker.emitterconfigurationbase.usestm.md) - -## EmitterConfigurationBase.useStm property - -Should the Sent Timestamp be attached to events. Only applies for GET events. - -Signature: - -```typescript -useStm?: boolean; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) > [useStm](./react-native-tracker.emitterconfigurationbase.usestm.md) + +## EmitterConfigurationBase.useStm property + +Should the Sent Timestamp be attached to events. Only applies for GET events. + +Signature: + +```typescript +useStm?: boolean; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventbatch.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventbatch.md index ae1217dde..3eda10ed8 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventbatch.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventbatch.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EventBatch](./react-native-tracker.eventbatch.md) - -## EventBatch type - -A collection of event payloads which are sent to the collector. - -Signature: - -```typescript -type EventBatch = Payload[]; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EventBatch](./react-native-tracker.eventbatch.md) + +## EventBatch type + +A collection of event payloads which are sent to the collector. + +Signature: + +```typescript +type EventBatch = Payload[]; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventcontext.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventcontext.md index f30c91eb3..9e3cbe32b 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventcontext.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventcontext.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EventContext](./react-native-tracker.eventcontext.md) - -## EventContext type - -EventContext type - -Signature: - -```typescript -export declare type EventContext = SelfDescribingJson; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EventContext](./react-native-tracker.eventcontext.md) + +## EventContext type + +EventContext type + +Signature: + +```typescript +export declare type EventContext = SelfDescribingJson; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventjson.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventjson.md index f7a6a5ed4..6772b5486 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventjson.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventjson.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EventJson](./react-native-tracker.eventjson.md) - -## EventJson type - -An array of tuples which represents the unprocessed JSON to be added to the Payload - -Signature: - -```typescript -type EventJson = Array; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EventJson](./react-native-tracker.eventjson.md) + +## EventJson type + +An array of tuples which represents the unprocessed JSON to be added to the Payload + +Signature: + +```typescript +type EventJson = Array; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventjsonwithkeys.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventjsonwithkeys.md index c59e2e28f..025ecd9e2 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventjsonwithkeys.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventjsonwithkeys.md @@ -1,17 +1,17 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EventJsonWithKeys](./react-native-tracker.eventjsonwithkeys.md) - -## EventJsonWithKeys type - -A tuple which represents the unprocessed JSON to be added to the Payload - -Signature: - -```typescript -type EventJsonWithKeys = { - keyIfEncoded: string; - keyIfNotEncoded: string; - json: Record; -}; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EventJsonWithKeys](./react-native-tracker.eventjsonwithkeys.md) + +## EventJsonWithKeys type + +A tuple which represents the unprocessed JSON to be added to the Payload + +Signature: + +```typescript +type EventJsonWithKeys = { + keyIfEncoded: string; + keyIfNotEncoded: string; + json: Record; +}; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventmethod.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventmethod.md index 4bf7b39a3..c76297fad 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventmethod.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventmethod.md @@ -1,11 +1,11 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EventMethod](./react-native-tracker.eventmethod.md) - -## EventMethod type - -Signature: - -```typescript -type EventMethod = "post" | "get"; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EventMethod](./react-native-tracker.eventmethod.md) + +## EventMethod type + +Signature: + +```typescript +type EventMethod = "post" | "get"; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventpayloadandcontext.context.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventpayloadandcontext.context.md index 0f271f915..e4dfd9d8a 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventpayloadandcontext.context.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventpayloadandcontext.context.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EventPayloadAndContext](./react-native-tracker.eventpayloadandcontext.md) > [context](./react-native-tracker.eventpayloadandcontext.context.md) - -## EventPayloadAndContext.context property - -List of context entities to track along with the event - -Signature: - -```typescript -context: Array; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EventPayloadAndContext](./react-native-tracker.eventpayloadandcontext.md) > [context](./react-native-tracker.eventpayloadandcontext.context.md) + +## EventPayloadAndContext.context property + +List of context entities to track along with the event + +Signature: + +```typescript +context: Array; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventpayloadandcontext.event.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventpayloadandcontext.event.md index a24f74e22..4046b70a7 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventpayloadandcontext.event.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventpayloadandcontext.event.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EventPayloadAndContext](./react-native-tracker.eventpayloadandcontext.md) > [event](./react-native-tracker.eventpayloadandcontext.event.md) - -## EventPayloadAndContext.event property - -Tracker payload for the event data - -Signature: - -```typescript -event: PayloadBuilder; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EventPayloadAndContext](./react-native-tracker.eventpayloadandcontext.md) > [event](./react-native-tracker.eventpayloadandcontext.event.md) + +## EventPayloadAndContext.event property + +Tracker payload for the event data + +Signature: + +```typescript +event: PayloadBuilder; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventpayloadandcontext.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventpayloadandcontext.md index e998eaaf4..2d62a8d95 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventpayloadandcontext.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventpayloadandcontext.md @@ -1,21 +1,21 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EventPayloadAndContext](./react-native-tracker.eventpayloadandcontext.md) - -## EventPayloadAndContext interface - -Interface for returning a built event (PayloadBuilder) and context (Array of SelfDescribingJson). - -Signature: - -```typescript -interface EventPayloadAndContext -``` - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [context](./react-native-tracker.eventpayloadandcontext.context.md) | Array<SelfDescribingJson> | List of context entities to track along with the event | -| [event](./react-native-tracker.eventpayloadandcontext.event.md) | PayloadBuilder | Tracker payload for the event data | - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EventPayloadAndContext](./react-native-tracker.eventpayloadandcontext.md) + +## EventPayloadAndContext interface + +Interface for returning a built event (PayloadBuilder) and context (Array of SelfDescribingJson). + +Signature: + +```typescript +interface EventPayloadAndContext +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [context](./react-native-tracker.eventpayloadandcontext.context.md) | Array<SelfDescribingJson> | List of context entities to track along with the event | +| [event](./react-native-tracker.eventpayloadandcontext.event.md) | PayloadBuilder | Tracker payload for the event data | + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventstoreconfiguration.asyncstorage.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventstoreconfiguration.asyncstorage.md index f1f8ac7e2..980c7f6c9 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventstoreconfiguration.asyncstorage.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventstoreconfiguration.asyncstorage.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EventStoreConfiguration](./react-native-tracker.eventstoreconfiguration.md) > [asyncStorage](./react-native-tracker.eventstoreconfiguration.asyncstorage.md) - -## EventStoreConfiguration.asyncStorage property - -The Async storage implementation. In environments where AsyncStorage is not available or where another kind of storage is used, you can provide a custom implementation. - -Signature: - -```typescript -asyncStorage?: AsyncStorage; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EventStoreConfiguration](./react-native-tracker.eventstoreconfiguration.md) > [asyncStorage](./react-native-tracker.eventstoreconfiguration.asyncstorage.md) + +## EventStoreConfiguration.asyncStorage property + +The Async storage implementation. In environments where AsyncStorage is not available or where another kind of storage is used, you can provide a custom implementation. + +Signature: + +```typescript +asyncStorage?: AsyncStorage; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventstoreconfiguration.maxeventstoresize.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventstoreconfiguration.maxeventstoresize.md index 73a1e44e9..ccc4debe4 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventstoreconfiguration.maxeventstoresize.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventstoreconfiguration.maxeventstoresize.md @@ -1,15 +1,15 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EventStoreConfiguration](./react-native-tracker.eventstoreconfiguration.md) > [maxEventStoreSize](./react-native-tracker.eventstoreconfiguration.maxeventstoresize.md) - -## EventStoreConfiguration.maxEventStoreSize property - -The maximum amount of events that will be buffered in the event store - -Will drop events once the limit is hit - -Signature: - -```typescript -maxEventStoreSize?: number; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EventStoreConfiguration](./react-native-tracker.eventstoreconfiguration.md) > [maxEventStoreSize](./react-native-tracker.eventstoreconfiguration.maxeventstoresize.md) + +## EventStoreConfiguration.maxEventStoreSize property + +The maximum amount of events that will be buffered in the event store + +Will drop events once the limit is hit + +Signature: + +```typescript +maxEventStoreSize?: number; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventstoreconfiguration.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventstoreconfiguration.md index 43b1b0922..deee2aeca 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventstoreconfiguration.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventstoreconfiguration.md @@ -1,22 +1,22 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EventStoreConfiguration](./react-native-tracker.eventstoreconfiguration.md) - -## EventStoreConfiguration interface - -Configuration for the event store - -Signature: - -```typescript -export interface EventStoreConfiguration -``` - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [asyncStorage?](./react-native-tracker.eventstoreconfiguration.asyncstorage.md) | [AsyncStorage](./react-native-tracker.asyncstorage.md) | (Optional) The Async storage implementation. In environments where AsyncStorage is not available or where another kind of storage is used, you can provide a custom implementation. | -| [maxEventStoreSize?](./react-native-tracker.eventstoreconfiguration.maxeventstoresize.md) | number | (Optional) The maximum amount of events that will be buffered in the event storeWill drop events once the limit is hit | -| [useAsyncStorageForEventStore?](./react-native-tracker.eventstoreconfiguration.useasyncstorageforeventstore.md) | boolean | (Optional) Whether to use the AsyncStorage library as the persistent event store for the event store | - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EventStoreConfiguration](./react-native-tracker.eventstoreconfiguration.md) + +## EventStoreConfiguration interface + +Configuration for the event store + +Signature: + +```typescript +export interface EventStoreConfiguration +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [asyncStorage?](./react-native-tracker.eventstoreconfiguration.asyncstorage.md) | [AsyncStorage](./react-native-tracker.asyncstorage.md) | (Optional) The Async storage implementation. In environments where AsyncStorage is not available or where another kind of storage is used, you can provide a custom implementation. | +| [maxEventStoreSize?](./react-native-tracker.eventstoreconfiguration.maxeventstoresize.md) | number | (Optional) The maximum amount of events that will be buffered in the event storeWill drop events once the limit is hit | +| [useAsyncStorageForEventStore?](./react-native-tracker.eventstoreconfiguration.useasyncstorageforeventstore.md) | boolean | (Optional) Whether to use the AsyncStorage library as the persistent event store for the event store | + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventstoreconfiguration.useasyncstorageforeventstore.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventstoreconfiguration.useasyncstorageforeventstore.md index 2b4654199..275e64ede 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventstoreconfiguration.useasyncstorageforeventstore.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventstoreconfiguration.useasyncstorageforeventstore.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EventStoreConfiguration](./react-native-tracker.eventstoreconfiguration.md) > [useAsyncStorageForEventStore](./react-native-tracker.eventstoreconfiguration.useasyncstorageforeventstore.md) - -## EventStoreConfiguration.useAsyncStorageForEventStore property - -Whether to use the AsyncStorage library as the persistent event store for the event store - -Signature: - -```typescript -useAsyncStorageForEventStore?: boolean; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EventStoreConfiguration](./react-native-tracker.eventstoreconfiguration.md) > [useAsyncStorageForEventStore](./react-native-tracker.eventstoreconfiguration.useasyncstorageforeventstore.md) + +## EventStoreConfiguration.useAsyncStorageForEventStore property + +Whether to use the AsyncStorage library as the persistent event store for the event store + +Signature: + +```typescript +useAsyncStorageForEventStore?: boolean; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventstoreiterator.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventstoreiterator.md index 210311306..4b9d4e13b 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventstoreiterator.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventstoreiterator.md @@ -1,20 +1,20 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EventStoreIterator](./react-native-tracker.eventstoreiterator.md) - -## EventStoreIterator interface - -EventStoreIterator allows iterating over all events in the store. - -Signature: - -```typescript -interface EventStoreIterator -``` - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [next](./react-native-tracker.eventstoreiterator.next.md) | () => Promise<EventStoreIteratorNextResult> | Retrieve the next event in the store | - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EventStoreIterator](./react-native-tracker.eventstoreiterator.md) + +## EventStoreIterator interface + +EventStoreIterator allows iterating over all events in the store. + +Signature: + +```typescript +interface EventStoreIterator +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [next](./react-native-tracker.eventstoreiterator.next.md) | () => Promise<EventStoreIteratorNextResult> | Retrieve the next event in the store | + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventstoreiterator.next.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventstoreiterator.next.md index a22200a8c..c2e95a935 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventstoreiterator.next.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventstoreiterator.next.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EventStoreIterator](./react-native-tracker.eventstoreiterator.md) > [next](./react-native-tracker.eventstoreiterator.next.md) - -## EventStoreIterator.next property - -Retrieve the next event in the store - -Signature: - -```typescript -next: () => Promise; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EventStoreIterator](./react-native-tracker.eventstoreiterator.md) > [next](./react-native-tracker.eventstoreiterator.next.md) + +## EventStoreIterator.next property + +Retrieve the next event in the store + +Signature: + +```typescript +next: () => Promise; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventstorepayload.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventstorepayload.md index d212364e9..472ba6f8f 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventstorepayload.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventstorepayload.md @@ -1,19 +1,19 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EventStorePayload](./react-native-tracker.eventstorepayload.md) - -## EventStorePayload interface - -Signature: - -```typescript -interface EventStorePayload -``` - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [payload](./react-native-tracker.eventstorepayload.payload.md) | Payload | The event payload to be stored | -| [svrAnon?](./react-native-tracker.eventstorepayload.svranon.md) | boolean | (Optional) If the request should undergo server anonymization. | - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EventStorePayload](./react-native-tracker.eventstorepayload.md) + +## EventStorePayload interface + +Signature: + +```typescript +interface EventStorePayload +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [payload](./react-native-tracker.eventstorepayload.payload.md) | Payload | The event payload to be stored | +| [svrAnon?](./react-native-tracker.eventstorepayload.svranon.md) | boolean | (Optional) If the request should undergo server anonymization. | + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventstorepayload.payload.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventstorepayload.payload.md index 3396c027c..76807caf0 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventstorepayload.payload.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventstorepayload.payload.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EventStorePayload](./react-native-tracker.eventstorepayload.md) > [payload](./react-native-tracker.eventstorepayload.payload.md) - -## EventStorePayload.payload property - -The event payload to be stored - -Signature: - -```typescript -payload: Payload; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EventStorePayload](./react-native-tracker.eventstorepayload.md) > [payload](./react-native-tracker.eventstorepayload.payload.md) + +## EventStorePayload.payload property + +The event payload to be stored + +Signature: + +```typescript +payload: Payload; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventstorepayload.svranon.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventstorepayload.svranon.md index 964d41b4c..5db52ecfc 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventstorepayload.svranon.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.eventstorepayload.svranon.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EventStorePayload](./react-native-tracker.eventstorepayload.md) > [svrAnon](./react-native-tracker.eventstorepayload.svranon.md) - -## EventStorePayload.svrAnon property - -If the request should undergo server anonymization. - -Signature: - -```typescript -svrAnon?: boolean; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [EventStorePayload](./react-native-tracker.eventstorepayload.md) > [svrAnon](./react-native-tracker.eventstorepayload.svranon.md) + +## EventStorePayload.svrAnon property + +If the request should undergo server anonymization. + +Signature: + +```typescript +svrAnon?: boolean; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.filterprovider.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.filterprovider.md index ad74eaa27..a58d155e1 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.filterprovider.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.filterprovider.md @@ -1,16 +1,16 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [FilterProvider](./react-native-tracker.filterprovider.md) - -## FilterProvider type - -A filter provider is a tuple that has two parts: a context filter and the context primitive(s) If the context filter evaluates to true, the tracker will attach the context primitive(s) - -Signature: - -```typescript -type FilterProvider = [ - ContextFilter, - Array | ContextPrimitive -]; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [FilterProvider](./react-native-tracker.filterprovider.md) + +## FilterProvider type + +A filter provider is a tuple that has two parts: a context filter and the context primitive(s) If the context filter evaluates to true, the tracker will attach the context primitive(s) + +Signature: + +```typescript +type FilterProvider = [ + ContextFilter, + Array | ContextPrimitive +]; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.formfocusorchangeevent.elementclasses.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.formfocusorchangeevent.elementclasses.md index d84dd4265..f5fcd4679 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.formfocusorchangeevent.elementclasses.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.formfocusorchangeevent.elementclasses.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [FormFocusOrChangeEvent](./react-native-tracker.formfocusorchangeevent.md) > [elementClasses](./react-native-tracker.formfocusorchangeevent.elementclasses.md) - -## FormFocusOrChangeEvent.elementClasses property - -The class names on the element - -Signature: - -```typescript -elementClasses?: Array | null; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [FormFocusOrChangeEvent](./react-native-tracker.formfocusorchangeevent.md) > [elementClasses](./react-native-tracker.formfocusorchangeevent.elementclasses.md) + +## FormFocusOrChangeEvent.elementClasses property + +The class names on the element + +Signature: + +```typescript +elementClasses?: Array | null; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.formfocusorchangeevent.elementid.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.formfocusorchangeevent.elementid.md index 73fb8561a..b0432e03b 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.formfocusorchangeevent.elementid.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.formfocusorchangeevent.elementid.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [FormFocusOrChangeEvent](./react-native-tracker.formfocusorchangeevent.md) > [elementId](./react-native-tracker.formfocusorchangeevent.elementid.md) - -## FormFocusOrChangeEvent.elementId property - -The element ID which the user is interacting with - -Signature: - -```typescript -elementId: string; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [FormFocusOrChangeEvent](./react-native-tracker.formfocusorchangeevent.md) > [elementId](./react-native-tracker.formfocusorchangeevent.elementid.md) + +## FormFocusOrChangeEvent.elementId property + +The element ID which the user is interacting with + +Signature: + +```typescript +elementId: string; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.formfocusorchangeevent.formid.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.formfocusorchangeevent.formid.md index 7ced403f4..2d90c18ee 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.formfocusorchangeevent.formid.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.formfocusorchangeevent.formid.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [FormFocusOrChangeEvent](./react-native-tracker.formfocusorchangeevent.md) > [formId](./react-native-tracker.formfocusorchangeevent.formid.md) - -## FormFocusOrChangeEvent.formId property - -The ID of the form which the element belongs to - -Signature: - -```typescript -formId: string; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [FormFocusOrChangeEvent](./react-native-tracker.formfocusorchangeevent.md) > [formId](./react-native-tracker.formfocusorchangeevent.formid.md) + +## FormFocusOrChangeEvent.formId property + +The ID of the form which the element belongs to + +Signature: + +```typescript +formId: string; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.formfocusorchangeevent.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.formfocusorchangeevent.md index 8527ffae3..534758912 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.formfocusorchangeevent.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.formfocusorchangeevent.md @@ -1,26 +1,26 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [FormFocusOrChangeEvent](./react-native-tracker.formfocusorchangeevent.md) - -## FormFocusOrChangeEvent interface - -Represents either a Form Focus or Form Change event When a user focuses on a form element or when a user makes a change to a form element. - -Signature: - -```typescript -interface FormFocusOrChangeEvent -``` - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [elementClasses?](./react-native-tracker.formfocusorchangeevent.elementclasses.md) | Array<string> \| null | (Optional) The class names on the element | -| [elementId](./react-native-tracker.formfocusorchangeevent.elementid.md) | string | The element ID which the user is interacting with | -| [formId](./react-native-tracker.formfocusorchangeevent.formid.md) | string | The ID of the form which the element belongs to | -| [nodeName](./react-native-tracker.formfocusorchangeevent.nodename.md) | string | The name of the node ("INPUT", "TEXTAREA", "SELECT") | -| [schema](./react-native-tracker.formfocusorchangeevent.schema.md) | "change\_form" \| "focus\_form" | The schema which will be used for the event | -| [type?](./react-native-tracker.formfocusorchangeevent.type.md) | string \| null | (Optional) The type of element (e.g. "datetime", "text", "radio", etc.) | -| [value](./react-native-tracker.formfocusorchangeevent.value.md) | string \| null | The value of the element at the time of the event firing | - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [FormFocusOrChangeEvent](./react-native-tracker.formfocusorchangeevent.md) + +## FormFocusOrChangeEvent interface + +Represents either a Form Focus or Form Change event When a user focuses on a form element or when a user makes a change to a form element. + +Signature: + +```typescript +interface FormFocusOrChangeEvent +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [elementClasses?](./react-native-tracker.formfocusorchangeevent.elementclasses.md) | Array<string> \| null | (Optional) The class names on the element | +| [elementId](./react-native-tracker.formfocusorchangeevent.elementid.md) | string | The element ID which the user is interacting with | +| [formId](./react-native-tracker.formfocusorchangeevent.formid.md) | string | The ID of the form which the element belongs to | +| [nodeName](./react-native-tracker.formfocusorchangeevent.nodename.md) | string | The name of the node ("INPUT", "TEXTAREA", "SELECT") | +| [schema](./react-native-tracker.formfocusorchangeevent.schema.md) | "change\_form" \| "focus\_form" | The schema which will be used for the event | +| [type?](./react-native-tracker.formfocusorchangeevent.type.md) | string \| null | (Optional) The type of element (e.g. "datetime", "text", "radio", etc.) | +| [value](./react-native-tracker.formfocusorchangeevent.value.md) | string \| null | The value of the element at the time of the event firing | + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.formfocusorchangeevent.nodename.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.formfocusorchangeevent.nodename.md index 882827ed8..ee9f369ae 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.formfocusorchangeevent.nodename.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.formfocusorchangeevent.nodename.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [FormFocusOrChangeEvent](./react-native-tracker.formfocusorchangeevent.md) > [nodeName](./react-native-tracker.formfocusorchangeevent.nodename.md) - -## FormFocusOrChangeEvent.nodeName property - -The name of the node ("INPUT", "TEXTAREA", "SELECT") - -Signature: - -```typescript -nodeName: string; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [FormFocusOrChangeEvent](./react-native-tracker.formfocusorchangeevent.md) > [nodeName](./react-native-tracker.formfocusorchangeevent.nodename.md) + +## FormFocusOrChangeEvent.nodeName property + +The name of the node ("INPUT", "TEXTAREA", "SELECT") + +Signature: + +```typescript +nodeName: string; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.formfocusorchangeevent.schema.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.formfocusorchangeevent.schema.md index 321399b57..474e39187 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.formfocusorchangeevent.schema.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.formfocusorchangeevent.schema.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [FormFocusOrChangeEvent](./react-native-tracker.formfocusorchangeevent.md) > [schema](./react-native-tracker.formfocusorchangeevent.schema.md) - -## FormFocusOrChangeEvent.schema property - -The schema which will be used for the event - -Signature: - -```typescript -schema: "change_form" | "focus_form"; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [FormFocusOrChangeEvent](./react-native-tracker.formfocusorchangeevent.md) > [schema](./react-native-tracker.formfocusorchangeevent.schema.md) + +## FormFocusOrChangeEvent.schema property + +The schema which will be used for the event + +Signature: + +```typescript +schema: "change_form" | "focus_form"; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.formfocusorchangeevent.type.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.formfocusorchangeevent.type.md index 7d64677df..da56b8396 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.formfocusorchangeevent.type.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.formfocusorchangeevent.type.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [FormFocusOrChangeEvent](./react-native-tracker.formfocusorchangeevent.md) > [type](./react-native-tracker.formfocusorchangeevent.type.md) - -## FormFocusOrChangeEvent.type property - -The type of element (e.g. "datetime", "text", "radio", etc.) - -Signature: - -```typescript -type?: string | null; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [FormFocusOrChangeEvent](./react-native-tracker.formfocusorchangeevent.md) > [type](./react-native-tracker.formfocusorchangeevent.type.md) + +## FormFocusOrChangeEvent.type property + +The type of element (e.g. "datetime", "text", "radio", etc.) + +Signature: + +```typescript +type?: string | null; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.formfocusorchangeevent.value.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.formfocusorchangeevent.value.md index 48ea7ccb7..9af73bad8 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.formfocusorchangeevent.value.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.formfocusorchangeevent.value.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [FormFocusOrChangeEvent](./react-native-tracker.formfocusorchangeevent.md) > [value](./react-native-tracker.formfocusorchangeevent.value.md) - -## FormFocusOrChangeEvent.value property - -The value of the element at the time of the event firing - -Signature: - -```typescript -value: string | null; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [FormFocusOrChangeEvent](./react-native-tracker.formfocusorchangeevent.md) > [value](./react-native-tracker.formfocusorchangeevent.value.md) + +## FormFocusOrChangeEvent.value property + +The value of the element at the time of the event firing + +Signature: + +```typescript +value: string | null; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.getalltrackers.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.getalltrackers.md index dd12938e2..2d148726e 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.getalltrackers.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.getalltrackers.md @@ -1,19 +1,19 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [getAllTrackers](./react-native-tracker.getalltrackers.md) - -## getAllTrackers() function - -Retrieves all initialized trackers - -Signature: - -```typescript -export declare function getAllTrackers(): ReactNativeTracker[]; -``` -Returns: - -[ReactNativeTracker](./react-native-tracker.reactnativetracker.md)\[\] - -All initialized trackers - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [getAllTrackers](./react-native-tracker.getalltrackers.md) + +## getAllTrackers() function + +Retrieves all initialized trackers + +Signature: + +```typescript +export declare function getAllTrackers(): ReactNativeTracker[]; +``` +Returns: + +[ReactNativeTracker](./react-native-tracker.reactnativetracker.md)\[\] + +All initialized trackers + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.gettracker.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.gettracker.md index 273ba4165..7a3376ae2 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.gettracker.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.gettracker.md @@ -1,26 +1,26 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [getTracker](./react-native-tracker.gettracker.md) - -## getTracker() function - -Retrieves an initialized tracker given its namespace - -Signature: - -```typescript -export declare function getTracker(trackerNamespace: string): ReactNativeTracker | undefined; -``` - -## Parameters - -| Parameter | Type | Description | -| --- | --- | --- | -| trackerNamespace | string | Tracker namespace | - -Returns: - -[ReactNativeTracker](./react-native-tracker.reactnativetracker.md) \| undefined - -Tracker instance if exists - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [getTracker](./react-native-tracker.gettracker.md) + +## getTracker() function + +Retrieves an initialized tracker given its namespace + +Signature: + +```typescript +export declare function getTracker(trackerNamespace: string): ReactNativeTracker | undefined; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| trackerNamespace | string | Tracker namespace | + +Returns: + +[ReactNativeTracker](./react-native-tracker.reactnativetracker.md) \| undefined + +Tracker instance if exists + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.getwebviewcallback.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.getwebviewcallback.md index 1fb83961f..cf17e1b19 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.getwebviewcallback.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.getwebviewcallback.md @@ -1,25 +1,21 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [getWebViewCallback](./react-native-tracker.getwebviewcallback.md) - -## getWebViewCallback() function - -Enables tracking events from apps rendered in react-native-webview components. The apps need to use the Snowplow WebView tracker to track the events. - -To subscribe for the events, set the `onMessage` attribute: `` - -Signature: - -```typescript -export declare function getWebViewCallback(): (message: { - nativeEvent: { - data: string; - }; -}) => void; -``` -Returns: - -(message: { nativeEvent: { data: string; }; }) => void - -Callback to subscribe for events from Web views tracked using the Snowplow WebView tracker. - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [getWebViewCallback](./react-native-tracker.getwebviewcallback.md) + +## getWebViewCallback() function + +Enables tracking events from apps rendered in react-native-webview components. The apps need to use the Snowplow WebView tracker to track the events. + +To subscribe for the events, use as the `onMessage` prop for a `WebView` component. + +Signature: + +```typescript +export declare function getWebViewCallback(): WebViewMessageHandler; +``` +Returns: + +[WebViewMessageHandler](./react-native-tracker.webviewmessagehandler.md) + +Callback to subscribe for events from Web views tracked using the Snowplow WebView tracker. + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.jsonprocessor.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.jsonprocessor.md index 36f1cb5bc..35d77f46d 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.jsonprocessor.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.jsonprocessor.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [JsonProcessor](./react-native-tracker.jsonprocessor.md) - -## JsonProcessor type - -A function which will processor the Json onto the injected PayloadBuilder - -Signature: - -```typescript -type JsonProcessor = (payloadBuilder: PayloadBuilder, jsonForProcessing: EventJson, contextEntitiesForProcessing: SelfDescribingJson[]) => void; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [JsonProcessor](./react-native-tracker.jsonprocessor.md) + +## JsonProcessor type + +A function which will processor the Json onto the injected PayloadBuilder + +Signature: + +```typescript +type JsonProcessor = (payloadBuilder: PayloadBuilder, jsonForProcessing: EventJson, contextEntitiesForProcessing: SelfDescribingJson[]) => void; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.listitemviewprops.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.listitemviewprops.md index dfa8a2d47..70e90a10f 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.listitemviewprops.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.listitemviewprops.md @@ -1,18 +1,18 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [ListItemViewProps](./react-native-tracker.listitemviewprops.md) - -## ListItemViewProps type - -Event tracking the view of an item in a list. If screen engagement tracking is enabled, the list item view events will be aggregated into a `screen_summary` entity. - -Schema: `iglu:com.snowplowanalytics.mobile/list_item_view/jsonschema/1-0-0` - -Signature: - -```typescript -export declare type ListItemViewProps = { - index: number; - itemsCount?: number; -}; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [ListItemViewProps](./react-native-tracker.listitemviewprops.md) + +## ListItemViewProps type + +Event tracking the view of an item in a list. If screen engagement tracking is enabled, the list item view events will be aggregated into a `screen_summary` entity. + +Schema: `iglu:com.snowplowanalytics.mobile/list_item_view/jsonschema/1-0-0` + +Signature: + +```typescript +export declare type ListItemViewProps = { + index: number; + itemsCount?: number; +}; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.log_level.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.log_level.md index c94abf2e3..820f56307 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.log_level.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.log_level.md @@ -1,22 +1,22 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [LOG\_LEVEL](./react-native-tracker.log_level.md) - -## LOG\_LEVEL enum - -Signature: - -```typescript -declare enum LOG_LEVEL -``` - -## Enumeration Members - -| Member | Value | Description | -| --- | --- | --- | -| debug | 3 | | -| error | 1 | | -| info | 4 | | -| none | 0 | | -| warn | 2 | | - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [LOG\_LEVEL](./react-native-tracker.log_level.md) + +## LOG\_LEVEL enum + +Signature: + +```typescript +declare enum LOG_LEVEL +``` + +## Enumeration Members + +| Member | Value | Description | +| --- | --- | --- | +| debug | 3 | | +| error | 1 | | +| info | 4 | | +| none | 0 | | +| warn | 2 | | + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.logger.debug.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.logger.debug.md index 689ced16b..a5470c124 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.logger.debug.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.logger.debug.md @@ -1,11 +1,11 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [Logger](./react-native-tracker.logger.md) > [debug](./react-native-tracker.logger.debug.md) - -## Logger.debug property - -Signature: - -```typescript -debug: (message: string, ...extraParams: unknown[]) => void; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [Logger](./react-native-tracker.logger.md) > [debug](./react-native-tracker.logger.debug.md) + +## Logger.debug property + +Signature: + +```typescript +debug: (message: string, ...extraParams: unknown[]) => void; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.logger.error.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.logger.error.md index 4f636b8c6..b13733fc3 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.logger.error.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.logger.error.md @@ -1,11 +1,11 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [Logger](./react-native-tracker.logger.md) > [error](./react-native-tracker.logger.error.md) - -## Logger.error property - -Signature: - -```typescript -error: (message: string, error?: unknown, ...extraParams: unknown[]) => void; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [Logger](./react-native-tracker.logger.md) > [error](./react-native-tracker.logger.error.md) + +## Logger.error property + +Signature: + +```typescript +error: (message: string, error?: unknown, ...extraParams: unknown[]) => void; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.logger.info.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.logger.info.md index e887d16b6..27b3239e6 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.logger.info.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.logger.info.md @@ -1,11 +1,11 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [Logger](./react-native-tracker.logger.md) > [info](./react-native-tracker.logger.info.md) - -## Logger.info property - -Signature: - -```typescript -info: (message: string, ...extraParams: unknown[]) => void; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [Logger](./react-native-tracker.logger.md) > [info](./react-native-tracker.logger.info.md) + +## Logger.info property + +Signature: + +```typescript +info: (message: string, ...extraParams: unknown[]) => void; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.logger.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.logger.md index 0c94986dd..edbfd7edd 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.logger.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.logger.md @@ -1,22 +1,22 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [Logger](./react-native-tracker.logger.md) - -## Logger interface - -Signature: - -```typescript -interface Logger -``` - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [debug](./react-native-tracker.logger.debug.md) | (message: string, ...extraParams: unknown\[\]) => void | | -| [error](./react-native-tracker.logger.error.md) | (message: string, error?: unknown, ...extraParams: unknown\[\]) => void | | -| [info](./react-native-tracker.logger.info.md) | (message: string, ...extraParams: unknown\[\]) => void | | -| [setLogLevel](./react-native-tracker.logger.setloglevel.md) | (level: LOG\_LEVEL) => void | | -| [warn](./react-native-tracker.logger.warn.md) | (message: string, error?: unknown, ...extraParams: unknown\[\]) => void | | - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [Logger](./react-native-tracker.logger.md) + +## Logger interface + +Signature: + +```typescript +interface Logger +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [debug](./react-native-tracker.logger.debug.md) | (message: string, ...extraParams: unknown\[\]) => void | | +| [error](./react-native-tracker.logger.error.md) | (message: string, error?: unknown, ...extraParams: unknown\[\]) => void | | +| [info](./react-native-tracker.logger.info.md) | (message: string, ...extraParams: unknown\[\]) => void | | +| [setLogLevel](./react-native-tracker.logger.setloglevel.md) | (level: LOG\_LEVEL) => void | | +| [warn](./react-native-tracker.logger.warn.md) | (message: string, error?: unknown, ...extraParams: unknown\[\]) => void | | + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.logger.setloglevel.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.logger.setloglevel.md index b3148fafe..700d5b330 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.logger.setloglevel.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.logger.setloglevel.md @@ -1,11 +1,11 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [Logger](./react-native-tracker.logger.md) > [setLogLevel](./react-native-tracker.logger.setloglevel.md) - -## Logger.setLogLevel property - -Signature: - -```typescript -setLogLevel: (level: LOG_LEVEL) => void; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [Logger](./react-native-tracker.logger.md) > [setLogLevel](./react-native-tracker.logger.setloglevel.md) + +## Logger.setLogLevel property + +Signature: + +```typescript +setLogLevel: (level: LOG_LEVEL) => void; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.logger.warn.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.logger.warn.md index 75adb0319..07bd67498 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.logger.warn.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.logger.warn.md @@ -1,11 +1,11 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [Logger](./react-native-tracker.logger.md) > [warn](./react-native-tracker.logger.warn.md) - -## Logger.warn property - -Signature: - -```typescript -warn: (message: string, error?: unknown, ...extraParams: unknown[]) => void; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [Logger](./react-native-tracker.logger.md) > [warn](./react-native-tracker.logger.warn.md) + +## Logger.warn property + +Signature: + +```typescript +warn: (message: string, error?: unknown, ...extraParams: unknown[]) => void; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.md index 25239ae85..22ecb8b29 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.md @@ -1,94 +1,95 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) - -## react-native-tracker package - -## Enumerations - -| Enumeration | Description | -| --- | --- | -| [LOG\_LEVEL](./react-native-tracker.log_level.md) | | -| [PlatformContextProperty](./react-native-tracker.platformcontextproperty.md) | | - -## Functions - -| Function | Description | -| --- | --- | -| [getAllTrackers()](./react-native-tracker.getalltrackers.md) | Retrieves all initialized trackers | -| [getTracker(trackerNamespace)](./react-native-tracker.gettracker.md) | Retrieves an initialized tracker given its namespace | -| [getWebViewCallback()](./react-native-tracker.getwebviewcallback.md) | Enables tracking events from apps rendered in react-native-webview components. The apps need to use the Snowplow WebView tracker to track the events.To subscribe for the events, set the onMessage attribute: <WebView onMessage={getWebViewCallback()} ... /> | -| [newTracker(configuration)](./react-native-tracker.newtracker.md) | Creates a new tracker instance with the given configuration | -| [removeAllTrackers()](./react-native-tracker.removealltrackers.md) | Removes all initialized trackers | -| [removeTracker(trackerNamespace)](./react-native-tracker.removetracker.md) | Removes a tracker given its namespace | - -## Interfaces - -| Interface | Description | -| --- | --- | -| [AppLifecycleConfiguration](./react-native-tracker.applifecycleconfiguration.md) | Configuration for app lifecycle tracking | -| [AsyncStorage](./react-native-tracker.asyncstorage.md) | | -| [CoreConfiguration](./react-native-tracker.coreconfiguration.md) | The configuration object for the tracker core library | -| [CorePlugin](./react-native-tracker.coreplugin.md) | Interface which defines Core Plugins | -| [CorePluginConfiguration](./react-native-tracker.corepluginconfiguration.md) | The configuration of the plugin to add | -| [DeepLinkConfiguration](./react-native-tracker.deeplinkconfiguration.md) | Configuration for deep link tracking | -| [DeviceTimestamp](./react-native-tracker.devicetimestamp.md) | A representation of a Device Timestamp (dtm) | -| [Emitter](./react-native-tracker.emitter.md) | Emitter is responsible for sending events to the collector. It manages the event queue and sends events in batches depending on configuration. | -| [EmitterConfiguration](./react-native-tracker.emitterconfiguration.md) | | -| [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) | | -| [EventPayloadAndContext](./react-native-tracker.eventpayloadandcontext.md) | Interface for returning a built event (PayloadBuilder) and context (Array of SelfDescribingJson). | -| [EventStoreConfiguration](./react-native-tracker.eventstoreconfiguration.md) | Configuration for the event store | -| [EventStoreIterator](./react-native-tracker.eventstoreiterator.md) | EventStoreIterator allows iterating over all events in the store. | -| [EventStorePayload](./react-native-tracker.eventstorepayload.md) | | -| [FormFocusOrChangeEvent](./react-native-tracker.formfocusorchangeevent.md) | Represents either a Form Focus or Form Change event When a user focuses on a form element or when a user makes a change to a form element. | -| [Logger](./react-native-tracker.logger.md) | | -| [PageViewEvent](./react-native-tracker.pageviewevent.md) | A Page View Event Represents a Page View, which is typically fired as soon as possible when a web page is loaded within the users browser. Often also fired on "virtual page views" within Single Page Applications (SPA). | -| [PayloadBuilder](./react-native-tracker.payloadbuilder.md) | Interface for mutable object encapsulating tracker payload | -| [PlatformContextConfiguration](./react-native-tracker.platformcontextconfiguration.md) | | -| [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) | Overrides for the values for properties of the platform context. | -| [RuleSet](./react-native-tracker.ruleset.md) | A ruleset has accept or reject properties that contain rules for matching Iglu schema URIs | -| [SessionConfiguration](./react-native-tracker.sessionconfiguration.md) | Configuration for session tracking | -| [SessionState](./react-native-tracker.sessionstate.md) | Current session state that is tracked in events. | -| [SubjectConfiguration](./react-native-tracker.subjectconfiguration.md) | Configuration of subject properties tracked with events | -| [TrackerConfiguration](./react-native-tracker.trackerconfiguration.md) | The configuration object for initialising the tracker | -| [TrackerCore](./react-native-tracker.trackercore.md) | Export interface containing all Core functions | -| [TrueTimestamp](./react-native-tracker.truetimestamp.md) | A representation of a True Timestamp (ttm) | - -## Variables - -| Variable | Description | -| --- | --- | -| [version](./react-native-tracker.version.md) | | - -## Type Aliases - -| Type Alias | Description | -| --- | --- | -| [ConditionalContextProvider](./react-native-tracker.conditionalcontextprovider.md) | Conditional context providers are two element arrays used to decide when to attach contexts, where: - the first element is some conditional criterion - the second element is any number of context primitives | -| [ContextFilter](./react-native-tracker.contextfilter.md) | A context filter is a user-supplied callback that is evaluated for each event to determine if the context associated with the filter should be attached to the event | -| [ContextGenerator](./react-native-tracker.contextgenerator.md) | A context generator is a user-supplied callback that is evaluated for each event to allow an additional context to be dynamically attached to the event | -| [ContextPrimitive](./react-native-tracker.contextprimitive.md) | A context primitive is either a self-describing JSON or a context generator | -| [DeepLinkReceivedProps](./react-native-tracker.deeplinkreceivedprops.md) | DeepLinkReceived event properties schema: iglu:com.snowplowanalytics.mobile/deep\_link\_received/jsonschema/1-0-0 | -| [EventBatch](./react-native-tracker.eventbatch.md) | A collection of event payloads which are sent to the collector. | -| [EventContext](./react-native-tracker.eventcontext.md) | EventContext type | -| [EventJson](./react-native-tracker.eventjson.md) | An array of tuples which represents the unprocessed JSON to be added to the Payload | -| [EventJsonWithKeys](./react-native-tracker.eventjsonwithkeys.md) | A tuple which represents the unprocessed JSON to be added to the Payload | -| [EventMethod](./react-native-tracker.eventmethod.md) | | -| [FilterProvider](./react-native-tracker.filterprovider.md) | A filter provider is a tuple that has two parts: a context filter and the context primitive(s) If the context filter evaluates to true, the tracker will attach the context primitive(s) | -| [JsonProcessor](./react-native-tracker.jsonprocessor.md) | A function which will processor the Json onto the injected PayloadBuilder | -| [ListItemViewProps](./react-native-tracker.listitemviewprops.md) | Event tracking the view of an item in a list. If screen engagement tracking is enabled, the list item view events will be aggregated into a screen_summary entity.Schema: iglu:com.snowplowanalytics.mobile/list_item_view/jsonschema/1-0-0 | -| [MessageNotificationAttachmentProps](./react-native-tracker.messagenotificationattachmentprops.md) | Attachment object that identify an attachment in the MessageNotification. | -| [MessageNotificationProps](./react-native-tracker.messagenotificationprops.md) | MessageNotification event properties schema: iglu:com.snowplowanalytics.mobile/message\_notification/jsonschema/1-0-0 | -| [Payload](./react-native-tracker.payload.md) | Type for a Payload dictionary | -| [ReactNativeTracker](./react-native-tracker.reactnativetracker.md) | The ReactNativeTracker type | -| [RequestFailure](./react-native-tracker.requestfailure.md) | The data that will be available to the onRequestFailure callback | -| [RuleSetProvider](./react-native-tracker.rulesetprovider.md) | A ruleset provider is aa tuple that has two parts: a ruleset and the context primitive(s) If the ruleset allows the current event schema URI, the tracker will attach the context primitive(s) | -| [ScreenSize](./react-native-tracker.screensize.md) | Screen size in pixels | -| [ScreenViewProps](./react-native-tracker.screenviewprops.md) | ScreenView event properties schema: iglu:com.snowplowanalytics.mobile/screen\_view/jsonschema/1-0-0 | -| [ScrollChangedProps](./react-native-tracker.scrollchangedprops.md) | Event tracked when a scroll view's scroll position changes. If screen engagement tracking is enabled, the scroll changed events will be aggregated into a screen_summary entity.Schema: iglu:com.snowplowanalytics.mobile/scroll_changed/jsonschema/1-0-0 | -| [SelfDescribing](./react-native-tracker.selfdescribing.md) | Interface for any self-describing JSON such as context entities or self-describing events | -| [StructuredProps](./react-native-tracker.structuredprops.md) | Properties for a structured event. A classic style of event tracking, allows for easier movement between analytics systems. Self-describing events are preferred for their schema validation. | -| [Timestamp](./react-native-tracker.timestamp.md) | Algebraic datatype representing possible timestamp type choice | -| [TimingProps](./react-native-tracker.timingprops.md) | Timing event properties | -| [Trigger](./react-native-tracker.trigger.md) | Trigger for MessageNotification event | - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) + +## react-native-tracker package + +## Enumerations + +| Enumeration | Description | +| --- | --- | +| [LOG\_LEVEL](./react-native-tracker.log_level.md) | | +| [PlatformContextProperty](./react-native-tracker.platformcontextproperty.md) | | + +## Functions + +| Function | Description | +| --- | --- | +| [getAllTrackers()](./react-native-tracker.getalltrackers.md) | Retrieves all initialized trackers | +| [getTracker(trackerNamespace)](./react-native-tracker.gettracker.md) | Retrieves an initialized tracker given its namespace | +| [getWebViewCallback()](./react-native-tracker.getwebviewcallback.md) | Enables tracking events from apps rendered in react-native-webview components. The apps need to use the Snowplow WebView tracker to track the events.To subscribe for the events, use as the onMessage prop for a WebView component. | +| [newTracker(configuration)](./react-native-tracker.newtracker.md) | Creates a new tracker instance with the given configuration | +| [removeAllTrackers()](./react-native-tracker.removealltrackers.md) | Removes all initialized trackers | +| [removeTracker(trackerNamespace)](./react-native-tracker.removetracker.md) | Removes a tracker given its namespace | + +## Interfaces + +| Interface | Description | +| --- | --- | +| [AppLifecycleConfiguration](./react-native-tracker.applifecycleconfiguration.md) | Configuration for app lifecycle tracking | +| [AsyncStorage](./react-native-tracker.asyncstorage.md) | | +| [CoreConfiguration](./react-native-tracker.coreconfiguration.md) | The configuration object for the tracker core library | +| [CorePlugin](./react-native-tracker.coreplugin.md) | Interface which defines Core Plugins | +| [CorePluginConfiguration](./react-native-tracker.corepluginconfiguration.md) | The configuration of the plugin to add | +| [DeepLinkConfiguration](./react-native-tracker.deeplinkconfiguration.md) | Configuration for deep link tracking | +| [DeviceTimestamp](./react-native-tracker.devicetimestamp.md) | A representation of a Device Timestamp (dtm) | +| [Emitter](./react-native-tracker.emitter.md) | Emitter is responsible for sending events to the collector. It manages the event queue and sends events in batches depending on configuration. | +| [EmitterConfiguration](./react-native-tracker.emitterconfiguration.md) | | +| [EmitterConfigurationBase](./react-native-tracker.emitterconfigurationbase.md) | | +| [EventPayloadAndContext](./react-native-tracker.eventpayloadandcontext.md) | Interface for returning a built event (PayloadBuilder) and context (Array of SelfDescribingJson). | +| [EventStoreConfiguration](./react-native-tracker.eventstoreconfiguration.md) | Configuration for the event store | +| [EventStoreIterator](./react-native-tracker.eventstoreiterator.md) | EventStoreIterator allows iterating over all events in the store. | +| [EventStorePayload](./react-native-tracker.eventstorepayload.md) | | +| [FormFocusOrChangeEvent](./react-native-tracker.formfocusorchangeevent.md) | Represents either a Form Focus or Form Change event When a user focuses on a form element or when a user makes a change to a form element. | +| [Logger](./react-native-tracker.logger.md) | | +| [PageViewEvent](./react-native-tracker.pageviewevent.md) | A Page View Event Represents a Page View, which is typically fired as soon as possible when a web page is loaded within the users browser. Often also fired on "virtual page views" within Single Page Applications (SPA). | +| [PayloadBuilder](./react-native-tracker.payloadbuilder.md) | Interface for mutable object encapsulating tracker payload | +| [PlatformContextConfiguration](./react-native-tracker.platformcontextconfiguration.md) | | +| [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) | Overrides for the values for properties of the platform context. | +| [RuleSet](./react-native-tracker.ruleset.md) | A ruleset has accept or reject properties that contain rules for matching Iglu schema URIs | +| [SessionConfiguration](./react-native-tracker.sessionconfiguration.md) | Configuration for session tracking | +| [SessionState](./react-native-tracker.sessionstate.md) | Current session state that is tracked in events. | +| [SubjectConfiguration](./react-native-tracker.subjectconfiguration.md) | Configuration of subject properties tracked with events | +| [TrackerConfiguration](./react-native-tracker.trackerconfiguration.md) | The configuration object for initialising the tracker | +| [TrackerCore](./react-native-tracker.trackercore.md) | Export interface containing all Core functions | +| [TrueTimestamp](./react-native-tracker.truetimestamp.md) | A representation of a True Timestamp (ttm) | + +## Variables + +| Variable | Description | +| --- | --- | +| [version](./react-native-tracker.version.md) | | + +## Type Aliases + +| Type Alias | Description | +| --- | --- | +| [ConditionalContextProvider](./react-native-tracker.conditionalcontextprovider.md) | Conditional context providers are two element arrays used to decide when to attach contexts, where: - the first element is some conditional criterion - the second element is any number of context primitives | +| [ContextFilter](./react-native-tracker.contextfilter.md) | A context filter is a user-supplied callback that is evaluated for each event to determine if the context associated with the filter should be attached to the event | +| [ContextGenerator](./react-native-tracker.contextgenerator.md) | A context generator is a user-supplied callback that is evaluated for each event to allow an additional context to be dynamically attached to the event | +| [ContextPrimitive](./react-native-tracker.contextprimitive.md) | A context primitive is either a self-describing JSON or a context generator | +| [DeepLinkReceivedProps](./react-native-tracker.deeplinkreceivedprops.md) | DeepLinkReceived event properties schema: iglu:com.snowplowanalytics.mobile/deep\_link\_received/jsonschema/1-0-0 | +| [EventBatch](./react-native-tracker.eventbatch.md) | A collection of event payloads which are sent to the collector. | +| [EventContext](./react-native-tracker.eventcontext.md) | EventContext type | +| [EventJson](./react-native-tracker.eventjson.md) | An array of tuples which represents the unprocessed JSON to be added to the Payload | +| [EventJsonWithKeys](./react-native-tracker.eventjsonwithkeys.md) | A tuple which represents the unprocessed JSON to be added to the Payload | +| [EventMethod](./react-native-tracker.eventmethod.md) | | +| [FilterProvider](./react-native-tracker.filterprovider.md) | A filter provider is a tuple that has two parts: a context filter and the context primitive(s) If the context filter evaluates to true, the tracker will attach the context primitive(s) | +| [JsonProcessor](./react-native-tracker.jsonprocessor.md) | A function which will processor the Json onto the injected PayloadBuilder | +| [ListItemViewProps](./react-native-tracker.listitemviewprops.md) | Event tracking the view of an item in a list. If screen engagement tracking is enabled, the list item view events will be aggregated into a screen_summary entity.Schema: iglu:com.snowplowanalytics.mobile/list_item_view/jsonschema/1-0-0 | +| [MessageNotificationAttachmentProps](./react-native-tracker.messagenotificationattachmentprops.md) | Attachment object that identify an attachment in the MessageNotification. | +| [MessageNotificationProps](./react-native-tracker.messagenotificationprops.md) | MessageNotification event properties schema: iglu:com.snowplowanalytics.mobile/message\_notification/jsonschema/1-0-0 | +| [Payload](./react-native-tracker.payload.md) | Type for a Payload dictionary | +| [ReactNativeTracker](./react-native-tracker.reactnativetracker.md) | The ReactNativeTracker type | +| [RequestFailure](./react-native-tracker.requestfailure.md) | The data that will be available to the onRequestFailure callback | +| [RuleSetProvider](./react-native-tracker.rulesetprovider.md) | A ruleset provider is aa tuple that has two parts: a ruleset and the context primitive(s) If the ruleset allows the current event schema URI, the tracker will attach the context primitive(s) | +| [ScreenSize](./react-native-tracker.screensize.md) | Screen size in pixels | +| [ScreenViewProps](./react-native-tracker.screenviewprops.md) | ScreenView event properties schema: iglu:com.snowplowanalytics.mobile/screen\_view/jsonschema/1-0-0 | +| [ScrollChangedProps](./react-native-tracker.scrollchangedprops.md) | Event tracked when a scroll view's scroll position changes. If screen engagement tracking is enabled, the scroll changed events will be aggregated into a screen_summary entity.Schema: iglu:com.snowplowanalytics.mobile/scroll_changed/jsonschema/1-0-0 | +| [SelfDescribing](./react-native-tracker.selfdescribing.md) | Interface for any self-describing JSON such as context entities or self-describing events | +| [StructuredProps](./react-native-tracker.structuredprops.md) | Properties for a structured event. A classic style of event tracking, allows for easier movement between analytics systems. Self-describing events are preferred for their schema validation. | +| [Timestamp](./react-native-tracker.timestamp.md) | Algebraic datatype representing possible timestamp type choice | +| [TimingProps](./react-native-tracker.timingprops.md) | Timing event properties | +| [Trigger](./react-native-tracker.trigger.md) | Trigger for MessageNotification event | +| [WebViewMessageHandler](./react-native-tracker.webviewmessagehandler.md) | A callback to be used for the onMessage prop of a WebView component. | + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.messagenotificationattachmentprops.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.messagenotificationattachmentprops.md index 927347ead..fe7d17288 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.messagenotificationattachmentprops.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.messagenotificationattachmentprops.md @@ -1,17 +1,17 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [MessageNotificationAttachmentProps](./react-native-tracker.messagenotificationattachmentprops.md) - -## MessageNotificationAttachmentProps type - -Attachment object that identify an attachment in the MessageNotification. - -Signature: - -```typescript -export declare type MessageNotificationAttachmentProps = { - identifier: string; - type: string; - url: string; -}; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [MessageNotificationAttachmentProps](./react-native-tracker.messagenotificationattachmentprops.md) + +## MessageNotificationAttachmentProps type + +Attachment object that identify an attachment in the MessageNotification. + +Signature: + +```typescript +export declare type MessageNotificationAttachmentProps = { + identifier: string; + type: string; + url: string; +}; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.messagenotificationprops.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.messagenotificationprops.md index f8abb2ea7..392fe4a38 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.messagenotificationprops.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.messagenotificationprops.md @@ -1,35 +1,35 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [MessageNotificationProps](./react-native-tracker.messagenotificationprops.md) - -## MessageNotificationProps type - -MessageNotification event properties schema: iglu:com.snowplowanalytics.mobile/message\_notification/jsonschema/1-0-0 - -Signature: - -```typescript -export declare type MessageNotificationProps = { - action?: string; - attachments?: MessageNotificationAttachmentProps[]; - body: string; - bodyLocArgs?: string[]; - bodyLocKey?: string; - category?: string; - contentAvailable?: boolean; - group?: string; - icon?: string; - notificationCount?: number; - notificationTimestamp?: string; - sound?: string; - subtitle?: string; - tag?: string; - threadIdentifier?: string; - title: string; - titleLocArgs?: string[]; - titleLocKey?: string; - trigger: Trigger; -}; -``` -References: [MessageNotificationAttachmentProps](./react-native-tracker.messagenotificationattachmentprops.md), [Trigger](./react-native-tracker.trigger.md) - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [MessageNotificationProps](./react-native-tracker.messagenotificationprops.md) + +## MessageNotificationProps type + +MessageNotification event properties schema: iglu:com.snowplowanalytics.mobile/message\_notification/jsonschema/1-0-0 + +Signature: + +```typescript +export declare type MessageNotificationProps = { + action?: string; + attachments?: MessageNotificationAttachmentProps[]; + body: string; + bodyLocArgs?: string[]; + bodyLocKey?: string; + category?: string; + contentAvailable?: boolean; + group?: string; + icon?: string; + notificationCount?: number; + notificationTimestamp?: string; + sound?: string; + subtitle?: string; + tag?: string; + threadIdentifier?: string; + title: string; + titleLocArgs?: string[]; + titleLocKey?: string; + trigger: Trigger; +}; +``` +References: [MessageNotificationAttachmentProps](./react-native-tracker.messagenotificationattachmentprops.md), [Trigger](./react-native-tracker.trigger.md) + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.newtracker.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.newtracker.md index 09b6e9ac4..8859e9070 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.newtracker.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.newtracker.md @@ -1,26 +1,26 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [newTracker](./react-native-tracker.newtracker.md) - -## newTracker() function - -Creates a new tracker instance with the given configuration - -Signature: - -```typescript -export declare function newTracker(configuration: Configuration): Promise; -``` - -## Parameters - -| Parameter | Type | Description | -| --- | --- | --- | -| configuration | Configuration | Configuration for the tracker | - -Returns: - -Promise<[ReactNativeTracker](./react-native-tracker.reactnativetracker.md)> - -Tracker instance - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [newTracker](./react-native-tracker.newtracker.md) + +## newTracker() function + +Creates a new tracker instance with the given configuration + +Signature: + +```typescript +export declare function newTracker(configuration: Configuration): Promise; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| configuration | Configuration | Configuration for the tracker | + +Returns: + +Promise<[ReactNativeTracker](./react-native-tracker.reactnativetracker.md)> + +Tracker instance + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.pageviewevent.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.pageviewevent.md index 073940f35..87f820cf5 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.pageviewevent.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.pageviewevent.md @@ -1,22 +1,22 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PageViewEvent](./react-native-tracker.pageviewevent.md) - -## PageViewEvent interface - -A Page View Event Represents a Page View, which is typically fired as soon as possible when a web page is loaded within the users browser. Often also fired on "virtual page views" within Single Page Applications (SPA). - -Signature: - -```typescript -interface PageViewEvent -``` - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [pageTitle?](./react-native-tracker.pageviewevent.pagetitle.md) | string \| null | (Optional) The current page title in the users browser | -| [pageUrl?](./react-native-tracker.pageviewevent.pageurl.md) | string \| null | (Optional) The current URL visible in the users browser | -| [referrer?](./react-native-tracker.pageviewevent.referrer.md) | string \| null | (Optional) The URL of the referring page | - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PageViewEvent](./react-native-tracker.pageviewevent.md) + +## PageViewEvent interface + +A Page View Event Represents a Page View, which is typically fired as soon as possible when a web page is loaded within the users browser. Often also fired on "virtual page views" within Single Page Applications (SPA). + +Signature: + +```typescript +interface PageViewEvent +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [pageTitle?](./react-native-tracker.pageviewevent.pagetitle.md) | string \| null | (Optional) The current page title in the users browser | +| [pageUrl?](./react-native-tracker.pageviewevent.pageurl.md) | string \| null | (Optional) The current URL visible in the users browser | +| [referrer?](./react-native-tracker.pageviewevent.referrer.md) | string \| null | (Optional) The URL of the referring page | + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.pageviewevent.pagetitle.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.pageviewevent.pagetitle.md index 72774a6dd..b7bf7a9e9 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.pageviewevent.pagetitle.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.pageviewevent.pagetitle.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PageViewEvent](./react-native-tracker.pageviewevent.md) > [pageTitle](./react-native-tracker.pageviewevent.pagetitle.md) - -## PageViewEvent.pageTitle property - -The current page title in the users browser - -Signature: - -```typescript -pageTitle?: string | null; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PageViewEvent](./react-native-tracker.pageviewevent.md) > [pageTitle](./react-native-tracker.pageviewevent.pagetitle.md) + +## PageViewEvent.pageTitle property + +The current page title in the users browser + +Signature: + +```typescript +pageTitle?: string | null; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.pageviewevent.pageurl.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.pageviewevent.pageurl.md index 5b1a31247..048e84af6 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.pageviewevent.pageurl.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.pageviewevent.pageurl.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PageViewEvent](./react-native-tracker.pageviewevent.md) > [pageUrl](./react-native-tracker.pageviewevent.pageurl.md) - -## PageViewEvent.pageUrl property - -The current URL visible in the users browser - -Signature: - -```typescript -pageUrl?: string | null; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PageViewEvent](./react-native-tracker.pageviewevent.md) > [pageUrl](./react-native-tracker.pageviewevent.pageurl.md) + +## PageViewEvent.pageUrl property + +The current URL visible in the users browser + +Signature: + +```typescript +pageUrl?: string | null; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.pageviewevent.referrer.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.pageviewevent.referrer.md index 5b3e47e6b..9796c0cd6 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.pageviewevent.referrer.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.pageviewevent.referrer.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PageViewEvent](./react-native-tracker.pageviewevent.md) > [referrer](./react-native-tracker.pageviewevent.referrer.md) - -## PageViewEvent.referrer property - -The URL of the referring page - -Signature: - -```typescript -referrer?: string | null; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PageViewEvent](./react-native-tracker.pageviewevent.md) > [referrer](./react-native-tracker.pageviewevent.referrer.md) + +## PageViewEvent.referrer property + +The URL of the referring page + +Signature: + +```typescript +referrer?: string | null; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.payload.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.payload.md index 6c69b7466..37d76b5ad 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.payload.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.payload.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [Payload](./react-native-tracker.payload.md) - -## Payload type - -Type for a Payload dictionary - -Signature: - -```typescript -type Payload = Record; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [Payload](./react-native-tracker.payload.md) + +## Payload type + +Type for a Payload dictionary + +Signature: + +```typescript +type Payload = Record; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.payloadbuilder.add.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.payloadbuilder.add.md index 57a6658be..74190086a 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.payloadbuilder.add.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.payloadbuilder.add.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PayloadBuilder](./react-native-tracker.payloadbuilder.md) > [add](./react-native-tracker.payloadbuilder.add.md) - -## PayloadBuilder.add property - -Adds an entry to the Payload - -Signature: - -```typescript -add: (key: string, value: unknown) => void; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PayloadBuilder](./react-native-tracker.payloadbuilder.md) > [add](./react-native-tracker.payloadbuilder.add.md) + +## PayloadBuilder.add property + +Adds an entry to the Payload + +Signature: + +```typescript +add: (key: string, value: unknown) => void; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.payloadbuilder.addcontextentity.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.payloadbuilder.addcontextentity.md index 30d14ad85..4b6346ea6 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.payloadbuilder.addcontextentity.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.payloadbuilder.addcontextentity.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PayloadBuilder](./react-native-tracker.payloadbuilder.md) > [addContextEntity](./react-native-tracker.payloadbuilder.addcontextentity.md) - -## PayloadBuilder.addContextEntity property - -Caches a context entity to be added to payload on build - -Signature: - -```typescript -addContextEntity: (entity: SelfDescribingJson) => void; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PayloadBuilder](./react-native-tracker.payloadbuilder.md) > [addContextEntity](./react-native-tracker.payloadbuilder.addcontextentity.md) + +## PayloadBuilder.addContextEntity property + +Caches a context entity to be added to payload on build + +Signature: + +```typescript +addContextEntity: (entity: SelfDescribingJson) => void; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.payloadbuilder.adddict.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.payloadbuilder.adddict.md index 6a1940706..720e5fbea 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.payloadbuilder.adddict.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.payloadbuilder.adddict.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PayloadBuilder](./react-native-tracker.payloadbuilder.md) > [addDict](./react-native-tracker.payloadbuilder.adddict.md) - -## PayloadBuilder.addDict property - -Merges a payload into the existing payload - -Signature: - -```typescript -addDict: (dict: Payload) => void; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PayloadBuilder](./react-native-tracker.payloadbuilder.md) > [addDict](./react-native-tracker.payloadbuilder.adddict.md) + +## PayloadBuilder.addDict property + +Merges a payload into the existing payload + +Signature: + +```typescript +addDict: (dict: Payload) => void; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.payloadbuilder.addjson.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.payloadbuilder.addjson.md index d5e5f768b..fb29f5c20 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.payloadbuilder.addjson.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.payloadbuilder.addjson.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PayloadBuilder](./react-native-tracker.payloadbuilder.md) > [addJson](./react-native-tracker.payloadbuilder.addjson.md) - -## PayloadBuilder.addJson property - -Caches a JSON object to be added to payload on build - -Signature: - -```typescript -addJson: (keyIfEncoded: string, keyIfNotEncoded: string, json: Record) => void; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PayloadBuilder](./react-native-tracker.payloadbuilder.md) > [addJson](./react-native-tracker.payloadbuilder.addjson.md) + +## PayloadBuilder.addJson property + +Caches a JSON object to be added to payload on build + +Signature: + +```typescript +addJson: (keyIfEncoded: string, keyIfNotEncoded: string, json: Record) => void; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.payloadbuilder.build.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.payloadbuilder.build.md index 24586c733..473ffa6d9 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.payloadbuilder.build.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.payloadbuilder.build.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PayloadBuilder](./react-native-tracker.payloadbuilder.md) > [build](./react-native-tracker.payloadbuilder.build.md) - -## PayloadBuilder.build property - -Builds and returns the Payload - -Signature: - -```typescript -build: () => Payload; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PayloadBuilder](./react-native-tracker.payloadbuilder.md) > [build](./react-native-tracker.payloadbuilder.build.md) + +## PayloadBuilder.build property + +Builds and returns the Payload + +Signature: + +```typescript +build: () => Payload; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.payloadbuilder.getjson.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.payloadbuilder.getjson.md index de83e1a52..0007e17f7 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.payloadbuilder.getjson.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.payloadbuilder.getjson.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PayloadBuilder](./react-native-tracker.payloadbuilder.md) > [getJson](./react-native-tracker.payloadbuilder.getjson.md) - -## PayloadBuilder.getJson property - -Gets all JSON objects added to payload - -Signature: - -```typescript -getJson: () => EventJson; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PayloadBuilder](./react-native-tracker.payloadbuilder.md) > [getJson](./react-native-tracker.payloadbuilder.getjson.md) + +## PayloadBuilder.getJson property + +Gets all JSON objects added to payload + +Signature: + +```typescript +getJson: () => EventJson; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.payloadbuilder.getpayload.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.payloadbuilder.getpayload.md index 9b3c94d86..f76229127 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.payloadbuilder.getpayload.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.payloadbuilder.getpayload.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PayloadBuilder](./react-native-tracker.payloadbuilder.md) > [getPayload](./react-native-tracker.payloadbuilder.getpayload.md) - -## PayloadBuilder.getPayload property - -Gets the current payload, before cached JSON is processed - -Signature: - -```typescript -getPayload: () => Payload; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PayloadBuilder](./react-native-tracker.payloadbuilder.md) > [getPayload](./react-native-tracker.payloadbuilder.getpayload.md) + +## PayloadBuilder.getPayload property + +Gets the current payload, before cached JSON is processed + +Signature: + +```typescript +getPayload: () => Payload; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.payloadbuilder.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.payloadbuilder.md index 61cb081ee..656667e94 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.payloadbuilder.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.payloadbuilder.md @@ -1,27 +1,27 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PayloadBuilder](./react-native-tracker.payloadbuilder.md) - -## PayloadBuilder interface - -Interface for mutable object encapsulating tracker payload - -Signature: - -```typescript -interface PayloadBuilder -``` - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [add](./react-native-tracker.payloadbuilder.add.md) | (key: string, value: unknown) => void | Adds an entry to the Payload | -| [addContextEntity](./react-native-tracker.payloadbuilder.addcontextentity.md) | (entity: SelfDescribingJson) => void | Caches a context entity to be added to payload on build | -| [addDict](./react-native-tracker.payloadbuilder.adddict.md) | (dict: Payload) => void | Merges a payload into the existing payload | -| [addJson](./react-native-tracker.payloadbuilder.addjson.md) | (keyIfEncoded: string, keyIfNotEncoded: string, json: Record<string, unknown>) => void | Caches a JSON object to be added to payload on build | -| [build](./react-native-tracker.payloadbuilder.build.md) | () => Payload | Builds and returns the Payload | -| [getJson](./react-native-tracker.payloadbuilder.getjson.md) | () => EventJson | Gets all JSON objects added to payload | -| [getPayload](./react-native-tracker.payloadbuilder.getpayload.md) | () => Payload | Gets the current payload, before cached JSON is processed | -| [withJsonProcessor](./react-native-tracker.payloadbuilder.withjsonprocessor.md) | (jsonProcessor: JsonProcessor) => void | Adds a function which will be executed when building the payload to process the JSON which has been added to this payload | - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PayloadBuilder](./react-native-tracker.payloadbuilder.md) + +## PayloadBuilder interface + +Interface for mutable object encapsulating tracker payload + +Signature: + +```typescript +interface PayloadBuilder +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [add](./react-native-tracker.payloadbuilder.add.md) | (key: string, value: unknown) => void | Adds an entry to the Payload | +| [addContextEntity](./react-native-tracker.payloadbuilder.addcontextentity.md) | (entity: SelfDescribingJson) => void | Caches a context entity to be added to payload on build | +| [addDict](./react-native-tracker.payloadbuilder.adddict.md) | (dict: Payload) => void | Merges a payload into the existing payload | +| [addJson](./react-native-tracker.payloadbuilder.addjson.md) | (keyIfEncoded: string, keyIfNotEncoded: string, json: Record<string, unknown>) => void | Caches a JSON object to be added to payload on build | +| [build](./react-native-tracker.payloadbuilder.build.md) | () => Payload | Builds and returns the Payload | +| [getJson](./react-native-tracker.payloadbuilder.getjson.md) | () => EventJson | Gets all JSON objects added to payload | +| [getPayload](./react-native-tracker.payloadbuilder.getpayload.md) | () => Payload | Gets the current payload, before cached JSON is processed | +| [withJsonProcessor](./react-native-tracker.payloadbuilder.withjsonprocessor.md) | (jsonProcessor: JsonProcessor) => void | Adds a function which will be executed when building the payload to process the JSON which has been added to this payload | + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.payloadbuilder.withjsonprocessor.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.payloadbuilder.withjsonprocessor.md index 173d16756..247963bea 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.payloadbuilder.withjsonprocessor.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.payloadbuilder.withjsonprocessor.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PayloadBuilder](./react-native-tracker.payloadbuilder.md) > [withJsonProcessor](./react-native-tracker.payloadbuilder.withjsonprocessor.md) - -## PayloadBuilder.withJsonProcessor property - -Adds a function which will be executed when building the payload to process the JSON which has been added to this payload - -Signature: - -```typescript -withJsonProcessor: (jsonProcessor: JsonProcessor) => void; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PayloadBuilder](./react-native-tracker.payloadbuilder.md) > [withJsonProcessor](./react-native-tracker.payloadbuilder.withjsonprocessor.md) + +## PayloadBuilder.withJsonProcessor property + +Adds a function which will be executed when building the payload to process the JSON which has been added to this payload + +Signature: + +```typescript +withJsonProcessor: (jsonProcessor: JsonProcessor) => void; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextconfiguration.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextconfiguration.md index 61b007e54..dbcbbbe9e 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextconfiguration.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextconfiguration.md @@ -1,20 +1,20 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextConfiguration](./react-native-tracker.platformcontextconfiguration.md) - -## PlatformContextConfiguration interface - -Signature: - -```typescript -export interface PlatformContextConfiguration -``` - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [platformContext?](./react-native-tracker.platformcontextconfiguration.platformcontext.md) | boolean | (Optional) Whether to track the mobile context with information about the device. Note: Only some properties (osType, osVersion, deviceManufacturer, deviceModel, resolution, language, scale) will be tracked by default. Other properties can be assigned using the PlatformContextRetriever. | -| [platformContextProperties?](./react-native-tracker.platformcontextconfiguration.platformcontextproperties.md) | [PlatformContextProperty](./react-native-tracker.platformcontextproperty.md)\[\] | (Optional) List of properties of the platform context to track. If not passed and platformContext is enabled, all available properties will be tracked. The required osType, osVersion, deviceManufacturer, and deviceModel properties will be tracked in the entity regardless of this setting. | -| [platformContextRetriever?](./react-native-tracker.platformcontextconfiguration.platformcontextretriever.md) | [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) | (Optional) Set of callbacks to be used to retrieve properties of the platform context. Overrides the tracker implementation for setting the properties. | - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextConfiguration](./react-native-tracker.platformcontextconfiguration.md) + +## PlatformContextConfiguration interface + +Signature: + +```typescript +export interface PlatformContextConfiguration +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [platformContext?](./react-native-tracker.platformcontextconfiguration.platformcontext.md) | boolean | (Optional) Whether to track the mobile context with information about the device. Note: Only some properties (osType, osVersion, deviceManufacturer, deviceModel, resolution, language, scale) will be tracked by default. Other properties can be assigned using the PlatformContextRetriever. | +| [platformContextProperties?](./react-native-tracker.platformcontextconfiguration.platformcontextproperties.md) | [PlatformContextProperty](./react-native-tracker.platformcontextproperty.md)\[\] | (Optional) List of properties of the platform context to track. If not passed and platformContext is enabled, all available properties will be tracked. The required osType, osVersion, deviceManufacturer, and deviceModel properties will be tracked in the entity regardless of this setting. | +| [platformContextRetriever?](./react-native-tracker.platformcontextconfiguration.platformcontextretriever.md) | [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) | (Optional) Set of callbacks to be used to retrieve properties of the platform context. Overrides the tracker implementation for setting the properties. | + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextconfiguration.platformcontext.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextconfiguration.platformcontext.md index a85e79fbf..1bd9ded23 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextconfiguration.platformcontext.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextconfiguration.platformcontext.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextConfiguration](./react-native-tracker.platformcontextconfiguration.md) > [platformContext](./react-native-tracker.platformcontextconfiguration.platformcontext.md) - -## PlatformContextConfiguration.platformContext property - -Whether to track the mobile context with information about the device. Note: Only some properties (osType, osVersion, deviceManufacturer, deviceModel, resolution, language, scale) will be tracked by default. Other properties can be assigned using the PlatformContextRetriever. - -Signature: - -```typescript -platformContext?: boolean; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextConfiguration](./react-native-tracker.platformcontextconfiguration.md) > [platformContext](./react-native-tracker.platformcontextconfiguration.platformcontext.md) + +## PlatformContextConfiguration.platformContext property + +Whether to track the mobile context with information about the device. Note: Only some properties (osType, osVersion, deviceManufacturer, deviceModel, resolution, language, scale) will be tracked by default. Other properties can be assigned using the PlatformContextRetriever. + +Signature: + +```typescript +platformContext?: boolean; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextconfiguration.platformcontextproperties.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextconfiguration.platformcontextproperties.md index da4fbf232..c8b5a4c0a 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextconfiguration.platformcontextproperties.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextconfiguration.platformcontextproperties.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextConfiguration](./react-native-tracker.platformcontextconfiguration.md) > [platformContextProperties](./react-native-tracker.platformcontextconfiguration.platformcontextproperties.md) - -## PlatformContextConfiguration.platformContextProperties property - -List of properties of the platform context to track. If not passed and `platformContext` is enabled, all available properties will be tracked. The required `osType`, `osVersion`, `deviceManufacturer`, and `deviceModel` properties will be tracked in the entity regardless of this setting. - -Signature: - -```typescript -platformContextProperties?: PlatformContextProperty[]; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextConfiguration](./react-native-tracker.platformcontextconfiguration.md) > [platformContextProperties](./react-native-tracker.platformcontextconfiguration.platformcontextproperties.md) + +## PlatformContextConfiguration.platformContextProperties property + +List of properties of the platform context to track. If not passed and `platformContext` is enabled, all available properties will be tracked. The required `osType`, `osVersion`, `deviceManufacturer`, and `deviceModel` properties will be tracked in the entity regardless of this setting. + +Signature: + +```typescript +platformContextProperties?: PlatformContextProperty[]; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextconfiguration.platformcontextretriever.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextconfiguration.platformcontextretriever.md index b827c3a15..5200d1c37 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextconfiguration.platformcontextretriever.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextconfiguration.platformcontextretriever.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextConfiguration](./react-native-tracker.platformcontextconfiguration.md) > [platformContextRetriever](./react-native-tracker.platformcontextconfiguration.platformcontextretriever.md) - -## PlatformContextConfiguration.platformContextRetriever property - -Set of callbacks to be used to retrieve properties of the platform context. Overrides the tracker implementation for setting the properties. - -Signature: - -```typescript -platformContextRetriever?: PlatformContextRetriever; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextConfiguration](./react-native-tracker.platformcontextconfiguration.md) > [platformContextRetriever](./react-native-tracker.platformcontextconfiguration.platformcontextretriever.md) + +## PlatformContextConfiguration.platformContextRetriever property + +Set of callbacks to be used to retrieve properties of the platform context. Overrides the tracker implementation for setting the properties. + +Signature: + +```typescript +platformContextRetriever?: PlatformContextRetriever; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextproperty.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextproperty.md index ceefd9368..ecab1bfd9 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextproperty.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextproperty.md @@ -1,37 +1,37 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextProperty](./react-native-tracker.platformcontextproperty.md) - -## PlatformContextProperty enum - -Signature: - -```typescript -export declare enum PlatformContextProperty -``` - -## Enumeration Members - -| Member | Value | Description | -| --- | --- | --- | -| AndroidIdfa | "androidIdfa" | Advertising identifier on Android. Note: This is not automatically assigned by the tracker as it may be considered as fingerprinting. You can assign it using the PlatformContextRetriever. | -| AppAvailableMemory | "appAvailableMemory" | Amount of memory in bytes available to the current app. The property is not tracked in the current version of the tracker due to the tracker not being able to access the API, see the issue here: https://github.com/snowplow/snowplow-ios-tracker/issues/772 Note: this property is not automatically assigned but can be assigned using the PlatformContextRetriever. | -| AppleIdfa | "appleIdfa" | Advertising identifier on iOS. Note: this property is not automatically assigned but can be assigned using the PlatformContextRetriever. | -| AppleIdfv | "appleIdfv" | UUID identifier for vendors on iOS. Note: this property is not automatically assigned but can be assigned using the PlatformContextRetriever. | -| AppSetId | "appSetId" | Android vendor ID scoped to the set of apps published under the same Google Play developer account (see https://developer.android.com/training/articles/app-set-id). Note: This is not automatically assigned by the tracker as it may be considered as fingerprinting. You can assign it using the PlatformContextRetriever. | -| AppSetIdScope | "appSetIdScope" | Scope of the appSetId. Can be scoped to the app or to a developer account on an app store (all apps from the same developer on the same device will have the same ID). Note: This is not automatically assigned by the tracker as it may be considered as fingerprinting. You can assign it using the PlatformContextRetriever. | -| AvailableStorage | "availableStorage" | Bytes of storage remaining. Note: This is not automatically assigned by the tracker as it may be considered as fingerprinting. You can assign it using the PlatformContextRetriever. | -| BatteryLevel | "batteryLevel" | Remaining battery level as an integer percentage of total battery capacity. Note: this property is not automatically assigned but can be assigned using the PlatformContextRetriever. | -| BatteryState | "batteryState" | Battery state for the device. Note: this property is not automatically assigned but can be assigned using the PlatformContextRetriever. | -| Carrier | "carrier" | The carrier of the SIM inserted in the device. Note: this property is not automatically assigned but can be assigned using the PlatformContextRetriever. | -| IsPortrait | "isPortrait" | A Boolean indicating whether the device orientation is portrait (either upright or upside down). Note: This is not automatically assigned by the tracker as it may be considered as fingerprinting. You can assign it using the PlatformContextRetriever. | -| Language | "language" | System language currently used on the device (ISO 639). | -| LowPowerMode | "lowPowerMode" | A Boolean indicating whether Low Power Mode is enabled. | -| NetworkTechnology | "networkTechnology" | Radio access technology that the device is using. Note: this property is not automatically assigned but can be assigned using the PlatformContextRetriever. | -| NetworkType | "networkType" | Type of network the device is connected to. Note: this property is not automatically assigned but can be assigned using the PlatformContextRetriever. | -| PhysicalMemory | "physicalMemory" | Total physical system memory in bytes. Note: this property is not automatically assigned but can be assigned using the PlatformContextRetriever. | -| Resolution | "resolution" | Screen resolution in pixels. Arrives in the form of WIDTHxHEIGHT (e.g., 1200x900). Doesn't change when device orientation changes. Note: This is not automatically assigned by the tracker as it may be considered as fingerprinting. You can assign it using the PlatformContextRetriever. | -| Scale | "scale" | Scale factor used to convert logical coordinates to device coordinates of the screen (uses UIScreen.scale on iOS). | -| SystemAvailableMemory | "systemAvailableMemory" | Available memory on the system in bytes (Android only). Note: This is not automatically assigned by the tracker as it may be considered as fingerprinting. You can assign it using the PlatformContextRetriever. | -| TotalStorage | "totalStorage" | Total size of storage in bytes. Note: This is not automatically assigned by the tracker as it may be considered as fingerprinting. You can assign it using the PlatformContextRetriever. | - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextProperty](./react-native-tracker.platformcontextproperty.md) + +## PlatformContextProperty enum + +Signature: + +```typescript +export declare enum PlatformContextProperty +``` + +## Enumeration Members + +| Member | Value | Description | +| --- | --- | --- | +| AndroidIdfa | "androidIdfa" | Advertising identifier on Android. Note: This is not automatically assigned by the tracker as it may be considered as fingerprinting. You can assign it using the PlatformContextRetriever. | +| AppAvailableMemory | "appAvailableMemory" | Amount of memory in bytes available to the current app. The property is not tracked in the current version of the tracker due to the tracker not being able to access the API, see the issue here: https://github.com/snowplow/snowplow-ios-tracker/issues/772 Note: this property is not automatically assigned but can be assigned using the PlatformContextRetriever. | +| AppleIdfa | "appleIdfa" | Advertising identifier on iOS. Note: this property is not automatically assigned but can be assigned using the PlatformContextRetriever. | +| AppleIdfv | "appleIdfv" | UUID identifier for vendors on iOS. Note: this property is not automatically assigned but can be assigned using the PlatformContextRetriever. | +| AppSetId | "appSetId" | Android vendor ID scoped to the set of apps published under the same Google Play developer account (see https://developer.android.com/training/articles/app-set-id). Note: This is not automatically assigned by the tracker as it may be considered as fingerprinting. You can assign it using the PlatformContextRetriever. | +| AppSetIdScope | "appSetIdScope" | Scope of the appSetId. Can be scoped to the app or to a developer account on an app store (all apps from the same developer on the same device will have the same ID). Note: This is not automatically assigned by the tracker as it may be considered as fingerprinting. You can assign it using the PlatformContextRetriever. | +| AvailableStorage | "availableStorage" | Bytes of storage remaining. Note: This is not automatically assigned by the tracker as it may be considered as fingerprinting. You can assign it using the PlatformContextRetriever. | +| BatteryLevel | "batteryLevel" | Remaining battery level as an integer percentage of total battery capacity. Note: this property is not automatically assigned but can be assigned using the PlatformContextRetriever. | +| BatteryState | "batteryState" | Battery state for the device. Note: this property is not automatically assigned but can be assigned using the PlatformContextRetriever. | +| Carrier | "carrier" | The carrier of the SIM inserted in the device. Note: this property is not automatically assigned but can be assigned using the PlatformContextRetriever. | +| IsPortrait | "isPortrait" | A Boolean indicating whether the device orientation is portrait (either upright or upside down). Note: This is not automatically assigned by the tracker as it may be considered as fingerprinting. You can assign it using the PlatformContextRetriever. | +| Language | "language" | System language currently used on the device (ISO 639). | +| LowPowerMode | "lowPowerMode" | A Boolean indicating whether Low Power Mode is enabled. | +| NetworkTechnology | "networkTechnology" | Radio access technology that the device is using. Note: this property is not automatically assigned but can be assigned using the PlatformContextRetriever. | +| NetworkType | "networkType" | Type of network the device is connected to. Note: this property is not automatically assigned but can be assigned using the PlatformContextRetriever. | +| PhysicalMemory | "physicalMemory" | Total physical system memory in bytes. Note: this property is not automatically assigned but can be assigned using the PlatformContextRetriever. | +| Resolution | "resolution" | Screen resolution in pixels. Arrives in the form of WIDTHxHEIGHT (e.g., 1200x900). Doesn't change when device orientation changes. Note: This is not automatically assigned by the tracker as it may be considered as fingerprinting. You can assign it using the PlatformContextRetriever. | +| Scale | "scale" | Scale factor used to convert logical coordinates to device coordinates of the screen (uses UIScreen.scale on iOS). | +| SystemAvailableMemory | "systemAvailableMemory" | Available memory on the system in bytes (Android only). Note: This is not automatically assigned by the tracker as it may be considered as fingerprinting. You can assign it using the PlatformContextRetriever. | +| TotalStorage | "totalStorage" | Total size of storage in bytes. Note: This is not automatically assigned by the tracker as it may be considered as fingerprinting. You can assign it using the PlatformContextRetriever. | + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getandroididfa.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getandroididfa.md index d27e5b82d..ddb929aba 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getandroididfa.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getandroididfa.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getAndroidIdfa](./react-native-tracker.platformcontextretriever.getandroididfa.md) - -## PlatformContextRetriever.getAndroidIdfa property - -Advertising identifier on Android. - -Signature: - -```typescript -getAndroidIdfa?: () => Promise; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getAndroidIdfa](./react-native-tracker.platformcontextretriever.getandroididfa.md) + +## PlatformContextRetriever.getAndroidIdfa property + +Advertising identifier on Android. + +Signature: + +```typescript +getAndroidIdfa?: () => Promise; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getappavailablememory.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getappavailablememory.md index 624308467..b3d16dd2c 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getappavailablememory.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getappavailablememory.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getAppAvailableMemory](./react-native-tracker.platformcontextretriever.getappavailablememory.md) - -## PlatformContextRetriever.getAppAvailableMemory property - -Amount of memory in bytes available to the current app - -Signature: - -```typescript -getAppAvailableMemory?: () => Promise; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getAppAvailableMemory](./react-native-tracker.platformcontextretriever.getappavailablememory.md) + +## PlatformContextRetriever.getAppAvailableMemory property + +Amount of memory in bytes available to the current app + +Signature: + +```typescript +getAppAvailableMemory?: () => Promise; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getappleidfa.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getappleidfa.md index a0d88db3b..d7df9689b 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getappleidfa.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getappleidfa.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getAppleIdfa](./react-native-tracker.platformcontextretriever.getappleidfa.md) - -## PlatformContextRetriever.getAppleIdfa property - -Advertising identifier on iOS (UUID formatted string) - -Signature: - -```typescript -getAppleIdfa?: () => Promise; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getAppleIdfa](./react-native-tracker.platformcontextretriever.getappleidfa.md) + +## PlatformContextRetriever.getAppleIdfa property + +Advertising identifier on iOS (UUID formatted string) + +Signature: + +```typescript +getAppleIdfa?: () => Promise; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getappleidfv.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getappleidfv.md index 368d90deb..708c2fab8 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getappleidfv.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getappleidfv.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getAppleIdfv](./react-native-tracker.platformcontextretriever.getappleidfv.md) - -## PlatformContextRetriever.getAppleIdfv property - -UUID identifier for vendors on iOS - -Signature: - -```typescript -getAppleIdfv?: () => Promise; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getAppleIdfv](./react-native-tracker.platformcontextretriever.getappleidfv.md) + +## PlatformContextRetriever.getAppleIdfv property + +UUID identifier for vendors on iOS + +Signature: + +```typescript +getAppleIdfv?: () => Promise; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getappsetid.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getappsetid.md index 3c0658960..26883e060 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getappsetid.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getappsetid.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getAppSetId](./react-native-tracker.platformcontextretriever.getappsetid.md) - -## PlatformContextRetriever.getAppSetId property - -Android vendor ID scoped to the set of apps published under the same Google Play developer account (see https://developer.android.com/training/articles/app-set-id). - -Signature: - -```typescript -getAppSetId?: () => Promise; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getAppSetId](./react-native-tracker.platformcontextretriever.getappsetid.md) + +## PlatformContextRetriever.getAppSetId property + +Android vendor ID scoped to the set of apps published under the same Google Play developer account (see https://developer.android.com/training/articles/app-set-id). + +Signature: + +```typescript +getAppSetId?: () => Promise; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getappsetidscope.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getappsetidscope.md index 65b4c9854..ba739a067 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getappsetidscope.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getappsetidscope.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getAppSetIdScope](./react-native-tracker.platformcontextretriever.getappsetidscope.md) - -## PlatformContextRetriever.getAppSetIdScope property - -Scope of the `appSetId`. Can be scoped to the app or to a developer account on an app store (all apps from the same developer on the same device will have the same ID). - -Signature: - -```typescript -getAppSetIdScope?: () => Promise; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getAppSetIdScope](./react-native-tracker.platformcontextretriever.getappsetidscope.md) + +## PlatformContextRetriever.getAppSetIdScope property + +Scope of the `appSetId`. Can be scoped to the app or to a developer account on an app store (all apps from the same developer on the same device will have the same ID). + +Signature: + +```typescript +getAppSetIdScope?: () => Promise; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getavailablestorage.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getavailablestorage.md index ce013083a..3e272c06d 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getavailablestorage.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getavailablestorage.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getAvailableStorage](./react-native-tracker.platformcontextretriever.getavailablestorage.md) - -## PlatformContextRetriever.getAvailableStorage property - -Bytes of storage remaining - -Signature: - -```typescript -getAvailableStorage?: () => Promise; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getAvailableStorage](./react-native-tracker.platformcontextretriever.getavailablestorage.md) + +## PlatformContextRetriever.getAvailableStorage property + +Bytes of storage remaining + +Signature: + +```typescript +getAvailableStorage?: () => Promise; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getbatterylevel.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getbatterylevel.md index a08a446e6..903119131 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getbatterylevel.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getbatterylevel.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getBatteryLevel](./react-native-tracker.platformcontextretriever.getbatterylevel.md) - -## PlatformContextRetriever.getBatteryLevel property - -Remaining battery level as an integer percentage of total battery capacity - -Signature: - -```typescript -getBatteryLevel?: () => Promise; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getBatteryLevel](./react-native-tracker.platformcontextretriever.getbatterylevel.md) + +## PlatformContextRetriever.getBatteryLevel property + +Remaining battery level as an integer percentage of total battery capacity + +Signature: + +```typescript +getBatteryLevel?: () => Promise; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getbatterystate.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getbatterystate.md index ca43c26d9..572cf8433 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getbatterystate.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getbatterystate.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getBatteryState](./react-native-tracker.platformcontextretriever.getbatterystate.md) - -## PlatformContextRetriever.getBatteryState property - -Battery state for the device - -Signature: - -```typescript -getBatteryState?: () => Promise<'unplugged' | 'charging' | 'full' | undefined>; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getBatteryState](./react-native-tracker.platformcontextretriever.getbatterystate.md) + +## PlatformContextRetriever.getBatteryState property + +Battery state for the device + +Signature: + +```typescript +getBatteryState?: () => Promise<'unplugged' | 'charging' | 'full' | undefined>; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getcarrier.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getcarrier.md index f1515b6e3..1e585d9e3 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getcarrier.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getcarrier.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getCarrier](./react-native-tracker.platformcontextretriever.getcarrier.md) - -## PlatformContextRetriever.getCarrier property - -The carrier of the SIM inserted in the device - -Signature: - -```typescript -getCarrier?: () => Promise; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getCarrier](./react-native-tracker.platformcontextretriever.getcarrier.md) + +## PlatformContextRetriever.getCarrier property + +The carrier of the SIM inserted in the device + +Signature: + +```typescript +getCarrier?: () => Promise; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getdevicemanufacturer.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getdevicemanufacturer.md index aefca54ec..fd01882c8 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getdevicemanufacturer.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getdevicemanufacturer.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getDeviceManufacturer](./react-native-tracker.platformcontextretriever.getdevicemanufacturer.md) - -## PlatformContextRetriever.getDeviceManufacturer property - -The manufacturer of the product/hardware - -Signature: - -```typescript -getDeviceManufacturer?: () => Promise; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getDeviceManufacturer](./react-native-tracker.platformcontextretriever.getdevicemanufacturer.md) + +## PlatformContextRetriever.getDeviceManufacturer property + +The manufacturer of the product/hardware + +Signature: + +```typescript +getDeviceManufacturer?: () => Promise; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getdevicemodel.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getdevicemodel.md index c6c5f4fac..d4e678e30 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getdevicemodel.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getdevicemodel.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getDeviceModel](./react-native-tracker.platformcontextretriever.getdevicemodel.md) - -## PlatformContextRetriever.getDeviceModel property - -The end-user-visible name for the end product - -Signature: - -```typescript -getDeviceModel?: () => Promise; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getDeviceModel](./react-native-tracker.platformcontextretriever.getdevicemodel.md) + +## PlatformContextRetriever.getDeviceModel property + +The end-user-visible name for the end product + +Signature: + +```typescript +getDeviceModel?: () => Promise; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getlanguage.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getlanguage.md index 565a371b8..f898f2ee3 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getlanguage.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getlanguage.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getLanguage](./react-native-tracker.platformcontextretriever.getlanguage.md) - -## PlatformContextRetriever.getLanguage property - -System language currently used on the device (ISO 639) - -Signature: - -```typescript -getLanguage?: () => Promise; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getLanguage](./react-native-tracker.platformcontextretriever.getlanguage.md) + +## PlatformContextRetriever.getLanguage property + +System language currently used on the device (ISO 639) + +Signature: + +```typescript +getLanguage?: () => Promise; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getlowpowermode.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getlowpowermode.md index 368092360..a977aee13 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getlowpowermode.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getlowpowermode.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getLowPowerMode](./react-native-tracker.platformcontextretriever.getlowpowermode.md) - -## PlatformContextRetriever.getLowPowerMode property - -A Boolean indicating whether Low Power Mode is enabled - -Signature: - -```typescript -getLowPowerMode?: () => Promise; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getLowPowerMode](./react-native-tracker.platformcontextretriever.getlowpowermode.md) + +## PlatformContextRetriever.getLowPowerMode property + +A Boolean indicating whether Low Power Mode is enabled + +Signature: + +```typescript +getLowPowerMode?: () => Promise; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getnetworktechnology.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getnetworktechnology.md index 8302c9a24..aaea92c69 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getnetworktechnology.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getnetworktechnology.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getNetworkTechnology](./react-native-tracker.platformcontextretriever.getnetworktechnology.md) - -## PlatformContextRetriever.getNetworkTechnology property - -Radio access technology that the device is using - -Signature: - -```typescript -getNetworkTechnology?: () => Promise; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getNetworkTechnology](./react-native-tracker.platformcontextretriever.getnetworktechnology.md) + +## PlatformContextRetriever.getNetworkTechnology property + +Radio access technology that the device is using + +Signature: + +```typescript +getNetworkTechnology?: () => Promise; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getnetworktype.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getnetworktype.md index 0b00accd9..1890e85a6 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getnetworktype.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getnetworktype.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getNetworkType](./react-native-tracker.platformcontextretriever.getnetworktype.md) - -## PlatformContextRetriever.getNetworkType property - -Type of network the device is connected to - -Signature: - -```typescript -getNetworkType?: () => Promise<'mobile' | 'wifi' | 'offline' | undefined>; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getNetworkType](./react-native-tracker.platformcontextretriever.getnetworktype.md) + +## PlatformContextRetriever.getNetworkType property + +Type of network the device is connected to + +Signature: + +```typescript +getNetworkType?: () => Promise<'mobile' | 'wifi' | 'offline' | undefined>; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getostype.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getostype.md index 456b4aad5..3c2904a26 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getostype.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getostype.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getOsType](./react-native-tracker.platformcontextretriever.getostype.md) - -## PlatformContextRetriever.getOsType property - -Operating system type (e.g., ios, tvos, watchos, osx, android) - -Signature: - -```typescript -getOsType?: () => Promise; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getOsType](./react-native-tracker.platformcontextretriever.getostype.md) + +## PlatformContextRetriever.getOsType property + +Operating system type (e.g., ios, tvos, watchos, osx, android) + +Signature: + +```typescript +getOsType?: () => Promise; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getosversion.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getosversion.md index b46d441dc..204cf64b2 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getosversion.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getosversion.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getOsVersion](./react-native-tracker.platformcontextretriever.getosversion.md) - -## PlatformContextRetriever.getOsVersion property - -The current version of the operating system - -Signature: - -```typescript -getOsVersion?: () => Promise; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getOsVersion](./react-native-tracker.platformcontextretriever.getosversion.md) + +## PlatformContextRetriever.getOsVersion property + +The current version of the operating system + +Signature: + +```typescript +getOsVersion?: () => Promise; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getphysicalmemory.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getphysicalmemory.md index 16900d371..333e960da 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getphysicalmemory.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getphysicalmemory.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getPhysicalMemory](./react-native-tracker.platformcontextretriever.getphysicalmemory.md) - -## PlatformContextRetriever.getPhysicalMemory property - -Total physical system memory in bytes - -Signature: - -```typescript -getPhysicalMemory?: () => Promise; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getPhysicalMemory](./react-native-tracker.platformcontextretriever.getphysicalmemory.md) + +## PlatformContextRetriever.getPhysicalMemory property + +Total physical system memory in bytes + +Signature: + +```typescript +getPhysicalMemory?: () => Promise; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getresolution.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getresolution.md index 38f1da167..12ea40cc5 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getresolution.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getresolution.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getResolution](./react-native-tracker.platformcontextretriever.getresolution.md) - -## PlatformContextRetriever.getResolution property - -Screen resolution in pixels. Arrives in the form of WIDTHxHEIGHT (e.g., 1200x900). Doesn't change when device orientation changes - -Signature: - -```typescript -getResolution?: () => Promise; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getResolution](./react-native-tracker.platformcontextretriever.getresolution.md) + +## PlatformContextRetriever.getResolution property + +Screen resolution in pixels. Arrives in the form of WIDTHxHEIGHT (e.g., 1200x900). Doesn't change when device orientation changes + +Signature: + +```typescript +getResolution?: () => Promise; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getscale.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getscale.md index 4ea6d0605..3a4f0351a 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getscale.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getscale.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getScale](./react-native-tracker.platformcontextretriever.getscale.md) - -## PlatformContextRetriever.getScale property - -Scale factor used to convert logical coordinates to device coordinates of the screen (uses UIScreen.scale on iOS) - -Signature: - -```typescript -getScale?: () => Promise; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getScale](./react-native-tracker.platformcontextretriever.getscale.md) + +## PlatformContextRetriever.getScale property + +Scale factor used to convert logical coordinates to device coordinates of the screen (uses UIScreen.scale on iOS) + +Signature: + +```typescript +getScale?: () => Promise; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getsystemavailablememory.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getsystemavailablememory.md index a172c17f7..43e158abc 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getsystemavailablememory.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.getsystemavailablememory.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getSystemAvailableMemory](./react-native-tracker.platformcontextretriever.getsystemavailablememory.md) - -## PlatformContextRetriever.getSystemAvailableMemory property - -Available memory on the system in bytes (Android only). - -Signature: - -```typescript -getSystemAvailableMemory?: () => Promise; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getSystemAvailableMemory](./react-native-tracker.platformcontextretriever.getsystemavailablememory.md) + +## PlatformContextRetriever.getSystemAvailableMemory property + +Available memory on the system in bytes (Android only). + +Signature: + +```typescript +getSystemAvailableMemory?: () => Promise; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.gettotalstorage.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.gettotalstorage.md index 608b4a868..af2f197c9 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.gettotalstorage.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.gettotalstorage.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getTotalStorage](./react-native-tracker.platformcontextretriever.gettotalstorage.md) - -## PlatformContextRetriever.getTotalStorage property - -Total size of storage in bytes - -Signature: - -```typescript -getTotalStorage?: () => Promise; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [getTotalStorage](./react-native-tracker.platformcontextretriever.gettotalstorage.md) + +## PlatformContextRetriever.getTotalStorage property + +Total size of storage in bytes + +Signature: + +```typescript +getTotalStorage?: () => Promise; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.isportrait.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.isportrait.md index 4e633ff9b..dcbcf2877 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.isportrait.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.isportrait.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [isPortrait](./react-native-tracker.platformcontextretriever.isportrait.md) - -## PlatformContextRetriever.isPortrait property - -A Boolean indicating whether the device orientation is portrait (either upright or upside down) - -Signature: - -```typescript -isPortrait?: () => Promise; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) > [isPortrait](./react-native-tracker.platformcontextretriever.isportrait.md) + +## PlatformContextRetriever.isPortrait property + +A Boolean indicating whether the device orientation is portrait (either upright or upside down) + +Signature: + +```typescript +isPortrait?: () => Promise; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.md index a93833f88..cbaea8df5 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.platformcontextretriever.md @@ -1,43 +1,43 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) - -## PlatformContextRetriever interface - -Overrides for the values for properties of the platform context. - -Signature: - -```typescript -export interface PlatformContextRetriever -``` - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [getAndroidIdfa?](./react-native-tracker.platformcontextretriever.getandroididfa.md) | () => Promise<string \| undefined> | (Optional) Advertising identifier on Android. | -| [getAppAvailableMemory?](./react-native-tracker.platformcontextretriever.getappavailablememory.md) | () => Promise<number \| undefined> | (Optional) Amount of memory in bytes available to the current app | -| [getAppleIdfa?](./react-native-tracker.platformcontextretriever.getappleidfa.md) | () => Promise<string \| undefined> | (Optional) Advertising identifier on iOS (UUID formatted string) | -| [getAppleIdfv?](./react-native-tracker.platformcontextretriever.getappleidfv.md) | () => Promise<string \| undefined> | (Optional) UUID identifier for vendors on iOS | -| [getAppSetId?](./react-native-tracker.platformcontextretriever.getappsetid.md) | () => Promise<string \| undefined> | (Optional) Android vendor ID scoped to the set of apps published under the same Google Play developer account (see https://developer.android.com/training/articles/app-set-id). | -| [getAppSetIdScope?](./react-native-tracker.platformcontextretriever.getappsetidscope.md) | () => Promise<string \| undefined> | (Optional) Scope of the appSetId. Can be scoped to the app or to a developer account on an app store (all apps from the same developer on the same device will have the same ID). | -| [getAvailableStorage?](./react-native-tracker.platformcontextretriever.getavailablestorage.md) | () => Promise<number \| undefined> | (Optional) Bytes of storage remaining | -| [getBatteryLevel?](./react-native-tracker.platformcontextretriever.getbatterylevel.md) | () => Promise<number \| undefined> | (Optional) Remaining battery level as an integer percentage of total battery capacity | -| [getBatteryState?](./react-native-tracker.platformcontextretriever.getbatterystate.md) | () => Promise<'unplugged' \| 'charging' \| 'full' \| undefined> | (Optional) Battery state for the device | -| [getCarrier?](./react-native-tracker.platformcontextretriever.getcarrier.md) | () => Promise<string \| undefined> | (Optional) The carrier of the SIM inserted in the device | -| [getDeviceManufacturer?](./react-native-tracker.platformcontextretriever.getdevicemanufacturer.md) | () => Promise<string> | (Optional) The manufacturer of the product/hardware | -| [getDeviceModel?](./react-native-tracker.platformcontextretriever.getdevicemodel.md) | () => Promise<string> | (Optional) The end-user-visible name for the end product | -| [getLanguage?](./react-native-tracker.platformcontextretriever.getlanguage.md) | () => Promise<string \| undefined> | (Optional) System language currently used on the device (ISO 639) | -| [getLowPowerMode?](./react-native-tracker.platformcontextretriever.getlowpowermode.md) | () => Promise<boolean \| undefined> | (Optional) A Boolean indicating whether Low Power Mode is enabled | -| [getNetworkTechnology?](./react-native-tracker.platformcontextretriever.getnetworktechnology.md) | () => Promise<string \| undefined> | (Optional) Radio access technology that the device is using | -| [getNetworkType?](./react-native-tracker.platformcontextretriever.getnetworktype.md) | () => Promise<'mobile' \| 'wifi' \| 'offline' \| undefined> | (Optional) Type of network the device is connected to | -| [getOsType?](./react-native-tracker.platformcontextretriever.getostype.md) | () => Promise<string> | (Optional) Operating system type (e.g., ios, tvos, watchos, osx, android) | -| [getOsVersion?](./react-native-tracker.platformcontextretriever.getosversion.md) | () => Promise<string> | (Optional) The current version of the operating system | -| [getPhysicalMemory?](./react-native-tracker.platformcontextretriever.getphysicalmemory.md) | () => Promise<number \| undefined> | (Optional) Total physical system memory in bytes | -| [getResolution?](./react-native-tracker.platformcontextretriever.getresolution.md) | () => Promise<string \| undefined> | (Optional) Screen resolution in pixels. Arrives in the form of WIDTHxHEIGHT (e.g., 1200x900). Doesn't change when device orientation changes | -| [getScale?](./react-native-tracker.platformcontextretriever.getscale.md) | () => Promise<number \| undefined> | (Optional) Scale factor used to convert logical coordinates to device coordinates of the screen (uses UIScreen.scale on iOS) | -| [getSystemAvailableMemory?](./react-native-tracker.platformcontextretriever.getsystemavailablememory.md) | () => Promise<number \| undefined> | (Optional) Available memory on the system in bytes (Android only). | -| [getTotalStorage?](./react-native-tracker.platformcontextretriever.gettotalstorage.md) | () => Promise<number \| undefined> | (Optional) Total size of storage in bytes | -| [isPortrait?](./react-native-tracker.platformcontextretriever.isportrait.md) | () => Promise<boolean \| undefined> | (Optional) A Boolean indicating whether the device orientation is portrait (either upright or upside down) | - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [PlatformContextRetriever](./react-native-tracker.platformcontextretriever.md) + +## PlatformContextRetriever interface + +Overrides for the values for properties of the platform context. + +Signature: + +```typescript +export interface PlatformContextRetriever +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [getAndroidIdfa?](./react-native-tracker.platformcontextretriever.getandroididfa.md) | () => Promise<string \| undefined> | (Optional) Advertising identifier on Android. | +| [getAppAvailableMemory?](./react-native-tracker.platformcontextretriever.getappavailablememory.md) | () => Promise<number \| undefined> | (Optional) Amount of memory in bytes available to the current app | +| [getAppleIdfa?](./react-native-tracker.platformcontextretriever.getappleidfa.md) | () => Promise<string \| undefined> | (Optional) Advertising identifier on iOS (UUID formatted string) | +| [getAppleIdfv?](./react-native-tracker.platformcontextretriever.getappleidfv.md) | () => Promise<string \| undefined> | (Optional) UUID identifier for vendors on iOS | +| [getAppSetId?](./react-native-tracker.platformcontextretriever.getappsetid.md) | () => Promise<string \| undefined> | (Optional) Android vendor ID scoped to the set of apps published under the same Google Play developer account (see https://developer.android.com/training/articles/app-set-id). | +| [getAppSetIdScope?](./react-native-tracker.platformcontextretriever.getappsetidscope.md) | () => Promise<string \| undefined> | (Optional) Scope of the appSetId. Can be scoped to the app or to a developer account on an app store (all apps from the same developer on the same device will have the same ID). | +| [getAvailableStorage?](./react-native-tracker.platformcontextretriever.getavailablestorage.md) | () => Promise<number \| undefined> | (Optional) Bytes of storage remaining | +| [getBatteryLevel?](./react-native-tracker.platformcontextretriever.getbatterylevel.md) | () => Promise<number \| undefined> | (Optional) Remaining battery level as an integer percentage of total battery capacity | +| [getBatteryState?](./react-native-tracker.platformcontextretriever.getbatterystate.md) | () => Promise<'unplugged' \| 'charging' \| 'full' \| undefined> | (Optional) Battery state for the device | +| [getCarrier?](./react-native-tracker.platformcontextretriever.getcarrier.md) | () => Promise<string \| undefined> | (Optional) The carrier of the SIM inserted in the device | +| [getDeviceManufacturer?](./react-native-tracker.platformcontextretriever.getdevicemanufacturer.md) | () => Promise<string> | (Optional) The manufacturer of the product/hardware | +| [getDeviceModel?](./react-native-tracker.platformcontextretriever.getdevicemodel.md) | () => Promise<string> | (Optional) The end-user-visible name for the end product | +| [getLanguage?](./react-native-tracker.platformcontextretriever.getlanguage.md) | () => Promise<string \| undefined> | (Optional) System language currently used on the device (ISO 639) | +| [getLowPowerMode?](./react-native-tracker.platformcontextretriever.getlowpowermode.md) | () => Promise<boolean \| undefined> | (Optional) A Boolean indicating whether Low Power Mode is enabled | +| [getNetworkTechnology?](./react-native-tracker.platformcontextretriever.getnetworktechnology.md) | () => Promise<string \| undefined> | (Optional) Radio access technology that the device is using | +| [getNetworkType?](./react-native-tracker.platformcontextretriever.getnetworktype.md) | () => Promise<'mobile' \| 'wifi' \| 'offline' \| undefined> | (Optional) Type of network the device is connected to | +| [getOsType?](./react-native-tracker.platformcontextretriever.getostype.md) | () => Promise<string> | (Optional) Operating system type (e.g., ios, tvos, watchos, osx, android) | +| [getOsVersion?](./react-native-tracker.platformcontextretriever.getosversion.md) | () => Promise<string> | (Optional) The current version of the operating system | +| [getPhysicalMemory?](./react-native-tracker.platformcontextretriever.getphysicalmemory.md) | () => Promise<number \| undefined> | (Optional) Total physical system memory in bytes | +| [getResolution?](./react-native-tracker.platformcontextretriever.getresolution.md) | () => Promise<string \| undefined> | (Optional) Screen resolution in pixels. Arrives in the form of WIDTHxHEIGHT (e.g., 1200x900). Doesn't change when device orientation changes | +| [getScale?](./react-native-tracker.platformcontextretriever.getscale.md) | () => Promise<number \| undefined> | (Optional) Scale factor used to convert logical coordinates to device coordinates of the screen (uses UIScreen.scale on iOS) | +| [getSystemAvailableMemory?](./react-native-tracker.platformcontextretriever.getsystemavailablememory.md) | () => Promise<number \| undefined> | (Optional) Available memory on the system in bytes (Android only). | +| [getTotalStorage?](./react-native-tracker.platformcontextretriever.gettotalstorage.md) | () => Promise<number \| undefined> | (Optional) Total size of storage in bytes | +| [isPortrait?](./react-native-tracker.platformcontextretriever.isportrait.md) | () => Promise<boolean \| undefined> | (Optional) A Boolean indicating whether the device orientation is portrait (either upright or upside down) | + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.reactnativetracker.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.reactnativetracker.md index b0068bf18..c6354bb03 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.reactnativetracker.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.reactnativetracker.md @@ -1,54 +1,54 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [ReactNativeTracker](./react-native-tracker.reactnativetracker.md) - -## ReactNativeTracker type - -The ReactNativeTracker type - -Signature: - -```typescript -export declare type ReactNativeTracker = { - namespace: string; - readonly trackSelfDescribingEvent: = Record>(argmap: SelfDescribing, contexts?: EventContext[]) => void; - readonly trackScreenViewEvent: (argmap: ScreenViewProps, contexts?: EventContext[]) => void; - readonly trackScrollChangedEvent: (argmap: ScrollChangedProps, contexts?: EventContext[]) => void; - readonly trackListItemViewEvent: (argmap: ListItemViewProps, contexts?: EventContext[]) => void; - readonly trackStructuredEvent: (argmap: StructuredProps, contexts?: EventContext[]) => void; - readonly trackPageViewEvent: (argmap: PageViewEvent, contexts?: EventContext[]) => void; - readonly trackTimingEvent: (argmap: TimingProps, contexts?: EventContext[]) => void; - readonly trackDeepLinkReceivedEvent: (argmap: DeepLinkReceivedProps, contexts?: EventContext[]) => void; - readonly trackMessageNotificationEvent: (argmap: MessageNotificationProps, contexts?: EventContext[]) => void; - addGlobalContexts(contexts: Array | Record): void; - clearGlobalContexts(): void; - removeGlobalContexts(contexts: Array): void; - addPlugin(configuration: BrowserPluginConfiguration): void; - flush: () => Promise; - readonly setAppId: (appId: string) => void; - readonly setPlatform: (value: string) => void; - readonly setUserId: (newUid: string) => void; - readonly setNetworkUserId: (newNuid: string | undefined) => void; - readonly setDomainUserId: (newDuid: string | undefined) => void; - readonly setIpAddress: (newIp: string) => void; - readonly setUseragent: (newUagent: string) => void; - readonly setTimezone: (newTz: string) => void; - readonly setLanguage: (newLang: string) => void; - readonly setScreenResolution: (newRes: ScreenSize) => void; - readonly setScreenViewport: (newView: ScreenSize) => void; - readonly setColorDepth: (newLang: number) => void; - readonly setSubjectData: (config: SubjectConfiguration) => void; - readonly getSessionUserId: () => Promise; - readonly getSessionId: () => Promise; - readonly getSessionIndex: () => Promise; - readonly getSessionState: () => Promise; - readonly getIsInBackground: () => boolean | undefined; - readonly getBackgroundIndex: () => number | undefined; - readonly getForegroundIndex: () => number | undefined; - readonly enablePlatformContext: () => Promise; - readonly disablePlatformContext: () => void; - readonly refreshPlatformContext: () => Promise; -}; -``` -References: [SelfDescribing](./react-native-tracker.selfdescribing.md), [EventContext](./react-native-tracker.eventcontext.md), [ScreenViewProps](./react-native-tracker.screenviewprops.md), [ScrollChangedProps](./react-native-tracker.scrollchangedprops.md), [ListItemViewProps](./react-native-tracker.listitemviewprops.md), [StructuredProps](./react-native-tracker.structuredprops.md), [TimingProps](./react-native-tracker.timingprops.md), [DeepLinkReceivedProps](./react-native-tracker.deeplinkreceivedprops.md), [MessageNotificationProps](./react-native-tracker.messagenotificationprops.md), [ScreenSize](./react-native-tracker.screensize.md), [SubjectConfiguration](./react-native-tracker.subjectconfiguration.md), [SessionState](./react-native-tracker.sessionstate.md) - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [ReactNativeTracker](./react-native-tracker.reactnativetracker.md) + +## ReactNativeTracker type + +The ReactNativeTracker type + +Signature: + +```typescript +export declare type ReactNativeTracker = { + namespace: string; + readonly trackSelfDescribingEvent: = Record>(argmap: SelfDescribing, contexts?: EventContext[]) => void; + readonly trackScreenViewEvent: (argmap: ScreenViewProps, contexts?: EventContext[]) => void; + readonly trackScrollChangedEvent: (argmap: ScrollChangedProps, contexts?: EventContext[]) => void; + readonly trackListItemViewEvent: (argmap: ListItemViewProps, contexts?: EventContext[]) => void; + readonly trackStructuredEvent: (argmap: StructuredProps, contexts?: EventContext[]) => void; + readonly trackPageViewEvent: (argmap: PageViewEvent, contexts?: EventContext[]) => void; + readonly trackTimingEvent: (argmap: TimingProps, contexts?: EventContext[]) => void; + readonly trackDeepLinkReceivedEvent: (argmap: DeepLinkReceivedProps, contexts?: EventContext[]) => void; + readonly trackMessageNotificationEvent: (argmap: MessageNotificationProps, contexts?: EventContext[]) => void; + addGlobalContexts(contexts: Array | Record): void; + clearGlobalContexts(): void; + removeGlobalContexts(contexts: Array): void; + addPlugin(configuration: BrowserPluginConfiguration): void; + flush: () => Promise; + readonly setAppId: (appId: string) => void; + readonly setPlatform: (value: string) => void; + readonly setUserId: (newUid: string) => void; + readonly setNetworkUserId: (newNuid: string | undefined) => void; + readonly setDomainUserId: (newDuid: string | undefined) => void; + readonly setIpAddress: (newIp: string) => void; + readonly setUseragent: (newUagent: string) => void; + readonly setTimezone: (newTz: string) => void; + readonly setLanguage: (newLang: string) => void; + readonly setScreenResolution: (newRes: ScreenSize) => void; + readonly setScreenViewport: (newView: ScreenSize) => void; + readonly setColorDepth: (newLang: number) => void; + readonly setSubjectData: (config: SubjectConfiguration) => void; + readonly getSessionUserId: () => Promise; + readonly getSessionId: () => Promise; + readonly getSessionIndex: () => Promise; + readonly getSessionState: () => Promise; + readonly getIsInBackground: () => boolean | undefined; + readonly getBackgroundIndex: () => number | undefined; + readonly getForegroundIndex: () => number | undefined; + readonly enablePlatformContext: () => Promise; + readonly disablePlatformContext: () => void; + readonly refreshPlatformContext: () => Promise; +}; +``` +References: [SelfDescribing](./react-native-tracker.selfdescribing.md), [EventContext](./react-native-tracker.eventcontext.md), [ScreenViewProps](./react-native-tracker.screenviewprops.md), [ScrollChangedProps](./react-native-tracker.scrollchangedprops.md), [ListItemViewProps](./react-native-tracker.listitemviewprops.md), [StructuredProps](./react-native-tracker.structuredprops.md), [TimingProps](./react-native-tracker.timingprops.md), [DeepLinkReceivedProps](./react-native-tracker.deeplinkreceivedprops.md), [MessageNotificationProps](./react-native-tracker.messagenotificationprops.md), [ScreenSize](./react-native-tracker.screensize.md), [SubjectConfiguration](./react-native-tracker.subjectconfiguration.md), [SessionState](./react-native-tracker.sessionstate.md) + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.removealltrackers.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.removealltrackers.md index ac760d48d..f89c21a42 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.removealltrackers.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.removealltrackers.md @@ -1,19 +1,19 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [removeAllTrackers](./react-native-tracker.removealltrackers.md) - -## removeAllTrackers() function - -Removes all initialized trackers - -Signature: - -```typescript -export declare function removeAllTrackers(): void; -``` -Returns: - -void - -- A boolean promise - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [removeAllTrackers](./react-native-tracker.removealltrackers.md) + +## removeAllTrackers() function + +Removes all initialized trackers + +Signature: + +```typescript +export declare function removeAllTrackers(): void; +``` +Returns: + +void + +- A boolean promise + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.removetracker.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.removetracker.md index 5e8504ebe..fd63a38eb 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.removetracker.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.removetracker.md @@ -1,24 +1,24 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [removeTracker](./react-native-tracker.removetracker.md) - -## removeTracker() function - -Removes a tracker given its namespace - -Signature: - -```typescript -export declare function removeTracker(trackerNamespace: string): void; -``` - -## Parameters - -| Parameter | Type | Description | -| --- | --- | --- | -| trackerNamespace | string | Tracker namespace | - -Returns: - -void - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [removeTracker](./react-native-tracker.removetracker.md) + +## removeTracker() function + +Removes a tracker given its namespace + +Signature: + +```typescript +export declare function removeTracker(trackerNamespace: string): void; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| trackerNamespace | string | Tracker namespace | + +Returns: + +void + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.requestfailure.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.requestfailure.md index 301c823f9..063d363fc 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.requestfailure.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.requestfailure.md @@ -1,18 +1,18 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [RequestFailure](./react-native-tracker.requestfailure.md) - -## RequestFailure type - -The data that will be available to the `onRequestFailure` callback - -Signature: - -```typescript -type RequestFailure = { - events: EventBatch; - status?: number; - message?: string; - willRetry: boolean; -}; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [RequestFailure](./react-native-tracker.requestfailure.md) + +## RequestFailure type + +The data that will be available to the `onRequestFailure` callback + +Signature: + +```typescript +type RequestFailure = { + events: EventBatch; + status?: number; + message?: string; + willRetry: boolean; +}; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.ruleset.accept.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.ruleset.accept.md index 1ae083517..d47792084 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.ruleset.accept.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.ruleset.accept.md @@ -1,11 +1,11 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [RuleSet](./react-native-tracker.ruleset.md) > [accept](./react-native-tracker.ruleset.accept.md) - -## RuleSet.accept property - -Signature: - -```typescript -accept?: Array | string; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [RuleSet](./react-native-tracker.ruleset.md) > [accept](./react-native-tracker.ruleset.accept.md) + +## RuleSet.accept property + +Signature: + +```typescript +accept?: Array | string; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.ruleset.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.ruleset.md index f46804df6..157720f6c 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.ruleset.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.ruleset.md @@ -1,21 +1,21 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [RuleSet](./react-native-tracker.ruleset.md) - -## RuleSet interface - -A ruleset has accept or reject properties that contain rules for matching Iglu schema URIs - -Signature: - -```typescript -interface RuleSet -``` - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [accept?](./react-native-tracker.ruleset.accept.md) | Array<string> \| string | (Optional) | -| [reject?](./react-native-tracker.ruleset.reject.md) | Array<string> \| string | (Optional) | - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [RuleSet](./react-native-tracker.ruleset.md) + +## RuleSet interface + +A ruleset has accept or reject properties that contain rules for matching Iglu schema URIs + +Signature: + +```typescript +interface RuleSet +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [accept?](./react-native-tracker.ruleset.accept.md) | Array<string> \| string | (Optional) | +| [reject?](./react-native-tracker.ruleset.reject.md) | Array<string> \| string | (Optional) | + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.ruleset.reject.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.ruleset.reject.md index 150dd8299..a3b017794 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.ruleset.reject.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.ruleset.reject.md @@ -1,11 +1,11 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [RuleSet](./react-native-tracker.ruleset.md) > [reject](./react-native-tracker.ruleset.reject.md) - -## RuleSet.reject property - -Signature: - -```typescript -reject?: Array | string; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [RuleSet](./react-native-tracker.ruleset.md) > [reject](./react-native-tracker.ruleset.reject.md) + +## RuleSet.reject property + +Signature: + +```typescript +reject?: Array | string; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.rulesetprovider.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.rulesetprovider.md index 6e28bacfa..a9798a553 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.rulesetprovider.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.rulesetprovider.md @@ -1,16 +1,16 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [RuleSetProvider](./react-native-tracker.rulesetprovider.md) - -## RuleSetProvider type - -A ruleset provider is aa tuple that has two parts: a ruleset and the context primitive(s) If the ruleset allows the current event schema URI, the tracker will attach the context primitive(s) - -Signature: - -```typescript -type RuleSetProvider = [ - RuleSet, - Array | ContextPrimitive -]; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [RuleSetProvider](./react-native-tracker.rulesetprovider.md) + +## RuleSetProvider type + +A ruleset provider is aa tuple that has two parts: a ruleset and the context primitive(s) If the ruleset allows the current event schema URI, the tracker will attach the context primitive(s) + +Signature: + +```typescript +type RuleSetProvider = [ + RuleSet, + Array | ContextPrimitive +]; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.screensize.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.screensize.md index 3e5783854..fb7a11e45 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.screensize.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.screensize.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [ScreenSize](./react-native-tracker.screensize.md) - -## ScreenSize type - -Screen size in pixels - -Signature: - -```typescript -export declare type ScreenSize = [number, number]; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [ScreenSize](./react-native-tracker.screensize.md) + +## ScreenSize type + +Screen size in pixels + +Signature: + +```typescript +export declare type ScreenSize = [number, number]; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.screenviewprops.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.screenviewprops.md index e40a349f6..22ed34862 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.screenviewprops.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.screenviewprops.md @@ -1,21 +1,21 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [ScreenViewProps](./react-native-tracker.screenviewprops.md) - -## ScreenViewProps type - -ScreenView event properties schema: iglu:com.snowplowanalytics.mobile/screen\_view/jsonschema/1-0-0 - -Signature: - -```typescript -export declare type ScreenViewProps = { - name: string; - id?: string; - type?: string; - previousName?: string; - previousId?: string; - previousType?: string; - transitionType?: string; -}; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [ScreenViewProps](./react-native-tracker.screenviewprops.md) + +## ScreenViewProps type + +ScreenView event properties schema: iglu:com.snowplowanalytics.mobile/screen\_view/jsonschema/1-0-0 + +Signature: + +```typescript +export declare type ScreenViewProps = { + name: string; + id?: string; + type?: string; + previousName?: string; + previousId?: string; + previousType?: string; + transitionType?: string; +}; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.scrollchangedprops.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.scrollchangedprops.md index 4eedd8e4b..32d3980b5 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.scrollchangedprops.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.scrollchangedprops.md @@ -1,22 +1,22 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [ScrollChangedProps](./react-native-tracker.scrollchangedprops.md) - -## ScrollChangedProps type - -Event tracked when a scroll view's scroll position changes. If screen engagement tracking is enabled, the scroll changed events will be aggregated into a `screen_summary` entity. - -Schema: `iglu:com.snowplowanalytics.mobile/scroll_changed/jsonschema/1-0-0` - -Signature: - -```typescript -export declare type ScrollChangedProps = { - yOffset?: number; - xOffset?: number; - viewHeight?: number; - viewWidth?: number; - contentHeight?: number; - contentWidth?: number; -}; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [ScrollChangedProps](./react-native-tracker.scrollchangedprops.md) + +## ScrollChangedProps type + +Event tracked when a scroll view's scroll position changes. If screen engagement tracking is enabled, the scroll changed events will be aggregated into a `screen_summary` entity. + +Schema: `iglu:com.snowplowanalytics.mobile/scroll_changed/jsonschema/1-0-0` + +Signature: + +```typescript +export declare type ScrollChangedProps = { + yOffset?: number; + xOffset?: number; + viewHeight?: number; + viewWidth?: number; + contentHeight?: number; + contentWidth?: number; +}; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.selfdescribing.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.selfdescribing.md index 1efbed825..35c03afef 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.selfdescribing.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.selfdescribing.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SelfDescribing](./react-native-tracker.selfdescribing.md) - -## SelfDescribing type - -Interface for any self-describing JSON such as context entities or self-describing events - -Signature: - -```typescript -export declare type SelfDescribing> = SelfDescribingJson; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SelfDescribing](./react-native-tracker.selfdescribing.md) + +## SelfDescribing type + +Interface for any self-describing JSON such as context entities or self-describing events + +Signature: + +```typescript +export declare type SelfDescribing> = SelfDescribingJson; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.sessionconfiguration.backgroundsessiontimeout.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.sessionconfiguration.backgroundsessiontimeout.md index 85a77d445..823f3e277 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.sessionconfiguration.backgroundsessiontimeout.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.sessionconfiguration.backgroundsessiontimeout.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SessionConfiguration](./react-native-tracker.sessionconfiguration.md) > [backgroundSessionTimeout](./react-native-tracker.sessionconfiguration.backgroundsessiontimeout.md) - -## SessionConfiguration.backgroundSessionTimeout property - -The amount of time in seconds before the session id is updated while the app is in the background - -Signature: - -```typescript -backgroundSessionTimeout?: number; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SessionConfiguration](./react-native-tracker.sessionconfiguration.md) > [backgroundSessionTimeout](./react-native-tracker.sessionconfiguration.backgroundsessiontimeout.md) + +## SessionConfiguration.backgroundSessionTimeout property + +The amount of time in seconds before the session id is updated while the app is in the background + +Signature: + +```typescript +backgroundSessionTimeout?: number; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.sessionconfiguration.foregroundsessiontimeout.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.sessionconfiguration.foregroundsessiontimeout.md index 1e049a9eb..5282a3ef2 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.sessionconfiguration.foregroundsessiontimeout.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.sessionconfiguration.foregroundsessiontimeout.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SessionConfiguration](./react-native-tracker.sessionconfiguration.md) > [foregroundSessionTimeout](./react-native-tracker.sessionconfiguration.foregroundsessiontimeout.md) - -## SessionConfiguration.foregroundSessionTimeout property - -The amount of time in seconds before the session id is updated while the app is in the foreground - -Signature: - -```typescript -foregroundSessionTimeout?: number; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SessionConfiguration](./react-native-tracker.sessionconfiguration.md) > [foregroundSessionTimeout](./react-native-tracker.sessionconfiguration.foregroundsessiontimeout.md) + +## SessionConfiguration.foregroundSessionTimeout property + +The amount of time in seconds before the session id is updated while the app is in the foreground + +Signature: + +```typescript +foregroundSessionTimeout?: number; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.sessionconfiguration.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.sessionconfiguration.md index 6fa6b8a7d..1123c753c 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.sessionconfiguration.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.sessionconfiguration.md @@ -1,22 +1,22 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SessionConfiguration](./react-native-tracker.sessionconfiguration.md) - -## SessionConfiguration interface - -Configuration for session tracking - -Signature: - -```typescript -export interface SessionConfiguration -``` - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [backgroundSessionTimeout?](./react-native-tracker.sessionconfiguration.backgroundsessiontimeout.md) | number | (Optional) The amount of time in seconds before the session id is updated while the app is in the background | -| [foregroundSessionTimeout?](./react-native-tracker.sessionconfiguration.foregroundsessiontimeout.md) | number | (Optional) The amount of time in seconds before the session id is updated while the app is in the foreground | -| [sessionContext?](./react-native-tracker.sessionconfiguration.sessioncontext.md) | boolean | (Optional) Whether session context is attached to tracked events. | - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SessionConfiguration](./react-native-tracker.sessionconfiguration.md) + +## SessionConfiguration interface + +Configuration for session tracking + +Signature: + +```typescript +export interface SessionConfiguration +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [backgroundSessionTimeout?](./react-native-tracker.sessionconfiguration.backgroundsessiontimeout.md) | number | (Optional) The amount of time in seconds before the session id is updated while the app is in the background | +| [foregroundSessionTimeout?](./react-native-tracker.sessionconfiguration.foregroundsessiontimeout.md) | number | (Optional) The amount of time in seconds before the session id is updated while the app is in the foreground | +| [sessionContext?](./react-native-tracker.sessionconfiguration.sessioncontext.md) | boolean | (Optional) Whether session context is attached to tracked events. | + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.sessionconfiguration.sessioncontext.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.sessionconfiguration.sessioncontext.md index dc356ecdd..080fd7c72 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.sessionconfiguration.sessioncontext.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.sessionconfiguration.sessioncontext.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SessionConfiguration](./react-native-tracker.sessionconfiguration.md) > [sessionContext](./react-native-tracker.sessionconfiguration.sessioncontext.md) - -## SessionConfiguration.sessionContext property - -Whether session context is attached to tracked events. - -Signature: - -```typescript -sessionContext?: boolean; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SessionConfiguration](./react-native-tracker.sessionconfiguration.md) > [sessionContext](./react-native-tracker.sessionconfiguration.sessioncontext.md) + +## SessionConfiguration.sessionContext property + +Whether session context is attached to tracked events. + +Signature: + +```typescript +sessionContext?: boolean; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.sessionstate.eventindex.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.sessionstate.eventindex.md index c6bd011e1..2fcff3c89 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.sessionstate.eventindex.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.sessionstate.eventindex.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SessionState](./react-native-tracker.sessionstate.md) > [eventIndex](./react-native-tracker.sessionstate.eventindex.md) - -## SessionState.eventIndex property - -Optional index of the current event in the session - -Signature: - -```typescript -eventIndex?: number; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SessionState](./react-native-tracker.sessionstate.md) > [eventIndex](./react-native-tracker.sessionstate.eventindex.md) + +## SessionState.eventIndex property + +Optional index of the current event in the session + +Signature: + +```typescript +eventIndex?: number; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.sessionstate.firsteventid.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.sessionstate.firsteventid.md index fa6fa9ea6..8cb3eb771 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.sessionstate.firsteventid.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.sessionstate.firsteventid.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SessionState](./react-native-tracker.sessionstate.md) > [firstEventId](./react-native-tracker.sessionstate.firsteventid.md) - -## SessionState.firstEventId property - -The optional identifier of the first event for this session - -Signature: - -```typescript -firstEventId?: string; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SessionState](./react-native-tracker.sessionstate.md) > [firstEventId](./react-native-tracker.sessionstate.firsteventid.md) + +## SessionState.firstEventId property + +The optional identifier of the first event for this session + +Signature: + +```typescript +firstEventId?: string; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.sessionstate.firsteventtimestamp.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.sessionstate.firsteventtimestamp.md index b7530cbc5..8277b59f8 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.sessionstate.firsteventtimestamp.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.sessionstate.firsteventtimestamp.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SessionState](./react-native-tracker.sessionstate.md) > [firstEventTimestamp](./react-native-tracker.sessionstate.firsteventtimestamp.md) - -## SessionState.firstEventTimestamp property - -Optional date-time timestamp of when the first event in the session was tracked - -Signature: - -```typescript -firstEventTimestamp?: string; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SessionState](./react-native-tracker.sessionstate.md) > [firstEventTimestamp](./react-native-tracker.sessionstate.firsteventtimestamp.md) + +## SessionState.firstEventTimestamp property + +Optional date-time timestamp of when the first event in the session was tracked + +Signature: + +```typescript +firstEventTimestamp?: string; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.sessionstate.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.sessionstate.md index 3146ea3b2..a0a5ec91c 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.sessionstate.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.sessionstate.md @@ -1,27 +1,27 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SessionState](./react-native-tracker.sessionstate.md) - -## SessionState interface - -Current session state that is tracked in events. - -Signature: - -```typescript -export interface SessionState -``` - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [eventIndex?](./react-native-tracker.sessionstate.eventindex.md) | number | (Optional) Optional index of the current event in the session | -| [firstEventId?](./react-native-tracker.sessionstate.firsteventid.md) | string | (Optional) The optional identifier of the first event for this session | -| [firstEventTimestamp?](./react-native-tracker.sessionstate.firsteventtimestamp.md) | string | (Optional) Optional date-time timestamp of when the first event in the session was tracked | -| [previousSessionId?](./react-native-tracker.sessionstate.previoussessionid.md) | string | (Optional) The previous session identifier for this user | -| [sessionId](./react-native-tracker.sessionstate.sessionid.md) | string | An identifier for the session | -| [sessionIndex](./react-native-tracker.sessionstate.sessionindex.md) | number | The index of the current session for this user | -| [storageMechanism](./react-native-tracker.sessionstate.storagemechanism.md) | string | The mechanism that the session information has been stored on the device | -| [userId](./react-native-tracker.sessionstate.userid.md) | string | An identifier for the user of the session | - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SessionState](./react-native-tracker.sessionstate.md) + +## SessionState interface + +Current session state that is tracked in events. + +Signature: + +```typescript +export interface SessionState +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [eventIndex?](./react-native-tracker.sessionstate.eventindex.md) | number | (Optional) Optional index of the current event in the session | +| [firstEventId?](./react-native-tracker.sessionstate.firsteventid.md) | string | (Optional) The optional identifier of the first event for this session | +| [firstEventTimestamp?](./react-native-tracker.sessionstate.firsteventtimestamp.md) | string | (Optional) Optional date-time timestamp of when the first event in the session was tracked | +| [previousSessionId?](./react-native-tracker.sessionstate.previoussessionid.md) | string | (Optional) The previous session identifier for this user | +| [sessionId](./react-native-tracker.sessionstate.sessionid.md) | string | An identifier for the session | +| [sessionIndex](./react-native-tracker.sessionstate.sessionindex.md) | number | The index of the current session for this user | +| [storageMechanism](./react-native-tracker.sessionstate.storagemechanism.md) | string | The mechanism that the session information has been stored on the device | +| [userId](./react-native-tracker.sessionstate.userid.md) | string | An identifier for the user of the session | + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.sessionstate.previoussessionid.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.sessionstate.previoussessionid.md index 159517a4b..bd7063348 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.sessionstate.previoussessionid.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.sessionstate.previoussessionid.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SessionState](./react-native-tracker.sessionstate.md) > [previousSessionId](./react-native-tracker.sessionstate.previoussessionid.md) - -## SessionState.previousSessionId property - -The previous session identifier for this user - -Signature: - -```typescript -previousSessionId?: string; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SessionState](./react-native-tracker.sessionstate.md) > [previousSessionId](./react-native-tracker.sessionstate.previoussessionid.md) + +## SessionState.previousSessionId property + +The previous session identifier for this user + +Signature: + +```typescript +previousSessionId?: string; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.sessionstate.sessionid.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.sessionstate.sessionid.md index 1da413386..2a5411f66 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.sessionstate.sessionid.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.sessionstate.sessionid.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SessionState](./react-native-tracker.sessionstate.md) > [sessionId](./react-native-tracker.sessionstate.sessionid.md) - -## SessionState.sessionId property - -An identifier for the session - -Signature: - -```typescript -sessionId: string; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SessionState](./react-native-tracker.sessionstate.md) > [sessionId](./react-native-tracker.sessionstate.sessionid.md) + +## SessionState.sessionId property + +An identifier for the session + +Signature: + +```typescript +sessionId: string; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.sessionstate.sessionindex.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.sessionstate.sessionindex.md index 6c4e5ee6c..132af44a1 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.sessionstate.sessionindex.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.sessionstate.sessionindex.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SessionState](./react-native-tracker.sessionstate.md) > [sessionIndex](./react-native-tracker.sessionstate.sessionindex.md) - -## SessionState.sessionIndex property - -The index of the current session for this user - -Signature: - -```typescript -sessionIndex: number; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SessionState](./react-native-tracker.sessionstate.md) > [sessionIndex](./react-native-tracker.sessionstate.sessionindex.md) + +## SessionState.sessionIndex property + +The index of the current session for this user + +Signature: + +```typescript +sessionIndex: number; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.sessionstate.storagemechanism.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.sessionstate.storagemechanism.md index 1e96c113c..be6f76270 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.sessionstate.storagemechanism.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.sessionstate.storagemechanism.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SessionState](./react-native-tracker.sessionstate.md) > [storageMechanism](./react-native-tracker.sessionstate.storagemechanism.md) - -## SessionState.storageMechanism property - -The mechanism that the session information has been stored on the device - -Signature: - -```typescript -storageMechanism: string; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SessionState](./react-native-tracker.sessionstate.md) > [storageMechanism](./react-native-tracker.sessionstate.storagemechanism.md) + +## SessionState.storageMechanism property + +The mechanism that the session information has been stored on the device + +Signature: + +```typescript +storageMechanism: string; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.sessionstate.userid.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.sessionstate.userid.md index a2151d0b2..9fd0de69e 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.sessionstate.userid.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.sessionstate.userid.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SessionState](./react-native-tracker.sessionstate.md) > [userId](./react-native-tracker.sessionstate.userid.md) - -## SessionState.userId property - -An identifier for the user of the session - -Signature: - -```typescript -userId: string; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SessionState](./react-native-tracker.sessionstate.md) > [userId](./react-native-tracker.sessionstate.userid.md) + +## SessionState.userId property + +An identifier for the user of the session + +Signature: + +```typescript +userId: string; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.structuredprops.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.structuredprops.md index 0eded0b1e..4d0ea6262 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.structuredprops.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.structuredprops.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [StructuredProps](./react-native-tracker.structuredprops.md) - -## StructuredProps type - -Properties for a structured event. A classic style of event tracking, allows for easier movement between analytics systems. Self-describing events are preferred for their schema validation. - -Signature: - -```typescript -export declare type StructuredProps = StructuredEvent; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [StructuredProps](./react-native-tracker.structuredprops.md) + +## StructuredProps type + +Properties for a structured event. A classic style of event tracking, allows for easier movement between analytics systems. Self-describing events are preferred for their schema validation. + +Signature: + +```typescript +export declare type StructuredProps = StructuredEvent; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.subjectconfiguration.colordepth.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.subjectconfiguration.colordepth.md index 33fc96df4..293d0019e 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.subjectconfiguration.colordepth.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.subjectconfiguration.colordepth.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SubjectConfiguration](./react-native-tracker.subjectconfiguration.md) > [colorDepth](./react-native-tracker.subjectconfiguration.colordepth.md) - -## SubjectConfiguration.colorDepth property - -Color depth (integer) - -Signature: - -```typescript -colorDepth?: number; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SubjectConfiguration](./react-native-tracker.subjectconfiguration.md) > [colorDepth](./react-native-tracker.subjectconfiguration.colordepth.md) + +## SubjectConfiguration.colorDepth property + +Color depth (integer) + +Signature: + +```typescript +colorDepth?: number; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.subjectconfiguration.domainuserid.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.subjectconfiguration.domainuserid.md index d841a2cd3..ae25b158c 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.subjectconfiguration.domainuserid.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.subjectconfiguration.domainuserid.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SubjectConfiguration](./react-native-tracker.subjectconfiguration.md) > [domainUserId](./react-native-tracker.subjectconfiguration.domainuserid.md) - -## SubjectConfiguration.domainUserId property - -The domain user id (DUID) is a generated identifier that is stored in a first party cookie on Web. The React Native tracker does not assign it automatically. - -Signature: - -```typescript -domainUserId?: string; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SubjectConfiguration](./react-native-tracker.subjectconfiguration.md) > [domainUserId](./react-native-tracker.subjectconfiguration.domainuserid.md) + +## SubjectConfiguration.domainUserId property + +The domain user id (DUID) is a generated identifier that is stored in a first party cookie on Web. The React Native tracker does not assign it automatically. + +Signature: + +```typescript +domainUserId?: string; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.subjectconfiguration.ipaddress.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.subjectconfiguration.ipaddress.md index ce09cc494..9e2dbe11d 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.subjectconfiguration.ipaddress.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.subjectconfiguration.ipaddress.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SubjectConfiguration](./react-native-tracker.subjectconfiguration.md) > [ipAddress](./react-native-tracker.subjectconfiguration.ipaddress.md) - -## SubjectConfiguration.ipAddress property - -Override the IP address of the device - -Signature: - -```typescript -ipAddress?: string; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SubjectConfiguration](./react-native-tracker.subjectconfiguration.md) > [ipAddress](./react-native-tracker.subjectconfiguration.ipaddress.md) + +## SubjectConfiguration.ipAddress property + +Override the IP address of the device + +Signature: + +```typescript +ipAddress?: string; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.subjectconfiguration.language.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.subjectconfiguration.language.md index 101d505de..381bc4ec0 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.subjectconfiguration.language.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.subjectconfiguration.language.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SubjectConfiguration](./react-native-tracker.subjectconfiguration.md) > [language](./react-native-tracker.subjectconfiguration.language.md) - -## SubjectConfiguration.language property - -The language set in the device - -Signature: - -```typescript -language?: string; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SubjectConfiguration](./react-native-tracker.subjectconfiguration.md) > [language](./react-native-tracker.subjectconfiguration.language.md) + +## SubjectConfiguration.language property + +The language set in the device + +Signature: + +```typescript +language?: string; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.subjectconfiguration.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.subjectconfiguration.md index b2ffb8023..142bbc301 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.subjectconfiguration.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.subjectconfiguration.md @@ -1,29 +1,29 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SubjectConfiguration](./react-native-tracker.subjectconfiguration.md) - -## SubjectConfiguration interface - -Configuration of subject properties tracked with events - -Signature: - -```typescript -export interface SubjectConfiguration -``` - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [colorDepth?](./react-native-tracker.subjectconfiguration.colordepth.md) | number | (Optional) Color depth (integer) | -| [domainUserId?](./react-native-tracker.subjectconfiguration.domainuserid.md) | string | (Optional) The domain user id (DUID) is a generated identifier that is stored in a first party cookie on Web. The React Native tracker does not assign it automatically. | -| [ipAddress?](./react-native-tracker.subjectconfiguration.ipaddress.md) | string | (Optional) Override the IP address of the device | -| [language?](./react-native-tracker.subjectconfiguration.language.md) | string | (Optional) The language set in the device | -| [networkUserId?](./react-native-tracker.subjectconfiguration.networkuserid.md) | string | (Optional) Override the network user id (UUIDv4) that is assigned by the collector and stored in cookies | -| [screenResolution?](./react-native-tracker.subjectconfiguration.screenresolution.md) | [ScreenSize](./react-native-tracker.screensize.md) | (Optional) The screen resolution | -| [screenViewport?](./react-native-tracker.subjectconfiguration.screenviewport.md) | [ScreenSize](./react-native-tracker.screensize.md) | (Optional) The screen viewport size | -| [timezone?](./react-native-tracker.subjectconfiguration.timezone.md) | string | (Optional) The timezone label | -| [useragent?](./react-native-tracker.subjectconfiguration.useragent.md) | string | (Optional) The custom user-agent. It overrides the user-agent used by default. | -| [userId?](./react-native-tracker.subjectconfiguration.userid.md) | string | (Optional) Business-defined user ID for this user | - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SubjectConfiguration](./react-native-tracker.subjectconfiguration.md) + +## SubjectConfiguration interface + +Configuration of subject properties tracked with events + +Signature: + +```typescript +export interface SubjectConfiguration +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [colorDepth?](./react-native-tracker.subjectconfiguration.colordepth.md) | number | (Optional) Color depth (integer) | +| [domainUserId?](./react-native-tracker.subjectconfiguration.domainuserid.md) | string | (Optional) The domain user id (DUID) is a generated identifier that is stored in a first party cookie on Web. The React Native tracker does not assign it automatically. | +| [ipAddress?](./react-native-tracker.subjectconfiguration.ipaddress.md) | string | (Optional) Override the IP address of the device | +| [language?](./react-native-tracker.subjectconfiguration.language.md) | string | (Optional) The language set in the device | +| [networkUserId?](./react-native-tracker.subjectconfiguration.networkuserid.md) | string | (Optional) Override the network user id (UUIDv4) that is assigned by the collector and stored in cookies | +| [screenResolution?](./react-native-tracker.subjectconfiguration.screenresolution.md) | [ScreenSize](./react-native-tracker.screensize.md) | (Optional) The screen resolution | +| [screenViewport?](./react-native-tracker.subjectconfiguration.screenviewport.md) | [ScreenSize](./react-native-tracker.screensize.md) | (Optional) The screen viewport size | +| [timezone?](./react-native-tracker.subjectconfiguration.timezone.md) | string | (Optional) The timezone label | +| [useragent?](./react-native-tracker.subjectconfiguration.useragent.md) | string | (Optional) The custom user-agent. It overrides the user-agent used by default. | +| [userId?](./react-native-tracker.subjectconfiguration.userid.md) | string | (Optional) Business-defined user ID for this user | + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.subjectconfiguration.networkuserid.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.subjectconfiguration.networkuserid.md index 4c42b01e1..94be46858 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.subjectconfiguration.networkuserid.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.subjectconfiguration.networkuserid.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SubjectConfiguration](./react-native-tracker.subjectconfiguration.md) > [networkUserId](./react-native-tracker.subjectconfiguration.networkuserid.md) - -## SubjectConfiguration.networkUserId property - -Override the network user id (UUIDv4) that is assigned by the collector and stored in cookies - -Signature: - -```typescript -networkUserId?: string; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SubjectConfiguration](./react-native-tracker.subjectconfiguration.md) > [networkUserId](./react-native-tracker.subjectconfiguration.networkuserid.md) + +## SubjectConfiguration.networkUserId property + +Override the network user id (UUIDv4) that is assigned by the collector and stored in cookies + +Signature: + +```typescript +networkUserId?: string; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.subjectconfiguration.screenresolution.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.subjectconfiguration.screenresolution.md index f1b73aa83..54cead3b9 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.subjectconfiguration.screenresolution.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.subjectconfiguration.screenresolution.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SubjectConfiguration](./react-native-tracker.subjectconfiguration.md) > [screenResolution](./react-native-tracker.subjectconfiguration.screenresolution.md) - -## SubjectConfiguration.screenResolution property - -The screen resolution - -Signature: - -```typescript -screenResolution?: ScreenSize; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SubjectConfiguration](./react-native-tracker.subjectconfiguration.md) > [screenResolution](./react-native-tracker.subjectconfiguration.screenresolution.md) + +## SubjectConfiguration.screenResolution property + +The screen resolution + +Signature: + +```typescript +screenResolution?: ScreenSize; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.subjectconfiguration.screenviewport.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.subjectconfiguration.screenviewport.md index c11f83539..76e8df0ac 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.subjectconfiguration.screenviewport.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.subjectconfiguration.screenviewport.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SubjectConfiguration](./react-native-tracker.subjectconfiguration.md) > [screenViewport](./react-native-tracker.subjectconfiguration.screenviewport.md) - -## SubjectConfiguration.screenViewport property - -The screen viewport size - -Signature: - -```typescript -screenViewport?: ScreenSize; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SubjectConfiguration](./react-native-tracker.subjectconfiguration.md) > [screenViewport](./react-native-tracker.subjectconfiguration.screenviewport.md) + +## SubjectConfiguration.screenViewport property + +The screen viewport size + +Signature: + +```typescript +screenViewport?: ScreenSize; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.subjectconfiguration.timezone.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.subjectconfiguration.timezone.md index 1ab2ab548..7e49640c4 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.subjectconfiguration.timezone.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.subjectconfiguration.timezone.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SubjectConfiguration](./react-native-tracker.subjectconfiguration.md) > [timezone](./react-native-tracker.subjectconfiguration.timezone.md) - -## SubjectConfiguration.timezone property - -The timezone label - -Signature: - -```typescript -timezone?: string; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SubjectConfiguration](./react-native-tracker.subjectconfiguration.md) > [timezone](./react-native-tracker.subjectconfiguration.timezone.md) + +## SubjectConfiguration.timezone property + +The timezone label + +Signature: + +```typescript +timezone?: string; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.subjectconfiguration.useragent.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.subjectconfiguration.useragent.md index be1a8767d..cca9bdc93 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.subjectconfiguration.useragent.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.subjectconfiguration.useragent.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SubjectConfiguration](./react-native-tracker.subjectconfiguration.md) > [useragent](./react-native-tracker.subjectconfiguration.useragent.md) - -## SubjectConfiguration.useragent property - -The custom user-agent. It overrides the user-agent used by default. - -Signature: - -```typescript -useragent?: string; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SubjectConfiguration](./react-native-tracker.subjectconfiguration.md) > [useragent](./react-native-tracker.subjectconfiguration.useragent.md) + +## SubjectConfiguration.useragent property + +The custom user-agent. It overrides the user-agent used by default. + +Signature: + +```typescript +useragent?: string; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.subjectconfiguration.userid.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.subjectconfiguration.userid.md index 3a70488d7..6a64efa57 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.subjectconfiguration.userid.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.subjectconfiguration.userid.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SubjectConfiguration](./react-native-tracker.subjectconfiguration.md) > [userId](./react-native-tracker.subjectconfiguration.userid.md) - -## SubjectConfiguration.userId property - -Business-defined user ID for this user - -Signature: - -```typescript -userId?: string; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [SubjectConfiguration](./react-native-tracker.subjectconfiguration.md) > [userId](./react-native-tracker.subjectconfiguration.userid.md) + +## SubjectConfiguration.userId property + +Business-defined user ID for this user + +Signature: + +```typescript +userId?: string; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.timestamp.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.timestamp.md index 06f816dae..015586490 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.timestamp.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.timestamp.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [Timestamp](./react-native-tracker.timestamp.md) - -## Timestamp type - -Algebraic datatype representing possible timestamp type choice - -Signature: - -```typescript -type Timestamp = TrueTimestamp | DeviceTimestamp | number; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [Timestamp](./react-native-tracker.timestamp.md) + +## Timestamp type + +Algebraic datatype representing possible timestamp type choice + +Signature: + +```typescript +type Timestamp = TrueTimestamp | DeviceTimestamp | number; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.timingprops.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.timingprops.md index 282ca2e29..6aaee34f7 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.timingprops.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.timingprops.md @@ -1,18 +1,18 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TimingProps](./react-native-tracker.timingprops.md) - -## TimingProps type - -Timing event properties - -Signature: - -```typescript -export declare type TimingProps = { - category: string; - variable: string; - timing: number; - label?: string; -}; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TimingProps](./react-native-tracker.timingprops.md) + +## TimingProps type + +Timing event properties + +Signature: + +```typescript +export declare type TimingProps = { + category: string; + variable: string; + timing: number; + label?: string; +}; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackerconfiguration.appid.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackerconfiguration.appid.md index 13447907b..fe9ce9c7b 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackerconfiguration.appid.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackerconfiguration.appid.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerConfiguration](./react-native-tracker.trackerconfiguration.md) > [appId](./react-native-tracker.trackerconfiguration.appid.md) - -## TrackerConfiguration.appId property - -The application ID - -Signature: - -```typescript -appId?: string; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerConfiguration](./react-native-tracker.trackerconfiguration.md) > [appId](./react-native-tracker.trackerconfiguration.appid.md) + +## TrackerConfiguration.appId property + +The application ID + +Signature: + +```typescript +appId?: string; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackerconfiguration.deviceplatform.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackerconfiguration.deviceplatform.md index 3f09b591e..524068eb4 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackerconfiguration.deviceplatform.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackerconfiguration.deviceplatform.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerConfiguration](./react-native-tracker.trackerconfiguration.md) > [devicePlatform](./react-native-tracker.trackerconfiguration.deviceplatform.md) - -## TrackerConfiguration.devicePlatform property - -The device platform the tracker runs on. - -Signature: - -```typescript -devicePlatform?: Platform; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerConfiguration](./react-native-tracker.trackerconfiguration.md) > [devicePlatform](./react-native-tracker.trackerconfiguration.deviceplatform.md) + +## TrackerConfiguration.devicePlatform property + +The device platform the tracker runs on. + +Signature: + +```typescript +devicePlatform?: Platform; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackerconfiguration.encodebase64.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackerconfiguration.encodebase64.md index 56eeacaa5..9e2fcafe8 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackerconfiguration.encodebase64.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackerconfiguration.encodebase64.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerConfiguration](./react-native-tracker.trackerconfiguration.md) > [encodeBase64](./react-native-tracker.trackerconfiguration.encodebase64.md) - -## TrackerConfiguration.encodeBase64 property - -Whether unstructured events and custom contexts should be base64 encoded. - -Signature: - -```typescript -encodeBase64?: boolean; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerConfiguration](./react-native-tracker.trackerconfiguration.md) > [encodeBase64](./react-native-tracker.trackerconfiguration.encodebase64.md) + +## TrackerConfiguration.encodeBase64 property + +Whether unstructured events and custom contexts should be base64 encoded. + +Signature: + +```typescript +encodeBase64?: boolean; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackerconfiguration.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackerconfiguration.md index b07a8275f..957545535 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackerconfiguration.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackerconfiguration.md @@ -1,24 +1,24 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerConfiguration](./react-native-tracker.trackerconfiguration.md) - -## TrackerConfiguration interface - -The configuration object for initialising the tracker - -Signature: - -```typescript -export interface TrackerConfiguration -``` - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [appId?](./react-native-tracker.trackerconfiguration.appid.md) | string | (Optional) The application ID | -| [devicePlatform?](./react-native-tracker.trackerconfiguration.deviceplatform.md) | Platform | (Optional) The device platform the tracker runs on. | -| [encodeBase64?](./react-native-tracker.trackerconfiguration.encodebase64.md) | boolean | (Optional) Whether unstructured events and custom contexts should be base64 encoded. | -| [namespace](./react-native-tracker.trackerconfiguration.namespace.md) | string | The namespace of the tracker | -| [plugins?](./react-native-tracker.trackerconfiguration.plugins.md) | BrowserPlugin\[\] | (Optional) Inject plugins which will be evaluated for each event | - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerConfiguration](./react-native-tracker.trackerconfiguration.md) + +## TrackerConfiguration interface + +The configuration object for initialising the tracker + +Signature: + +```typescript +export interface TrackerConfiguration +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [appId?](./react-native-tracker.trackerconfiguration.appid.md) | string | (Optional) The application ID | +| [devicePlatform?](./react-native-tracker.trackerconfiguration.deviceplatform.md) | Platform | (Optional) The device platform the tracker runs on. | +| [encodeBase64?](./react-native-tracker.trackerconfiguration.encodebase64.md) | boolean | (Optional) Whether unstructured events and custom contexts should be base64 encoded. | +| [namespace](./react-native-tracker.trackerconfiguration.namespace.md) | string | The namespace of the tracker | +| [plugins?](./react-native-tracker.trackerconfiguration.plugins.md) | BrowserPlugin\[\] | (Optional) Inject plugins which will be evaluated for each event | + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackerconfiguration.namespace.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackerconfiguration.namespace.md index 8c84330a8..dc1b7c27b 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackerconfiguration.namespace.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackerconfiguration.namespace.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerConfiguration](./react-native-tracker.trackerconfiguration.md) > [namespace](./react-native-tracker.trackerconfiguration.namespace.md) - -## TrackerConfiguration.namespace property - -The namespace of the tracker - -Signature: - -```typescript -namespace: string; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerConfiguration](./react-native-tracker.trackerconfiguration.md) > [namespace](./react-native-tracker.trackerconfiguration.namespace.md) + +## TrackerConfiguration.namespace property + +The namespace of the tracker + +Signature: + +```typescript +namespace: string; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackerconfiguration.plugins.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackerconfiguration.plugins.md index d627b5be3..747583695 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackerconfiguration.plugins.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackerconfiguration.plugins.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerConfiguration](./react-native-tracker.trackerconfiguration.md) > [plugins](./react-native-tracker.trackerconfiguration.plugins.md) - -## TrackerConfiguration.plugins property - -Inject plugins which will be evaluated for each event - -Signature: - -```typescript -plugins?: BrowserPlugin[]; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerConfiguration](./react-native-tracker.trackerconfiguration.md) > [plugins](./react-native-tracker.trackerconfiguration.plugins.md) + +## TrackerConfiguration.plugins property + +Inject plugins which will be evaluated for each event + +Signature: + +```typescript +plugins?: BrowserPlugin[]; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.addglobalcontexts.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.addglobalcontexts.md index 4f5ff425e..4d7ef62ba 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.addglobalcontexts.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.addglobalcontexts.md @@ -1,24 +1,24 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [addGlobalContexts](./react-native-tracker.trackercore.addglobalcontexts.md) - -## TrackerCore.addGlobalContexts() method - -Adds contexts globally, contexts added here will be attached to all applicable events - -Signature: - -```typescript -addGlobalContexts(contexts: Array | Record): void; -``` - -## Parameters - -| Parameter | Type | Description | -| --- | --- | --- | -| contexts | Array<ConditionalContextProvider \| ContextPrimitive> \| Record<string, ConditionalContextProvider \| ContextPrimitive> | An array containing either contexts or a conditional contexts | - -Returns: - -void - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [addGlobalContexts](./react-native-tracker.trackercore.addglobalcontexts.md) + +## TrackerCore.addGlobalContexts() method + +Adds contexts globally, contexts added here will be attached to all applicable events + +Signature: + +```typescript +addGlobalContexts(contexts: Array | Record): void; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| contexts | Array<ConditionalContextProvider \| ContextPrimitive> \| Record<string, ConditionalContextProvider \| ContextPrimitive> | An array containing either contexts or a conditional contexts | + +Returns: + +void + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.addpayloaddict.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.addpayloaddict.md index f9ad49e94..5c5affebf 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.addpayloaddict.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.addpayloaddict.md @@ -1,24 +1,24 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [addPayloadDict](./react-native-tracker.trackercore.addpayloaddict.md) - -## TrackerCore.addPayloadDict() method - -Merges a dictionary into payloadPairs - -Signature: - -```typescript -addPayloadDict(dict: Payload): void; -``` - -## Parameters - -| Parameter | Type | Description | -| --- | --- | --- | -| dict | Payload | Adds a new payload dictionary to the existing one | - -Returns: - -void - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [addPayloadDict](./react-native-tracker.trackercore.addpayloaddict.md) + +## TrackerCore.addPayloadDict() method + +Merges a dictionary into payloadPairs + +Signature: + +```typescript +addPayloadDict(dict: Payload): void; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| dict | Payload | Adds a new payload dictionary to the existing one | + +Returns: + +void + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.addpayloadpair.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.addpayloadpair.md index b59b8b165..9de08f3da 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.addpayloadpair.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.addpayloadpair.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [addPayloadPair](./react-native-tracker.trackercore.addpayloadpair.md) - -## TrackerCore.addPayloadPair property - -Set a persistent key-value pair to be added to every payload - -Signature: - -```typescript -addPayloadPair: (key: string, value: unknown) => void; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [addPayloadPair](./react-native-tracker.trackercore.addpayloadpair.md) + +## TrackerCore.addPayloadPair property + +Set a persistent key-value pair to be added to every payload + +Signature: + +```typescript +addPayloadPair: (key: string, value: unknown) => void; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.addplugin.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.addplugin.md index 3dec45051..1df2fa1a7 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.addplugin.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.addplugin.md @@ -1,24 +1,24 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [addPlugin](./react-native-tracker.trackercore.addplugin.md) - -## TrackerCore.addPlugin() method - -Add a plugin into the plugin collection after Core has already been initialised - -Signature: - -```typescript -addPlugin(configuration: CorePluginConfiguration): void; -``` - -## Parameters - -| Parameter | Type | Description | -| --- | --- | --- | -| configuration | CorePluginConfiguration | The plugin to add | - -Returns: - -void - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [addPlugin](./react-native-tracker.trackercore.addplugin.md) + +## TrackerCore.addPlugin() method + +Add a plugin into the plugin collection after Core has already been initialised + +Signature: + +```typescript +addPlugin(configuration: CorePluginConfiguration): void; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| configuration | CorePluginConfiguration | The plugin to add | + +Returns: + +void + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.clearglobalcontexts.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.clearglobalcontexts.md index cbcd1a7d6..35a7fce36 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.clearglobalcontexts.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.clearglobalcontexts.md @@ -1,17 +1,17 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [clearGlobalContexts](./react-native-tracker.trackercore.clearglobalcontexts.md) - -## TrackerCore.clearGlobalContexts() method - -Removes all global contexts - -Signature: - -```typescript -clearGlobalContexts(): void; -``` -Returns: - -void - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [clearGlobalContexts](./react-native-tracker.trackercore.clearglobalcontexts.md) + +## TrackerCore.clearGlobalContexts() method + +Removes all global contexts + +Signature: + +```typescript +clearGlobalContexts(): void; +``` +Returns: + +void + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.deactivate.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.deactivate.md index a06091c47..cb5771396 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.deactivate.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.deactivate.md @@ -1,17 +1,17 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [deactivate](./react-native-tracker.trackercore.deactivate.md) - -## TrackerCore.deactivate() method - -Deactivate tracker core including all plugins. This is useful for cleaning up resources or listeners that have been created. Once deactivated, the tracker won't be able to track any events. - -Signature: - -```typescript -deactivate(): void; -``` -Returns: - -void - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [deactivate](./react-native-tracker.trackercore.deactivate.md) + +## TrackerCore.deactivate() method + +Deactivate tracker core including all plugins. This is useful for cleaning up resources or listeners that have been created. Once deactivated, the tracker won't be able to track any events. + +Signature: + +```typescript +deactivate(): void; +``` +Returns: + +void + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.getbase64encoding.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.getbase64encoding.md index 649c6d1cc..6398bf5b1 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.getbase64encoding.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.getbase64encoding.md @@ -1,17 +1,17 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [getBase64Encoding](./react-native-tracker.trackercore.getbase64encoding.md) - -## TrackerCore.getBase64Encoding() method - -Get current base64 encoding state - -Signature: - -```typescript -getBase64Encoding(): boolean; -``` -Returns: - -boolean - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [getBase64Encoding](./react-native-tracker.trackercore.getbase64encoding.md) + +## TrackerCore.getBase64Encoding() method + +Get current base64 encoding state + +Signature: + +```typescript +getBase64Encoding(): boolean; +``` +Returns: + +boolean + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.md index de989a360..d2e490b5c 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.md @@ -1,47 +1,47 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) - -## TrackerCore interface - -Export interface containing all Core functions - -Signature: - -```typescript -interface TrackerCore -``` - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [addPayloadPair](./react-native-tracker.trackercore.addpayloadpair.md) | (key: string, value: unknown) => void | Set a persistent key-value pair to be added to every payload | -| [track](./react-native-tracker.trackercore.track.md) | (pb: PayloadBuilder, context?: Array<SelfDescribingJson> \| null, timestamp?: Timestamp \| null) => Payload \| undefined | Call with a payload from a buildX function Adds context and payloadPairs name-value pairs to the payload Applies the callback to the built payload | - -## Methods - -| Method | Description | -| --- | --- | -| [addGlobalContexts(contexts)](./react-native-tracker.trackercore.addglobalcontexts.md) | Adds contexts globally, contexts added here will be attached to all applicable events | -| [addPayloadDict(dict)](./react-native-tracker.trackercore.addpayloaddict.md) | Merges a dictionary into payloadPairs | -| [addPlugin(configuration)](./react-native-tracker.trackercore.addplugin.md) | Add a plugin into the plugin collection after Core has already been initialised | -| [clearGlobalContexts()](./react-native-tracker.trackercore.clearglobalcontexts.md) | Removes all global contexts | -| [deactivate()](./react-native-tracker.trackercore.deactivate.md) | Deactivate tracker core including all plugins. This is useful for cleaning up resources or listeners that have been created. Once deactivated, the tracker won't be able to track any events. | -| [getBase64Encoding()](./react-native-tracker.trackercore.getbase64encoding.md) | Get current base64 encoding state | -| [removeGlobalContexts(contexts)](./react-native-tracker.trackercore.removeglobalcontexts.md) | Removes previously added global context, performs a deep comparison of the contexts or conditional contexts | -| [resetPayloadPairs(dict)](./react-native-tracker.trackercore.resetpayloadpairs.md) | Replace payloadPairs with a new dictionary | -| [setAppId(appId)](./react-native-tracker.trackercore.setappid.md) | Set the application ID | -| [setBase64Encoding(encode)](./react-native-tracker.trackercore.setbase64encoding.md) | Turn base 64 encoding on or off | -| [setColorDepth(depth)](./react-native-tracker.trackercore.setcolordepth.md) | Set the color depth | -| [setIpAddress(ip)](./react-native-tracker.trackercore.setipaddress.md) | Set the IP address | -| [setLang(lang)](./react-native-tracker.trackercore.setlang.md) | Set the language | -| [setPlatform(value)](./react-native-tracker.trackercore.setplatform.md) | Set the platform | -| [setScreenResolution(width, height)](./react-native-tracker.trackercore.setscreenresolution.md) | Set the screen resolution | -| [setTimezone(timezone)](./react-native-tracker.trackercore.settimezone.md) | Set the timezone | -| [setTrackerNamespace(name)](./react-native-tracker.trackercore.settrackernamespace.md) | Set the tracker namespace | -| [setTrackerVersion(version)](./react-native-tracker.trackercore.settrackerversion.md) | Set the tracker version | -| [setUseragent(useragent)](./react-native-tracker.trackercore.setuseragent.md) | Set the Useragent | -| [setUserId(userId)](./react-native-tracker.trackercore.setuserid.md) | Set the user ID | -| [setViewport(width, height)](./react-native-tracker.trackercore.setviewport.md) | Set the viewport dimensions | - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) + +## TrackerCore interface + +Export interface containing all Core functions + +Signature: + +```typescript +interface TrackerCore +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [addPayloadPair](./react-native-tracker.trackercore.addpayloadpair.md) | (key: string, value: unknown) => void | Set a persistent key-value pair to be added to every payload | +| [track](./react-native-tracker.trackercore.track.md) | (pb: PayloadBuilder, context?: Array<SelfDescribingJson> \| null, timestamp?: Timestamp \| null) => Payload \| undefined | Call with a payload from a buildX function Adds context and payloadPairs name-value pairs to the payload Applies the callback to the built payload | + +## Methods + +| Method | Description | +| --- | --- | +| [addGlobalContexts(contexts)](./react-native-tracker.trackercore.addglobalcontexts.md) | Adds contexts globally, contexts added here will be attached to all applicable events | +| [addPayloadDict(dict)](./react-native-tracker.trackercore.addpayloaddict.md) | Merges a dictionary into payloadPairs | +| [addPlugin(configuration)](./react-native-tracker.trackercore.addplugin.md) | Add a plugin into the plugin collection after Core has already been initialised | +| [clearGlobalContexts()](./react-native-tracker.trackercore.clearglobalcontexts.md) | Removes all global contexts | +| [deactivate()](./react-native-tracker.trackercore.deactivate.md) | Deactivate tracker core including all plugins. This is useful for cleaning up resources or listeners that have been created. Once deactivated, the tracker won't be able to track any events. | +| [getBase64Encoding()](./react-native-tracker.trackercore.getbase64encoding.md) | Get current base64 encoding state | +| [removeGlobalContexts(contexts)](./react-native-tracker.trackercore.removeglobalcontexts.md) | Removes previously added global context, performs a deep comparison of the contexts or conditional contexts | +| [resetPayloadPairs(dict)](./react-native-tracker.trackercore.resetpayloadpairs.md) | Replace payloadPairs with a new dictionary | +| [setAppId(appId)](./react-native-tracker.trackercore.setappid.md) | Set the application ID | +| [setBase64Encoding(encode)](./react-native-tracker.trackercore.setbase64encoding.md) | Turn base 64 encoding on or off | +| [setColorDepth(depth)](./react-native-tracker.trackercore.setcolordepth.md) | Set the color depth | +| [setIpAddress(ip)](./react-native-tracker.trackercore.setipaddress.md) | Set the IP address | +| [setLang(lang)](./react-native-tracker.trackercore.setlang.md) | Set the language | +| [setPlatform(value)](./react-native-tracker.trackercore.setplatform.md) | Set the platform | +| [setScreenResolution(width, height)](./react-native-tracker.trackercore.setscreenresolution.md) | Set the screen resolution | +| [setTimezone(timezone)](./react-native-tracker.trackercore.settimezone.md) | Set the timezone | +| [setTrackerNamespace(name)](./react-native-tracker.trackercore.settrackernamespace.md) | Set the tracker namespace | +| [setTrackerVersion(version)](./react-native-tracker.trackercore.settrackerversion.md) | Set the tracker version | +| [setUseragent(useragent)](./react-native-tracker.trackercore.setuseragent.md) | Set the Useragent | +| [setUserId(userId)](./react-native-tracker.trackercore.setuserid.md) | Set the user ID | +| [setViewport(width, height)](./react-native-tracker.trackercore.setviewport.md) | Set the viewport dimensions | + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.removeglobalcontexts.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.removeglobalcontexts.md index 312545756..c34c36ae9 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.removeglobalcontexts.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.removeglobalcontexts.md @@ -1,24 +1,24 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [removeGlobalContexts](./react-native-tracker.trackercore.removeglobalcontexts.md) - -## TrackerCore.removeGlobalContexts() method - -Removes previously added global context, performs a deep comparison of the contexts or conditional contexts - -Signature: - -```typescript -removeGlobalContexts(contexts: Array): void; -``` - -## Parameters - -| Parameter | Type | Description | -| --- | --- | --- | -| contexts | Array<ConditionalContextProvider \| ContextPrimitive \| string> | An array containing either contexts or a conditional contexts | - -Returns: - -void - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [removeGlobalContexts](./react-native-tracker.trackercore.removeglobalcontexts.md) + +## TrackerCore.removeGlobalContexts() method + +Removes previously added global context, performs a deep comparison of the contexts or conditional contexts + +Signature: + +```typescript +removeGlobalContexts(contexts: Array): void; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| contexts | Array<ConditionalContextProvider \| ContextPrimitive \| string> | An array containing either contexts or a conditional contexts | + +Returns: + +void + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.resetpayloadpairs.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.resetpayloadpairs.md index 402ee5bbe..7aa688a02 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.resetpayloadpairs.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.resetpayloadpairs.md @@ -1,24 +1,24 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [resetPayloadPairs](./react-native-tracker.trackercore.resetpayloadpairs.md) - -## TrackerCore.resetPayloadPairs() method - -Replace payloadPairs with a new dictionary - -Signature: - -```typescript -resetPayloadPairs(dict: Payload): void; -``` - -## Parameters - -| Parameter | Type | Description | -| --- | --- | --- | -| dict | Payload | Resets all current payload pairs with a new dictionary of pairs | - -Returns: - -void - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [resetPayloadPairs](./react-native-tracker.trackercore.resetpayloadpairs.md) + +## TrackerCore.resetPayloadPairs() method + +Replace payloadPairs with a new dictionary + +Signature: + +```typescript +resetPayloadPairs(dict: Payload): void; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| dict | Payload | Resets all current payload pairs with a new dictionary of pairs | + +Returns: + +void + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.setappid.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.setappid.md index 921c5a0b2..abd0a93a1 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.setappid.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.setappid.md @@ -1,24 +1,24 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [setAppId](./react-native-tracker.trackercore.setappid.md) - -## TrackerCore.setAppId() method - -Set the application ID - -Signature: - -```typescript -setAppId(appId: string): void; -``` - -## Parameters - -| Parameter | Type | Description | -| --- | --- | --- | -| appId | string | An application ID which identifies the current application | - -Returns: - -void - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [setAppId](./react-native-tracker.trackercore.setappid.md) + +## TrackerCore.setAppId() method + +Set the application ID + +Signature: + +```typescript +setAppId(appId: string): void; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| appId | string | An application ID which identifies the current application | + +Returns: + +void + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.setbase64encoding.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.setbase64encoding.md index 3f971b11a..dba55d738 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.setbase64encoding.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.setbase64encoding.md @@ -1,24 +1,24 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [setBase64Encoding](./react-native-tracker.trackercore.setbase64encoding.md) - -## TrackerCore.setBase64Encoding() method - -Turn base 64 encoding on or off - -Signature: - -```typescript -setBase64Encoding(encode: boolean): void; -``` - -## Parameters - -| Parameter | Type | Description | -| --- | --- | --- | -| encode | boolean | Whether to encode payload | - -Returns: - -void - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [setBase64Encoding](./react-native-tracker.trackercore.setbase64encoding.md) + +## TrackerCore.setBase64Encoding() method + +Turn base 64 encoding on or off + +Signature: + +```typescript +setBase64Encoding(encode: boolean): void; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| encode | boolean | Whether to encode payload | + +Returns: + +void + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.setcolordepth.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.setcolordepth.md index 19811d2e2..112999575 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.setcolordepth.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.setcolordepth.md @@ -1,24 +1,24 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [setColorDepth](./react-native-tracker.trackercore.setcolordepth.md) - -## TrackerCore.setColorDepth() method - -Set the color depth - -Signature: - -```typescript -setColorDepth(depth: string): void; -``` - -## Parameters - -| Parameter | Type | Description | -| --- | --- | --- | -| depth | string | A color depth value as string | - -Returns: - -void - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [setColorDepth](./react-native-tracker.trackercore.setcolordepth.md) + +## TrackerCore.setColorDepth() method + +Set the color depth + +Signature: + +```typescript +setColorDepth(depth: string): void; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| depth | string | A color depth value as string | + +Returns: + +void + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.setipaddress.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.setipaddress.md index 68290e74e..31498859f 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.setipaddress.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.setipaddress.md @@ -1,24 +1,24 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [setIpAddress](./react-native-tracker.trackercore.setipaddress.md) - -## TrackerCore.setIpAddress() method - -Set the IP address - -Signature: - -```typescript -setIpAddress(ip: string): void; -``` - -## Parameters - -| Parameter | Type | Description | -| --- | --- | --- | -| ip | string | An IP Address string | - -Returns: - -void - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [setIpAddress](./react-native-tracker.trackercore.setipaddress.md) + +## TrackerCore.setIpAddress() method + +Set the IP address + +Signature: + +```typescript +setIpAddress(ip: string): void; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| ip | string | An IP Address string | + +Returns: + +void + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.setlang.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.setlang.md index 49feb614c..7100dc2ee 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.setlang.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.setlang.md @@ -1,24 +1,24 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [setLang](./react-native-tracker.trackercore.setlang.md) - -## TrackerCore.setLang() method - -Set the language - -Signature: - -```typescript -setLang(lang: string): void; -``` - -## Parameters - -| Parameter | Type | Description | -| --- | --- | --- | -| lang | string | A language string e.g. 'en-UK' | - -Returns: - -void - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [setLang](./react-native-tracker.trackercore.setlang.md) + +## TrackerCore.setLang() method + +Set the language + +Signature: + +```typescript +setLang(lang: string): void; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| lang | string | A language string e.g. 'en-UK' | + +Returns: + +void + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.setplatform.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.setplatform.md index 3c0a7be84..6c1ba1297 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.setplatform.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.setplatform.md @@ -1,24 +1,24 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [setPlatform](./react-native-tracker.trackercore.setplatform.md) - -## TrackerCore.setPlatform() method - -Set the platform - -Signature: - -```typescript -setPlatform(value: string): void; -``` - -## Parameters - -| Parameter | Type | Description | -| --- | --- | --- | -| value | string | A valid Snowplow platform value | - -Returns: - -void - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [setPlatform](./react-native-tracker.trackercore.setplatform.md) + +## TrackerCore.setPlatform() method + +Set the platform + +Signature: + +```typescript +setPlatform(value: string): void; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| value | string | A valid Snowplow platform value | + +Returns: + +void + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.setscreenresolution.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.setscreenresolution.md index 9bf2a6142..b24ab49f7 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.setscreenresolution.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.setscreenresolution.md @@ -1,25 +1,25 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [setScreenResolution](./react-native-tracker.trackercore.setscreenresolution.md) - -## TrackerCore.setScreenResolution() method - -Set the screen resolution - -Signature: - -```typescript -setScreenResolution(width: string, height: string): void; -``` - -## Parameters - -| Parameter | Type | Description | -| --- | --- | --- | -| width | string | screen resolution width | -| height | string | screen resolution height | - -Returns: - -void - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [setScreenResolution](./react-native-tracker.trackercore.setscreenresolution.md) + +## TrackerCore.setScreenResolution() method + +Set the screen resolution + +Signature: + +```typescript +setScreenResolution(width: string, height: string): void; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| width | string | screen resolution width | +| height | string | screen resolution height | + +Returns: + +void + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.settimezone.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.settimezone.md index 2712dbae0..3268c1374 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.settimezone.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.settimezone.md @@ -1,24 +1,24 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [setTimezone](./react-native-tracker.trackercore.settimezone.md) - -## TrackerCore.setTimezone() method - -Set the timezone - -Signature: - -```typescript -setTimezone(timezone: string): void; -``` - -## Parameters - -| Parameter | Type | Description | -| --- | --- | --- | -| timezone | string | A timezone string | - -Returns: - -void - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [setTimezone](./react-native-tracker.trackercore.settimezone.md) + +## TrackerCore.setTimezone() method + +Set the timezone + +Signature: + +```typescript +setTimezone(timezone: string): void; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| timezone | string | A timezone string | + +Returns: + +void + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.settrackernamespace.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.settrackernamespace.md index 1524468f4..a07eb93af 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.settrackernamespace.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.settrackernamespace.md @@ -1,24 +1,24 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [setTrackerNamespace](./react-native-tracker.trackercore.settrackernamespace.md) - -## TrackerCore.setTrackerNamespace() method - -Set the tracker namespace - -Signature: - -```typescript -setTrackerNamespace(name: string): void; -``` - -## Parameters - -| Parameter | Type | Description | -| --- | --- | --- | -| name | string | The trackers namespace | - -Returns: - -void - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [setTrackerNamespace](./react-native-tracker.trackercore.settrackernamespace.md) + +## TrackerCore.setTrackerNamespace() method + +Set the tracker namespace + +Signature: + +```typescript +setTrackerNamespace(name: string): void; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| name | string | The trackers namespace | + +Returns: + +void + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.settrackerversion.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.settrackerversion.md index acc315981..a2abc9b95 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.settrackerversion.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.settrackerversion.md @@ -1,24 +1,24 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [setTrackerVersion](./react-native-tracker.trackercore.settrackerversion.md) - -## TrackerCore.setTrackerVersion() method - -Set the tracker version - -Signature: - -```typescript -setTrackerVersion(version: string): void; -``` - -## Parameters - -| Parameter | Type | Description | -| --- | --- | --- | -| version | string | The version of the current tracker | - -Returns: - -void - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [setTrackerVersion](./react-native-tracker.trackercore.settrackerversion.md) + +## TrackerCore.setTrackerVersion() method + +Set the tracker version + +Signature: + +```typescript +setTrackerVersion(version: string): void; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| version | string | The version of the current tracker | + +Returns: + +void + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.setuseragent.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.setuseragent.md index f552ab06a..eb86f389d 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.setuseragent.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.setuseragent.md @@ -1,24 +1,24 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [setUseragent](./react-native-tracker.trackercore.setuseragent.md) - -## TrackerCore.setUseragent() method - -Set the Useragent - -Signature: - -```typescript -setUseragent(useragent: string): void; -``` - -## Parameters - -| Parameter | Type | Description | -| --- | --- | --- | -| useragent | string | A useragent string | - -Returns: - -void - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [setUseragent](./react-native-tracker.trackercore.setuseragent.md) + +## TrackerCore.setUseragent() method + +Set the Useragent + +Signature: + +```typescript +setUseragent(useragent: string): void; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| useragent | string | A useragent string | + +Returns: + +void + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.setuserid.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.setuserid.md index 102cd8a30..e0b1a998c 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.setuserid.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.setuserid.md @@ -1,24 +1,24 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [setUserId](./react-native-tracker.trackercore.setuserid.md) - -## TrackerCore.setUserId() method - -Set the user ID - -Signature: - -```typescript -setUserId(userId: string): void; -``` - -## Parameters - -| Parameter | Type | Description | -| --- | --- | --- | -| userId | string | The custom user id | - -Returns: - -void - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [setUserId](./react-native-tracker.trackercore.setuserid.md) + +## TrackerCore.setUserId() method + +Set the user ID + +Signature: + +```typescript +setUserId(userId: string): void; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| userId | string | The custom user id | + +Returns: + +void + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.setviewport.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.setviewport.md index a5c8fb08c..b7fffbf25 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.setviewport.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.setviewport.md @@ -1,25 +1,25 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [setViewport](./react-native-tracker.trackercore.setviewport.md) - -## TrackerCore.setViewport() method - -Set the viewport dimensions - -Signature: - -```typescript -setViewport(width: string, height: string): void; -``` - -## Parameters - -| Parameter | Type | Description | -| --- | --- | --- | -| width | string | viewport width | -| height | string | viewport height | - -Returns: - -void - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [setViewport](./react-native-tracker.trackercore.setviewport.md) + +## TrackerCore.setViewport() method + +Set the viewport dimensions + +Signature: + +```typescript +setViewport(width: string, height: string): void; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| width | string | viewport width | +| height | string | viewport height | + +Returns: + +void + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.track.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.track.md index 3d6a09f48..c6787defc 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.track.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trackercore.track.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [track](./react-native-tracker.trackercore.track.md) - -## TrackerCore.track property - -Call with a payload from a buildX function Adds context and payloadPairs name-value pairs to the payload Applies the callback to the built payload - -Signature: - -```typescript -track: (pb: PayloadBuilder, context?: Array | null, timestamp?: Timestamp | null) => Payload | undefined; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrackerCore](./react-native-tracker.trackercore.md) > [track](./react-native-tracker.trackercore.track.md) + +## TrackerCore.track property + +Call with a payload from a buildX function Adds context and payloadPairs name-value pairs to the payload Applies the callback to the built payload + +Signature: + +```typescript +track: (pb: PayloadBuilder, context?: Array | null, timestamp?: Timestamp | null) => Payload | undefined; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trigger.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trigger.md index d9fc36aed..649a12dbe 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trigger.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.trigger.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [Trigger](./react-native-tracker.trigger.md) - -## Trigger type - -Trigger for MessageNotification event - -Signature: - -```typescript -export declare type Trigger = 'push' | 'location' | 'calendar' | 'timeInterval' | 'other'; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [Trigger](./react-native-tracker.trigger.md) + +## Trigger type + +Trigger for MessageNotification event + +Signature: + +```typescript +export declare type Trigger = 'push' | 'location' | 'calendar' | 'timeInterval' | 'other'; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.truetimestamp.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.truetimestamp.md index f0e32aae3..5f72c3dc2 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.truetimestamp.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.truetimestamp.md @@ -1,21 +1,21 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrueTimestamp](./react-native-tracker.truetimestamp.md) - -## TrueTimestamp interface - -A representation of a True Timestamp (ttm) - -Signature: - -```typescript -interface TrueTimestamp -``` - -## Properties - -| Property | Type | Description | -| --- | --- | --- | -| [type](./react-native-tracker.truetimestamp.type.md) | "ttm" | | -| [value](./react-native-tracker.truetimestamp.value.md) | number | | - + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrueTimestamp](./react-native-tracker.truetimestamp.md) + +## TrueTimestamp interface + +A representation of a True Timestamp (ttm) + +Signature: + +```typescript +interface TrueTimestamp +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [type](./react-native-tracker.truetimestamp.type.md) | "ttm" | | +| [value](./react-native-tracker.truetimestamp.value.md) | number | | + diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.truetimestamp.type.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.truetimestamp.type.md index 3f2c1ad60..0c5f08f1d 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.truetimestamp.type.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.truetimestamp.type.md @@ -1,11 +1,11 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrueTimestamp](./react-native-tracker.truetimestamp.md) > [type](./react-native-tracker.truetimestamp.type.md) - -## TrueTimestamp.type property - -Signature: - -```typescript -readonly type: "ttm"; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrueTimestamp](./react-native-tracker.truetimestamp.md) > [type](./react-native-tracker.truetimestamp.type.md) + +## TrueTimestamp.type property + +Signature: + +```typescript +readonly type: "ttm"; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.truetimestamp.value.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.truetimestamp.value.md index 2e9a4b33f..0adbe9cae 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.truetimestamp.value.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.truetimestamp.value.md @@ -1,11 +1,11 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrueTimestamp](./react-native-tracker.truetimestamp.md) > [value](./react-native-tracker.truetimestamp.value.md) - -## TrueTimestamp.value property - -Signature: - -```typescript -readonly value: number; -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [TrueTimestamp](./react-native-tracker.truetimestamp.md) > [value](./react-native-tracker.truetimestamp.value.md) + +## TrueTimestamp.value property + +Signature: + +```typescript +readonly value: number; +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.version.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.version.md index 253881f68..2614e08f0 100644 --- a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.version.md +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.version.md @@ -1,11 +1,11 @@ - - -[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [version](./react-native-tracker.version.md) - -## version variable - -Signature: - -```typescript -version: string -``` + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [version](./react-native-tracker.version.md) + +## version variable + +Signature: + +```typescript +version: string +``` diff --git a/api-docs/docs/react-native-tracker/markdown/react-native-tracker.webviewmessagehandler.md b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.webviewmessagehandler.md new file mode 100644 index 000000000..3d556a1b0 --- /dev/null +++ b/api-docs/docs/react-native-tracker/markdown/react-native-tracker.webviewmessagehandler.md @@ -0,0 +1,17 @@ + + +[Home](./index.md) > [@snowplow/react-native-tracker](./react-native-tracker.md) > [WebViewMessageHandler](./react-native-tracker.webviewmessagehandler.md) + +## WebViewMessageHandler type + +A callback to be used for the `onMessage` prop of a `WebView` component. + +Signature: + +```typescript +export declare type WebViewMessageHandler = (message: { + nativeEvent: { + data: string; + }; +}) => void; +``` diff --git a/api-docs/docs/react-native-tracker/react-native-tracker.api.md b/api-docs/docs/react-native-tracker/react-native-tracker.api.md index 305ca7f86..f362c5679 100644 --- a/api-docs/docs/react-native-tracker/react-native-tracker.api.md +++ b/api-docs/docs/react-native-tracker/react-native-tracker.api.md @@ -120,6 +120,7 @@ export interface EmitterConfiguration extends EmitterConfigurationBase { export interface EmitterConfigurationBase { bufferSize?: number; connectionTimeout?: number; + cookieExtensionService?: string; credentials?: "omit" | "same-origin" | "include"; customFetch?: (input: Request, options?: RequestInit) => Promise; customHeaders?: Record; @@ -127,6 +128,7 @@ export interface EmitterConfigurationBase { eventMethod?: EventMethod; // Warning: (ae-forgotten-export) The symbol "EventStore" needs to be exported by the entry point index.d.ts eventStore?: EventStore; + // @deprecated (undocumented) idService?: string; keepalive?: boolean; maxGetBytes?: number; @@ -207,11 +209,7 @@ export function getAllTrackers(): ReactNativeTracker[]; export function getTracker(trackerNamespace: string): ReactNativeTracker | undefined; // @public -export function getWebViewCallback(): (message: { - nativeEvent: { - data: string; - }; -}) => void; +export function getWebViewCallback(): WebViewMessageHandler; // @public export type JsonProcessor = (payloadBuilder: PayloadBuilder, jsonForProcessing: EventJson, contextEntitiesForProcessing: SelfDescribingJson[]) => void; @@ -562,6 +560,13 @@ export interface TrueTimestamp { // @public (undocumented) export const version: string; +// @public +export type WebViewMessageHandler = (message: { + nativeEvent: { + data: string; + }; +}) => void; + // (No @packageDocumentation comment for this package) ``` diff --git a/api-docs/docusaurus.config.js b/api-docs/docusaurus.config.js index 3c37c193c..7573216a1 100644 --- a/api-docs/docusaurus.config.js +++ b/api-docs/docusaurus.config.js @@ -10,7 +10,7 @@ import { themes as prismThemes } from 'prism-react-renderer'; const config = { title: 'Snowplow Javascript API Docs', favicon: 'img/favicon.ico', - url: 'http://snowplow.github.io/', + url: 'http://snowplow.github.io', baseUrl: '/snowplow-javascript-tracker/', organizationName: 'snowplow', projectName: 'snowplow-javascript-tracker', @@ -62,7 +62,7 @@ const config = { items: [ { label: 'Snowplow JS Docs', - to: 'https://docs.snowplow.io/docs/collecting-data/collecting-from-own-applications/javascript-trackers/', + to: 'https://docs.snowplow.io/docs/sources/trackers/web-trackers/', }, ], }, @@ -70,8 +70,8 @@ const config = { title: 'Community', items: [ { - label: 'Discourse', - href: 'https://discourse.snowplow.io/', + label: 'Community', + href: 'https://community.snowplow.io/', }, { label: 'Website', diff --git a/api-docs/package-lock.json b/api-docs/package-lock.json index 90f710db5..694fffc0e 100644 --- a/api-docs/package-lock.json +++ b/api-docs/package-lock.json @@ -9,8 +9,8 @@ "version": "0.0.0", "license": "ISC", "dependencies": { - "@docusaurus/core": "3.4.0", - "@docusaurus/preset-classic": "3.4.0", + "@docusaurus/core": "3.10.0", + "@docusaurus/preset-classic": "3.10.0", "@mdx-js/react": "^3.0.1", "clsx": "^1.2.1", "prism-react-renderer": "^2.3.1", @@ -18,303 +18,285 @@ "react-dom": "^18.3.1" }, "devDependencies": { - "@docusaurus/module-type-aliases": "3.4.0", - "@docusaurus/types": "3.4.0" + "@docusaurus/module-type-aliases": "3.10.0", + "@docusaurus/types": "3.10.0" }, "engines": { "node": ">=18.0" } }, - "node_modules/@algolia/autocomplete-core": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.9.3.tgz", - "integrity": "sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==", + "node_modules/@algolia/abtesting": { + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/@algolia/abtesting/-/abtesting-1.16.2.tgz", + "integrity": "sha512-n9s6bEV6imdtIEd+BGP7WkA4pEZ5YTdgQ05JQhHwWawHg3hyjpNwC0TShGz6zWhv+jfLDGA/6FFNbySFS0P9cw==", + "license": "MIT", "dependencies": { - "@algolia/autocomplete-plugin-algolia-insights": "1.9.3", - "@algolia/autocomplete-shared": "1.9.3" + "@algolia/client-common": "5.50.2", + "@algolia/requester-browser-xhr": "5.50.2", + "@algolia/requester-fetch": "5.50.2", + "@algolia/requester-node-http": "5.50.2" + }, + "engines": { + "node": ">= 14.0.0" } }, - "node_modules/@algolia/autocomplete-plugin-algolia-insights": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.9.3.tgz", - "integrity": "sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==", + "node_modules/@algolia/autocomplete-core": { + "version": "1.19.8", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.19.8.tgz", + "integrity": "sha512-3YEorYg44niXcm7gkft3nXYItHd44e8tmh4D33CTszPgP0QWkaLEaFywiNyJBo7UL/mqObA/G9RYuU7R8tN1IA==", + "license": "MIT", "dependencies": { - "@algolia/autocomplete-shared": "1.9.3" - }, - "peerDependencies": { - "search-insights": ">= 1 < 3" + "@algolia/autocomplete-plugin-algolia-insights": "1.19.8", + "@algolia/autocomplete-shared": "1.19.8" } }, - "node_modules/@algolia/autocomplete-preset-algolia": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.9.3.tgz", - "integrity": "sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==", + "node_modules/@algolia/autocomplete-plugin-algolia-insights": { + "version": "1.19.8", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.19.8.tgz", + "integrity": "sha512-ZvJWO8ZZJDpc1LNM2TTBdmQsZBLMR4rU5iNR2OYvEeFBiaf/0ESnRSSLQbryarJY4SVxtoz6A2ZtDMNM+iQEAA==", + "license": "MIT", "dependencies": { - "@algolia/autocomplete-shared": "1.9.3" + "@algolia/autocomplete-shared": "1.19.8" }, "peerDependencies": { - "@algolia/client-search": ">= 4.9.1 < 6", - "algoliasearch": ">= 4.9.1 < 6" + "search-insights": ">= 1 < 3" } }, "node_modules/@algolia/autocomplete-shared": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.9.3.tgz", - "integrity": "sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==", + "version": "1.19.8", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.19.8.tgz", + "integrity": "sha512-h5hf2t8ejF6vlOgvLaZzQbWs5SyH2z4PAWygNAvvD/2RI29hdQ54ldUGwqVuj9Srs+n8XUKTPUqb7fvhBhQrnQ==", + "license": "MIT", "peerDependencies": { "@algolia/client-search": ">= 4.9.1 < 6", "algoliasearch": ">= 4.9.1 < 6" } }, - "node_modules/@algolia/cache-browser-local-storage": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.24.0.tgz", - "integrity": "sha512-t63W9BnoXVrGy9iYHBgObNXqYXM3tYXCjDSHeNwnsc324r4o5UiVKUiAB4THQ5z9U5hTj6qUvwg/Ez43ZD85ww==", + "node_modules/@algolia/client-abtesting": { + "version": "5.50.2", + "resolved": "https://registry.npmjs.org/@algolia/client-abtesting/-/client-abtesting-5.50.2.tgz", + "integrity": "sha512-52iq0vHy1sphgnwoZyx5PmbEt8hsh+m7jD123LmBs6qy4GK7LbYZIeKd+nSnSipN2zvKRZ2zScS6h9PW3J7SXg==", + "license": "MIT", "dependencies": { - "@algolia/cache-common": "4.24.0" + "@algolia/client-common": "5.50.2", + "@algolia/requester-browser-xhr": "5.50.2", + "@algolia/requester-fetch": "5.50.2", + "@algolia/requester-node-http": "5.50.2" + }, + "engines": { + "node": ">= 14.0.0" } }, - "node_modules/@algolia/cache-common": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.24.0.tgz", - "integrity": "sha512-emi+v+DmVLpMGhp0V9q9h5CdkURsNmFC+cOS6uK9ndeJm9J4TiqSvPYVu+THUP8P/S08rxf5x2P+p3CfID0Y4g==" - }, - "node_modules/@algolia/cache-in-memory": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.24.0.tgz", - "integrity": "sha512-gDrt2so19jW26jY3/MkFg5mEypFIPbPoXsQGQWAi6TrCPsNOSEYepBMPlucqWigsmEy/prp5ug2jy/N3PVG/8w==", + "node_modules/@algolia/client-analytics": { + "version": "5.50.2", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-5.50.2.tgz", + "integrity": "sha512-WpPIUg+cSG2aPUG0gS8Ko9DwRgbRPUZxJkolhL2aCsmSlcEEZT65dILrfg5ovcxtx0Kvr+xtBVsTMtsQWRtPDQ==", + "license": "MIT", "dependencies": { - "@algolia/cache-common": "4.24.0" + "@algolia/client-common": "5.50.2", + "@algolia/requester-browser-xhr": "5.50.2", + "@algolia/requester-fetch": "5.50.2", + "@algolia/requester-node-http": "5.50.2" + }, + "engines": { + "node": ">= 14.0.0" } }, - "node_modules/@algolia/client-account": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.24.0.tgz", - "integrity": "sha512-adcvyJ3KjPZFDybxlqnf+5KgxJtBjwTPTeyG2aOyoJvx0Y8dUQAEOEVOJ/GBxX0WWNbmaSrhDURMhc+QeevDsA==", - "dependencies": { - "@algolia/client-common": "4.24.0", - "@algolia/client-search": "4.24.0", - "@algolia/transporter": "4.24.0" + "node_modules/@algolia/client-common": { + "version": "5.50.2", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-5.50.2.tgz", + "integrity": "sha512-Gj2MgtArGcsr82kIqRlo6/dCAFjrs2gLByEqyRENuT7ugrSMFuqg1vDzeBjRL1t3EJEJCFtT0PLX3gB8A6Hq4Q==", + "license": "MIT", + "engines": { + "node": ">= 14.0.0" } }, - "node_modules/@algolia/client-analytics": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.24.0.tgz", - "integrity": "sha512-y8jOZt1OjwWU4N2qr8G4AxXAzaa8DBvyHTWlHzX/7Me1LX8OayfgHexqrsL4vSBcoMmVw2XnVW9MhL+Y2ZDJXg==", + "node_modules/@algolia/client-insights": { + "version": "5.50.2", + "resolved": "https://registry.npmjs.org/@algolia/client-insights/-/client-insights-5.50.2.tgz", + "integrity": "sha512-CUqoid5jDpmrc0oK3/xuZXFt6kwT0P9Lw7/nsM14YTr6puvmi+OUKmURpmebQF22S2vCG8L1DAoXXujxQUi/ug==", + "license": "MIT", "dependencies": { - "@algolia/client-common": "4.24.0", - "@algolia/client-search": "4.24.0", - "@algolia/requester-common": "4.24.0", - "@algolia/transporter": "4.24.0" + "@algolia/client-common": "5.50.2", + "@algolia/requester-browser-xhr": "5.50.2", + "@algolia/requester-fetch": "5.50.2", + "@algolia/requester-node-http": "5.50.2" + }, + "engines": { + "node": ">= 14.0.0" } }, - "node_modules/@algolia/client-common": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.24.0.tgz", - "integrity": "sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA==", + "node_modules/@algolia/client-personalization": { + "version": "5.50.2", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-5.50.2.tgz", + "integrity": "sha512-AndZWFoc0gbP5901OeQJ73BazgGgSGiBEba4ohdoJuZwHTO2Gio8Q4L1VLmytMBYcviVigB0iICToMvEJxI4ug==", + "license": "MIT", "dependencies": { - "@algolia/requester-common": "4.24.0", - "@algolia/transporter": "4.24.0" + "@algolia/client-common": "5.50.2", + "@algolia/requester-browser-xhr": "5.50.2", + "@algolia/requester-fetch": "5.50.2", + "@algolia/requester-node-http": "5.50.2" + }, + "engines": { + "node": ">= 14.0.0" } }, - "node_modules/@algolia/client-personalization": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.24.0.tgz", - "integrity": "sha512-l5FRFm/yngztweU0HdUzz1rC4yoWCFo3IF+dVIVTfEPg906eZg5BOd1k0K6rZx5JzyyoP4LdmOikfkfGsKVE9w==", + "node_modules/@algolia/client-query-suggestions": { + "version": "5.50.2", + "resolved": "https://registry.npmjs.org/@algolia/client-query-suggestions/-/client-query-suggestions-5.50.2.tgz", + "integrity": "sha512-NWoL+psEkz5dIzweaByVXuEB45wS8/rk0E0AhMMnaVJdVs7TcACPH2/OURm+N0xRDITkTHqCna823rd6Uqntdg==", + "license": "MIT", "dependencies": { - "@algolia/client-common": "4.24.0", - "@algolia/requester-common": "4.24.0", - "@algolia/transporter": "4.24.0" + "@algolia/client-common": "5.50.2", + "@algolia/requester-browser-xhr": "5.50.2", + "@algolia/requester-fetch": "5.50.2", + "@algolia/requester-node-http": "5.50.2" + }, + "engines": { + "node": ">= 14.0.0" } }, "node_modules/@algolia/client-search": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.24.0.tgz", - "integrity": "sha512-uRW6EpNapmLAD0mW47OXqTP8eiIx5F6qN9/x/7HHO6owL3N1IXqydGwW5nhDFBrV+ldouro2W1VX3XlcUXEFCA==", + "version": "5.50.2", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.50.2.tgz", + "integrity": "sha512-ypSboUJ3XJoQz5DeDo82hCnrRuwq3q9ZdFhVKAik9TnZh1DvLqoQsrbBjXg7C7zQOtV/Qbge/HmyoV6V5L7MhQ==", + "license": "MIT", "dependencies": { - "@algolia/client-common": "4.24.0", - "@algolia/requester-common": "4.24.0", - "@algolia/transporter": "4.24.0" + "@algolia/client-common": "5.50.2", + "@algolia/requester-browser-xhr": "5.50.2", + "@algolia/requester-fetch": "5.50.2", + "@algolia/requester-node-http": "5.50.2" + }, + "engines": { + "node": ">= 14.0.0" } }, "node_modules/@algolia/events": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@algolia/events/-/events-4.0.1.tgz", - "integrity": "sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==" - }, - "node_modules/@algolia/logger-common": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.24.0.tgz", - "integrity": "sha512-LLUNjkahj9KtKYrQhFKCzMx0BY3RnNP4FEtO+sBybCjJ73E8jNdaKJ/Dd8A/VA4imVHP5tADZ8pn5B8Ga/wTMA==" - }, - "node_modules/@algolia/logger-console": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.24.0.tgz", - "integrity": "sha512-X4C8IoHgHfiUROfoRCV+lzSy+LHMgkoEEU1BbKcsfnV0i0S20zyy0NLww9dwVHUWNfPPxdMU+/wKmLGYf96yTg==", - "dependencies": { - "@algolia/logger-common": "4.24.0" - } - }, - "node_modules/@algolia/recommend": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-4.24.0.tgz", - "integrity": "sha512-P9kcgerfVBpfYHDfVZDvvdJv0lEoCvzNlOy2nykyt5bK8TyieYyiD0lguIJdRZZYGre03WIAFf14pgE+V+IBlw==", - "dependencies": { - "@algolia/cache-browser-local-storage": "4.24.0", - "@algolia/cache-common": "4.24.0", - "@algolia/cache-in-memory": "4.24.0", - "@algolia/client-common": "4.24.0", - "@algolia/client-search": "4.24.0", - "@algolia/logger-common": "4.24.0", - "@algolia/logger-console": "4.24.0", - "@algolia/requester-browser-xhr": "4.24.0", - "@algolia/requester-common": "4.24.0", - "@algolia/requester-node-http": "4.24.0", - "@algolia/transporter": "4.24.0" - } - }, - "node_modules/@algolia/requester-browser-xhr": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.24.0.tgz", - "integrity": "sha512-Z2NxZMb6+nVXSjF13YpjYTdvV3032YTBSGm2vnYvYPA6mMxzM3v5rsCiSspndn9rzIW4Qp1lPHBvuoKJV6jnAA==", - "dependencies": { - "@algolia/requester-common": "4.24.0" - } - }, - "node_modules/@algolia/requester-common": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.24.0.tgz", - "integrity": "sha512-k3CXJ2OVnvgE3HMwcojpvY6d9kgKMPRxs/kVohrwF5WMr2fnqojnycZkxPoEg+bXm8fi5BBfFmOqgYztRtHsQA==" - }, - "node_modules/@algolia/requester-node-http": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.24.0.tgz", - "integrity": "sha512-JF18yTjNOVYvU/L3UosRcvbPMGT9B+/GQWNWnenIImglzNVGpyzChkXLnrSf6uxwVNO6ESGu6oN8MqcGQcjQJw==", - "dependencies": { - "@algolia/requester-common": "4.24.0" - } - }, - "node_modules/@algolia/transporter": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.24.0.tgz", - "integrity": "sha512-86nI7w6NzWxd1Zp9q3413dRshDqAzSbsQjhcDhPIatEFiZrL1/TjnHL8S7jVKFePlIMzDsZWXAXwXzcok9c5oA==", - "dependencies": { - "@algolia/cache-common": "4.24.0", - "@algolia/logger-common": "4.24.0", - "@algolia/requester-common": "4.24.0" - } + "integrity": "sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==", + "license": "MIT" }, - "node_modules/@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "node_modules/@algolia/ingestion": { + "version": "1.50.2", + "resolved": "https://registry.npmjs.org/@algolia/ingestion/-/ingestion-1.50.2.tgz", + "integrity": "sha512-VlR2FRXLw2bCB94SQo6zxg/Qi+547aOji6Pb+dKE7h1DMCCY317St+OpjpmgzE+bT2O9ALIc0V4nVIBOd7Gy+Q==", + "license": "MIT", "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" + "@algolia/client-common": "5.50.2", + "@algolia/requester-browser-xhr": "5.50.2", + "@algolia/requester-fetch": "5.50.2", + "@algolia/requester-node-http": "5.50.2" }, "engines": { - "node": ">=6.0.0" + "node": ">= 14.0.0" } }, - "node_modules/@babel/code-frame": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.4.tgz", - "integrity": "sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA==", + "node_modules/@algolia/monitoring": { + "version": "1.50.2", + "resolved": "https://registry.npmjs.org/@algolia/monitoring/-/monitoring-1.50.2.tgz", + "integrity": "sha512-Cmvfp2+qopzQt8OilU97rhLhosq7ZrB6uieok3EwFUqG/aalPg6DgfCmu0yJMrYe+KMC1qRVt1MTRAUwLknUMQ==", + "license": "MIT", "dependencies": { - "@babel/highlight": "^7.23.4", - "chalk": "^2.4.2" + "@algolia/client-common": "5.50.2", + "@algolia/requester-browser-xhr": "5.50.2", + "@algolia/requester-fetch": "5.50.2", + "@algolia/requester-node-http": "5.50.2" }, "engines": { - "node": ">=6.9.0" + "node": ">= 14.0.0" } }, - "node_modules/@babel/code-frame/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "node_modules/@algolia/recommend": { + "version": "5.50.2", + "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-5.50.2.tgz", + "integrity": "sha512-jrkuyKoOM7dFWQ/6Y4hQAse2SC3L/RldG6GnPjMvAj65h+7Ubb51S0pKk4ofSStF0xm4LCNe0C4T6XX4nOFDiQ==", + "license": "MIT", "dependencies": { - "color-convert": "^1.9.0" + "@algolia/client-common": "5.50.2", + "@algolia/requester-browser-xhr": "5.50.2", + "@algolia/requester-fetch": "5.50.2", + "@algolia/requester-node-http": "5.50.2" }, "engines": { - "node": ">=4" + "node": ">= 14.0.0" } }, - "node_modules/@babel/code-frame/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "node_modules/@algolia/requester-browser-xhr": { + "version": "5.50.2", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.50.2.tgz", + "integrity": "sha512-4107YLJqCudPiBUlwnk6oTSUVwU7ab+qL1SfQGEDYI8DZH5gsf1ekPt9JykXRKYXf2IfouFL5GiCY/PHTFIjYw==", + "license": "MIT", "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "@algolia/client-common": "5.50.2" }, "engines": { - "node": ">=4" + "node": ">= 14.0.0" } }, - "node_modules/@babel/code-frame/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "node_modules/@algolia/requester-fetch": { + "version": "5.50.2", + "resolved": "https://registry.npmjs.org/@algolia/requester-fetch/-/requester-fetch-5.50.2.tgz", + "integrity": "sha512-vOrd3MQpLgmf6wXAueTuZ/cA0W4uRwIHHaxNy3h+a6YcNn6bCV/gFdZuv3F13v593zRU2k5R75NmvRWLenvMrw==", + "license": "MIT", "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/code-frame/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - }, - "node_modules/@babel/code-frame/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "@algolia/client-common": "5.50.2" + }, "engines": { - "node": ">=0.8.0" + "node": ">= 14.0.0" } }, - "node_modules/@babel/code-frame/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "node_modules/@algolia/requester-node-http": { + "version": "5.50.2", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-5.50.2.tgz", + "integrity": "sha512-Mu9BFtgzGqDUy5Bcs2nMyoILIFSN13GKQaklKAFIsd0K3/9CpNyfeBc+/+Qs6mFZLlxG9qzullO7h+bjcTBuGQ==", + "license": "MIT", + "dependencies": { + "@algolia/client-common": "5.50.2" + }, "engines": { - "node": ">=4" + "node": ">= 14.0.0" } }, - "node_modules/@babel/code-frame/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/@babel/code-frame": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", + "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", + "license": "MIT", "dependencies": { - "has-flag": "^3.0.0" + "@babel/helper-validator-identifier": "^7.28.5", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" }, "engines": { - "node": ">=4" + "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.3.tgz", - "integrity": "sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.0.tgz", + "integrity": "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.3.tgz", - "integrity": "sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew==", - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.3", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.23.2", - "@babel/parser": "^7.23.3", - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.3", - "@babel/types": "^7.23.3", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz", + "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.0", + "@babel/generator": "^7.29.0", + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-module-transforms": "^7.28.6", + "@babel/helpers": "^7.28.6", + "@babel/parser": "^7.29.0", + "@babel/template": "^7.28.6", + "@babel/traverse": "^7.29.0", + "@babel/types": "^7.29.0", + "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -333,54 +315,48 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/generator": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.4.tgz", - "integrity": "sha512-esuS49Cga3HcThFNebGhlgsrVLkvhqvYDTzgjfFFlHJcIfLe5jFmRRfCQ1KuBfc4Jrtn3ndLgKWAKjBE+IraYQ==", + "version": "7.29.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz", + "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==", + "license": "MIT", "dependencies": { - "@babel/types": "^7.23.4", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" + "@babel/parser": "^7.29.0", + "@babel/types": "^7.29.0", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", - "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", - "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.15" + "@babel/types": "^7.27.3" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", - "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", - "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-validator-option": "^7.22.15", - "browserslist": "^4.21.9", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz", + "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.28.6", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -392,23 +368,23 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz", - "integrity": "sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.15", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.6.tgz", + "integrity": "sha512-dTOdvsjnG3xNT9Y0AUg1wAl38y+4Rl4sf9caSQZOXdNqVn+H+HbbJ4IyyHaIqNR6SW9oJpA/RuRjsjCw2IdIow==", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-member-expression-to-functions": "^7.28.5", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/helper-replace-supers": "^7.28.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/traverse": "^7.28.6", "semver": "^6.3.1" }, "engines": { @@ -422,17 +398,19 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", - "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.28.5.tgz", + "integrity": "sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw==", + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "regexpu-core": "^5.3.1", + "@babel/helper-annotate-as-pure": "^7.27.3", + "regexpu-core": "^6.3.1", "semver": "^6.3.1" }, "engines": { @@ -446,88 +424,71 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz", - "integrity": "sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==", - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.8.tgz", + "integrity": "sha512-47UwBLPpQi1NoWzLuHNjRoHlYXMwIJoBf7MFou6viC/sIHWYygpvr0B6IAyh5sBdA2nr2LPIRww8lfaUVQINBA==", + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "debug": "^4.4.3", "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" + "resolve": "^1.22.11" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", - "dependencies": { - "@babel/types": "^7.22.5" - }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", - "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.28.5.tgz", + "integrity": "sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==", + "license": "MIT", "dependencies": { - "@babel/types": "^7.23.0" + "@babel/traverse": "^7.28.5", + "@babel/types": "^7.28.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", - "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz", + "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==", + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.15" + "@babel/traverse": "^7.28.6", + "@babel/types": "^7.28.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", - "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz", + "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==", + "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" + "@babel/helper-module-imports": "^7.28.6", + "@babel/helper-validator-identifier": "^7.28.5", + "@babel/traverse": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -537,32 +498,35 @@ } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", - "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", + "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==", + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz", - "integrity": "sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz", + "integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", - "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz", + "integrity": "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==", + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-wrap-function": "^7.22.20" + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-wrap-function": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -572,13 +536,14 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", - "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.28.6.tgz", + "integrity": "sha512-mq8e+laIk94/yFec3DxSjCRD2Z0TAjhVbEJY3UQrlwVo15Lmt7C2wAUbK4bjnTs4APkwsYLTahXRraQXhb1WCg==", + "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-member-expression-to-functions": "^7.22.15", - "@babel/helper-optimise-call-expression": "^7.22.5" + "@babel/helper-member-expression-to-functions": "^7.28.5", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/traverse": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -587,183 +552,126 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", - "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", + "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==", + "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", - "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", - "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", - "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.28.6.tgz", + "integrity": "sha512-z+PwLziMNBeSQJonizz2AGnndLsP2DeGHIxDAn+wdHOGuo4Fo1x1HBPPXeE9TAOPHNNWQKCSlA2VZyYyyibDnQ==", + "license": "MIT", "dependencies": { - "@babel/helper-function-name": "^7.22.5", - "@babel/template": "^7.22.15", - "@babel/types": "^7.22.19" + "@babel/template": "^7.28.6", + "@babel/traverse": "^7.28.6", + "@babel/types": "^7.28.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.4.tgz", - "integrity": "sha512-HfcMizYz10cr3h29VqyfGL6ZWIjTwWfvYBMsBVGwpcbhNGe3wQ1ZXZRPzZoAHhd9OqHadHqjQ89iVKINXnbzuw==", + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.2.tgz", + "integrity": "sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==", + "license": "MIT", "dependencies": { - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.4", - "@babel/types": "^7.23.4" + "@babel/template": "^7.28.6", + "@babel/types": "^7.29.0" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/highlight": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", - "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "node_modules/@babel/parser": { + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.2.tgz", + "integrity": "sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==", + "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" + "@babel/types": "^7.29.0" }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" + "bin": { + "parser": "bin/babel-parser.js" }, "engines": { - "node": ">=4" + "node": ">=6.0.0" } }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.28.5.tgz", + "integrity": "sha512-87GDMS3tsmMSi/3bWOte1UblL+YUTFMV8SZPZ2eSEL17s74Cw/l63rR6NmGVKMYW2GYi85nE+/d6Hw5N0bEk2Q==", + "license": "MIT", "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.28.5" }, "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "engines": { - "node": ">=4" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.27.1.tgz", + "integrity": "sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==", + "license": "MIT", "dependencies": { - "has-flag": "^3.0.0" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.4.tgz", - "integrity": "sha512-vf3Xna6UEprW+7t6EtOmFpHNAuxw3xqPZghy+brsnusscJRW5BMUzzHZc5ICjULee81WeUV2jjakG09MDglJXQ==", - "bin": { - "parser": "bin/babel-parser.js" + "node": ">=6.9.0" }, - "engines": { - "node": ">=6.0.0" + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz", - "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.27.1.tgz", + "integrity": "sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -773,13 +681,14 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz", - "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz", + "integrity": "sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.23.3" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/plugin-transform-optional-chaining": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -789,12 +698,13 @@ } }, "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.3.tgz", - "integrity": "sha512-XaJak1qcityzrX0/IU5nKHb34VaibwP3saKqG6a/tppelgllOH13LUann4ZCIBcVOeE6H18K4Vx9QKkVww3z/w==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.28.6.tgz", + "integrity": "sha512-a0aBScVTlNaiUe35UtfxAN7A/tehvvG4/ByO6+46VPKTRSlfnAFsgKy0FUh+qAkQrDTmhDkT+IBOKlOoMUxQ0g==", + "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/traverse": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -807,6 +717,7 @@ "version": "7.21.0-placeholder-for-preset-env.2", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "license": "MIT", "engines": { "node": ">=6.9.0" }, @@ -814,10 +725,11 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -825,23 +737,28 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.28.6.tgz", + "integrity": "sha512-pSJUpFHdx9z5nqTSirOCMtYVP2wFgoWhP0p3g8ONK/4IHhLIBd0B9NYqAvIUAhq+OkhO4VM1tENCt0cjlsNShw==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.28.6.tgz", + "integrity": "sha512-jiLC0ma9XkQT3TKJ9uYvlakm66Pamywo+qwL+oL8HJOvc6TWdZXVfhqJr8CCzbSGUAbDOzlGHJC1U+vRfLQDvw==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -850,34 +767,28 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.28.6.tgz", + "integrity": "sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-plugin-utils": "^7.28.6" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz", - "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==", + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.28.6.tgz", + "integrity": "sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -886,48 +797,63 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz", - "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==", + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz", + "integrity": "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.29.0.tgz", + "integrity": "sha512-va0VdWro4zlBr2JsXC+ofCPB2iG12wPtVGTWFx2WLDOM3nYQZZIGP82qku2eW/JR83sD+k2k+CsNtyEbUqhU6w==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-remap-async-to-generator": "^7.27.1", + "@babel/traverse": "^7.29.0" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", - "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.28.6.tgz", + "integrity": "sha512-ilTRcmbuXjsMmcZ3HASTe4caH5Tpo93PkTxF9oG2VZsSWsahydmcEHhix9Ik122RcTnZnUzPbmux4wh1swfv7g==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-module-imports": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-remap-async-to-generator": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -936,78 +862,112 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz", + "integrity": "sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.6.tgz", + "integrity": "sha512-tt/7wOtBmwHPNMPu7ax4pdPz6shjFrmHDghvNC+FG9Qvj7D6mJcoRQIF5dy4njmxR941l6rgtvfSB2zX3VlUIw==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.28.6.tgz", + "integrity": "sha512-dY2wS3I2G7D697VHndN91TJr8/AAfXQNt5ynCTI/MpxMsSzHp+52uNivYT5wCPax3whc47DR8Ba7cmlQMg24bw==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-create-class-features-plugin": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.28.6.tgz", + "integrity": "sha512-rfQ++ghVwTWTqQ7w8qyDxL1XGihjBss4CmTgGRCTAC9RIbhVpyp4fOeZtta0Lbf+dTNIVJer6ych2ibHwkZqsQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-create-class-features-plugin": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.12.0" } }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "node_modules/@babel/plugin-transform-classes": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.6.tgz", + "integrity": "sha512-EF5KONAqC5zAqT783iMGuM2ZtmEBy+mJMOKl2BCvPZ2lVrwvXnB6o+OBWCS+CoeCCpVRF2sA2RBKUxvT8tQT5Q==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-globals": "^7.28.0", + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-replace-supers": "^7.28.6", + "@babel/traverse": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.28.6.tgz", + "integrity": "sha512-bcc3k0ijhHbc2lEfpFHgx7eYw9KNXqOerKWfzbxEHUGKnS3sz9C4CNL9OiFN1297bDNfUiSO7DaLzbvHQQQ1BQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/template": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.5.tgz", + "integrity": "sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.28.5" }, "engines": { "node": ">=6.9.0" @@ -1016,12 +976,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.28.6.tgz", + "integrity": "sha512-SljjowuNKB7q5Oayv4FoPzeB74g3QgLt8IVJw9ADvWy3QnUb/01aw8I4AVv8wYnPvQz2GDDZ/g3GhcNyDBI4Bg==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-create-regexp-features-plugin": "^7.28.5", + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -1030,12 +992,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", - "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz", + "integrity": "sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1044,13 +1007,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-unicode-sets-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", - "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.29.0.tgz", + "integrity": "sha512-zBPcW2lFGxdiD8PUnPwJjag2J9otbcLQzvbiOzDxpYXyCuYX9agOwMPGn1prVH0a4qzhCKu24rlH4c1f7yA8rw==", + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-create-regexp-features-plugin": "^7.28.5", + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -1059,12 +1023,13 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz", - "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==", + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.27.1.tgz", + "integrity": "sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1073,15 +1038,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.4.tgz", - "integrity": "sha512-efdkfPhHYTtn0G6n2ddrESE91fgXxjlqLsnUtPWnJs4a4mZIbUaK7ffqKIIUKXSHwcDvaCVX6GXkaJJFqtX7jw==", + "node_modules/@babel/plugin-transform-explicit-resource-management": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.28.6.tgz", + "integrity": "sha512-Iao5Konzx2b6g7EPqTy40UZbcdXE126tTxVFr/nAIj+WItNxjKSYTEw3RC+A2/ZetmdJsgueL1KhaMCQHkLPIg==", + "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.20", - "@babel/plugin-syntax-async-generators": "^7.8.4" + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/plugin-transform-destructuring": "^7.28.5" }, "engines": { "node": ">=6.9.0" @@ -1090,14 +1054,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz", - "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==", + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.28.6.tgz", + "integrity": "sha512-WitabqiGjV/vJ0aPOLSFfNY1u9U3R7W36B03r5I2KoNix+a3sOhJ3pKFB3R5It9/UiK78NiO0KE9P21cMhlPkw==", + "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.20" + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -1106,12 +1069,13 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz", - "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==", + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz", + "integrity": "sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1120,182 +1084,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz", - "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==", + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz", + "integrity": "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz", - "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz", - "integrity": "sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.3.tgz", - "integrity": "sha512-FGEQmugvAEu2QtgtU0uTASXevfLMFfBeVCIIdcQhn/uBQsMTjBajdnAtanQlOcuihWh10PZ7+HWvc7NtBwP74w==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.20", - "@babel/helper-split-export-declaration": "^7.22.6", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz", - "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/template": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz", - "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz", - "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz", - "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz", - "integrity": "sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz", - "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==", - "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz", - "integrity": "sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.3.tgz", - "integrity": "sha512-X8jSm8X1CMwxmK878qsUGJRmbysKNbdpTv/O1/v0LuY/ZkZrng5WYiekYSdg9m09OTmDDUWeEDsTE+17WYbAZw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1305,13 +1101,14 @@ } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz", - "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz", + "integrity": "sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==", + "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1321,12 +1118,12 @@ } }, "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz", - "integrity": "sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.28.6.tgz", + "integrity": "sha512-Nr+hEN+0geQkzhbdgQVPoqr47lZbm+5fCUmO70722xJZd0Mvb59+33QLImGj6F+DkK3xgDi1YVysP8whD6FQAw==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-json-strings": "^7.8.3" + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -1336,11 +1133,12 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz", - "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz", + "integrity": "sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1350,12 +1148,12 @@ } }, "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz", - "integrity": "sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.28.6.tgz", + "integrity": "sha512-+anKKair6gpi8VsM/95kmomGNMD0eLz1NQ8+Pfw5sAwWH9fGYXT50E55ZpV0pHUHWf6IUTWPM+f/7AAff+wr9A==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -1365,11 +1163,12 @@ } }, "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz", - "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz", + "integrity": "sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1379,12 +1178,13 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz", - "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz", + "integrity": "sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==", + "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1394,13 +1194,13 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", - "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.28.6.tgz", + "integrity": "sha512-jppVbf8IV9iWWwWTQIxJMAJCWBuuKx71475wHwYytrRGQ2CWiDvYlADQno3tcYpS/T2UUWFQp3nVtYfK/YBQrA==", + "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-simple-access": "^7.22.5" + "@babel/helper-module-transforms": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -1410,14 +1210,15 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.3.tgz", - "integrity": "sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.29.0.tgz", + "integrity": "sha512-PrujnVFbOdUpw4UHiVwKvKRLMMic8+eC0CuNlxjsyZUiBjhFdPsewdXCkveh2KqBA9/waD0W1b4hXSOBQJezpQ==", + "license": "MIT", "dependencies": { - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.20" + "@babel/helper-module-transforms": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-validator-identifier": "^7.28.5", + "@babel/traverse": "^7.29.0" }, "engines": { "node": ">=6.9.0" @@ -1427,12 +1228,13 @@ } }, "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz", - "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz", + "integrity": "sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==", + "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1442,12 +1244,13 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", - "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.29.0.tgz", + "integrity": "sha512-1CZQA5KNAD6ZYQLPw7oi5ewtDNxH/2vuCh+6SmvgDfhumForvs8a1o9n0UrEoBD8HU4djO2yWngTQlXl1NDVEQ==", + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-regexp-features-plugin": "^7.28.5", + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -1457,11 +1260,12 @@ } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz", - "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz", + "integrity": "sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1471,12 +1275,12 @@ } }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz", - "integrity": "sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.28.6.tgz", + "integrity": "sha512-3wKbRgmzYbw24mDJXT7N+ADXw8BC/imU9yo9c9X9NKaLF1fW+e5H1U5QjMUBe4Qo4Ox/o++IyUkl1sVCLgevKg==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -1486,12 +1290,12 @@ } }, "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz", - "integrity": "sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.28.6.tgz", + "integrity": "sha512-SJR8hPynj8outz+SlStQSwvziMN4+Bq99it4tMIf5/Caq+3iOc0JtKyse8puvyXkk3eFRIA5ID/XfunGgO5i6w==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -1501,15 +1305,16 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz", - "integrity": "sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.6.tgz", + "integrity": "sha512-5rh+JR4JBC4pGkXLAcYdLHZjXudVxWMXbB6u6+E9lRL5TrGVbHt1TjxGbZ8CkmYw9zjkB7jutzOROArsqtncEA==", + "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.23.3", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.23.3" + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/plugin-transform-destructuring": "^7.28.5", + "@babel/plugin-transform-parameters": "^7.27.7", + "@babel/traverse": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -1519,12 +1324,13 @@ } }, "node_modules/@babel/plugin-transform-object-super": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz", - "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz", + "integrity": "sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.20" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1534,12 +1340,12 @@ } }, "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz", - "integrity": "sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.28.6.tgz", + "integrity": "sha512-R8ja/Pyrv0OGAvAXQhSTmWyPJPml+0TMqXlO5w+AsMEiwb2fg3WkOvob7UxFSL3OIttFSGSRFKQsOhJ/X6HQdQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -1549,13 +1355,13 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz", - "integrity": "sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.28.6.tgz", + "integrity": "sha512-A4zobikRGJTsX9uqVFdafzGkqD30t26ck2LmOzAuLL8b2x6k3TIqRiT2xVvA9fNmFeTX484VpsdgmKNA0bS23w==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1565,11 +1371,12 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz", - "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==", + "version": "7.27.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz", + "integrity": "sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1579,12 +1386,13 @@ } }, "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz", - "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.28.6.tgz", + "integrity": "sha512-piiuapX9CRv7+0st8lmuUlRSmX6mBcVeNQ1b4AYzJxfCMuBfB0vBXDiGSmm03pKJw1v6cZ8KSeM+oUnM6yAExg==", + "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-class-features-plugin": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -1594,14 +1402,14 @@ } }, "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz", - "integrity": "sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.28.6.tgz", + "integrity": "sha512-b97jvNSOb5+ehyQmBpmhOCiUC5oVK4PMnpRvO7+ymFBoqYjeDHIU9jnrNUuwHOiL9RpGDoKBpSViarV+BU+eVA==", + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-create-class-features-plugin": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -1611,11 +1419,12 @@ } }, "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz", - "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz", + "integrity": "sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1625,11 +1434,12 @@ } }, "node_modules/@babel/plugin-transform-react-constant-elements": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.24.7.tgz", - "integrity": "sha512-7LidzZfUXyfZ8/buRW6qIIHBY8wAZ1OrY9c/wTr8YhZ6vMPo+Uc/CVFLYY1spZrEQlD4w5u8wjqk5NQ3OVqQKA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.27.1.tgz", + "integrity": "sha512-edoidOjl/ZxvYo4lSBOQGDSyToYVkTAwyVoa2tkuYTSmjrB1+uAedoL5iROVLXkxH+vRgA7uP4tMg2pUJpZ3Ug==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1639,11 +1449,12 @@ } }, "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.23.3.tgz", - "integrity": "sha512-GnvhtVfA2OAtzdX58FJxU19rhoGeQzyVndw3GgtdECQvQFXPEZIOVULHVZGAYmOgmqjXpVpfocAbSjh99V/Fqw==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.28.0.tgz", + "integrity": "sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1653,15 +1464,16 @@ } }, "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.23.4.tgz", - "integrity": "sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.28.6.tgz", + "integrity": "sha512-61bxqhiRfAACulXSLd/GxqmAedUSrRZIu/cbaT18T1CetkTmtDN15it7i80ru4DVqRK1WMxQhXs+Lf9kajm5Ow==", + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-jsx": "^7.23.3", - "@babel/types": "^7.23.4" + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-module-imports": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/plugin-syntax-jsx": "^7.28.6", + "@babel/types": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -1671,11 +1483,12 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz", - "integrity": "sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.27.1.tgz", + "integrity": "sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q==", + "license": "MIT", "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.22.5" + "@babel/plugin-transform-react-jsx": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1685,12 +1498,13 @@ } }, "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.23.3.tgz", - "integrity": "sha512-qMFdSS+TUhB7Q/3HVPnEdYJDQIk57jkntAwSuz9xfSE4n+3I+vHYCli3HoHawN1Z3RfCz/y1zXA/JXjG6cVImQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.27.1.tgz", + "integrity": "sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA==", + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1700,12 +1514,12 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz", - "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.29.0.tgz", + "integrity": "sha512-FijqlqMA7DmRdg/aINBSs04y8XNTYw/lr1gJ2WsmBnnaNw1iS43EPkJW+zK7z65auG3AWRFXWj+NcTQwYptUog==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "regenerator-transform": "^0.15.2" + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -1714,12 +1528,29 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-regexp-modifiers": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.28.6.tgz", + "integrity": "sha512-QGWAepm9qxpaIs7UM9FvUSnCGlb8Ua1RhyM4/veAxLwt3gMat/LSGrZixyuj4I6+Kn9iwvqCyPTtbdxanYoWYg==", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.28.5", + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz", - "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz", + "integrity": "sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1729,15 +1560,16 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.4.tgz", - "integrity": "sha512-ITwqpb6V4btwUG0YJR82o2QvmWrLgDnx/p2A3CTPYGaRgULkDiC0DRA2C4jlRB9uXGUEfaSS/IGHfVW+ohzYDw==", - "dependencies": { - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "babel-plugin-polyfill-corejs2": "^0.4.6", - "babel-plugin-polyfill-corejs3": "^0.8.5", - "babel-plugin-polyfill-regenerator": "^0.5.3", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.29.0.tgz", + "integrity": "sha512-jlaRT5dJtMaMCV6fAuLbsQMSwz/QkvaHOHOSXRitGGwSpR1blCY4KUKoyP2tYO8vJcqYe8cEj96cqSztv3uF9w==", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "babel-plugin-polyfill-corejs2": "^0.4.14", + "babel-plugin-polyfill-corejs3": "^0.13.0", + "babel-plugin-polyfill-regenerator": "^0.6.5", "semver": "^6.3.1" }, "engines": { @@ -1751,16 +1583,18 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz", - "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz", + "integrity": "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1770,12 +1604,13 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz", - "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.28.6.tgz", + "integrity": "sha512-9U4QObUC0FtJl05AsUcodau/RWDytrU6uKgkxu09mLR9HLDAtUMoPuuskm5huQsoktmsYpI+bGmq+iapDcriKA==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1785,11 +1620,12 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz", - "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz", + "integrity": "sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1799,11 +1635,12 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz", - "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz", + "integrity": "sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1813,11 +1650,12 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz", - "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz", + "integrity": "sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1827,14 +1665,16 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.4.tgz", - "integrity": "sha512-39hCCOl+YUAyMOu6B9SmUTiHUU0t/CxJNUmY3qRdJujbqi+lrQcL11ysYUsAvFWPBdhihrv1z0oRG84Yr3dODQ==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.28.6.tgz", + "integrity": "sha512-0YWL2RFxOqEm9Efk5PvreamxPME8OyY0wM5wh5lHjF+VtVhdneCWGzZeSqzOfiobVqQaNCd2z0tQvnI9DaPWPw==", + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-typescript": "^7.23.3" + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-create-class-features-plugin": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/plugin-syntax-typescript": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -1844,11 +1684,12 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz", - "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz", + "integrity": "sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1858,12 +1699,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz", - "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.28.6.tgz", + "integrity": "sha512-4Wlbdl/sIZjzi/8St0evF0gEZrgOswVO6aOzqxh1kDZOl9WmLrHq2HtGhnOJZmHZYKP8WZ1MDLCt5DAWwRo57A==", + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-regexp-features-plugin": "^7.28.5", + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -1873,12 +1715,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz", - "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz", + "integrity": "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==", + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1888,12 +1731,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz", - "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.28.6.tgz", + "integrity": "sha512-/wHc/paTUmsDYN7SZkpWxogTOBNnlx7nBQYfy6JJlCT7G3mVhltk3e++N7zV0XfgGsrqBxd4rJQt9H16I21Y1Q==", + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-create-regexp-features-plugin": "^7.28.5", + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { "node": ">=6.9.0" @@ -1903,89 +1747,80 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.3.tgz", - "integrity": "sha512-ovzGc2uuyNfNAs/jyjIGxS8arOHS5FENZaNn4rtE7UdKMMkqHCvboHfcuhWLZNX5cB44QfcGNWjaevxMzzMf+Q==", - "dependencies": { - "@babel/compat-data": "^7.23.3", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.3", + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.29.2.tgz", + "integrity": "sha512-DYD23veRYGvBFhcTY1iUvJnDNpuqNd/BzBwCvzOTKUnJjKg5kpUBh3/u9585Agdkgj+QuygG7jLfOPWMa2KVNw==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.29.0", + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.28.5", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.27.1", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.27.1", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.27.1", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.28.6", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.23.3", - "@babel/plugin-syntax-import-attributes": "^7.23.3", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-import-assertions": "^7.28.6", + "@babel/plugin-syntax-import-attributes": "^7.28.6", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.23.3", - "@babel/plugin-transform-async-generator-functions": "^7.23.3", - "@babel/plugin-transform-async-to-generator": "^7.23.3", - "@babel/plugin-transform-block-scoped-functions": "^7.23.3", - "@babel/plugin-transform-block-scoping": "^7.23.3", - "@babel/plugin-transform-class-properties": "^7.23.3", - "@babel/plugin-transform-class-static-block": "^7.23.3", - "@babel/plugin-transform-classes": "^7.23.3", - "@babel/plugin-transform-computed-properties": "^7.23.3", - "@babel/plugin-transform-destructuring": "^7.23.3", - "@babel/plugin-transform-dotall-regex": "^7.23.3", - "@babel/plugin-transform-duplicate-keys": "^7.23.3", - "@babel/plugin-transform-dynamic-import": "^7.23.3", - "@babel/plugin-transform-exponentiation-operator": "^7.23.3", - "@babel/plugin-transform-export-namespace-from": "^7.23.3", - "@babel/plugin-transform-for-of": "^7.23.3", - "@babel/plugin-transform-function-name": "^7.23.3", - "@babel/plugin-transform-json-strings": "^7.23.3", - "@babel/plugin-transform-literals": "^7.23.3", - "@babel/plugin-transform-logical-assignment-operators": "^7.23.3", - "@babel/plugin-transform-member-expression-literals": "^7.23.3", - "@babel/plugin-transform-modules-amd": "^7.23.3", - "@babel/plugin-transform-modules-commonjs": "^7.23.3", - "@babel/plugin-transform-modules-systemjs": "^7.23.3", - "@babel/plugin-transform-modules-umd": "^7.23.3", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", - "@babel/plugin-transform-new-target": "^7.23.3", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.3", - "@babel/plugin-transform-numeric-separator": "^7.23.3", - "@babel/plugin-transform-object-rest-spread": "^7.23.3", - "@babel/plugin-transform-object-super": "^7.23.3", - "@babel/plugin-transform-optional-catch-binding": "^7.23.3", - "@babel/plugin-transform-optional-chaining": "^7.23.3", - "@babel/plugin-transform-parameters": "^7.23.3", - "@babel/plugin-transform-private-methods": "^7.23.3", - "@babel/plugin-transform-private-property-in-object": "^7.23.3", - "@babel/plugin-transform-property-literals": "^7.23.3", - "@babel/plugin-transform-regenerator": "^7.23.3", - "@babel/plugin-transform-reserved-words": "^7.23.3", - "@babel/plugin-transform-shorthand-properties": "^7.23.3", - "@babel/plugin-transform-spread": "^7.23.3", - "@babel/plugin-transform-sticky-regex": "^7.23.3", - "@babel/plugin-transform-template-literals": "^7.23.3", - "@babel/plugin-transform-typeof-symbol": "^7.23.3", - "@babel/plugin-transform-unicode-escapes": "^7.23.3", - "@babel/plugin-transform-unicode-property-regex": "^7.23.3", - "@babel/plugin-transform-unicode-regex": "^7.23.3", - "@babel/plugin-transform-unicode-sets-regex": "^7.23.3", + "@babel/plugin-transform-arrow-functions": "^7.27.1", + "@babel/plugin-transform-async-generator-functions": "^7.29.0", + "@babel/plugin-transform-async-to-generator": "^7.28.6", + "@babel/plugin-transform-block-scoped-functions": "^7.27.1", + "@babel/plugin-transform-block-scoping": "^7.28.6", + "@babel/plugin-transform-class-properties": "^7.28.6", + "@babel/plugin-transform-class-static-block": "^7.28.6", + "@babel/plugin-transform-classes": "^7.28.6", + "@babel/plugin-transform-computed-properties": "^7.28.6", + "@babel/plugin-transform-destructuring": "^7.28.5", + "@babel/plugin-transform-dotall-regex": "^7.28.6", + "@babel/plugin-transform-duplicate-keys": "^7.27.1", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.29.0", + "@babel/plugin-transform-dynamic-import": "^7.27.1", + "@babel/plugin-transform-explicit-resource-management": "^7.28.6", + "@babel/plugin-transform-exponentiation-operator": "^7.28.6", + "@babel/plugin-transform-export-namespace-from": "^7.27.1", + "@babel/plugin-transform-for-of": "^7.27.1", + "@babel/plugin-transform-function-name": "^7.27.1", + "@babel/plugin-transform-json-strings": "^7.28.6", + "@babel/plugin-transform-literals": "^7.27.1", + "@babel/plugin-transform-logical-assignment-operators": "^7.28.6", + "@babel/plugin-transform-member-expression-literals": "^7.27.1", + "@babel/plugin-transform-modules-amd": "^7.27.1", + "@babel/plugin-transform-modules-commonjs": "^7.28.6", + "@babel/plugin-transform-modules-systemjs": "^7.29.0", + "@babel/plugin-transform-modules-umd": "^7.27.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.29.0", + "@babel/plugin-transform-new-target": "^7.27.1", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.28.6", + "@babel/plugin-transform-numeric-separator": "^7.28.6", + "@babel/plugin-transform-object-rest-spread": "^7.28.6", + "@babel/plugin-transform-object-super": "^7.27.1", + "@babel/plugin-transform-optional-catch-binding": "^7.28.6", + "@babel/plugin-transform-optional-chaining": "^7.28.6", + "@babel/plugin-transform-parameters": "^7.27.7", + "@babel/plugin-transform-private-methods": "^7.28.6", + "@babel/plugin-transform-private-property-in-object": "^7.28.6", + "@babel/plugin-transform-property-literals": "^7.27.1", + "@babel/plugin-transform-regenerator": "^7.29.0", + "@babel/plugin-transform-regexp-modifiers": "^7.28.6", + "@babel/plugin-transform-reserved-words": "^7.27.1", + "@babel/plugin-transform-shorthand-properties": "^7.27.1", + "@babel/plugin-transform-spread": "^7.28.6", + "@babel/plugin-transform-sticky-regex": "^7.27.1", + "@babel/plugin-transform-template-literals": "^7.27.1", + "@babel/plugin-transform-typeof-symbol": "^7.27.1", + "@babel/plugin-transform-unicode-escapes": "^7.27.1", + "@babel/plugin-transform-unicode-property-regex": "^7.28.6", + "@babel/plugin-transform-unicode-regex": "^7.27.1", + "@babel/plugin-transform-unicode-sets-regex": "^7.28.6", "@babel/preset-modules": "0.1.6-no-external-plugins", - "babel-plugin-polyfill-corejs2": "^0.4.6", - "babel-plugin-polyfill-corejs3": "^0.8.5", - "babel-plugin-polyfill-regenerator": "^0.5.3", - "core-js-compat": "^3.31.0", + "babel-plugin-polyfill-corejs2": "^0.4.15", + "babel-plugin-polyfill-corejs3": "^0.14.0", + "babel-plugin-polyfill-regenerator": "^0.6.6", + "core-js-compat": "^3.48.0", "semver": "^6.3.1" }, "engines": { @@ -1995,10 +1830,24 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/preset-env/node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.14.2.tgz", + "integrity": "sha512-coWpDLJ410R781Npmn/SIBZEsAetR4xVi0SxLMXPaMO4lSf1MwnkGYMtkFxew0Dn8B3/CpbpYxN0JCgg8mn67g==", + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.8", + "core-js-compat": "^3.48.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, "node_modules/@babel/preset-env/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" } @@ -2007,6 +1856,7 @@ "version": "0.1.6-no-external-plugins", "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/types": "^7.4.4", @@ -2017,16 +1867,17 @@ } }, "node_modules/@babel/preset-react": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.23.3.tgz", - "integrity": "sha512-tbkHOS9axH6Ysf2OUEqoSZ6T3Fa2SrNH6WTWSPBboxKzdxNc9qOICeLXkNG0ZEwbQ1HY8liwOce4aN/Ceyuq6w==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.28.5.tgz", + "integrity": "sha512-Z3J8vhRq7CeLjdC58jLv4lnZ5RKFUJWqH5emvxmv9Hv3BD1T9R/Im713R4MTKwvFaV74ejZ3sM01LyEKk4ugNQ==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-transform-react-display-name": "^7.23.3", - "@babel/plugin-transform-react-jsx": "^7.22.15", - "@babel/plugin-transform-react-jsx-development": "^7.22.5", - "@babel/plugin-transform-react-pure-annotations": "^7.23.3" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-transform-react-display-name": "^7.28.0", + "@babel/plugin-transform-react-jsx": "^7.27.1", + "@babel/plugin-transform-react-jsx-development": "^7.27.1", + "@babel/plugin-transform-react-pure-annotations": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2036,15 +1887,16 @@ } }, "node_modules/@babel/preset-typescript": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.23.3.tgz", - "integrity": "sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.28.5.tgz", + "integrity": "sha512-+bQy5WOI2V6LJZpPVxY+yp66XdZ2yifu0Mc1aP5CQKgjn4QM5IN2i5fAZ4xKop47pr8rpVhiAeu+nDQa12C8+g==", + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-syntax-jsx": "^7.23.3", - "@babel/plugin-transform-modules-commonjs": "^7.23.3", - "@babel/plugin-transform-typescript": "^7.23.3" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-syntax-jsx": "^7.27.1", + "@babel/plugin-transform-modules-commonjs": "^7.27.1", + "@babel/plugin-transform-typescript": "^7.28.5" }, "engines": { "node": ">=6.9.0" @@ -2053,75 +1905,55 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/regjsgen": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==" - }, "node_modules/@babel/runtime": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.4.tgz", - "integrity": "sha512-2Yv65nlWnWlSpe3fXEyX5i7fx5kIKo4Qbcj+hMO0odwaneFjfXw5fdum+4yL20O0QiaHpia0cYQ9xpNMqrBwHg==", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/runtime-corejs3": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.23.4.tgz", - "integrity": "sha512-zQyB4MJGM+rvd4pM58n26kf3xbiitw9MHzL8oLiBMKb8MCtVDfV5nDzzJWWzLMtbvKI9wN6XwJYl479qF4JluQ==", - "dependencies": { - "core-js-pure": "^3.30.2", - "regenerator-runtime": "^0.14.0" - }, + "version": "7.29.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.2.tgz", + "integrity": "sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz", + "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==", + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" + "@babel/code-frame": "^7.28.6", + "@babel/parser": "^7.28.6", + "@babel/types": "^7.28.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.4.tgz", - "integrity": "sha512-IYM8wSUwunWTB6tFC2dkKZhxbIjHoWemdK+3f8/wq8aKhbUscxD5MX72ubd90fxvFknaLPeGw5ycU84V1obHJg==", - "dependencies": { - "@babel/code-frame": "^7.23.4", - "@babel/generator": "^7.23.4", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.4", - "@babel/types": "^7.23.4", - "debug": "^4.1.0", - "globals": "^11.1.0" + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz", + "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.0", + "@babel/generator": "^7.29.0", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.29.0", + "@babel/template": "^7.28.6", + "@babel/types": "^7.29.0", + "debug": "^4.3.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/types": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.4.tgz", - "integrity": "sha512-7uIFwVYpoplT5jp/kVv6EF93VaJ8H+Yn5IczYiaAi98ajzjfoZfslet/e0sLh+wVBjb2qqIut1b0S26VSafsSQ==", + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", + "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", + "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" }, "engines": { "node": ">=6.9.0" @@ -2131,181 +1963,1607 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "license": "MIT", "optional": true, "engines": { "node": ">=0.1.90" } }, - "node_modules/@discoveryjs/json-ext": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", - "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "node_modules/@csstools/cascade-layer-name-parser": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-2.0.5.tgz", + "integrity": "sha512-p1ko5eHgV+MgXFVa4STPKpvPxr6ReS8oS2jzTukjR74i5zJNyWO1ZM1m8YKBXnzDKWfBN1ztLYlHxbVemDD88A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@docsearch/css": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.6.0.tgz", - "integrity": "sha512-+sbxb71sWre+PwDK7X2T8+bhS6clcVMLwBPznX45Qu6opJcgRjAp7gYSDzVFp187J+feSj5dNBN1mJoi6ckkUQ==" - }, - "node_modules/@docsearch/react": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.6.0.tgz", - "integrity": "sha512-HUFut4ztcVNmqy9gp/wxNbC7pTOHhgVVkHVGCACTuLhUKUhKAF9KYHJtMiLUJxEqiFLQiuri1fWF8zqwM/cu1w==", - "dependencies": { - "@algolia/autocomplete-core": "1.9.3", - "@algolia/autocomplete-preset-algolia": "1.9.3", - "@docsearch/css": "3.6.0", - "algoliasearch": "^4.19.1" + "node": ">=18" }, "peerDependencies": { - "@types/react": ">= 16.8.0 < 19.0.0", - "react": ">= 16.8.0 < 19.0.0", - "react-dom": ">= 16.8.0 < 19.0.0", - "search-insights": ">= 1 < 3" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "react": { - "optional": true - }, - "react-dom": { - "optional": true + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/color-helpers": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.1.0.tgz", + "integrity": "sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" }, - "search-insights": { - "optional": true + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" } }, - "node_modules/@docusaurus/core": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.4.0.tgz", - "integrity": "sha512-g+0wwmN2UJsBqy2fQRQ6fhXruoEa62JDeEa5d8IdTJlMoaDaEDfHh7WjwGRn4opuTQWpjAwP/fbcgyHKlE+64w==", - "dependencies": { - "@babel/core": "^7.23.3", - "@babel/generator": "^7.23.3", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-transform-runtime": "^7.22.9", - "@babel/preset-env": "^7.22.9", - "@babel/preset-react": "^7.22.5", - "@babel/preset-typescript": "^7.22.5", - "@babel/runtime": "^7.22.6", - "@babel/runtime-corejs3": "^7.22.6", - "@babel/traverse": "^7.22.8", - "@docusaurus/cssnano-preset": "3.4.0", - "@docusaurus/logger": "3.4.0", - "@docusaurus/mdx-loader": "3.4.0", - "@docusaurus/utils": "3.4.0", - "@docusaurus/utils-common": "3.4.0", - "@docusaurus/utils-validation": "3.4.0", - "autoprefixer": "^10.4.14", - "babel-loader": "^9.1.3", - "babel-plugin-dynamic-import-node": "^2.3.3", - "boxen": "^6.2.1", - "chalk": "^4.1.2", - "chokidar": "^3.5.3", - "clean-css": "^5.3.2", - "cli-table3": "^0.6.3", - "combine-promises": "^1.1.0", - "commander": "^5.1.0", - "copy-webpack-plugin": "^11.0.0", - "core-js": "^3.31.1", - "css-loader": "^6.8.1", - "css-minimizer-webpack-plugin": "^5.0.1", - "cssnano": "^6.1.2", - "del": "^6.1.1", - "detect-port": "^1.5.1", - "escape-html": "^1.0.3", - "eta": "^2.2.0", - "eval": "^0.1.8", - "file-loader": "^6.2.0", - "fs-extra": "^11.1.1", - "html-minifier-terser": "^7.2.0", - "html-tags": "^3.3.1", - "html-webpack-plugin": "^5.5.3", - "leven": "^3.1.0", - "lodash": "^4.17.21", - "mini-css-extract-plugin": "^2.7.6", - "p-map": "^4.0.0", - "postcss": "^8.4.26", - "postcss-loader": "^7.3.3", - "prompts": "^2.4.2", - "react-dev-utils": "^12.0.1", - "react-helmet-async": "^1.3.0", - "react-loadable": "npm:@docusaurus/react-loadable@6.0.0", - "react-loadable-ssr-addon-v5-slorber": "^1.0.1", - "react-router": "^5.3.4", - "react-router-config": "^5.1.1", - "react-router-dom": "^5.3.4", - "rtl-detect": "^1.0.4", - "semver": "^7.5.4", - "serve-handler": "^6.1.5", - "shelljs": "^0.8.5", - "terser-webpack-plugin": "^5.3.9", - "tslib": "^2.6.0", - "update-notifier": "^6.0.2", - "url-loader": "^4.1.1", - "webpack": "^5.88.1", - "webpack-bundle-analyzer": "^4.9.0", - "webpack-dev-server": "^4.15.1", - "webpack-merge": "^5.9.0", - "webpackbar": "^5.0.2" - }, - "bin": { - "docusaurus": "bin/docusaurus.mjs" - }, + "node_modules/@csstools/css-calc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.4.tgz", + "integrity": "sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", "engines": { - "node": ">=18.0" + "node": ">=18" }, "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" } }, - "node_modules/@docusaurus/cssnano-preset": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.4.0.tgz", - "integrity": "sha512-qwLFSz6v/pZHy/UP32IrprmH5ORce86BGtN0eBtG75PpzQJAzp9gefspox+s8IEOr0oZKuQ/nhzZ3xwyc3jYJQ==", + "node_modules/@csstools/css-color-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.1.0.tgz", + "integrity": "sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", "dependencies": { - "cssnano-preset-advanced": "^6.1.2", - "postcss": "^8.4.38", - "postcss-sort-media-queries": "^5.2.0", - "tslib": "^2.6.0" + "@csstools/color-helpers": "^5.1.0", + "@csstools/css-calc": "^2.1.4" }, "engines": { - "node": ">=18.0" + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" } }, - "node_modules/@docusaurus/logger": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.4.0.tgz", - "integrity": "sha512-bZwkX+9SJ8lB9kVRkXw+xvHYSMGG4bpYHKGXeXFvyVc79NMeeBSGgzd4TQLHH+DYeOJoCdl8flrFJVxlZ0wo/Q==", + "node_modules/@csstools/css-parser-algorithms": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz", + "integrity": "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/css-tokenizer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz", + "integrity": "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@csstools/media-query-list-parser": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.3.tgz", + "integrity": "sha512-HAYH7d3TLRHDOUQK4mZKf9k9Ph/m8Akstg66ywKR4SFAigjs3yBiUeZtFxywiTm5moZMAp/5W/ZuFnNXXYLuuQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/postcss-alpha-function": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-alpha-function/-/postcss-alpha-function-1.0.1.tgz", + "integrity": "sha512-isfLLwksH3yHkFXfCI2Gcaqg7wGGHZZwunoJzEZk0yKYIokgre6hYVFibKL3SYAoR1kBXova8LB+JoO5vZzi9w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-cascade-layers": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-5.0.2.tgz", + "integrity": "sha512-nWBE08nhO8uWl6kSAeCx4im7QfVko3zLrtgWZY4/bP87zrSPpSyN/3W3TDqz1jJuH+kbKOHXg5rJnK+ZVYcFFg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/selector-specificity": "^5.0.0", + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-cascade-layers/node_modules/@csstools/selector-specificity": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz", + "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss-selector-parser": "^7.0.0" + } + }, + "node_modules/@csstools/postcss-cascade-layers/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@csstools/postcss-color-function": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-4.0.12.tgz", + "integrity": "sha512-yx3cljQKRaSBc2hfh8rMZFZzChaFgwmO2JfFgFr1vMcF3C/uyy5I4RFIBOIWGq1D+XbKCG789CGkG6zzkLpagA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-color-function-display-p3-linear": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function-display-p3-linear/-/postcss-color-function-display-p3-linear-1.0.1.tgz", + "integrity": "sha512-E5qusdzhlmO1TztYzDIi8XPdPoYOjoTY6HBYBCYSj+Gn4gQRBlvjgPQXzfzuPQqt8EhkC/SzPKObg4Mbn8/xMg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-color-mix-function": { + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-3.0.12.tgz", + "integrity": "sha512-4STERZfCP5Jcs13P1U5pTvI9SkgLgfMUMhdXW8IlJWkzOOOqhZIjcNhWtNJZes2nkBDsIKJ0CJtFtuaZ00moag==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-color-mix-variadic-function-arguments": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-variadic-function-arguments/-/postcss-color-mix-variadic-function-arguments-1.0.2.tgz", + "integrity": "sha512-rM67Gp9lRAkTo+X31DUqMEq+iK+EFqsidfecmhrteErxJZb6tUoJBVQca1Vn1GpDql1s1rD1pKcuYzMsg7Z1KQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-content-alt-text": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@csstools/postcss-content-alt-text/-/postcss-content-alt-text-2.0.8.tgz", + "integrity": "sha512-9SfEW9QCxEpTlNMnpSqFaHyzsiRpZ5J5+KqCu1u5/eEJAWsMhzT40qf0FIbeeglEvrGRMdDzAxMIz3wqoGSb+Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-contrast-color-function": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@csstools/postcss-contrast-color-function/-/postcss-contrast-color-function-2.0.12.tgz", + "integrity": "sha512-YbwWckjK3qwKjeYz/CijgcS7WDUCtKTd8ShLztm3/i5dhh4NaqzsbYnhm4bjrpFpnLZ31jVcbK8YL77z3GBPzA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-exponential-functions": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@csstools/postcss-exponential-functions/-/postcss-exponential-functions-2.0.9.tgz", + "integrity": "sha512-abg2W/PI3HXwS/CZshSa79kNWNZHdJPMBXeZNyPQFbbj8sKO3jXxOt/wF7juJVjyDTc6JrvaUZYFcSBZBhaxjw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-calc": "^2.1.4", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-font-format-keywords": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-4.0.0.tgz", + "integrity": "sha512-usBzw9aCRDvchpok6C+4TXC57btc4bJtmKQWOHQxOVKen1ZfVqBUuCZ/wuqdX5GHsD0NRSr9XTP+5ID1ZZQBXw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-gamut-mapping": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-2.0.11.tgz", + "integrity": "sha512-fCpCUgZNE2piVJKC76zFsgVW1apF6dpYsqGyH8SIeCcM4pTEsRTWTLCaJIMKFEundsCKwY1rwfhtrio04RJ4Dw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-gradients-interpolation-method": { + "version": "5.0.12", + "resolved": "https://registry.npmjs.org/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-5.0.12.tgz", + "integrity": "sha512-jugzjwkUY0wtNrZlFeyXzimUL3hN4xMvoPnIXxoZqxDvjZRiSh+itgHcVUWzJ2VwD/VAMEgCLvtaJHX+4Vj3Ow==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-hwb-function": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-4.0.12.tgz", + "integrity": "sha512-mL/+88Z53KrE4JdePYFJAQWFrcADEqsLprExCM04GDNgHIztwFzj0Mbhd/yxMBngq0NIlz58VVxjt5abNs1VhA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-ic-unit": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-4.0.4.tgz", + "integrity": "sha512-yQ4VmossuOAql65sCPppVO1yfb7hDscf4GseF0VCA/DTDaBc0Wtf8MTqVPfjGYlT5+2buokG0Gp7y0atYZpwjg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-initial": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-initial/-/postcss-initial-2.0.1.tgz", + "integrity": "sha512-L1wLVMSAZ4wovznquK0xmC7QSctzO4D0Is590bxpGqhqjboLXYA16dWZpfwImkdOgACdQ9PqXsuRroW6qPlEsg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-is-pseudo-class": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-5.0.3.tgz", + "integrity": "sha512-jS/TY4SpG4gszAtIg7Qnf3AS2pjcUM5SzxpApOrlndMeGhIbaTzWBzzP/IApXoNWEW7OhcjkRT48jnAUIFXhAQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/selector-specificity": "^5.0.0", + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-is-pseudo-class/node_modules/@csstools/selector-specificity": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz", + "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss-selector-parser": "^7.0.0" + } + }, + "node_modules/@csstools/postcss-is-pseudo-class/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@csstools/postcss-light-dark-function": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@csstools/postcss-light-dark-function/-/postcss-light-dark-function-2.0.11.tgz", + "integrity": "sha512-fNJcKXJdPM3Lyrbmgw2OBbaioU7yuKZtiXClf4sGdQttitijYlZMD5K7HrC/eF83VRWRrYq6OZ0Lx92leV2LFA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-logical-float-and-clear": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-float-and-clear/-/postcss-logical-float-and-clear-3.0.0.tgz", + "integrity": "sha512-SEmaHMszwakI2rqKRJgE+8rpotFfne1ZS6bZqBoQIicFyV+xT1UF42eORPxJkVJVrH9C0ctUgwMSn3BLOIZldQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-logical-overflow": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-overflow/-/postcss-logical-overflow-2.0.0.tgz", + "integrity": "sha512-spzR1MInxPuXKEX2csMamshR4LRaSZ3UXVaRGjeQxl70ySxOhMpP2252RAFsg8QyyBXBzuVOOdx1+bVO5bPIzA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-logical-overscroll-behavior": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-overscroll-behavior/-/postcss-logical-overscroll-behavior-2.0.0.tgz", + "integrity": "sha512-e/webMjoGOSYfqLunyzByZj5KKe5oyVg/YSbie99VEaSDE2kimFm0q1f6t/6Jo+VVCQ/jbe2Xy+uX+C4xzWs4w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-logical-resize": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-resize/-/postcss-logical-resize-3.0.0.tgz", + "integrity": "sha512-DFbHQOFW/+I+MY4Ycd/QN6Dg4Hcbb50elIJCfnwkRTCX05G11SwViI5BbBlg9iHRl4ytB7pmY5ieAFk3ws7yyg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-logical-viewport-units": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-viewport-units/-/postcss-logical-viewport-units-3.0.4.tgz", + "integrity": "sha512-q+eHV1haXA4w9xBwZLKjVKAWn3W2CMqmpNpZUk5kRprvSiBEGMgrNH3/sJZ8UA3JgyHaOt3jwT9uFa4wLX4EqQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-media-minmax": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@csstools/postcss-media-minmax/-/postcss-media-minmax-2.0.9.tgz", + "integrity": "sha512-af9Qw3uS3JhYLnCbqtZ9crTvvkR+0Se+bBqSr7ykAnl9yKhk6895z9rf+2F4dClIDJWxgn0iZZ1PSdkhrbs2ig==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/css-calc": "^2.1.4", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/media-query-list-parser": "^4.0.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@csstools/postcss-media-queries-aspect-ratio-number-values/-/postcss-media-queries-aspect-ratio-number-values-3.0.5.tgz", + "integrity": "sha512-zhAe31xaaXOY2Px8IYfoVTB3wglbJUVigGphFLj6exb7cjZRH9A6adyE22XfFK3P2PzwRk0VDeTJmaxpluyrDg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/media-query-list-parser": "^4.0.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-nested-calc": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-nested-calc/-/postcss-nested-calc-4.0.0.tgz", + "integrity": "sha512-jMYDdqrQQxE7k9+KjstC3NbsmC063n1FTPLCgCRS2/qHUbHM0mNy9pIn4QIiQGs9I/Bg98vMqw7mJXBxa0N88A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-normalize-display-values": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.1.tgz", + "integrity": "sha512-TQUGBuRvxdc7TgNSTevYqrL8oItxiwPDixk20qCB5me/W8uF7BPbhRrAvFuhEoywQp/woRsUZ6SJ+sU5idZAIA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-oklab-function": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-4.0.12.tgz", + "integrity": "sha512-HhlSmnE1NKBhXsTnNGjxvhryKtO7tJd1w42DKOGFD6jSHtYOrsJTQDKPMwvOfrzUAk8t7GcpIfRyM7ssqHpFjg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-position-area-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-position-area-property/-/postcss-position-area-property-1.0.0.tgz", + "integrity": "sha512-fUP6KR8qV2NuUZV3Cw8itx0Ep90aRjAZxAEzC3vrl6yjFv+pFsQbR18UuQctEKmA72K9O27CoYiKEgXxkqjg8Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-progressive-custom-properties": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-4.2.1.tgz", + "integrity": "sha512-uPiiXf7IEKtUQXsxu6uWtOlRMXd2QWWy5fhxHDnPdXKCQckPP3E34ZgDoZ62r2iT+UOgWsSbM4NvHE5m3mAEdw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-property-rule-prelude-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-property-rule-prelude-list/-/postcss-property-rule-prelude-list-1.0.0.tgz", + "integrity": "sha512-IxuQjUXq19fobgmSSvUDO7fVwijDJaZMvWQugxfEUxmjBeDCVaDuMpsZ31MsTm5xbnhA+ElDi0+rQ7sQQGisFA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-random-function": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-random-function/-/postcss-random-function-2.0.1.tgz", + "integrity": "sha512-q+FQaNiRBhnoSNo+GzqGOIBKoHQ43lYz0ICrV+UudfWnEF6ksS6DsBIJSISKQT2Bvu3g4k6r7t0zYrk5pDlo8w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-calc": "^2.1.4", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-relative-color-syntax": { + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-3.0.12.tgz", + "integrity": "sha512-0RLIeONxu/mtxRtf3o41Lq2ghLimw0w9ByLWnnEVuy89exmEEq8bynveBxNW3nyHqLAFEeNtVEmC1QK9MZ8Huw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-scope-pseudo-class": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-scope-pseudo-class/-/postcss-scope-pseudo-class-4.0.1.tgz", + "integrity": "sha512-IMi9FwtH6LMNuLea1bjVMQAsUhFxJnyLSgOp/cpv5hrzWmrUYU5fm0EguNDIIOHUqzXode8F/1qkC/tEo/qN8Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-scope-pseudo-class/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@csstools/postcss-sign-functions": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@csstools/postcss-sign-functions/-/postcss-sign-functions-1.1.4.tgz", + "integrity": "sha512-P97h1XqRPcfcJndFdG95Gv/6ZzxUBBISem0IDqPZ7WMvc/wlO+yU0c5D/OCpZ5TJoTt63Ok3knGk64N+o6L2Pg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-calc": "^2.1.4", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-stepped-value-functions": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-4.0.9.tgz", + "integrity": "sha512-h9btycWrsex4dNLeQfyU3y3w40LMQooJWFMm/SK9lrKguHDcFl4VMkncKKoXi2z5rM9YGWbUQABI8BT2UydIcA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-calc": "^2.1.4", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-syntax-descriptor-syntax-production": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-syntax-descriptor-syntax-production/-/postcss-syntax-descriptor-syntax-production-1.0.1.tgz", + "integrity": "sha512-GneqQWefjM//f4hJ/Kbox0C6f2T7+pi4/fqTqOFGTL3EjnvOReTqO1qUQ30CaUjkwjYq9qZ41hzarrAxCc4gow==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-tokenizer": "^3.0.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-system-ui-font-family": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-system-ui-font-family/-/postcss-system-ui-font-family-1.0.0.tgz", + "integrity": "sha512-s3xdBvfWYfoPSBsikDXbuorcMG1nN1M6GdU0qBsGfcmNR0A/qhloQZpTxjA3Xsyrk1VJvwb2pOfiOT3at/DuIQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-text-decoration-shorthand": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-4.0.3.tgz", + "integrity": "sha512-KSkGgZfx0kQjRIYnpsD7X2Om9BUXX/Kii77VBifQW9Ih929hK0KNjVngHDH0bFB9GmfWcR9vJYJJRvw/NQjkrA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/color-helpers": "^5.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-trigonometric-functions": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-4.0.9.tgz", + "integrity": "sha512-Hnh5zJUdpNrJqK9v1/E3BbrQhaDTj5YiX7P61TOvUhoDHnUmsNNxcDAgkQ32RrcWx9GVUvfUNPcUkn8R3vIX6A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-calc": "^2.1.4", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-unset-value": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-4.0.0.tgz", + "integrity": "sha512-cBz3tOCI5Fw6NIFEwU3RiwK6mn3nKegjpJuzCndoGq3BZPkUjnsq7uQmIeMNeMbMk7YD2MfKcgCpZwX5jyXqCA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/utilities": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@csstools/utilities/-/utilities-2.0.0.tgz", + "integrity": "sha512-5VdOr0Z71u+Yp3ozOx8T11N703wIFGVRgOWbOZMKgglPJsWA54MRIoMNVMa7shUToIhx5J8vX4sOZgD2XiihiQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@docsearch/core": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/@docsearch/core/-/core-4.6.2.tgz", + "integrity": "sha512-/S0e6Dj7Zcm8m9Rru49YEX49dhU11be68c+S/BCyN8zQsTTgkKzXlhRbVL5mV6lOLC2+ZRRryaTdcm070Ug2oA==", + "license": "MIT", + "peerDependencies": { + "@types/react": ">= 16.8.0 < 20.0.0", + "react": ">= 16.8.0 < 20.0.0", + "react-dom": ">= 16.8.0 < 20.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/@docsearch/css": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-4.6.2.tgz", + "integrity": "sha512-fH/cn8BjEEdM2nJdjNMHIvOVYupG6AIDtFVDgIZrNzdCSj4KXr9kd+hsehqsNGYjpUjObeKYKvgy/IwCb1jZYQ==", + "license": "MIT" + }, + "node_modules/@docsearch/react": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-4.6.2.tgz", + "integrity": "sha512-/BbtGFtqVOGwZx0dw/UfhN/0/DmMQYnulY4iv0tPRhC2JCXv0ka/+izwt3Jzo1ZxXS/2eMvv9zHsBJOK1I9f/w==", + "license": "MIT", + "dependencies": { + "@algolia/autocomplete-core": "1.19.2", + "@docsearch/core": "4.6.2", + "@docsearch/css": "4.6.2" + }, + "peerDependencies": { + "@types/react": ">= 16.8.0 < 20.0.0", + "react": ">= 16.8.0 < 20.0.0", + "react-dom": ">= 16.8.0 < 20.0.0", + "search-insights": ">= 1 < 3" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + }, + "search-insights": { + "optional": true + } + } + }, + "node_modules/@docsearch/react/node_modules/@algolia/autocomplete-core": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.19.2.tgz", + "integrity": "sha512-mKv7RyuAzXvwmq+0XRK8HqZXt9iZ5Kkm2huLjgn5JoCPtDy+oh9yxUMfDDaVCw0oyzZ1isdJBc7l9nuCyyR7Nw==", + "license": "MIT", + "dependencies": { + "@algolia/autocomplete-plugin-algolia-insights": "1.19.2", + "@algolia/autocomplete-shared": "1.19.2" + } + }, + "node_modules/@docsearch/react/node_modules/@algolia/autocomplete-plugin-algolia-insights": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.19.2.tgz", + "integrity": "sha512-TjxbcC/r4vwmnZaPwrHtkXNeqvlpdyR+oR9Wi2XyfORkiGkLTVhX2j+O9SaCCINbKoDfc+c2PB8NjfOnz7+oKg==", + "license": "MIT", + "dependencies": { + "@algolia/autocomplete-shared": "1.19.2" + }, + "peerDependencies": { + "search-insights": ">= 1 < 3" + } + }, + "node_modules/@docsearch/react/node_modules/@algolia/autocomplete-shared": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.19.2.tgz", + "integrity": "sha512-jEazxZTVD2nLrC+wYlVHQgpBoBB5KPStrJxLzsIFl6Kqd1AlG9sIAGl39V5tECLpIQzB3Qa2T6ZPJ1ChkwMK/w==", + "license": "MIT", + "peerDependencies": { + "@algolia/client-search": ">= 4.9.1 < 6", + "algoliasearch": ">= 4.9.1 < 6" + } + }, + "node_modules/@docusaurus/babel": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@docusaurus/babel/-/babel-3.10.0.tgz", + "integrity": "sha512-mqCJhCZNZUDg0zgDEaPTM4DnRsisa24HdqTy/qn/MQlbwhTb4WVaZg6ZyX6yIVKqTz8fS1hBMgM+98z+BeJJDg==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.25.9", + "@babel/generator": "^7.25.9", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-transform-runtime": "^7.25.9", + "@babel/preset-env": "^7.25.9", + "@babel/preset-react": "^7.25.9", + "@babel/preset-typescript": "^7.25.9", + "@babel/runtime": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@docusaurus/logger": "3.10.0", + "@docusaurus/utils": "3.10.0", + "babel-plugin-dynamic-import-node": "^2.3.3", + "fs-extra": "^11.1.1", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=20.0" + } + }, + "node_modules/@docusaurus/bundler": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@docusaurus/bundler/-/bundler-3.10.0.tgz", + "integrity": "sha512-iONUGZGgp+lAkw/cJZH6irONcF4p8+278IsdRlq8lYhxGjkoNUs0w7F4gVXBYSNChq5KG5/JleTSsdJySShxow==", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.25.9", + "@docusaurus/babel": "3.10.0", + "@docusaurus/cssnano-preset": "3.10.0", + "@docusaurus/logger": "3.10.0", + "@docusaurus/types": "3.10.0", + "@docusaurus/utils": "3.10.0", + "babel-loader": "^9.2.1", + "clean-css": "^5.3.3", + "copy-webpack-plugin": "^11.0.0", + "css-loader": "^6.11.0", + "css-minimizer-webpack-plugin": "^5.0.1", + "cssnano": "^6.1.2", + "file-loader": "^6.2.0", + "html-minifier-terser": "^7.2.0", + "mini-css-extract-plugin": "^2.9.2", + "null-loader": "^4.0.1", + "postcss": "^8.5.4", + "postcss-loader": "^7.3.4", + "postcss-preset-env": "^10.2.1", + "terser-webpack-plugin": "^5.3.9", + "tslib": "^2.6.0", + "url-loader": "^4.1.1", + "webpack": "^5.95.0", + "webpackbar": "^6.0.1" + }, + "engines": { + "node": ">=20.0" + }, + "peerDependencies": { + "@docusaurus/faster": "*" + }, + "peerDependenciesMeta": { + "@docusaurus/faster": { + "optional": true + } + } + }, + "node_modules/@docusaurus/core": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.10.0.tgz", + "integrity": "sha512-mgLdQsO8xppnQZc3LPi+Mf+PkPeyxJeIx11AXAq/14fsaMefInQiMEZUUmrc7J+956G/f7MwE7tn8KZgi3iRcA==", + "license": "MIT", + "dependencies": { + "@docusaurus/babel": "3.10.0", + "@docusaurus/bundler": "3.10.0", + "@docusaurus/logger": "3.10.0", + "@docusaurus/mdx-loader": "3.10.0", + "@docusaurus/utils": "3.10.0", + "@docusaurus/utils-common": "3.10.0", + "@docusaurus/utils-validation": "3.10.0", + "boxen": "^6.2.1", + "chalk": "^4.1.2", + "chokidar": "^3.5.3", + "cli-table3": "^0.6.3", + "combine-promises": "^1.1.0", + "commander": "^5.1.0", + "core-js": "^3.31.1", + "detect-port": "^1.5.1", + "escape-html": "^1.0.3", + "eta": "^2.2.0", + "eval": "^0.1.8", + "execa": "^5.1.1", + "fs-extra": "^11.1.1", + "html-tags": "^3.3.1", + "html-webpack-plugin": "^5.6.0", + "leven": "^3.1.0", + "lodash": "^4.17.21", + "open": "^8.4.0", + "p-map": "^4.0.0", + "prompts": "^2.4.2", + "react-helmet-async": "npm:@slorber/react-helmet-async@1.3.0", + "react-loadable": "npm:@docusaurus/react-loadable@6.0.0", + "react-loadable-ssr-addon-v5-slorber": "^1.0.3", + "react-router": "^5.3.4", + "react-router-config": "^5.1.1", + "react-router-dom": "^5.3.4", + "semver": "^7.5.4", + "serve-handler": "^6.1.7", + "tinypool": "^1.0.2", + "tslib": "^2.6.0", + "update-notifier": "^6.0.2", + "webpack": "^5.95.0", + "webpack-bundle-analyzer": "^4.10.2", + "webpack-dev-server": "^5.2.2", + "webpack-merge": "^6.0.1" + }, + "bin": { + "docusaurus": "bin/docusaurus.mjs" + }, + "engines": { + "node": ">=20.0" + }, + "peerDependencies": { + "@docusaurus/faster": "*", + "@mdx-js/react": "^3.0.0", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@docusaurus/faster": { + "optional": true + } + } + }, + "node_modules/@docusaurus/cssnano-preset": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.10.0.tgz", + "integrity": "sha512-qzSshTO1DB3TYW+dPUal5KHM7XPc5YQfzF3Kdb2NDACJUyGbNcFtw3tGkCJlYwhNCRKbZcmwraKUS1i5dcHdGg==", + "license": "MIT", + "dependencies": { + "cssnano-preset-advanced": "^6.1.2", + "postcss": "^8.5.4", + "postcss-sort-media-queries": "^5.2.0", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=20.0" + } + }, + "node_modules/@docusaurus/logger": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.10.0.tgz", + "integrity": "sha512-9jrZzFuBH1LDRlZ7cznAhCLmAZ3HSDqgwdrSSZdGHq9SPUOQgXXu8mnxe2ZRB9NS1PCpMTIOVUqDtZPIhMafZg==", + "license": "MIT", "dependencies": { "chalk": "^4.1.2", "tslib": "^2.6.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" } }, "node_modules/@docusaurus/mdx-loader": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.4.0.tgz", - "integrity": "sha512-kSSbrrk4nTjf4d+wtBA9H+FGauf2gCax89kV8SUSJu3qaTdSIKdWERlngsiHaCFgZ7laTJ8a67UFf+xlFPtuTw==", - "dependencies": { - "@docusaurus/logger": "3.4.0", - "@docusaurus/utils": "3.4.0", - "@docusaurus/utils-validation": "3.4.0", + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.10.0.tgz", + "integrity": "sha512-mQQV97080AH4PYNs087l202NMDqRopZA4mg5W76ZZyTFrmWhJ3mHg+8A+drJVENxw5/Q+wHMHLgsx+9z1nEs0A==", + "license": "MIT", + "dependencies": { + "@docusaurus/logger": "3.10.0", + "@docusaurus/utils": "3.10.0", + "@docusaurus/utils-validation": "3.10.0", "@mdx-js/mdx": "^3.0.0", "@slorber/remark-comment": "^1.0.0", "escape-html": "^1.0.3", "estree-util-value-to-estree": "^3.0.1", "file-loader": "^6.2.0", "fs-extra": "^11.1.1", - "image-size": "^1.0.2", + "image-size": "^2.0.2", "mdast-util-mdx": "^3.0.0", "mdast-util-to-string": "^4.0.0", "rehype-raw": "^7.0.0", @@ -2322,24 +3580,25 @@ "webpack": "^5.88.1" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" } }, "node_modules/@docusaurus/module-type-aliases": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.4.0.tgz", - "integrity": "sha512-A1AyS8WF5Bkjnb8s+guTDuYmUiwJzNrtchebBHpc0gz0PyHJNMaybUlSrmJjHVcGrya0LKI4YcR3lBDQfXRYLw==", + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.10.0.tgz", + "integrity": "sha512-/1O0Zg8w3DFrYX/I6Fbss7OJrtZw1QoyjDhegiFNHVi9A9Y0gQ3jUAytVxF6ywpAWpLyLxch8nN8H/V3XfzdJQ==", + "license": "MIT", "dependencies": { - "@docusaurus/types": "3.4.0", + "@docusaurus/types": "3.10.0", "@types/history": "^4.7.11", "@types/react": "*", "@types/react-router-config": "*", "@types/react-router-dom": "*", - "react-helmet-async": "*", + "react-helmet-async": "npm:@slorber/react-helmet-async@1.3.0", "react-loadable": "npm:@docusaurus/react-loadable@6.0.0" }, "peerDependencies": { @@ -2348,22 +3607,25 @@ } }, "node_modules/@docusaurus/plugin-content-blog": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.4.0.tgz", - "integrity": "sha512-vv6ZAj78ibR5Jh7XBUT4ndIjmlAxkijM3Sx5MAAzC1gyv0vupDQNhzuFg1USQmQVj3P5I6bquk12etPV3LJ+Xw==", - "dependencies": { - "@docusaurus/core": "3.4.0", - "@docusaurus/logger": "3.4.0", - "@docusaurus/mdx-loader": "3.4.0", - "@docusaurus/types": "3.4.0", - "@docusaurus/utils": "3.4.0", - "@docusaurus/utils-common": "3.4.0", - "@docusaurus/utils-validation": "3.4.0", - "cheerio": "^1.0.0-rc.12", + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.10.0.tgz", + "integrity": "sha512-RuTz68DhB7CL96QO5UsFbciD7GPYq6QV+YMfF9V0+N4ZgLhJIBgpVAr8GobrKF6NRe5cyWWETU5z5T834piG9g==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.10.0", + "@docusaurus/logger": "3.10.0", + "@docusaurus/mdx-loader": "3.10.0", + "@docusaurus/theme-common": "3.10.0", + "@docusaurus/types": "3.10.0", + "@docusaurus/utils": "3.10.0", + "@docusaurus/utils-common": "3.10.0", + "@docusaurus/utils-validation": "3.10.0", + "cheerio": "1.0.0-rc.12", + "combine-promises": "^1.1.0", "feed": "^4.2.2", "fs-extra": "^11.1.1", "lodash": "^4.17.21", - "reading-time": "^1.5.0", + "schema-dts": "^1.1.2", "srcset": "^4.0.0", "tslib": "^2.6.0", "unist-util-visit": "^5.0.0", @@ -2371,214 +3633,268 @@ "webpack": "^5.88.1" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" + "@docusaurus/plugin-content-docs": "*", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" } }, "node_modules/@docusaurus/plugin-content-docs": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.4.0.tgz", - "integrity": "sha512-HkUCZffhBo7ocYheD9oZvMcDloRnGhBMOZRyVcAQRFmZPmNqSyISlXA1tQCIxW+r478fty97XXAGjNYzBjpCsg==", - "dependencies": { - "@docusaurus/core": "3.4.0", - "@docusaurus/logger": "3.4.0", - "@docusaurus/mdx-loader": "3.4.0", - "@docusaurus/module-type-aliases": "3.4.0", - "@docusaurus/types": "3.4.0", - "@docusaurus/utils": "3.4.0", - "@docusaurus/utils-common": "3.4.0", - "@docusaurus/utils-validation": "3.4.0", + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.10.0.tgz", + "integrity": "sha512-9BjHhf15ct8Z7TThTC0xRndKDVvMKmVsAGAN7W9FpNRzfMdScOGcXtLmcCWtJGvAezjOJIm6CxOYCy3Io5+RnQ==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.10.0", + "@docusaurus/logger": "3.10.0", + "@docusaurus/mdx-loader": "3.10.0", + "@docusaurus/module-type-aliases": "3.10.0", + "@docusaurus/theme-common": "3.10.0", + "@docusaurus/types": "3.10.0", + "@docusaurus/utils": "3.10.0", + "@docusaurus/utils-common": "3.10.0", + "@docusaurus/utils-validation": "3.10.0", "@types/react-router-config": "^5.0.7", "combine-promises": "^1.1.0", "fs-extra": "^11.1.1", "js-yaml": "^4.1.0", "lodash": "^4.17.21", + "schema-dts": "^1.1.2", "tslib": "^2.6.0", "utility-types": "^3.10.0", "webpack": "^5.88.1" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" } }, "node_modules/@docusaurus/plugin-content-pages": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.4.0.tgz", - "integrity": "sha512-h2+VN/0JjpR8fIkDEAoadNjfR3oLzB+v1qSXbIAKjQ46JAHx3X22n9nqS+BWSQnTnp1AjkjSvZyJMekmcwxzxg==", - "dependencies": { - "@docusaurus/core": "3.4.0", - "@docusaurus/mdx-loader": "3.4.0", - "@docusaurus/types": "3.4.0", - "@docusaurus/utils": "3.4.0", - "@docusaurus/utils-validation": "3.4.0", + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.10.0.tgz", + "integrity": "sha512-5amX8kEJI+nIGtuLVjYk59Y5utEJ3CHETFOPEE4cooIRLA4xM4iBsA6zFgu4ljcopeYwvBzFEWf5g2I6Yb9SkA==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.10.0", + "@docusaurus/mdx-loader": "3.10.0", + "@docusaurus/types": "3.10.0", + "@docusaurus/utils": "3.10.0", + "@docusaurus/utils-validation": "3.10.0", "fs-extra": "^11.1.1", "tslib": "^2.6.0", "webpack": "^5.88.1" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" } }, - "node_modules/@docusaurus/plugin-debug": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-3.4.0.tgz", - "integrity": "sha512-uV7FDUNXGyDSD3PwUaf5YijX91T5/H9SX4ErEcshzwgzWwBtK37nUWPU3ZLJfeTavX3fycTOqk9TglpOLaWkCg==", + "node_modules/@docusaurus/plugin-css-cascade-layers": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-css-cascade-layers/-/plugin-css-cascade-layers-3.10.0.tgz", + "integrity": "sha512-6q1vtt5FJcg5osgkHeM1euErECNqEZ5Z1j69yiNx2luEBIso+nxCkS9nqj8w+MK5X7rvKEToGhFfOFWncs51pQ==", + "license": "MIT", "dependencies": { - "@docusaurus/core": "3.4.0", - "@docusaurus/types": "3.4.0", - "@docusaurus/utils": "3.4.0", + "@docusaurus/core": "3.10.0", + "@docusaurus/types": "3.10.0", + "@docusaurus/utils": "3.10.0", + "@docusaurus/utils-validation": "3.10.0", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=20.0" + } + }, + "node_modules/@docusaurus/plugin-debug": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-3.10.0.tgz", + "integrity": "sha512-XcljKN+G+nmmK69uQA1d9BlYU3ZftG3T3zpK8/7Hf/wrOlV7TA4Ampdrdwkg0jElKdKAoSnPhCO0/U3bQGsVQQ==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.10.0", + "@docusaurus/types": "3.10.0", + "@docusaurus/utils": "3.10.0", "fs-extra": "^11.1.1", - "react-json-view-lite": "^1.2.0", + "react-json-view-lite": "^2.3.0", "tslib": "^2.6.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" } }, "node_modules/@docusaurus/plugin-google-analytics": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.4.0.tgz", - "integrity": "sha512-mCArluxEGi3cmYHqsgpGGt3IyLCrFBxPsxNZ56Mpur0xSlInnIHoeLDH7FvVVcPJRPSQ9/MfRqLsainRw+BojA==", - "dependencies": { - "@docusaurus/core": "3.4.0", - "@docusaurus/types": "3.4.0", - "@docusaurus/utils-validation": "3.4.0", + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.10.0.tgz", + "integrity": "sha512-hTEoodatpBZnUat5nFExbuTGA1lhWGy7vZGuTew5Q3QDtGKFpSJLYmZJhdTjvCFwv1+qQ67hgAVlKdJOB8TXow==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.10.0", + "@docusaurus/types": "3.10.0", + "@docusaurus/utils-validation": "3.10.0", "tslib": "^2.6.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" } }, "node_modules/@docusaurus/plugin-google-gtag": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.4.0.tgz", - "integrity": "sha512-Dsgg6PLAqzZw5wZ4QjUYc8Z2KqJqXxHxq3vIoyoBWiLEEfigIs7wHR+oiWUQy3Zk9MIk6JTYj7tMoQU0Jm3nqA==", - "dependencies": { - "@docusaurus/core": "3.4.0", - "@docusaurus/types": "3.4.0", - "@docusaurus/utils-validation": "3.4.0", - "@types/gtag.js": "^0.0.12", + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.10.0.tgz", + "integrity": "sha512-iB/Zzjv/eelJRbdULZqzWCbgMgJ7ht4ONVjXtN3+BI/muil6S87gQ1OJyPwlXD+ELdKkitC7bWv5eJdYOZLhrQ==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.10.0", + "@docusaurus/types": "3.10.0", + "@docusaurus/utils-validation": "3.10.0", + "@types/gtag.js": "^0.0.20", "tslib": "^2.6.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" } }, "node_modules/@docusaurus/plugin-google-tag-manager": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.4.0.tgz", - "integrity": "sha512-O9tX1BTwxIhgXpOLpFDueYA9DWk69WCbDRrjYoMQtFHSkTyE7RhNgyjSPREUWJb9i+YUg3OrsvrBYRl64FCPCQ==", - "dependencies": { - "@docusaurus/core": "3.4.0", - "@docusaurus/types": "3.4.0", - "@docusaurus/utils-validation": "3.4.0", + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.10.0.tgz", + "integrity": "sha512-FEjZxqKgLHa+Wez/EgKxRwvArNCWIScfyEQD95rot7jkxp6nonjI5XIbGfO/iYhM5Qinwe8aIEQHP2KZtpqVuA==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.10.0", + "@docusaurus/types": "3.10.0", + "@docusaurus/utils-validation": "3.10.0", "tslib": "^2.6.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" } }, "node_modules/@docusaurus/plugin-sitemap": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.4.0.tgz", - "integrity": "sha512-+0VDvx9SmNrFNgwPoeoCha+tRoAjopwT0+pYO1xAbyLcewXSemq+eLxEa46Q1/aoOaJQ0qqHELuQM7iS2gp33Q==", - "dependencies": { - "@docusaurus/core": "3.4.0", - "@docusaurus/logger": "3.4.0", - "@docusaurus/types": "3.4.0", - "@docusaurus/utils": "3.4.0", - "@docusaurus/utils-common": "3.4.0", - "@docusaurus/utils-validation": "3.4.0", + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.10.0.tgz", + "integrity": "sha512-DVTSLjB97hIjmayGnGcBfognCeI7ZuUKgEnU7Oz81JYqXtVg94mVTthDjq3QHTylYNeCUbkaW8VF0FDLcc8pPw==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.10.0", + "@docusaurus/logger": "3.10.0", + "@docusaurus/types": "3.10.0", + "@docusaurus/utils": "3.10.0", + "@docusaurus/utils-common": "3.10.0", + "@docusaurus/utils-validation": "3.10.0", "fs-extra": "^11.1.1", "sitemap": "^7.1.1", "tslib": "^2.6.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" } }, - "node_modules/@docusaurus/preset-classic": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-3.4.0.tgz", - "integrity": "sha512-Ohj6KB7siKqZaQhNJVMBBUzT3Nnp6eTKqO+FXO3qu/n1hJl3YLwVKTWBg28LF7MWrKu46UuYavwMRxud0VyqHg==", - "dependencies": { - "@docusaurus/core": "3.4.0", - "@docusaurus/plugin-content-blog": "3.4.0", - "@docusaurus/plugin-content-docs": "3.4.0", - "@docusaurus/plugin-content-pages": "3.4.0", - "@docusaurus/plugin-debug": "3.4.0", - "@docusaurus/plugin-google-analytics": "3.4.0", - "@docusaurus/plugin-google-gtag": "3.4.0", - "@docusaurus/plugin-google-tag-manager": "3.4.0", - "@docusaurus/plugin-sitemap": "3.4.0", - "@docusaurus/theme-classic": "3.4.0", - "@docusaurus/theme-common": "3.4.0", - "@docusaurus/theme-search-algolia": "3.4.0", - "@docusaurus/types": "3.4.0" + "node_modules/@docusaurus/plugin-svgr": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-svgr/-/plugin-svgr-3.10.0.tgz", + "integrity": "sha512-lNljBESaETZqVBMPqkrGchr+UPT1eZzEPLmJhz8I76BxbjqgsUnRvrq6lQJ9sYjgmgX52KB7kkgczqd2yzoswQ==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.10.0", + "@docusaurus/types": "3.10.0", + "@docusaurus/utils": "3.10.0", + "@docusaurus/utils-validation": "3.10.0", + "@svgr/core": "8.1.0", + "@svgr/webpack": "^8.1.0", + "tslib": "^2.6.0", + "webpack": "^5.88.1" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" + }, + "peerDependencies": { + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + } + }, + "node_modules/@docusaurus/preset-classic": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-3.10.0.tgz", + "integrity": "sha512-kw/Ye02Hc6xP1OdTswy8yxQEHg0fdPpyWAQRxr5b2x3h7LlG2Zgbb5BDFROnXDDMpUxB7YejlocJIE5HIEfpNA==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.10.0", + "@docusaurus/plugin-content-blog": "3.10.0", + "@docusaurus/plugin-content-docs": "3.10.0", + "@docusaurus/plugin-content-pages": "3.10.0", + "@docusaurus/plugin-css-cascade-layers": "3.10.0", + "@docusaurus/plugin-debug": "3.10.0", + "@docusaurus/plugin-google-analytics": "3.10.0", + "@docusaurus/plugin-google-gtag": "3.10.0", + "@docusaurus/plugin-google-tag-manager": "3.10.0", + "@docusaurus/plugin-sitemap": "3.10.0", + "@docusaurus/plugin-svgr": "3.10.0", + "@docusaurus/theme-classic": "3.10.0", + "@docusaurus/theme-common": "3.10.0", + "@docusaurus/theme-search-algolia": "3.10.0", + "@docusaurus/types": "3.10.0" + }, + "engines": { + "node": ">=20.0" }, "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" } }, "node_modules/@docusaurus/theme-classic": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-3.4.0.tgz", - "integrity": "sha512-0IPtmxsBYv2adr1GnZRdMkEQt1YW6tpzrUPj02YxNpvJ5+ju4E13J5tB4nfdaen/tfR1hmpSPlTFPvTf4kwy8Q==", - "dependencies": { - "@docusaurus/core": "3.4.0", - "@docusaurus/mdx-loader": "3.4.0", - "@docusaurus/module-type-aliases": "3.4.0", - "@docusaurus/plugin-content-blog": "3.4.0", - "@docusaurus/plugin-content-docs": "3.4.0", - "@docusaurus/plugin-content-pages": "3.4.0", - "@docusaurus/theme-common": "3.4.0", - "@docusaurus/theme-translations": "3.4.0", - "@docusaurus/types": "3.4.0", - "@docusaurus/utils": "3.4.0", - "@docusaurus/utils-common": "3.4.0", - "@docusaurus/utils-validation": "3.4.0", + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-3.10.0.tgz", + "integrity": "sha512-9msCAsRdN+UG+RwPwCFb0uKy4tGoPh5YfBozXeGUtIeAgsMdn6f3G/oY861luZ3t8S2ET8S9Y/1GnpJAGWytww==", + "license": "MIT", + "dependencies": { + "@docusaurus/core": "3.10.0", + "@docusaurus/logger": "3.10.0", + "@docusaurus/mdx-loader": "3.10.0", + "@docusaurus/module-type-aliases": "3.10.0", + "@docusaurus/plugin-content-blog": "3.10.0", + "@docusaurus/plugin-content-docs": "3.10.0", + "@docusaurus/plugin-content-pages": "3.10.0", + "@docusaurus/theme-common": "3.10.0", + "@docusaurus/theme-translations": "3.10.0", + "@docusaurus/types": "3.10.0", + "@docusaurus/utils": "3.10.0", + "@docusaurus/utils-common": "3.10.0", + "@docusaurus/utils-validation": "3.10.0", "@mdx-js/react": "^3.0.0", "clsx": "^2.0.0", "copy-text-to-clipboard": "^3.2.0", - "infima": "0.2.0-alpha.43", + "infima": "0.2.0-alpha.45", "lodash": "^4.17.21", "nprogress": "^0.2.0", - "postcss": "^8.4.26", + "postcss": "^8.5.4", "prism-react-renderer": "^2.3.0", "prismjs": "^1.29.0", "react-router-dom": "^5.3.4", @@ -2587,33 +3903,32 @@ "utility-types": "^3.10.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" } }, "node_modules/@docusaurus/theme-classic/node_modules/clsx": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/@docusaurus/theme-common": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.4.0.tgz", - "integrity": "sha512-0A27alXuv7ZdCg28oPE8nH/Iz73/IUejVaCazqu9elS4ypjiLhK3KfzdSQBnL/g7YfHSlymZKdiOHEo8fJ0qMA==", - "dependencies": { - "@docusaurus/mdx-loader": "3.4.0", - "@docusaurus/module-type-aliases": "3.4.0", - "@docusaurus/plugin-content-blog": "3.4.0", - "@docusaurus/plugin-content-docs": "3.4.0", - "@docusaurus/plugin-content-pages": "3.4.0", - "@docusaurus/utils": "3.4.0", - "@docusaurus/utils-common": "3.4.0", + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.10.0.tgz", + "integrity": "sha512-Dkp1YXKn16ByCJAdIjbDIOpVb4Z66MsVD694/ilX1vAAHaVEMrVsf/NPd9VgreyFx08rJ9GqV1MtzsbTcU73Kg==", + "license": "MIT", + "dependencies": { + "@docusaurus/mdx-loader": "3.10.0", + "@docusaurus/module-type-aliases": "3.10.0", + "@docusaurus/utils": "3.10.0", + "@docusaurus/utils-common": "3.10.0", "@types/history": "^4.7.11", "@types/react": "*", "@types/react-router-config": "*", @@ -2624,36 +3939,40 @@ "utility-types": "^3.10.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" + "@docusaurus/plugin-content-docs": "*", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" } }, "node_modules/@docusaurus/theme-common/node_modules/clsx": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/@docusaurus/theme-search-algolia": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.4.0.tgz", - "integrity": "sha512-aiHFx7OCw4Wck1z6IoShVdUWIjntC8FHCw9c5dR8r3q4Ynh+zkS8y2eFFunN/DL6RXPzpnvKCg3vhLQYJDmT9Q==", - "dependencies": { - "@docsearch/react": "^3.5.2", - "@docusaurus/core": "3.4.0", - "@docusaurus/logger": "3.4.0", - "@docusaurus/plugin-content-docs": "3.4.0", - "@docusaurus/theme-common": "3.4.0", - "@docusaurus/theme-translations": "3.4.0", - "@docusaurus/utils": "3.4.0", - "@docusaurus/utils-validation": "3.4.0", - "algoliasearch": "^4.18.0", - "algoliasearch-helper": "^3.13.3", + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.10.0.tgz", + "integrity": "sha512-f5FPKI08e3JRG63vR/o4qeuUVHUHzFzM0nnF+AkB67soAZgNsKJRf2qmUZvlQkGwlV+QFkKe4D0ANMh1jToU3g==", + "license": "MIT", + "dependencies": { + "@algolia/autocomplete-core": "^1.19.2", + "@docsearch/react": "^3.9.0 || ^4.3.2", + "@docusaurus/core": "3.10.0", + "@docusaurus/logger": "3.10.0", + "@docusaurus/plugin-content-docs": "3.10.0", + "@docusaurus/theme-common": "3.10.0", + "@docusaurus/theme-translations": "3.10.0", + "@docusaurus/utils": "3.10.0", + "@docusaurus/utils-validation": "3.10.0", + "algoliasearch": "^5.37.0", + "algoliasearch-helper": "^3.26.0", "clsx": "^2.0.0", "eta": "^2.2.0", "fs-extra": "^11.1.1", @@ -2662,62 +3981,82 @@ "utility-types": "^3.10.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" }, "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" } }, "node_modules/@docusaurus/theme-search-algolia/node_modules/clsx": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/@docusaurus/theme-translations": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-3.4.0.tgz", - "integrity": "sha512-zSxCSpmQCCdQU5Q4CnX/ID8CSUUI3fvmq4hU/GNP/XoAWtXo9SAVnM3TzpU8Gb//H3WCsT8mJcTfyOk3d9ftNg==", + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-3.10.0.tgz", + "integrity": "sha512-L9IbFLwTc5+XdgH45iQYufLn0SVZd6BUNelDbKIFlH+E4hhjuj/XHWAFMX/w2K59rfy8wak9McOaei7BSUfRPA==", + "license": "MIT", "dependencies": { "fs-extra": "^11.1.1", "tslib": "^2.6.0" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" } }, "node_modules/@docusaurus/types": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.4.0.tgz", - "integrity": "sha512-4jcDO8kXi5Cf9TcyikB/yKmz14f2RZ2qTRerbHAsS+5InE9ZgSLBNLsewtFTcTOXSVcbU3FoGOzcNWAmU1TR0A==", + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.10.0.tgz", + "integrity": "sha512-F0dOt3FOoO20rRaFK7whGFQZ3ggyrWEdQc/c8/UiRuzhtg4y1w9FspXH5zpCT07uMnJKBPGh+qNazbNlCQqvSw==", + "license": "MIT", "dependencies": { "@mdx-js/mdx": "^3.0.0", "@types/history": "^4.7.11", + "@types/mdast": "^4.0.2", "@types/react": "*", "commander": "^5.1.0", "joi": "^17.9.2", - "react-helmet-async": "^1.3.0", + "react-helmet-async": "npm:@slorber/react-helmet-async@1.3.0", "utility-types": "^3.10.0", - "webpack": "^5.88.1", + "webpack": "^5.95.0", "webpack-merge": "^5.9.0" }, "peerDependencies": { - "react": "^18.0.0", - "react-dom": "^18.0.0" + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" } }, - "node_modules/@docusaurus/utils": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.4.0.tgz", - "integrity": "sha512-fRwnu3L3nnWaXOgs88BVBmG1yGjcQqZNHG+vInhEa2Sz2oQB+ZjbEMO5Rh9ePFpZ0YDiDUhpaVjwmS+AU2F14g==", + "node_modules/@docusaurus/types/node_modules/webpack-merge": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", + "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", + "license": "MIT", "dependencies": { - "@docusaurus/logger": "3.4.0", - "@docusaurus/utils-common": "3.4.0", - "@svgr/webpack": "^8.1.0", + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@docusaurus/utils": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.10.0.tgz", + "integrity": "sha512-T3B0WTigsIthe0D4LQa2k+7bJY+c3WS+Wq2JhcznOSpn1lSN64yNtHQXboCj3QnUs1EuAZszQG1SHKu5w5ZrlA==", + "license": "MIT", + "dependencies": { + "@docusaurus/logger": "3.10.0", + "@docusaurus/types": "3.10.0", + "@docusaurus/utils-common": "3.10.0", "escape-string-regexp": "^4.0.0", + "execa": "^5.1.1", "file-loader": "^6.2.0", "fs-extra": "^11.1.1", "github-slugger": "^1.5.0", @@ -2727,179 +4066,586 @@ "js-yaml": "^4.1.0", "lodash": "^4.17.21", "micromatch": "^4.0.5", + "p-queue": "^6.6.2", "prompts": "^2.4.2", "resolve-pathname": "^3.0.0", - "shelljs": "^0.8.5", "tslib": "^2.6.0", "url-loader": "^4.1.1", "utility-types": "^3.10.0", "webpack": "^5.88.1" }, "engines": { - "node": ">=18.0" + "node": ">=20.0" + } + }, + "node_modules/@docusaurus/utils-common": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.10.0.tgz", + "integrity": "sha512-JyL7sb9QVDgYvudIS81Dv0lsWm7le0vGZSDwsztxWam1SPBqrnkvBy9UYL/amh6pbybkyYTd3CMTkO24oMlCSw==", + "license": "MIT", + "dependencies": { + "@docusaurus/types": "3.10.0", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=20.0" + } + }, + "node_modules/@docusaurus/utils-validation": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.10.0.tgz", + "integrity": "sha512-c+6n2+ZPOJtWWc8Bb/EYdpSDfjYEScdCu9fB/SNjOmSCf1IdVnGf2T53o0tsz0gDRtCL90tifTL0JE/oMuP1Mw==", + "license": "MIT", + "dependencies": { + "@docusaurus/logger": "3.10.0", + "@docusaurus/utils": "3.10.0", + "@docusaurus/utils-common": "3.10.0", + "fs-extra": "^11.2.0", + "joi": "^17.9.2", + "js-yaml": "^4.1.0", + "lodash": "^4.17.21", + "tslib": "^2.6.0" + }, + "engines": { + "node": ">=20.0" + } + }, + "node_modules/@hapi/hoek": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@hapi/topo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "license": "BSD-3-Clause", + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@jsonjoy.com/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/buffers": { + "version": "17.67.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-17.67.0.tgz", + "integrity": "sha512-tfExRpYxBvi32vPs9ZHaTjSP4fHAfzSmcahOfNxtvGHcyJel+aibkPlGeBB+7AoC6hL7lXIE++8okecBxx7lcw==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/codegen": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/codegen/-/codegen-1.0.0.tgz", + "integrity": "sha512-E8Oy+08cmCf0EK/NMxpaJZmOxPqM+6iSe2S4nlSBrPZOORoDJILxtbSUEDKQyTamm/BVAhIGllOBNU79/dwf0g==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-core": { + "version": "4.57.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-core/-/fs-core-4.57.2.tgz", + "integrity": "sha512-SVjwklkpIV5wrynpYtuYnfYH1QF4/nDuLBX7VXdb+3miglcAgBVZb/5y0cOsehRV/9Vb+3UqhkMq3/NR3ztdkQ==", + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/fs-node-builtins": "4.57.2", + "@jsonjoy.com/fs-node-utils": "4.57.2", + "thingies": "^2.5.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-fsa": { + "version": "4.57.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-fsa/-/fs-fsa-4.57.2.tgz", + "integrity": "sha512-fhO8+iR2I+OCw668ISDJdn1aArc9zx033sWejIyzQ8RBeXa9bDSaUeA3ix0poYOfrj1KdOzytmYNv2/uLDfV6g==", + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/fs-core": "4.57.2", + "@jsonjoy.com/fs-node-builtins": "4.57.2", + "@jsonjoy.com/fs-node-utils": "4.57.2", + "thingies": "^2.5.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-node": { + "version": "4.57.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node/-/fs-node-4.57.2.tgz", + "integrity": "sha512-nX2AdL6cOFwLdju9G4/nbRnYevmCJbh7N7hvR3gGm97Cs60uEjyd0rpR+YBS7cTg175zzl22pGKXR5USaQMvKg==", + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/fs-core": "4.57.2", + "@jsonjoy.com/fs-node-builtins": "4.57.2", + "@jsonjoy.com/fs-node-utils": "4.57.2", + "@jsonjoy.com/fs-print": "4.57.2", + "@jsonjoy.com/fs-snapshot": "4.57.2", + "glob-to-regex.js": "^1.0.0", + "thingies": "^2.5.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-node-builtins": { + "version": "4.57.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node-builtins/-/fs-node-builtins-4.57.2.tgz", + "integrity": "sha512-xhiegylRmhw43Ki2HO1ZBL7DQ5ja/qpRsL29VtQ2xuUHiuDGbgf2uD4p9Qd8hJI5P6RCtGYD50IXHXVq/Ocjcg==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-node-to-fsa": { + "version": "4.57.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node-to-fsa/-/fs-node-to-fsa-4.57.2.tgz", + "integrity": "sha512-18LmWTSONhoAPW+IWRuf8w/+zRolPFGPeGwMxlAhhfY11EKzX+5XHDBPAw67dBF5dxDErHJbl40U+3IXSDRXSQ==", + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/fs-fsa": "4.57.2", + "@jsonjoy.com/fs-node-builtins": "4.57.2", + "@jsonjoy.com/fs-node-utils": "4.57.2" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/fs-node-utils": { + "version": "4.57.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-node-utils/-/fs-node-utils-4.57.2.tgz", + "integrity": "sha512-rsPSJgekz43IlNbLyAM/Ab+ouYLWGp5DDBfYBNNEqDaSpsbXfthBn29Q4muFA9L0F+Z3mKo+CWlgSCXrf+mOyQ==", + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/fs-node-builtins": "4.57.2" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" }, "peerDependencies": { - "@docusaurus/types": "*" - }, - "peerDependenciesMeta": { - "@docusaurus/types": { - "optional": true - } + "tslib": "2" } }, - "node_modules/@docusaurus/utils-common": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.4.0.tgz", - "integrity": "sha512-NVx54Wr4rCEKsjOH5QEVvxIqVvm+9kh7q8aYTU5WzUU9/Hctd6aTrcZ3G0Id4zYJ+AeaG5K5qHA4CY5Kcm2iyQ==", + "node_modules/@jsonjoy.com/fs-print": { + "version": "4.57.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-print/-/fs-print-4.57.2.tgz", + "integrity": "sha512-wK9NSow48i4DbDl9F1CQE5TqnyZOJ04elU3WFG5aJ76p+YxO/ulyBBQvKsessPxdo381Bc2pcEoyPujMOhcRqQ==", + "license": "Apache-2.0", "dependencies": { - "tslib": "^2.6.0" + "@jsonjoy.com/fs-node-utils": "4.57.2", + "tree-dump": "^1.1.0" }, "engines": { - "node": ">=18.0" + "node": ">=10.0" }, - "peerDependencies": { - "@docusaurus/types": "*" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" }, - "peerDependenciesMeta": { - "@docusaurus/types": { - "optional": true - } + "peerDependencies": { + "tslib": "2" } }, - "node_modules/@docusaurus/utils-validation": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.4.0.tgz", - "integrity": "sha512-hYQ9fM+AXYVTWxJOT1EuNaRnrR2WGpRdLDQG07O8UOpsvCPWUVOeo26Rbm0JWY2sGLfzAb+tvJ62yF+8F+TV0g==", + "node_modules/@jsonjoy.com/fs-snapshot": { + "version": "4.57.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/fs-snapshot/-/fs-snapshot-4.57.2.tgz", + "integrity": "sha512-GdduDZuoP5V/QCgJkx9+BZ6SC0EZ/smXAdTS7PfMqgMTGXLlt/bH/FqMYaqB9JmLf05sJPtO0XRbAwwkEEPbVw==", + "license": "Apache-2.0", "dependencies": { - "@docusaurus/logger": "3.4.0", - "@docusaurus/utils": "3.4.0", - "@docusaurus/utils-common": "3.4.0", - "fs-extra": "^11.2.0", - "joi": "^17.9.2", - "js-yaml": "^4.1.0", - "lodash": "^4.17.21", - "tslib": "^2.6.0" + "@jsonjoy.com/buffers": "^17.65.0", + "@jsonjoy.com/fs-node-utils": "4.57.2", + "@jsonjoy.com/json-pack": "^17.65.0", + "@jsonjoy.com/util": "^17.65.0" }, "engines": { - "node": ">=18.0" + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" } }, - "node_modules/@hapi/hoek": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", - "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==" + "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/base64": { + "version": "17.67.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-17.67.0.tgz", + "integrity": "sha512-5SEsJGsm15aP8TQGkDfJvz9axgPwAEm98S5DxOuYe8e1EbfajcDmgeXXzccEjh+mLnjqEKrkBdjHWS5vFNwDdw==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } }, - "node_modules/@hapi/topo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", - "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", - "dependencies": { - "@hapi/hoek": "^9.0.0" + "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/codegen": { + "version": "17.67.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/codegen/-/codegen-17.67.0.tgz", + "integrity": "sha512-idnkUplROpdBOV0HMcwhsCUS5TRUi9poagdGs70A6S4ux9+/aPuKbh8+UYRTLYQHtXvAdNfQWXDqZEx5k4Dj2Q==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" } }, - "node_modules/@jest/schemas": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/json-pack": { + "version": "17.67.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-17.67.0.tgz", + "integrity": "sha512-t0ejURcGaZsn1ClbJ/3kFqSOjlryd92eQY465IYrezsXmPcfHPE/av4twRSxf6WE+TkZgLY+71vCZbiIiFKA/w==", + "license": "Apache-2.0", "dependencies": { - "@sinclair/typebox": "^0.27.8" + "@jsonjoy.com/base64": "17.67.0", + "@jsonjoy.com/buffers": "17.67.0", + "@jsonjoy.com/codegen": "17.67.0", + "@jsonjoy.com/json-pointer": "17.67.0", + "@jsonjoy.com/util": "17.67.0", + "hyperdyperid": "^1.2.0", + "thingies": "^2.5.0", + "tree-dump": "^1.1.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" } }, - "node_modules/@jest/types": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", - "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/json-pointer": { + "version": "17.67.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pointer/-/json-pointer-17.67.0.tgz", + "integrity": "sha512-+iqOFInH+QZGmSuaybBUNdh7yvNrXvqR+h3wjXm0N/3JK1EyyFAeGJvqnmQL61d1ARLlk/wJdFKSL+LHJ1eaUA==", + "license": "Apache-2.0", "dependencies": { - "@jest/schemas": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" + "@jsonjoy.com/util": "17.67.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" } }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "node_modules/@jsonjoy.com/fs-snapshot/node_modules/@jsonjoy.com/util": { + "version": "17.67.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-17.67.0.tgz", + "integrity": "sha512-6+8xBaz1rLSohlGh68D1pdw3AwDi9xydm8QNlAFkvnavCJYSze+pxoW2VKP8p308jtlMRLs5NTHfPlZLd4w7ew==", + "license": "Apache-2.0", "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "@jsonjoy.com/buffers": "17.67.0", + "@jsonjoy.com/codegen": "17.67.0" }, "engines": { - "node": ">=6.0.0" + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" } }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "node_modules/@jsonjoy.com/json-pack": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.21.0.tgz", + "integrity": "sha512-+AKG+R2cfZMShzrF2uQw34v3zbeDYUqnQ+jg7ORic3BGtfw9p/+N6RJbq/kkV8JmYZaINknaEQ2m0/f693ZPpg==", + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/base64": "^1.1.2", + "@jsonjoy.com/buffers": "^1.2.0", + "@jsonjoy.com/codegen": "^1.0.0", + "@jsonjoy.com/json-pointer": "^1.0.2", + "@jsonjoy.com/util": "^1.9.0", + "hyperdyperid": "^1.2.0", + "thingies": "^2.5.0", + "tree-dump": "^1.1.0" + }, "engines": { - "node": ">=6.0.0" + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" } }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "node_modules/@jsonjoy.com/json-pack/node_modules/@jsonjoy.com/buffers": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-1.2.1.tgz", + "integrity": "sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA==", + "license": "Apache-2.0", "engines": { - "node": ">=6.0.0" + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" } }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", - "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", + "node_modules/@jsonjoy.com/json-pointer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pointer/-/json-pointer-1.0.2.tgz", + "integrity": "sha512-Fsn6wM2zlDzY1U+v4Nc8bo3bVqgfNTGcn6dMgs6FjrEnt4ZCe60o6ByKRjOGlI2gow0aE/Q41QOigdTqkyK5fg==", + "license": "Apache-2.0", "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" + "@jsonjoy.com/codegen": "^1.0.0", + "@jsonjoy.com/util": "^1.9.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" } }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", - "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", + "node_modules/@jsonjoy.com/util": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-1.9.0.tgz", + "integrity": "sha512-pLuQo+VPRnN8hfPqUTLTHk126wuYdXVxE6aDmjSeV4NCAgyxWbiOIeNJVtID3h1Vzpoi9m4jXezf73I6LgabgQ==", + "license": "Apache-2.0", "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" + "@jsonjoy.com/buffers": "^1.0.0", + "@jsonjoy.com/codegen": "^1.0.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/util/node_modules/@jsonjoy.com/buffers": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/buffers/-/buffers-1.2.1.tgz", + "integrity": "sha512-12cdlDwX4RUM3QxmUbVJWqZ/mrK6dFQH4Zxq6+r1YXKXYBNgZXndx2qbCJwh3+WWkCSn67IjnlG3XYTvmvYtgA==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" } }, "node_modules/@leichtgewicht/ip-codec": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", - "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==" + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", + "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", + "license": "MIT" }, "node_modules/@mdx-js/mdx": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.0.1.tgz", - "integrity": "sha512-eIQ4QTrOWyL3LWEe/bu6Taqzq2HQvHcyTMaOrI95P2/LmJE7AsfPfgJGuFLPVqBUE1BC1rik3VIhU+s9u72arA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.1.1.tgz", + "integrity": "sha512-f6ZO2ifpwAQIpzGWaBQT2TXxPv6z3RBzQKpVftEWN78Vl/YweF1uwussDx8ECAXVtr3Rs89fKyG9YlzUs9DyGQ==", + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", "@types/mdx": "^2.0.0", + "acorn": "^8.0.0", "collapse-white-space": "^2.0.0", "devlop": "^1.0.0", - "estree-util-build-jsx": "^3.0.0", "estree-util-is-identifier-name": "^3.0.0", - "estree-util-to-js": "^2.0.0", + "estree-util-scope": "^1.0.0", "estree-walker": "^3.0.0", - "hast-util-to-estree": "^3.0.0", "hast-util-to-jsx-runtime": "^2.0.0", "markdown-extensions": "^2.0.0", - "periscopic": "^3.0.0", + "recma-build-jsx": "^1.0.0", + "recma-jsx": "^1.0.0", + "recma-stringify": "^1.0.0", + "rehype-recma": "^1.0.0", "remark-mdx": "^3.0.0", "remark-parse": "^11.0.0", "remark-rehype": "^11.0.0", @@ -2916,9 +4662,10 @@ } }, "node_modules/@mdx-js/react": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.0.1.tgz", - "integrity": "sha512-9ZrPIU4MGf6et1m1ov3zKf+q9+deetI51zprKB1D/z3NOb+rUxxtEl3mCjW5wTGh6VhRdwPueh1oRzi6ezkA8A==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.1.1.tgz", + "integrity": "sha512-f++rKLQgUVYDAtECQ6fn/is15GkEH9+nZPM3MS0RcxVqoTfawHvDlSCH7JbMhAM6uJ32v3eXLvLmLvjGu7PTQw==", + "license": "MIT", "dependencies": { "@types/mdx": "^2.0.0" }, @@ -2931,10 +4678,23 @@ "react": ">=16" } }, + "node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -2947,6 +4707,7 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "license": "MIT", "engines": { "node": ">= 8" } @@ -2955,6 +4716,7 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -2963,10 +4725,159 @@ "node": ">= 8" } }, + "node_modules/@peculiar/asn1-cms": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-cms/-/asn1-cms-2.6.1.tgz", + "integrity": "sha512-vdG4fBF6Lkirkcl53q6eOdn3XYKt+kJTG59edgRZORlg/3atWWEReRCx5rYE1ZzTTX6vLK5zDMjHh7vbrcXGtw==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.1", + "@peculiar/asn1-x509-attr": "^2.6.1", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-csr": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-csr/-/asn1-csr-2.6.1.tgz", + "integrity": "sha512-WRWnKfIocHyzFYQTka8O/tXCiBquAPSrRjXbOkHbO4qdmS6loffCEGs+rby6WxxGdJCuunnhS2duHURhjyio6w==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.1", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-ecc": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-ecc/-/asn1-ecc-2.6.1.tgz", + "integrity": "sha512-+Vqw8WFxrtDIN5ehUdvlN2m73exS2JVG0UAyfVB31gIfor3zWEAQPD+K9ydCxaj3MLen9k0JhKpu9LqviuCE1g==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.1", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-pfx": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-pfx/-/asn1-pfx-2.6.1.tgz", + "integrity": "sha512-nB5jVQy3MAAWvq0KY0R2JUZG8bO/bTLpnwyOzXyEh/e54ynGTatAR+csOnXkkVD9AFZ2uL8Z7EV918+qB1qDvw==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-cms": "^2.6.1", + "@peculiar/asn1-pkcs8": "^2.6.1", + "@peculiar/asn1-rsa": "^2.6.1", + "@peculiar/asn1-schema": "^2.6.0", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-pkcs8": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs8/-/asn1-pkcs8-2.6.1.tgz", + "integrity": "sha512-JB5iQ9Izn5yGMw3ZG4Nw3Xn/hb/G38GYF3lf7WmJb8JZUydhVGEjK/ZlFSWhnlB7K/4oqEs8HnfFIKklhR58Tw==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.1", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-pkcs9": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs9/-/asn1-pkcs9-2.6.1.tgz", + "integrity": "sha512-5EV8nZoMSxeWmcxWmmcolg22ojZRgJg+Y9MX2fnE2bGRo5KQLqV5IL9kdSQDZxlHz95tHvIq9F//bvL1OeNILw==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-cms": "^2.6.1", + "@peculiar/asn1-pfx": "^2.6.1", + "@peculiar/asn1-pkcs8": "^2.6.1", + "@peculiar/asn1-schema": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.1", + "@peculiar/asn1-x509-attr": "^2.6.1", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-rsa": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-rsa/-/asn1-rsa-2.6.1.tgz", + "integrity": "sha512-1nVMEh46SElUt5CB3RUTV4EG/z7iYc7EoaDY5ECwganibQPkZ/Y2eMsTKB/LeyrUJ+W/tKoD9WUqIy8vB+CEdA==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.1", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-schema": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.6.0.tgz", + "integrity": "sha512-xNLYLBFTBKkCzEZIw842BxytQQATQv+lDTCEMZ8C196iJcJJMBUZxrhSTxLaohMyKK8QlzRNTRkUmanucnDSqg==", + "license": "MIT", + "dependencies": { + "asn1js": "^3.0.6", + "pvtsutils": "^1.3.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-x509": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509/-/asn1-x509-2.6.1.tgz", + "integrity": "sha512-O9jT5F1A2+t3r7C4VT7LYGXqkGLK7Kj1xFpz7U0isPrubwU5PbDoyYtx6MiGst29yq7pXN5vZbQFKRCP+lLZlA==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.6.0", + "asn1js": "^3.0.6", + "pvtsutils": "^1.3.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-x509-attr": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509-attr/-/asn1-x509-attr-2.6.1.tgz", + "integrity": "sha512-tlW6cxoHwgcQghnJwv3YS+9OO1737zgPogZ+CgWRUK4roEwIPzRH4JEiG770xe5HX2ATfCpmX60gurfWIF9dcQ==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.1", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/x509": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/@peculiar/x509/-/x509-1.14.3.tgz", + "integrity": "sha512-C2Xj8FZ0uHWeCXXqX5B4/gVFQmtSkiuOolzAgutjTfseNOHT3pUjljDZsTSxXFGgio54bCzVFqmEOUrIVk8RDA==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-cms": "^2.6.0", + "@peculiar/asn1-csr": "^2.6.0", + "@peculiar/asn1-ecc": "^2.6.0", + "@peculiar/asn1-pkcs9": "^2.6.0", + "@peculiar/asn1-rsa": "^2.6.0", + "@peculiar/asn1-schema": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.0", + "pvtsutils": "^1.3.6", + "reflect-metadata": "^0.2.2", + "tslib": "^2.8.1", + "tsyringe": "^4.10.0" + }, + "engines": { + "node": ">=20.0.0" + } + }, "node_modules/@pnpm/config.env-replace": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz", "integrity": "sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==", + "license": "MIT", "engines": { "node": ">=12.22.0" } @@ -2975,6 +4886,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/@pnpm/network.ca-file/-/network.ca-file-1.0.2.tgz", "integrity": "sha512-YcPQ8a0jwYU9bTdJDpXjMi7Brhkr1mXsXrUJvjqM2mQDgkRiz8jFaQGOdaLxgjtUfQgZhKy/O3cG/YwmgKaxLA==", + "license": "MIT", "dependencies": { "graceful-fs": "4.2.10" }, @@ -2985,12 +4897,14 @@ "node_modules/@pnpm/network.ca-file/node_modules/graceful-fs": { "version": "4.2.10", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "license": "ISC" }, "node_modules/@pnpm/npm-conf": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-2.2.2.tgz", - "integrity": "sha512-UA91GwWPhFExt3IizW6bOeY/pQ0BkuNwKjk9iQW9KqxluGCrg4VenZ0/L+2Y0+ZOtme72EVvg6v0zo3AMQRCeA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@pnpm/npm-conf/-/npm-conf-3.0.2.tgz", + "integrity": "sha512-h104Kh26rR8tm+a3Qkc5S4VLYint3FE48as7+/5oCEcKR2idC/pF1G6AhIXKI+eHPJa/3J9i5z0Al47IeGHPkA==", + "license": "MIT", "dependencies": { "@pnpm/config.env-replace": "^1.1.0", "@pnpm/network.ca-file": "^1.0.1", @@ -3001,14 +4915,16 @@ } }, "node_modules/@polka/url": { - "version": "1.0.0-next.23", - "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.23.tgz", - "integrity": "sha512-C16M+IYz0rgRhWZdCmK+h58JMv8vijAA61gmz2rspCSwKwzBebpdcsiUmwrtJRdphuY30i6BSLEOP8ppbNLyLg==" + "version": "1.0.0-next.29", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.29.tgz", + "integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==", + "license": "MIT" }, "node_modules/@sideway/address": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz", "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==", + "license": "BSD-3-Clause", "dependencies": { "@hapi/hoek": "^9.0.0" } @@ -3016,22 +4932,26 @@ "node_modules/@sideway/formula": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", - "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==" + "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==", + "license": "BSD-3-Clause" }, "node_modules/@sideway/pinpoint": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", + "license": "BSD-3-Clause" }, "node_modules/@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==" + "version": "0.27.10", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.10.tgz", + "integrity": "sha512-MTBk/3jGLNB2tVxv6uLlFh1iu64iYOQ2PbdOSK3NW8JZsmlaOh2q6sdtKowBhfw8QFLmYNzTW4/oK4uATIi6ZA==", + "license": "MIT" }, "node_modules/@sindresorhus/is": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -3043,6 +4963,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/@slorber/remark-comment/-/remark-comment-1.0.0.tgz", "integrity": "sha512-RCE24n7jsOj1M0UPvIQCHTe7fI0sFL4S2nwKVWwHyVr/wI/H8GosgsJGyhnsZoGFnD/P2hLf1mSbrrgSLN93NA==", + "license": "MIT", "dependencies": { "micromark-factory-space": "^1.0.0", "micromark-util-character": "^1.1.0", @@ -3053,6 +4974,7 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz", "integrity": "sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==", + "license": "MIT", "engines": { "node": ">=14" }, @@ -3068,6 +4990,7 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz", "integrity": "sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==", + "license": "MIT", "engines": { "node": ">=14" }, @@ -3083,6 +5006,7 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz", "integrity": "sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==", + "license": "MIT", "engines": { "node": ">=14" }, @@ -3098,6 +5022,7 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz", "integrity": "sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==", + "license": "MIT", "engines": { "node": ">=14" }, @@ -3113,6 +5038,7 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz", "integrity": "sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==", + "license": "MIT", "engines": { "node": ">=14" }, @@ -3128,6 +5054,7 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz", "integrity": "sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==", + "license": "MIT", "engines": { "node": ">=14" }, @@ -3143,6 +5070,7 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz", "integrity": "sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==", + "license": "MIT", "engines": { "node": ">=14" }, @@ -3158,6 +5086,7 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz", "integrity": "sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -3173,6 +5102,7 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.1.0.tgz", "integrity": "sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==", + "license": "MIT", "dependencies": { "@svgr/babel-plugin-add-jsx-attribute": "8.0.0", "@svgr/babel-plugin-remove-jsx-attribute": "8.0.0", @@ -3198,6 +5128,7 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz", "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==", + "license": "MIT", "dependencies": { "@babel/core": "^7.21.3", "@svgr/babel-preset": "8.1.0", @@ -3217,6 +5148,7 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz", "integrity": "sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==", + "license": "MIT", "dependencies": { "@babel/types": "^7.21.3", "entities": "^4.4.0" @@ -3233,6 +5165,7 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz", "integrity": "sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==", + "license": "MIT", "dependencies": { "@babel/core": "^7.21.3", "@svgr/babel-preset": "8.1.0", @@ -3254,6 +5187,7 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-8.1.0.tgz", "integrity": "sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==", + "license": "MIT", "dependencies": { "cosmiconfig": "^8.1.3", "deepmerge": "^4.3.1", @@ -3274,6 +5208,7 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-8.1.0.tgz", "integrity": "sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==", + "license": "MIT", "dependencies": { "@babel/core": "^7.21.3", "@babel/plugin-transform-react-constant-elements": "^7.21.3", @@ -3296,6 +5231,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", + "license": "MIT", "dependencies": { "defer-to-connect": "^2.0.1" }, @@ -3303,26 +5239,11 @@ "node": ">=14.16" } }, - "node_modules/@trysound/sax": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", - "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/@types/acorn": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@types/acorn/-/acorn-4.0.6.tgz", - "integrity": "sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==", - "dependencies": { - "@types/estree": "*" - } - }, "node_modules/@types/body-parser": { - "version": "1.19.5", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", - "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "version": "1.19.6", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", + "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==", + "license": "MIT", "dependencies": { "@types/connect": "*", "@types/node": "*" @@ -3332,6 +5253,7 @@ "version": "3.5.13", "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -3340,6 +5262,7 @@ "version": "3.4.38", "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -3348,23 +5271,26 @@ "version": "1.5.4", "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", + "license": "MIT", "dependencies": { "@types/express-serve-static-core": "*", "@types/node": "*" } }, "node_modules/@types/debug": { - "version": "4.1.12", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", - "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "version": "4.1.13", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.13.tgz", + "integrity": "sha512-KSVgmQmzMwPlmtljOomayoR89W4FynCAi3E8PPs7vmDVPe84hT+vGPKkJfThkmXs0x0jAaa9U8uW8bbfyS2fWw==", + "license": "MIT", "dependencies": { "@types/ms": "*" } }, "node_modules/@types/eslint": { - "version": "8.44.7", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.7.tgz", - "integrity": "sha512-f5ORu2hcBbKei97U73mf+l9t4zTGl74IqZ0GQk4oVea/VS8tQZYkUveSYojk+frraAVYId0V2WC9O4PTNru2FQ==", + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", + "license": "MIT", "dependencies": { "@types/estree": "*", "@types/json-schema": "*" @@ -3374,39 +5300,44 @@ "version": "3.7.7", "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "license": "MIT", "dependencies": { "@types/eslint": "*", "@types/estree": "*" } }, "node_modules/@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "license": "MIT" }, "node_modules/@types/estree-jsx": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz", "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==", + "license": "MIT", "dependencies": { "@types/estree": "*" } }, "node_modules/@types/express": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", - "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", + "version": "4.17.25", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.25.tgz", + "integrity": "sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==", + "license": "MIT", "dependencies": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.33", "@types/qs": "*", - "@types/serve-static": "*" + "@types/serve-static": "^1" } }, "node_modules/@types/express-serve-static-core": { - "version": "4.17.41", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.41.tgz", - "integrity": "sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA==", + "version": "4.19.8", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.8.tgz", + "integrity": "sha512-02S5fmqeoKzVZCHPZid4b8JH2eM5HzQLZWN2FohQEy/0eXTq8VXZfSN6Pcr3F6N9R/vNrj7cpgbhjie6m/1tCA==", + "license": "MIT", "dependencies": { "@types/node": "*", "@types/qs": "*", @@ -3415,14 +5346,16 @@ } }, "node_modules/@types/gtag.js": { - "version": "0.0.12", - "resolved": "https://registry.npmjs.org/@types/gtag.js/-/gtag.js-0.0.12.tgz", - "integrity": "sha512-YQV9bUsemkzG81Ea295/nF/5GijnD2Af7QhEofh7xu+kvCN6RdodgNwwGWXB5GMI3NoyvQo0odNctoH/qLMIpg==" + "version": "0.0.20", + "resolved": "https://registry.npmjs.org/@types/gtag.js/-/gtag.js-0.0.20.tgz", + "integrity": "sha512-wwAbk3SA2QeU67unN7zPxjEHmPmlXwZXZvQEpbEUQuMCRGgKyE1m6XDuTUA9b6pCGb/GqJmdfMOY5LuDjJSbbg==", + "license": "MIT" }, "node_modules/@types/hast": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "license": "MIT", "dependencies": { "@types/unist": "*" } @@ -3430,27 +5363,32 @@ "node_modules/@types/history": { "version": "4.7.11", "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz", - "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==" + "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==", + "license": "MIT" }, "node_modules/@types/html-minifier-terser": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==" + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", + "license": "MIT" }, "node_modules/@types/http-cache-semantics": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", - "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==" + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", + "integrity": "sha512-L3LgimLHXtGkWikKnsPg0/VFx9OGZaC+eN1u4r+OB1XRqH3meBIAVC2zr1WdMH+RHmnRkqliQAOHNJ/E0j/e0Q==", + "license": "MIT" }, "node_modules/@types/http-errors": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", - "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==" + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz", + "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==", + "license": "MIT" }, "node_modules/@types/http-proxy": { - "version": "1.17.14", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.14.tgz", - "integrity": "sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==", + "version": "1.17.17", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.17.tgz", + "integrity": "sha512-ED6LB+Z1AVylNTu7hdzuBqOgMnvG/ld6wGCG8wFnAzKX5uyW2K3WD52v0gnLCTK/VLpXtKckgWuyScYK6cSPaw==", + "license": "MIT", "dependencies": { "@types/node": "*" } @@ -3458,12 +5396,14 @@ "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", - "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==" + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "license": "MIT" }, "node_modules/@types/istanbul-lib-report": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "license": "MIT", "dependencies": { "@types/istanbul-lib-coverage": "*" } @@ -3472,6 +5412,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "license": "MIT", "dependencies": { "@types/istanbul-lib-report": "*" } @@ -3479,12 +5420,14 @@ "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==" + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "license": "MIT" }, "node_modules/@types/mdast": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "license": "MIT", "dependencies": { "@types/unist": "*" } @@ -3492,82 +5435,72 @@ "node_modules/@types/mdx": { "version": "2.0.13", "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.13.tgz", - "integrity": "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==" + "integrity": "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==", + "license": "MIT" }, "node_modules/@types/mime": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", - "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==" + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "license": "MIT" }, "node_modules/@types/ms": { - "version": "0.7.34", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz", - "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", + "license": "MIT" }, "node_modules/@types/node": { - "version": "20.10.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.0.tgz", - "integrity": "sha512-D0WfRmU9TQ8I9PFx9Yc+EBHw+vSpIub4IDvQivcp26PtPrdMGAq5SDcpXEo/epqa/DXotVpekHiLNTg3iaKXBQ==", - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/@types/node-forge": { - "version": "1.3.10", - "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.10.tgz", - "integrity": "sha512-y6PJDYN4xYBxwd22l+OVH35N+1fCYWiuC3aiP2SlXVE6Lo7SS+rSx9r89hLxrP4pn6n1lBGhHJ12pj3F3Mpttw==", + "version": "25.6.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-25.6.0.tgz", + "integrity": "sha512-+qIYRKdNYJwY3vRCZMdJbPLJAtGjQBudzZzdzwQYkEPQd+PJGixUL5QfvCLDaULoLv+RhT3LDkwEfKaAkgSmNQ==", + "license": "MIT", "dependencies": { - "@types/node": "*" + "undici-types": "~7.19.0" } }, - "node_modules/@types/parse-json": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", - "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==" - }, "node_modules/@types/prismjs": { - "version": "1.26.4", - "resolved": "https://registry.npmjs.org/@types/prismjs/-/prismjs-1.26.4.tgz", - "integrity": "sha512-rlAnzkW2sZOjbqZ743IHUhFcvzaGbqijwOu8QZnZCjfQzBqFE3s4lOTJEsxikImav9uzz/42I+O7YUs1mWgMlg==" - }, - "node_modules/@types/prop-types": { - "version": "15.7.11", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz", - "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==" + "version": "1.26.6", + "resolved": "https://registry.npmjs.org/@types/prismjs/-/prismjs-1.26.6.tgz", + "integrity": "sha512-vqlvI7qlMvcCBbVe0AKAb4f97//Hy0EBTaiW8AalRnG/xAN5zOiWWyrNqNXeq8+KAuvRewjCVY1+IPxk4RdNYw==", + "license": "MIT" }, "node_modules/@types/qs": { - "version": "6.9.10", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.10.tgz", - "integrity": "sha512-3Gnx08Ns1sEoCrWssEgTSJs/rsT2vhGP+Ja9cnnk9k4ALxinORlQneLXFeFKOTJMOeZUFD1s7w+w2AphTpvzZw==" + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.15.0.tgz", + "integrity": "sha512-JawvT8iBVWpzTrz3EGw9BTQFg3BQNmwERdKE22vlTxawwtbyUSlMppvZYKLZzB5zgACXdXxbD3m1bXaMqP/9ow==", + "license": "MIT" }, "node_modules/@types/range-parser": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", - "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==" + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "license": "MIT" }, "node_modules/@types/react": { - "version": "18.2.38", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.38.tgz", - "integrity": "sha512-cBBXHzuPtQK6wNthuVMV6IjHAFkdl/FOPFIlkd81/Cd1+IqkHu/A+w4g43kaQQoYHik/ruaQBDL72HyCy1vuMw==", + "version": "19.2.14", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.14.tgz", + "integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==", + "license": "MIT", "dependencies": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" + "csstype": "^3.2.2" } }, "node_modules/@types/react-router": { "version": "5.1.20", "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.20.tgz", "integrity": "sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==", + "license": "MIT", "dependencies": { "@types/history": "^4.7.11", "@types/react": "*" } }, "node_modules/@types/react-router-config": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/@types/react-router-config/-/react-router-config-5.0.10.tgz", - "integrity": "sha512-Wn6c/tXdEgi9adCMtDwx8Q2vGty6TsPTc/wCQQ9kAlye8UqFxj0vGFWWuhywNfkwqth+SOgJxQTLTZukrqDQmQ==", + "version": "5.0.11", + "resolved": "https://registry.npmjs.org/@types/react-router-config/-/react-router-config-5.0.11.tgz", + "integrity": "sha512-WmSAg7WgqW7m4x8Mt4N6ZyKz0BubSj/2tVUMsAHp+Yd2AMwcSbeFq9WympT19p5heCFmF97R9eD5uUR/t4HEqw==", + "license": "MIT", "dependencies": { "@types/history": "^4.7.11", "@types/react": "*", @@ -3578,6 +5511,7 @@ "version": "5.3.3", "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.3.tgz", "integrity": "sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==", + "license": "MIT", "dependencies": { "@types/history": "^4.7.11", "@types/react": "*", @@ -3585,29 +5519,26 @@ } }, "node_modules/@types/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz", + "integrity": "sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==", + "license": "MIT" }, "node_modules/@types/sax": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/@types/sax/-/sax-1.2.7.tgz", "integrity": "sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==", + "license": "MIT", "dependencies": { "@types/node": "*" } }, - "node_modules/@types/scheduler": { - "version": "0.16.8", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", - "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==" - }, "node_modules/@types/send": { - "version": "0.17.4", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", - "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@types/send/-/send-1.2.1.tgz", + "integrity": "sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==", + "license": "MIT", "dependencies": { - "@types/mime": "^1", "@types/node": "*" } }, @@ -3615,17 +5546,29 @@ "version": "1.9.4", "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", + "license": "MIT", "dependencies": { "@types/express": "*" } }, "node_modules/@types/serve-static": { - "version": "1.15.5", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz", - "integrity": "sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==", + "version": "1.15.10", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.10.tgz", + "integrity": "sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw==", + "license": "MIT", "dependencies": { "@types/http-errors": "*", - "@types/mime": "*", + "@types/node": "*", + "@types/send": "<1" + } + }, + "node_modules/@types/serve-static/node_modules/@types/send": { + "version": "0.17.6", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.6.tgz", + "integrity": "sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og==", + "license": "MIT", + "dependencies": { + "@types/mime": "^1", "@types/node": "*" } }, @@ -3633,27 +5576,31 @@ "version": "0.3.36", "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/unist": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", - "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "license": "MIT" }, "node_modules/@types/ws": { - "version": "8.5.10", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", - "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==", + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz", + "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==", + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/yargs": { - "version": "17.0.32", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", - "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", + "version": "17.0.35", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.35.tgz", + "integrity": "sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==", + "license": "MIT", "dependencies": { "@types/yargs-parser": "*" } @@ -3661,158 +5608,178 @@ "node_modules/@types/yargs-parser": { "version": "21.0.3", "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", - "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==" + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "license": "MIT" }, "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "license": "ISC" }, "node_modules/@webassemblyjs/ast": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", - "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", + "license": "MIT", "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" } }, "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", - "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==" + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", + "license": "MIT" }, "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", - "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==" + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", + "license": "MIT" }, "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", - "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==" + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", + "license": "MIT" }, "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", - "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", + "license": "MIT", "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", - "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==" + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", + "license": "MIT" }, "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", - "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" } }, "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", - "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", + "license": "MIT", "dependencies": { "@xtuc/ieee754": "^1.2.0" } }, "node_modules/@webassemblyjs/leb128": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", - "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", + "license": "Apache-2.0", "dependencies": { "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/utf8": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", - "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==" + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", + "license": "MIT" }, "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", - "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-opt": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6", - "@webassemblyjs/wast-printer": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" } }, "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", - "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" } }, "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", - "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" } }, "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", - "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" } }, "node_modules/@webassemblyjs/wast-printer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", - "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/ast": "1.14.1", "@xtuc/long": "4.2.2" } }, "node_modules/@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "license": "BSD-3-Clause" }, "node_modules/@xtuc/long": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "license": "Apache-2.0" }, "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "license": "MIT", "dependencies": { "mime-types": "~2.1.34", "negotiator": "0.6.3" @@ -3825,6 +5792,7 @@ "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -3833,6 +5801,7 @@ "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", "dependencies": { "mime-db": "1.52.0" }, @@ -3840,10 +5809,20 @@ "node": ">= 0.6" } }, + "node_modules/accepts/node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/acorn": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", - "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", + "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -3851,26 +5830,35 @@ "node": ">=0.4.0" } }, - "node_modules/acorn-import-assertions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", - "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", + "node_modules/acorn-import-phases": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz", + "integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==", + "license": "MIT", + "engines": { + "node": ">=10.13.0" + }, "peerDependencies": { - "acorn": "^8" + "acorn": "^8.14.0" } }, "node_modules/acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "license": "MIT", "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "node_modules/acorn-walk": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.0.tgz", - "integrity": "sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA==", + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.5.tgz", + "integrity": "sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw==", + "license": "MIT", + "dependencies": { + "acorn": "^8.11.0" + }, "engines": { "node": ">=0.4.0" } @@ -3879,6 +5867,7 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz", "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", + "license": "MIT", "engines": { "node": ">= 10.0.0" } @@ -3887,6 +5876,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "license": "MIT", "dependencies": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" @@ -3896,14 +5886,15 @@ } }, "node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", + "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", + "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.1", + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "require-from-string": "^2.0.2" }, "funding": { "type": "github", @@ -3914,6 +5905,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "license": "MIT", "dependencies": { "ajv": "^8.0.0" }, @@ -3930,6 +5922,7 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3" }, @@ -3938,31 +5931,35 @@ } }, "node_modules/algoliasearch": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.24.0.tgz", - "integrity": "sha512-bf0QV/9jVejssFBmz2HQLxUadxk574t4iwjCKp5E7NBzwKkrDEhKPISIIjAU/p6K5qDx3qoeh4+26zWN1jmw3g==", - "dependencies": { - "@algolia/cache-browser-local-storage": "4.24.0", - "@algolia/cache-common": "4.24.0", - "@algolia/cache-in-memory": "4.24.0", - "@algolia/client-account": "4.24.0", - "@algolia/client-analytics": "4.24.0", - "@algolia/client-common": "4.24.0", - "@algolia/client-personalization": "4.24.0", - "@algolia/client-search": "4.24.0", - "@algolia/logger-common": "4.24.0", - "@algolia/logger-console": "4.24.0", - "@algolia/recommend": "4.24.0", - "@algolia/requester-browser-xhr": "4.24.0", - "@algolia/requester-common": "4.24.0", - "@algolia/requester-node-http": "4.24.0", - "@algolia/transporter": "4.24.0" + "version": "5.50.2", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.50.2.tgz", + "integrity": "sha512-Tfp26yoNWurUjfgK4GOrVJQhSNXu9tJtHfFFNosgT2YClG+vPyUjX/gbC8rG39qLncnZg8Fj34iarQWpMkqefw==", + "license": "MIT", + "dependencies": { + "@algolia/abtesting": "1.16.2", + "@algolia/client-abtesting": "5.50.2", + "@algolia/client-analytics": "5.50.2", + "@algolia/client-common": "5.50.2", + "@algolia/client-insights": "5.50.2", + "@algolia/client-personalization": "5.50.2", + "@algolia/client-query-suggestions": "5.50.2", + "@algolia/client-search": "5.50.2", + "@algolia/ingestion": "1.50.2", + "@algolia/monitoring": "1.50.2", + "@algolia/recommend": "5.50.2", + "@algolia/requester-browser-xhr": "5.50.2", + "@algolia/requester-fetch": "5.50.2", + "@algolia/requester-node-http": "5.50.2" + }, + "engines": { + "node": ">= 14.0.0" } }, "node_modules/algoliasearch-helper": { - "version": "3.22.2", - "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.22.2.tgz", - "integrity": "sha512-3YQ6eo7uYOCHeQ2ZpD+OoT3aJJwMNKEnwtu8WMzm81XmBOSCwRjQditH9CeSOQ38qhHkuGw23pbq+kULkIJLcw==", + "version": "3.28.1", + "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.28.1.tgz", + "integrity": "sha512-6iXpbkkrAI5HFpCWXlNmIDSBuoN/U1XnEvb2yJAoWfqrZ+DrybI7MQ5P5mthFaprmocq+zbi6HxnR28xnZAYBw==", + "license": "MIT", "dependencies": { "@algolia/events": "^4.0.1" }, @@ -3974,6 +5971,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "license": "ISC", "dependencies": { "string-width": "^4.1.0" } @@ -3981,12 +5979,14 @@ "node_modules/ansi-align/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" }, "node_modules/ansi-align/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -4003,6 +6003,7 @@ "engines": [ "node >= 0.8.0" ], + "license": "Apache-2.0", "bin": { "ansi-html": "bin/ansi-html" } @@ -4011,6 +6012,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", "engines": { "node": ">=8" } @@ -4019,6 +6021,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -4029,10 +6032,20 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/ansis": { + "version": "3.17.0", + "resolved": "https://registry.npmjs.org/ansis/-/ansis-3.17.0.tgz", + "integrity": "sha512-0qWUglt9JEqLFr3w1I1pbrChn1grhaiAR2ocX1PP/flRmxgtwTzPFFFnfIlD6aMOLQZgSuCRlidD70lvx8yhzg==", + "license": "ISC", + "engines": { + "node": ">=14" + } + }, "node_modules/anymatch": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "license": "ISC", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -4044,46 +6057,57 @@ "node_modules/arg": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "license": "MIT" }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" }, "node_modules/array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", - "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "license": "MIT" }, "node_modules/array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "license": "MIT", "engines": { "node": ">=8" } }, + "node_modules/asn1js": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.9.tgz", + "integrity": "sha512-g35Ef4IMkE3mDaMAYd3GOJ/c41LKcaiJuuLZ9BF0EXkZwYc0tkFpmZqxWsKlmXS3Um42dAkyx//kibIETBjfqg==", + "license": "BSD-3-Clause", + "dependencies": { + "pvtsutils": "^1.3.6", + "pvutils": "^1.1.5", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/astring": { - "version": "1.8.6", - "resolved": "https://registry.npmjs.org/astring/-/astring-1.8.6.tgz", - "integrity": "sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/astring/-/astring-1.9.0.tgz", + "integrity": "sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==", + "license": "MIT", "bin": { "astring": "bin/astring" } }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "engines": { - "node": ">= 4.0.0" - } - }, "node_modules/autoprefixer": { - "version": "10.4.19", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.19.tgz", - "integrity": "sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==", + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.5.0.tgz", + "integrity": "sha512-FMhOoZV4+qR6aTUALKX2rEqGG+oyATvwBt9IIzVR5rMa2HRWPkxf+P+PAJLD1I/H5/II+HuZcBJYEFBpq39ong==", "funding": [ { "type": "opencollective", @@ -4098,12 +6122,12 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "browserslist": "^4.23.0", - "caniuse-lite": "^1.0.30001599", - "fraction.js": "^4.3.7", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", + "browserslist": "^4.28.2", + "caniuse-lite": "^1.0.30001787", + "fraction.js": "^5.3.4", + "picocolors": "^1.1.1", "postcss-value-parser": "^4.2.0" }, "bin": { @@ -4117,9 +6141,10 @@ } }, "node_modules/babel-loader": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.3.tgz", - "integrity": "sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==", + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.2.1.tgz", + "integrity": "sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA==", + "license": "MIT", "dependencies": { "find-cache-dir": "^4.0.0", "schema-utils": "^4.0.0" @@ -4136,17 +6161,19 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "license": "MIT", "dependencies": { "object.assign": "^4.1.0" } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz", - "integrity": "sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==", + "version": "0.4.17", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.17.tgz", + "integrity": "sha512-aTyf30K/rqAsNwN76zYrdtx8obu0E4KoUME29B1xj+B3WxgvWkp943vYQ+z8Mv3lw9xHXMHpvSPOBxzAkIa94w==", + "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.4.3", + "@babel/compat-data": "^7.28.6", + "@babel/helper-define-polyfill-provider": "^0.6.8", "semver": "^6.3.1" }, "peerDependencies": { @@ -4157,28 +6184,31 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.8.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.6.tgz", - "integrity": "sha512-leDIc4l4tUgU7str5BWLS2h8q2N4Nf6lGZP6UrNDxdtfF2g69eJ5L0H7S8A5Ln/arfFAfHor5InAdZuIOwZdgQ==", + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz", + "integrity": "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==", + "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.3", - "core-js-compat": "^3.33.1" + "@babel/helper-define-polyfill-provider": "^0.6.5", + "core-js-compat": "^3.43.0" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz", - "integrity": "sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==", + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.8.tgz", + "integrity": "sha512-M762rNHfSF1EV3SLtnCJXFoQbbIIz0OyRwnCmV0KPC7qosSfCO0QLTSuJX3ayAebubhE6oYBAYPrBA5ljowaZg==", + "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.3" + "@babel/helper-define-polyfill-provider": "^0.6.8" }, "peerDependencies": { "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" @@ -4188,6 +6218,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -4196,46 +6227,66 @@ "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/baseline-browser-mapping": { + "version": "2.10.20", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.20.tgz", + "integrity": "sha512-1AaXxEPfXT+GvTBJFuy4yXVHWJBXa4OdbIebGN/wX5DlsIkU0+wzGnd2lOzokSk51d5LUmqjgBLRLlypLUqInQ==", + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": ">=6.0.0" + } }, "node_modules/batch": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==" + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "license": "MIT" }, "node_modules/big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "license": "MIT", "engines": { "node": "*" } }, "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "license": "MIT", "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/body-parser": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "version": "1.20.4", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.4.tgz", + "integrity": "sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA==", + "license": "MIT", "dependencies": { - "bytes": "3.1.2", + "bytes": "~3.1.2", "content-type": "~1.0.5", "debug": "2.6.9", "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.2", + "destroy": "~1.2.0", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "on-finished": "~2.4.1", + "qs": "~6.14.0", + "raw-body": "~2.5.3", "type-is": "~1.6.18", - "unpipe": "1.0.0" + "unpipe": "~1.0.0" }, "engines": { "node": ">= 0.8", @@ -4246,6 +6297,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -4254,6 +6306,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -4261,15 +6314,15 @@ "node_modules/body-parser/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" }, "node_modules/bonjour-service": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.1.tgz", - "integrity": "sha512-Z/5lQRMOG9k7W+FkeGTNjh7htqn/2LMnfOvBZ8pynNZCM9MwkQkI3zeI4oz09uWdcgmgHugVvBqxGg4VQJ5PCg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.3.0.tgz", + "integrity": "sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA==", + "license": "MIT", "dependencies": { - "array-flatten": "^2.1.2", - "dns-equal": "^1.0.0", "fast-deep-equal": "^3.1.3", "multicast-dns": "^7.2.5" } @@ -4277,12 +6330,14 @@ "node_modules/boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "license": "ISC" }, "node_modules/boxen": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/boxen/-/boxen-6.2.1.tgz", "integrity": "sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==", + "license": "MIT", "dependencies": { "ansi-align": "^3.0.1", "camelcase": "^6.2.0", @@ -4301,9 +6356,10 @@ } }, "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", + "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -4313,6 +6369,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", "dependencies": { "fill-range": "^7.1.1" }, @@ -4321,9 +6378,9 @@ } }, "node_modules/browserslist": { - "version": "4.23.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.1.tgz", - "integrity": "sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==", + "version": "4.28.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.2.tgz", + "integrity": "sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==", "funding": [ { "type": "opencollective", @@ -4338,11 +6395,13 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001629", - "electron-to-chromium": "^1.4.796", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.16" + "baseline-browser-mapping": "^2.10.12", + "caniuse-lite": "^1.0.30001782", + "electron-to-chromium": "^1.5.328", + "node-releases": "^2.0.36", + "update-browserslist-db": "^1.2.3" }, "bin": { "browserslist": "cli.js" @@ -4354,20 +6413,47 @@ "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "license": "MIT" + }, + "node_modules/bundle-name": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", + "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", + "license": "MIT", + "dependencies": { + "run-applescript": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/bytes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, + "node_modules/bytestreamjs": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/bytestreamjs/-/bytestreamjs-2.0.1.tgz", + "integrity": "sha512-U1Z/ob71V/bXfVABvNr/Kumf5VyeQRBEm6Txb0PQ6S7V5GpBM3w4Cbqz/xPDicR5tN0uvDifng8C+5qECeGwyQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/cacheable-lookup": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==", + "license": "MIT", "engines": { "node": ">=14.16" } @@ -4376,6 +6462,7 @@ "version": "10.2.14", "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.14.tgz", "integrity": "sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==", + "license": "MIT", "dependencies": { "@types/http-cache-semantics": "^4.0.2", "get-stream": "^6.0.1", @@ -4389,27 +6476,45 @@ "node": ">=14.16" } }, - "node_modules/cacheable-request/node_modules/normalize-url": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz", - "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==", + "node_modules/call-bind": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.9.tgz", + "integrity": "sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "get-intrinsic": "^1.3.0", + "set-function-length": "^1.2.2" + }, "engines": { - "node": ">=14.16" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", "dependencies": { - "es-define-property": "^1.0.0", "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" }, "engines": { "node": ">= 0.4" @@ -4422,6 +6527,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "license": "MIT", "engines": { "node": ">=6" } @@ -4430,6 +6536,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "license": "MIT", "dependencies": { "pascal-case": "^3.1.2", "tslib": "^2.0.3" @@ -4439,6 +6546,7 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -4450,6 +6558,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "license": "MIT", "dependencies": { "browserslist": "^4.0.0", "caniuse-lite": "^1.0.0", @@ -4458,9 +6567,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001640", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001640.tgz", - "integrity": "sha512-lA4VMpW0PSUrFnkmVuEKBUovSWKhj7puyCg8StBChgu298N1AtuF1sKWEvfDuimSEDbhlb/KqPKC3fs1HbuQUA==", + "version": "1.0.30001788", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001788.tgz", + "integrity": "sha512-6q8HFp+lOQtcf7wBK+uEenxymVWkGKkjFpCvw5W25cmMwEDU45p1xQFBQv8JDlMMry7eNxyBaR+qxgmTUZkIRQ==", "funding": [ { "type": "opencollective", @@ -4474,12 +6583,14 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ] + ], + "license": "CC-BY-4.0" }, "node_modules/ccount": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -4489,6 +6600,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -4504,6 +6616,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "license": "MIT", "engines": { "node": ">=10" } @@ -4512,6 +6625,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -4521,6 +6635,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -4530,6 +6645,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -4539,6 +6655,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -4548,6 +6665,7 @@ "version": "1.0.0-rc.12", "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", + "license": "MIT", "dependencies": { "cheerio-select": "^2.1.0", "dom-serializer": "^2.0.0", @@ -4568,6 +6686,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", + "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0", "css-select": "^5.1.0", @@ -4581,15 +6700,10 @@ } }, "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "license": "MIT", "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -4602,14 +6716,18 @@ "engines": { "node": ">= 8.10.0" }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, "optionalDependencies": { "fsevents": "~2.3.2" } }, "node_modules/chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "license": "MIT", "engines": { "node": ">=6.0" } @@ -4624,14 +6742,16 @@ "url": "https://github.com/sponsors/sibiraj-s" } ], + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/clean-css": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.2.tgz", - "integrity": "sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", + "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", + "license": "MIT", "dependencies": { "source-map": "~0.6.0" }, @@ -4643,6 +6763,7 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -4651,6 +6772,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "license": "MIT", "engines": { "node": ">=6" } @@ -4659,6 +6781,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -4667,9 +6790,10 @@ } }, "node_modules/cli-table3": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", - "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==", + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz", + "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==", + "license": "MIT", "dependencies": { "string-width": "^4.2.0" }, @@ -4683,12 +6807,14 @@ "node_modules/cli-table3/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" }, "node_modules/cli-table3/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -4702,6 +6828,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "license": "MIT", "dependencies": { "is-plain-object": "^2.0.4", "kind-of": "^6.0.2", @@ -4711,21 +6838,11 @@ "node": ">=6" } }, - "node_modules/clone-deep/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/clsx": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "license": "MIT", "engines": { "node": ">=6" } @@ -4734,6 +6851,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-2.1.0.tgz", "integrity": "sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -4743,6 +6861,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -4753,22 +6872,26 @@ "node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" }, "node_modules/colord": { "version": "2.9.3", "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", - "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==" + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", + "license": "MIT" }, "node_modules/colorette": { "version": "2.0.20", "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==" + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "license": "MIT" }, "node_modules/combine-promises": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/combine-promises/-/combine-promises-1.2.0.tgz", "integrity": "sha512-VcQB1ziGD0NXrhKxiwyNbCDmRzs/OShMs2GqW2DlU2A/Sd0nQxE1oWDAE5O0ygSx5mgQOn9eIFh7yKPgFRVkPQ==", + "license": "MIT", "engines": { "node": ">=10" } @@ -4777,6 +6900,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -4786,6 +6910,7 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "license": "MIT", "engines": { "node": ">= 6" } @@ -4793,12 +6918,14 @@ "node_modules/common-path-prefix": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", - "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==" + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", + "license": "ISC" }, "node_modules/compressible": { "version": "2.0.18", "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "license": "MIT", "dependencies": { "mime-db": ">= 1.43.0 < 2" }, @@ -4807,34 +6934,46 @@ } }, "node_modules/compressible/node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.1.tgz", + "integrity": "sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==", + "license": "MIT", "dependencies": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", + "bytes": "3.1.2", + "compressible": "~2.0.18", "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", + "negotiator": "~0.6.4", + "on-headers": "~1.1.0", + "safe-buffer": "5.2.1", "vary": "~1.1.2" }, "engines": { "node": ">= 0.8.0" } }, + "node_modules/compression/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/compression/node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -4842,31 +6981,36 @@ "node_modules/compression/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/compression/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "license": "MIT" }, "node_modules/config-chain": { "version": "1.1.13", "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "license": "MIT", "dependencies": { "ini": "^1.3.4", "proto-list": "~1.2.1" } }, + "node_modules/config-chain/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "license": "ISC" + }, "node_modules/configstore": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/configstore/-/configstore-6.0.0.tgz", "integrity": "sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==", + "license": "BSD-2-Clause", "dependencies": { "dot-prop": "^6.0.1", "graceful-fs": "^4.2.6", @@ -4885,19 +7029,25 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "license": "MIT", "engines": { "node": ">=0.8" } }, "node_modules/consola": { - "version": "2.15.3", - "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", - "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==" + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/consola/-/consola-3.4.2.tgz", + "integrity": "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==", + "license": "MIT", + "engines": { + "node": "^14.18.0 || >=16.10.0" + } }, "node_modules/content-disposition": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", "integrity": "sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -4906,6 +7056,7 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -4913,25 +7064,29 @@ "node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "license": "MIT" }, "node_modules/cookie": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.7.tgz", + "integrity": "sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==", + "license": "MIT" }, "node_modules/copy-text-to-clipboard": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/copy-text-to-clipboard/-/copy-text-to-clipboard-3.2.0.tgz", - "integrity": "sha512-RnJFp1XR/LOBDckxTib5Qjr/PMfkatD0MUCQgdpqS8MdKiNUzBjAQBEN6oUy+jW7LI93BBG3DtMB2KOOKpGs2Q==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/copy-text-to-clipboard/-/copy-text-to-clipboard-3.2.2.tgz", + "integrity": "sha512-T6SqyLd1iLuqPA90J5N4cTalrtovCySh58iiZDGJ6FGznbclKh4UI+FGacQSgFzwKG77W7XT5gwbVEbd9cIH1A==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -4943,6 +7098,7 @@ "version": "11.0.0", "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", + "license": "MIT", "dependencies": { "fast-glob": "^3.2.11", "glob-parent": "^6.0.1", @@ -4966,6 +7122,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "license": "ISC", "dependencies": { "is-glob": "^4.0.3" }, @@ -4977,6 +7134,7 @@ "version": "13.2.2", "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", + "license": "MIT", "dependencies": { "dir-glob": "^3.0.1", "fast-glob": "^3.3.0", @@ -4995,6 +7153,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -5003,46 +7162,40 @@ } }, "node_modules/core-js": { - "version": "3.33.3", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.33.3.tgz", - "integrity": "sha512-lo0kOocUlLKmm6kv/FswQL8zbkH7mVsLJ/FULClOhv8WRVmKLVcs6XPNQAzstfeJTCHMyButEwG+z1kHxHoDZw==", + "version": "3.49.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.49.0.tgz", + "integrity": "sha512-es1U2+YTtzpwkxVLwAFdSpaIMyQaq0PBgm3YD1W3Qpsn1NAmO3KSgZfu+oGSWVu6NvLHoHCV/aYcsE5wiB7ALg==", "hasInstallScript": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" } }, "node_modules/core-js-compat": { - "version": "3.33.3", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.33.3.tgz", - "integrity": "sha512-cNzGqFsh3Ot+529GIXacjTJ7kegdt5fPXxCBVS1G0iaZpuo/tBz399ymceLJveQhFFZ8qThHiP3fzuoQjKN2ow==", + "version": "3.49.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.49.0.tgz", + "integrity": "sha512-VQXt1jr9cBz03b331DFDCCP90b3fanciLkgiOoy8SBHy06gNf+vQ1A3WFLqG7I8TipYIKeYK9wxd0tUrvHcOZA==", + "license": "MIT", "dependencies": { - "browserslist": "^4.22.1" + "browserslist": "^4.28.1" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" } }, - "node_modules/core-js-pure": { - "version": "3.33.3", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.33.3.tgz", - "integrity": "sha512-taJ00IDOP+XYQEA2dAe4ESkmHt1fL8wzYDo3mRWQey8uO9UojlBFMneA65kMyxfYP7106c6LzWaq7/haDT6BCQ==", - "hasInstallScript": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, "node_modules/core-util-is": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "license": "MIT" }, "node_modules/cosmiconfig": { "version": "8.3.6", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "license": "MIT", "dependencies": { "import-fresh": "^3.3.0", "js-yaml": "^4.1.0", @@ -5065,9 +7218,10 @@ } }, "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -5081,6 +7235,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-4.0.0.tgz", "integrity": "sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==", + "license": "MIT", "dependencies": { "type-fest": "^1.0.1" }, @@ -5095,6 +7250,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=10" }, @@ -5102,10 +7258,49 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/css-blank-pseudo": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-7.0.1.tgz", + "integrity": "sha512-jf+twWGDf6LDoXDUode+nc7ZlrqfaNphrBIBrcmeP3D8yw1uPaix1gCC8LUQUGQ6CycuK2opkbFFWFuq/a94ag==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-blank-pseudo/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/css-declaration-sorter": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.2.0.tgz", - "integrity": "sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.4.0.tgz", + "integrity": "sha512-LTuzjPoyA2vMGKKcaOqKSp7Ub2eGrNfKiZH4LpezxpNrsICGCSFvsQOI29psISxNZtaXibkC2CXzrQ5enMeGGw==", + "license": "ISC", "engines": { "node": "^14 || ^16 || >=18" }, @@ -5113,19 +7308,82 @@ "postcss": "^8.0.9" } }, + "node_modules/css-has-pseudo": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-7.0.3.tgz", + "integrity": "sha512-oG+vKuGyqe/xvEMoxAQrhi7uY16deJR3i7wwhBerVrGQKSqUC5GiOVxTpM9F9B9hw0J+eKeOWLH7E9gZ1Dr5rA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/selector-specificity": "^5.0.0", + "postcss-selector-parser": "^7.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-has-pseudo/node_modules/@csstools/selector-specificity": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz", + "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss-selector-parser": "^7.0.0" + } + }, + "node_modules/css-has-pseudo/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/css-loader": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.8.1.tgz", - "integrity": "sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.11.0.tgz", + "integrity": "sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==", + "license": "MIT", "dependencies": { "icss-utils": "^5.1.0", - "postcss": "^8.4.21", - "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.3", - "postcss-modules-scope": "^3.0.0", + "postcss": "^8.4.33", + "postcss-modules-extract-imports": "^3.1.0", + "postcss-modules-local-by-default": "^4.0.5", + "postcss-modules-scope": "^3.2.0", "postcss-modules-values": "^4.0.0", "postcss-value-parser": "^4.2.0", - "semver": "^7.3.8" + "semver": "^7.5.4" }, "engines": { "node": ">= 12.13.0" @@ -5135,13 +7393,23 @@ "url": "https://opencollective.com/webpack" }, "peerDependencies": { + "@rspack/core": "0.x || 1.x", "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } } }, "node_modules/css-minimizer-webpack-plugin": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-5.0.1.tgz", "integrity": "sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg==", + "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "^0.3.18", "cssnano": "^6.0.1", @@ -5181,10 +7449,33 @@ } } }, + "node_modules/css-prefers-color-scheme": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-10.0.0.tgz", + "integrity": "sha512-VCtXZAWivRglTZditUfB4StnsWr6YVZ2PRtuxQLKTNRdtAf8tpzaVPE9zXIF3VaSc7O70iK/j1+NXxyQCqdPjQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, "node_modules/css-select": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", - "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", + "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", + "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0", "css-what": "^6.1.0", @@ -5200,6 +7491,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "license": "MIT", "dependencies": { "mdn-data": "2.0.30", "source-map-js": "^1.0.1" @@ -5209,9 +7501,10 @@ } }, "node_modules/css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", + "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", + "license": "BSD-2-Clause", "engines": { "node": ">= 6" }, @@ -5219,10 +7512,27 @@ "url": "https://github.com/sponsors/fb55" } }, + "node_modules/cssdb": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-8.8.0.tgz", + "integrity": "sha512-QbLeyz2Bgso1iRlh7IpWk6OKa3lLNGXsujVjDMPl9rOZpxKeiG69icLpbLCFxeURwmcdIfZqQyhlooKJYM4f8Q==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + } + ], + "license": "MIT-0" + }, "node_modules/cssesc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "license": "MIT", "bin": { "cssesc": "bin/cssesc" }, @@ -5234,6 +7544,7 @@ "version": "6.1.2", "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.1.2.tgz", "integrity": "sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA==", + "license": "MIT", "dependencies": { "cssnano-preset-default": "^6.1.2", "lilconfig": "^3.1.1" @@ -5253,6 +7564,7 @@ "version": "6.1.2", "resolved": "https://registry.npmjs.org/cssnano-preset-advanced/-/cssnano-preset-advanced-6.1.2.tgz", "integrity": "sha512-Nhao7eD8ph2DoHolEzQs5CfRpiEP0xa1HBdnFZ82kvqdmbwVBUr2r1QuQ4t1pi+D1ZpqpcO4T+wy/7RxzJ/WPQ==", + "license": "MIT", "dependencies": { "autoprefixer": "^10.4.19", "browserslist": "^4.23.0", @@ -5273,6 +7585,7 @@ "version": "6.1.2", "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.1.2.tgz", "integrity": "sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg==", + "license": "MIT", "dependencies": { "browserslist": "^4.23.0", "css-declaration-sorter": "^7.2.0", @@ -5316,6 +7629,7 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.2.tgz", "integrity": "sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==", + "license": "MIT", "engines": { "node": "^14 || ^16 || >=18.0" }, @@ -5327,6 +7641,7 @@ "version": "5.0.5", "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "license": "MIT", "dependencies": { "css-tree": "~2.2.0" }, @@ -5339,6 +7654,7 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "license": "MIT", "dependencies": { "mdn-data": "2.0.28", "source-map-js": "^1.0.1" @@ -5351,24 +7667,28 @@ "node_modules/csso/node_modules/mdn-data": { "version": "2.0.28", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", - "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==" + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", + "license": "CC0-1.0" }, "node_modules/csstype": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", - "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "license": "MIT" }, "node_modules/debounce": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", - "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==" + "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==", + "license": "MIT" }, "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -5380,9 +7700,10 @@ } }, "node_modules/decode-named-character-reference": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", - "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.3.0.tgz", + "integrity": "sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q==", + "license": "MIT", "dependencies": { "character-entities": "^2.0.0" }, @@ -5395,6 +7716,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "license": "MIT", "dependencies": { "mimic-response": "^3.1.0" }, @@ -5409,6 +7731,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -5420,6 +7743,7 @@ "version": "0.6.0", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "license": "MIT", "engines": { "node": ">=4.0.0" } @@ -5428,25 +7752,44 @@ "version": "4.3.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/default-gateway": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", - "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "node_modules/default-browser": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.5.0.tgz", + "integrity": "sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw==", + "license": "MIT", "dependencies": { - "execa": "^5.0.0" + "bundle-name": "^4.1.0", + "default-browser-id": "^5.0.0" }, "engines": { - "node": ">= 10" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.1.tgz", + "integrity": "sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/defer-to-connect": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "license": "MIT", "engines": { "node": ">=10" } @@ -5455,6 +7798,7 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "license": "MIT", "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", @@ -5471,6 +7815,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "license": "MIT", "engines": { "node": ">=8" } @@ -5479,6 +7824,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "license": "MIT", "dependencies": { "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", @@ -5491,31 +7837,11 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/del": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", - "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", - "dependencies": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -5524,6 +7850,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "license": "MIT", "engines": { "node": ">=6" } @@ -5532,6 +7859,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "license": "MIT", "engines": { "node": ">= 0.8", "npm": "1.2.8000 || >= 1.4.16" @@ -5540,12 +7868,14 @@ "node_modules/detect-node": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "license": "MIT" }, "node_modules/detect-port": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.5.1.tgz", - "integrity": "sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.6.1.tgz", + "integrity": "sha512-CmnVc+Hek2egPx1PeTFVta2W78xy2K/9Rkf6cC4T59S50tVnzKj+tnx5mmx5lwvCkujZ4uRrpRSuV+IVs3f90Q==", + "license": "MIT", "dependencies": { "address": "^1.0.1", "debug": "4" @@ -5553,41 +7883,16 @@ "bin": { "detect": "bin/detect-port.js", "detect-port": "bin/detect-port.js" - } - }, - "node_modules/detect-port-alt": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", - "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", - "dependencies": { - "address": "^1.0.1", - "debug": "^2.6.0" - }, - "bin": { - "detect": "bin/detect-port", - "detect-port": "bin/detect-port" }, "engines": { - "node": ">= 4.2.1" - } - }, - "node_modules/detect-port-alt/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" + "node": ">= 4.0.0" } }, - "node_modules/detect-port-alt/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, "node_modules/devlop": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", + "license": "MIT", "dependencies": { "dequal": "^2.0.0" }, @@ -5600,6 +7905,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "license": "MIT", "dependencies": { "path-type": "^4.0.0" }, @@ -5607,15 +7913,11 @@ "node": ">=8" } }, - "node_modules/dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==" - }, "node_modules/dns-packet": { "version": "5.6.1", "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", + "license": "MIT", "dependencies": { "@leichtgewicht/ip-codec": "^2.0.1" }, @@ -5627,6 +7929,7 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "license": "MIT", "dependencies": { "utila": "~0.4" } @@ -5635,6 +7938,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "license": "MIT", "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.2", @@ -5653,12 +7957,14 @@ "type": "github", "url": "https://github.com/sponsors/fb55" } - ] + ], + "license": "BSD-2-Clause" }, "node_modules/domhandler": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "license": "BSD-2-Clause", "dependencies": { "domelementtype": "^2.3.0" }, @@ -5670,9 +7976,10 @@ } }, "node_modules/domutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", - "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "license": "BSD-2-Clause", "dependencies": { "dom-serializer": "^2.0.0", "domelementtype": "^2.3.0", @@ -5686,6 +7993,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "license": "MIT", "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3" @@ -5695,6 +8003,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", + "license": "MIT", "dependencies": { "is-obj": "^2.0.0" }, @@ -5709,72 +8018,97 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "license": "MIT", "engines": { "node": ">=8" } }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/duplexer": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "license": "MIT" }, "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "license": "MIT" }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.4.816", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.816.tgz", - "integrity": "sha512-EKH5X5oqC6hLmiS7/vYtZHZFTNdhsYG5NVPRN6Yn0kQHNBlT59+xSM8HBy66P5fxWpKgZbPqb+diC64ng295Jw==" + "version": "1.5.340", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.340.tgz", + "integrity": "sha512-908qahOGocRMinT2nM3ajCEM99H4iPdv84eagPP3FfZy/1ZGeOy2CZYzjhms81ckOPCXPlW7LkY4XpxD8r1DrA==", + "license": "ISC" }, "node_modules/emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "license": "MIT" }, "node_modules/emojilib": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/emojilib/-/emojilib-2.4.0.tgz", - "integrity": "sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==" + "integrity": "sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==", + "license": "MIT" }, "node_modules/emojis-list": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/emoticon": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/emoticon/-/emoticon-4.0.1.tgz", - "integrity": "sha512-dqx7eA9YaqyvYtUhJwT4rC1HIp82j5ybS1/vQ42ur+jBe17dJMwZE4+gvL1XadSFfxaPFFGt3Xsw+Y8akThDlw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/emoticon/-/emoticon-4.1.0.tgz", + "integrity": "sha512-VWZfnxqwNcc51hIy/sbOdEem6D+cVtpPzEEtVAFdaas30+1dgkyaOQ4sQ6Bp0tOMqWO1v+HQfYaoodOkdhK6SQ==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/enhanced-resolve": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", - "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", + "version": "5.20.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.20.1.tgz", + "integrity": "sha512-Qohcme7V1inbAfvjItgw0EaxVX5q2rdVEZHRBrEQdRZTssLDGsL8Lwrznl8oQ/6kuTJONLaDcGjkNP247XEhcA==", + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" + "tapable": "^2.3.0" }, "engines": { "node": ">=10.13.0" @@ -5784,6 +8118,7 @@ "version": "4.5.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", "engines": { "node": ">=0.12" }, @@ -5792,20 +8127,19 @@ } }, "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", + "license": "MIT", "dependencies": { "is-arrayish": "^0.2.1" } }, "node_modules/es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "dependencies": { - "get-intrinsic": "^1.2.4" - }, + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", "engines": { "node": ">= 0.4" } @@ -5814,19 +8148,66 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", "engines": { "node": ">= 0.4" } }, "node_modules/es-module-lexer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", - "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.0.0.tgz", + "integrity": "sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==", + "license": "MIT" + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/esast-util-from-estree": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/esast-util-from-estree/-/esast-util-from-estree-2.0.0.tgz", + "integrity": "sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "devlop": "^1.0.0", + "estree-util-visit": "^2.0.0", + "unist-util-position-from-estree": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/esast-util-from-js": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/esast-util-from-js/-/esast-util-from-js-2.0.1.tgz", + "integrity": "sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==", + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "acorn": "^8.0.0", + "esast-util-from-estree": "^2.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } }, "node_modules/escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", "engines": { "node": ">=6" } @@ -5835,6 +8216,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-4.0.0.tgz", "integrity": "sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -5845,12 +8227,14 @@ "node_modules/escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" }, "node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -5862,6 +8246,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" @@ -5874,6 +8259,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "license": "BSD-2-Clause", "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" @@ -5886,6 +8272,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" }, @@ -5897,6 +8284,7 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } @@ -5905,6 +8293,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } @@ -5913,6 +8302,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/estree-util-attach-comments/-/estree-util-attach-comments-3.0.0.tgz", "integrity": "sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==", + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0" }, @@ -5925,6 +8315,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/estree-util-build-jsx/-/estree-util-build-jsx-3.0.1.tgz", "integrity": "sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==", + "license": "MIT", "dependencies": { "@types/estree-jsx": "^1.0.0", "devlop": "^1.0.0", @@ -5940,6 +8331,21 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz", "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-scope": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/estree-util-scope/-/estree-util-scope-1.0.0.tgz", + "integrity": "sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0" + }, "funding": { "type": "opencollective", "url": "https://opencollective.com/unified" @@ -5949,6 +8355,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/estree-util-to-js/-/estree-util-to-js-2.0.0.tgz", "integrity": "sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==", + "license": "MIT", "dependencies": { "@types/estree-jsx": "^1.0.0", "astring": "^1.8.0", @@ -5960,9 +8367,10 @@ } }, "node_modules/estree-util-value-to-estree": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/estree-util-value-to-estree/-/estree-util-value-to-estree-3.1.2.tgz", - "integrity": "sha512-S0gW2+XZkmsx00tU2uJ4L9hUT7IFabbml9pHh2WQqFmAbxit++YGZne0sKJbNwkj9Wvg9E4uqWl4nCIFQMmfag==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/estree-util-value-to-estree/-/estree-util-value-to-estree-3.5.0.tgz", + "integrity": "sha512-aMV56R27Gv3QmfmF1MY12GWkGzzeAezAX+UplqHVASfjc9wNzI/X6hC0S9oxq61WT4aQesLGslWP9tKk6ghRZQ==", + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0" }, @@ -5974,6 +8382,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/estree-util-visit/-/estree-util-visit-2.0.0.tgz", "integrity": "sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==", + "license": "MIT", "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/unist": "^3.0.0" @@ -5987,6 +8396,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0" } @@ -5995,6 +8405,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } @@ -6003,6 +8414,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/eta/-/eta-2.2.0.tgz", "integrity": "sha512-UVQ72Rqjy/ZKQalzV5dCCJP80GrmPrMxh6NlNf+erV6ObL0ZFkhCstWRawS85z3smdr3d2wXPsZEY7rDPfGd2g==", + "license": "MIT", "engines": { "node": ">=6.0.0" }, @@ -6014,6 +8426,7 @@ "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -6033,12 +8446,14 @@ "node_modules/eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "license": "MIT" }, "node_modules/events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "license": "MIT", "engines": { "node": ">=0.8.x" } @@ -6047,6 +8462,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "license": "MIT", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", @@ -6066,55 +8482,56 @@ } }, "node_modules/express": { - "version": "4.19.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", - "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.22.1.tgz", + "integrity": "sha512-F2X8g9P1X7uCPZMA3MVf9wcTqlyNp7IhH5qPCI0izhaOIYXaW9L535tGA3qmjRzpH+bZczqq7hVKxTR4NWnu+g==", + "license": "MIT", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.2", - "content-disposition": "0.5.4", + "body-parser": "~1.20.3", + "content-disposition": "~0.5.4", "content-type": "~1.0.4", - "cookie": "0.6.0", - "cookie-signature": "1.0.6", + "cookie": "~0.7.1", + "cookie-signature": "~1.0.6", "debug": "2.6.9", "depd": "2.0.0", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", + "finalhandler": "~1.3.1", + "fresh": "~0.5.2", + "http-errors": "~2.0.0", + "merge-descriptors": "1.0.3", "methods": "~1.1.2", - "on-finished": "2.4.1", + "on-finished": "~2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", + "path-to-regexp": "~0.1.12", "proxy-addr": "~2.0.7", - "qs": "6.11.0", + "qs": "~6.14.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", + "send": "~0.19.0", + "serve-static": "~1.16.2", "setprototypeof": "1.2.0", - "statuses": "2.0.1", + "statuses": "~2.0.1", "type-is": "~1.6.18", "utils-merge": "1.0.1", "vary": "~1.1.2" }, "engines": { "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, - "node_modules/express/node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" - }, "node_modules/express/node_modules/content-disposition": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "license": "MIT", "dependencies": { "safe-buffer": "5.2.1" }, @@ -6126,6 +8543,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -6133,17 +8551,20 @@ "node_modules/express/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" }, "node_modules/express/node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.13.tgz", + "integrity": "sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA==", + "license": "MIT" }, "node_modules/express/node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -6151,12 +8572,14 @@ "node_modules/extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "license": "MIT" }, "node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "license": "MIT", "dependencies": { "is-extendable": "^0.1.0" }, @@ -6167,18 +8590,20 @@ "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" }, "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "micromatch": "^4.0.8" }, "engines": { "node": ">=8.6.0" @@ -6187,20 +8612,30 @@ "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "license": "MIT" }, - "node_modules/fast-url-parser": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", - "integrity": "sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==", - "dependencies": { - "punycode": "^1.3.2" - } + "node_modules/fast-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", + "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" }, "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", + "license": "ISC", "dependencies": { "reusify": "^1.0.4" } @@ -6209,6 +8644,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/fault/-/fault-2.0.1.tgz", "integrity": "sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==", + "license": "MIT", "dependencies": { "format": "^0.2.0" }, @@ -6221,6 +8657,7 @@ "version": "0.11.4", "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "license": "Apache-2.0", "dependencies": { "websocket-driver": ">=0.5.1" }, @@ -6232,6 +8669,7 @@ "version": "4.2.2", "resolved": "https://registry.npmjs.org/feed/-/feed-4.2.2.tgz", "integrity": "sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==", + "license": "MIT", "dependencies": { "xml-js": "^1.6.11" }, @@ -6243,6 +8681,7 @@ "version": "6.2.0", "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", + "license": "MIT", "dependencies": { "loader-utils": "^2.0.0", "schema-utils": "^3.0.0" @@ -6259,9 +8698,10 @@ } }, "node_modules/file-loader/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", + "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -6277,6 +8717,7 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "license": "MIT", "peerDependencies": { "ajv": "^6.9.1" } @@ -6284,12 +8725,14 @@ "node_modules/file-loader/node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" }, "node_modules/file-loader/node_modules/schema-utils": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", @@ -6303,18 +8746,11 @@ "url": "https://opencollective.com/webpack" } }, - "node_modules/filesize": { - "version": "8.0.7", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", - "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==", - "engines": { - "node": ">= 0.4.0" - } - }, "node_modules/fill-range": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -6323,16 +8759,17 @@ } }, "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.2.tgz", + "integrity": "sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==", + "license": "MIT", "dependencies": { "debug": "2.6.9", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", - "on-finished": "2.4.1", + "on-finished": "~2.4.1", "parseurl": "~1.3.3", - "statuses": "2.0.1", + "statuses": "~2.0.2", "unpipe": "~1.0.0" }, "engines": { @@ -6343,6 +8780,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -6350,12 +8788,14 @@ "node_modules/finalhandler/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" }, "node_modules/find-cache-dir": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", + "license": "MIT", "dependencies": { "common-path-prefix": "^3.0.0", "pkg-dir": "^7.0.0" @@ -6371,6 +8811,7 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "license": "MIT", "dependencies": { "locate-path": "^7.1.0", "path-exists": "^5.0.0" @@ -6386,20 +8827,22 @@ "version": "5.0.2", "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "license": "BSD-3-Clause", "bin": { "flat": "cli.js" } }, "node_modules/follow-redirects": { - "version": "1.15.6", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", - "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz", + "integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==", "funding": [ { "type": "individual", "url": "https://github.com/sponsors/RubenVerborgh" } ], + "license": "MIT", "engines": { "node": ">=4.0" }, @@ -6409,130 +8852,11 @@ } } }, - "node_modules/fork-ts-checker-webpack-plugin": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz", - "integrity": "sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==", - "dependencies": { - "@babel/code-frame": "^7.8.3", - "@types/json-schema": "^7.0.5", - "chalk": "^4.1.0", - "chokidar": "^3.4.2", - "cosmiconfig": "^6.0.0", - "deepmerge": "^4.2.2", - "fs-extra": "^9.0.0", - "glob": "^7.1.6", - "memfs": "^3.1.2", - "minimatch": "^3.0.4", - "schema-utils": "2.7.0", - "semver": "^7.3.2", - "tapable": "^1.0.0" - }, - "engines": { - "node": ">=10", - "yarn": ">=1.0.0" - }, - "peerDependencies": { - "eslint": ">= 6", - "typescript": ">= 2.7", - "vue-template-compiler": "*", - "webpack": ">= 4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - }, - "vue-template-compiler": { - "optional": true - } - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/cosmiconfig": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", - "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", - "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.7.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", - "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", - "dependencies": { - "@types/json-schema": "^7.0.4", - "ajv": "^6.12.2", - "ajv-keywords": "^3.4.1" - }, - "engines": { - "node": ">= 8.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/fork-ts-checker-webpack-plugin/node_modules/tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", - "engines": { - "node": ">=6" - } - }, "node_modules/form-data-encoder": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz", "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==", + "license": "MIT", "engines": { "node": ">= 14.17" } @@ -6549,19 +8873,21 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/fraction.js": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", - "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-5.3.4.tgz", + "integrity": "sha512-1X1NTtiJphryn/uLQz3whtY6jK3fTqoE3ohKs0tT+Ujr1W59oopxmoEh7Lu5p6vBaPbgoM0bzveAW4Qi5RyWDQ==", + "license": "MIT", "engines": { "node": "*" }, "funding": { - "type": "patreon", + "type": "github", "url": "https://github.com/sponsors/rawify" } }, @@ -6569,14 +8895,16 @@ "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "version": "11.3.4", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.4.tgz", + "integrity": "sha512-CTXd6rk/M3/ULNQj8FBqBWHYBVYybQ3VPBw0xGKFe3tuH7ytT6ACnvzpIQ3UZtB8yvUKC2cXn1a+x+5EVQLovA==", + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -6586,21 +8914,12 @@ "node": ">=14.14" } }, - "node_modules/fs-monkey": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.5.tgz", - "integrity": "sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==" - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "hasInstallScript": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -6613,6 +8932,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -6621,20 +8941,27 @@ "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -6646,12 +8973,27 @@ "node_modules/get-own-enumerable-property-symbols": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==" + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", + "license": "ISC" + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } }, "node_modules/get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -6662,31 +9004,14 @@ "node_modules/github-slugger": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.5.0.tgz", - "integrity": "sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==" - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } + "integrity": "sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==", + "license": "ISC" }, "node_modules/glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", "dependencies": { "is-glob": "^4.0.1" }, @@ -6694,15 +9019,33 @@ "node": ">= 6" } }, + "node_modules/glob-to-regex.js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/glob-to-regex.js/-/glob-to-regex.js-1.2.0.tgz", + "integrity": "sha512-QMwlOQKU/IzqMUOAZWubUOT8Qft+Y0KQWnX9nK3ch0CJg0tTp4TvGZsTfudYKv2NzoQSyPcnA6TYeIQ3jGichQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, "node_modules/glob-to-regexp": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "license": "BSD-2-Clause" }, "node_modules/global-dirs": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz", "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==", + "license": "MIT", "dependencies": { "ini": "2.0.0" }, @@ -6713,61 +9056,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/global-dirs/node_modules/ini": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", - "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "dependencies": { - "global-prefix": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "dependencies": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/global-prefix/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "engines": { - "node": ">=4" - } - }, "node_modules/globby": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "license": "MIT", "dependencies": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -6784,11 +9077,12 @@ } }, "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dependencies": { - "get-intrinsic": "^1.1.3" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -6798,6 +9092,7 @@ "version": "12.6.1", "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", + "license": "MIT", "dependencies": { "@sindresorhus/is": "^5.2.0", "@szmarczak/http-timer": "^5.0.1", @@ -6822,6 +9117,7 @@ "version": "5.6.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz", "integrity": "sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==", + "license": "MIT", "engines": { "node": ">=14.16" }, @@ -6832,12 +9128,14 @@ "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" }, "node_modules/gray-matter": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", + "license": "MIT", "dependencies": { "js-yaml": "^3.13.1", "kind-of": "^6.0.2", @@ -6852,14 +9150,16 @@ "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "license": "MIT", "dependencies": { "sprintf-js": "~1.0.2" } }, "node_modules/gray-matter/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", + "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", + "license": "MIT", "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -6872,6 +9172,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "license": "MIT", "dependencies": { "duplexer": "^0.1.2" }, @@ -6885,12 +9186,14 @@ "node_modules/handle-thing": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "license": "MIT" }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", "engines": { "node": ">=8" } @@ -6899,6 +9202,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "license": "MIT", "dependencies": { "es-define-property": "^1.0.0" }, @@ -6906,21 +9210,11 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -6932,6 +9226,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-3.0.0.tgz", "integrity": "sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA==", + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -6940,9 +9235,10 @@ } }, "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.3.tgz", + "integrity": "sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==", + "license": "MIT", "dependencies": { "function-bind": "^1.1.2" }, @@ -6951,15 +9247,16 @@ } }, "node_modules/hast-util-from-parse5": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.1.tgz", - "integrity": "sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.3.tgz", + "integrity": "sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==", + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", "devlop": "^1.0.0", - "hastscript": "^8.0.0", - "property-information": "^6.0.0", + "hastscript": "^9.0.0", + "property-information": "^7.0.0", "vfile": "^6.0.0", "vfile-location": "^5.0.0", "web-namespaces": "^2.0.0" @@ -6973,6 +9270,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz", "integrity": "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==", + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0" }, @@ -6982,9 +9280,10 @@ } }, "node_modules/hast-util-raw": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.0.4.tgz", - "integrity": "sha512-LHE65TD2YiNsHD3YuXcKPHXPLuYh/gjp12mOfU8jxSrm1f/yJpsb0F/KKljS6U9LJoP0Ux+tCe8iJ2AsPzTdgA==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.1.0.tgz", + "integrity": "sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==", + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", @@ -7006,9 +9305,10 @@ } }, "node_modules/hast-util-to-estree": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-3.1.0.tgz", - "integrity": "sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-3.1.3.tgz", + "integrity": "sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==", + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "@types/estree-jsx": "^1.0.0", @@ -7021,9 +9321,9 @@ "mdast-util-mdx-expression": "^2.0.0", "mdast-util-mdx-jsx": "^3.0.0", "mdast-util-mdxjs-esm": "^2.0.0", - "property-information": "^6.0.0", + "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0", - "style-to-object": "^0.4.0", + "style-to-js": "^1.0.0", "unist-util-position": "^5.0.0", "zwitch": "^2.0.0" }, @@ -7033,9 +9333,10 @@ } }, "node_modules/hast-util-to-jsx-runtime": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.0.tgz", - "integrity": "sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.6.tgz", + "integrity": "sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==", + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "@types/hast": "^3.0.0", @@ -7047,9 +9348,9 @@ "mdast-util-mdx-expression": "^2.0.0", "mdast-util-mdx-jsx": "^3.0.0", "mdast-util-mdxjs-esm": "^2.0.0", - "property-information": "^6.0.0", + "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0", - "style-to-object": "^1.0.0", + "style-to-js": "^1.0.0", "unist-util-position": "^5.0.0", "vfile-message": "^4.0.0" }, @@ -7058,28 +9359,16 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/hast-util-to-jsx-runtime/node_modules/inline-style-parser": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.3.tgz", - "integrity": "sha512-qlD8YNDqyTKTyuITrDOffsl6Tdhv+UC4hcdAVuQsK4IMQ99nSgd1MIA/Q+jQYoh9r3hVUXhYh7urSRmXPkW04g==" - }, - "node_modules/hast-util-to-jsx-runtime/node_modules/style-to-object": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.6.tgz", - "integrity": "sha512-khxq+Qm3xEyZfKd/y9L3oIWQimxuc4STrQKtQn8aSDRHb8mFgpukgX1hdzfrMEW6JCjyJ8p89x+IUMVnCBI1PA==", - "dependencies": { - "inline-style-parser": "0.2.3" - } - }, "node_modules/hast-util-to-parse5": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-8.0.0.tgz", - "integrity": "sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-8.0.1.tgz", + "integrity": "sha512-MlWT6Pjt4CG9lFCjiz4BH7l9wmrMkfkJYCxFwKQic8+RTZgWPuWxwAfjJElsXkex7DJjfSJsQIt931ilUgmwdA==", + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "comma-separated-tokens": "^2.0.0", "devlop": "^1.0.0", - "property-information": "^6.0.0", + "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0", "web-namespaces": "^2.0.0", "zwitch": "^2.0.0" @@ -7093,6 +9382,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0" }, @@ -7102,14 +9392,15 @@ } }, "node_modules/hastscript": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-8.0.0.tgz", - "integrity": "sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-9.0.1.tgz", + "integrity": "sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==", + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "comma-separated-tokens": "^2.0.0", "hast-util-parse-selector": "^4.0.0", - "property-information": "^6.0.0", + "property-information": "^7.0.0", "space-separated-tokens": "^2.0.0" }, "funding": { @@ -7121,6 +9412,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "license": "MIT", "bin": { "he": "bin/he" } @@ -7129,6 +9421,7 @@ "version": "4.10.1", "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.1.2", "loose-envify": "^1.2.0", @@ -7142,6 +9435,7 @@ "version": "3.3.2", "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "license": "BSD-3-Clause", "dependencies": { "react-is": "^16.7.0" } @@ -7150,6 +9444,7 @@ "version": "2.1.6", "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "license": "MIT", "dependencies": { "inherits": "^2.0.1", "obuf": "^1.0.0", @@ -7160,12 +9455,14 @@ "node_modules/hpack.js/node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" }, "node_modules/hpack.js/node_modules/readable-stream": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -7179,40 +9476,29 @@ "node_modules/hpack.js/node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" }, "node_modules/hpack.js/node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } }, - "node_modules/html-entities": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.4.0.tgz", - "integrity": "sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/mdevils" - }, - { - "type": "patreon", - "url": "https://patreon.com/mdevils" - } - ] - }, "node_modules/html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "license": "MIT" }, "node_modules/html-minifier-terser": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.2.0.tgz", "integrity": "sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==", + "license": "MIT", "dependencies": { "camel-case": "^4.1.2", "clean-css": "~5.3.2", @@ -7233,6 +9519,7 @@ "version": "10.0.1", "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "license": "MIT", "engines": { "node": ">=14" } @@ -7241,6 +9528,7 @@ "version": "3.3.1", "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz", "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==", + "license": "MIT", "engines": { "node": ">=8" }, @@ -7252,15 +9540,17 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz", "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/html-webpack-plugin": { - "version": "5.5.3", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.3.tgz", - "integrity": "sha512-6YrDKTuqaP/TquFH7h4srYWsZx+x6k6+FbsTm0ziCwGHDP78Unr1r9F/H4+sGmMbX08GQcJ+K64x55b+7VM/jg==", + "version": "5.6.7", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.7.tgz", + "integrity": "sha512-md+vXtdCAe60s1k6AU3dUyMJnDxUyQAwfwPKoLisvgUF1IXjtlLsk2se54+qfL9Mdm26bbwvjJybpNx48NKRLw==", + "license": "MIT", "dependencies": { "@types/html-minifier-terser": "^6.0.0", "html-minifier-terser": "^6.0.2", @@ -7276,13 +9566,23 @@ "url": "https://opencollective.com/html-webpack-plugin" }, "peerDependencies": { + "@rspack/core": "0.x || 1.x", "webpack": "^5.20.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } } }, "node_modules/html-webpack-plugin/node_modules/commander": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "license": "MIT", "engines": { "node": ">= 12" } @@ -7291,6 +9591,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "license": "MIT", "dependencies": { "camel-case": "^4.1.2", "clean-css": "^5.2.2", @@ -7318,6 +9619,7 @@ "url": "https://github.com/sponsors/fb55" } ], + "license": "MIT", "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", @@ -7326,39 +9628,48 @@ } }, "node_modules/http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", + "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==", + "license": "BSD-2-Clause" }, "node_modules/http-deceiver": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==" + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "license": "MIT" }, "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", + "license": "MIT", "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" }, "engines": { "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/http-parser-js": { - "version": "0.5.8", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", - "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==" + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.10.tgz", + "integrity": "sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==", + "license": "MIT" }, "node_modules/http-proxy": { "version": "1.18.1", "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "license": "MIT", "dependencies": { "eventemitter3": "^4.0.0", "follow-redirects": "^1.0.0", @@ -7369,9 +9680,10 @@ } }, "node_modules/http-proxy-middleware": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", - "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.9.tgz", + "integrity": "sha512-c1IyJYLYppU574+YI7R4QyX2ystMtVXZwIdzazUIPIJsHuWNd+mho2j+bKoHftndicGj9yh+xjd+l0yj7VeT1Q==", + "license": "MIT", "dependencies": { "@types/http-proxy": "^1.17.8", "http-proxy": "^1.18.1", @@ -7395,6 +9707,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -7406,6 +9719,7 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz", "integrity": "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==", + "license": "MIT", "dependencies": { "quick-lru": "^5.1.1", "resolve-alpn": "^1.2.0" @@ -7418,14 +9732,25 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "license": "Apache-2.0", "engines": { "node": ">=10.17.0" } }, + "node_modules/hyperdyperid": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/hyperdyperid/-/hyperdyperid-1.2.0.tgz", + "integrity": "sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==", + "license": "MIT", + "engines": { + "node": ">=10.18" + } + }, "node_modules/iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, @@ -7437,6 +9762,7 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "license": "ISC", "engines": { "node": "^10 || ^12 || >= 14" }, @@ -7445,20 +9771,19 @@ } }, "node_modules/ignore": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", - "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/image-size": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.1.1.tgz", - "integrity": "sha512-541xKlUw6jr/6gGuk92F+mYM5zaFAc5ahphvkqvNe2bQ6gVBkd6bfrmVJ2t4KDAfikAYZyIqTnktX3i6/aQDrQ==", - "dependencies": { - "queue": "6.0.2" - }, + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-2.0.2.tgz", + "integrity": "sha512-IRqXKlaXwgSMAMtpNzZa1ZAe8m+Sa1770Dhk8VkSsP9LS+iHD62Zd8FQKs8fbPiagBE7BzoFX23cxFnwshpV6w==", + "license": "MIT", "bin": { "image-size": "bin/image-size.js" }, @@ -7466,19 +9791,11 @@ "node": ">=16.x" } }, - "node_modules/immer": { - "version": "9.0.21", - "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", - "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/immer" - } - }, "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -7494,6 +9811,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", + "license": "MIT", "engines": { "node": ">=8" } @@ -7502,6 +9820,7 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "license": "MIT", "engines": { "node": ">=0.8.19" } @@ -7510,62 +9829,55 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/infima": { - "version": "0.2.0-alpha.43", - "resolved": "https://registry.npmjs.org/infima/-/infima-0.2.0-alpha.43.tgz", - "integrity": "sha512-2uw57LvUqW0rK/SWYnd/2rRfxNA5DDNOh33jxF7fy46VWoNhGxiUQyVZHbBMjQ33mQem0cjdDVwgWVAmlRfgyQ==", + "version": "0.2.0-alpha.45", + "resolved": "https://registry.npmjs.org/infima/-/infima-0.2.0-alpha.45.tgz", + "integrity": "sha512-uyH0zfr1erU1OohLk0fT4Rrb94AOhguWNOcD9uGrSpRvNB+6gZXUoJX5J0NtvzBO10YZ9PgvA4NFgt+fYg8ojw==", + "license": "MIT", "engines": { "node": ">=12" } }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" }, "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, - "node_modules/inline-style-parser": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", - "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==" - }, - "node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "license": "ISC", "engines": { - "node": ">= 0.10" + "node": ">=10" } }, + "node_modules/inline-style-parser": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.7.tgz", + "integrity": "sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==", + "license": "MIT" + }, "node_modules/invariant": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "license": "MIT", "dependencies": { "loose-envify": "^1.0.0" } }, "node_modules/ipaddr.js": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", - "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.3.0.tgz", + "integrity": "sha512-Zv/pA+ciVFbCSBBjGfaKUya/CcGmUHzTydLMaTwrUUEM2DIEO3iZvueGxmacvmN50fGpGVKeTXpb2LcYQxeVdg==", + "license": "MIT", "engines": { "node": ">= 10" } @@ -7574,6 +9886,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -7583,6 +9896,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", + "license": "MIT", "dependencies": { "is-alphabetical": "^2.0.0", "is-decimal": "^2.0.0" @@ -7595,12 +9909,14 @@ "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "license": "MIT" }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "license": "MIT", "dependencies": { "binary-extensions": "^2.0.0" }, @@ -7612,6 +9928,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "license": "MIT", "dependencies": { "ci-info": "^3.2.0" }, @@ -7620,11 +9937,15 @@ } }, "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "license": "MIT", "dependencies": { - "hasown": "^2.0.0" + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -7634,6 +9955,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -7643,6 +9965,7 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "license": "MIT", "bin": { "is-docker": "cli.js" }, @@ -7657,6 +9980,7 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -7665,6 +9989,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -7673,6 +9998,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", "engines": { "node": ">=8" } @@ -7681,6 +10007,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -7692,15 +10019,50 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "license": "MIT", + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-inside-container/node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-installed-globally": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "license": "MIT", "dependencies": { "global-dirs": "^3.0.0", "is-path-inside": "^3.0.2" @@ -7712,10 +10074,23 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-network-error": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.3.1.tgz", + "integrity": "sha512-6QCxa49rQbmUWLfk0nuGqzql9U8uaV2H6279bRErPBHe/109hCzsLUBUHfbEtvLIHBd6hyXbgedBSHevm43Edw==", + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-npm": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-6.0.0.tgz", - "integrity": "sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-6.1.0.tgz", + "integrity": "sha512-O2z4/kNgyjhQwVR1Wpkbfc19JIhggF97NZNCpWTnjH7kVcZMUrnut9XSN7txI7VdyIYk5ZatOq3zvSuWpU8hoA==", + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -7727,6 +10102,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", "engines": { "node": ">=0.12.0" } @@ -7735,22 +10111,16 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "engines": { - "node": ">=6" - } - }, "node_modules/is-path-inside": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "license": "MIT", "engines": { "node": ">=8" } @@ -7759,6 +10129,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -7767,41 +10138,31 @@ } }, "node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "license": "MIT", + "dependencies": { + "isobject": "^3.0.1" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/is-reference": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.2.tgz", - "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==", - "dependencies": { - "@types/estree": "*" - } - }, "node_modules/is-regexp": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/is-root": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", - "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==", - "engines": { - "node": ">=6" - } - }, "node_modules/is-stream": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", "engines": { "node": ">=8" }, @@ -7812,12 +10173,14 @@ "node_modules/is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "license": "MIT" }, "node_modules/is-wsl": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "license": "MIT", "dependencies": { "is-docker": "^2.0.0" }, @@ -7829,6 +10192,7 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.4.1.tgz", "integrity": "sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==", + "license": "MIT", "engines": { "node": ">=12" } @@ -7836,17 +10200,20 @@ "node_modules/isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "license": "MIT" }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" }, "node_modules/isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -7855,6 +10222,7 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", @@ -7871,6 +10239,7 @@ "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "license": "MIT", "dependencies": { "@types/node": "*", "jest-util": "^29.7.0", @@ -7885,6 +10254,7 @@ "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -7896,9 +10266,10 @@ } }, "node_modules/jiti": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", - "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", + "version": "1.21.7", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", + "license": "MIT", "bin": { "jiti": "bin/jiti.js" } @@ -7907,6 +10278,7 @@ "version": "17.13.3", "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.3.tgz", "integrity": "sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==", + "license": "BSD-3-Clause", "dependencies": { "@hapi/hoek": "^9.3.0", "@hapi/topo": "^5.1.0", @@ -7918,12 +10290,14 @@ "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" }, "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -7932,35 +10306,40 @@ } }, "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, "engines": { - "node": ">=4" + "node": ">=6" } }, "node_modules/json-buffer": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "license": "MIT" }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "license": "MIT" }, "node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "license": "MIT", "bin": { "json5": "lib/cli.js" }, @@ -7969,9 +10348,10 @@ } }, "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "license": "MIT", "dependencies": { "universalify": "^2.0.0" }, @@ -7983,6 +10363,7 @@ "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "license": "MIT", "dependencies": { "json-buffer": "3.0.1" } @@ -7991,6 +10372,7 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -7999,6 +10381,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "license": "MIT", "engines": { "node": ">=6" } @@ -8007,6 +10390,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-7.0.0.tgz", "integrity": "sha512-KvNT4XqAMzdcL6ka6Tl3i2lYeFDgXNCuIX+xNx6ZMVR1dFq+idXd9FLKNMOIx0t9mJ9/HudyX4oZWXZQ0UJHeg==", + "license": "MIT", "dependencies": { "package-json": "^8.1.0" }, @@ -8018,26 +10402,29 @@ } }, "node_modules/launch-editor": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.1.tgz", - "integrity": "sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==", + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.13.2.tgz", + "integrity": "sha512-4VVDnbOpLXy/s8rdRCSXb+zfMeFR0WlJWpET1iA9CQdlZDfwyLjUuGQzXU4VeOoey6AicSAluWan7Etga6Kcmg==", + "license": "MIT", "dependencies": { - "picocolors": "^1.0.0", - "shell-quote": "^1.8.1" + "picocolors": "^1.1.1", + "shell-quote": "^1.8.3" } }, "node_modules/leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/lilconfig": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", - "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "license": "MIT", "engines": { "node": ">=14" }, @@ -8048,20 +10435,27 @@ "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "license": "MIT" }, "node_modules/loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.1.tgz", + "integrity": "sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==", + "license": "MIT", "engines": { "node": ">=6.11.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, "node_modules/loader-utils": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "license": "MIT", "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -8075,6 +10469,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "license": "MIT", "dependencies": { "p-locate": "^6.0.0" }, @@ -8086,29 +10481,34 @@ } }, "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", + "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", + "license": "MIT" }, "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "license": "MIT" }, "node_modules/lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==" + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "license": "MIT" }, "node_modules/lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "license": "MIT" }, "node_modules/longest-streak": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -8118,6 +10518,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, @@ -8129,6 +10530,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "license": "MIT", "dependencies": { "tslib": "^2.0.3" } @@ -8137,6 +10539,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -8148,6 +10551,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "license": "ISC", "dependencies": { "yallist": "^3.0.2" } @@ -8156,6 +10560,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-2.0.0.tgz", "integrity": "sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==", + "license": "MIT", "engines": { "node": ">=16" }, @@ -8164,21 +10569,33 @@ } }, "node_modules/markdown-table": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.3.tgz", - "integrity": "sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz", + "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/mdast-util-directive": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-directive/-/mdast-util-directive-3.0.0.tgz", - "integrity": "sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-directive/-/mdast-util-directive-3.1.0.tgz", + "integrity": "sha512-I3fNFt+DHmpWCYAT7quoM6lHf9wuqtI+oCOfvILnoicNIqjh5E3dEJWiXuYME2gNe8vl1iMQwyUHa7bgFmak6Q==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", + "ccount": "^2.0.0", "devlop": "^1.0.0", "mdast-util-from-markdown": "^2.0.0", "mdast-util-to-markdown": "^2.0.0", @@ -8192,9 +10609,10 @@ } }, "node_modules/mdast-util-find-and-replace": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.1.tgz", - "integrity": "sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz", + "integrity": "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "escape-string-regexp": "^5.0.0", @@ -8210,6 +10628,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -8218,9 +10637,10 @@ } }, "node_modules/mdast-util-from-markdown": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.1.tgz", - "integrity": "sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.3.tgz", + "integrity": "sha512-W4mAWTvSlKvf8L6J+VN9yLSqQ9AOAAvHuoDAmPkz4dHf553m5gVj2ejadHJhoJmcmxEnOv6Pa8XJhpxE93kb8Q==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", @@ -8241,9 +10661,9 @@ } }, "node_modules/mdast-util-from-markdown/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -8253,12 +10673,14 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/mdast-util-frontmatter": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/mdast-util-frontmatter/-/mdast-util-frontmatter-2.0.1.tgz", "integrity": "sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "devlop": "^1.0.0", @@ -8276,6 +10698,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -8284,9 +10707,10 @@ } }, "node_modules/mdast-util-gfm": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.0.0.tgz", - "integrity": "sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz", + "integrity": "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==", + "license": "MIT", "dependencies": { "mdast-util-from-markdown": "^2.0.0", "mdast-util-gfm-autolink-literal": "^2.0.0", @@ -8302,9 +10726,10 @@ } }, "node_modules/mdast-util-gfm-autolink-literal": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.0.tgz", - "integrity": "sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz", + "integrity": "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "ccount": "^2.0.0", @@ -8318,9 +10743,9 @@ } }, "node_modules/mdast-util-gfm-autolink-literal/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -8331,15 +10756,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/mdast-util-gfm-autolink-literal/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -8349,12 +10775,14 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/mdast-util-gfm-footnote": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.0.0.tgz", - "integrity": "sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz", + "integrity": "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "devlop": "^1.1.0", @@ -8371,6 +10799,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz", "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-from-markdown": "^2.0.0", @@ -8385,6 +10814,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz", "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "devlop": "^1.0.0", @@ -8401,6 +10831,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz", "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "devlop": "^1.0.0", @@ -8416,6 +10847,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz", "integrity": "sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==", + "license": "MIT", "dependencies": { "mdast-util-from-markdown": "^2.0.0", "mdast-util-mdx-expression": "^2.0.0", @@ -8429,9 +10861,10 @@ } }, "node_modules/mdast-util-mdx-expression": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.0.tgz", - "integrity": "sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz", + "integrity": "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==", + "license": "MIT", "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", @@ -8446,9 +10879,10 @@ } }, "node_modules/mdast-util-mdx-jsx": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.1.2.tgz", - "integrity": "sha512-eKMQDeywY2wlHc97k5eD8VC+9ASMjN8ItEZQNGwJ6E0XWKiW/Z0V5/H8pvoXUf+y+Mj0VIgeRRbujBmFn4FTyA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz", + "integrity": "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==", + "license": "MIT", "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", @@ -8460,7 +10894,6 @@ "mdast-util-to-markdown": "^2.0.0", "parse-entities": "^4.0.0", "stringify-entities": "^4.0.0", - "unist-util-remove-position": "^5.0.0", "unist-util-stringify-position": "^4.0.0", "vfile-message": "^4.0.0" }, @@ -8473,6 +10906,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz", "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==", + "license": "MIT", "dependencies": { "@types/estree-jsx": "^1.0.0", "@types/hast": "^3.0.0", @@ -8490,6 +10924,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "unist-util-is": "^6.0.0" @@ -8500,9 +10935,10 @@ } }, "node_modules/mdast-util-to-hast": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz", - "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==", + "version": "13.2.1", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.1.tgz", + "integrity": "sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==", + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", @@ -8520,15 +10956,17 @@ } }, "node_modules/mdast-util-to-markdown": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.0.tgz", - "integrity": "sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", + "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", "longest-streak": "^3.0.0", "mdast-util-phrasing": "^4.0.0", "mdast-util-to-string": "^4.0.0", + "micromark-util-classify-character": "^2.0.0", "micromark-util-decode-string": "^2.0.0", "unist-util-visit": "^5.0.0", "zwitch": "^2.0.0" @@ -8542,6 +10980,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0" }, @@ -8553,41 +10992,67 @@ "node_modules/mdn-data": { "version": "2.0.30", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", - "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==" + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "license": "CC0-1.0" }, "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/memfs": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", - "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", - "dependencies": { - "fs-monkey": "^1.0.4" + "version": "4.57.2", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.57.2.tgz", + "integrity": "sha512-2nWzSsJzrukurSDna4Z0WywuScK4Id3tSKejgu74u8KCdW4uNrseKRSIDg75C6Yw5ZRqBe0F0EtMNlTbUq8bAQ==", + "license": "Apache-2.0", + "dependencies": { + "@jsonjoy.com/fs-core": "4.57.2", + "@jsonjoy.com/fs-fsa": "4.57.2", + "@jsonjoy.com/fs-node": "4.57.2", + "@jsonjoy.com/fs-node-builtins": "4.57.2", + "@jsonjoy.com/fs-node-to-fsa": "4.57.2", + "@jsonjoy.com/fs-node-utils": "4.57.2", + "@jsonjoy.com/fs-print": "4.57.2", + "@jsonjoy.com/fs-snapshot": "4.57.2", + "@jsonjoy.com/json-pack": "^1.11.0", + "@jsonjoy.com/util": "^1.9.0", + "glob-to-regex.js": "^1.0.1", + "thingies": "^2.5.0", + "tree-dump": "^1.0.3", + "tslib": "^2.0.0" }, - "engines": { - "node": ">= 4.0.0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" } }, "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "license": "MIT" }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "license": "MIT", "engines": { "node": ">= 8" } @@ -8596,14 +11061,15 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/micromark": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.0.tgz", - "integrity": "sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", + "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==", "funding": [ { "type": "GitHub Sponsors", @@ -8614,6 +11080,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "@types/debug": "^4.0.0", "debug": "^4.0.0", @@ -8635,9 +11102,9 @@ } }, "node_modules/micromark-core-commonmark": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.1.tgz", - "integrity": "sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz", + "integrity": "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==", "funding": [ { "type": "GitHub Sponsors", @@ -8648,6 +11115,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "decode-named-character-reference": "^1.0.0", "devlop": "^1.0.0", @@ -8668,9 +11136,9 @@ } }, "node_modules/micromark-core-commonmark/node_modules/micromark-factory-space": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", - "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", "funding": [ { "type": "GitHub Sponsors", @@ -8681,15 +11149,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-core-commonmark/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -8700,15 +11169,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-core-commonmark/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -8718,12 +11188,14 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-extension-directive": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-directive/-/micromark-extension-directive-3.0.0.tgz", - "integrity": "sha512-61OI07qpQrERc+0wEysLHMvoiO3s2R56x5u7glHq2Yqq6EHbH4dW25G9GfDdGCDYqA21KE6DWgNSzxSwHc2hSg==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/micromark-extension-directive/-/micromark-extension-directive-3.0.2.tgz", + "integrity": "sha512-wjcXHgk+PPdmvR58Le9d7zQYWy+vKEU9Se44p2CrCDPiLr2FMyiT4Fyb5UFKFC66wGB3kPlgD7q3TnoqPS7SZA==", + "license": "MIT", "dependencies": { "devlop": "^1.0.0", "micromark-factory-space": "^2.0.0", @@ -8739,9 +11211,9 @@ } }, "node_modules/micromark-extension-directive/node_modules/micromark-factory-space": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", - "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", "funding": [ { "type": "GitHub Sponsors", @@ -8752,15 +11224,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-extension-directive/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -8771,15 +11244,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-extension-directive/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -8789,12 +11263,14 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-extension-frontmatter": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/micromark-extension-frontmatter/-/micromark-extension-frontmatter-2.0.0.tgz", "integrity": "sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==", + "license": "MIT", "dependencies": { "fault": "^2.0.0", "micromark-util-character": "^2.0.0", @@ -8807,9 +11283,9 @@ } }, "node_modules/micromark-extension-frontmatter/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -8820,15 +11296,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-extension-frontmatter/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -8838,12 +11315,14 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-extension-gfm": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz", "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==", + "license": "MIT", "dependencies": { "micromark-extension-gfm-autolink-literal": "^2.0.0", "micromark-extension-gfm-footnote": "^2.0.0", @@ -8860,9 +11339,10 @@ } }, "node_modules/micromark-extension-gfm-autolink-literal": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.0.0.tgz", - "integrity": "sha512-rTHfnpt/Q7dEAK1Y5ii0W8bhfJlVJFnJMHIPisfPK3gpVNuOP0VnRl96+YJ3RYWV/P4gFeQoGKNlT3RhuvpqAg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz", + "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==", + "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-sanitize-uri": "^2.0.0", @@ -8875,9 +11355,9 @@ } }, "node_modules/micromark-extension-gfm-autolink-literal/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -8888,15 +11368,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-extension-gfm-autolink-literal/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -8906,12 +11387,14 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-extension-gfm-footnote": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.0.0.tgz", - "integrity": "sha512-6Rzu0CYRKDv3BfLAUnZsSlzx3ak6HAoI85KTiijuKIz5UxZxbUI+pD6oHgw+6UtQuiRwnGRhzMmPRv4smcz0fg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz", + "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==", + "license": "MIT", "dependencies": { "devlop": "^1.0.0", "micromark-core-commonmark": "^2.0.0", @@ -8928,9 +11411,9 @@ } }, "node_modules/micromark-extension-gfm-footnote/node_modules/micromark-factory-space": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", - "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", "funding": [ { "type": "GitHub Sponsors", @@ -8941,15 +11424,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-extension-gfm-footnote/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -8960,15 +11444,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-extension-gfm-footnote/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -8978,12 +11463,14 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-extension-gfm-strikethrough": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.0.0.tgz", - "integrity": "sha512-c3BR1ClMp5fxxmwP6AoOY2fXO9U8uFMKs4ADD66ahLTNcwzSCyRVU4k7LPV5Nxo/VJiR4TdzxRQY2v3qIUceCw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz", + "integrity": "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==", + "license": "MIT", "dependencies": { "devlop": "^1.0.0", "micromark-util-chunked": "^2.0.0", @@ -8998,9 +11485,9 @@ } }, "node_modules/micromark-extension-gfm-strikethrough/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -9010,12 +11497,14 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-extension-gfm-table": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.0.0.tgz", - "integrity": "sha512-PoHlhypg1ItIucOaHmKE8fbin3vTLpDOUg8KAr8gRCF1MOZI9Nquq2i/44wFvviM4WuxJzc3demT8Y3dkfvYrw==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz", + "integrity": "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==", + "license": "MIT", "dependencies": { "devlop": "^1.0.0", "micromark-factory-space": "^2.0.0", @@ -9029,9 +11518,9 @@ } }, "node_modules/micromark-extension-gfm-table/node_modules/micromark-factory-space": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", - "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", "funding": [ { "type": "GitHub Sponsors", @@ -9042,15 +11531,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-extension-gfm-table/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -9061,15 +11551,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-extension-gfm-table/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -9079,12 +11570,14 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-extension-gfm-tagfilter": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz", "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==", + "license": "MIT", "dependencies": { "micromark-util-types": "^2.0.0" }, @@ -9094,9 +11587,10 @@ } }, "node_modules/micromark-extension-gfm-task-list-item": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.0.1.tgz", - "integrity": "sha512-cY5PzGcnULaN5O7T+cOzfMoHjBW7j+T9D2sucA5d/KbsBTPcYdebm9zUd9zzdgJGCwahV+/W78Z3nbulBYVbTw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz", + "integrity": "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==", + "license": "MIT", "dependencies": { "devlop": "^1.0.0", "micromark-factory-space": "^2.0.0", @@ -9110,9 +11604,9 @@ } }, "node_modules/micromark-extension-gfm-task-list-item/node_modules/micromark-factory-space": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", - "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", "funding": [ { "type": "GitHub Sponsors", @@ -9123,15 +11617,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-extension-gfm-task-list-item/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -9142,15 +11637,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-extension-gfm-task-list-item/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -9160,12 +11656,13 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-extension-mdx-expression": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.0.tgz", - "integrity": "sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.1.tgz", + "integrity": "sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==", "funding": [ { "type": "GitHub Sponsors", @@ -9176,6 +11673,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "devlop": "^1.0.0", @@ -9188,9 +11686,9 @@ } }, "node_modules/micromark-extension-mdx-expression/node_modules/micromark-factory-space": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", - "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", "funding": [ { "type": "GitHub Sponsors", @@ -9201,15 +11699,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-extension-mdx-expression/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -9220,15 +11719,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-extension-mdx-expression/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -9238,20 +11738,22 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-extension-mdx-jsx": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.0.tgz", - "integrity": "sha512-uvhhss8OGuzR4/N17L1JwvmJIpPhAd8oByMawEKx6NVdBCbesjH4t+vjEp3ZXft9DwvlKSD07fCeI44/N0Vf2w==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.2.tgz", + "integrity": "sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==", + "license": "MIT", "dependencies": { - "@types/acorn": "^4.0.0", "@types/estree": "^1.0.0", "devlop": "^1.0.0", "estree-util-is-identifier-name": "^3.0.0", "micromark-factory-mdx-expression": "^2.0.0", "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0", "vfile-message": "^4.0.0" @@ -9262,9 +11764,9 @@ } }, "node_modules/micromark-extension-mdx-jsx/node_modules/micromark-factory-space": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", - "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", "funding": [ { "type": "GitHub Sponsors", @@ -9275,15 +11777,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-extension-mdx-jsx/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -9294,15 +11797,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-extension-mdx-jsx/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -9312,12 +11816,14 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-extension-mdx-md": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/micromark-extension-mdx-md/-/micromark-extension-mdx-md-2.0.0.tgz", "integrity": "sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==", + "license": "MIT", "dependencies": { "micromark-util-types": "^2.0.0" }, @@ -9330,6 +11836,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs/-/micromark-extension-mdxjs-3.0.0.tgz", "integrity": "sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==", + "license": "MIT", "dependencies": { "acorn": "^8.0.0", "acorn-jsx": "^5.0.0", @@ -9349,6 +11856,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-3.0.0.tgz", "integrity": "sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==", + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "devlop": "^1.0.0", @@ -9366,9 +11874,9 @@ } }, "node_modules/micromark-extension-mdxjs-esm/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -9379,15 +11887,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-extension-mdxjs-esm/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -9397,12 +11906,13 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-factory-destination": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.0.tgz", - "integrity": "sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", + "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==", "funding": [ { "type": "GitHub Sponsors", @@ -9413,6 +11923,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", @@ -9420,9 +11931,9 @@ } }, "node_modules/micromark-factory-destination/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -9433,15 +11944,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-factory-destination/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -9451,12 +11963,13 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-factory-label": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.0.tgz", - "integrity": "sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", + "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==", "funding": [ { "type": "GitHub Sponsors", @@ -9467,6 +11980,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "devlop": "^1.0.0", "micromark-util-character": "^2.0.0", @@ -9475,9 +11989,9 @@ } }, "node_modules/micromark-factory-label/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -9488,15 +12002,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-factory-label/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -9506,12 +12021,13 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-factory-mdx-expression": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.1.tgz", - "integrity": "sha512-F0ccWIUHRLRrYp5TC9ZYXmZo+p2AM13ggbsW4T0b5CRKP8KHVRB8t4pwtBgTxtjRmwrK0Irwm7vs2JOZabHZfg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.3.tgz", + "integrity": "sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==", "funding": [ { "type": "GitHub Sponsors", @@ -9522,9 +12038,11 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", "micromark-util-events-to-acorn": "^2.0.0", "micromark-util-symbol": "^2.0.0", @@ -9533,10 +12051,30 @@ "vfile-message": "^4.0.0" } }, + "node_modules/micromark-factory-mdx-expression/node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, "node_modules/micromark-factory-mdx-expression/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -9547,15 +12085,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-factory-mdx-expression/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -9565,7 +12104,8 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-factory-space": { "version": "1.1.0", @@ -9581,6 +12121,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^1.0.0", "micromark-util-types": "^1.0.0" @@ -9599,12 +12140,13 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-factory-title": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.0.tgz", - "integrity": "sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", + "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==", "funding": [ { "type": "GitHub Sponsors", @@ -9615,6 +12157,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", @@ -9623,9 +12166,9 @@ } }, "node_modules/micromark-factory-title/node_modules/micromark-factory-space": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", - "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", "funding": [ { "type": "GitHub Sponsors", @@ -9636,15 +12179,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-factory-title/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -9655,15 +12199,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-factory-title/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -9673,12 +12218,13 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-factory-whitespace": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.0.tgz", - "integrity": "sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", + "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==", "funding": [ { "type": "GitHub Sponsors", @@ -9689,6 +12235,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-factory-space": "^2.0.0", "micromark-util-character": "^2.0.0", @@ -9697,9 +12244,9 @@ } }, "node_modules/micromark-factory-whitespace/node_modules/micromark-factory-space": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", - "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", "funding": [ { "type": "GitHub Sponsors", @@ -9710,15 +12257,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-factory-whitespace/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -9729,15 +12277,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-factory-whitespace/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -9747,7 +12296,8 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-util-character": { "version": "1.2.0", @@ -9763,6 +12313,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^1.0.0", "micromark-util-types": "^1.0.0" @@ -9781,12 +12332,13 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-util-chunked": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.0.tgz", - "integrity": "sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", + "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==", "funding": [ { "type": "GitHub Sponsors", @@ -9797,14 +12349,15 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0" } }, "node_modules/micromark-util-chunked/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -9814,12 +12367,13 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-util-classify-character": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.0.tgz", - "integrity": "sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", + "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", "funding": [ { "type": "GitHub Sponsors", @@ -9830,6 +12384,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-symbol": "^2.0.0", @@ -9837,9 +12392,9 @@ } }, "node_modules/micromark-util-classify-character/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -9850,15 +12405,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-util-classify-character/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -9868,12 +12424,13 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-util-combine-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.0.tgz", - "integrity": "sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", + "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==", "funding": [ { "type": "GitHub Sponsors", @@ -9884,15 +12441,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-chunked": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-util-decode-numeric-character-reference": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.1.tgz", - "integrity": "sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", + "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", "funding": [ { "type": "GitHub Sponsors", @@ -9903,14 +12461,15 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0" } }, "node_modules/micromark-util-decode-numeric-character-reference/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -9920,12 +12479,13 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-util-decode-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.0.tgz", - "integrity": "sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz", + "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==", "funding": [ { "type": "GitHub Sponsors", @@ -9936,6 +12496,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "decode-named-character-reference": "^1.0.0", "micromark-util-character": "^2.0.0", @@ -9944,9 +12505,9 @@ } }, "node_modules/micromark-util-decode-string/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -9957,15 +12518,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-util-decode-string/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -9975,12 +12537,13 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-util-encode": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz", - "integrity": "sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", + "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", "funding": [ { "type": "GitHub Sponsors", @@ -9990,12 +12553,13 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-util-events-to-acorn": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.2.tgz", - "integrity": "sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.3.tgz", + "integrity": "sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==", "funding": [ { "type": "GitHub Sponsors", @@ -10006,8 +12570,8 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { - "@types/acorn": "^4.0.0", "@types/estree": "^1.0.0", "@types/unist": "^3.0.0", "devlop": "^1.0.0", @@ -10018,9 +12582,9 @@ } }, "node_modules/micromark-util-events-to-acorn/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -10030,12 +12594,13 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-util-html-tag-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.0.tgz", - "integrity": "sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", + "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==", "funding": [ { "type": "GitHub Sponsors", @@ -10045,12 +12610,13 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-util-normalize-identifier": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.0.tgz", - "integrity": "sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", + "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==", "funding": [ { "type": "GitHub Sponsors", @@ -10061,14 +12627,15 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0" } }, "node_modules/micromark-util-normalize-identifier/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -10078,12 +12645,13 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-util-resolve-all": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.0.tgz", - "integrity": "sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", + "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==", "funding": [ { "type": "GitHub Sponsors", @@ -10094,14 +12662,15 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-util-sanitize-uri": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz", - "integrity": "sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", + "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", "funding": [ { "type": "GitHub Sponsors", @@ -10112,6 +12681,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-encode": "^2.0.0", @@ -10119,9 +12689,9 @@ } }, "node_modules/micromark-util-sanitize-uri/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -10132,15 +12702,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark-util-sanitize-uri/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -10150,12 +12721,13 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-util-subtokenize": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.1.tgz", - "integrity": "sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz", + "integrity": "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==", "funding": [ { "type": "GitHub Sponsors", @@ -10166,6 +12738,7 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "devlop": "^1.0.0", "micromark-util-chunked": "^2.0.0", @@ -10174,9 +12747,9 @@ } }, "node_modules/micromark-util-subtokenize/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -10186,7 +12759,8 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-util-symbol": { "version": "1.1.0", @@ -10201,12 +12775,13 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark-util-types": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", - "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz", + "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==", "funding": [ { "type": "GitHub Sponsors", @@ -10216,12 +12791,13 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromark/node_modules/micromark-factory-space": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", - "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", "funding": [ { "type": "GitHub Sponsors", @@ -10232,15 +12808,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-character": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark/node_modules/micromark-util-character": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", - "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", "funding": [ { "type": "GitHub Sponsors", @@ -10251,15 +12828,16 @@ "url": "https://opencollective.com/unified" } ], + "license": "MIT", "dependencies": { "micromark-util-symbol": "^2.0.0", "micromark-util-types": "^2.0.0" } }, "node_modules/micromark/node_modules/micromark-util-symbol": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", - "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", "funding": [ { "type": "GitHub Sponsors", @@ -10269,14 +12847,16 @@ "type": "OpenCollective", "url": "https://opencollective.com/unified" } - ] + ], + "license": "MIT" }, "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "license": "MIT", "dependencies": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" }, "engines": { @@ -10287,6 +12867,7 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "license": "MIT", "bin": { "mime": "cli.js" }, @@ -10298,6 +12879,7 @@ "version": "1.33.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -10306,6 +12888,7 @@ "version": "2.1.18", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "license": "MIT", "dependencies": { "mime-db": "~1.33.0" }, @@ -10317,6 +12900,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "license": "MIT", "engines": { "node": ">=6" } @@ -10325,6 +12909,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, @@ -10333,11 +12918,13 @@ } }, "node_modules/mini-css-extract-plugin": { - "version": "2.7.6", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.6.tgz", - "integrity": "sha512-Qk7HcgaPkGG6eD77mLvZS1nmxlao3j+9PkrT9Uc7HAE1id3F41+DdBRYRYkbyfNRGzm8/YWtzhw7nVPmwhqTQw==", + "version": "2.10.2", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.10.2.tgz", + "integrity": "sha512-AOSS0IdEB95ayVkxn5oGzNQwqAi2J0Jb/kKm43t7H73s8+f5873g0yuj0PNvK4dO75mu5DHg4nlgp4k6Kga8eg==", + "license": "MIT", "dependencies": { - "schema-utils": "^4.0.0" + "schema-utils": "^4.0.0", + "tapable": "^2.2.1" }, "engines": { "node": ">= 12.13.0" @@ -10353,12 +12940,14 @@ "node_modules/minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "license": "ISC" }, "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -10370,27 +12959,31 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/mrmime": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", - "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", + "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", + "license": "MIT", "engines": { "node": ">=10" } }, "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" }, "node_modules/multicast-dns": { "version": "7.2.5", "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "license": "MIT", "dependencies": { "dns-packet": "^5.2.2", "thunky": "^1.0.2" @@ -10400,15 +12993,16 @@ } }, "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", "funding": [ { "type": "github", "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -10417,9 +13011,10 @@ } }, "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -10427,21 +13022,24 @@ "node_modules/neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "license": "MIT" }, "node_modules/no-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "license": "MIT", "dependencies": { "lower-case": "^2.0.2", "tslib": "^2.0.3" } }, "node_modules/node-emoji": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-2.1.3.tgz", - "integrity": "sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-2.2.0.tgz", + "integrity": "sha512-Z3lTE9pLaJF47NyMhd4ww1yFTAP8YhYI8SleJiHzM46Fgpm5cnNzSl9XfzFNqbaz+VlJrIj3fXQ4DeN1Rjm6cw==", + "license": "MIT", "dependencies": { "@sindresorhus/is": "^4.6.0", "char-regex": "^1.0.2", @@ -10452,39 +13050,38 @@ "node": ">=18" } }, - "node_modules/node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", - "engines": { - "node": ">= 6.13.0" - } - }, "node_modules/node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==" + "version": "2.0.37", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.37.tgz", + "integrity": "sha512-1h5gKZCF+pO/o3Iqt5Jp7wc9rH3eJJ0+nh/CIoiRwjRxde/hAHyLPXYN4V3CqKAbiZPSeJFSWHmJsbkicta0Eg==", + "license": "MIT" }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "node_modules/normalize-url": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.1.1.tgz", + "integrity": "sha512-JYc0DPlpGWB40kH5g07gGTrYuMqV653k3uBKY6uITPWds3M0ov3GaWGp9lbE3Bzngx8+XkfzgvASb9vk9JDFXQ==", + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "license": "MIT", "dependencies": { "path-key": "^3.0.0" }, @@ -10495,12 +13092,14 @@ "node_modules/nprogress": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz", - "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==" + "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==", + "license": "MIT" }, "node_modules/nth-check": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0" }, @@ -10508,18 +13107,89 @@ "url": "https://github.com/fb55/nth-check?sponsor=1" } }, + "node_modules/null-loader": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/null-loader/-/null-loader-4.0.1.tgz", + "integrity": "sha512-pxqVbi4U6N26lq+LmgIbB5XATP0VdZKOG25DhHi8btMmJJefGArFyDg1yc4U3hWCJbMqSrw0qyrz1UQX+qYXqg==", + "license": "MIT", + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/null-loader/node_modules/ajv": { + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", + "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/null-loader/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/null-loader/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" + }, + "node_modules/null-loader/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/object-inspect": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", - "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -10531,18 +13201,22 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "license": "MIT", "engines": { "node": ">= 0.4" } }, "node_modules/object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", "object-keys": "^1.1.1" }, "engines": { @@ -10555,12 +13229,14 @@ "node_modules/obuf": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "license": "MIT" }, "node_modules/on-finished": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", "dependencies": { "ee-first": "1.1.1" }, @@ -10569,25 +13245,19 @@ } }, "node_modules/on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.1.0.tgz", + "integrity": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dependencies": { - "wrappy": "1" - } - }, "node_modules/onetime": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "license": "MIT", "dependencies": { "mimic-fn": "^2.1.0" }, @@ -10602,6 +13272,7 @@ "version": "8.4.2", "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "license": "MIT", "dependencies": { "define-lazy-prop": "^2.0.0", "is-docker": "^2.1.1", @@ -10618,6 +13289,7 @@ "version": "1.5.2", "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "license": "(WTFPL OR MIT)", "bin": { "opener": "bin/opener-bin.js" } @@ -10626,14 +13298,25 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", + "license": "MIT", "engines": { "node": ">=12.20" } }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/p-limit": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "license": "MIT", "dependencies": { "yocto-queue": "^1.0.0" }, @@ -10648,6 +13331,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "license": "MIT", "dependencies": { "p-limit": "^4.0.0" }, @@ -10662,6 +13346,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "license": "MIT", "dependencies": { "aggregate-error": "^3.0.0" }, @@ -10672,30 +13357,56 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/p-queue": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", + "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", + "license": "MIT", + "dependencies": { + "eventemitter3": "^4.0.4", + "p-timeout": "^3.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/p-retry": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", - "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-6.2.1.tgz", + "integrity": "sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==", + "license": "MIT", "dependencies": { - "@types/retry": "0.12.0", + "@types/retry": "0.12.2", + "is-network-error": "^1.0.0", "retry": "^0.13.1" }, "engines": { - "node": ">=8" + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "node_modules/p-timeout": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", + "license": "MIT", + "dependencies": { + "p-finally": "^1.0.0" + }, "engines": { - "node": ">=6" + "node": ">=8" } }, "node_modules/package-json": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/package-json/-/package-json-8.1.1.tgz", "integrity": "sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==", + "license": "MIT", "dependencies": { "got": "^12.1.0", "registry-auth-token": "^5.0.1", @@ -10713,6 +13424,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "license": "MIT", "dependencies": { "dot-case": "^3.0.4", "tslib": "^2.0.3" @@ -10722,6 +13434,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -10730,12 +13443,12 @@ } }, "node_modules/parse-entities": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.1.tgz", - "integrity": "sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz", + "integrity": "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==", + "license": "MIT", "dependencies": { "@types/unist": "^2.0.0", - "character-entities": "^2.0.0", "character-entities-legacy": "^3.0.0", "character-reference-invalid": "^2.0.0", "decode-named-character-reference": "^1.0.0", @@ -10749,14 +13462,16 @@ } }, "node_modules/parse-entities/node_modules/@types/unist": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", - "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==" + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", + "license": "MIT" }, "node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -10773,35 +13488,51 @@ "node_modules/parse-numeric-range": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/parse-numeric-range/-/parse-numeric-range-1.3.0.tgz", - "integrity": "sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==" + "integrity": "sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==", + "license": "ISC" }, "node_modules/parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", + "license": "MIT", "dependencies": { - "entities": "^4.4.0" + "entities": "^6.0.0" }, "funding": { "url": "https://github.com/inikulin/parse5?sponsor=1" } }, "node_modules/parse5-htmlparser2-tree-adapter": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", - "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz", + "integrity": "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==", + "license": "MIT", "dependencies": { - "domhandler": "^5.0.2", + "domhandler": "^5.0.3", "parse5": "^7.0.0" }, "funding": { "url": "https://github.com/inikulin/parse5?sponsor=1" } }, + "node_modules/parse5/node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -10810,6 +13541,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "license": "MIT", "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3" @@ -10819,27 +13551,22 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "license": "MIT", "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/path-is-inside": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==" + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", + "license": "(WTFPL OR MIT)" }, "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", "engines": { "node": ">=8" } @@ -10847,12 +13574,14 @@ "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" }, "node_modules/path-to-regexp": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.9.0.tgz", + "integrity": "sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g==", + "license": "MIT", "dependencies": { "isarray": "0.0.1" } @@ -10861,29 +13590,22 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/periscopic": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz", - "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==", - "dependencies": { - "@types/estree": "^1.0.0", - "estree-walker": "^3.0.0", - "is-reference": "^3.0.0" - } - }, "node_modules/picocolors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", - "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" }, "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -10895,6 +13617,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", + "license": "MIT", "dependencies": { "find-up": "^6.3.0" }, @@ -10905,151 +13628,376 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/pkg-up": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", - "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "node_modules/pkijs": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/pkijs/-/pkijs-3.4.0.tgz", + "integrity": "sha512-emEcLuomt2j03vxD54giVB4SxTjnsqkU692xZOZXHDVoYyypEm+b3jpiTcc+Cf+myooc+/Ly0z01jqeNHVgJGw==", + "license": "BSD-3-Clause", "dependencies": { - "find-up": "^3.0.0" + "@noble/hashes": "1.4.0", + "asn1js": "^3.0.6", + "bytestreamjs": "^2.0.1", + "pvtsutils": "^1.3.6", + "pvutils": "^1.1.3", + "tslib": "^2.8.1" }, "engines": { - "node": ">=8" + "node": ">=16.0.0" } }, - "node_modules/pkg-up/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "node_modules/postcss": { + "version": "8.5.10", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.10.tgz", + "integrity": "sha512-pMMHxBOZKFU6HgAZ4eyGnwXF/EvPGGqUr0MnZ5+99485wwW41kW91A4LOGxSHhgugZmSChL5AlElNdwlNgcnLQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", "dependencies": { - "locate-path": "^3.0.0" + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" }, "engines": { - "node": ">=6" + "node": "^10 || ^12 || >=14" } }, - "node_modules/pkg-up/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "node_modules/postcss-attribute-case-insensitive": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-7.0.1.tgz", + "integrity": "sha512-Uai+SupNSqzlschRyNx3kbCTWgY/2hcwtHEI/ej2LJWc9JJ77qKgGptd8DHwY1mXtZ7Aoh4z4yxfwMBue9eNgw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "postcss-selector-parser": "^7.0.0" }, "engines": { - "node": ">=6" + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" } }, - "node_modules/pkg-up/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "node_modules/postcss-attribute-case-insensitive/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "license": "MIT", "dependencies": { - "p-try": "^2.0.0" + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, - "node_modules/pkg-up/node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "node_modules/postcss-calc": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-9.0.1.tgz", + "integrity": "sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==", + "license": "MIT", "dependencies": { - "p-limit": "^2.0.0" + "postcss-selector-parser": "^6.0.11", + "postcss-value-parser": "^4.2.0" }, "engines": { - "node": ">=6" + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.2.2" } }, - "node_modules/pkg-up/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "node_modules/postcss-clamp": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz", + "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, "engines": { - "node": ">=4" + "node": ">=7.6.0" + }, + "peerDependencies": { + "postcss": "^8.4.6" } }, - "node_modules/postcss": { - "version": "8.4.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.39.tgz", - "integrity": "sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==", + "node_modules/postcss-color-functional-notation": { + "version": "7.0.12", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-7.0.12.tgz", + "integrity": "sha512-TLCW9fN5kvO/u38/uesdpbx3e8AkTYhMvDZYa9JpmImWuTE99bDQ7GU7hdOADIZsiI9/zuxfAJxny/khknp1Zw==", "funding": [ { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" + "type": "github", + "url": "https://github.com/sponsors/csstools" }, { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-color-hex-alpha": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-10.0.0.tgz", + "integrity": "sha512-1kervM2cnlgPs2a8Vt/Qbe5cQ++N7rkYo/2rz2BkqJZIHQwaVuJgQH38REHrAi4uM0b1fqxMkWYmese94iMp3w==", + "funding": [ { "type": "github", - "url": "https://github.com/sponsors/ai" + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" } ], + "license": "MIT", "dependencies": { - "nanoid": "^3.3.7", - "picocolors": "^1.0.1", - "source-map-js": "^1.2.0" + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14" + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" } }, - "node_modules/postcss-calc": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-9.0.1.tgz", - "integrity": "sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==", + "node_modules/postcss-color-rebeccapurple": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-10.0.0.tgz", + "integrity": "sha512-JFta737jSP+hdAIEhk1Vs0q0YF5P8fFcj+09pweS8ktuGuZ8pPlykHsk6mPxZ8awDl4TrcxUqJo9l1IhVr/OjQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", "dependencies": { - "postcss-selector-parser": "^6.0.11", + "@csstools/utilities": "^2.0.0", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": ">=18" }, "peerDependencies": { - "postcss": "^8.2.2" + "postcss": "^8.4" } }, "node_modules/postcss-colormin": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.1.0.tgz", "integrity": "sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.0", + "caniuse-api": "^3.0.0", + "colord": "^2.9.3", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-convert-values": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.1.0.tgz", + "integrity": "sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==", + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" + } + }, + "node_modules/postcss-custom-media": { + "version": "11.0.6", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-11.0.6.tgz", + "integrity": "sha512-C4lD4b7mUIw+RZhtY7qUbf4eADmb7Ey8BFA2px9jUbwg7pjTZDl4KY4bvlUV+/vXQvzQRfiGEVJyAbtOsCMInw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/cascade-layer-name-parser": "^2.0.5", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/media-query-list-parser": "^4.0.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-custom-properties": { + "version": "14.0.6", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-14.0.6.tgz", + "integrity": "sha512-fTYSp3xuk4BUeVhxCSJdIPhDLpJfNakZKoiTDx7yRGCdlZrSJR7mWKVOBS4sBF+5poPQFMj2YdXx1VHItBGihQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/cascade-layer-name-parser": "^2.0.5", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-custom-selectors": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-8.0.5.tgz", + "integrity": "sha512-9PGmckHQswiB2usSO6XMSswO2yFWVoCAuih1yl9FVcwkscLjRKjwsjM3t+NIWpSU2Jx3eOiK2+t4vVTQaoCHHg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/cascade-layer-name-parser": "^2.0.5", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-custom-selectors/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-dir-pseudo-class": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-9.0.1.tgz", + "integrity": "sha512-tRBEK0MHYvcMUrAuYMEOa0zg9APqirBcgzi6P21OhxtJyJADo/SWBwY1CAwEohQ/6HDaa9jCjLRG7K3PVQYHEA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", "dependencies": { - "browserslist": "^4.23.0", - "caniuse-api": "^3.0.0", - "colord": "^2.9.3", - "postcss-value-parser": "^4.2.0" + "postcss-selector-parser": "^7.0.0" }, "engines": { - "node": "^14 || ^16 || >=18.0" + "node": ">=18" }, "peerDependencies": { - "postcss": "^8.4.31" + "postcss": "^8.4" } }, - "node_modules/postcss-convert-values": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.1.0.tgz", - "integrity": "sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==", + "node_modules/postcss-dir-pseudo-class/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "license": "MIT", "dependencies": { - "browserslist": "^4.23.0", - "postcss-value-parser": "^4.2.0" + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" }, "engines": { - "node": "^14 || ^16 || >=18.0" - }, - "peerDependencies": { - "postcss": "^8.4.31" + "node": ">=4" } }, "node_modules/postcss-discard-comments": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.2.tgz", "integrity": "sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==", + "license": "MIT", "engines": { "node": "^14 || ^16 || >=18.0" }, @@ -11061,6 +14009,7 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.3.tgz", "integrity": "sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==", + "license": "MIT", "engines": { "node": "^14 || ^16 || >=18.0" }, @@ -11072,6 +14021,7 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.3.tgz", "integrity": "sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==", + "license": "MIT", "engines": { "node": "^14 || ^16 || >=18.0" }, @@ -11083,6 +14033,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.2.tgz", "integrity": "sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==", + "license": "MIT", "engines": { "node": "^14 || ^16 || >=18.0" }, @@ -11094,6 +14045,7 @@ "version": "6.0.5", "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-6.0.5.tgz", "integrity": "sha512-wHalBlRHkaNnNwfC8z+ppX57VhvS+HWgjW508esjdaEYr3Mx7Gnn2xA4R/CKf5+Z9S5qsqC+Uzh4ueENWwCVUA==", + "license": "MIT", "dependencies": { "postcss-selector-parser": "^6.0.16" }, @@ -11104,14 +14056,204 @@ "postcss": "^8.4.31" } }, + "node_modules/postcss-double-position-gradients": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-6.0.4.tgz", + "integrity": "sha512-m6IKmxo7FxSP5nF2l63QbCC3r+bWpFUWmZXZf096WxG0m7Vl1Q1+ruFOhpdDRmKrRS+S3Jtk+TVk/7z0+BVK6g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-focus-visible": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-10.0.1.tgz", + "integrity": "sha512-U58wyjS/I1GZgjRok33aE8juW9qQgQUNwTSdxQGuShHzwuYdcklnvK/+qOWX1Q9kr7ysbraQ6ht6r+udansalA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-focus-visible/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-focus-within": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-9.0.1.tgz", + "integrity": "sha512-fzNUyS1yOYa7mOjpci/bR+u+ESvdar6hk8XNK/TRR0fiGTp2QT5N+ducP0n3rfH/m9I7H/EQU6lsa2BrgxkEjw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-focus-within/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-font-variant": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", + "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", + "license": "MIT", + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-gap-properties": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-6.0.0.tgz", + "integrity": "sha512-Om0WPjEwiM9Ru+VhfEDPZJAKWUd0mV1HmNXqp2C29z80aQ2uP9UVhLc7e3aYMIor/S5cVhoPgYQ7RtfeZpYTRw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-image-set-function": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-7.0.0.tgz", + "integrity": "sha512-QL7W7QNlZuzOwBTeXEmbVckNt1FSmhQtbMRvGGqqU4Nf4xk6KUEQhAoWuMzwbSv5jxiRiSZ5Tv7eiDB9U87znA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/utilities": "^2.0.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-lab-function": { + "version": "7.0.12", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-7.0.12.tgz", + "integrity": "sha512-tUcyRk1ZTPec3OuKFsqtRzW2Go5lehW29XA21lZ65XmzQkz43VY2tyWEC202F7W3mILOjw0voOiuxRGTsN+J9w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/css-color-parser": "^3.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/utilities": "^2.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, "node_modules/postcss-loader": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.3.3.tgz", - "integrity": "sha512-YgO/yhtevGO/vJePCQmTxiaEwER94LABZN0ZMT4A0vsak9TpO+RvKRs7EmJ8peIlB9xfXCsS7M8LjqncsUZ5HA==", + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.3.4.tgz", + "integrity": "sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A==", + "license": "MIT", "dependencies": { - "cosmiconfig": "^8.2.0", - "jiti": "^1.18.2", - "semver": "^7.3.8" + "cosmiconfig": "^8.3.5", + "jiti": "^1.20.0", + "semver": "^7.5.4" }, "engines": { "node": ">= 14.15.0" @@ -11125,10 +14267,36 @@ "webpack": "^5.0.0" } }, + "node_modules/postcss-logical": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-8.1.0.tgz", + "integrity": "sha512-pL1hXFQ2fEXNKiNiAgtfA005T9FBxky5zkX6s4GZM2D8RkVgRqz3f4g1JUoq925zXv495qk8UNldDwh8uGEDoA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, "node_modules/postcss-merge-idents": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-6.0.3.tgz", "integrity": "sha512-1oIoAsODUs6IHQZkLQGO15uGEbK3EAl5wi9SS8hs45VgsxQfMnxvt+L+zIr7ifZFIH14cfAeVe2uCTa+SPRa3g==", + "license": "MIT", "dependencies": { "cssnano-utils": "^4.0.2", "postcss-value-parser": "^4.2.0" @@ -11144,6 +14312,7 @@ "version": "6.0.5", "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.5.tgz", "integrity": "sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0", "stylehacks": "^6.1.1" @@ -11159,6 +14328,7 @@ "version": "6.1.1", "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.1.1.tgz", "integrity": "sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ==", + "license": "MIT", "dependencies": { "browserslist": "^4.23.0", "caniuse-api": "^3.0.0", @@ -11176,6 +14346,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.1.0.tgz", "integrity": "sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -11190,6 +14361,7 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.3.tgz", "integrity": "sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==", + "license": "MIT", "dependencies": { "colord": "^2.9.3", "cssnano-utils": "^4.0.2", @@ -11206,6 +14378,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.1.0.tgz", "integrity": "sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==", + "license": "MIT", "dependencies": { "browserslist": "^4.23.0", "cssnano-utils": "^4.0.2", @@ -11222,6 +14395,7 @@ "version": "6.0.4", "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.4.tgz", "integrity": "sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ==", + "license": "MIT", "dependencies": { "postcss-selector-parser": "^6.0.16" }, @@ -11233,9 +14407,10 @@ } }, "node_modules/postcss-modules-extract-imports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", - "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", + "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", + "license": "ISC", "engines": { "node": "^10 || ^12 || >= 14" }, @@ -11244,12 +14419,13 @@ } }, "node_modules/postcss-modules-local-by-default": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.3.tgz", - "integrity": "sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz", + "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", + "license": "MIT", "dependencies": { "icss-utils": "^5.0.0", - "postcss-selector-parser": "^6.0.2", + "postcss-selector-parser": "^7.0.0", "postcss-value-parser": "^4.1.0" }, "engines": { @@ -11259,38 +14435,151 @@ "postcss": "^8.1.0" } }, + "node_modules/postcss-modules-local-by-default/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/postcss-modules-scope": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", - "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz", + "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", + "license": "ISC", "dependencies": { - "postcss-selector-parser": "^6.0.4" + "postcss-selector-parser": "^7.0.0" }, "engines": { - "node": "^10 || ^12 || >= 14" + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "license": "ISC", + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-nesting": { + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-13.0.2.tgz", + "integrity": "sha512-1YCI290TX+VP0U/K/aFxzHzQWHWURL+CtHMSbex1lCdpXD1SoR2sYuxDu5aNI9lPoXpKTCggFZiDJbwylU0LEQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/selector-resolve-nested": "^3.1.0", + "@csstools/selector-specificity": "^5.0.0", + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-nesting/node_modules/@csstools/selector-resolve-nested": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-resolve-nested/-/selector-resolve-nested-3.1.0.tgz", + "integrity": "sha512-mf1LEW0tJLKfWyvn5KdDrhpxHyuxpbNwTIwOYLIvsTffeyOf85j5oIzfG0yosxDgx/sswlqBnESYUcQH0vgZ0g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss-selector-parser": "^7.0.0" + } + }, + "node_modules/postcss-nesting/node_modules/@csstools/selector-specificity": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz", + "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" }, "peerDependencies": { - "postcss": "^8.1.0" + "postcss-selector-parser": "^7.0.0" } }, - "node_modules/postcss-modules-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", - "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "node_modules/postcss-nesting/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "license": "MIT", "dependencies": { - "icss-utils": "^5.0.0" + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" }, "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" + "node": ">=4" } }, "node_modules/postcss-normalize-charset": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.2.tgz", "integrity": "sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==", + "license": "MIT", "engines": { "node": "^14 || ^16 || >=18.0" }, @@ -11302,6 +14591,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.2.tgz", "integrity": "sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -11316,6 +14606,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.2.tgz", "integrity": "sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -11330,6 +14621,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.2.tgz", "integrity": "sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -11344,6 +14636,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.2.tgz", "integrity": "sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -11358,6 +14651,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.2.tgz", "integrity": "sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -11372,6 +14666,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.1.0.tgz", "integrity": "sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==", + "license": "MIT", "dependencies": { "browserslist": "^4.23.0", "postcss-value-parser": "^4.2.0" @@ -11387,6 +14682,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.2.tgz", "integrity": "sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -11401,6 +14697,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.2.tgz", "integrity": "sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -11411,10 +14708,33 @@ "postcss": "^8.4.31" } }, + "node_modules/postcss-opacity-percentage": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-3.0.0.tgz", + "integrity": "sha512-K6HGVzyxUxd/VgZdX04DCtdwWJ4NGLG212US4/LA1TLAbHgmAsTWVR86o+gGIbFtnTkfOpb9sCRBx8K7HO66qQ==", + "funding": [ + { + "type": "kofi", + "url": "https://ko-fi.com/mrcgrtz" + }, + { + "type": "liberapay", + "url": "https://liberapay.com/mrcgrtz" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, "node_modules/postcss-ordered-values": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.2.tgz", "integrity": "sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==", + "license": "MIT", "dependencies": { "cssnano-utils": "^4.0.2", "postcss-value-parser": "^4.2.0" @@ -11426,10 +14746,203 @@ "postcss": "^8.4.31" } }, + "node_modules/postcss-overflow-shorthand": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-6.0.0.tgz", + "integrity": "sha512-BdDl/AbVkDjoTofzDQnwDdm/Ym6oS9KgmO7Gr+LHYjNWJ6ExORe4+3pcLQsLA9gIROMkiGVjjwZNoL/mpXHd5Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-page-break": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", + "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", + "license": "MIT", + "peerDependencies": { + "postcss": "^8" + } + }, + "node_modules/postcss-place": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-10.0.0.tgz", + "integrity": "sha512-5EBrMzat2pPAxQNWYavwAfoKfYcTADJ8AXGVPcUZ2UkNloUTWzJQExgrzrDkh3EKzmAx1evfTAzF9I8NGcc+qw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-preset-env": { + "version": "10.6.1", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-10.6.1.tgz", + "integrity": "sha512-yrk74d9EvY+W7+lO9Aj1QmjWY9q5NsKjK2V9drkOPZB/X6KZ0B3igKsHUYakb7oYVhnioWypQX3xGuePf89f3g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "@csstools/postcss-alpha-function": "^1.0.1", + "@csstools/postcss-cascade-layers": "^5.0.2", + "@csstools/postcss-color-function": "^4.0.12", + "@csstools/postcss-color-function-display-p3-linear": "^1.0.1", + "@csstools/postcss-color-mix-function": "^3.0.12", + "@csstools/postcss-color-mix-variadic-function-arguments": "^1.0.2", + "@csstools/postcss-content-alt-text": "^2.0.8", + "@csstools/postcss-contrast-color-function": "^2.0.12", + "@csstools/postcss-exponential-functions": "^2.0.9", + "@csstools/postcss-font-format-keywords": "^4.0.0", + "@csstools/postcss-gamut-mapping": "^2.0.11", + "@csstools/postcss-gradients-interpolation-method": "^5.0.12", + "@csstools/postcss-hwb-function": "^4.0.12", + "@csstools/postcss-ic-unit": "^4.0.4", + "@csstools/postcss-initial": "^2.0.1", + "@csstools/postcss-is-pseudo-class": "^5.0.3", + "@csstools/postcss-light-dark-function": "^2.0.11", + "@csstools/postcss-logical-float-and-clear": "^3.0.0", + "@csstools/postcss-logical-overflow": "^2.0.0", + "@csstools/postcss-logical-overscroll-behavior": "^2.0.0", + "@csstools/postcss-logical-resize": "^3.0.0", + "@csstools/postcss-logical-viewport-units": "^3.0.4", + "@csstools/postcss-media-minmax": "^2.0.9", + "@csstools/postcss-media-queries-aspect-ratio-number-values": "^3.0.5", + "@csstools/postcss-nested-calc": "^4.0.0", + "@csstools/postcss-normalize-display-values": "^4.0.1", + "@csstools/postcss-oklab-function": "^4.0.12", + "@csstools/postcss-position-area-property": "^1.0.0", + "@csstools/postcss-progressive-custom-properties": "^4.2.1", + "@csstools/postcss-property-rule-prelude-list": "^1.0.0", + "@csstools/postcss-random-function": "^2.0.1", + "@csstools/postcss-relative-color-syntax": "^3.0.12", + "@csstools/postcss-scope-pseudo-class": "^4.0.1", + "@csstools/postcss-sign-functions": "^1.1.4", + "@csstools/postcss-stepped-value-functions": "^4.0.9", + "@csstools/postcss-syntax-descriptor-syntax-production": "^1.0.1", + "@csstools/postcss-system-ui-font-family": "^1.0.0", + "@csstools/postcss-text-decoration-shorthand": "^4.0.3", + "@csstools/postcss-trigonometric-functions": "^4.0.9", + "@csstools/postcss-unset-value": "^4.0.0", + "autoprefixer": "^10.4.23", + "browserslist": "^4.28.1", + "css-blank-pseudo": "^7.0.1", + "css-has-pseudo": "^7.0.3", + "css-prefers-color-scheme": "^10.0.0", + "cssdb": "^8.6.0", + "postcss-attribute-case-insensitive": "^7.0.1", + "postcss-clamp": "^4.1.0", + "postcss-color-functional-notation": "^7.0.12", + "postcss-color-hex-alpha": "^10.0.0", + "postcss-color-rebeccapurple": "^10.0.0", + "postcss-custom-media": "^11.0.6", + "postcss-custom-properties": "^14.0.6", + "postcss-custom-selectors": "^8.0.5", + "postcss-dir-pseudo-class": "^9.0.1", + "postcss-double-position-gradients": "^6.0.4", + "postcss-focus-visible": "^10.0.1", + "postcss-focus-within": "^9.0.1", + "postcss-font-variant": "^5.0.0", + "postcss-gap-properties": "^6.0.0", + "postcss-image-set-function": "^7.0.0", + "postcss-lab-function": "^7.0.12", + "postcss-logical": "^8.1.0", + "postcss-nesting": "^13.0.2", + "postcss-opacity-percentage": "^3.0.0", + "postcss-overflow-shorthand": "^6.0.0", + "postcss-page-break": "^3.0.4", + "postcss-place": "^10.0.0", + "postcss-pseudo-class-any-link": "^10.0.1", + "postcss-replace-overflow-wrap": "^4.0.0", + "postcss-selector-not": "^8.0.1" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-pseudo-class-any-link": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-10.0.1.tgz", + "integrity": "sha512-3el9rXlBOqTFaMFkWDOkHUTQekFIYnaQY55Rsp8As8QQkpiSgIYEcF/6Ond93oHiDsGb4kad8zjt+NPlOC1H0Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-pseudo-class-any-link/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/postcss-reduce-idents": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-6.0.3.tgz", "integrity": "sha512-G3yCqZDpsNPoQgbDUy3T0E6hqOQ5xigUtBQyrmq3tn2GxlyiL0yyl7H+T8ulQR6kOcHJ9t7/9H4/R2tv8tJbMA==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -11444,6 +14957,7 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.1.0.tgz", "integrity": "sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==", + "license": "MIT", "dependencies": { "browserslist": "^4.23.0", "caniuse-api": "^3.0.0" @@ -11459,6 +14973,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.2.tgz", "integrity": "sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -11469,10 +14984,58 @@ "postcss": "^8.4.31" } }, + "node_modules/postcss-replace-overflow-wrap": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", + "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", + "license": "MIT", + "peerDependencies": { + "postcss": "^8.0.3" + } + }, + "node_modules/postcss-selector-not": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-8.0.1.tgz", + "integrity": "sha512-kmVy/5PYVb2UOhy0+LqUYAhKj7DUGDpSWa5LZqlkWJaaAV+dxxsOG3+St0yNLu6vsKD7Dmqx+nWQt0iil89+WA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-selector-not/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/postcss-selector-parser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz", - "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "license": "MIT", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -11485,6 +15048,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/postcss-sort-media-queries/-/postcss-sort-media-queries-5.2.0.tgz", "integrity": "sha512-AZ5fDMLD8SldlAYlvi8NIqo0+Z8xnXU2ia0jxmuhxAU+Lqt9K+AlmLNJ/zWEnE9x+Zx3qL3+1K20ATgNOr3fAA==", + "license": "MIT", "dependencies": { "sort-css-media-queries": "2.2.0" }, @@ -11499,6 +15063,7 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.3.tgz", "integrity": "sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==", + "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0", "svgo": "^3.2.0" @@ -11514,6 +15079,7 @@ "version": "6.0.4", "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.4.tgz", "integrity": "sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg==", + "license": "MIT", "dependencies": { "postcss-selector-parser": "^6.0.16" }, @@ -11527,12 +15093,14 @@ "node_modules/postcss-value-parser": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "license": "MIT" }, "node_modules/postcss-zindex": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-6.0.2.tgz", "integrity": "sha512-5BxW9l1evPB/4ZIc+2GobEBoKC+h8gPGCMi+jxsYvd2x0mjq7wazk6DrP71pStqxE9Foxh5TVnonbWpFZzXaYg==", + "license": "MIT", "engines": { "node": "^14 || ^16 || >=18.0" }, @@ -11544,6 +15112,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", + "license": "MIT", "dependencies": { "lodash": "^4.17.20", "renderkid": "^3.0.0" @@ -11553,14 +15122,16 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/pretty-time/-/pretty-time-1.1.0.tgz", "integrity": "sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==", + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/prism-react-renderer": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-2.3.1.tgz", - "integrity": "sha512-Rdf+HzBLR7KYjzpJ1rSoxT9ioO85nZngQEoFIhL07XhtJHlCU3SOz0GJ6+qvMyQe0Se+BV3qpe6Yd/NmQF5Juw==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-2.4.1.tgz", + "integrity": "sha512-ey8Ls/+Di31eqzUxC46h8MksNuGx/n0AAC8uKpwFau4RPDYLuE3EXTp8N8G2vX2N7UC/+IXeNUnlWBGGcAG+Ig==", + "license": "MIT", "dependencies": { "@types/prismjs": "^1.26.0", "clsx": "^2.0.0" @@ -11573,14 +15144,16 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/prismjs": { - "version": "1.29.0", - "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", - "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==", + "version": "1.30.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz", + "integrity": "sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==", + "license": "MIT", "engines": { "node": ">=6" } @@ -11588,12 +15161,14 @@ "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "license": "MIT" }, "node_modules/prompts": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "license": "MIT", "dependencies": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" @@ -11606,6 +15181,7 @@ "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "license": "MIT", "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", @@ -11613,9 +15189,10 @@ } }, "node_modules/property-information": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", - "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.1.0.tgz", + "integrity": "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -11624,12 +15201,14 @@ "node_modules/proto-list": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==" + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "license": "ISC" }, "node_modules/proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "license": "MIT", "dependencies": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" @@ -11642,19 +15221,25 @@ "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "license": "MIT", "engines": { "node": ">= 0.10" } }, "node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "license": "MIT", + "engines": { + "node": ">=6" + } }, "node_modules/pupa": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-3.1.0.tgz", - "integrity": "sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-3.3.0.tgz", + "integrity": "sha512-LjgDO2zPtoXP2wJpDjZrGdojii1uqO0cnwKoIoUzkfS98HDmbeiGmYiXo3lXeFlq2xvne1QFQhwYXSUCLKtEuA==", + "license": "MIT", "dependencies": { "escape-goat": "^4.0.0" }, @@ -11665,12 +15250,31 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/pvtsutils": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.6.tgz", + "integrity": "sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.8.1" + } + }, + "node_modules/pvutils": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.5.tgz", + "integrity": "sha512-KTqnxsgGiQ6ZAzZCVlJH5eOjSnvlyEgx1m8bkRJfOhmGRqfo5KLvmAlACQkrjEtOQ4B7wF9TdSLIs9O90MX9xA==", + "license": "MIT", + "engines": { + "node": ">=16.0.0" + } + }, "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "version": "6.14.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.2.tgz", + "integrity": "sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q==", + "license": "BSD-3-Clause", "dependencies": { - "side-channel": "^1.0.4" + "side-channel": "^1.1.0" }, "engines": { "node": ">=0.6" @@ -11679,14 +15283,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/queue": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", - "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", - "dependencies": { - "inherits": "~2.0.3" - } - }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -11704,12 +15300,14 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/quick-lru": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -11717,31 +15315,25 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, "node_modules/range-parser": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", "integrity": "sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.3.tgz", + "integrity": "sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==", + "license": "MIT", + "dependencies": { + "bytes": "~3.1.2", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "unpipe": "~1.0.0" }, "engines": { "node": ">= 0.8" @@ -11751,6 +15343,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", "engines": { "node": ">= 0.8" } @@ -11759,6 +15352,7 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", "dependencies": { "deep-extend": "^0.6.0", "ini": "~1.3.0", @@ -11769,10 +15363,17 @@ "rc": "cli.js" } }, + "node_modules/rc/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "license": "ISC" + }, "node_modules/rc/node_modules/strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -11781,6 +15382,7 @@ "version": "18.3.1", "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "license": "MIT", "dependencies": { "loose-envify": "^1.1.0" }, @@ -11788,128 +15390,11 @@ "node": ">=0.10.0" } }, - "node_modules/react-dev-utils": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", - "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==", - "dependencies": { - "@babel/code-frame": "^7.16.0", - "address": "^1.1.2", - "browserslist": "^4.18.1", - "chalk": "^4.1.2", - "cross-spawn": "^7.0.3", - "detect-port-alt": "^1.1.6", - "escape-string-regexp": "^4.0.0", - "filesize": "^8.0.6", - "find-up": "^5.0.0", - "fork-ts-checker-webpack-plugin": "^6.5.0", - "global-modules": "^2.0.0", - "globby": "^11.0.4", - "gzip-size": "^6.0.0", - "immer": "^9.0.7", - "is-root": "^2.1.0", - "loader-utils": "^3.2.0", - "open": "^8.4.0", - "pkg-up": "^3.1.0", - "prompts": "^2.4.2", - "react-error-overlay": "^6.0.11", - "recursive-readdir": "^2.2.2", - "shell-quote": "^1.7.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/react-dev-utils/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/react-dev-utils/node_modules/loader-utils": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz", - "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==", - "engines": { - "node": ">= 12.13.0" - } - }, - "node_modules/react-dev-utils/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/react-dev-utils/node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/react-dev-utils/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/react-dev-utils/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/react-dev-utils/node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/react-dom": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "license": "MIT", "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.2" @@ -11918,20 +15403,18 @@ "react": "^18.3.1" } }, - "node_modules/react-error-overlay": { - "version": "6.0.11", - "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", - "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==" - }, "node_modules/react-fast-compare": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", - "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==" + "integrity": "sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==", + "license": "MIT" }, "node_modules/react-helmet-async": { + "name": "@slorber/react-helmet-async", "version": "1.3.0", - "resolved": "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-1.3.0.tgz", - "integrity": "sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==", + "resolved": "https://registry.npmjs.org/@slorber/react-helmet-async/-/react-helmet-async-1.3.0.tgz", + "integrity": "sha512-e9/OK8VhwUSc67diWI8Rb3I0YgI9/SBQtnhe9aEuK6MhZm7ntZZimXgwXnd8W96YTmSOb9M4d8LwhRZyhWr/1A==", + "license": "Apache-2.0", "dependencies": { "@babel/runtime": "^7.12.5", "invariant": "^2.2.4", @@ -11940,24 +15423,26 @@ "shallowequal": "^1.1.0" }, "peerDependencies": { - "react": "^16.6.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.6.0 || ^17.0.0 || ^18.0.0" + "react": "^16.6.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.6.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "node_modules/react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" }, "node_modules/react-json-view-lite": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/react-json-view-lite/-/react-json-view-lite-1.4.0.tgz", - "integrity": "sha512-wh6F6uJyYAmQ4fK0e8dSQMEWuvTs2Wr3el3sLD9bambX1+pSWUVXIz1RFaoy3TI1mZ0FqdpKq9YgbgTTgyrmXA==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/react-json-view-lite/-/react-json-view-lite-2.5.0.tgz", + "integrity": "sha512-tk7o7QG9oYyELWHL8xiMQ8x4WzjCzbWNyig3uexmkLb54r8jO0yH3WCWx8UZS0c49eSA4QUmG5caiRJ8fAn58g==", + "license": "MIT", "engines": { - "node": ">=14" + "node": ">=18" }, "peerDependencies": { - "react": "^16.13.1 || ^17.0.0 || ^18.0.0" + "react": "^18.0.0 || ^19.0.0" } }, "node_modules/react-loadable": { @@ -11965,6 +15450,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-6.0.0.tgz", "integrity": "sha512-YMMxTUQV/QFSnbgrP3tjDzLHRg7vsbMn8e9HAa8o/1iXoiomo48b7sk/kkmWEuWNDPJVlKSJRB6Y2fHqdJk+SQ==", + "license": "MIT", "dependencies": { "@types/react": "*" }, @@ -11973,9 +15459,10 @@ } }, "node_modules/react-loadable-ssr-addon-v5-slorber": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/react-loadable-ssr-addon-v5-slorber/-/react-loadable-ssr-addon-v5-slorber-1.0.1.tgz", - "integrity": "sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/react-loadable-ssr-addon-v5-slorber/-/react-loadable-ssr-addon-v5-slorber-1.0.3.tgz", + "integrity": "sha512-GXfh9VLwB5ERaCsU6RULh7tkemeX15aNh6wuMEBtfdyMa7fFG8TXrhXlx1SoEK2Ty/l6XIkzzYIQmyaWW3JgdQ==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.10.3" }, @@ -11991,6 +15478,7 @@ "version": "5.3.4", "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz", "integrity": "sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.12.13", "history": "^4.9.0", @@ -12010,6 +15498,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/react-router-config/-/react-router-config-5.1.1.tgz", "integrity": "sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.1.2" }, @@ -12022,6 +15511,7 @@ "version": "5.3.4", "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.4.tgz", "integrity": "sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.12.13", "history": "^4.9.0", @@ -12039,6 +15529,7 @@ "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -12052,6 +15543,7 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "license": "MIT", "dependencies": { "picomatch": "^2.2.1" }, @@ -12059,42 +15551,90 @@ "node": ">=8.10.0" } }, - "node_modules/reading-time": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/reading-time/-/reading-time-1.5.0.tgz", - "integrity": "sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==" + "node_modules/recma-build-jsx": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/recma-build-jsx/-/recma-build-jsx-1.0.0.tgz", + "integrity": "sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-util-build-jsx": "^3.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } }, - "node_modules/rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "node_modules/recma-jsx": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/recma-jsx/-/recma-jsx-1.0.1.tgz", + "integrity": "sha512-huSIy7VU2Z5OLv6oFLosQGGDqPqdO1iq6bWNAdhzMxSJP7RAso4fCZ1cKu8j9YHCZf3TPrq4dw3okhrylgcd7w==", + "license": "MIT", "dependencies": { - "resolve": "^1.1.6" + "acorn-jsx": "^5.0.0", + "estree-util-to-js": "^2.0.0", + "recma-parse": "^1.0.0", + "recma-stringify": "^1.0.0", + "unified": "^11.0.0" }, - "engines": { - "node": ">= 0.10" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/recursive-readdir": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", - "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", + "node_modules/recma-parse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/recma-parse/-/recma-parse-1.0.0.tgz", + "integrity": "sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==", + "license": "MIT", "dependencies": { - "minimatch": "^3.0.5" + "@types/estree": "^1.0.0", + "esast-util-from-js": "^2.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" }, - "engines": { - "node": ">=6.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/recma-stringify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/recma-stringify/-/recma-stringify-1.0.0.tgz", + "integrity": "sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-util-to-js": "^2.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, + "node_modules/reflect-metadata": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", + "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", + "license": "Apache-2.0" + }, "node_modules/regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "license": "MIT" }, "node_modules/regenerate-unicode-properties": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", - "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz", + "integrity": "sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==", + "license": "MIT", "dependencies": { "regenerate": "^1.4.2" }, @@ -12102,41 +15642,30 @@ "node": ">=4" } }, - "node_modules/regenerator-runtime": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", - "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" - }, - "node_modules/regenerator-transform": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", - "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, "node_modules/regexpu-core": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", - "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.4.0.tgz", + "integrity": "sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==", + "license": "MIT", "dependencies": { - "@babel/regjsgen": "^0.8.0", "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsparser": "^0.9.1", + "regenerate-unicode-properties": "^10.2.2", + "regjsgen": "^0.8.0", + "regjsparser": "^0.13.0", "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" + "unicode-match-property-value-ecmascript": "^2.2.1" }, "engines": { "node": ">=4" } }, "node_modules/registry-auth-token": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.0.2.tgz", - "integrity": "sha512-o/3ikDxtXaA59BmZuZrJZDJv8NMDGSj+6j6XaeBmHw8eY1i1qd9+6H+LjVvQXx3HN6aRCGa1cUdJ9RaJZUugnQ==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-5.1.1.tgz", + "integrity": "sha512-P7B4+jq8DeD2nMsAcdfaqHbssgHtZ7Z5+++a5ask90fvmJ8p5je4mOa+wzu+DB4vQ5tdJV/xywY+UnVFeQLV5Q==", + "license": "MIT", "dependencies": { - "@pnpm/npm-conf": "^2.1.0" + "@pnpm/npm-conf": "^3.0.2" }, "engines": { "node": ">=14" @@ -12146,6 +15675,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-6.0.1.tgz", "integrity": "sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==", + "license": "MIT", "dependencies": { "rc": "1.2.8" }, @@ -12156,29 +15686,29 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", + "license": "MIT" + }, "node_modules/regjsparser": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.1.tgz", + "integrity": "sha512-dLsljMd9sqwRkby8zhO1gSg3PnJIBFid8f4CQj/sXx+7cKx+E7u0PKhZ+U4wmhx7EfmtvnA318oVaIkAB1lRJw==", + "license": "BSD-2-Clause", "dependencies": { - "jsesc": "~0.5.0" + "jsesc": "~3.1.0" }, "bin": { "regjsparser": "bin/parser" } }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", - "bin": { - "jsesc": "bin/jsesc" - } - }, "node_modules/rehype-raw": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-7.0.0.tgz", "integrity": "sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==", + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "hast-util-raw": "^9.0.0", @@ -12189,18 +15719,35 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/rehype-recma": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rehype-recma/-/rehype-recma-1.0.0.tgz", + "integrity": "sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/hast": "^3.0.0", + "hast-util-to-estree": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/relateurl": { "version": "0.2.7", "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "license": "MIT", "engines": { "node": ">= 0.10" } }, "node_modules/remark-directive": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remark-directive/-/remark-directive-3.0.0.tgz", - "integrity": "sha512-l1UyWJ6Eg1VPU7Hm/9tt0zKtReJQNOA4+iDMAxTyZNWnJnFlbS/7zhiel/rogTLQ2vMYwDzSJa4BiVNqGlqIMA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/remark-directive/-/remark-directive-3.0.1.tgz", + "integrity": "sha512-gwglrEQEZcZYgVyG1tQuA+h58EZfq5CSULw7J90AFuCTyib1thgHPoqQ+h9iFvU6R+vnZ5oNFQR5QKgGpk741A==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-directive": "^3.0.0", @@ -12216,6 +15763,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/remark-emoji/-/remark-emoji-4.0.1.tgz", "integrity": "sha512-fHdvsTR1dHkWKev9eNyhTo4EFwbUvJ8ka9SgeWkMPYFX4WoI7ViVBms3PjlQYgw5TLvNQso3GUB/b/8t3yo+dg==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.2", "emoticon": "^4.0.1", @@ -12231,6 +15779,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-5.0.0.tgz", "integrity": "sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-frontmatter": "^2.0.0", @@ -12243,9 +15792,10 @@ } }, "node_modules/remark-gfm": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.0.tgz", - "integrity": "sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.1.tgz", + "integrity": "sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-gfm": "^3.0.0", @@ -12260,9 +15810,10 @@ } }, "node_modules/remark-mdx": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.0.1.tgz", - "integrity": "sha512-3Pz3yPQ5Rht2pM5R+0J2MrGoBSrzf+tJG94N+t/ilfdh8YLyyKYtidAYwTveB20BoHAcwIopOUqhcmh2F7hGYA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.1.1.tgz", + "integrity": "sha512-Pjj2IYlUY3+D8x00UJsIOg5BEvfMyeI+2uLPn9VO9Wg4MEtN/VTIq2NEJQfde9PnX15KgtHyl9S0BcTnWrIuWg==", + "license": "MIT", "dependencies": { "mdast-util-mdx": "^3.0.0", "micromark-extension-mdxjs": "^3.0.0" @@ -12276,6 +15827,7 @@ "version": "11.0.0", "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-from-markdown": "^2.0.0", @@ -12288,9 +15840,10 @@ } }, "node_modules/remark-rehype": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.0.tgz", - "integrity": "sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==", + "version": "11.1.2", + "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.2.tgz", + "integrity": "sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==", + "license": "MIT", "dependencies": { "@types/hast": "^3.0.0", "@types/mdast": "^4.0.0", @@ -12307,6 +15860,7 @@ "version": "11.0.0", "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", + "license": "MIT", "dependencies": { "@types/mdast": "^4.0.0", "mdast-util-to-markdown": "^2.0.0", @@ -12321,6 +15875,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", + "license": "MIT", "dependencies": { "css-select": "^4.1.3", "dom-converter": "^0.2.0", @@ -12333,6 +15888,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "license": "BSD-2-Clause", "dependencies": { "boolbase": "^1.0.0", "css-what": "^6.0.1", @@ -12348,6 +15904,7 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "license": "MIT", "dependencies": { "domelementtype": "^2.0.1", "domhandler": "^4.2.0", @@ -12361,6 +15918,7 @@ "version": "4.3.1", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "license": "BSD-2-Clause", "dependencies": { "domelementtype": "^2.2.0" }, @@ -12375,6 +15933,7 @@ "version": "2.8.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "license": "BSD-2-Clause", "dependencies": { "dom-serializer": "^1.0.1", "domelementtype": "^2.2.0", @@ -12388,6 +15947,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "license": "BSD-2-Clause", "funding": { "url": "https://github.com/fb55/entities?sponsor=1" } @@ -12403,6 +15963,7 @@ "url": "https://github.com/sponsors/fb55" } ], + "license": "MIT", "dependencies": { "domelementtype": "^2.0.1", "domhandler": "^4.0.0", @@ -12414,6 +15975,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -12429,20 +15991,26 @@ "node_modules/requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "license": "MIT" }, "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "version": "1.22.12", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz", + "integrity": "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==", + "license": "MIT", "dependencies": { - "is-core-module": "^2.13.0", + "es-errors": "^1.3.0", + "is-core-module": "^2.16.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -12450,12 +16018,14 @@ "node_modules/resolve-alpn": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", + "license": "MIT" }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "license": "MIT", "engines": { "node": ">=4" } @@ -12463,12 +16033,14 @@ "node_modules/resolve-pathname": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", - "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==" + "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==", + "license": "MIT" }, "node_modules/responselike": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", + "license": "MIT", "dependencies": { "lowercase-keys": "^3.0.0" }, @@ -12483,42 +16055,26 @@ "version": "0.13.1", "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" } }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rtl-detect": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/rtl-detect/-/rtl-detect-1.1.2.tgz", - "integrity": "sha512-PGMBq03+TTG/p/cRB7HCLKJ1MgDIi07+QU1faSjiYRfmY5UsAttV9Hs08jDAHVwcOwmVLcSJkpwyfXszVjWfIQ==" - }, "node_modules/rtlcss": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-4.1.1.tgz", - "integrity": "sha512-/oVHgBtnPNcggP2aVXQjSy6N1mMAfHg4GSag0QtZBlD5bdDgAHwr4pydqJGd+SUCu9260+Pjqbjwtvu7EMH1KQ==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-4.3.0.tgz", + "integrity": "sha512-FI+pHEn7Wc4NqKXMXFM+VAYKEj/mRIcW4h24YVwVtyjI+EqGrLc2Hx/Ny0lrZ21cBWU2goLy36eqMcNj3AQJig==", + "license": "MIT", "dependencies": { "escalade": "^3.1.1", "picocolors": "^1.0.0", @@ -12532,6 +16088,18 @@ "node": ">=12.0.0" } }, + "node_modules/run-applescript": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.1.0.tgz", + "integrity": "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -12550,6 +16118,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } @@ -12571,30 +16140,44 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" }, "node_modules/sax": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", - "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==" + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.6.0.tgz", + "integrity": "sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=11.0.0" + } }, "node_modules/scheduler": { "version": "0.23.2", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "license": "MIT", "dependencies": { "loose-envify": "^1.1.0" } }, + "node_modules/schema-dts": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/schema-dts/-/schema-dts-1.1.5.tgz", + "integrity": "sha512-RJr9EaCmsLzBX2NDiO5Z3ux2BVosNZN5jo0gWgsyKvxKIUL5R3swNvoorulAeL9kLB0iTSX7V6aokhla2m7xbg==", + "license": "Apache-2.0" + }, "node_modules/schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", + "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", + "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.9.0", @@ -12602,7 +16185,7 @@ "ajv-keywords": "^5.1.0" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 10.13.0" }, "funding": { "type": "opencollective", @@ -12610,15 +16193,17 @@ } }, "node_modules/search-insights": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.14.0.tgz", - "integrity": "sha512-OLN6MsPMCghDOqlCtsIsYgtsC0pnwVTyT9Mu6A3ewOj1DxvzZF6COrn2g86E/c05xbktB0XN04m/t1Z+n+fTGw==", + "version": "2.17.3", + "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.17.3.tgz", + "integrity": "sha512-RQPdCYTa8A68uM2jwxoY842xDhvx3E5LFL1LxvxCNMev4o5mLuokczhzjAgGwUZBAmOKZknArSxLKmXtIi2AxQ==", + "license": "MIT", "peer": true }, "node_modules/section-matter": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", + "license": "MIT", "dependencies": { "extend-shallow": "^2.0.1", "kind-of": "^6.0.0" @@ -12630,27 +16215,27 @@ "node_modules/select-hose": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==" + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", + "license": "MIT" }, "node_modules/selfsigned": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", - "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-5.5.0.tgz", + "integrity": "sha512-ftnu3TW4+3eBfLRFnDEkzGxSF/10BJBkaLJuBHZX0kiPS7bRdlpZGu6YGt4KngMkdTwJE6MbjavFpqHvqVt+Ew==", + "license": "MIT", "dependencies": { - "@types/node-forge": "^1.3.0", - "node-forge": "^1" + "@peculiar/x509": "^1.14.2", + "pkijs": "^3.3.3" }, "engines": { - "node": ">=10" + "node": ">=18" } }, "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dependencies": { - "lru-cache": "^6.0.0" - }, + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -12662,6 +16247,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-4.0.0.tgz", "integrity": "sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==", + "license": "MIT", "dependencies": { "semver": "^7.3.5" }, @@ -12672,40 +16258,25 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.2.tgz", + "integrity": "sha512-VMbMxbDeehAxpOtWJXlcUS5E8iXh6QmN+BkRX1GARS3wRaXEEgzCcB10gTQazO42tpNIya8xIyNx8fll1OFPrg==", + "license": "MIT", "dependencies": { "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", + "fresh": "~0.5.2", + "http-errors": "~2.0.1", "mime": "1.6.0", "ms": "2.1.3", - "on-finished": "2.4.1", + "on-finished": "~2.4.1", "range-parser": "~1.2.1", - "statuses": "2.0.1" + "statuses": "~2.0.2" }, "engines": { "node": ">= 0.8.0" @@ -12715,6 +16286,7 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -12722,70 +16294,75 @@ "node_modules/send/node_modules/debug/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" }, "node_modules/send/node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/serialize-javascript": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", - "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", - "dependencies": { - "randombytes": "^2.1.0" + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-7.0.5.tgz", + "integrity": "sha512-F4LcB0UqUl1zErq+1nYEEzSHJnIwb3AF2XWB94b+afhrekOUijwooAYqFyRbjYkm2PAKBabx6oYv/xDxNi8IBw==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=20.0.0" } }, "node_modules/serve-handler": { - "version": "6.1.5", - "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.5.tgz", - "integrity": "sha512-ijPFle6Hwe8zfmBxJdE+5fta53fdIY0lHISJvuikXB3VYFafRjMRpOffSPvCYsbKyBA7pvy9oYr/BT1O3EArlg==", + "version": "6.1.7", + "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.7.tgz", + "integrity": "sha512-CinAq1xWb0vR3twAv9evEU8cNWkXCb9kd5ePAHUKJBkOsUpR1wt/CvGdeca7vqumL1U5cSaeVQ6zZMxiJ3yWsg==", + "license": "MIT", "dependencies": { "bytes": "3.0.0", "content-disposition": "0.5.2", - "fast-url-parser": "1.1.3", "mime-types": "2.1.18", - "minimatch": "3.1.2", + "minimatch": "3.1.5", "path-is-inside": "1.0.2", - "path-to-regexp": "2.2.1", + "path-to-regexp": "3.3.0", "range-parser": "1.2.0" } }, "node_modules/serve-handler/node_modules/path-to-regexp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.2.1.tgz", - "integrity": "sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==" + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-3.3.0.tgz", + "integrity": "sha512-qyCH421YQPS2WFDxDjftfc1ZR5WKQzVzqsp4n9M2kQhVOo/ByahFoUNJfl58kOcEGfQ//7weFTDhm+ss8Ecxgw==", + "license": "MIT" }, "node_modules/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.2.tgz", + "integrity": "sha512-KDj11HScOaLmrPxl70KYNW1PksP4Nb/CLL2yvC+Qd2kHMPEEpfc4Re2e4FOay+bC/+XQl/7zAcWON3JVo5v3KQ==", + "license": "MIT", "dependencies": { - "accepts": "~1.3.4", + "accepts": "~1.3.8", "batch": "0.6.1", "debug": "2.6.9", "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" + "http-errors": "~1.8.0", + "mime-types": "~2.1.35", + "parseurl": "~1.3.3" }, "engines": { "node": ">= 0.8.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/serve-index/node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", "dependencies": { "ms": "2.0.0" } @@ -12794,56 +16371,73 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/serve-index/node_modules/http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "license": "MIT", "dependencies": { "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" }, "engines": { "node": ">= 0.6" } }, - "node_modules/serve-index/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" + "node_modules/serve-index/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } }, "node_modules/serve-index/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/serve-index/node_modules/setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" }, "node_modules/serve-index/node_modules/statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "version": "1.16.3", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.3.tgz", + "integrity": "sha512-x0RTqQel6g5SY7Lg6ZreMmsOzncHFU7nhnRWkKgWuMTu5NN0DR5oruckMqRvacAN9d5w6ARnRBXl9xhDCgfMeA==", + "license": "MIT", "dependencies": { - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.18.0" + "send": "~0.19.1" }, "engines": { "node": ">= 0.8.0" @@ -12853,6 +16447,7 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "license": "MIT", "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", @@ -12868,12 +16463,14 @@ "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" }, "node_modules/shallow-clone": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "license": "MIT", "dependencies": { "kind-of": "^6.0.2" }, @@ -12884,12 +16481,14 @@ "node_modules/shallowequal": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", - "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==", + "license": "MIT" }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -12901,43 +16500,87 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/shell-quote": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", - "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz", + "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/shelljs": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", - "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "license": "MIT", "dependencies": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" }, - "bin": { - "shjs": "bin/shjs" + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz", + "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.4" }, "engines": { - "node": ">=4" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bound": "^1.0.2", "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -12949,15 +16592,17 @@ "node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC" }, "node_modules/sirv": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.3.tgz", - "integrity": "sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz", + "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==", + "license": "MIT", "dependencies": { - "@polka/url": "^1.0.0-next.20", - "mrmime": "^1.0.0", + "@polka/url": "^1.0.0-next.24", + "mrmime": "^2.0.0", "totalist": "^3.0.0" }, "engines": { @@ -12967,12 +16612,14 @@ "node_modules/sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "license": "MIT" }, "node_modules/sitemap": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-7.1.2.tgz", - "integrity": "sha512-ARCqzHJ0p4gWt+j7NlU5eDlIO9+Rkr/JhPFZKKQ1l5GCus7rJH4UdrlVAh0xC/gDS/Qir2UMxqYNHtsKr2rpCw==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-7.1.3.tgz", + "integrity": "sha512-tAjEd+wt/YwnEbfNB2ht51ybBJxbEWwe5ki/Z//Wh0rpBFTCUSj46GnxUKEWzhfuJTsee8x3lybHxFgUMig2hw==", + "license": "MIT", "dependencies": { "@types/node": "^17.0.5", "@types/sax": "^1.2.1", @@ -12990,12 +16637,14 @@ "node_modules/sitemap/node_modules/@types/node": { "version": "17.0.45", "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz", - "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==" + "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==", + "license": "MIT" }, "node_modules/skin-tone": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/skin-tone/-/skin-tone-2.0.0.tgz", "integrity": "sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==", + "license": "MIT", "dependencies": { "unicode-emoji-modifier-base": "^1.0.0" }, @@ -13007,6 +16656,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "license": "MIT", "engines": { "node": ">=8" } @@ -13015,6 +16665,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "license": "MIT", "dependencies": { "dot-case": "^3.0.4", "tslib": "^2.0.3" @@ -13024,6 +16675,7 @@ "version": "0.3.24", "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "license": "MIT", "dependencies": { "faye-websocket": "^0.11.3", "uuid": "^8.3.2", @@ -13034,22 +16686,25 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/sort-css-media-queries/-/sort-css-media-queries-2.2.0.tgz", "integrity": "sha512-0xtkGhWCC9MGt/EzgnvbbbKhqWjl1+/rncmhTh5qCpbYguXh6S/qwePfv/JQ8jePXXmqingylxoC49pCkSPIbA==", + "license": "MIT", "engines": { "node": ">= 6.3.0" } }, "node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", + "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", + "license": "BSD-3-Clause", "engines": { - "node": ">= 8" + "node": ">= 12" } }, "node_modules/source-map-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -13058,6 +16713,7 @@ "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -13067,6 +16723,7 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -13075,6 +16732,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -13084,6 +16742,7 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "license": "MIT", "dependencies": { "debug": "^4.1.0", "handle-thing": "^2.0.0", @@ -13099,6 +16758,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "license": "MIT", "dependencies": { "debug": "^4.1.0", "detect-node": "^2.0.4", @@ -13111,12 +16771,14 @@ "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "license": "BSD-3-Clause" }, "node_modules/srcset": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/srcset/-/srcset-4.0.0.tgz", "integrity": "sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -13125,22 +16787,25 @@ } }, "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/std-env": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.5.0.tgz", - "integrity": "sha512-JGUEaALvL0Mf6JCfYnJOTcobY+Nc7sG/TemDRBqCA0wEr4DER7zDchaaixTlmOxAjG1uRJmX82EQcxwTQTkqVA==" + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz", + "integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==", + "license": "MIT" }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", "dependencies": { "safe-buffer": "~5.2.0" } @@ -13149,6 +16814,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -13162,9 +16828,10 @@ } }, "node_modules/string-width/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -13173,11 +16840,12 @@ } }, "node_modules/string-width/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", + "license": "MIT", "dependencies": { - "ansi-regex": "^6.0.1" + "ansi-regex": "^6.2.2" }, "engines": { "node": ">=12" @@ -13190,6 +16858,7 @@ "version": "4.0.4", "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", + "license": "MIT", "dependencies": { "character-entities-html4": "^2.0.0", "character-entities-legacy": "^3.0.0" @@ -13203,6 +16872,7 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "license": "BSD-2-Clause", "dependencies": { "get-own-enumerable-property-symbols": "^3.0.0", "is-obj": "^1.0.1", @@ -13216,6 +16886,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -13227,6 +16898,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==", + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -13235,6 +16907,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "license": "MIT", "engines": { "node": ">=6" } @@ -13243,6 +16916,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "license": "MIT", "engines": { "node": ">=8" }, @@ -13250,18 +16924,29 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/style-to-js": { + "version": "1.1.21", + "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.21.tgz", + "integrity": "sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ==", + "license": "MIT", + "dependencies": { + "style-to-object": "1.0.14" + } + }, "node_modules/style-to-object": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.4.4.tgz", - "integrity": "sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==", + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.14.tgz", + "integrity": "sha512-LIN7rULI0jBscWQYaSswptyderlarFkjQ+t79nzty8tcIAceVomEVlLzH5VP4Cmsv6MtKhs7qaAiwlcp+Mgaxw==", + "license": "MIT", "dependencies": { - "inline-style-parser": "0.1.1" + "inline-style-parser": "0.2.7" } }, "node_modules/stylehacks": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.1.1.tgz", "integrity": "sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg==", + "license": "MIT", "dependencies": { "browserslist": "^4.23.0", "postcss-selector-parser": "^6.0.16" @@ -13277,6 +16962,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -13288,6 +16974,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -13298,20 +16985,22 @@ "node_modules/svg-parser": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", - "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==", + "license": "MIT" }, "node_modules/svgo": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz", - "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.3.tgz", + "integrity": "sha512-+wn7I4p7YgJhHs38k2TNjy1vCfPIfLIJWR5MnCStsN8WuuTcBnRKcMHQLMM2ijxGZmDoZwNv8ipl5aTTen62ng==", + "license": "MIT", "dependencies": { - "@trysound/sax": "0.2.0", "commander": "^7.2.0", "css-select": "^5.1.0", "css-tree": "^2.3.1", "css-what": "^6.1.0", "csso": "^5.0.5", - "picocolors": "^1.0.0" + "picocolors": "^1.0.0", + "sax": "^1.5.0" }, "bin": { "svgo": "bin/svgo" @@ -13328,25 +17017,32 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "license": "MIT", "engines": { "node": ">= 10" } }, "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.2.tgz", + "integrity": "sha512-1MOpMXuhGzGL5TTCZFItxCc0AARf1EZFQkGqMm7ERKj8+Hgr5oLvJOVFcC+lRmR8hCe2S3jC4T5D7Vg/d7/fhA==", + "license": "MIT", "engines": { "node": ">=6" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, "node_modules/terser": { - "version": "5.24.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.24.0.tgz", - "integrity": "sha512-ZpGR4Hy3+wBEzVEnHvstMvqpD/nABNelQn/z2r0fjVWGQsN3bpOLzQlqDxmb4CDZnXq5lpjnQ+mHQLAOpfM5iw==", + "version": "5.46.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.46.1.tgz", + "integrity": "sha512-vzCjQO/rgUuK9sf8VJZvjqiqiHFaZLnOiimmUuOKODxWL8mm/xua7viT7aqX7dgPY60otQjUotzFMmCB4VdmqQ==", + "license": "BSD-2-Clause", "dependencies": { "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", + "acorn": "^8.15.0", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, @@ -13358,15 +17054,15 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.3.9", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz", - "integrity": "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.4.0.tgz", + "integrity": "sha512-Bn5vxm48flOIfkdl5CaD2+1CiUVbonWQ3KQPyP7/EuIl9Gbzq/gQFOzaMFUEgVjB1396tcK0SG8XcNJ/2kDH8g==", + "license": "MIT", "dependencies": { - "@jridgewell/trace-mapping": "^0.3.17", + "@jridgewell/trace-mapping": "^0.3.25", "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.1", - "terser": "^5.16.8" + "schema-utils": "^4.3.0", + "terser": "^5.31.1" }, "engines": { "node": ">= 10.13.0" @@ -13376,47 +17072,25 @@ "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "uglify-js": { - "optional": true - } - } - }, - "node_modules/terser-webpack-plugin/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "peerDependencies": { - "ajv": "^6.9.1" + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } } }, "node_modules/terser-webpack-plugin/node_modules/jest-worker": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "license": "MIT", "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -13426,32 +17100,11 @@ "node": ">= 10.13.0" } }, - "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, "node_modules/terser-webpack-plugin/node_modules/supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -13465,40 +17118,57 @@ "node_modules/terser/node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" + "node_modules/thingies": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/thingies/-/thingies-2.6.0.tgz", + "integrity": "sha512-rMHRjmlFLM1R96UYPvpmnc3LYtdFrT33JIB7L9hetGue1qAPfn1N2LJeEjxUSidu1Iku+haLZXDuEXUHNGO/lg==", + "license": "MIT", + "engines": { + "node": ">=10.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "^2" + } }, "node_modules/thunky": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "license": "MIT" }, "node_modules/tiny-invariant": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz", - "integrity": "sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==" + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", + "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", + "license": "MIT" }, "node_modules/tiny-warning": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", - "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==", + "license": "MIT" }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "node_modules/tinypool": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.1.1.tgz", + "integrity": "sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==", + "license": "MIT", "engines": { - "node": ">=4" + "node": "^18.0.0 || >=20.0.0" } }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -13510,6 +17180,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", "engines": { "node": ">=0.6" } @@ -13518,14 +17189,32 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", + "license": "MIT", "engines": { "node": ">=6" } }, + "node_modules/tree-dump": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/tree-dump/-/tree-dump-1.1.0.tgz", + "integrity": "sha512-rMuvhU4MCDbcbnleZTFezWsaZXRFemSqAM+7jPnzUl1fo9w3YEKOxAeui0fz3OI4EU4hf23iyA7uQRVko+UaBA==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, "node_modules/trim-lines": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -13535,20 +17224,41 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/tsyringe": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/tsyringe/-/tsyringe-4.10.0.tgz", + "integrity": "sha512-axr3IdNuVIxnaK5XGEUFTu3YmAQ6lllgrvqfEoR16g/HGnYY/6We4oWENtAnzK6/LpJ2ur9PAb80RBt7/U4ugw==", + "license": "MIT", + "dependencies": { + "tslib": "^1.9.3" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/tsyringe/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" }, "node_modules/type-fest": { "version": "2.19.0", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "license": "(MIT OR CC0-1.0)", "engines": { "node": ">=12.20" }, @@ -13560,6 +17270,7 @@ "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "license": "MIT", "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" @@ -13572,6 +17283,7 @@ "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -13580,6 +17292,7 @@ "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", "dependencies": { "mime-db": "1.52.0" }, @@ -13591,32 +17304,22 @@ "version": "3.1.5", "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "license": "MIT", "dependencies": { "is-typedarray": "^1.0.0" } }, - "node_modules/typescript": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.2.tgz", - "integrity": "sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ==", - "peer": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + "version": "7.19.2", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.19.2.tgz", + "integrity": "sha512-qYVnV5OEm2AW8cJMCpdV20CDyaN3g0AjDlOGf1OW4iaDEx8MwdtChUp4zu4H0VP3nDRF/8RKWH+IPp9uW0YGZg==", + "license": "MIT" }, "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", + "license": "MIT", "engines": { "node": ">=4" } @@ -13625,6 +17328,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/unicode-emoji-modifier-base/-/unicode-emoji-modifier-base-1.0.0.tgz", "integrity": "sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==", + "license": "MIT", "engines": { "node": ">=4" } @@ -13633,6 +17337,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "license": "MIT", "dependencies": { "unicode-canonical-property-names-ecmascript": "^2.0.0", "unicode-property-aliases-ecmascript": "^2.0.0" @@ -13642,17 +17347,19 @@ } }, "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", - "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz", + "integrity": "sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==", + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz", + "integrity": "sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==", + "license": "MIT", "engines": { "node": ">=4" } @@ -13661,6 +17368,7 @@ "version": "11.0.5", "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", "bail": "^2.0.0", @@ -13679,6 +17387,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz", "integrity": "sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==", + "license": "MIT", "dependencies": { "crypto-random-string": "^4.0.0" }, @@ -13690,9 +17399,10 @@ } }, "node_modules/unist-util-is": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", - "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.1.tgz", + "integrity": "sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0" }, @@ -13705,6 +17415,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0" }, @@ -13717,6 +17428,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/unist-util-position-from-estree/-/unist-util-position-from-estree-2.0.0.tgz", "integrity": "sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0" }, @@ -13725,23 +17437,11 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/unist-util-remove-position": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz", - "integrity": "sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==", - "dependencies": { - "@types/unist": "^3.0.0", - "unist-util-visit": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, "node_modules/unist-util-stringify-position": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0" }, @@ -13751,9 +17451,10 @@ } }, "node_modules/unist-util-visit": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", - "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.1.0.tgz", + "integrity": "sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0", @@ -13765,9 +17466,10 @@ } }, "node_modules/unist-util-visit-parents": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", - "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz", + "integrity": "sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", "unist-util-is": "^6.0.0" @@ -13781,6 +17483,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "license": "MIT", "engines": { "node": ">= 10.0.0" } @@ -13789,14 +17492,15 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/update-browserslist-db": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", - "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", "funding": [ { "type": "opencollective", @@ -13811,9 +17515,10 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "escalade": "^3.1.2", - "picocolors": "^1.0.1" + "escalade": "^3.2.0", + "picocolors": "^1.1.1" }, "bin": { "update-browserslist-db": "cli.js" @@ -13826,6 +17531,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-6.0.2.tgz", "integrity": "sha512-EDxhTEVPZZRLWYcJ4ZXjGFN0oP7qYvbXWzEgRm/Yql4dHX5wDbvh89YHP6PK1lzZJYrMtXUuZZz8XGK+U6U1og==", + "license": "BSD-2-Clause", "dependencies": { "boxen": "^7.0.0", "chalk": "^5.0.1", @@ -13853,6 +17559,7 @@ "version": "7.1.1", "resolved": "https://registry.npmjs.org/boxen/-/boxen-7.1.1.tgz", "integrity": "sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==", + "license": "MIT", "dependencies": { "ansi-align": "^3.0.1", "camelcase": "^7.0.1", @@ -13874,6 +17581,7 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz", "integrity": "sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==", + "license": "MIT", "engines": { "node": ">=14.16" }, @@ -13882,9 +17590,10 @@ } }, "node_modules/update-notifier/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", + "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", + "license": "MIT", "engines": { "node": "^12.17.0 || ^14.13 || >=16.0.0" }, @@ -13896,22 +17605,16 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } }, - "node_modules/uri-js/node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "engines": { - "node": ">=6" - } - }, "node_modules/url-loader": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==", + "license": "MIT", "dependencies": { "loader-utils": "^2.0.0", "mime-types": "^2.1.27", @@ -13935,9 +17638,10 @@ } }, "node_modules/url-loader/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz", + "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==", + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -13953,6 +17657,7 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "license": "MIT", "peerDependencies": { "ajv": "^6.9.1" } @@ -13960,12 +17665,14 @@ "node_modules/url-loader/node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" }, "node_modules/url-loader/node_modules/mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -13974,6 +17681,7 @@ "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", "dependencies": { "mime-db": "1.52.0" }, @@ -13985,6 +17693,7 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", @@ -14001,17 +17710,20 @@ "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" }, "node_modules/utila": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==" + "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", + "license": "MIT" }, "node_modules/utility-types": { "version": "3.11.0", "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.11.0.tgz", "integrity": "sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==", + "license": "MIT", "engines": { "node": ">= 4" } @@ -14020,6 +17732,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "license": "MIT", "engines": { "node": ">= 0.4.0" } @@ -14028,6 +17741,7 @@ "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "license": "MIT", "bin": { "uuid": "dist/bin/uuid" } @@ -14035,23 +17749,25 @@ "node_modules/value-equal": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", - "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" + "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==", + "license": "MIT" }, "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/vfile": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", - "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", - "unist-util-stringify-position": "^4.0.0", "vfile-message": "^4.0.0" }, "funding": { @@ -14060,9 +17776,10 @@ } }, "node_modules/vfile-location": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.2.tgz", - "integrity": "sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.3.tgz", + "integrity": "sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", "vfile": "^6.0.0" @@ -14073,9 +17790,10 @@ } }, "node_modules/vfile-message": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", - "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.3.tgz", + "integrity": "sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==", + "license": "MIT", "dependencies": { "@types/unist": "^3.0.0", "unist-util-stringify-position": "^4.0.0" @@ -14086,9 +17804,10 @@ } }, "node_modules/watchpack": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", - "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.1.tgz", + "integrity": "sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==", + "license": "MIT", "dependencies": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" @@ -14101,6 +17820,7 @@ "version": "1.7.3", "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "license": "MIT", "dependencies": { "minimalistic-assert": "^1.0.0" } @@ -14109,40 +17829,42 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz", "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/webpack": { - "version": "5.89.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.89.0.tgz", - "integrity": "sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==", - "dependencies": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^1.0.0", - "@webassemblyjs/ast": "^1.11.5", - "@webassemblyjs/wasm-edit": "^1.11.5", - "@webassemblyjs/wasm-parser": "^1.11.5", - "acorn": "^8.7.1", - "acorn-import-assertions": "^1.9.0", - "browserslist": "^4.14.5", + "version": "5.106.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.106.2.tgz", + "integrity": "sha512-wGN3qcrBQIFmQ/c0AiOAQBvrZ5lmY8vbbMv4Mxfgzqd/B6+9pXtLo73WuS1dSGXM5QYY3hZnIbvx+K1xxe6FyA==", + "license": "MIT", + "dependencies": { + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.8", + "@types/json-schema": "^7.0.15", + "@webassemblyjs/ast": "^1.14.1", + "@webassemblyjs/wasm-edit": "^1.14.1", + "@webassemblyjs/wasm-parser": "^1.14.1", + "acorn": "^8.16.0", + "acorn-import-phases": "^1.0.3", + "browserslist": "^4.28.1", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.15.0", - "es-module-lexer": "^1.2.1", + "enhanced-resolve": "^5.20.0", + "es-module-lexer": "^2.0.0", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", + "graceful-fs": "^4.2.11", + "loader-runner": "^4.3.1", + "mime-db": "^1.54.0", "neo-async": "^2.6.2", - "schema-utils": "^3.2.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.7", - "watchpack": "^2.4.0", - "webpack-sources": "^3.2.3" + "schema-utils": "^4.3.3", + "tapable": "^2.3.0", + "terser-webpack-plugin": "^5.3.17", + "watchpack": "^2.5.1", + "webpack-sources": "^3.3.4" }, "bin": { "webpack": "bin/webpack.js" @@ -14161,9 +17883,10 @@ } }, "node_modules/webpack-bundle-analyzer": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.1.tgz", - "integrity": "sha512-s3P7pgexgT/HTUSYgxJyn28A+99mmLq4HsJepMPzu0R8ImJc52QNqaFYW1Z2z2uIb1/J3eYgaAWVpaC+v/1aAQ==", + "version": "4.10.2", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.2.tgz", + "integrity": "sha512-vJptkMm9pk5si4Bv922ZbKLV8UTT4zib4FPgXMhgzUny0bfDDkLXAVQs3ly3fS4/TN9ROFtb0NFrm04UXFE/Vw==", + "license": "MIT", "dependencies": { "@discoveryjs/json-ext": "0.5.7", "acorn": "^8.0.4", @@ -14173,7 +17896,6 @@ "escape-string-regexp": "^4.0.0", "gzip-size": "^6.0.0", "html-escaper": "^2.0.2", - "is-plain-object": "^5.0.0", "opener": "^1.5.2", "picocolors": "^1.0.0", "sirv": "^2.0.3", @@ -14190,107 +17912,121 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "license": "MIT", "engines": { "node": ">= 10" } }, "node_modules/webpack-dev-middleware": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", - "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==", + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-7.4.5.tgz", + "integrity": "sha512-uxQ6YqGdE4hgDKNf7hUiPXOdtkXvBJXrfEGYSx7P7LC8hnUYGK70X6xQXUvXeNyBDDcsiQXpG2m3G9vxowaEuA==", + "license": "MIT", "dependencies": { "colorette": "^2.0.10", - "memfs": "^3.4.3", - "mime-types": "^2.1.31", + "memfs": "^4.43.1", + "mime-types": "^3.0.1", + "on-finished": "^2.4.1", "range-parser": "^1.2.1", "schema-utils": "^4.0.0" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 18.12.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + } } }, "node_modules/webpack-dev-middleware/node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/webpack-dev-middleware/node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", + "license": "MIT", "dependencies": { - "mime-db": "1.52.0" + "mime-db": "^1.54.0" }, "engines": { - "node": ">= 0.6" + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/webpack-dev-middleware/node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/webpack-dev-server": { - "version": "4.15.1", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz", - "integrity": "sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA==", - "dependencies": { - "@types/bonjour": "^3.5.9", - "@types/connect-history-api-fallback": "^1.3.5", - "@types/express": "^4.17.13", - "@types/serve-index": "^1.9.1", - "@types/serve-static": "^1.13.10", - "@types/sockjs": "^0.3.33", - "@types/ws": "^8.5.5", + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.2.3.tgz", + "integrity": "sha512-9Gyu2F7+bg4Vv+pjbovuYDhHX+mqdqITykfzdM9UyKqKHlsE5aAjRhR+oOEfXW5vBeu8tarzlJFIZva4ZjAdrQ==", + "license": "MIT", + "dependencies": { + "@types/bonjour": "^3.5.13", + "@types/connect-history-api-fallback": "^1.5.4", + "@types/express": "^4.17.25", + "@types/express-serve-static-core": "^4.17.21", + "@types/serve-index": "^1.9.4", + "@types/serve-static": "^1.15.5", + "@types/sockjs": "^0.3.36", + "@types/ws": "^8.5.10", "ansi-html-community": "^0.0.8", - "bonjour-service": "^1.0.11", - "chokidar": "^3.5.3", + "bonjour-service": "^1.2.1", + "chokidar": "^3.6.0", "colorette": "^2.0.10", - "compression": "^1.7.4", + "compression": "^1.8.1", "connect-history-api-fallback": "^2.0.0", - "default-gateway": "^6.0.3", - "express": "^4.17.3", + "express": "^4.22.1", "graceful-fs": "^4.2.6", - "html-entities": "^2.3.2", - "http-proxy-middleware": "^2.0.3", - "ipaddr.js": "^2.0.1", - "launch-editor": "^2.6.0", - "open": "^8.0.9", - "p-retry": "^4.5.0", - "rimraf": "^3.0.2", - "schema-utils": "^4.0.0", - "selfsigned": "^2.1.1", + "http-proxy-middleware": "^2.0.9", + "ipaddr.js": "^2.1.0", + "launch-editor": "^2.6.1", + "open": "^10.0.3", + "p-retry": "^6.2.0", + "schema-utils": "^4.2.0", + "selfsigned": "^5.5.0", "serve-index": "^1.9.1", "sockjs": "^0.3.24", "spdy": "^4.0.2", - "webpack-dev-middleware": "^5.3.1", - "ws": "^8.13.0" + "webpack-dev-middleware": "^7.4.2", + "ws": "^8.18.0" }, "bin": { "webpack-dev-server": "bin/webpack-dev-server.js" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 18.12.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "webpack": "^4.37.0 || ^5.0.0" + "webpack": "^5.0.0" }, "peerDependenciesMeta": { "webpack": { @@ -14301,10 +18037,41 @@ } } }, + "node_modules/webpack-dev-server/node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/webpack-dev-server/node_modules/open": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/open/-/open-10.2.0.tgz", + "integrity": "sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==", + "license": "MIT", + "dependencies": { + "default-browser": "^5.2.1", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "wsl-utils": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", - "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.20.0.tgz", + "integrity": "sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA==", + "license": "MIT", "engines": { "node": ">=10.0.0" }, @@ -14322,111 +18089,69 @@ } }, "node_modules/webpack-merge": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", - "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-6.0.1.tgz", + "integrity": "sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==", + "license": "MIT", "dependencies": { "clone-deep": "^4.0.1", "flat": "^5.0.2", - "wildcard": "^2.0.0" + "wildcard": "^2.0.1" }, "engines": { - "node": ">=10.0.0" + "node": ">=18.0.0" } }, "node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.4.tgz", + "integrity": "sha512-7tP1PdV4vF+lYPnkMR0jMY5/la2ub5Fc/8VQrrU+lXkiM6C4TjVfGw7iKfyhnTQOsD+6Q/iKw0eFciziRgD58Q==", + "license": "MIT", "engines": { "node": ">=10.13.0" } }, - "node_modules/webpack/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/webpack/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/webpack/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, "node_modules/webpack/node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/webpack/node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", "engines": { "node": ">= 0.6" } }, - "node_modules/webpack/node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, "node_modules/webpackbar": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/webpackbar/-/webpackbar-5.0.2.tgz", - "integrity": "sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webpackbar/-/webpackbar-7.0.0.tgz", + "integrity": "sha512-aS9soqSO2iCHgqHoCrj4LbfGQUboDCYJPSFOAchEK+9psIjNrfSWW4Y0YEz67MKURNvMmfo0ycOg9d/+OOf9/Q==", + "license": "MIT", "dependencies": { - "chalk": "^4.1.0", - "consola": "^2.15.3", + "ansis": "^3.2.0", + "consola": "^3.2.3", "pretty-time": "^1.1.0", - "std-env": "^3.0.1" + "std-env": "^3.7.0" }, "engines": { - "node": ">=12" + "node": ">=14.21.3" }, "peerDependencies": { + "@rspack/core": "*", "webpack": "3 || 4 || 5" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } } }, "node_modules/websocket-driver": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "license": "Apache-2.0", "dependencies": { "http-parser-js": ">=0.5.1", "safe-buffer": ">=5.1.0", @@ -14440,6 +18165,7 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "license": "Apache-2.0", "engines": { "node": ">=0.8.0" } @@ -14448,6 +18174,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -14462,6 +18189,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==", + "license": "MIT", "dependencies": { "string-width": "^5.0.1" }, @@ -14475,12 +18203,14 @@ "node_modules/wildcard": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", - "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==" + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "license": "MIT" }, "node_modules/wrap-ansi": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "license": "MIT", "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -14494,9 +18224,10 @@ } }, "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -14505,9 +18236,10 @@ } }, "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -14516,11 +18248,12 @@ } }, "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", + "license": "MIT", "dependencies": { - "ansi-regex": "^6.0.1" + "ansi-regex": "^6.2.2" }, "engines": { "node": ">=12" @@ -14529,15 +18262,11 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - }, "node_modules/write-file-atomic": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4", "is-typedarray": "^1.0.0", @@ -14549,6 +18278,7 @@ "version": "7.5.10", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "license": "MIT", "engines": { "node": ">=8.3.0" }, @@ -14565,10 +18295,41 @@ } } }, + "node_modules/wsl-utils": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-0.1.0.tgz", + "integrity": "sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==", + "license": "MIT", + "dependencies": { + "is-wsl": "^3.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/wsl-utils/node_modules/is-wsl": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.1.tgz", + "integrity": "sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==", + "license": "MIT", + "dependencies": { + "is-inside-container": "^1.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/xdg-basedir": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-5.1.0.tgz", "integrity": "sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==", + "license": "MIT", "engines": { "node": ">=12" }, @@ -14580,6 +18341,7 @@ "version": "1.6.11", "resolved": "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz", "integrity": "sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==", + "license": "MIT", "dependencies": { "sax": "^1.2.4" }, @@ -14590,20 +18352,14 @@ "node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - }, - "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "engines": { - "node": ">= 6" - } + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "license": "ISC" }, "node_modules/yocto-queue": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", - "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.2.tgz", + "integrity": "sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==", + "license": "MIT", "engines": { "node": ">=12.20" }, @@ -14615,6 +18371,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", + "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" diff --git a/api-docs/package.json b/api-docs/package.json index 82c13afab..5c9483c7e 100644 --- a/api-docs/package.json +++ b/api-docs/package.json @@ -14,8 +14,8 @@ "write-heading-ids": "docusaurus write-heading-ids" }, "dependencies": { - "@docusaurus/core": "3.4.0", - "@docusaurus/preset-classic": "3.4.0", + "@docusaurus/core": "3.10.0", + "@docusaurus/preset-classic": "3.10.0", "@mdx-js/react": "^3.0.1", "clsx": "^1.2.1", "prism-react-renderer": "^2.3.1", @@ -23,8 +23,13 @@ "react-dom": "^18.3.1" }, "devDependencies": { - "@docusaurus/module-type-aliases": "3.4.0", - "@docusaurus/types": "3.4.0" + "@docusaurus/module-type-aliases": "3.10.0", + "@docusaurus/types": "3.10.0" + }, + "overrides": { + "serialize-javascript": "^6.0.2 || ^7.0.3", + "lodash": "^4.17.21", + "webpackbar": "^7.0.0" }, "browserslist": { "production": [ diff --git a/api-docs/src/pages/index.md b/api-docs/src/pages/index.md deleted file mode 100644 index ed88adf59..000000000 --- a/api-docs/src/pages/index.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -sidebar_position: 1 ---- - -# JavaScript Trackers -The Snowplow JavaScript Trackers support being used in a number of environments. There are three versions of the tracker. - -## Web tracking -We have two flavours of web tracker: JavaScript and Browser. - -- JavaScript Tracker (v2 and v3) for loading via tags, by adding code snippets to your website or Tag Manager solution. -- Browser Tracker (v3) for installation into web apps via npm. Popular when natively integrating tracking into React, Angular and Vue applications. - -## Server-side tracking -Track events in server-side Node.js environments using the Node.js Tracker (v3). Used via npm. - - diff --git a/api-docs/src/pages/index.tsx b/api-docs/src/pages/index.tsx new file mode 100644 index 000000000..8925295d8 --- /dev/null +++ b/api-docs/src/pages/index.tsx @@ -0,0 +1,6 @@ +import React from 'react'; +import { Redirect } from '@docusaurus/router'; + +export default function HomeRedirect() { + return ; +} diff --git a/common/autoinstallers/rush-prettier/pnpm-lock.yaml b/common/autoinstallers/rush-prettier/pnpm-lock.yaml index d0e063911..430c80350 100644 --- a/common/autoinstallers/rush-prettier/pnpm-lock.yaml +++ b/common/autoinstallers/rush-prettier/pnpm-lock.yaml @@ -1,296 +1,263 @@ -lockfileVersion: 5.3 +lockfileVersion: '9.0' -specifiers: - prettier: ^2.5.1 - pretty-quick: ^3.1.3 +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false -dependencies: - prettier: 2.5.1 - pretty-quick: 3.1.3_prettier@2.5.1 +importers: + + .: + dependencies: + prettier: + specifier: ^2.5.1 + version: 2.8.8 + pretty-quick: + specifier: ^3.1.3 + version: 3.3.1(prettier@2.8.8) packages: - /@types/minimatch/3.0.5: - resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} - dev: false + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + + end-of-stream@1.4.5: + resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} - /ansi-styles/4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + execa@4.1.0: + resolution: {integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==} + engines: {node: '>=10'} + + find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} engines: {node: '>=8'} - dependencies: - color-convert: 2.0.1 - dev: false - /array-differ/3.0.0: - resolution: {integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==} + get-stream@5.2.0: + resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} engines: {node: '>=8'} - dev: false - /array-union/2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + human-signals@1.1.1: + resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==} + engines: {node: '>=8.12.0'} + + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + + is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} - dev: false - /arrify/2.0.1: - resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==} + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} - dev: false - /balanced-match/1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - dev: false + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - /brace-expansion/1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - dev: false + mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + + mri@1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} - /chalk/3.0.0: - resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} + npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - dev: false - /color-convert/2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - dependencies: - color-name: 1.1.4 - dev: false + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + + p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@3.0.2: + resolution: {integrity: sha512-cfDHL6LStTEKlNilboNtobT/kEa30PtAf2Q1OgszfrG/rpVl1xaFWT9ktfkS306GmHgmnad1Sw4wabhlvFtsTw==} + engines: {node: '>=10'} + + prettier@2.8.8: + resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} + engines: {node: '>=10.13.0'} + hasBin: true + + pretty-quick@3.3.1: + resolution: {integrity: sha512-3b36UXfYQ+IXXqex6mCca89jC8u0mYLqFAN5eTQKoXO6oCQYcIVYZEB/5AlBHI7JPYygReM2Vv6Vom/Gln7fBg==} + engines: {node: '>=10.13'} + hasBin: true + peerDependencies: + prettier: ^2.0.0 - /color-name/1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - dev: false + pump@3.0.4: + resolution: {integrity: sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==} - /concat-map/0.0.1: - resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} - dev: false + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - /cross-spawn/7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} + hasBin: true + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + +snapshots: + + cross-spawn@7.0.6: dependencies: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 - dev: false - /end-of-stream/1.4.4: - resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + end-of-stream@1.4.5: dependencies: once: 1.4.0 - dev: false - /execa/4.1.0: - resolution: {integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==} - engines: {node: '>=10'} + execa@4.1.0: dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.6 get-stream: 5.2.0 human-signals: 1.1.1 is-stream: 2.0.1 merge-stream: 2.0.0 npm-run-path: 4.0.1 onetime: 5.1.2 - signal-exit: 3.0.6 + signal-exit: 3.0.7 strip-final-newline: 2.0.0 - dev: false - /find-up/4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} + find-up@4.1.0: dependencies: locate-path: 5.0.0 path-exists: 4.0.0 - dev: false - /get-stream/5.2.0: - resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} - engines: {node: '>=8'} + get-stream@5.2.0: dependencies: - pump: 3.0.0 - dev: false - - /has-flag/4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - dev: false + pump: 3.0.4 - /human-signals/1.1.1: - resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==} - engines: {node: '>=8.12.0'} - dev: false + human-signals@1.1.1: {} - /ignore/5.2.0: - resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==} - engines: {node: '>= 4'} - dev: false + ignore@5.3.2: {} - /is-stream/2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} - dev: false + is-stream@2.0.1: {} - /isexe/2.0.0: - resolution: {integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=} - dev: false + isexe@2.0.0: {} - /locate-path/5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} + locate-path@5.0.0: dependencies: p-locate: 4.1.0 - dev: false - - /merge-stream/2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - dev: false - /mimic-fn/2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - dev: false + merge-stream@2.0.0: {} - /minimatch/3.0.4: - resolution: {integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==} - dependencies: - brace-expansion: 1.1.11 - dev: false + mimic-fn@2.1.0: {} - /mri/1.2.0: - resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} - engines: {node: '>=4'} - dev: false + mri@1.2.0: {} - /multimatch/4.0.0: - resolution: {integrity: sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ==} - engines: {node: '>=8'} - dependencies: - '@types/minimatch': 3.0.5 - array-differ: 3.0.0 - array-union: 2.1.0 - arrify: 2.0.1 - minimatch: 3.0.4 - dev: false - - /npm-run-path/4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} + npm-run-path@4.0.1: dependencies: path-key: 3.1.1 - dev: false - /once/1.4.0: - resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=} + once@1.4.0: dependencies: wrappy: 1.0.2 - dev: false - /onetime/5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} + onetime@5.1.2: dependencies: mimic-fn: 2.1.0 - dev: false - /p-limit/2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} + p-limit@2.3.0: dependencies: p-try: 2.2.0 - dev: false - /p-locate/4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} + p-locate@4.1.0: dependencies: p-limit: 2.3.0 - dev: false - /p-try/2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} - dev: false + p-try@2.2.0: {} - /path-exists/4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - dev: false + path-exists@4.0.0: {} - /path-key/3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - dev: false + path-key@3.1.1: {} - /prettier/2.5.1: - resolution: {integrity: sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==} - engines: {node: '>=10.13.0'} - hasBin: true - dev: false + picocolors@1.1.1: {} - /pretty-quick/3.1.3_prettier@2.5.1: - resolution: {integrity: sha512-kOCi2FJabvuh1as9enxYmrnBC6tVMoVOenMaBqRfsvBHB0cbpYHjdQEpSglpASDFEXVwplpcGR4CLEaisYAFcA==} - engines: {node: '>=10.13'} - hasBin: true - peerDependencies: - prettier: '>=2.0.0' + picomatch@3.0.2: {} + + prettier@2.8.8: {} + + pretty-quick@3.3.1(prettier@2.8.8): dependencies: - chalk: 3.0.0 execa: 4.1.0 find-up: 4.1.0 - ignore: 5.2.0 + ignore: 5.3.2 mri: 1.2.0 - multimatch: 4.0.0 - prettier: 2.5.1 - dev: false + picocolors: 1.1.1 + picomatch: 3.0.2 + prettier: 2.8.8 + tslib: 2.8.1 - /pump/3.0.0: - resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} + pump@3.0.4: dependencies: - end-of-stream: 1.4.4 + end-of-stream: 1.4.5 once: 1.4.0 - dev: false - /shebang-command/2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} + shebang-command@2.0.0: dependencies: shebang-regex: 3.0.0 - dev: false - /shebang-regex/3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - dev: false + shebang-regex@3.0.0: {} - /signal-exit/3.0.6: - resolution: {integrity: sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==} - dev: false + signal-exit@3.0.7: {} - /strip-final-newline/2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} - dev: false + strip-final-newline@2.0.0: {} - /supports-color/7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} - dependencies: - has-flag: 4.0.0 - dev: false + tslib@2.8.1: {} - /which/2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true + which@2.0.2: dependencies: isexe: 2.0.0 - dev: false - /wrappy/1.0.2: - resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=} - dev: false + wrappy@1.0.2: {} diff --git a/common/config/rush/browser-approved-packages.json b/common/config/rush/browser-approved-packages.json index a349ee083..3b15c2084 100644 --- a/common/config/rush/browser-approved-packages.json +++ b/common/config/rush/browser-approved-packages.json @@ -6,6 +6,10 @@ "name": "@ampproject/rollup-plugin-closure-compiler", "allowedCategories": [ "libraries", "plugins", "trackers" ] }, + { + "name": "@fingerprintjs/botd", + "allowedCategories": [ "plugins" ] + }, { "name": "@react-native-async-storage/async-storage", "allowedCategories": [ "trackers" ] @@ -42,6 +46,10 @@ "name": "@snowplow/browser-plugin-ad-tracking", "allowedCategories": [ "trackers" ] }, + { + "name": "@snowplow/browser-plugin-bot-detection", + "allowedCategories": [ "trackers" ] + }, { "name": "@snowplow/browser-plugin-browser-features", "allowedCategories": [ "trackers" ] @@ -62,6 +70,10 @@ "name": "@snowplow/browser-plugin-ecommerce", "allowedCategories": [ "trackers" ] }, + { + "name": "@snowplow/browser-plugin-element-tracking", + "allowedCategories": [ "trackers" ] + }, { "name": "@snowplow/browser-plugin-enhanced-consent", "allowedCategories": [ "trackers" ] @@ -150,6 +162,10 @@ "name": "@snowplow/browser-plugin-web-vitals", "allowedCategories": [ "trackers" ] }, + { + "name": "@snowplow/browser-plugin-webview", + "allowedCategories": [ "trackers" ] + }, { "name": "@snowplow/browser-plugin-youtube-tracking", "allowedCategories": [ "trackers" ] @@ -210,10 +226,6 @@ "name": "@types/react", "allowedCategories": [ "trackers" ] }, - { - "name": "@types/sha1", - "allowedCategories": [ "libraries" ] - }, { "name": "@types/sinon", "allowedCategories": [ "trackers" ] @@ -418,10 +430,6 @@ "name": "saucelabs", "allowedCategories": [ "trackers" ] }, - { - "name": "sha1", - "allowedCategories": [ "libraries" ] - }, { "name": "sinon", "allowedCategories": [ "trackers" ] diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml index 3fb2b15ca..81b895e74 100644 --- a/common/config/rush/pnpm-lock.yaml +++ b/common/config/rush/pnpm-lock.yaml @@ -15,19 +15,13 @@ importers: '@snowplow/tracker-core': specifier: workspace:* version: link:../tracker-core - sha1: - specifier: ^1.1.1 - version: 1.1.1 tslib: specifier: ^2.3.1 version: 2.8.1 uuid: - specifier: ^10.0.0 - version: 10.0.0 + specifier: ^11.1.1 + version: 11.1.1 devDependencies: - '@ampproject/rollup-plugin-closure-compiler': - specifier: ~0.27.0 - version: 0.27.0(rollup@2.70.2) '@rollup/plugin-commonjs': specifier: ~21.0.2 version: 21.0.3(rollup@2.70.2) @@ -43,12 +37,6 @@ importers: '@types/jsdom': specifier: ~16.2.14 version: 16.2.15 - '@types/sha1': - specifier: ~1.1.3 - version: 1.1.5 - '@types/uuid': - specifier: ^10.0.0 - version: 10.0.0 '@typescript-eslint/eslint-plugin': specifier: ~5.15.0 version: 5.15.0(@typescript-eslint/parser@5.15.0(eslint@8.11.0)(typescript@4.6.4))(eslint@8.11.0)(typescript@4.6.4) @@ -84,10 +72,10 @@ importers: version: 7.0.2(rollup@2.70.2) rollup-plugin-ts: specifier: ~2.0.5 - version: 2.0.7(@babel/core@7.26.0)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.26.0))(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) + version: 2.0.7(@babel/core@7.29.7)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.29.7))(@babel/preset-env@7.29.7(@babel/core@7.29.7))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) ts-jest: specifier: ~28.0.8 - version: 28.0.8(@babel/core@7.26.0)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.26.0))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) + version: 28.0.8(@babel/core@7.29.7)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.29.7))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) typescript: specifier: ~4.6.2 version: 4.6.4 @@ -101,12 +89,9 @@ importers: specifier: ^2.3.1 version: 2.8.1 uuid: - specifier: ^10.0.0 - version: 10.0.0 + specifier: ^11.1.1 + version: 11.1.1 devDependencies: - '@ampproject/rollup-plugin-closure-compiler': - specifier: ~0.27.0 - version: 0.27.0(rollup@2.70.2) '@rollup/plugin-commonjs': specifier: ~21.0.2 version: 21.0.3(rollup@2.70.2) @@ -119,9 +104,6 @@ importers: '@types/node': specifier: ~14.6.0 version: 14.6.4 - '@types/uuid': - specifier: ^10.0.0 - version: 10.0.0 '@typescript-eslint/eslint-plugin': specifier: ~5.15.0 version: 5.15.0(@typescript-eslint/parser@5.15.0(eslint@8.11.0)(typescript@4.6.4))(eslint@8.11.0)(typescript@4.6.4) @@ -151,7 +133,7 @@ importers: version: 7.0.2(rollup@2.70.2) rollup-plugin-ts: specifier: ~2.0.5 - version: 2.0.7(@babel/core@7.26.0)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.26.0))(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) + version: 2.0.7(@babel/core@7.29.7)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.29.7))(@babel/preset-env@7.29.7(@babel/core@7.29.7))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) ts-node: specifier: ~10.9.1 version: 10.9.2(@types/node@14.6.4)(typescript@4.6.4) @@ -171,9 +153,6 @@ importers: specifier: ^2.3.1 version: 2.8.1 devDependencies: - '@ampproject/rollup-plugin-closure-compiler': - specifier: ~0.27.0 - version: 0.27.0(rollup@2.70.2) '@rollup/plugin-commonjs': specifier: ~21.0.2 version: 21.0.3(rollup@2.70.2) @@ -227,10 +206,80 @@ importers: version: 7.0.2(rollup@2.70.2) rollup-plugin-ts: specifier: ~2.0.5 - version: 2.0.7(@babel/core@7.26.0)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.26.0))(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) + version: 2.0.7(@babel/core@7.29.7)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.29.7))(@babel/preset-env@7.29.7(@babel/core@7.29.7))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) ts-jest: specifier: ~28.0.8 - version: 28.0.8(@babel/core@7.26.0)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.26.0))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) + version: 28.0.8(@babel/core@7.29.7)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.29.7))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) + typescript: + specifier: ~4.6.2 + version: 4.6.4 + + ../../plugins/browser-plugin-bot-detection: + dependencies: + '@fingerprintjs/botd': + specifier: 2.0.0 + version: 2.0.0 + '@snowplow/browser-tracker-core': + specifier: workspace:* + version: link:../../libraries/browser-tracker-core + '@snowplow/tracker-core': + specifier: workspace:* + version: link:../../libraries/tracker-core + tslib: + specifier: ^2.3.1 + version: 2.8.1 + devDependencies: + '@rollup/plugin-commonjs': + specifier: ~21.0.2 + version: 21.0.3(rollup@2.70.2) + '@rollup/plugin-node-resolve': + specifier: ~13.1.3 + version: 13.1.3(rollup@2.70.2) + '@types/jest': + specifier: ~28.1.1 + version: 28.1.8 + '@types/jsdom': + specifier: ~16.2.14 + version: 16.2.15 + '@typescript-eslint/eslint-plugin': + specifier: ~5.15.0 + version: 5.15.0(@typescript-eslint/parser@5.15.0(eslint@8.11.0)(typescript@4.6.4))(eslint@8.11.0)(typescript@4.6.4) + '@typescript-eslint/parser': + specifier: ~5.15.0 + version: 5.15.0(eslint@8.11.0)(typescript@4.6.4) + eslint: + specifier: ~8.11.0 + version: 8.11.0 + jest: + specifier: ~28.1.3 + version: 28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)) + jest-environment-jsdom: + specifier: ~28.1.3 + version: 28.1.3 + jest-environment-jsdom-global: + specifier: ~4.0.0 + version: 4.0.0(jest-environment-jsdom@28.1.3) + jest-standard-reporter: + specifier: ~2.0.0 + version: 2.0.0 + rollup: + specifier: ~2.70.1 + version: 2.70.2 + rollup-plugin-cleanup: + specifier: ~3.2.1 + version: 3.2.1(rollup@2.70.2) + rollup-plugin-license: + specifier: ~2.6.1 + version: 2.6.1(rollup@2.70.2) + rollup-plugin-terser: + specifier: ~7.0.2 + version: 7.0.2(rollup@2.70.2) + rollup-plugin-ts: + specifier: ~2.0.5 + version: 2.0.7(@babel/core@7.29.7)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.29.7))(@babel/preset-env@7.29.7(@babel/core@7.29.7))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) + ts-jest: + specifier: ~28.0.8 + version: 28.0.8(@babel/core@7.29.7)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.29.7))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) typescript: specifier: ~4.6.2 version: 4.6.4 @@ -247,9 +296,6 @@ importers: specifier: ^2.3.1 version: 2.8.1 devDependencies: - '@ampproject/rollup-plugin-closure-compiler': - specifier: ~0.27.0 - version: 0.27.0(rollup@2.70.2) '@rollup/plugin-commonjs': specifier: ~21.0.2 version: 21.0.3(rollup@2.70.2) @@ -303,10 +349,10 @@ importers: version: 7.0.2(rollup@2.70.2) rollup-plugin-ts: specifier: ~2.0.5 - version: 2.0.7(@babel/core@7.26.0)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.26.0))(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) + version: 2.0.7(@babel/core@7.29.7)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.29.7))(@babel/preset-env@7.29.7(@babel/core@7.29.7))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) ts-jest: specifier: ~28.0.8 - version: 28.0.8(@babel/core@7.26.0)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.26.0))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) + version: 28.0.8(@babel/core@7.29.7)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.29.7))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) typescript: specifier: ~4.6.2 version: 4.6.4 @@ -320,9 +366,6 @@ importers: specifier: ^2.3.1 version: 2.8.1 devDependencies: - '@ampproject/rollup-plugin-closure-compiler': - specifier: ~0.27.0 - version: 0.27.0(rollup@2.70.2) '@rollup/plugin-commonjs': specifier: ~21.0.2 version: 21.0.3(rollup@2.70.2) @@ -373,10 +416,10 @@ importers: version: 7.0.2(rollup@2.70.2) rollup-plugin-ts: specifier: ~2.0.5 - version: 2.0.7(@babel/core@7.26.0)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.26.0))(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) + version: 2.0.7(@babel/core@7.29.7)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.29.7))(@babel/preset-env@7.29.7(@babel/core@7.29.7))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) ts-jest: specifier: ~28.0.8 - version: 28.0.8(@babel/core@7.26.0)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.26.0))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) + version: 28.0.8(@babel/core@7.29.7)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.29.7))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) typescript: specifier: ~4.6.2 version: 4.6.4 @@ -396,9 +439,6 @@ importers: specifier: ^2.3.1 version: 2.8.1 devDependencies: - '@ampproject/rollup-plugin-closure-compiler': - specifier: ~0.27.0 - version: 0.27.0(rollup@2.70.2) '@rollup/plugin-commonjs': specifier: ~21.0.2 version: 21.0.3(rollup@2.70.2) @@ -449,10 +489,77 @@ importers: version: 7.0.2(rollup@2.70.2) rollup-plugin-ts: specifier: ~2.0.5 - version: 2.0.7(@babel/core@7.26.0)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.26.0))(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) + version: 2.0.7(@babel/core@7.29.7)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.29.7))(@babel/preset-env@7.29.7(@babel/core@7.29.7))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) + ts-jest: + specifier: ~28.0.8 + version: 28.0.8(@babel/core@7.29.7)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.29.7))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) + typescript: + specifier: ~4.6.2 + version: 4.6.4 + + ../../plugins/browser-plugin-element-tracking: + dependencies: + '@snowplow/browser-tracker-core': + specifier: workspace:* + version: link:../../libraries/browser-tracker-core + '@snowplow/tracker-core': + specifier: workspace:* + version: link:../../libraries/tracker-core + tslib: + specifier: ^2.3.1 + version: 2.8.1 + devDependencies: + '@rollup/plugin-commonjs': + specifier: ~21.0.2 + version: 21.0.3(rollup@2.70.2) + '@rollup/plugin-node-resolve': + specifier: ~13.1.3 + version: 13.1.3(rollup@2.70.2) + '@types/jest': + specifier: ~28.1.1 + version: 28.1.8 + '@types/jsdom': + specifier: ~16.2.14 + version: 16.2.15 + '@typescript-eslint/eslint-plugin': + specifier: ~5.15.0 + version: 5.15.0(@typescript-eslint/parser@5.15.0(eslint@8.11.0)(typescript@4.6.4))(eslint@8.11.0)(typescript@4.6.4) + '@typescript-eslint/parser': + specifier: ~5.15.0 + version: 5.15.0(eslint@8.11.0)(typescript@4.6.4) + eslint: + specifier: ~8.11.0 + version: 8.11.0 + jest: + specifier: ~28.1.3 + version: 28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)) + jest-environment-jsdom: + specifier: ~28.1.3 + version: 28.1.3 + jest-environment-jsdom-global: + specifier: ~4.0.0 + version: 4.0.0(jest-environment-jsdom@28.1.3) + jest-standard-reporter: + specifier: ~2.0.0 + version: 2.0.0 + rollup: + specifier: ~2.70.1 + version: 2.70.2 + rollup-plugin-cleanup: + specifier: ~3.2.1 + version: 3.2.1(rollup@2.70.2) + rollup-plugin-license: + specifier: ~2.6.1 + version: 2.6.1(rollup@2.70.2) + rollup-plugin-terser: + specifier: ~7.0.2 + version: 7.0.2(rollup@2.70.2) + rollup-plugin-ts: + specifier: ~2.0.5 + version: 2.0.7(@babel/core@7.29.7)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.29.7))(@babel/preset-env@7.29.7(@babel/core@7.29.7))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) ts-jest: specifier: ~28.0.8 - version: 28.0.8(@babel/core@7.26.0)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.26.0))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) + version: 28.0.8(@babel/core@7.29.7)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.29.7))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) typescript: specifier: ~4.6.2 version: 4.6.4 @@ -469,9 +576,6 @@ importers: specifier: ^2.3.1 version: 2.8.1 devDependencies: - '@ampproject/rollup-plugin-closure-compiler': - specifier: ~0.27.0 - version: 0.27.0(rollup@2.70.2) '@rollup/plugin-commonjs': specifier: ~21.0.2 version: 21.0.3(rollup@2.70.2) @@ -525,10 +629,10 @@ importers: version: 7.0.2(rollup@2.70.2) rollup-plugin-ts: specifier: ~2.0.5 - version: 2.0.7(@babel/core@7.26.0)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.26.0))(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) + version: 2.0.7(@babel/core@7.29.7)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.29.7))(@babel/preset-env@7.29.7(@babel/core@7.29.7))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) ts-jest: specifier: ~28.0.8 - version: 28.0.8(@babel/core@7.26.0)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.26.0))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) + version: 28.0.8(@babel/core@7.29.7)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.29.7))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) typescript: specifier: ~4.6.2 version: 4.6.4 @@ -545,9 +649,6 @@ importers: specifier: ^2.3.1 version: 2.8.1 devDependencies: - '@ampproject/rollup-plugin-closure-compiler': - specifier: ~0.27.0 - version: 0.27.0(rollup@2.70.2) '@rollup/plugin-commonjs': specifier: ~21.0.2 version: 21.0.3(rollup@2.70.2) @@ -601,10 +702,10 @@ importers: version: 7.0.2(rollup@2.70.2) rollup-plugin-ts: specifier: ~2.0.5 - version: 2.0.7(@babel/core@7.26.0)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.26.0))(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) + version: 2.0.7(@babel/core@7.29.7)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.29.7))(@babel/preset-env@7.29.7(@babel/core@7.29.7))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) ts-jest: specifier: ~28.0.8 - version: 28.0.8(@babel/core@7.26.0)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.26.0))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) + version: 28.0.8(@babel/core@7.29.7)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.29.7))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) typescript: specifier: ~4.6.2 version: 4.6.4 @@ -621,9 +722,6 @@ importers: specifier: ^2.3.1 version: 2.8.1 devDependencies: - '@ampproject/rollup-plugin-closure-compiler': - specifier: ~0.27.0 - version: 0.27.0(rollup@2.70.2) '@rollup/plugin-commonjs': specifier: ~21.0.2 version: 21.0.3(rollup@2.70.2) @@ -677,10 +775,10 @@ importers: version: 7.0.2(rollup@2.70.2) rollup-plugin-ts: specifier: ~2.0.5 - version: 2.0.7(@babel/core@7.26.0)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.26.0))(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) + version: 2.0.7(@babel/core@7.29.7)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.29.7))(@babel/preset-env@7.29.7(@babel/core@7.29.7))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) ts-jest: specifier: ~28.0.8 - version: 28.0.8(@babel/core@7.26.0)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.26.0))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) + version: 28.0.8(@babel/core@7.29.7)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.29.7))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) typescript: specifier: ~4.6.2 version: 4.6.4 @@ -697,9 +795,6 @@ importers: specifier: ^2.3.1 version: 2.8.1 devDependencies: - '@ampproject/rollup-plugin-closure-compiler': - specifier: ~0.27.0 - version: 0.27.0(rollup@2.70.2) '@rollup/plugin-commonjs': specifier: ~21.0.2 version: 21.0.3(rollup@2.70.2) @@ -747,10 +842,10 @@ importers: version: 7.0.2(rollup@2.70.2) rollup-plugin-ts: specifier: ~2.0.5 - version: 2.0.7(@babel/core@7.26.0)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.26.0))(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) + version: 2.0.7(@babel/core@7.29.7)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.29.7))(@babel/preset-env@7.29.7(@babel/core@7.29.7))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) ts-jest: specifier: ~28.0.8 - version: 28.0.8(@babel/core@7.26.0)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.26.0))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) + version: 28.0.8(@babel/core@7.29.7)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.29.7))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) typescript: specifier: ~4.6.2 version: 4.6.4 @@ -767,9 +862,6 @@ importers: specifier: ^2.3.1 version: 2.8.1 devDependencies: - '@ampproject/rollup-plugin-closure-compiler': - specifier: ~0.27.0 - version: 0.27.0(rollup@2.70.2) '@rollup/plugin-commonjs': specifier: ~21.0.2 version: 21.0.3(rollup@2.70.2) @@ -817,10 +909,10 @@ importers: version: 7.0.2(rollup@2.70.2) rollup-plugin-ts: specifier: ~2.0.5 - version: 2.0.7(@babel/core@7.26.0)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.26.0))(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) + version: 2.0.7(@babel/core@7.29.7)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.29.7))(@babel/preset-env@7.29.7(@babel/core@7.29.7))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) ts-jest: specifier: ~28.0.8 - version: 28.0.8(@babel/core@7.26.0)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.26.0))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) + version: 28.0.8(@babel/core@7.29.7)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.29.7))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) typescript: specifier: ~4.6.2 version: 4.6.4 @@ -837,9 +929,6 @@ importers: specifier: ^2.3.1 version: 2.8.1 devDependencies: - '@ampproject/rollup-plugin-closure-compiler': - specifier: ~0.27.0 - version: 0.27.0(rollup@2.70.2) '@rollup/plugin-commonjs': specifier: ~21.0.2 version: 21.0.3(rollup@2.70.2) @@ -887,10 +976,10 @@ importers: version: 7.0.2(rollup@2.70.2) rollup-plugin-ts: specifier: ~2.0.5 - version: 2.0.7(@babel/core@7.26.0)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.26.0))(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) + version: 2.0.7(@babel/core@7.29.7)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.29.7))(@babel/preset-env@7.29.7(@babel/core@7.29.7))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) ts-jest: specifier: ~28.0.8 - version: 28.0.8(@babel/core@7.26.0)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.26.0))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) + version: 28.0.8(@babel/core@7.29.7)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.29.7))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) typescript: specifier: ~4.6.2 version: 4.6.4 @@ -907,9 +996,6 @@ importers: specifier: ^2.3.1 version: 2.8.1 devDependencies: - '@ampproject/rollup-plugin-closure-compiler': - specifier: ~0.27.0 - version: 0.27.0(rollup@2.70.2) '@rollup/plugin-commonjs': specifier: ~21.0.2 version: 21.0.3(rollup@2.70.2) @@ -957,10 +1043,10 @@ importers: version: 7.0.2(rollup@2.70.2) rollup-plugin-ts: specifier: ~2.0.5 - version: 2.0.7(@babel/core@7.26.0)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.26.0))(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) + version: 2.0.7(@babel/core@7.29.7)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.29.7))(@babel/preset-env@7.29.7(@babel/core@7.29.7))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) ts-jest: specifier: ~28.0.8 - version: 28.0.8(@babel/core@7.26.0)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.26.0))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) + version: 28.0.8(@babel/core@7.29.7)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.29.7))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) typescript: specifier: ~4.6.2 version: 4.6.4 @@ -977,9 +1063,6 @@ importers: specifier: ^2.3.1 version: 2.8.1 devDependencies: - '@ampproject/rollup-plugin-closure-compiler': - specifier: ~0.27.0 - version: 0.27.0(rollup@2.70.2) '@rollup/plugin-commonjs': specifier: ~21.0.2 version: 21.0.3(rollup@2.70.2) @@ -1027,10 +1110,10 @@ importers: version: 7.0.2(rollup@2.70.2) rollup-plugin-ts: specifier: ~2.0.5 - version: 2.0.7(@babel/core@7.26.0)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.26.0))(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) + version: 2.0.7(@babel/core@7.29.7)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.29.7))(@babel/preset-env@7.29.7(@babel/core@7.29.7))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) ts-jest: specifier: ~28.0.8 - version: 28.0.8(@babel/core@7.26.0)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.26.0))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) + version: 28.0.8(@babel/core@7.29.7)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.29.7))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) typescript: specifier: ~4.6.2 version: 4.6.4 @@ -1047,9 +1130,6 @@ importers: specifier: ^2.3.1 version: 2.8.1 devDependencies: - '@ampproject/rollup-plugin-closure-compiler': - specifier: ~0.27.0 - version: 0.27.0(rollup@2.70.2) '@rollup/plugin-commonjs': specifier: ~21.0.2 version: 21.0.3(rollup@2.70.2) @@ -1103,10 +1183,10 @@ importers: version: 7.0.2(rollup@2.70.2) rollup-plugin-ts: specifier: ~2.0.5 - version: 2.0.7(@babel/core@7.26.0)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.26.0))(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) + version: 2.0.7(@babel/core@7.29.7)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.29.7))(@babel/preset-env@7.29.7(@babel/core@7.29.7))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) ts-jest: specifier: ~28.0.8 - version: 28.0.8(@babel/core@7.26.0)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.26.0))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) + version: 28.0.8(@babel/core@7.29.7)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.29.7))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) typescript: specifier: ~4.6.2 version: 4.6.4 @@ -1123,12 +1203,9 @@ importers: specifier: ^2.3.1 version: 2.8.1 uuid: - specifier: ^10.0.0 - version: 10.0.0 + specifier: ^11.1.1 + version: 11.1.1 devDependencies: - '@ampproject/rollup-plugin-closure-compiler': - specifier: ~0.27.0 - version: 0.27.0(rollup@2.70.2) '@rollup/plugin-commonjs': specifier: ~21.0.2 version: 21.0.3(rollup@2.70.2) @@ -1141,9 +1218,6 @@ importers: '@types/jsdom': specifier: ~16.2.14 version: 16.2.15 - '@types/uuid': - specifier: ^10.0.0 - version: 10.0.0 '@typescript-eslint/eslint-plugin': specifier: ~5.15.0 version: 5.15.0(@typescript-eslint/parser@5.15.0(eslint@8.11.0)(typescript@4.6.4))(eslint@8.11.0)(typescript@4.6.4) @@ -1179,10 +1253,10 @@ importers: version: 7.0.2(rollup@2.70.2) rollup-plugin-ts: specifier: ~2.0.5 - version: 2.0.7(@babel/core@7.26.0)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.26.0))(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) + version: 2.0.7(@babel/core@7.29.7)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.29.7))(@babel/preset-env@7.29.7(@babel/core@7.29.7))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) ts-jest: specifier: ~28.0.8 - version: 28.0.8(@babel/core@7.26.0)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.26.0))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) + version: 28.0.8(@babel/core@7.29.7)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.29.7))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) typescript: specifier: ~4.6.2 version: 4.6.4 @@ -1202,12 +1276,9 @@ importers: specifier: ^2.3.1 version: 2.8.1 uuid: - specifier: ^10.0.0 - version: 10.0.0 + specifier: ^11.1.1 + version: 11.1.1 devDependencies: - '@ampproject/rollup-plugin-closure-compiler': - specifier: ~0.27.0 - version: 0.27.0(rollup@2.70.2) '@rollup/plugin-commonjs': specifier: ~21.0.2 version: 21.0.3(rollup@2.70.2) @@ -1220,9 +1291,6 @@ importers: '@types/jsdom': specifier: ~16.2.14 version: 16.2.15 - '@types/uuid': - specifier: ^10.0.0 - version: 10.0.0 '@typescript-eslint/eslint-plugin': specifier: ~5.15.0 version: 5.15.0(@typescript-eslint/parser@5.15.0(eslint@8.11.0)(typescript@4.6.4))(eslint@8.11.0)(typescript@4.6.4) @@ -1258,10 +1326,10 @@ importers: version: 7.0.2(rollup@2.70.2) rollup-plugin-ts: specifier: ~2.0.5 - version: 2.0.7(@babel/core@7.26.0)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.26.0))(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) + version: 2.0.7(@babel/core@7.29.7)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.29.7))(@babel/preset-env@7.29.7(@babel/core@7.29.7))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) ts-jest: specifier: ~28.0.8 - version: 28.0.8(@babel/core@7.26.0)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.26.0))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) + version: 28.0.8(@babel/core@7.29.7)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.29.7))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) typescript: specifier: ~4.6.2 version: 4.6.4 @@ -1278,9 +1346,6 @@ importers: specifier: ^2.3.1 version: 2.8.1 devDependencies: - '@ampproject/rollup-plugin-closure-compiler': - specifier: ~0.27.0 - version: 0.27.0(rollup@2.70.2) '@rollup/plugin-commonjs': specifier: ~21.0.2 version: 21.0.3(rollup@2.70.2) @@ -1328,10 +1393,10 @@ importers: version: 7.0.2(rollup@2.70.2) rollup-plugin-ts: specifier: ~2.0.5 - version: 2.0.7(@babel/core@7.26.0)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.26.0))(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) + version: 2.0.7(@babel/core@7.29.7)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.29.7))(@babel/preset-env@7.29.7(@babel/core@7.29.7))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) ts-jest: specifier: ~28.0.8 - version: 28.0.8(@babel/core@7.26.0)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.26.0))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) + version: 28.0.8(@babel/core@7.29.7)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.29.7))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) typescript: specifier: ~4.6.2 version: 4.6.4 @@ -1348,9 +1413,6 @@ importers: specifier: ^2.3.1 version: 2.8.1 devDependencies: - '@ampproject/rollup-plugin-closure-compiler': - specifier: ~0.27.0 - version: 0.27.0(rollup@2.70.2) '@rollup/plugin-commonjs': specifier: ~21.0.2 version: 21.0.3(rollup@2.70.2) @@ -1398,10 +1460,10 @@ importers: version: 7.0.2(rollup@2.70.2) rollup-plugin-ts: specifier: ~2.0.5 - version: 2.0.7(@babel/core@7.26.0)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.26.0))(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) + version: 2.0.7(@babel/core@7.29.7)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.29.7))(@babel/preset-env@7.29.7(@babel/core@7.29.7))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) ts-jest: specifier: ~28.0.8 - version: 28.0.8(@babel/core@7.26.0)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.26.0))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) + version: 28.0.8(@babel/core@7.29.7)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.29.7))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) typescript: specifier: ~4.6.2 version: 4.6.4 @@ -1418,9 +1480,6 @@ importers: specifier: ^2.3.1 version: 2.8.1 devDependencies: - '@ampproject/rollup-plugin-closure-compiler': - specifier: ~0.27.0 - version: 0.27.0(rollup@2.70.2) '@rollup/plugin-commonjs': specifier: ~21.0.2 version: 21.0.3(rollup@2.70.2) @@ -1468,10 +1527,10 @@ importers: version: 7.0.2(rollup@2.70.2) rollup-plugin-ts: specifier: ~2.0.5 - version: 2.0.7(@babel/core@7.26.0)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.26.0))(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) + version: 2.0.7(@babel/core@7.29.7)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.29.7))(@babel/preset-env@7.29.7(@babel/core@7.29.7))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) ts-jest: specifier: ~28.0.8 - version: 28.0.8(@babel/core@7.26.0)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.26.0))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) + version: 28.0.8(@babel/core@7.29.7)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.29.7))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) typescript: specifier: ~4.6.2 version: 4.6.4 @@ -1488,9 +1547,6 @@ importers: specifier: ^2.3.1 version: 2.8.1 devDependencies: - '@ampproject/rollup-plugin-closure-compiler': - specifier: ~0.27.0 - version: 0.27.0(rollup@2.70.2) '@rollup/plugin-commonjs': specifier: ~21.0.2 version: 21.0.3(rollup@2.70.2) @@ -1538,10 +1594,10 @@ importers: version: 7.0.2(rollup@2.70.2) rollup-plugin-ts: specifier: ~2.0.5 - version: 2.0.7(@babel/core@7.26.0)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.26.0))(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) + version: 2.0.7(@babel/core@7.29.7)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.29.7))(@babel/preset-env@7.29.7(@babel/core@7.29.7))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) ts-jest: specifier: ~28.0.8 - version: 28.0.8(@babel/core@7.26.0)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.26.0))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) + version: 28.0.8(@babel/core@7.29.7)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.29.7))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) typescript: specifier: ~4.6.2 version: 4.6.4 @@ -1558,12 +1614,9 @@ importers: specifier: ^2.3.1 version: 2.8.1 uuid: - specifier: ^10.0.0 - version: 10.0.0 + specifier: ^11.1.1 + version: 11.1.1 devDependencies: - '@ampproject/rollup-plugin-closure-compiler': - specifier: ~0.27.0 - version: 0.27.0(rollup@2.70.2) '@rollup/plugin-commonjs': specifier: ~21.0.2 version: 21.0.3(rollup@2.70.2) @@ -1579,9 +1632,6 @@ importers: '@types/lodash': specifier: ~4.14.180 version: 4.14.202 - '@types/uuid': - specifier: ^10.0.0 - version: 10.0.0 '@typescript-eslint/eslint-plugin': specifier: ~5.15.0 version: 5.15.0(@typescript-eslint/parser@5.15.0(eslint@8.11.0)(typescript@4.6.4))(eslint@8.11.0)(typescript@4.6.4) @@ -1620,10 +1670,10 @@ importers: version: 7.0.2(rollup@2.70.2) rollup-plugin-ts: specifier: ~2.0.5 - version: 2.0.7(@babel/core@7.26.0)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.26.0))(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) + version: 2.0.7(@babel/core@7.29.7)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.29.7))(@babel/preset-env@7.29.7(@babel/core@7.29.7))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) ts-jest: specifier: ~28.0.8 - version: 28.0.8(@babel/core@7.26.0)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.26.0))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) + version: 28.0.8(@babel/core@7.29.7)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.29.7))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) typescript: specifier: ~4.6.2 version: 4.6.4 @@ -1640,9 +1690,6 @@ importers: specifier: ^2.3.1 version: 2.8.1 devDependencies: - '@ampproject/rollup-plugin-closure-compiler': - specifier: ~0.27.0 - version: 0.27.0(rollup@2.70.2) '@rollup/plugin-commonjs': specifier: ~21.0.2 version: 21.0.3(rollup@2.70.2) @@ -1696,10 +1743,10 @@ importers: version: 7.0.2(rollup@2.70.2) rollup-plugin-ts: specifier: ~2.0.5 - version: 2.0.7(@babel/core@7.26.0)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.26.0))(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) + version: 2.0.7(@babel/core@7.29.7)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.29.7))(@babel/preset-env@7.29.7(@babel/core@7.29.7))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) ts-jest: specifier: ~28.0.8 - version: 28.0.8(@babel/core@7.26.0)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.26.0))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) + version: 28.0.8(@babel/core@7.29.7)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.29.7))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) typescript: specifier: ~4.6.2 version: 4.6.4 @@ -1716,9 +1763,6 @@ importers: specifier: ^2.3.1 version: 2.8.1 devDependencies: - '@ampproject/rollup-plugin-closure-compiler': - specifier: ~0.27.0 - version: 0.27.0(rollup@2.70.2) '@rollup/plugin-commonjs': specifier: ~21.0.2 version: 21.0.3(rollup@2.70.2) @@ -1772,10 +1816,10 @@ importers: version: 7.0.2(rollup@2.70.2) rollup-plugin-ts: specifier: ~2.0.5 - version: 2.0.7(@babel/core@7.26.0)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.26.0))(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) + version: 2.0.7(@babel/core@7.29.7)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.29.7))(@babel/preset-env@7.29.7(@babel/core@7.29.7))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) ts-jest: specifier: ~28.0.8 - version: 28.0.8(@babel/core@7.26.0)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.26.0))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) + version: 28.0.8(@babel/core@7.29.7)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.29.7))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) typescript: specifier: ~4.6.2 version: 4.6.4 @@ -1795,9 +1839,6 @@ importers: specifier: ^2.3.1 version: 2.8.1 devDependencies: - '@ampproject/rollup-plugin-closure-compiler': - specifier: ~0.27.0 - version: 0.27.0(rollup@2.70.2) '@rollup/plugin-commonjs': specifier: ~21.0.2 version: 21.0.3(rollup@2.70.2) @@ -1851,10 +1892,10 @@ importers: version: 7.0.2(rollup@2.70.2) rollup-plugin-ts: specifier: ~2.0.5 - version: 2.0.7(@babel/core@7.26.0)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.26.0))(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) + version: 2.0.7(@babel/core@7.29.7)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.29.7))(@babel/preset-env@7.29.7(@babel/core@7.29.7))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) ts-jest: specifier: ~28.0.8 - version: 28.0.8(@babel/core@7.26.0)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.26.0))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) + version: 28.0.8(@babel/core@7.29.7)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.29.7))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) typescript: specifier: ~4.6.2 version: 4.6.4 @@ -1877,9 +1918,6 @@ importers: specifier: ^2.3.1 version: 2.8.1 devDependencies: - '@ampproject/rollup-plugin-closure-compiler': - specifier: ~0.27.0 - version: 0.27.0(rollup@2.70.2) '@rollup/plugin-commonjs': specifier: ~21.0.2 version: 21.0.3(rollup@2.70.2) @@ -1930,10 +1968,10 @@ importers: version: 7.0.2(rollup@2.70.2) rollup-plugin-ts: specifier: ~2.0.5 - version: 2.0.7(@babel/core@7.26.0)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.26.0))(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) + version: 2.0.7(@babel/core@7.29.7)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.29.7))(@babel/preset-env@7.29.7(@babel/core@7.29.7))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) ts-jest: specifier: ~28.0.8 - version: 28.0.8(@babel/core@7.26.0)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.26.0))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) + version: 28.0.8(@babel/core@7.29.7)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.29.7))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) typescript: specifier: ~4.6.2 version: 4.6.4 @@ -1953,9 +1991,6 @@ importers: specifier: ~4.2.4 version: 4.2.4 devDependencies: - '@ampproject/rollup-plugin-closure-compiler': - specifier: ~0.27.0 - version: 0.27.0(rollup@2.70.2) '@rollup/plugin-commonjs': specifier: ~21.0.2 version: 21.0.3(rollup@2.70.2) @@ -2003,10 +2038,10 @@ importers: version: 7.0.2(rollup@2.70.2) rollup-plugin-ts: specifier: ~2.0.5 - version: 2.0.7(@babel/core@7.26.0)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.26.0))(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) + version: 2.0.7(@babel/core@7.29.7)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.29.7))(@babel/preset-env@7.29.7(@babel/core@7.29.7))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) ts-jest: specifier: ~28.0.8 - version: 28.0.8(@babel/core@7.26.0)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.26.0))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) + version: 28.0.8(@babel/core@7.29.7)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.29.7))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) typescript: specifier: ~4.6.2 version: 4.6.4 @@ -2026,9 +2061,6 @@ importers: specifier: ^2.3.1 version: 2.8.1 devDependencies: - '@ampproject/rollup-plugin-closure-compiler': - specifier: ~0.27.0 - version: 0.27.0(rollup@2.70.2) '@rollup/plugin-commonjs': specifier: ~21.0.2 version: 21.0.3(rollup@2.70.2) @@ -2076,10 +2108,10 @@ importers: version: 7.0.2(rollup@2.70.2) rollup-plugin-ts: specifier: ~2.0.5 - version: 2.0.7(@babel/core@7.26.0)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.26.0))(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) + version: 2.0.7(@babel/core@7.29.7)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.29.7))(@babel/preset-env@7.29.7(@babel/core@7.29.7))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) ts-jest: specifier: ~28.0.8 - version: 28.0.8(@babel/core@7.26.0)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.26.0))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) + version: 28.0.8(@babel/core@7.29.7)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.29.7))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) typescript: specifier: ~4.6.2 version: 4.6.4 @@ -2099,12 +2131,9 @@ importers: specifier: ^2.3.1 version: 2.8.1 uuid: - specifier: ^10.0.0 - version: 10.0.0 + specifier: ^11.1.1 + version: 11.1.1 devDependencies: - '@ampproject/rollup-plugin-closure-compiler': - specifier: ~0.27.0 - version: 0.27.0(rollup@2.70.2) '@rollup/plugin-commonjs': specifier: ~21.0.2 version: 21.0.3(rollup@2.70.2) @@ -2117,9 +2146,6 @@ importers: '@types/jsdom': specifier: ~16.2.14 version: 16.2.15 - '@types/uuid': - specifier: ^10.0.0 - version: 10.0.0 '@types/youtube': specifier: ~0.0.46 version: 0.0.50 @@ -2158,10 +2184,10 @@ importers: version: 7.0.2(rollup@2.70.2) rollup-plugin-ts: specifier: ~2.0.5 - version: 2.0.7(@babel/core@7.26.0)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.26.0))(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) + version: 2.0.7(@babel/core@7.29.7)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.29.7))(@babel/preset-env@7.29.7(@babel/core@7.29.7))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) ts-jest: specifier: ~28.0.8 - version: 28.0.8(@babel/core@7.26.0)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.26.0))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) + version: 28.0.8(@babel/core@7.29.7)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.29.7))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) typescript: specifier: ~4.6.2 version: 4.6.4 @@ -2178,9 +2204,6 @@ importers: specifier: ^2.3.1 version: 2.8.1 devDependencies: - '@ampproject/rollup-plugin-closure-compiler': - specifier: ~0.27.0 - version: 0.27.0(rollup@2.70.2) '@rollup/plugin-commonjs': specifier: ~21.0.2 version: 21.0.3(rollup@2.70.2) @@ -2234,10 +2257,10 @@ importers: version: 7.0.2(rollup@2.70.2) rollup-plugin-ts: specifier: ~2.0.5 - version: 2.0.7(@babel/core@7.26.0)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.26.0))(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) + version: 2.0.7(@babel/core@7.29.7)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.29.7))(@babel/preset-env@7.29.7(@babel/core@7.29.7))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) ts-jest: specifier: ~28.0.8 - version: 28.0.8(@babel/core@7.26.0)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.26.0))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) + version: 28.0.8(@babel/core@7.29.7)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.29.7))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4) typescript: specifier: ~4.6.2 version: 4.6.4 @@ -2256,6 +2279,9 @@ importers: '@snowplow/browser-plugin-client-hints': specifier: workspace:* version: link:../../plugins/browser-plugin-client-hints + '@snowplow/browser-plugin-element-tracking': + specifier: workspace:* + version: link:../../plugins/browser-plugin-element-tracking '@snowplow/browser-plugin-enhanced-consent': specifier: workspace:* version: link:../../plugins/browser-plugin-enhanced-consent @@ -2313,6 +2339,9 @@ importers: '@snowplow/browser-plugin-web-vitals': specifier: workspace:* version: link:../../plugins/browser-plugin-web-vitals + '@snowplow/browser-plugin-webview': + specifier: workspace:* + version: link:../../plugins/browser-plugin-webview '@snowplow/browser-plugin-youtube-tracking': specifier: workspace:* version: link:../../plugins/browser-plugin-youtube-tracking @@ -2329,9 +2358,6 @@ importers: specifier: ^2.3.1 version: 2.8.1 devDependencies: - '@ampproject/rollup-plugin-closure-compiler': - specifier: ~0.27.0 - version: 0.27.0(rollup@2.70.2) '@rollup/plugin-alias': specifier: ~3.1.9 version: 3.1.9(rollup@2.70.2) @@ -2439,13 +2465,13 @@ importers: version: 7.0.2(rollup@2.70.2) rollup-plugin-ts: specifier: ~2.0.5 - version: 2.0.7(@babel/core@7.26.0)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.26.0))(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) + version: 2.0.7(@babel/core@7.29.7)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.29.7))(@babel/preset-env@7.29.7(@babel/core@7.29.7))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) saucelabs: specifier: ~7.5.0 version: 7.5.0 ts-jest: specifier: ~28.0.8 - version: 28.0.8(@babel/core@7.26.0)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.26.0))(jest@28.1.3(@types/node@14.6.4)(ts-node@10.9.2(@types/node@14.6.4)(typescript@4.6.4)))(typescript@4.6.4) + version: 28.0.8(@babel/core@7.29.7)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.29.7))(jest@28.1.3(@types/node@14.6.4)(ts-node@10.9.2(@types/node@14.6.4)(typescript@4.6.4)))(typescript@4.6.4) ts-node: specifier: ~10.9.1 version: 10.9.2(@types/node@14.6.4)(typescript@4.6.4) @@ -2503,7 +2529,7 @@ importers: version: 2.6.1(rollup@2.70.2) rollup-plugin-ts: specifier: ~2.0.5 - version: 2.0.7(@babel/core@7.26.0)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.26.0))(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) + version: 2.0.7(@babel/core@7.29.7)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.29.7))(@babel/preset-env@7.29.7(@babel/core@7.29.7))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4) ts-node: specifier: ~10.9.1 version: 10.9.2(@types/node@14.6.4)(typescript@4.6.4) @@ -2513,9 +2539,6 @@ importers: ../../trackers/react-native-tracker: dependencies: - '@react-native-async-storage/async-storage': - specifier: ~2.0.0 - version: 2.0.0(react-native@0.74.5(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.18)(encoding@0.1.13)(react@18.2.0)) '@snowplow/browser-plugin-screen-tracking': specifier: workspace:* version: link:../../plugins/browser-plugin-screen-tracking @@ -2525,16 +2548,16 @@ importers: '@snowplow/tracker-core': specifier: workspace:* version: link:../../libraries/tracker-core - react-native-get-random-values: - specifier: ~1.11.0 - version: 1.11.0(react-native@0.74.5(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.18)(encoding@0.1.13)(react@18.2.0)) tslib: specifier: ^2.3.1 version: 2.8.1 uuid: - specifier: ^10.0.0 - version: 10.0.0 + specifier: ^11.1.1 + version: 11.1.1 devDependencies: + '@react-native-async-storage/async-storage': + specifier: ^2.0.0 + version: 2.0.0(react-native@0.74.5(@babel/preset-env@7.29.7(@babel/core@7.29.7))(@types/react@18.3.18)(encoding@0.1.13)(react@18.2.0)) '@snowplow/browser-plugin-snowplow-ecommerce': specifier: workspace:* version: link:../../plugins/browser-plugin-snowplow-ecommerce @@ -2547,9 +2570,6 @@ importers: '@types/react': specifier: ^18.2.44 version: 18.3.18 - '@types/uuid': - specifier: ^10.0.0 - version: 10.0.0 '@typescript-eslint/eslint-plugin': specifier: ~5.15.0 version: 5.15.0(@typescript-eslint/parser@5.15.0(eslint@8.11.0)(typescript@4.6.4))(eslint@8.11.0)(typescript@4.6.4) @@ -2570,32 +2590,31 @@ importers: version: 18.2.0 react-native: specifier: 0.74.5 - version: 0.74.5(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.18)(encoding@0.1.13)(react@18.2.0) + version: 0.74.5(@babel/preset-env@7.29.7(@babel/core@7.29.7))(@types/react@18.3.18)(encoding@0.1.13)(react@18.2.0) react-native-builder-bob: - specifier: ^0.30.3 - version: 0.30.3(typescript@4.6.4) + specifier: ^0.42.1 + version: 0.42.1 + react-native-get-random-values: + specifier: ^1.11.0 || ^2.0.0 + version: 1.11.0(react-native@0.74.5(@babel/preset-env@7.29.7(@babel/core@7.29.7))(@types/react@18.3.18)(encoding@0.1.13)(react@18.2.0)) ts-jest: specifier: ~28.0.8 - version: 28.0.8(@babel/core@7.26.0)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.26.0))(jest@28.1.3(@types/node@14.6.4)(ts-node@10.9.2(@types/node@14.6.4)(typescript@4.6.4)))(typescript@4.6.4) + version: 28.0.8(@babel/core@7.29.7)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.29.7))(jest@28.1.3(@types/node@14.6.4)(ts-node@10.9.2(@types/node@14.6.4)(typescript@4.6.4)))(typescript@4.6.4) typescript: specifier: ~4.6.2 version: 4.6.4 packages: - '@ampproject/remapping@0.2.0': - resolution: {integrity: sha512-a4EztS9/GOVQjX5Ol+Iz33TFhaXvYBF7aB6D8+Qz0/SCIxOm3UNRhGZiwcCuJ8/Ifc6NCogp3S48kc5hFxRpUw==} - engines: {node: '>=6.0.0'} - '@ampproject/remapping@2.3.0': resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@ampproject/rollup-plugin-closure-compiler@0.27.0': - resolution: {integrity: sha512-stpAOn2ZZEJuAV39HFw9cnKJYNhEeHtcsoa83orpLDhSxsxSbVEKwHaWlFBaQYpQRSOdapC4eJhJnCzocZxnqg==} - engines: {node: '>=10'} - peerDependencies: - rollup: '>=1.27' + '@ark/schema@0.56.0': + resolution: {integrity: sha512-ECg3hox/6Z/nLajxXqNhgPtNdHWC9zNsDyskwO28WinoFEnWow4IsERNz9AnXRhTZJnYIlAJ4uGn3nlLk65vZA==} + + '@ark/util@0.56.0': + resolution: {integrity: sha512-BghfRC8b9pNs3vBoDJhcta0/c1J1rsoS1+HgVUreMFPdhz/CRAKReAu57YEllNaSy98rWAdY1gE+gFup7OXpgA==} '@arr/every@1.0.1': resolution: {integrity: sha512-UQFQ6SgyJ6LX42W8rHCs8KVc0JS0tzVL9ct4XYedJukskYVWTo49tNiMEK9C2HTyarbNiT/RVIRSY82vH+6sTg==} @@ -2605,136 +2624,250 @@ packages: resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} engines: {node: '>=6.9.0'} + '@babel/code-frame@7.29.7': + resolution: {integrity: sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==} + engines: {node: '>=6.9.0'} + '@babel/compat-data@7.26.3': resolution: {integrity: sha512-nHIxvKPniQXpmQLb0vhY3VaFb3S0YrTAwpOWJZh1wn3oJPjJk9Asva204PsBdmAE8vpzfHudT8DB0scYvy9q0g==} engines: {node: '>=6.9.0'} + '@babel/compat-data@7.29.7': + resolution: {integrity: sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==} + engines: {node: '>=6.9.0'} + '@babel/core@7.26.0': resolution: {integrity: sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==} engines: {node: '>=6.9.0'} + '@babel/core@7.29.7': + resolution: {integrity: sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==} + engines: {node: '>=6.9.0'} + '@babel/generator@7.26.3': resolution: {integrity: sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==} engines: {node: '>=6.9.0'} + '@babel/generator@7.29.7': + resolution: {integrity: sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==} + engines: {node: '>=6.9.0'} + '@babel/helper-annotate-as-pure@7.25.9': resolution: {integrity: sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==} engines: {node: '>=6.9.0'} + '@babel/helper-annotate-as-pure@7.29.7': + resolution: {integrity: sha512-OoK6239jHPuSQOoS0kfTVKn0b/rVTk0seKq4Gd2UMLtmOVLjDC0ki3e+c90Trqv2gMfvJFqkiljrr568+qddiw==} + engines: {node: '>=6.9.0'} + '@babel/helper-compilation-targets@7.25.9': resolution: {integrity: sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==} engines: {node: '>=6.9.0'} + '@babel/helper-compilation-targets@7.29.7': + resolution: {integrity: sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==} + engines: {node: '>=6.9.0'} + '@babel/helper-create-class-features-plugin@7.25.9': resolution: {integrity: sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-create-class-features-plugin@7.29.7': + resolution: {integrity: sha512-IY3ZD9Tmooqr3TUhc3DUWxiuo8xx1DWLhd5M7hQ+ZWJamqM2BbalrBJb2MisSLoYorOj75U03qULCxQTY9r3hg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-create-regexp-features-plugin@7.26.3': resolution: {integrity: sha512-G7ZRb40uUgdKOQqPLjfD12ZmGA54PzqDFUv2BKImnC9QIfGhIHKvVML0oN8IUiDq4iRqpq74ABpvOaerfWdong==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-create-regexp-features-plugin@7.29.7': + resolution: {integrity: sha512-907Uymvqgg1dwUA+7IGwFAOSYzQOuzPXKNJ1yxzwPffzkYFg2q2eHi1fIOs6sXkG9NbIUMunnUlkYsfRFNvomg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-define-polyfill-provider@0.6.3': resolution: {integrity: sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + '@babel/helper-define-polyfill-provider@0.6.8': + resolution: {integrity: sha512-47UwBLPpQi1NoWzLuHNjRoHlYXMwIJoBf7MFou6viC/sIHWYygpvr0B6IAyh5sBdA2nr2LPIRww8lfaUVQINBA==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + '@babel/helper-environment-visitor@7.24.7': resolution: {integrity: sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==} engines: {node: '>=6.9.0'} + '@babel/helper-globals@7.29.7': + resolution: {integrity: sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==} + engines: {node: '>=6.9.0'} + '@babel/helper-member-expression-to-functions@7.25.9': resolution: {integrity: sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==} engines: {node: '>=6.9.0'} + '@babel/helper-member-expression-to-functions@7.29.7': + resolution: {integrity: sha512-j+7JYmk1JYDtACIGj0QJqqWZjoUpMoEikQGADMaHgCMCSDqd2+P32rfcibUNrGOMWrlzK1WJBdxrB3JJQZwWtg==} + engines: {node: '>=6.9.0'} + '@babel/helper-module-imports@7.25.9': resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} engines: {node: '>=6.9.0'} + '@babel/helper-module-imports@7.29.7': + resolution: {integrity: sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==} + engines: {node: '>=6.9.0'} + '@babel/helper-module-transforms@7.26.0': resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-module-transforms@7.29.7': + resolution: {integrity: sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-optimise-call-expression@7.25.9': resolution: {integrity: sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==} engines: {node: '>=6.9.0'} + '@babel/helper-optimise-call-expression@7.29.7': + resolution: {integrity: sha512-+kmGVjcT9RGYzoDwdwEqEvGgKe3BYq+O1iGzjFubaNgZHwYHP6lsF2Yghf4kEuv9BV7tYDZ913aBW9am6YKong==} + engines: {node: '>=6.9.0'} + '@babel/helper-plugin-utils@7.25.9': resolution: {integrity: sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==} engines: {node: '>=6.9.0'} + '@babel/helper-plugin-utils@7.29.7': + resolution: {integrity: sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==} + engines: {node: '>=6.9.0'} + '@babel/helper-remap-async-to-generator@7.25.9': resolution: {integrity: sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-remap-async-to-generator@7.29.7': + resolution: {integrity: sha512-16AMiW26DbXWBbr3B8wNozKM0ydMLB892vaOaJW/fPJdnT8vJk5sdkQcU/isqUxyCE0cEoa8wZOcbgDuC4b6Og==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-replace-supers@7.25.9': resolution: {integrity: sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-replace-supers@7.29.7': + resolution: {integrity: sha512-atfGXWSeCiF4DnKZIfmJfQRkSw9b9gNNXR1kqKjbhG4pGYCOnkp8OcTB8E3NXjBu8NpheSnOeNKz8KT7UNFTmQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-skip-transparent-expression-wrappers@7.25.9': resolution: {integrity: sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==} engines: {node: '>=6.9.0'} + '@babel/helper-skip-transparent-expression-wrappers@7.29.7': + resolution: {integrity: sha512-brcMGQaVzIeUb+6/bs1Av0f8YuNNjKY2JyvfRCsFuFsdKccEQ5Ges2y74D74NZ1Rz8lKJ9ksJkfqwQFJ/iNEyQ==} + engines: {node: '>=6.9.0'} + '@babel/helper-string-parser@7.25.9': resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} engines: {node: '>=6.9.0'} + '@babel/helper-string-parser@7.29.7': + resolution: {integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.25.9': resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.29.7': + resolution: {integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-option@7.25.9': resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-option@7.29.7': + resolution: {integrity: sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==} + engines: {node: '>=6.9.0'} + '@babel/helper-wrap-function@7.25.9': resolution: {integrity: sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==} engines: {node: '>=6.9.0'} + '@babel/helper-wrap-function@7.29.7': + resolution: {integrity: sha512-iES0Skag9ERIF68aXadpO6dbXa03mNWK3sEqJaMnLNs/eC3l0lkImdfoy6Y09/SfkpawdAB4RjQ7PVA7TcVGdw==} + engines: {node: '>=6.9.0'} + '@babel/helpers@7.26.0': resolution: {integrity: sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==} engines: {node: '>=6.9.0'} + '@babel/helpers@7.29.7': + resolution: {integrity: sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==} + engines: {node: '>=6.9.0'} + '@babel/parser@7.26.3': resolution: {integrity: sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==} engines: {node: '>=6.0.0'} hasBin: true - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9': - resolution: {integrity: sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==} + '@babel/parser@7.29.7': + resolution: {integrity: sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.29.7': + resolution: {integrity: sha512-j8SrR0zLZrRsC09DlszEx8FpMiwukKffYXMK0d5LmOglO7vGG6sz/BR/20yHqWH+Lnn31JTt2PE3hIWNgM2J6w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.29.7': + resolution: {integrity: sha512-r8j8escF+U2FUHo0KOhPUdMzUO+jp9fInva6+ACVAF3Y97Ev+5iNZwiqTghmzNeWwDkOPlYuTcfb1vDaoZKmAQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.9': - resolution: {integrity: sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==} + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.29.7': + resolution: {integrity: sha512-GE1TFSiuFeGsCxmYXZl8HwoPrVlwe4rHPFE8weieGKZqnDORK+Ar3vgWMgW+AOxQ6/2TgLSKx9p6W7O4rC6qgQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.9': - resolution: {integrity: sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==} + '@babel/plugin-bugfix-safari-rest-destructuring-rhs-array@7.29.7': + resolution: {integrity: sha512-oBNVCvnO5tND+xSopWvV8WNGfpTfgP4Zr/YXXSj8zfmcPktp5Ku/aZlsIowgSD4fjmgHn6sGmB9APVsU5zOdhA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.9': - resolution: {integrity: sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==} + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.29.7': + resolution: {integrity: sha512-QQt9qKHZ2sg/kivaLr7lnQr8HVrQDdBNSfCsTjiDxRuX/K5ORyKq+Bu8Xr0cDE3Dfkv0cw28Ve0EKyKMvulkOw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.9': - resolution: {integrity: sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==} + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.29.7': + resolution: {integrity: sha512-pn6QacGLgvCcwc+syUhKE/qSjV2D1IHDB84RNxWYSt1mW3K/SCtjinZ2p0cETJxAWBjPy3K/1lHwG5BjjPxNlw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 @@ -2845,8 +2978,14 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-import-assertions@7.26.0': - resolution: {integrity: sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==} + '@babel/plugin-syntax-flow@7.29.7': + resolution: {integrity: sha512-ajMX6QPcyomotqwpzhkYGxcK2i/us0rs1Qo9QvUpa+Fca0FTmqrzKrctoIYLMxcOhGZldGT/BAVkRGTWBiR8gQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-assertions@7.29.7': + resolution: {integrity: sha512-/An1OCBN93thpBAGyfsK2pcf0jvju1SAtKkL2Ny++B5Sy6sqgzXDQH1cZxWbF96Wuk+bn41MDA9bLd4VVAw6rw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -2857,6 +2996,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-import-attributes@7.29.7': + resolution: {integrity: sha512-zGYcYfq/WmZ4V+kBIXQon9dSSc8ircGZqw9ZaNhhGj9nZkeBu1jHLBDQqYYi5WA9uawvA2sIMbry2nCFhf5Djg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-import-meta@7.10.4': resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: @@ -2873,6 +3018,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-jsx@7.29.7': + resolution: {integrity: sha512-TSu8+mHCoEaaCDEZ0I3+6mvTBYR4PCxQwf2z9/r5Tbztv6NaLR3B9thGTTxX2WGuGHJqRiAbKPeGTJ5XWXVg6A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-logical-assignment-operators@7.10.4': resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: @@ -2921,6 +3072,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-typescript@7.29.7': + resolution: {integrity: sha512-ngr+82Sh0xMz25TPCZi+nC2iTzjfCdWS2ONXTp/PtSCHCgaCNBpdMqgvJ2ccdLlClVZ7sisIgB914j/JFe+RZA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-unicode-sets-regex@7.18.6': resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} engines: {node: '>=6.9.0'} @@ -2933,8 +3090,14 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-async-generator-functions@7.25.9': - resolution: {integrity: sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw==} + '@babel/plugin-transform-arrow-functions@7.29.7': + resolution: {integrity: sha512-N7zArUXWzAMzm+/N0uPBeVB3Fam5lMxtUwMmDK5f/IBBS7a7p1qeUoxd/6CckXoxUdgsntq1Dh8xNW06maZbDQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-async-generator-functions@7.29.7': + resolution: {integrity: sha512-d98gXZkgswvkyohMBABkhm3GeXhYj8psWfwQ2C7gtfrKGTykQa/iOIi+JJhwMjPlZ6Vm2XN+DCf3Es1EoG4ZLA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -2945,8 +3108,14 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-block-scoped-functions@7.25.9': - resolution: {integrity: sha512-toHc9fzab0ZfenFpsyYinOX0J/5dgJVA2fm64xPewu7CoYHWEivIWKxkK2rMi4r3yQqLnVmheMXRdG+k239CgA==} + '@babel/plugin-transform-async-to-generator@7.29.7': + resolution: {integrity: sha512-pcUb2SS+RMo9TWVBwKGI5ShtoG7R+zBsFmCKDa6fe8c+hPr3XJlZgoE5j6i8W7gDjhyvy+85vmYexanvXh3d1w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-block-scoped-functions@7.29.7': + resolution: {integrity: sha512-cUSmjh72N+rN4PrkFlN1dJwNCwjVp5d38/CQrEsFggkD10UiFlBFgdH3tv5dNsLuHY+3S8db2xCHjhZcv5WgvA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -2957,14 +3126,20 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-class-properties@7.25.9': - resolution: {integrity: sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==} + '@babel/plugin-transform-block-scoping@7.29.7': + resolution: {integrity: sha512-ONyr4+AZhKh8yKWInVxU9AXA9EbsyeLcL6V0dJy6M2/62vuvpGm29zzuymbTpdc451GEpDIdAyPLP3r+P61yKQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-class-properties@7.29.7': + resolution: {integrity: sha512-GtcpjFvanPfzNQi3eTitsCqtRRmmqzpy/A+yhTR1HaZo1Ly3EA8ZXxlPyHdR8/IuRMYc3E4wdGBewB2QKQjAaA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-class-static-block@7.26.0': - resolution: {integrity: sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==} + '@babel/plugin-transform-class-static-block@7.29.7': + resolution: {integrity: sha512-kibJgmEdX2iMwsHY2tSZNDgj8PwIlCQz7FK9KuGKO8zsuoUwSEhoNnNVp/emKWrbY4HeO6kkXfdMqRKKKXBm2A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.12.0 @@ -2975,116 +3150,164 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-classes@7.29.7': + resolution: {integrity: sha512-qV0OGGBVacduzQHE649JyCneOFI/maT+YKsO+K4Yi3xv2wTPNjM/W2o2gdzMwEAZz7fXNTHAe0NcSg30bIN69g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-computed-properties@7.25.9': resolution: {integrity: sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-computed-properties@7.29.7': + resolution: {integrity: sha512-RK7/IyU5phpuCdBAuig5VkzG/EnbDaui5SQGdU9BFrHdV+mV4cUjLMQ9lJDjLNtWHsqtiefpGZUXQP2BiTYMsA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-destructuring@7.25.9': resolution: {integrity: sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-dotall-regex@7.25.9': - resolution: {integrity: sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==} + '@babel/plugin-transform-destructuring@7.29.7': + resolution: {integrity: sha512-iPX8aD6H9zV5s7ZsqTdNocPN/MGQ5sSMnElKrktxjJRMnB2jN/1p2+R7GkfD6CAYoVFqy5A4XnSIUeGgJzIWpg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-duplicate-keys@7.25.9': - resolution: {integrity: sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==} + '@babel/plugin-transform-dotall-regex@7.29.7': + resolution: {integrity: sha512-3qc18hsD2RdZiyJNDNc7HQpv6xbncwh8FYtxNFFzclSyh/trPD9KkVR9BDECUjDLvb7yJVF15GfYUuC+LMkkiQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.9': - resolution: {integrity: sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==} + '@babel/plugin-transform-duplicate-keys@7.29.7': + resolution: {integrity: sha512-6IvRRriEMqnBwD6chtxdLpMYCHWEzN+oL5cyQtjykya19UgzbmKhxmhZgKC/LHxS2nYr9Q/qYPZ5Lr6jOL9+yQ==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.0.0 + '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-dynamic-import@7.25.9': - resolution: {integrity: sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==} + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.29.7': + resolution: {integrity: sha512-2wiIyo2BjtgU7HufSeDnL9L2O7zr8jmhFKuSr65VpRkUiRKRNpb0mdlk56+XPPKoIrfHqzbMuglDvZun0RISsA==} engines: {node: '>=6.9.0'} peerDependencies: - '@babel/core': ^7.0.0-0 + '@babel/core': ^7.0.0 - '@babel/plugin-transform-exponentiation-operator@7.26.3': - resolution: {integrity: sha512-7CAHcQ58z2chuXPWblnn1K6rLDnDWieghSOEmqQsrBenH0P9InCUtOJYD89pvngljmZlJcz3fcmgYsXFNGa1ZQ==} + '@babel/plugin-transform-dynamic-import@7.29.7': + resolution: {integrity: sha512-giOlEm/EFjfjr+te9NsdjkUo2v4f8rS/SXPumRVHAtbNcyNlvtREkU1dZzaIDclNpnaVhlCqRdFKhJBjBikzLg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-export-namespace-from@7.25.9': - resolution: {integrity: sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==} + '@babel/plugin-transform-explicit-resource-management@7.29.7': + resolution: {integrity: sha512-Rstj7coNz8sE+7Ju7ihpHLI564lsK5pUpNNlvptCIC/16E/S5hbl6n3kESPKdNRmqEWlpn5xpS5Q2dvXBsySLw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-flow-strip-types@7.25.9': - resolution: {integrity: sha512-/VVukELzPDdci7UUsWQaSkhgnjIWXnIyRpM02ldxaVoFK96c41So8JcKT3m0gYjyv7j5FNPGS5vfELrWalkbDA==} + '@babel/plugin-transform-exponentiation-operator@7.29.7': + resolution: {integrity: sha512-zFpMOTLZBdW5LfObqcSbL6kefg4R4eLdmvS0wbN9M6D5Mym/sKm9toOoWyVOa+xDjvCnuWcHls2YonXwHvH3CQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-for-of@7.25.9': - resolution: {integrity: sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A==} + '@babel/plugin-transform-export-namespace-from@7.29.7': + resolution: {integrity: sha512-24B2nOy2TeJSMheqwPD4DDQOV/elLSIlKxjZt4i05H5AgdPdWR3n18HnNrcJ+j76WJd9gbwb9jPjNYUy6RautA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-function-name@7.25.9': - resolution: {integrity: sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==} + '@babel/plugin-transform-flow-strip-types@7.25.9': + resolution: {integrity: sha512-/VVukELzPDdci7UUsWQaSkhgnjIWXnIyRpM02ldxaVoFK96c41So8JcKT3m0gYjyv7j5FNPGS5vfELrWalkbDA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-json-strings@7.25.9': - resolution: {integrity: sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==} + '@babel/plugin-transform-flow-strip-types@7.29.7': + resolution: {integrity: sha512-wRHeUjUjCZnMHmiO5bRgjFLcoEh7JyTdByOW11ahhwNa4V0bmeGEaIvt51yq0zQp2yWIpqfxXXPyUP6GFJZHOQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-literals@7.25.9': - resolution: {integrity: sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==} + '@babel/plugin-transform-for-of@7.29.7': + resolution: {integrity: sha512-zeSIHh0+E1Um1WJRXCFlHQYu2ieJNdivLLjlBEp+dIBu3S51n+SZZmIXjxnItw6pz56Cn+KvK68BIBVsxq2JiQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-logical-assignment-operators@7.25.9': - resolution: {integrity: sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==} + '@babel/plugin-transform-function-name@7.25.9': + resolution: {integrity: sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-member-expression-literals@7.25.9': - resolution: {integrity: sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==} + '@babel/plugin-transform-function-name@7.29.7': + resolution: {integrity: sha512-otRWaHXE6fbAGkePvaj/kvs3HsqXfPhlnzwSOlnFgbqCPMd975dW+4wZ00WFBt+/YlBGcJwNrARQTOJOb4ZrIg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-amd@7.25.9': - resolution: {integrity: sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==} + '@babel/plugin-transform-json-strings@7.29.7': + resolution: {integrity: sha512-RRnE2+eon1rJAq8MnoF1b5kTpY1vU88twHcvcKMrsqP/jxIRqDVs9iJB5fqPuqyeFAW0wJo4MlUIPpQCq/aRsg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-commonjs@7.26.3': + '@babel/plugin-transform-literals@7.25.9': + resolution: {integrity: sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-literals@7.29.7': + resolution: {integrity: sha512-DZ/oLP21ZuWx1vKqnoNv6/tvEK48AQOBRai40CX9dTjGluvT/YZCyY3rryDtyUqCEoyNroy5KKPwX2iQCiRvyw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-logical-assignment-operators@7.29.7': + resolution: {integrity: sha512-A0H91hh6W8MFRkp5TqJmMr39jzGD1A1E1Ysiv2O06Sfbhkapm+XyIzxWCEh5kqwOZ1/8QZ0dY3SeQ7XBqfJd5Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-member-expression-literals@7.29.7': + resolution: {integrity: sha512-hl1kwFZCCiDyfH25Xmco9jTrkPgnS9pmOzSG7W5I4SaGbLeqKv417hcU2RKmaxoPEgsoJh7ZPOrnPGq99bHoUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-modules-amd@7.29.7': + resolution: {integrity: sha512-fxtQoH3m5ywUSIfaH0FGCzWu4McsYon5bD3K4XnskC7f+OyQMj7rsOMi4NvvmJ83WwBAg4UCe+ov4VZlqEvyew==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-modules-commonjs@7.26.3': resolution: {integrity: sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-systemjs@7.25.9': - resolution: {integrity: sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==} + '@babel/plugin-transform-modules-commonjs@7.29.7': + resolution: {integrity: sha512-j0vCldybPC5b5dwCQOJ21uKtHzt7hxLygJTg9eF1ScfaikEDNfzn94XoW5Fi+seBR0nCyL23xaBFFkq7dTM8XQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-modules-systemjs@7.29.7': + resolution: {integrity: sha512-TM2ZcQLoG2/y4HODiStCo10DibYhWhGWAwVv+EQKmG/7GFl0N+AAmUiXOMKM+aiJ9XBJ9AHVZBvTzMnJ2sM3cQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-umd@7.25.9': - resolution: {integrity: sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==} + '@babel/plugin-transform-modules-umd@7.29.7': + resolution: {integrity: sha512-B4UkaTK3QpgCwJnrxKfMPKdo92CN7OKXAlpAAnM3UPu0Q0lCCk57ylA9AJbRy2v8dDKOPAAWcoR6CMyeoHwRCA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -3095,44 +3318,50 @@ packages: peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-transform-new-target@7.25.9': - resolution: {integrity: sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==} + '@babel/plugin-transform-named-capturing-groups-regex@7.29.7': + resolution: {integrity: sha512-vuFoLwr4qnv2xbZ16SQd6uPcH5FNrLHhk/Jzo++0XJFcaDsr4gjJVg6j398oMHiC+83k/GiBzviwF5KBJkPUtQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-transform-new-target@7.29.7': + resolution: {integrity: sha512-fEo41GmsOUhOBlw8ioo6zvjX5Xc2Lqkzlyfqbpsk3eB6TReV18uhxZ0esfEokVbY2+PVJAQHNKxER6lGrzNd3A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-nullish-coalescing-operator@7.25.9': - resolution: {integrity: sha512-ENfftpLZw5EItALAD4WsY/KUWvhUlZndm5GC7G3evUsVeSJB6p0pBeLQUnRnBCBx7zV0RKQjR9kCuwrsIrjWog==} + '@babel/plugin-transform-nullish-coalescing-operator@7.29.7': + resolution: {integrity: sha512-idmp1dFaekP9GbcMvG24Kvw2BfhFZjHnNJCkV4WuIY4PskJzwI3f1N5OdgYke38T7rftO6ERulFRn2cFeZwRkg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-numeric-separator@7.25.9': - resolution: {integrity: sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==} + '@babel/plugin-transform-numeric-separator@7.29.7': + resolution: {integrity: sha512-zR7fv/z14OjgHl4AgRtkDBvBMhIzCxqV/qN/2BCRC7LjFwvuzjYe7gDWxC4Wl/SNsLM6SE1IWvRPYMgSJaUvNw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-object-rest-spread@7.25.9': - resolution: {integrity: sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==} + '@babel/plugin-transform-object-rest-spread@7.29.7': + resolution: {integrity: sha512-Ld98jn4c0smUywL57m7SgsHq3OpThOa6LqZJif3G6jYOovPleoFhVrBJ1WegRApSFB2wu4+RelAj9AC9G08Z4A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-object-super@7.25.9': - resolution: {integrity: sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==} + '@babel/plugin-transform-object-super@7.29.7': + resolution: {integrity: sha512-Ea/diGcw0twB5IlZPO5sgET6fJsLJqPABqTuFWIR+iMPGPZJkATEIWx0wa+aEQ5UY1CBQyP/gkAiLEqn1vBiQA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-optional-catch-binding@7.25.9': - resolution: {integrity: sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==} + '@babel/plugin-transform-optional-catch-binding@7.29.7': + resolution: {integrity: sha512-sLsyndxK2VwX6yNUOakMb7Sh553ZTe/vVM1XJ+9Z5aW1ytsc8xOIwmyk05NNjN60vkc5/KqoTH6hB4V41LJhng==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-optional-chaining@7.25.9': - resolution: {integrity: sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==} + '@babel/plugin-transform-optional-chaining@7.29.7': + resolution: {integrity: sha512-6GM1dhvK3gNODkXcEcMCOLEDCLSoZ/sBbro2Ax8HURyasQ4NshagQixkRFdh5niI6E4gmA/jYI/4aT7rRos3ZQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -3143,20 +3372,38 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-parameters@7.29.7': + resolution: {integrity: sha512-ZDOBqV/qLYJI0YElr8DcENEyARsFQeESqWXH6gZlghYXuPPjvweuDhP4VyEi4BlUBlLRFZVjxoZDMjxhLW766g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-private-methods@7.25.9': resolution: {integrity: sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-private-methods@7.29.7': + resolution: {integrity: sha512-/6Rz4DK1ETDEM/bWHsPHcaEe7ZaT1EqSXjtSP/L0DijOYuaUhiRiOKcwpZ8P7zR4xXEHc2ITdiCgBm9Tpyv9ug==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-private-property-in-object@7.25.9': resolution: {integrity: sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-property-literals@7.25.9': - resolution: {integrity: sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==} + '@babel/plugin-transform-private-property-in-object@7.29.7': + resolution: {integrity: sha512-+BNo06dnrzdNNqCm1X6YUaVv0DKk8Q+JYcoZfOkLhYWNCXzlwTSRq8zGWayT1csjcpNXV9CQTBRRbmTLZac5cA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-property-literals@7.29.7': + resolution: {integrity: sha512-bOMRLQuI0A5ZqHq3OWJ89/rXpJ/NJrbVhXiP4zwPGMs6kpcVsuTUNjwoE30K0Qm3mf48a/TnRYYD6vPNqcg6jA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -3167,8 +3414,14 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx-development@7.25.9': - resolution: {integrity: sha512-9mj6rm7XVYs4mdLIpbZnHOYdpW42uoiBCTVowg7sP1thUOiANgMb4UtpRivR0pp5iL+ocvUv7X4mZgFRpJEzGw==} + '@babel/plugin-transform-react-display-name@7.29.7': + resolution: {integrity: sha512-+1wdDMGNb4UPeY3Q4L5yLiYe6TXPXubs4NjrgRFw13hPRLJfEMw2Q5OXkee6/IfdqePIeW4Jjwe3aBh7SdKz4Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-jsx-development@7.29.7': + resolution: {integrity: sha512-Xfy3UVMF04+ypnFbkhvfqtmvwfe92qwQdbGZVonhE+6v35GzlofmOnA1szaZqzb9xYWr0nl1e5EMmzi0DNON1g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -3191,26 +3444,32 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-pure-annotations@7.25.9': - resolution: {integrity: sha512-KQ/Takk3T8Qzj5TppkS1be588lkbTp5uj7w6a0LeQaTMSckU/wK0oJ/pih+T690tkgI5jfmg2TqDJvd41Sj1Cg==} + '@babel/plugin-transform-react-jsx@7.29.7': + resolution: {integrity: sha512-WsZulLVBUHXVj2cUcPVx6UE21TpalB6bHbSFErKT0Ib++ax24jjXe73FqlWvdylFOjiuPHYi6VCcgRad1ItN+A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-pure-annotations@7.29.7': + resolution: {integrity: sha512-H5E+HBgDpr6Q5t+Aj11tL7XkIui1jhbIoArVQnqjgXo5/3YxkN7ZEBcWF4RQlB0T4rrxJQbXS6kiFV6B7XTqUA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-regenerator@7.25.9': - resolution: {integrity: sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==} + '@babel/plugin-transform-regenerator@7.29.7': + resolution: {integrity: sha512-rNNFV0DBAJp988xW2DOntfDoYn1eR8GGF5AT5vYc+rjyfaQkM242c9tZUHHPe7KYaiJizXPWhQTzzdbXySyhBw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-regexp-modifiers@7.26.0': - resolution: {integrity: sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==} + '@babel/plugin-transform-regexp-modifiers@7.29.7': + resolution: {integrity: sha512-mB5Fs0VWrJ42ZCmc8114v60qetdaUVNkj9PmSZRmanCZM3S9hm0CFRLjRmYIsuXav14l2jvZ+4T8iiCGnhj3nQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/plugin-transform-reserved-words@7.25.9': - resolution: {integrity: sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==} + '@babel/plugin-transform-reserved-words@7.29.7': + resolution: {integrity: sha512-5+YhdpVgmfSmwZyLMftfaiffLRMHjzIRHFHHLdibcSyJm2pasMrKHrO3Ptrt2DRshjvpgjEJJ1zVW14WPq/6QA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -3227,32 +3486,50 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-shorthand-properties@7.29.7': + resolution: {integrity: sha512-I+WYbGBAiCn7nA6xBrlgPH+MB7HWb4u8pv5S0Pv7OtwNvIFvCCb24YlttKEeUFVurfBCEaOTnuhlqsb7f0Z5Dg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-spread@7.25.9': resolution: {integrity: sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-spread@7.29.7': + resolution: {integrity: sha512-/u5K1QWada7tbYNqTjMh96718g9NTwh9tfPJMsSmVsQwGT447FskV+KcfeXkXq2GWki4EM/MuTdmBec+hOuVTQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-transform-sticky-regex@7.25.9': resolution: {integrity: sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-strict-mode@7.25.9': - resolution: {integrity: sha512-DplEwkN9xt6XCz/4oC9l8FJGn7LnOGPU7v08plq+OclMT55zAR9lkX7QIbQ9XscvvJNYpLUfYO4IYz/7JGkbXQ==} + '@babel/plugin-transform-sticky-regex@7.29.7': + resolution: {integrity: sha512-BCHzNYJGe9l7EpwwDBN/ztlL2NYFFq8hp9ddjtUEM9f2O7S7kKV/lL6Fwo7IF7NSkYhPK2vO+86nIGltA90MsA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-strict-mode@7.29.7': + resolution: {integrity: sha512-YjFcy7S8kEndK6dsK4UBISrMZa2MHiitApdZ7hTxAyQpX+Ct+aKgKOZoTx/Kcz6drgKxe50TIPUvZq7V4HGGKg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-template-literals@7.25.9': - resolution: {integrity: sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw==} + '@babel/plugin-transform-template-literals@7.29.7': + resolution: {integrity: sha512-NCSEJ4sLFU2gqAub45HYh4fus2yQ36rr6ei6vpU7NdoJqCpxvEG8E6eJpscGyXP3VHD2Ny+fSXr04k1hoUrFqA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-typeof-symbol@7.25.9': - resolution: {integrity: sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA==} + '@babel/plugin-transform-typeof-symbol@7.29.7': + resolution: {integrity: sha512-223mNGoTkBiTEWFoK+Q6Go3tueMRclO8vxxxxquNCYuNI4jWOofFKJRRDu6SDrB8Sgo1UEGW9T4GAQ8ZyRso1A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -3263,14 +3540,20 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-unicode-escapes@7.25.9': - resolution: {integrity: sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==} + '@babel/plugin-transform-typescript@7.29.7': + resolution: {integrity: sha512-jK52h8LaLc7JarhQV2ofeFMts4H7vnOXnqZNA6fYglBTZewRBE51KWt3BUltW1P+KoPsYkHoJeXePuz4zo2LMw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-unicode-escapes@7.29.7': + resolution: {integrity: sha512-jCfXxSjf94lf4E0hKE0AByxF6F3/pVFqRdUUNkDJhsY0m1ZKjnN6ZYyMeHNpzflxb/0q5b7t3p+BE+SLF1WOtA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-unicode-property-regex@7.25.9': - resolution: {integrity: sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==} + '@babel/plugin-transform-unicode-property-regex@7.29.7': + resolution: {integrity: sha512-OgZ+zoAJgZLUCunsTRQ5LAjOywDv5zzZ2/hQ5aMw1pGXyY2rtE8/chXYUmu3AlVHKpm10KEdG9aMwbI/K76ZGw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -3281,14 +3564,20 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-unicode-sets-regex@7.25.9': - resolution: {integrity: sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==} + '@babel/plugin-transform-unicode-regex@7.29.7': + resolution: {integrity: sha512-7D/x/23/d/3VqZ0QA+LGbZMlGwZjztBygSWWWsfTPoQ1oQ6Q1P6Mr3d0kk42XabyUVw+fha3LqdRsFqeKqvCyA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-unicode-sets-regex@7.29.7': + resolution: {integrity: sha512-BLOhLht9DOJwIxlmp91wHvkXv1lguuHS3/FwUO8HL1H0u8s4hR1gASVFyilu9iGtcTRYqjTZmlsFFeQletntEg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/preset-env@7.26.0': - resolution: {integrity: sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw==} + '@babel/preset-env@7.29.7': + resolution: {integrity: sha512-GYzX36n1nsciIb0uyH0GHwxwtNwPQIcpxSeiVLDtG/B7jB5xXgchnmL1f/jCX5o+pwnaDBtO60ONSJhEBJfxYA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -3304,8 +3593,8 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 - '@babel/preset-react@7.26.3': - resolution: {integrity: sha512-Nl03d6T9ky516DGK2YMxrTqvnpUW63TnJMOMonj+Zae0JiPC5BC9xPMSL6L8fiSpA5vP88qfygavVQvnLp+6Cw==} + '@babel/preset-react@7.29.7': + resolution: {integrity: sha512-C+PV1TFUPTmBQGoPBL8j2QmLpZ117YTCwxIZeJOM96GbYMFSc7/pOXU5lVykwnZxyTqQxRsvoRk6f2FktZgGHA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -3316,6 +3605,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/preset-typescript@7.29.7': + resolution: {integrity: sha512-/Foi8vKY2EVbed/1eZx0gJEEwHAIxogrySI7rULcRIvhZzbvoE/b5qG5Ghc0WKAFKOHA9SD1x7RsFlOYdutIiQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/register@7.25.9': resolution: {integrity: sha512-8D43jXtGsYmEeDvm4MWHYUpWf8iiXgWYx3fW7E7Wb7Oe6FWqJPl5K6TuFW0dOwNZzEE5rjlaSJYH9JjrUKJszA==} engines: {node: '>=6.9.0'} @@ -3330,14 +3625,26 @@ packages: resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==} engines: {node: '>=6.9.0'} + '@babel/template@7.29.7': + resolution: {integrity: sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==} + engines: {node: '>=6.9.0'} + '@babel/traverse@7.26.4': resolution: {integrity: sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w==} engines: {node: '>=6.9.0'} + '@babel/traverse@7.29.7': + resolution: {integrity: sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==} + engines: {node: '>=6.9.0'} + '@babel/types@7.26.3': resolution: {integrity: sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==} engines: {node: '>=6.9.0'} + '@babel/types@7.29.7': + resolution: {integrity: sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==} + engines: {node: '>=6.9.0'} + '@balena/dockerignore@1.0.2': resolution: {integrity: sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q==} @@ -3355,6 +3662,9 @@ packages: resolution: {integrity: sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@fingerprintjs/botd@2.0.0': + resolution: {integrity: sha512-yhuz23NKEcBDTHmGz/ULrXlGnbHenO+xZmVwuBkuqHUkqvaZ5TAA0kAgcRy4Wyo5dIBdkIf57UXX8/c9UlMLJg==} + '@gar/promisify@1.1.3': resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} @@ -3487,13 +3797,15 @@ packages: resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + '@jridgewell/gen-mapping@0.3.13': + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} + '@jridgewell/gen-mapping@0.3.8': resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} engines: {node: '>=6.0.0'} - '@jridgewell/resolve-uri@1.0.0': - resolution: {integrity: sha512-9oLAnygRMi8Q5QkYEU4XWK04B+nuoXoxjRvRxgjuChkLZFBja0YPSgdZ7dZtwhncLBcQe/I/E+fLuk5qxcYVJA==} - engines: {node: '>=6.0.0'} + '@jridgewell/remapping@2.3.5': + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} '@jridgewell/resolve-uri@3.1.2': resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} @@ -3509,9 +3821,15 @@ packages: '@jridgewell/sourcemap-codec@1.5.0': resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + '@jridgewell/sourcemap-codec@1.5.5': + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + '@jridgewell/trace-mapping@0.3.9': resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} @@ -3751,6 +4069,10 @@ packages: resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==} engines: {node: '>=14.16'} + '@sindresorhus/merge-streams@2.3.0': + resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} + engines: {node: '>=18'} + '@sinonjs/commons@1.8.6': resolution: {integrity: sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==} @@ -3912,9 +4234,6 @@ packages: '@types/semver@7.5.8': resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} - '@types/sha1@1.1.5': - resolution: {integrity: sha512-eE1PzjW7u2VfxI+bTsvjzjBfpwqvxSpgfUmnRNVY+PJU1NBsdGZlaO/qnVnPKHzzpgIl9YyBIxvrgBvt1mzt2A==} - '@types/split2@4.2.3': resolution: {integrity: sha512-59OXIlfUsi2k++H6CHgUQKEb2HKRokUA39HY1i1dS8/AIcqVjtAAFdf8u+HxTWK/4FUHMJQlKSZ4I6irCBJ1Zw==} @@ -3933,9 +4252,6 @@ packages: '@types/ua-parser-js@0.7.39': resolution: {integrity: sha512-P/oDfpofrdtF5xw433SPALpdSchtJmY7nsJItf8h3KXqOslkbySh8zq4dSWXH2oTjRvJ5PczVEoCZPow6GicLg==} - '@types/uuid@10.0.0': - resolution: {integrity: sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==} - '@types/vimeo__player@2.16.3': resolution: {integrity: sha512-hsOe6CZFTNyfjRjQUrNHBF4LDmjvjcU2yQIPWp5AglKeGxt11JYGToQhKUPM876gBXggqR6rMQ0/sNI06ec2Rg==} @@ -4129,10 +4445,6 @@ packages: peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - acorn-walk@7.1.1: - resolution: {integrity: sha512-wdlPY2tm/9XBr7QkKlq0WQVgiuGTX6YWPyRyBviSoScBuLfTVQhvwg6wJ369GJ/1nPfTLMfnrFIfjqVg6d+jQQ==} - engines: {node: '>=0.4.0'} - acorn-walk@7.2.0: resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} engines: {node: '>=0.4.0'} @@ -4141,11 +4453,6 @@ packages: resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} engines: {node: '>=0.4.0'} - acorn@7.3.1: - resolution: {integrity: sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA==} - engines: {node: '>=0.4.0'} - hasBin: true - acorn@7.4.1: resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} engines: {node: '>=0.4.0'} @@ -4262,6 +4569,12 @@ packages: resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} engines: {node: '>= 0.4'} + arkregex@0.0.5: + resolution: {integrity: sha512-ncYjBdLlh5/QnVsAA8De16Tc9EqmYM7y/WU9j+236KcyYNUXogpz3sC4ATIZYzzLxwI+0sEOaQLEmLmRleaEXw==} + + arktype@2.2.0: + resolution: {integrity: sha512-t54MZ7ti5BhOEvzEkgKnWvqj+UbDfWig+DHr5I34xatymPusKLS0lQpNJd8M6DzmIto2QGszHfNKoFIT8tMCZQ==} + array-buffer-byte-length@1.0.2: resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} engines: {node: '>= 0.4'} @@ -4369,24 +4682,39 @@ packages: resolution: {integrity: sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} - babel-plugin-module-resolver@5.0.2: - resolution: {integrity: sha512-9KtaCazHee2xc0ibfqsDeamwDps6FZNo5S0Q81dUqEuFzVwPhcT4J5jOqIVvgCA3Q/wO9hKYxN/Ds3tIsp5ygg==} - babel-plugin-polyfill-corejs2@0.4.12: resolution: {integrity: sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + babel-plugin-polyfill-corejs2@0.4.17: + resolution: {integrity: sha512-aTyf30K/rqAsNwN76zYrdtx8obu0E4KoUME29B1xj+B3WxgvWkp943vYQ+z8Mv3lw9xHXMHpvSPOBxzAkIa94w==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + babel-plugin-polyfill-corejs3@0.10.6: resolution: {integrity: sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + babel-plugin-polyfill-corejs3@0.14.2: + resolution: {integrity: sha512-coWpDLJ410R781Npmn/SIBZEsAetR4xVi0SxLMXPaMO4lSf1MwnkGYMtkFxew0Dn8B3/CpbpYxN0JCgg8mn67g==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + babel-plugin-polyfill-regenerator@0.6.3: resolution: {integrity: sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + babel-plugin-polyfill-regenerator@0.6.8: + resolution: {integrity: sha512-M762rNHfSF1EV3SLtnCJXFoQbbIIz0OyRwnCmV0KPC7qosSfCO0QLTSuJX3ayAebubhE6oYBAYPrBA5ljowaZg==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + babel-plugin-syntax-hermes-parser@0.34.0: + resolution: {integrity: sha512-q4xeAymMrot/21MHA3+fd5mcFF7stx6ntKFO/Of5ldyDpgTBcK1l0NiHAh4NdHHdb4aHqHgQOy7r6yk0IIlz8Q==} + babel-plugin-transform-flow-enums@0.0.2: resolution: {integrity: sha512-g4aaCrDDOsWjbm0PUUeVnkcVd6AKJsVc/MbnPhEotEpkeJQP6b8nzewohQi7+QS8UyPehOhGWn0nOwjvWpmMvQ==} @@ -4404,6 +4732,10 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + balanced-match@4.0.4: + resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} + engines: {node: 18 || 20 || >=22} + bare-events@2.5.0: resolution: {integrity: sha512-/E8dDe9dsbLyh2qrZ64PEPadOQ0F4gbl1sUJOrmph7xOiIxfY8vwab/4bFLh4Y88/Hk/ujKcrQKc+ps0mv873A==} @@ -4422,6 +4754,11 @@ packages: base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + baseline-browser-mapping@2.10.36: + resolution: {integrity: sha512-lVq/Df7LXlO79MVaaUHztSwWiG9oXoWHlgvNS51v8Dpd4+G4/VIy6qYePTw31nAVls33nUtnfezYeLkYAak9dg==} + engines: {node: '>=6.0.0'} + hasBin: true + basic-auth@2.0.1: resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==} engines: {node: '>= 0.8'} @@ -4460,6 +4797,10 @@ packages: brace-expansion@2.0.1: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + brace-expansion@5.0.6: + resolution: {integrity: sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==} + engines: {node: 18 || 20 || >=22} + braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} @@ -4485,6 +4826,11 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true + browserslist@4.28.2: + resolution: {integrity: sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + bs-logger@0.2.6: resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==} engines: {node: '>= 6'} @@ -4598,6 +4944,9 @@ packages: caniuse-lite@1.0.30001690: resolution: {integrity: sha512-5ExiE3qQN6oF8Clf8ifIDcMRCRE/dMGcETG/XGMD8/XiXm6HXQgQTh1yZYLXXpSOsEUlJm1Xr7kGULZTuGtP/w==} + caniuse-lite@1.0.30001799: + resolution: {integrity: sha512-hG1bReV+OUU+MOqK4t/ZWI0tZOyz3rqS9XuhOUz1cIcbwBKjOyJEJuw9ER5JuNyqxNk8u/JUVbGibBOL1yrjFw==} + capital-case@1.0.4: resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} @@ -4630,9 +4979,6 @@ packages: chardet@0.7.0: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} - charenc@0.0.2: - resolution: {integrity: sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==} - chokidar@3.6.0: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} @@ -4714,9 +5060,9 @@ packages: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} - clone-buffer@1.0.0: - resolution: {integrity: sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==} - engines: {node: '>= 0.10'} + cliui@9.0.1: + resolution: {integrity: sha512-k7ndgKhwoQveBL+/1tqGJYNz097I7WOvwbmmU2AR5+magtbjPWQTS1C5vzGkBC8Ym8UWRzfKUzUUqFLypY4Q+w==} + engines: {node: '>=20'} clone-deep@4.0.1: resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} @@ -4725,20 +5071,10 @@ packages: clone-response@1.0.3: resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} - clone-stats@1.0.0: - resolution: {integrity: sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==} - clone@1.0.4: resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} engines: {node: '>=0.8'} - clone@2.1.2: - resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} - engines: {node: '>=0.8'} - - cloneable-readable@1.1.3: - resolution: {integrity: sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==} - co@4.6.0: resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} @@ -4867,6 +5203,9 @@ packages: core-js-compat@3.39.0: resolution: {integrity: sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw==} + core-js-compat@3.49.0: + resolution: {integrity: sha512-VQXt1jr9cBz03b331DFDCCP90b3fanciLkgiOoy8SBHy06gNf+vQ1A3WFLqG7I8TipYIKeYK9wxd0tUrvHcOZA==} + core-util-is@1.0.2: resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} @@ -4877,15 +5216,6 @@ packages: resolution: {integrity: sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==} engines: {node: '>=4'} - cosmiconfig@9.0.0: - resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} - engines: {node: '>=14'} - peerDependencies: - typescript: '>=4.9.5' - peerDependenciesMeta: - typescript: - optional: true - cpu-features@0.0.10: resolution: {integrity: sha512-9IkYqtX3YHPCzoVg1Py+o9057a3i0fp7S530UWokCSaFVTc7CwXPRiOjRjBQQ18ZCNafx78YfnG+HALxtVmOGA==} engines: {node: '>=10.0.0'} @@ -4917,9 +5247,6 @@ packages: resolution: {integrity: sha512-mpjkSErNO6vioL/Cde2aF4UBysPFEMyn+1AN1t7Oc4yqvzSRWe8iBte4P8BHyjo64OmC+ZBxwjIqmpSpIWiQ7Q==} engines: {node: '>=10.0.0'} - crypt@0.0.2: - resolution: {integrity: sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==} - css-shorthand-properties@1.1.2: resolution: {integrity: sha512-C2AugXIpRGQTxaCW0N7n5jD/p5irUmCrwl03TrnMFBHDbdq44CFWR2zO7rK9xPN4Eo3pUxC4vQzQgbIpzrD1PQ==} @@ -5008,6 +5335,15 @@ packages: supports-color: optional: true + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + decamelize@1.2.0: resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} engines: {node: '>=0.10.0'} @@ -5030,6 +5366,14 @@ packages: dedent@0.7.0: resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} + dedent@1.7.2: + resolution: {integrity: sha512-WzMx3mW98SN+zn3hgemf4OzdmyNhhhKz5Ay0pUfQiMQ3e1g+xmTJWp/pKdwKVXhdSkAEGIIzqeuWrL3mV/AXbA==} + peerDependencies: + babel-plugin-macros: ^3.1.0 + peerDependenciesMeta: + babel-plugin-macros: + optional: true + deep-equal@2.2.3: resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==} engines: {node: '>= 0.4'} @@ -5064,14 +5408,14 @@ packages: resolution: {integrity: sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==} engines: {node: '>= 14'} - del@6.1.1: - resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==} - engines: {node: '>=10'} - del@7.1.0: resolution: {integrity: sha512-v2KyNk7efxhlyHpjEvfyxaAihKKK0nWCuf6ZtqZcFFpQRG0bJ12Qsr0RpvsICMjAAZ8DOVCxrlqpxISlMHC4Kg==} engines: {node: '>=14.16'} + del@8.0.1: + resolution: {integrity: sha512-gPqh0mKTPvaUZGAuHbrBUYKZWBNAeHG7TU3QH5EhVwPMyKvmfJaNXhcD2jTcXsJRRcffuho4vaYweu80dRrMGA==} + engines: {node: '>=18'} + delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} @@ -5182,6 +5526,9 @@ packages: engines: {node: '>=0.10.0'} hasBin: true + electron-to-chromium@1.5.372: + resolution: {integrity: sha512-M3yhbAlilnwqC8D21t28UCDGHyitShTmmLRU/H+b74P6Ski16Nb9HONYEaVpMj/pwC7BEo5B95FpjODLCWbtfA==} + electron-to-chromium@1.5.76: resolution: {integrity: sha512-CjVQyG7n7Sr+eBXE86HIulnL5N8xZY1sgmOPGuq/F0Rr0FJq63lg0kEtOIDfZBk44FnDLf6FUJ+dsJcuiUDdDQ==} @@ -5193,6 +5540,9 @@ packages: resolution: {integrity: sha512-tJdCJitoy2lrC2ldJcqN4vkqJ00lT+tOWNT1hBJjO/3FDMJa5TTIiYGCKGkn/WfCyOzUMObeohbVTj00fhiLiA==} engines: {node: '>=14.16'} + emoji-regex@10.6.0: + resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==} + emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -5362,9 +5712,6 @@ packages: estree-walker@1.0.1: resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==} - estree-walker@2.0.1: - resolution: {integrity: sha512-tF0hv+Yi2Ot1cwj9eYHtxC0jB9bmjacjQs6ZBTj82H8JwUywFuc+7E83NWfNMwHXZc11mjfFcVXPe9gEP4B8dg==} - estree-walker@2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} @@ -5384,10 +5731,6 @@ packages: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} - execa@4.1.0: - resolution: {integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==} - engines: {node: '>=10'} - execa@5.1.1: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} @@ -5454,6 +5797,10 @@ packages: resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} engines: {node: '>=8.6.0'} + fast-glob@3.3.3: + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} + engines: {node: '>=8.6.0'} + fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} @@ -5515,9 +5862,6 @@ packages: resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==} engines: {node: '>= 0.8'} - find-babel-config@2.1.2: - resolution: {integrity: sha512-ZfZp1rQyp4gyuxqt1ZqjFGVeVBvmpURMqdIWXbPRfB97Bf6BzdK/xSIbylEINzQ0kB5tlDQfn9HkNXXWsqTqLg==} - find-cache-dir@2.1.0: resolution: {integrity: sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==} engines: {node: '>=6'} @@ -5601,14 +5945,14 @@ packages: fs-constants@1.0.0: resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} - fs-extra@10.1.0: - resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} - engines: {node: '>=12'} - fs-extra@11.2.0: resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} engines: {node: '>=14.14'} + fs-extra@11.3.5: + resolution: {integrity: sha512-eKpRKAovdpZtR1WopLHxlBWvAgPny3c4gX1G5Jhwmmw4XJj0ifSD5qB5TOo8hmA0wlRKDAOAhEE1yVPgs6Fgcg==} + engines: {node: '>=14.14'} + fs-extra@8.1.0: resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} engines: {node: '>=6 <7 || >=8'} @@ -5659,6 +6003,10 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} + get-east-asian-width@1.6.0: + resolution: {integrity: sha512-QRbvDIbx6YklUe6RxeTeleMR0yv3cYH6PsPZHcnVn7xv7zO1BHN8r0XETu8n6Ye3Q+ahtSarc3WgtNWmehIBfA==} + engines: {node: '>=18'} + get-intrinsic@1.2.6: resolution: {integrity: sha512-qxsEs+9A+u85HhllWJJFicJfPDhRmjzoYdl64aMWW9yRIJmSyxdn8IEkuIM530/7T+lv0TIHd8L6Q/ra0tEoeA==} engines: {node: '>= 0.4'} @@ -5709,9 +6057,13 @@ packages: resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} hasBin: true + glob@13.0.6: + resolution: {integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==} + engines: {node: 18 || 20 || >=22} + glob@7.1.7: resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} - deprecated: Glob versions prior to v9 are no longer supported + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me glob@7.2.0: resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} @@ -5721,15 +6073,6 @@ packages: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported - glob@8.1.0: - resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} - engines: {node: '>=12'} - deprecated: Glob versions prior to v9 are no longer supported - - glob@9.3.5: - resolution: {integrity: sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==} - engines: {node: '>=16 || 14 >=14.17'} - globals@11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} @@ -5750,33 +6093,14 @@ packages: resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + globby@14.1.0: + resolution: {integrity: sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==} + engines: {node: '>=18'} + globule@1.3.4: resolution: {integrity: sha512-OPTIfhMBh7JbBYDpa5b+Q5ptmMWKwcNcFSR/0c6t8V4f3ZAVBEsKNY37QdVqmLRYSMhOUGYrY0QhSoEpzGr/Eg==} engines: {node: '>= 0.10'} - google-closure-compiler-java@20210808.0.0: - resolution: {integrity: sha512-7dEQfBzOdwdjwa/Pq8VAypNBKyWRrOcKjnNYOO9gEg2hjh8XVMeQzTqw4uANfVvvANGdE/JjD+HF6zHVgLRwjg==} - - google-closure-compiler-linux@20210808.0.0: - resolution: {integrity: sha512-byKi5ITUiWRvEIcQo76i1siVnOwrTmG+GNcBG4cJ7x8IE6+4ki9rG5pUe4+DOYHkfk52XU6XHt9aAAgCcFDKpg==} - cpu: [x64, x86] - os: [linux] - - google-closure-compiler-osx@20210808.0.0: - resolution: {integrity: sha512-iwyAY6dGj1FrrBdmfwKXkjtTGJnqe8F+9WZbfXxiBjkWLtIsJt2dD1+q7g/sw3w8mdHrGQAdxtDZP/usMwj/Rg==} - cpu: [x64, x86, arm64] - os: [darwin] - - google-closure-compiler-windows@20210808.0.0: - resolution: {integrity: sha512-VI+UUYwtGWDYwpiixrWRD8EklHgl6PMbiEaHxQSrQbH8PDXytwaOKqmsaH2lWYd5Y/BOZie2MzjY7F5JI69q1w==} - cpu: [x64] - os: [win32] - - google-closure-compiler@20210808.0.0: - resolution: {integrity: sha512-+R2+P1tT1lEnDDGk8b+WXfyVZgWjcCK9n1mmZe8pMEzPaPWxqK7GMetLVWnqfTDJ5Q+LRspOiFBv3Is+0yuhCA==} - engines: {node: '>=10'} - hasBin: true - gopd@1.2.0: resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} engines: {node: '>= 0.4'} @@ -5858,12 +6182,18 @@ packages: hermes-estree@0.23.1: resolution: {integrity: sha512-eT5MU3f5aVhTqsfIReZ6n41X5sYn4IdQL0nvz6yO+MMlPxw49aSARHLg/MSehQftyjnrE8X6bYregzSumqc6cg==} + hermes-estree@0.34.0: + resolution: {integrity: sha512-6qLylexjmuKa/YYhMiNn/3VejBsdzwmYUGmNpc693/pJzymmbufhkRW/2K6GqFgu0ApRWoqF0NbM6u82jFcOXA==} + hermes-parser@0.19.1: resolution: {integrity: sha512-Vp+bXzxYJWrpEuJ/vXxUsLnt0+y4q9zyi4zUlkLqD8FKv4LjIfOvP69R/9Lty3dCyKh0E2BU7Eypqr63/rKT/A==} hermes-parser@0.23.1: resolution: {integrity: sha512-oxl5h2DkFW83hT4DAUJorpah8ou4yvmweUzLJmmr6YV2cezduCdlil1AvU/a/xSsAFo4WUcNA4GoV5Bvq6JffA==} + hermes-parser@0.34.0: + resolution: {integrity: sha512-tcgan5UNZvu3WwmR3jDAlmwEAR2CMv8cwQVMe5j0NrLQkstf0l3ULbYPuTZWbXxbPa0PyZPiq5LYEcFVmhM9LQ==} + hermes-profile-transformer@0.0.6: resolution: {integrity: sha512-cnN7bQUm65UWOy6cbGcCcZ3rpwW8Q/j4OP5aWRhEry4Z2t2aR1cjrbp0BS+KiBN0smvP1caBgAuxutvyvJILzQ==} engines: {node: '>=8'} @@ -5925,10 +6255,6 @@ packages: resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} engines: {node: '>= 14'} - human-signals@1.1.1: - resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==} - engines: {node: '>=8.12.0'} - human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} @@ -5966,6 +6292,10 @@ packages: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} + ignore@7.0.5: + resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} + engines: {node: '>= 4'} + image-size@1.2.0: resolution: {integrity: sha512-4S8fwbO6w3GeCVN6OPtA9I5IGKkcDMPcKndtUlpJuCwu7JLjtj7JZpwqLuyY2nrmQT3AWsCJLSKPsc2mPBSl3w==} engines: {node: '>=16.x'} @@ -6049,10 +6379,6 @@ packages: resolution: {integrity: sha512-1ANGLZ+Nkv1ptFb2pa8oG8Lem4krflKuX/gINiHJHjJUKaJHk/SXk5x6K3J+39/p0h1RQ2saROclJJ+QLvETCQ==} engines: {node: '>=8'} - is-absolute@1.0.0: - resolution: {integrity: sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==} - engines: {node: '>=0.10.0'} - is-arguments@1.2.0: resolution: {integrity: sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==} engines: {node: '>= 0.4'} @@ -6144,13 +6470,6 @@ packages: resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} engines: {node: '>= 0.4'} - is-git-dirty@2.0.2: - resolution: {integrity: sha512-U3YCo+GKR/rDsY7r0v/LBICbQwsx859tDQnAT+v0E/zCDeWbQ1TUt1FtyExeyik7VIJlYOLHCIifLdz71HDalg==} - engines: {node: '>=10'} - - is-git-repository@2.0.0: - resolution: {integrity: sha512-HDO50CG5suIAcmqG4F1buqVXEZRPn+RaXIn9pFKq/947FBo2bCRwK7ZluEVZOy99a4IQyqsjbKEpAiOXCccOHQ==} - is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} @@ -6177,18 +6496,10 @@ packages: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} - is-path-cwd@2.2.0: - resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==} - engines: {node: '>=6'} - is-path-cwd@3.0.0: resolution: {integrity: sha512-kyiNFFLU0Ampr6SDZitD/DwUo4Zs1nSdnygUBqsu3LooL00Qvb5j+UnvApUn/TTj1J3OuE6BTdQ5rudKmU2ZaA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} - is-path-inside@4.0.0: resolution: {integrity: sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==} engines: {node: '>=12'} @@ -6222,10 +6533,6 @@ packages: resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} engines: {node: '>= 0.4'} - is-relative@1.0.0: - resolution: {integrity: sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==} - engines: {node: '>=0.10.0'} - is-set@2.0.3: resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} engines: {node: '>= 0.4'} @@ -6257,10 +6564,6 @@ packages: is-typedarray@1.0.0: resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} - is-unc-path@1.0.0: - resolution: {integrity: sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==} - engines: {node: '>=0.10.0'} - is-unicode-supported@0.1.0: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} engines: {node: '>=10'} @@ -6284,10 +6587,6 @@ packages: resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} engines: {node: '>= 0.4'} - is-windows@1.0.2: - resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} - engines: {node: '>=0.10.0'} - is-wsl@1.1.0: resolution: {integrity: sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==} engines: {node: '>=4'} @@ -6317,6 +6616,10 @@ packages: resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} engines: {node: '>=16'} + isexe@4.0.0: + resolution: {integrity: sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==} + engines: {node: '>=20'} + isobject@3.0.1: resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} engines: {node: '>=0.10.0'} @@ -6795,6 +7098,10 @@ packages: lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + lru-cache@11.5.1: + resolution: {integrity: sha512-RPimw/7aMdv2oqRrxKwvZXcPfwBrn/JZ2xYcY9Hus/6LaS3VOAKVWKWgNLCFSiOm1ESXinjsDlidVU7JlnCN2A==} + engines: {node: 20 || >=22} + lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} @@ -7007,6 +7314,10 @@ packages: minimalistic-assert@1.0.1: resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + minimatch@10.2.5: + resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==} + engines: {node: 18 || 20 || >=22} + minimatch@3.0.8: resolution: {integrity: sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==} @@ -7017,10 +7328,6 @@ packages: resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} engines: {node: '>=10'} - minimatch@8.0.4: - resolution: {integrity: sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==} - engines: {node: '>=16 || 14 >=14.17'} - minimatch@9.0.5: resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} engines: {node: '>=16 || 14 >=14.17'} @@ -7055,10 +7362,6 @@ packages: resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} engines: {node: '>=8'} - minipass@4.2.8: - resolution: {integrity: sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==} - engines: {node: '>=8'} - minipass@5.0.0: resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} engines: {node: '>=8'} @@ -7067,6 +7370,10 @@ packages: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} + minipass@7.1.3: + resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} + engines: {node: '>=16 || 14 >=14.17'} + minizlib@2.1.2: resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} engines: {node: '>= 8'} @@ -7188,6 +7495,10 @@ packages: node-releases@2.0.19: resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} + node-releases@2.0.47: + resolution: {integrity: sha512-Uzmd6LXpouKo8EUK68IjH4+E01w/hXyV3R3g/geCJo+rXLNfh1xucB+LOzYEOQPSiUK3h/xZf0cQGcSsmyL2Og==} + engines: {node: '>=18'} + node-stream-zip@1.15.0: resolution: {integrity: sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw==} engines: {node: '>=0.12.0'} @@ -7403,6 +7714,10 @@ packages: resolution: {integrity: sha512-VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==} engines: {node: '>=12'} + p-map@7.0.4: + resolution: {integrity: sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ==} + engines: {node: '>=18'} + p-timeout@5.1.0: resolution: {integrity: sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==} engines: {node: '>=12'} @@ -7509,6 +7824,10 @@ packages: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} + path-scurry@2.0.2: + resolution: {integrity: sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==} + engines: {node: 18 || 20 || >=22} + path-to-regexp@0.1.12: resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==} @@ -7520,6 +7839,10 @@ packages: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} + path-type@6.0.0: + resolution: {integrity: sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==} + engines: {node: '>=18'} + path@0.12.7: resolution: {integrity: sha512-aXXC6s+1w7otVF9UletFkFcDsJeO7lSZBPUQhtb5O0xJe8LtYhj/GxldoL09bBj9+ZmE2hNoHqQSFMN5fikh4Q==} @@ -7576,10 +7899,6 @@ packages: resolution: {integrity: sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==} engines: {node: '>=10'} - pkg-up@3.1.0: - resolution: {integrity: sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==} - engines: {node: '>=8'} - plur@5.1.0: resolution: {integrity: sha512-VP/72JeXqak2KiOzjgKtQen5y3IZHn+9GOuLDafPv0eXa47xq0At93XahYBs26MsifCQ4enGKwbjBTKgb9QJXg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -7595,6 +7914,10 @@ packages: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} + presentable-error@0.0.1: + resolution: {integrity: sha512-E6rsNU1QNJgB3sjj7OANinGncFKuK+164sLXw1/CqBjj/EkXSoSdHCtWQGBNlREIGLnL7IEUEGa08YFVUbrhVg==} + engines: {node: '>=16'} + pretty-format@26.6.2: resolution: {integrity: sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==} engines: {node: '>= 10'} @@ -7741,9 +8064,9 @@ packages: react-is@18.3.1: resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} - react-native-builder-bob@0.30.3: - resolution: {integrity: sha512-7w+oNNNkY+cR7Z3GgKaDWg7CeSxpv1ZUox42Ji/rViAxygMmtSPBe5I3K723OjGJXhvJCyUK5RRvzefNPw7Amg==} - engines: {node: '>= 18.0.0'} + react-native-builder-bob@0.42.1: + resolution: {integrity: sha512-piw301vvc+lDydNkKJfpJfLFyKH5ORcdFeHUUiSo/NIxhAT2SU8TZjvYyZsUmTpCPKwnapmZis3fRSOJpJTCkw==} + engines: {node: ^20.19.0 || ^22.12.0 || >= 23.4.0} hasBin: true react-native-get-random-values@1.11.0: @@ -7751,6 +8074,9 @@ packages: peerDependencies: react-native: '>=0.56' + react-native-monorepo-config@0.3.5: + resolution: {integrity: sha512-Xdu7k0s4V2FHn2OGnlr3D22Dgt5ij0ek9yzloPoLkHh3rL/jUQbPrawieKsAbkqoenv/7pfPJwMlPT27bvN1fg==} + react-native@0.74.5: resolution: {integrity: sha512-Bgg2WvxaGODukJMTZFTZBNMKVaROHLwSb8VAGEdrlvKwfb1hHg/3aXTUICYk7dwgAnb+INbGMwnF8yeAgIUmqw==} engines: {node: '>=18'} @@ -7828,6 +8154,10 @@ packages: resolution: {integrity: sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==} engines: {node: '>=4'} + regenerate-unicode-properties@10.2.2: + resolution: {integrity: sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==} + engines: {node: '>=4'} + regenerate@1.4.2: resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} @@ -7837,9 +8167,6 @@ packages: regenerator-runtime@0.14.1: resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} - regenerator-transform@0.15.2: - resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} - regexp.prototype.flags@1.5.3: resolution: {integrity: sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==} engines: {node: '>= 0.4'} @@ -7852,6 +8179,10 @@ packages: resolution: {integrity: sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==} engines: {node: '>=4'} + regexpu-core@6.4.0: + resolution: {integrity: sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==} + engines: {node: '>=4'} + regjsgen@0.8.0: resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==} @@ -7859,12 +8190,9 @@ packages: resolution: {integrity: sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==} hasBin: true - remove-trailing-separator@1.1.0: - resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==} - - replace-ext@1.0.1: - resolution: {integrity: sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==} - engines: {node: '>= 0.10'} + regjsparser@0.13.1: + resolution: {integrity: sha512-dLsljMd9sqwRkby8zhO1gSg3PnJIBFid8f4CQj/sXx+7cKx+E7u0PKhZ+U4wmhx7EfmtvnA318oVaIkAB1lRJw==} + hasBin: true request@2.88.2: resolution: {integrity: sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==} @@ -7881,9 +8209,6 @@ packages: requires-port@1.0.0: resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} - reselect@4.1.8: - resolution: {integrity: sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==} - resolve-alpn@1.2.1: resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} @@ -7912,6 +8237,11 @@ packages: engines: {node: '>= 0.4'} hasBin: true + resolve@1.22.12: + resolution: {integrity: sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==} + engines: {node: '>= 0.4'} + hasBin: true + responselike@2.0.1: resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==} @@ -8117,9 +8447,6 @@ packages: setprototypeof@1.2.0: resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} - sha1@1.1.1: - resolution: {integrity: sha512-dZBS6OrMjtgVkopB1Gmo4RQCDKiZsqcpAQpkV/aaj+FCrCg8r4I4qMkDPQjBgLIxlmu9k4nUbWq6ohXahOneYA==} - shallow-clone@3.0.1: resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} engines: {node: '>=8'} @@ -8182,6 +8509,10 @@ packages: resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} engines: {node: '>=12'} + slash@5.1.0: + resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} + engines: {node: '>=14.16'} + slice-ansi@2.1.0: resolution: {integrity: sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==} engines: {node: '>=6'} @@ -8342,6 +8673,10 @@ packages: resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} engines: {node: '>=12'} + string-width@7.2.0: + resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} + engines: {node: '>=18'} + string.prototype.padend@3.1.6: resolution: {integrity: sha512-XZpspuSB7vJWhvJc9DLSlrXl1mcA2BdoY5jjnS135ydXqLoqhs96JjDtCkjJEQHvfqZIp9hBuBMgI589peyx9Q==} engines: {node: '>= 0.4'} @@ -8674,6 +9009,11 @@ packages: engines: {node: '>=4.2.0'} hasBin: true + typescript@6.0.3: + resolution: {integrity: sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==} + engines: {node: '>=14.17'} + hasBin: true + ua-parser-js@1.0.40: resolution: {integrity: sha512-z6PJ8Lml+v3ichVojCiB8toQJBuwR42ySM4ezjXIqXK3M0HczmKQ3LF4rhU55PfD99KEEXQG6yb7iOMyvYuHew==} hasBin: true @@ -8685,10 +9025,6 @@ packages: unbzip2-stream@1.4.3: resolution: {integrity: sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==} - unc-path-regex@0.1.2: - resolution: {integrity: sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==} - engines: {node: '>=0.10.0'} - undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} @@ -8707,10 +9043,18 @@ packages: resolution: {integrity: sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==} engines: {node: '>=4'} + unicode-match-property-value-ecmascript@2.2.1: + resolution: {integrity: sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==} + engines: {node: '>=4'} + unicode-property-aliases-ecmascript@2.1.0: resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} engines: {node: '>=4'} + unicorn-magic@0.3.0: + resolution: {integrity: sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==} + engines: {node: '>=18'} + unique-filename@1.1.1: resolution: {integrity: sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==} @@ -8739,6 +9083,12 @@ packages: peerDependencies: browserslist: '>= 4.21.0' + update-browserslist-db@1.2.3: + resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + upper-case-first@2.0.2: resolution: {integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==} @@ -8765,17 +9115,13 @@ packages: resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} engines: {node: '>= 0.4.0'} - uuid@10.0.0: - resolution: {integrity: sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==} + uuid@11.1.1: + resolution: {integrity: sha512-vIYxrBCC/N/K+Js3qSN88go7kIfNPssr/hHCesKCQNAjmgvYS2oqr69kIufEG+O4+PfezOH4EbIeHCfFov8ZgQ==} hasBin: true uuid@3.4.0: resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} - deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. - hasBin: true - - uuid@8.1.0: - resolution: {integrity: sha512-CI18flHDznR0lq54xBycOVmphdCYnQLKn8abKn7PXUiKUGdEd+/l9LWNJmugXel4hXq7S+RMNl34ecyC9TntWg==} + deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028). hasBin: true v8-compile-cache-lib@3.0.1: @@ -8802,13 +9148,6 @@ packages: resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==} engines: {'0': node >=0.6.0} - vinyl-sourcemaps-apply@0.2.1: - resolution: {integrity: sha512-+oDh3KYZBoZC8hfocrbrxbLUeaYtQK7J5WU5Br9VqWqmCll3tFJqKp97GC9GmMsVIL0qnx2DgEDVxdo5EZ5sSw==} - - vinyl@2.2.1: - resolution: {integrity: sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==} - engines: {node: '>= 0.10'} - vlq@1.0.1: resolution: {integrity: sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==} @@ -8953,6 +9292,11 @@ packages: engines: {node: ^16.13.0 || >=18.0.0} hasBin: true + which@6.0.1: + resolution: {integrity: sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==} + engines: {node: ^20.17.0 || >=22.9.0} + hasBin: true + wide-align@1.1.5: resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} @@ -8976,6 +9320,10 @@ packages: resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} engines: {node: '>=12'} + wrap-ansi@9.0.2: + resolution: {integrity: sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==} + engines: {node: '>=18'} + wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} @@ -9066,6 +9414,10 @@ packages: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} + yargs-parser@22.0.0: + resolution: {integrity: sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==} + engines: {node: ^20.19.0 || ^22.12.0 || >=23} + yargs@15.4.1: resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} engines: {node: '>=8'} @@ -9078,6 +9430,10 @@ packages: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} + yargs@18.0.0: + resolution: {integrity: sha512-4UEqdc2RYGHZc7Doyqkrqiln3p9X2DZVxaGbwhn2pi7MrRagKaOcIKe8L3OxYcbhXLgLFUS3zAYuQjKBQgmuNg==} + engines: {node: ^20.19.0 || ^22.12.0 || >=23} + yauzl@2.10.0: resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} @@ -9102,26 +9458,16 @@ packages: snapshots: - '@ampproject/remapping@0.2.0': - dependencies: - '@jridgewell/resolve-uri': 1.0.0 - sourcemap-codec: 1.4.8 - '@ampproject/remapping@2.3.0': dependencies: '@jridgewell/gen-mapping': 0.3.8 '@jridgewell/trace-mapping': 0.3.25 - '@ampproject/rollup-plugin-closure-compiler@0.27.0(rollup@2.70.2)': + '@ark/schema@0.56.0': dependencies: - '@ampproject/remapping': 0.2.0 - acorn: 7.3.1 - acorn-walk: 7.1.1 - estree-walker: 2.0.1 - google-closure-compiler: 20210808.0.0 - magic-string: 0.25.7 - rollup: 2.70.2 - uuid: 8.1.0 + '@ark/util': 0.56.0 + + '@ark/util@0.56.0': {} '@arr/every@1.0.1': {} @@ -9131,8 +9477,16 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.1.1 + '@babel/code-frame@7.29.7': + dependencies: + '@babel/helper-validator-identifier': 7.29.7 + js-tokens: 4.0.0 + picocolors: 1.1.1 + '@babel/compat-data@7.26.3': {} + '@babel/compat-data@7.29.7': {} + '@babel/core@7.26.0': dependencies: '@ampproject/remapping': 2.3.0 @@ -9153,6 +9507,26 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/core@7.29.7': + dependencies: + '@babel/code-frame': 7.29.7 + '@babel/generator': 7.29.7 + '@babel/helper-compilation-targets': 7.29.7 + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7) + '@babel/helpers': 7.29.7 + '@babel/parser': 7.29.7 + '@babel/template': 7.29.7 + '@babel/traverse': 7.29.7 + '@babel/types': 7.29.7 + '@jridgewell/remapping': 2.3.5 + convert-source-map: 2.0.0 + debug: 4.4.0 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + '@babel/generator@7.26.3': dependencies: '@babel/parser': 7.26.3 @@ -9161,10 +9535,22 @@ snapshots: '@jridgewell/trace-mapping': 0.3.25 jsesc: 3.1.0 + '@babel/generator@7.29.7': + dependencies: + '@babel/parser': 7.29.7 + '@babel/types': 7.29.7 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + jsesc: 3.1.0 + '@babel/helper-annotate-as-pure@7.25.9': dependencies: '@babel/types': 7.26.3 + '@babel/helper-annotate-as-pure@7.29.7': + dependencies: + '@babel/types': 7.29.7 + '@babel/helper-compilation-targets@7.25.9': dependencies: '@babel/compat-data': 7.26.3 @@ -9173,6 +9559,14 @@ snapshots: lru-cache: 5.1.1 semver: 6.3.1 + '@babel/helper-compilation-targets@7.29.7': + dependencies: + '@babel/compat-data': 7.29.7 + '@babel/helper-validator-option': 7.29.7 + browserslist: 4.28.2 + lru-cache: 5.1.1 + semver: 6.3.1 + '@babel/helper-create-class-features-plugin@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -9186,6 +9580,19 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-create-class-features-plugin@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-annotate-as-pure': 7.29.7 + '@babel/helper-member-expression-to-functions': 7.29.7 + '@babel/helper-optimise-call-expression': 7.29.7 + '@babel/helper-replace-supers': 7.29.7(@babel/core@7.29.7) + '@babel/helper-skip-transparent-expression-wrappers': 7.29.7 + '@babel/traverse': 7.29.7 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + '@babel/helper-create-regexp-features-plugin@7.26.3(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -9193,6 +9600,20 @@ snapshots: regexpu-core: 6.2.0 semver: 6.3.1 + '@babel/helper-create-regexp-features-plugin@7.26.3(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-annotate-as-pure': 7.25.9 + regexpu-core: 6.2.0 + semver: 6.3.1 + + '@babel/helper-create-regexp-features-plugin@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-annotate-as-pure': 7.29.7 + regexpu-core: 6.4.0 + semver: 6.3.1 + '@babel/helper-define-polyfill-provider@0.6.3(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -9204,10 +9625,35 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-define-polyfill-provider@0.6.3(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-compilation-targets': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 + debug: 4.4.0 + lodash.debounce: 4.0.8 + resolve: 1.22.10 + transitivePeerDependencies: + - supports-color + optional: true + + '@babel/helper-define-polyfill-provider@0.6.8(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-compilation-targets': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + debug: 4.4.3 + lodash.debounce: 4.0.8 + resolve: 1.22.12 + transitivePeerDependencies: + - supports-color + '@babel/helper-environment-visitor@7.24.7': dependencies: '@babel/types': 7.26.3 + '@babel/helper-globals@7.29.7': {} + '@babel/helper-member-expression-to-functions@7.25.9': dependencies: '@babel/traverse': 7.26.4 @@ -9215,6 +9661,13 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-member-expression-to-functions@7.29.7': + dependencies: + '@babel/traverse': 7.29.7 + '@babel/types': 7.29.7 + transitivePeerDependencies: + - supports-color + '@babel/helper-module-imports@7.25.9': dependencies: '@babel/traverse': 7.26.4 @@ -9222,6 +9675,13 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-module-imports@7.29.7': + dependencies: + '@babel/traverse': 7.29.7 + '@babel/types': 7.29.7 + transitivePeerDependencies: + - supports-color + '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -9231,12 +9691,27 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-module-transforms@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-module-imports': 7.29.7 + '@babel/helper-validator-identifier': 7.29.7 + '@babel/traverse': 7.29.7 + transitivePeerDependencies: + - supports-color + '@babel/helper-optimise-call-expression@7.25.9': dependencies: '@babel/types': 7.26.3 + '@babel/helper-optimise-call-expression@7.29.7': + dependencies: + '@babel/types': 7.29.7 + '@babel/helper-plugin-utils@7.25.9': {} + '@babel/helper-plugin-utils@7.29.7': {} + '@babel/helper-remap-async-to-generator@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -9246,6 +9721,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-remap-async-to-generator@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-annotate-as-pure': 7.29.7 + '@babel/helper-wrap-function': 7.29.7 + '@babel/traverse': 7.29.7 + transitivePeerDependencies: + - supports-color + '@babel/helper-replace-supers@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -9255,6 +9739,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-replace-supers@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-member-expression-to-functions': 7.29.7 + '@babel/helper-optimise-call-expression': 7.29.7 + '@babel/traverse': 7.29.7 + transitivePeerDependencies: + - supports-color + '@babel/helper-skip-transparent-expression-wrappers@7.25.9': dependencies: '@babel/traverse': 7.26.4 @@ -9262,12 +9755,25 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-skip-transparent-expression-wrappers@7.29.7': + dependencies: + '@babel/traverse': 7.29.7 + '@babel/types': 7.29.7 + transitivePeerDependencies: + - supports-color + '@babel/helper-string-parser@7.25.9': {} + '@babel/helper-string-parser@7.29.7': {} + '@babel/helper-validator-identifier@7.25.9': {} + '@babel/helper-validator-identifier@7.29.7': {} + '@babel/helper-validator-option@7.25.9': {} + '@babel/helper-validator-option@7.29.7': {} + '@babel/helper-wrap-function@7.25.9': dependencies: '@babel/template': 7.25.9 @@ -9276,47 +9782,72 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-wrap-function@7.29.7': + dependencies: + '@babel/template': 7.29.7 + '@babel/traverse': 7.29.7 + '@babel/types': 7.29.7 + transitivePeerDependencies: + - supports-color + '@babel/helpers@7.26.0': dependencies: '@babel/template': 7.25.9 '@babel/types': 7.26.3 + '@babel/helpers@7.29.7': + dependencies: + '@babel/template': 7.29.7 + '@babel/types': 7.29.7 + '@babel/parser@7.26.3': dependencies: '@babel/types': 7.26.3 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9(@babel/core@7.26.0)': + '@babel/parser@7.29.7': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/traverse': 7.26.4 + '@babel/types': 7.29.7 + + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-bugfix-safari-rest-destructuring-rhs-array@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 - '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.26.0) + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/traverse': 7.26.4 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.29.7 + '@babel/plugin-transform-optional-chaining': 7.29.7(@babel/core@7.29.7) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color @@ -9385,30 +9916,54 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.26.0)': + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.29.7 '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.25.9 + optional: true + '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.25.9 + optional: true + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.25.9 + optional: true + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.25.9 + optional: true + '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -9424,93 +9979,184 @@ snapshots: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-import-assertions@7.26.0(@babel/core@7.26.0)': + '@babel/plugin-syntax-flow@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-syntax-import-assertions@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.25.9 + optional: true + + '@babel/plugin-syntax-import-attributes@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.25.9 + optional: true + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.25.9 + optional: true + '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.25.9 + optional: true + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.25.9 + optional: true + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.25.9 + optional: true + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.25.9 + optional: true + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.25.9 + optional: true + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.25.9 + optional: true + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.25.9 + optional: true + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.29.7 '@babel/helper-plugin-utils': 7.25.9 + optional: true - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.26.0)': + '@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-typescript@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-transform-arrow-functions@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-async-generator-functions@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-arrow-functions@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.26.0) - '@babel/traverse': 7.26.4 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-async-generator-functions@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-remap-async-to-generator': 7.29.7(@babel/core@7.29.7) + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color @@ -9523,29 +10169,43 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-block-scoped-functions@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-async-to-generator@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.29.7 + '@babel/helper-module-imports': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-remap-async-to-generator': 7.29.7(@babel/core@7.29.7) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-block-scoped-functions@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-block-scoping@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-class-properties@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-block-scoping@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-class-properties@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-class-static-block@7.26.0(@babel/core@7.26.0)': + '@babel/plugin-transform-class-static-block@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.29.7 + '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 transitivePeerDependencies: - supports-color @@ -9561,48 +10221,82 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-classes@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-annotate-as-pure': 7.29.7 + '@babel/helper-compilation-targets': 7.29.7 + '@babel/helper-globals': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-replace-supers': 7.29.7(@babel/core@7.29.7) + '@babel/traverse': 7.29.7 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-computed-properties@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 '@babel/template': 7.25.9 + '@babel/plugin-transform-computed-properties@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/template': 7.29.7 + '@babel/plugin-transform-destructuring@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-dotall-regex@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-destructuring@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/traverse': 7.29.7 + transitivePeerDependencies: + - supports-color - '@babel/plugin-transform-duplicate-keys@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-dotall-regex@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.29.7 + '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-duplicate-keys@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-dynamic-import@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.29.7 + '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-exponentiation-operator@7.26.3(@babel/core@7.26.0)': + '@babel/plugin-transform-dynamic-import@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-export-namespace-from@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-explicit-resource-management@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-transform-destructuring': 7.29.7(@babel/core@7.29.7) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-exponentiation-operator@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-export-namespace-from@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-flow-strip-types@7.25.9(@babel/core@7.26.0)': dependencies: @@ -9610,11 +10304,17 @@ snapshots: '@babel/helper-plugin-utils': 7.25.9 '@babel/plugin-syntax-flow': 7.26.0(@babel/core@7.26.0) - '@babel/plugin-transform-for-of@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-flow-strip-types@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-syntax-flow': 7.29.7(@babel/core@7.29.7) + + '@babel/plugin-transform-for-of@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.29.7 transitivePeerDependencies: - supports-color @@ -9627,31 +10327,45 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-json-strings@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-function-name@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.29.7 + '@babel/helper-compilation-targets': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/traverse': 7.29.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-json-strings@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-literals@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-logical-assignment-operators@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-literals@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-member-expression-literals@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-logical-assignment-operators@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-modules-amd@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-member-expression-literals@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-modules-amd@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 transitivePeerDependencies: - supports-color @@ -9663,21 +10377,29 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-systemjs@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-modules-commonjs@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-validator-identifier': 7.25.9 - '@babel/traverse': 7.26.4 + '@babel/core': 7.29.7 + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-umd@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-modules-systemjs@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.29.7 + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-validator-identifier': 7.29.7 + '@babel/traverse': 7.29.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-modules-umd@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-module-transforms': 7.29.7(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 transitivePeerDependencies: - supports-color @@ -9687,46 +10409,56 @@ snapshots: '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-new-target@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-named-capturing-groups-regex@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.29.7 + '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-nullish-coalescing-operator@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-new-target@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-numeric-separator@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-nullish-coalescing-operator@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-object-rest-spread@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-numeric-separator@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-compilation-targets': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.0) + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-object-super@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-object-rest-spread@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-replace-supers': 7.25.9(@babel/core@7.26.0) + '@babel/core': 7.29.7 + '@babel/helper-compilation-targets': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-transform-destructuring': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-parameters': 7.29.7(@babel/core@7.29.7) + '@babel/traverse': 7.29.7 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-optional-catch-binding@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-object-super@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-replace-supers': 7.29.7(@babel/core@7.29.7) + transitivePeerDependencies: + - supports-color - '@babel/plugin-transform-optional-chaining@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-optional-catch-binding@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-optional-chaining@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.29.7 transitivePeerDependencies: - supports-color @@ -9735,6 +10467,11 @@ snapshots: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-transform-parameters@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-transform-private-methods@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -9743,6 +10480,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-private-methods@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-private-property-in-object@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -9752,20 +10497,34 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-property-literals@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-private-property-in-object@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.29.7 + '@babel/helper-annotate-as-pure': 7.29.7 + '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-property-literals@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-react-display-name@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-react-jsx-development@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-react-display-name@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.26.0 - '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.26.0) + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-react-jsx-development@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/plugin-transform-react-jsx': 7.29.7(@babel/core@7.29.7) transitivePeerDependencies: - supports-color @@ -9790,28 +10549,38 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-react-pure-annotations@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-react-jsx@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-annotate-as-pure': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.29.7 + '@babel/helper-annotate-as-pure': 7.29.7 + '@babel/helper-module-imports': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-syntax-jsx': 7.29.7(@babel/core@7.29.7) + '@babel/types': 7.29.7 + transitivePeerDependencies: + - supports-color - '@babel/plugin-transform-regenerator@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-react-pure-annotations@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - regenerator-transform: 0.15.2 + '@babel/core': 7.29.7 + '@babel/helper-annotate-as-pure': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-regexp-modifiers@7.26.0(@babel/core@7.26.0)': + '@babel/plugin-transform-regenerator@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-reserved-words@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-regexp-modifiers@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.29.7 + '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-reserved-words@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-runtime@7.25.9(@babel/core@7.26.0)': dependencies: @@ -9825,11 +10594,29 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-runtime@7.25.9(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-plugin-utils': 7.25.9 + babel-plugin-polyfill-corejs2: 0.4.12(@babel/core@7.29.7) + babel-plugin-polyfill-corejs3: 0.10.6(@babel/core@7.29.7) + babel-plugin-polyfill-regenerator: 0.6.3(@babel/core@7.29.7) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + optional: true + '@babel/plugin-transform-shorthand-properties@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-transform-shorthand-properties@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-transform-spread@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -9838,25 +10625,38 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/plugin-transform-spread@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.29.7 + transitivePeerDependencies: + - supports-color + '@babel/plugin-transform-sticky-regex@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 - '@babel/plugin-transform-strict-mode@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-sticky-regex@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-template-literals@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-strict-mode@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-typeof-symbol@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-template-literals@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-typeof-symbol@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-transform-typescript@7.26.3(@babel/core@7.26.0)': dependencies: @@ -9869,100 +10669,119 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/plugin-transform-unicode-escapes@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-typescript@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.29.7 + '@babel/helper-annotate-as-pure': 7.29.7 + '@babel/helper-create-class-features-plugin': 7.29.7(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.29.7 + '@babel/plugin-syntax-typescript': 7.29.7(@babel/core@7.29.7) + transitivePeerDependencies: + - supports-color - '@babel/plugin-transform-unicode-property-regex@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-unicode-escapes@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-unicode-regex@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-unicode-property-regex@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.29.7 + '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 - '@babel/plugin-transform-unicode-sets-regex@7.25.9(@babel/core@7.26.0)': + '@babel/plugin-transform-unicode-regex@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.0) '@babel/helper-plugin-utils': 7.25.9 - '@babel/preset-env@7.26.0(@babel/core@7.26.0)': - dependencies: - '@babel/compat-data': 7.26.3 - '@babel/core': 7.26.0 - '@babel/helper-compilation-targets': 7.25.9 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-validator-option': 7.25.9 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.26.0) - '@babel/plugin-syntax-import-assertions': 7.26.0(@babel/core@7.26.0) - '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.0) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.26.0) - '@babel/plugin-transform-arrow-functions': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-async-generator-functions': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-async-to-generator': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-block-scoped-functions': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-block-scoping': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-class-properties': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-class-static-block': 7.26.0(@babel/core@7.26.0) - '@babel/plugin-transform-classes': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-computed-properties': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-destructuring': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-dotall-regex': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-duplicate-keys': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-dynamic-import': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-exponentiation-operator': 7.26.3(@babel/core@7.26.0) - '@babel/plugin-transform-export-namespace-from': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-for-of': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-function-name': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-json-strings': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-literals': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-logical-assignment-operators': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-member-expression-literals': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-modules-amd': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-modules-commonjs': 7.26.3(@babel/core@7.26.0) - '@babel/plugin-transform-modules-systemjs': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-modules-umd': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-named-capturing-groups-regex': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-new-target': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-nullish-coalescing-operator': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-numeric-separator': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-object-rest-spread': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-object-super': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-optional-catch-binding': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-private-methods': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-private-property-in-object': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-property-literals': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-regenerator': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-regexp-modifiers': 7.26.0(@babel/core@7.26.0) - '@babel/plugin-transform-reserved-words': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-shorthand-properties': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-spread': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-sticky-regex': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-template-literals': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-typeof-symbol': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-unicode-escapes': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-unicode-property-regex': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-unicode-regex': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-unicode-sets-regex': 7.25.9(@babel/core@7.26.0) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.26.0) - babel-plugin-polyfill-corejs2: 0.4.12(@babel/core@7.26.0) - babel-plugin-polyfill-corejs3: 0.10.6(@babel/core@7.26.0) - babel-plugin-polyfill-regenerator: 0.6.3(@babel/core@7.26.0) - core-js-compat: 3.39.0 + '@babel/plugin-transform-unicode-regex@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/plugin-transform-unicode-sets-regex@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-create-regexp-features-plugin': 7.29.7(@babel/core@7.29.7) + '@babel/helper-plugin-utils': 7.29.7 + + '@babel/preset-env@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/compat-data': 7.29.7 + '@babel/core': 7.29.7 + '@babel/helper-compilation-targets': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-validator-option': 7.29.7 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-bugfix-safari-rest-destructuring-rhs-array': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.29.7) + '@babel/plugin-syntax-import-assertions': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-syntax-import-attributes': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.29.7) + '@babel/plugin-transform-arrow-functions': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-async-generator-functions': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-async-to-generator': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-block-scoped-functions': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-block-scoping': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-class-properties': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-class-static-block': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-classes': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-computed-properties': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-destructuring': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-dotall-regex': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-duplicate-keys': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-dynamic-import': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-explicit-resource-management': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-exponentiation-operator': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-export-namespace-from': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-for-of': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-function-name': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-json-strings': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-literals': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-logical-assignment-operators': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-member-expression-literals': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-modules-amd': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-modules-commonjs': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-modules-systemjs': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-modules-umd': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-named-capturing-groups-regex': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-new-target': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-nullish-coalescing-operator': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-numeric-separator': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-object-rest-spread': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-object-super': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-optional-catch-binding': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-optional-chaining': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-parameters': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-private-methods': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-private-property-in-object': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-property-literals': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-regenerator': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-regexp-modifiers': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-reserved-words': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-shorthand-properties': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-spread': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-sticky-regex': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-template-literals': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-typeof-symbol': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-unicode-escapes': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-unicode-property-regex': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-unicode-regex': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-unicode-sets-regex': 7.29.7(@babel/core@7.29.7) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.29.7) + babel-plugin-polyfill-corejs2: 0.4.17(@babel/core@7.29.7) + babel-plugin-polyfill-corejs3: 0.14.2(@babel/core@7.29.7) + babel-plugin-polyfill-regenerator: 0.6.8(@babel/core@7.29.7) + core-js-compat: 3.49.0 semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -9974,22 +10793,22 @@ snapshots: '@babel/helper-validator-option': 7.25.9 '@babel/plugin-transform-flow-strip-types': 7.25.9(@babel/core@7.26.0) - '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.26.0)': + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 '@babel/types': 7.26.3 esutils: 2.0.3 - '@babel/preset-react@7.26.3(@babel/core@7.26.0)': + '@babel/preset-react@7.29.7(@babel/core@7.29.7)': dependencies: - '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.25.9 - '@babel/helper-validator-option': 7.25.9 - '@babel/plugin-transform-react-display-name': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-react-jsx-development': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-transform-react-pure-annotations': 7.25.9(@babel/core@7.26.0) + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-validator-option': 7.29.7 + '@babel/plugin-transform-react-display-name': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-react-jsx': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-react-jsx-development': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-react-pure-annotations': 7.29.7(@babel/core@7.29.7) transitivePeerDependencies: - supports-color @@ -10004,6 +10823,17 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/preset-typescript@7.29.7(@babel/core@7.29.7)': + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/helper-validator-option': 7.29.7 + '@babel/plugin-syntax-jsx': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-modules-commonjs': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-typescript': 7.29.7(@babel/core@7.29.7) + transitivePeerDependencies: + - supports-color + '@babel/register@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -10023,6 +10853,12 @@ snapshots: '@babel/parser': 7.26.3 '@babel/types': 7.26.3 + '@babel/template@7.29.7': + dependencies: + '@babel/code-frame': 7.29.7 + '@babel/parser': 7.29.7 + '@babel/types': 7.29.7 + '@babel/traverse@7.26.4': dependencies: '@babel/code-frame': 7.26.2 @@ -10035,11 +10871,28 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/traverse@7.29.7': + dependencies: + '@babel/code-frame': 7.29.7 + '@babel/generator': 7.29.7 + '@babel/helper-globals': 7.29.7 + '@babel/parser': 7.29.7 + '@babel/template': 7.29.7 + '@babel/types': 7.29.7 + debug: 4.4.0 + transitivePeerDependencies: + - supports-color + '@babel/types@7.26.3': dependencies: '@babel/helper-string-parser': 7.25.9 '@babel/helper-validator-identifier': 7.25.9 + '@babel/types@7.29.7': + dependencies: + '@babel/helper-string-parser': 7.29.7 + '@babel/helper-validator-identifier': 7.29.7 + '@balena/dockerignore@1.0.2': {} '@bcoe/v8-coverage@0.2.3': {} @@ -10067,6 +10920,8 @@ snapshots: transitivePeerDependencies: - supports-color + '@fingerprintjs/botd@2.0.0': {} + '@gar/promisify@1.1.3': {} '@hapi/hoek@9.3.0': {} @@ -10357,13 +11212,21 @@ snapshots: '@types/yargs': 17.0.33 chalk: 4.1.2 + '@jridgewell/gen-mapping@0.3.13': + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping': 0.3.31 + '@jridgewell/gen-mapping@0.3.8': dependencies: '@jridgewell/set-array': 1.2.1 '@jridgewell/sourcemap-codec': 1.5.0 '@jridgewell/trace-mapping': 0.3.25 - '@jridgewell/resolve-uri@1.0.0': {} + '@jridgewell/remapping@2.3.5': + dependencies: + '@jridgewell/gen-mapping': 0.3.8 + '@jridgewell/trace-mapping': 0.3.25 '@jridgewell/resolve-uri@3.1.2': {} @@ -10376,11 +11239,18 @@ snapshots: '@jridgewell/sourcemap-codec@1.5.0': {} + '@jridgewell/sourcemap-codec@1.5.5': {} + '@jridgewell/trace-mapping@0.3.25': dependencies: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping@0.3.31': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping@0.3.9': dependencies: '@jridgewell/resolve-uri': 3.1.2 @@ -10480,10 +11350,10 @@ snapshots: transitivePeerDependencies: - supports-color - '@react-native-async-storage/async-storage@2.0.0(react-native@0.74.5(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.18)(encoding@0.1.13)(react@18.2.0))': + '@react-native-async-storage/async-storage@2.0.0(react-native@0.74.5(@babel/preset-env@7.29.7(@babel/core@7.29.7))(@types/react@18.3.18)(encoding@0.1.13)(react@18.2.0))': dependencies: merge-options: 3.0.4 - react-native: 0.74.5(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.18)(encoding@0.1.13)(react@18.2.0) + react-native: 0.74.5(@babel/preset-env@7.29.7(@babel/core@7.29.7))(@types/react@18.3.18)(encoding@0.1.13)(react@18.2.0) '@react-native-community/cli-clean@13.6.9(encoding@0.1.13)': dependencies: @@ -10626,14 +11496,14 @@ snapshots: '@react-native/assets-registry@0.74.87': {} - '@react-native/babel-plugin-codegen@0.74.87(@babel/preset-env@7.26.0(@babel/core@7.26.0))': + '@react-native/babel-plugin-codegen@0.74.87(@babel/preset-env@7.29.7(@babel/core@7.29.7))': dependencies: - '@react-native/codegen': 0.74.87(@babel/preset-env@7.26.0(@babel/core@7.26.0)) + '@react-native/codegen': 0.74.87(@babel/preset-env@7.29.7(@babel/core@7.29.7)) transitivePeerDependencies: - '@babel/preset-env' - supports-color - '@react-native/babel-preset@0.74.87(@babel/preset-env@7.26.0(@babel/core@7.26.0))': + '@react-native/babel-preset@0.74.87(@babel/preset-env@7.29.7(@babel/core@7.29.7))': dependencies: '@babel/core': 7.26.0 '@babel/plugin-proposal-async-generator-functions': 7.20.7(@babel/core@7.26.0) @@ -10675,32 +11545,32 @@ snapshots: '@babel/plugin-transform-typescript': 7.26.3(@babel/core@7.26.0) '@babel/plugin-transform-unicode-regex': 7.25.9(@babel/core@7.26.0) '@babel/template': 7.25.9 - '@react-native/babel-plugin-codegen': 0.74.87(@babel/preset-env@7.26.0(@babel/core@7.26.0)) + '@react-native/babel-plugin-codegen': 0.74.87(@babel/preset-env@7.29.7(@babel/core@7.29.7)) babel-plugin-transform-flow-enums: 0.0.2(@babel/core@7.26.0) react-refresh: 0.14.2 transitivePeerDependencies: - '@babel/preset-env' - supports-color - '@react-native/codegen@0.74.87(@babel/preset-env@7.26.0(@babel/core@7.26.0))': + '@react-native/codegen@0.74.87(@babel/preset-env@7.29.7(@babel/core@7.29.7))': dependencies: '@babel/parser': 7.26.3 - '@babel/preset-env': 7.26.0(@babel/core@7.26.0) + '@babel/preset-env': 7.29.7(@babel/core@7.29.7) glob: 7.2.3 hermes-parser: 0.19.1 invariant: 2.2.4 - jscodeshift: 0.14.0(@babel/preset-env@7.26.0(@babel/core@7.26.0)) + jscodeshift: 0.14.0(@babel/preset-env@7.29.7(@babel/core@7.29.7)) mkdirp: 0.5.6 nullthrows: 1.1.1 transitivePeerDependencies: - supports-color - '@react-native/community-cli-plugin@0.74.87(@babel/preset-env@7.26.0(@babel/core@7.26.0))(encoding@0.1.13)': + '@react-native/community-cli-plugin@0.74.87(@babel/preset-env@7.29.7(@babel/core@7.29.7))(encoding@0.1.13)': dependencies: '@react-native-community/cli-server-api': 13.6.9(encoding@0.1.13) '@react-native-community/cli-tools': 13.6.9(encoding@0.1.13) '@react-native/dev-middleware': 0.74.87(encoding@0.1.13) - '@react-native/metro-babel-transformer': 0.74.87(@babel/preset-env@7.26.0(@babel/core@7.26.0)) + '@react-native/metro-babel-transformer': 0.74.87(@babel/preset-env@7.29.7(@babel/core@7.29.7)) chalk: 4.1.2 execa: 5.1.1 metro: 0.80.12 @@ -10740,10 +11610,10 @@ snapshots: '@react-native/js-polyfills@0.74.87': {} - '@react-native/metro-babel-transformer@0.74.87(@babel/preset-env@7.26.0(@babel/core@7.26.0))': + '@react-native/metro-babel-transformer@0.74.87(@babel/preset-env@7.29.7(@babel/core@7.29.7))': dependencies: '@babel/core': 7.26.0 - '@react-native/babel-preset': 0.74.87(@babel/preset-env@7.26.0(@babel/core@7.26.0)) + '@react-native/babel-preset': 0.74.87(@babel/preset-env@7.29.7(@babel/core@7.29.7)) hermes-parser: 0.19.1 nullthrows: 1.1.1 transitivePeerDependencies: @@ -10752,12 +11622,12 @@ snapshots: '@react-native/normalize-colors@0.74.87': {} - '@react-native/virtualized-lists@0.74.87(@types/react@18.3.18)(react-native@0.74.5(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.18)(encoding@0.1.13)(react@18.2.0))(react@18.2.0)': + '@react-native/virtualized-lists@0.74.87(@types/react@18.3.18)(react-native@0.74.5(@babel/preset-env@7.29.7(@babel/core@7.29.7))(@types/react@18.3.18)(encoding@0.1.13)(react@18.2.0))(react@18.2.0)': dependencies: invariant: 2.2.4 nullthrows: 1.1.1 react: 18.2.0 - react-native: 0.74.5(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.18)(encoding@0.1.13)(react@18.2.0) + react-native: 0.74.5(@babel/preset-env@7.29.7(@babel/core@7.29.7))(@types/react@18.3.18)(encoding@0.1.13)(react@18.2.0) optionalDependencies: '@types/react': 18.3.18 @@ -10835,6 +11705,8 @@ snapshots: '@sindresorhus/is@5.6.0': {} + '@sindresorhus/merge-streams@2.3.0': {} + '@sinonjs/commons@1.8.6': dependencies: type-detect: 4.0.8 @@ -11013,10 +11885,6 @@ snapshots: '@types/semver@7.5.8': {} - '@types/sha1@1.1.5': - dependencies: - '@types/node': 14.6.4 - '@types/split2@4.2.3': dependencies: '@types/node': 14.6.4 @@ -11033,8 +11901,6 @@ snapshots: '@types/ua-parser-js@0.7.39': {} - '@types/uuid@10.0.0': {} - '@types/vimeo__player@2.16.3': {} '@types/which@2.0.2': {} @@ -11398,16 +12264,12 @@ snapshots: dependencies: acorn: 8.14.0 - acorn-walk@7.1.1: {} - acorn-walk@7.2.0: {} acorn-walk@8.3.4: dependencies: acorn: 8.14.0 - acorn@7.3.1: {} - acorn@7.4.1: {} acorn@8.14.0: {} @@ -11525,6 +12387,16 @@ snapshots: aria-query@5.3.2: {} + arkregex@0.0.5: + dependencies: + '@ark/util': 0.56.0 + + arktype@2.2.0: + dependencies: + '@ark/schema': 0.56.0 + '@ark/util': 0.56.0 + arkregex: 0.0.5 + array-buffer-byte-length@1.0.2: dependencies: call-bound: 1.0.3 @@ -11661,6 +12533,20 @@ snapshots: transitivePeerDependencies: - supports-color + babel-jest@28.1.3(@babel/core@7.29.7): + dependencies: + '@babel/core': 7.29.7 + '@jest/transform': 28.1.3 + '@types/babel__core': 7.20.5 + babel-plugin-istanbul: 6.1.1 + babel-preset-jest: 28.1.3(@babel/core@7.29.7) + chalk: 4.1.2 + graceful-fs: 4.2.11 + slash: 3.0.0 + transitivePeerDependencies: + - supports-color + optional: true + babel-plugin-istanbul@6.1.1: dependencies: '@babel/helper-plugin-utils': 7.25.9 @@ -11678,19 +12564,30 @@ snapshots: '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.20.6 - babel-plugin-module-resolver@5.0.2: + babel-plugin-polyfill-corejs2@0.4.12(@babel/core@7.26.0): + dependencies: + '@babel/compat-data': 7.26.3 + '@babel/core': 7.26.0 + '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.0) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + babel-plugin-polyfill-corejs2@0.4.12(@babel/core@7.29.7): dependencies: - find-babel-config: 2.1.2 - glob: 9.3.5 - pkg-up: 3.1.0 - reselect: 4.1.8 - resolve: 1.22.10 + '@babel/compat-data': 7.26.3 + '@babel/core': 7.29.7 + '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.29.7) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + optional: true - babel-plugin-polyfill-corejs2@0.4.12(@babel/core@7.26.0): + babel-plugin-polyfill-corejs2@0.4.17(@babel/core@7.29.7): dependencies: - '@babel/compat-data': 7.26.3 - '@babel/core': 7.26.0 - '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.0) + '@babel/compat-data': 7.29.7 + '@babel/core': 7.29.7 + '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.7) semver: 6.3.1 transitivePeerDependencies: - supports-color @@ -11703,6 +12600,23 @@ snapshots: transitivePeerDependencies: - supports-color + babel-plugin-polyfill-corejs3@0.10.6(@babel/core@7.29.7): + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.29.7) + core-js-compat: 3.39.0 + transitivePeerDependencies: + - supports-color + optional: true + + babel-plugin-polyfill-corejs3@0.14.2(@babel/core@7.29.7): + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.7) + core-js-compat: 3.49.0 + transitivePeerDependencies: + - supports-color + babel-plugin-polyfill-regenerator@0.6.3(@babel/core@7.26.0): dependencies: '@babel/core': 7.26.0 @@ -11710,6 +12624,25 @@ snapshots: transitivePeerDependencies: - supports-color + babel-plugin-polyfill-regenerator@0.6.3(@babel/core@7.29.7): + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.29.7) + transitivePeerDependencies: + - supports-color + optional: true + + babel-plugin-polyfill-regenerator@0.6.8(@babel/core@7.29.7): + dependencies: + '@babel/core': 7.29.7 + '@babel/helper-define-polyfill-provider': 0.6.8(@babel/core@7.29.7) + transitivePeerDependencies: + - supports-color + + babel-plugin-syntax-hermes-parser@0.34.0: + dependencies: + hermes-parser: 0.34.0 + babel-plugin-transform-flow-enums@0.0.2(@babel/core@7.26.0): dependencies: '@babel/plugin-syntax-flow': 7.26.0(@babel/core@7.26.0) @@ -11735,14 +12668,43 @@ snapshots: '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.26.0) '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.26.0) + babel-preset-current-node-syntax@1.1.0(@babel/core@7.29.7): + dependencies: + '@babel/core': 7.29.7 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.29.7) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.29.7) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.29.7) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.29.7) + '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.29.7) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.29.7) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.29.7) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.29.7) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.29.7) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.29.7) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.29.7) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.29.7) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.29.7) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.29.7) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.29.7) + optional: true + babel-preset-jest@28.1.3(@babel/core@7.26.0): dependencies: '@babel/core': 7.26.0 babel-plugin-jest-hoist: 28.1.3 babel-preset-current-node-syntax: 1.1.0(@babel/core@7.26.0) + babel-preset-jest@28.1.3(@babel/core@7.29.7): + dependencies: + '@babel/core': 7.29.7 + babel-plugin-jest-hoist: 28.1.3 + babel-preset-current-node-syntax: 1.1.0(@babel/core@7.29.7) + optional: true + balanced-match@1.0.2: {} + balanced-match@4.0.4: {} + bare-events@2.5.0: optional: true @@ -11768,6 +12730,8 @@ snapshots: base64-js@1.5.1: {} + baseline-browser-mapping@2.10.36: {} + basic-auth@2.0.1: dependencies: safe-buffer: 5.1.2 @@ -11828,6 +12792,10 @@ snapshots: dependencies: balanced-match: 1.0.2 + brace-expansion@5.0.6: + dependencies: + balanced-match: 4.0.4 + braces@3.0.3: dependencies: fill-range: 7.1.1 @@ -11866,6 +12834,14 @@ snapshots: node-releases: 2.0.19 update-browserslist-db: 1.1.1(browserslist@4.24.3) + browserslist@4.28.2: + dependencies: + baseline-browser-mapping: 2.10.36 + caniuse-lite: 1.0.30001799 + electron-to-chromium: 1.5.372 + node-releases: 2.0.47 + update-browserslist-db: 1.2.3(browserslist@4.28.2) + bs-logger@0.2.6: dependencies: fast-json-stable-stringify: 2.1.0 @@ -11995,6 +12971,8 @@ snapshots: caniuse-lite@1.0.30001690: {} + caniuse-lite@1.0.30001799: {} + capital-case@1.0.4: dependencies: no-case: 3.0.4 @@ -12039,8 +13017,6 @@ snapshots: chardet@0.7.0: {} - charenc@0.0.2: {} - chokidar@3.6.0: dependencies: anymatch: 3.1.3 @@ -12127,7 +13103,11 @@ snapshots: strip-ansi: 6.0.1 wrap-ansi: 7.0.0 - clone-buffer@1.0.0: {} + cliui@9.0.1: + dependencies: + string-width: 7.2.0 + strip-ansi: 7.1.0 + wrap-ansi: 9.0.2 clone-deep@4.0.1: dependencies: @@ -12139,18 +13119,8 @@ snapshots: dependencies: mimic-response: 1.0.1 - clone-stats@1.0.0: {} - clone@1.0.4: {} - clone@2.1.2: {} - - cloneable-readable@1.1.3: - dependencies: - inherits: 2.0.4 - process-nextick-args: 2.0.1 - readable-stream: 2.3.8 - co@4.6.0: {} code-excerpt@4.0.0: @@ -12282,6 +13252,10 @@ snapshots: dependencies: browserslist: 4.24.3 + core-js-compat@3.49.0: + dependencies: + browserslist: 4.28.2 + core-util-is@1.0.2: {} core-util-is@1.0.3: {} @@ -12293,15 +13267,6 @@ snapshots: js-yaml: 3.14.1 parse-json: 4.0.0 - cosmiconfig@9.0.0(typescript@4.6.4): - dependencies: - env-paths: 2.2.1 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - parse-json: 5.2.0 - optionalDependencies: - typescript: 4.6.4 - cpu-features@0.0.10: dependencies: buildcheck: 0.0.6 @@ -12341,8 +13306,6 @@ snapshots: dependencies: '@types/node': 16.18.122 - crypt@0.0.2: {} - css-shorthand-properties@1.1.2: {} css-value@0.0.1: {} @@ -12415,6 +13378,10 @@ snapshots: dependencies: ms: 2.1.3 + debug@4.4.3: + dependencies: + ms: 2.1.3 + decamelize@1.2.0: {} decamelize@6.0.0: {} @@ -12429,6 +13396,8 @@ snapshots: dedent@0.7.0: {} + dedent@1.7.2: {} + deep-equal@2.2.3: dependencies: array-buffer-byte-length: 1.0.2 @@ -12480,17 +13449,6 @@ snapshots: escodegen: 2.1.0 esprima: 4.0.1 - del@6.1.1: - dependencies: - globby: 11.1.0 - graceful-fs: 4.2.11 - is-glob: 4.0.3 - is-path-cwd: 2.2.0 - is-path-inside: 3.0.3 - p-map: 4.0.0 - rimraf: 3.0.2 - slash: 3.0.0 - del@7.1.0: dependencies: globby: 13.2.2 @@ -12502,6 +13460,16 @@ snapshots: rimraf: 3.0.2 slash: 4.0.0 + del@8.0.1: + dependencies: + globby: 14.1.0 + is-glob: 4.0.3 + is-path-cwd: 3.0.0 + is-path-inside: 4.0.0 + p-map: 7.0.4 + presentable-error: 0.0.1 + slash: 5.1.0 + delayed-stream@1.0.0: {} delegates@1.0.0: {} @@ -12608,12 +13576,16 @@ snapshots: dependencies: jake: 10.9.2 + electron-to-chromium@1.5.372: {} + electron-to-chromium@1.5.76: {} emittery@0.10.2: {} emittery@1.0.3: {} + emoji-regex@10.6.0: {} + emoji-regex@8.0.0: {} emoji-regex@9.2.2: {} @@ -12855,8 +13827,6 @@ snapshots: estree-walker@1.0.1: {} - estree-walker@2.0.1: {} - estree-walker@2.0.2: {} esutils@2.0.3: {} @@ -12867,18 +13837,6 @@ snapshots: events@3.3.0: {} - execa@4.1.0: - dependencies: - cross-spawn: 7.0.6 - get-stream: 5.2.0 - human-signals: 1.1.1 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 - execa@5.1.1: dependencies: cross-spawn: 7.0.6 @@ -13013,6 +13971,14 @@ snapshots: merge2: 1.4.1 micromatch: 4.0.8 + fast-glob@3.3.3: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + fast-json-stable-stringify@2.1.0: {} fast-levenshtein@2.0.6: {} @@ -13085,10 +14051,6 @@ snapshots: statuses: 2.0.1 unpipe: 1.0.0 - find-babel-config@2.1.2: - dependencies: - json5: 2.2.3 - find-cache-dir@2.1.0: dependencies: commondir: 1.0.1 @@ -13165,13 +14127,13 @@ snapshots: fs-constants@1.0.0: {} - fs-extra@10.1.0: + fs-extra@11.2.0: dependencies: graceful-fs: 4.2.11 jsonfile: 6.1.0 universalify: 2.0.1 - fs-extra@11.2.0: + fs-extra@11.3.5: dependencies: graceful-fs: 4.2.11 jsonfile: 6.1.0 @@ -13239,6 +14201,8 @@ snapshots: get-caller-file@2.0.5: {} + get-east-asian-width@1.6.0: {} + get-intrinsic@1.2.6: dependencies: call-bind-apply-helpers: 1.0.1 @@ -13301,12 +14265,18 @@ snapshots: package-json-from-dist: 1.0.1 path-scurry: 1.11.1 + glob@13.0.6: + dependencies: + minimatch: 10.2.5 + minipass: 7.1.3 + path-scurry: 2.0.2 + glob@7.1.7: dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 inherits: 2.0.4 - minimatch: 3.0.8 + minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 @@ -13328,21 +14298,6 @@ snapshots: once: 1.4.0 path-is-absolute: 1.0.1 - glob@8.1.0: - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 5.1.6 - once: 1.4.0 - - glob@9.3.5: - dependencies: - fs.realpath: 1.0.0 - minimatch: 8.0.4 - minipass: 4.2.8 - path-scurry: 1.11.1 - globals@11.12.0: {} globals@13.24.0: @@ -13371,35 +14326,21 @@ snapshots: merge2: 1.4.1 slash: 4.0.0 + globby@14.1.0: + dependencies: + '@sindresorhus/merge-streams': 2.3.0 + fast-glob: 3.3.3 + ignore: 7.0.5 + path-type: 6.0.0 + slash: 5.1.0 + unicorn-magic: 0.3.0 + globule@1.3.4: dependencies: glob: 7.1.7 lodash: 4.17.21 minimatch: 3.0.8 - google-closure-compiler-java@20210808.0.0: {} - - google-closure-compiler-linux@20210808.0.0: - optional: true - - google-closure-compiler-osx@20210808.0.0: - optional: true - - google-closure-compiler-windows@20210808.0.0: - optional: true - - google-closure-compiler@20210808.0.0: - dependencies: - chalk: 2.4.2 - google-closure-compiler-java: 20210808.0.0 - minimist: 1.2.8 - vinyl: 2.2.1 - vinyl-sourcemaps-apply: 0.2.1 - optionalDependencies: - google-closure-compiler-linux: 20210808.0.0 - google-closure-compiler-osx: 20210808.0.0 - google-closure-compiler-windows: 20210808.0.0 - gopd@1.2.0: {} got@11.8.6: @@ -13487,6 +14428,8 @@ snapshots: hermes-estree@0.23.1: {} + hermes-estree@0.34.0: {} + hermes-parser@0.19.1: dependencies: hermes-estree: 0.19.1 @@ -13495,6 +14438,10 @@ snapshots: dependencies: hermes-estree: 0.23.1 + hermes-parser@0.34.0: + dependencies: + hermes-estree: 0.34.0 + hermes-profile-transformer@0.0.6: dependencies: source-map: 0.7.4 @@ -13578,8 +14525,6 @@ snapshots: transitivePeerDependencies: - supports-color - human-signals@1.1.1: {} - human-signals@2.1.0: {} human-signals@5.0.0: {} @@ -13610,6 +14555,8 @@ snapshots: ignore@5.3.2: {} + ignore@7.0.5: {} + image-size@1.2.0: dependencies: queue: 6.0.2 @@ -13693,11 +14640,6 @@ snapshots: irregular-plurals@3.5.0: {} - is-absolute@1.0.0: - dependencies: - is-relative: 1.0.0 - is-windows: 1.0.2 - is-arguments@1.2.0: dependencies: call-bound: 1.0.3 @@ -13777,16 +14719,6 @@ snapshots: dependencies: has-tostringtag: 1.0.2 - is-git-dirty@2.0.2: - dependencies: - execa: 4.1.0 - is-git-repository: 2.0.0 - - is-git-repository@2.0.0: - dependencies: - execa: 4.1.0 - is-absolute: 1.0.0 - is-glob@4.0.3: dependencies: is-extglob: 2.1.1 @@ -13806,12 +14738,8 @@ snapshots: is-number@7.0.0: {} - is-path-cwd@2.2.0: {} - is-path-cwd@3.0.0: {} - is-path-inside@3.0.3: {} - is-path-inside@4.0.0: {} is-plain-obj@2.1.0: {} @@ -13839,10 +14767,6 @@ snapshots: has-tostringtag: 1.0.2 hasown: 2.0.2 - is-relative@1.0.0: - dependencies: - is-unc-path: 1.0.0 - is-set@2.0.3: {} is-shared-array-buffer@1.0.4: @@ -13870,10 +14794,6 @@ snapshots: is-typedarray@1.0.0: {} - is-unc-path@1.0.0: - dependencies: - unc-path-regex: 0.1.2 - is-unicode-supported@0.1.0: {} is-unicode-supported@1.3.0: {} @@ -13891,8 +14811,6 @@ snapshots: call-bound: 1.0.3 get-intrinsic: 1.2.6 - is-windows@1.0.2: {} - is-wsl@1.1.0: {} is-wsl@2.2.0: @@ -13915,6 +14833,8 @@ snapshots: isexe@3.1.1: {} + isexe@4.0.0: {} + isobject@3.0.1: {} isstream@0.1.2: {} @@ -14524,7 +15444,7 @@ snapshots: jsc-safe-url@0.2.4: {} - jscodeshift@0.14.0(@babel/preset-env@7.26.0(@babel/core@7.26.0)): + jscodeshift@0.14.0(@babel/preset-env@7.29.7(@babel/core@7.29.7)): dependencies: '@babel/core': 7.26.0 '@babel/parser': 7.26.3 @@ -14532,7 +15452,7 @@ snapshots: '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.26.0) '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.26.0) '@babel/plugin-transform-modules-commonjs': 7.26.3(@babel/core@7.26.0) - '@babel/preset-env': 7.26.0(@babel/core@7.26.0) + '@babel/preset-env': 7.29.7(@babel/core@7.29.7) '@babel/preset-flow': 7.25.9(@babel/core@7.26.0) '@babel/preset-typescript': 7.26.0(@babel/core@7.26.0) '@babel/register': 7.25.9(@babel/core@7.26.0) @@ -14752,6 +15672,8 @@ snapshots: lru-cache@10.4.3: {} + lru-cache@11.5.1: {} + lru-cache@5.1.1: dependencies: yallist: 3.1.1 @@ -15066,6 +15988,10 @@ snapshots: minimalistic-assert@1.0.1: {} + minimatch@10.2.5: + dependencies: + brace-expansion: 5.0.6 + minimatch@3.0.8: dependencies: brace-expansion: 1.1.11 @@ -15078,10 +16004,6 @@ snapshots: dependencies: brace-expansion: 2.0.1 - minimatch@8.0.4: - dependencies: - brace-expansion: 2.0.1 - minimatch@9.0.5: dependencies: brace-expansion: 2.0.1 @@ -15121,12 +16043,12 @@ snapshots: dependencies: yallist: 4.0.0 - minipass@4.2.8: {} - minipass@5.0.0: {} minipass@7.1.2: {} + minipass@7.1.3: {} + minizlib@2.1.2: dependencies: minipass: 3.3.6 @@ -15231,6 +16153,8 @@ snapshots: node-releases@2.0.19: {} + node-releases@2.0.47: {} + node-stream-zip@1.15.0: {} nofilter@3.1.0: {} @@ -15466,6 +16390,8 @@ snapshots: dependencies: aggregate-error: 4.0.1 + p-map@7.0.4: {} + p-timeout@5.1.0: {} p-try@2.2.0: {} @@ -15586,6 +16512,11 @@ snapshots: lru-cache: 10.4.3 minipass: 7.1.2 + path-scurry@2.0.2: + dependencies: + lru-cache: 11.5.1 + minipass: 7.1.3 + path-to-regexp@0.1.12: {} path-type@3.0.0: @@ -15594,6 +16525,8 @@ snapshots: path-type@4.0.0: {} + path-type@6.0.0: {} + path@0.12.7: dependencies: process: 0.11.10 @@ -15636,10 +16569,6 @@ snapshots: dependencies: find-up: 5.0.0 - pkg-up@3.1.0: - dependencies: - find-up: 3.0.0 - plur@5.1.0: dependencies: irregular-plurals: 3.5.0 @@ -15653,6 +16582,8 @@ snapshots: prelude-ls@1.2.1: {} + presentable-error@0.0.1: {} + pretty-format@26.6.2: dependencies: '@jest/types': 26.6.2 @@ -15717,7 +16648,7 @@ snapshots: proxy-agent@6.3.0: dependencies: agent-base: 7.1.3 - debug: 4.3.4 + debug: 4.4.0 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 lru-cache: 7.18.3 @@ -15730,7 +16661,7 @@ snapshots: proxy-agent@6.3.1: dependencies: agent-base: 7.1.3 - debug: 4.3.4 + debug: 4.4.0 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 lru-cache: 7.18.3 @@ -15838,54 +16769,58 @@ snapshots: react-is@18.3.1: {} - react-native-builder-bob@0.30.3(typescript@4.6.4): - dependencies: - '@babel/core': 7.26.0 - '@babel/plugin-transform-strict-mode': 7.25.9(@babel/core@7.26.0) - '@babel/preset-env': 7.26.0(@babel/core@7.26.0) - '@babel/preset-flow': 7.25.9(@babel/core@7.26.0) - '@babel/preset-react': 7.26.3(@babel/core@7.26.0) - '@babel/preset-typescript': 7.26.0(@babel/core@7.26.0) - babel-plugin-module-resolver: 5.0.2 - browserslist: 4.24.3 - cosmiconfig: 9.0.0(typescript@4.6.4) + react-native-builder-bob@0.42.1: + dependencies: + '@babel/core': 7.29.7 + '@babel/plugin-transform-flow-strip-types': 7.29.7(@babel/core@7.29.7) + '@babel/plugin-transform-strict-mode': 7.29.7(@babel/core@7.29.7) + '@babel/preset-env': 7.29.7(@babel/core@7.29.7) + '@babel/preset-react': 7.29.7(@babel/core@7.29.7) + '@babel/preset-typescript': 7.29.7(@babel/core@7.29.7) + '@jridgewell/sourcemap-codec': 1.5.5 + arktype: 2.2.0 + babel-plugin-syntax-hermes-parser: 0.34.0 + browserslist: 4.28.2 cross-spawn: 7.0.6 - dedent: 0.7.0 - del: 6.1.1 - escape-string-regexp: 4.0.0 - fs-extra: 10.1.0 - glob: 8.1.0 - is-git-dirty: 2.0.2 + dedent: 1.7.2 + del: 8.0.1 + escape-string-regexp: 5.0.0 + fs-extra: 11.3.5 + glob: 13.0.6 json5: 2.2.3 kleur: 4.1.5 - metro-config: 0.80.12 prompts: 2.4.2 - which: 2.0.2 - yargs: 17.7.2 + react-native-monorepo-config: 0.3.5 + typescript: 6.0.3 + which: 6.0.1 + yargs: 18.0.0 transitivePeerDependencies: - - bufferutil + - babel-plugin-macros - supports-color - - typescript - - utf-8-validate - react-native-get-random-values@1.11.0(react-native@0.74.5(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.18)(encoding@0.1.13)(react@18.2.0)): + react-native-get-random-values@1.11.0(react-native@0.74.5(@babel/preset-env@7.29.7(@babel/core@7.29.7))(@types/react@18.3.18)(encoding@0.1.13)(react@18.2.0)): dependencies: fast-base64-decode: 1.0.0 - react-native: 0.74.5(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.18)(encoding@0.1.13)(react@18.2.0) + react-native: 0.74.5(@babel/preset-env@7.29.7(@babel/core@7.29.7))(@types/react@18.3.18)(encoding@0.1.13)(react@18.2.0) - react-native@0.74.5(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.18)(encoding@0.1.13)(react@18.2.0): + react-native-monorepo-config@0.3.5: + dependencies: + escape-string-regexp: 5.0.0 + fast-glob: 3.3.3 + + react-native@0.74.5(@babel/preset-env@7.29.7(@babel/core@7.29.7))(@types/react@18.3.18)(encoding@0.1.13)(react@18.2.0): dependencies: '@jest/create-cache-key-function': 29.7.0 '@react-native-community/cli': 13.6.9(encoding@0.1.13) '@react-native-community/cli-platform-android': 13.6.9(encoding@0.1.13) '@react-native-community/cli-platform-ios': 13.6.9(encoding@0.1.13) '@react-native/assets-registry': 0.74.87 - '@react-native/codegen': 0.74.87(@babel/preset-env@7.26.0(@babel/core@7.26.0)) - '@react-native/community-cli-plugin': 0.74.87(@babel/preset-env@7.26.0(@babel/core@7.26.0))(encoding@0.1.13) + '@react-native/codegen': 0.74.87(@babel/preset-env@7.29.7(@babel/core@7.29.7)) + '@react-native/community-cli-plugin': 0.74.87(@babel/preset-env@7.29.7(@babel/core@7.29.7))(encoding@0.1.13) '@react-native/gradle-plugin': 0.74.87 '@react-native/js-polyfills': 0.74.87 '@react-native/normalize-colors': 0.74.87 - '@react-native/virtualized-lists': 0.74.87(@types/react@18.3.18)(react-native@0.74.5(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@types/react@18.3.18)(encoding@0.1.13)(react@18.2.0))(react@18.2.0) + '@react-native/virtualized-lists': 0.74.87(@types/react@18.3.18)(react-native@0.74.5(@babel/preset-env@7.29.7(@babel/core@7.29.7))(@types/react@18.3.18)(encoding@0.1.13)(react@18.2.0))(react@18.2.0) abort-controller: 3.0.0 anser: 1.4.10 ansi-regex: 5.0.1 @@ -16018,16 +16953,16 @@ snapshots: dependencies: regenerate: 1.4.2 + regenerate-unicode-properties@10.2.2: + dependencies: + regenerate: 1.4.2 + regenerate@1.4.2: {} regenerator-runtime@0.13.11: {} regenerator-runtime@0.14.1: {} - regenerator-transform@0.15.2: - dependencies: - '@babel/runtime': 7.26.0 - regexp.prototype.flags@1.5.3: dependencies: call-bind: 1.0.8 @@ -16046,15 +16981,24 @@ snapshots: unicode-match-property-ecmascript: 2.0.0 unicode-match-property-value-ecmascript: 2.2.0 + regexpu-core@6.4.0: + dependencies: + regenerate: 1.4.2 + regenerate-unicode-properties: 10.2.2 + regjsgen: 0.8.0 + regjsparser: 0.13.1 + unicode-match-property-ecmascript: 2.0.0 + unicode-match-property-value-ecmascript: 2.2.1 + regjsgen@0.8.0: {} regjsparser@0.12.0: dependencies: jsesc: 3.0.2 - remove-trailing-separator@1.1.0: {} - - replace-ext@1.0.1: {} + regjsparser@0.13.1: + dependencies: + jsesc: 3.1.0 request@2.88.2: dependencies: @@ -16085,8 +17029,6 @@ snapshots: requires-port@1.0.0: {} - reselect@4.1.8: {} - resolve-alpn@1.2.1: {} resolve-cwd@3.0.0: @@ -16107,6 +17049,13 @@ snapshots: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 + resolve@1.22.12: + dependencies: + es-errors: 1.3.0 + is-core-module: 2.16.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + responselike@2.0.1: dependencies: lowercase-keys: 2.0.0 @@ -16184,7 +17133,7 @@ snapshots: serialize-javascript: 4.0.0 terser: 5.37.0 - rollup-plugin-ts@2.0.7(@babel/core@7.26.0)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.26.0))(@babel/preset-env@7.26.0(@babel/core@7.26.0))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4): + rollup-plugin-ts@2.0.7(@babel/core@7.29.7)(@babel/plugin-transform-runtime@7.25.9(@babel/core@7.29.7))(@babel/preset-env@7.29.7(@babel/core@7.29.7))(@babel/runtime@7.26.0)(rollup@2.70.2)(typescript@4.6.4): dependencies: '@rollup/pluginutils': 4.2.1 '@wessberg/stringutil': 1.0.19 @@ -16199,9 +17148,9 @@ snapshots: tslib: 2.8.1 typescript: 4.6.4 optionalDependencies: - '@babel/core': 7.26.0 - '@babel/plugin-transform-runtime': 7.25.9(@babel/core@7.26.0) - '@babel/preset-env': 7.26.0(@babel/core@7.26.0) + '@babel/core': 7.29.7 + '@babel/plugin-transform-runtime': 7.25.9(@babel/core@7.29.7) + '@babel/preset-env': 7.29.7(@babel/core@7.29.7) '@babel/runtime': 7.26.0 rollup-pluginutils@2.8.2: @@ -16346,11 +17295,6 @@ snapshots: setprototypeof@1.2.0: {} - sha1@1.1.1: - dependencies: - charenc: 0.0.2 - crypt: 0.0.2 - shallow-clone@3.0.1: dependencies: kind-of: 6.0.3 @@ -16409,6 +17353,8 @@ snapshots: slash@4.0.0: {} + slash@5.1.0: {} + slice-ansi@2.1.0: dependencies: ansi-styles: 3.2.1 @@ -16590,6 +17536,12 @@ snapshots: emoji-regex: 9.2.2 strip-ansi: 7.1.0 + string-width@7.2.0: + dependencies: + emoji-regex: 10.6.0 + get-east-asian-width: 1.6.0 + strip-ansi: 7.1.0 + string.prototype.padend@3.1.6: dependencies: call-bind: 1.0.8 @@ -16833,7 +17785,7 @@ snapshots: compatfactory: 0.0.13(typescript@4.6.4) typescript: 4.6.4 - ts-jest@28.0.8(@babel/core@7.26.0)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.26.0))(jest@28.1.3(@types/node@14.6.4)(ts-node@10.9.2(@types/node@14.6.4)(typescript@4.6.4)))(typescript@4.6.4): + ts-jest@28.0.8(@babel/core@7.29.7)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.29.7))(jest@28.1.3(@types/node@14.6.4)(ts-node@10.9.2(@types/node@14.6.4)(typescript@4.6.4)))(typescript@4.6.4): dependencies: bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 @@ -16846,11 +17798,11 @@ snapshots: typescript: 4.6.4 yargs-parser: 21.1.1 optionalDependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.29.7 '@jest/types': 28.1.3 - babel-jest: 28.1.3(@babel/core@7.26.0) + babel-jest: 28.1.3(@babel/core@7.29.7) - ts-jest@28.0.8(@babel/core@7.26.0)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.26.0))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4): + ts-jest@28.0.8(@babel/core@7.29.7)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.29.7))(jest@28.1.3(@types/node@20.17.10)(ts-node@10.9.2(@types/node@20.17.10)(typescript@4.6.4)))(typescript@4.6.4): dependencies: bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 @@ -16863,9 +17815,9 @@ snapshots: typescript: 4.6.4 yargs-parser: 21.1.1 optionalDependencies: - '@babel/core': 7.26.0 + '@babel/core': 7.29.7 '@jest/types': 28.1.3 - babel-jest: 28.1.3(@babel/core@7.26.0) + babel-jest: 28.1.3(@babel/core@7.29.7) ts-node@10.9.2(@types/node@14.6.4)(typescript@4.6.4): dependencies: @@ -16983,6 +17935,8 @@ snapshots: typescript@4.6.4: {} + typescript@6.0.3: {} + ua-parser-js@1.0.40: {} unbox-primitive@1.1.0: @@ -16997,8 +17951,6 @@ snapshots: buffer: 5.7.1 through: 2.3.8 - unc-path-regex@0.1.2: {} - undici-types@5.26.5: {} undici-types@6.19.8: {} @@ -17012,8 +17964,12 @@ snapshots: unicode-match-property-value-ecmascript@2.2.0: {} + unicode-match-property-value-ecmascript@2.2.1: {} + unicode-property-aliases-ecmascript@2.1.0: {} + unicorn-magic@0.3.0: {} + unique-filename@1.1.1: dependencies: unique-slug: 2.0.2 @@ -17036,6 +17992,12 @@ snapshots: escalade: 3.2.0 picocolors: 1.1.1 + update-browserslist-db@1.2.3(browserslist@4.28.2): + dependencies: + browserslist: 4.28.2 + escalade: 3.2.0 + picocolors: 1.1.1 + upper-case-first@2.0.2: dependencies: tslib: 2.8.1 @@ -17063,12 +18025,10 @@ snapshots: utils-merge@1.0.1: {} - uuid@10.0.0: {} + uuid@11.1.1: {} uuid@3.4.0: {} - uuid@8.1.0: {} - v8-compile-cache-lib@3.0.1: {} v8-compile-cache@2.4.0: {} @@ -17096,19 +18056,6 @@ snapshots: core-util-is: 1.0.2 extsprintf: 1.3.0 - vinyl-sourcemaps-apply@0.2.1: - dependencies: - source-map: 0.5.7 - - vinyl@2.2.1: - dependencies: - clone: 2.1.2 - clone-buffer: 1.0.0 - clone-stats: 1.0.0 - cloneable-readable: 1.1.3 - remove-trailing-separator: 1.1.0 - replace-ext: 1.0.1 - vlq@1.0.1: {} w3c-hr-time@1.0.2: @@ -17316,9 +18263,13 @@ snapshots: dependencies: isexe: 3.1.1 + which@6.0.1: + dependencies: + isexe: 4.0.0 + wide-align@1.1.5: dependencies: - string-width: 1.0.2 + string-width: 4.2.3 widest-line@3.1.0: dependencies: @@ -17344,6 +18295,12 @@ snapshots: string-width: 5.1.2 strip-ansi: 7.1.0 + wrap-ansi@9.0.2: + dependencies: + ansi-styles: 6.2.1 + string-width: 7.2.0 + strip-ansi: 7.1.0 + wrappy@1.0.2: {} write-file-atomic@2.4.3: @@ -17395,6 +18352,8 @@ snapshots: yargs-parser@21.1.1: {} + yargs-parser@22.0.0: {} + yargs@15.4.1: dependencies: cliui: 6.0.0 @@ -17429,6 +18388,15 @@ snapshots: y18n: 5.0.8 yargs-parser: 21.1.1 + yargs@18.0.0: + dependencies: + cliui: 9.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + string-width: 7.2.0 + y18n: 5.0.8 + yargs-parser: 22.0.0 + yauzl@2.10.0: dependencies: buffer-crc32: 0.2.13 diff --git a/common/config/rush/repo-state.json b/common/config/rush/repo-state.json index 033ec651f..08792e831 100644 --- a/common/config/rush/repo-state.json +++ b/common/config/rush/repo-state.json @@ -1,5 +1,5 @@ // DO NOT MODIFY THIS FILE MANUALLY BUT DO COMMIT IT. It is generated and used by Rush. { - "pnpmShrinkwrapHash": "483ab7c144cc1201cfba40405c05ebf190586e79", + "pnpmShrinkwrapHash": "abc453596eaf2cd7ff26dca182f8e42042b6326e", "preferredVersionsHash": "bf21a9e8fbc5a3846fb05b4fa0859e0917b2202f" } diff --git a/common/config/rush/version-policies.json b/common/config/rush/version-policies.json index 32c175766..60a66ed3d 100644 --- a/common/config/rush/version-policies.json +++ b/common/config/rush/version-policies.json @@ -2,7 +2,6 @@ * This is configuration file is used for advanced publishing configurations with Rush. * For full documentation, please see https://rushjs.io */ - /** * A list of version policy definitions. A "version policy" is a custom package versioning * strategy that affects "rush change", "rush version", and "rush publish". The strategy applies @@ -20,21 +19,18 @@ * SemVer range is usually restricted to a single version. */ "definitionName": "lockStepVersion", - /** * (Required) The name that will be used for the "versionPolicyName" field in rush.json. * This name is also used command-line parameters such as "--version-policy" * and "--to-version-policy". */ "policyName": "tracker", - /** * (Required) The current version. All packages belonging to the set should have this version * in the current branch. When bumping versions, Rush uses this to determine the next version. * (The "version" field in package.json is NOT considered.) */ - "version": "4.5.0", - + "version": "4.10.0", /** * (Required) The type of bump that will be performed when publishing the next release. * When creating a release branch in Git, this field should be updated according to the @@ -44,4 +40,4 @@ */ "nextBump": "minor" } -] +] diff --git a/libraries/browser-tracker-core/CHANGELOG.json b/libraries/browser-tracker-core/CHANGELOG.json index 74a760e6f..f68a4ad1c 100644 --- a/libraries/browser-tracker-core/CHANGELOG.json +++ b/libraries/browser-tracker-core/CHANGELOG.json @@ -1,6 +1,181 @@ { "name": "@snowplow/browser-tracker-core", "entries": [ + { + "version": "4.10.0", + "tag": "@snowplow/browser-tracker-core_v4.10.0", + "date": "Mon, 27 Jul 2026 13:52:14 GMT", + "comments": { + "minor": [ + { + "comment": "Add disableSessionContextWithinWebView option to suppress client_session entity in hybrid native+WebView deployments" + } + ], + "none": [ + { + "comment": "Add preserveOriginalReferrer tracker configuration option for SPA referrer tracking" + } + ], + "patch": [ + { + "comment": "Remove forced layout read from tracker initialization: replace init-time getBrowserProperties() call with direct non-layout reads; defer the first readBrowserProperties() to first event build time." + } + ] + } + }, + { + "version": "4.9.0", + "tag": "@snowplow/browser-tracker-core_v4.9.0", + "date": "Tue, 21 Jul 2026 14:53:08 GMT", + "comments": { + "patch": [ + { + "comment": "Support non-alphabetic characters in URL scheme detection and keep the detected scheme within the atomic schema length limit (close #1238)" + } + ] + } + }, + { + "version": "4.8.4", + "tag": "@snowplow/browser-tracker-core_v4.8.4", + "date": "Thu, 02 Jul 2026 10:07:52 GMT", + "comments": {} + }, + { + "version": "4.8.3", + "tag": "@snowplow/browser-tracker-core_v4.8.3", + "date": "Tue, 30 Jun 2026 14:22:03 GMT", + "comments": { + "none": [ + { + "comment": "Update uuid to v11 and remove closure-compiler from the build pipeline" + } + ] + } + }, + { + "version": "4.8.2", + "tag": "@snowplow/browser-tracker-core_v4.8.2", + "date": "Wed, 17 Jun 2026 12:30:12 GMT", + "comments": {} + }, + { + "version": "4.8.1", + "tag": "@snowplow/browser-tracker-core_v4.8.1", + "date": "Wed, 13 May 2026 09:26:05 GMT", + "comments": {} + }, + { + "version": "4.8.0", + "tag": "@snowplow/browser-tracker-core_v4.8.0", + "date": "Tue, 28 Apr 2026 07:56:22 GMT", + "comments": { + "none": [ + { + "comment": "Add opt-in activity metrics tracking with activity_metrics entity" + } + ] + } + }, + { + "version": "4.7.0", + "tag": "@snowplow/browser-tracker-core_v4.7.0", + "date": "Wed, 01 Apr 2026 12:59:29 GMT", + "comments": { + "none": [ + { + "comment": "Replace SHA1 buffer polyfill with lightweight implementation" + } + ] + } + }, + { + "version": "4.6.9", + "tag": "@snowplow/browser-tracker-core_v4.6.9", + "date": "Mon, 16 Mar 2026 15:43:06 GMT", + "comments": {} + }, + { + "version": "4.6.8", + "tag": "@snowplow/browser-tracker-core_v4.6.8", + "date": "Tue, 28 Oct 2025 09:46:42 GMT", + "comments": {} + }, + { + "version": "4.6.7", + "tag": "@snowplow/browser-tracker-core_v4.6.7", + "date": "Tue, 07 Oct 2025 14:53:36 GMT", + "comments": { + "none": [ + { + "comment": "Fix SecurityError when accessing localStorage in restricted browser environments" + } + ] + } + }, + { + "version": "4.6.6", + "tag": "@snowplow/browser-tracker-core_v4.6.6", + "date": "Tue, 26 Aug 2025 08:42:28 GMT", + "comments": { + "none": [ + { + "comment": "Unify browser dimension checks to avoid including NaN values" + }, + { + "comment": "Truncate browser context hardwareConcurrency value to prevent invalid events" + } + ] + } + }, + { + "version": "4.6.5", + "tag": "@snowplow/browser-tracker-core_v4.6.5", + "date": "Wed, 25 Jun 2025 21:16:46 GMT", + "comments": {} + }, + { + "version": "4.6.4", + "tag": "@snowplow/browser-tracker-core_v4.6.4", + "date": "Wed, 25 Jun 2025 12:08:50 GMT", + "comments": {} + }, + { + "version": "4.6.3", + "tag": "@snowplow/browser-tracker-core_v4.6.3", + "date": "Thu, 29 May 2025 19:52:07 GMT", + "comments": { + "none": [ + { + "comment": "Resume sessions when disabling anonymous tracking that was already tracking session state" + } + ] + } + }, + { + "version": "4.6.2", + "tag": "@snowplow/browser-tracker-core_v4.6.2", + "date": "Tue, 20 May 2025 07:39:05 GMT", + "comments": {} + }, + { + "version": "4.6.1", + "tag": "@snowplow/browser-tracker-core_v4.6.1", + "date": "Tue, 06 May 2025 13:10:51 GMT", + "comments": {} + }, + { + "version": "4.6.0", + "tag": "@snowplow/browser-tracker-core_v4.6.0", + "date": "Thu, 01 May 2025 09:58:59 GMT", + "comments": { + "none": [ + { + "comment": "Add `cookieExtensionService` argument as replacement for `idService`, deprecated `idService`" + } + ] + } + }, { "version": "4.5.0", "tag": "@snowplow/browser-tracker-core_v4.5.0", diff --git a/libraries/browser-tracker-core/CHANGELOG.md b/libraries/browser-tracker-core/CHANGELOG.md index 03ac6e8ca..fd87ade61 100644 --- a/libraries/browser-tracker-core/CHANGELOG.md +++ b/libraries/browser-tracker-core/CHANGELOG.md @@ -1,6 +1,123 @@ # Change Log - @snowplow/browser-tracker-core -This log was last generated on Fri, 04 Apr 2025 09:21:23 GMT and should not be manually modified. +This log was last generated on Mon, 27 Jul 2026 13:52:14 GMT and should not be manually modified. + +## 4.10.0 +Mon, 27 Jul 2026 13:52:14 GMT + +### Minor changes + +- Add disableSessionContextWithinWebView option to suppress client_session entity in hybrid native+WebView deployments + +### Patches + +- Remove forced layout read from tracker initialization: replace init-time getBrowserProperties() call with direct non-layout reads; defer the first readBrowserProperties() to first event build time. + +### Updates + +- Add preserveOriginalReferrer tracker configuration option for SPA referrer tracking + +## 4.9.0 +Tue, 21 Jul 2026 14:53:08 GMT + +### Patches + +- Support non-alphabetic characters in URL scheme detection and keep the detected scheme within the atomic schema length limit (close #1238) + +## 4.8.4 +Thu, 02 Jul 2026 10:07:52 GMT + +_Version update only_ + +## 4.8.3 +Tue, 30 Jun 2026 14:22:03 GMT + +### Updates + +- Update uuid to v11 and remove closure-compiler from the build pipeline + +## 4.8.2 +Wed, 17 Jun 2026 12:30:12 GMT + +_Version update only_ + +## 4.8.1 +Wed, 13 May 2026 09:26:05 GMT + +_Version update only_ + +## 4.8.0 +Tue, 28 Apr 2026 07:56:22 GMT + +### Updates + +- Add opt-in activity metrics tracking with activity_metrics entity + +## 4.7.0 +Wed, 01 Apr 2026 12:59:29 GMT + +### Updates + +- Replace SHA1 buffer polyfill with lightweight implementation + +## 4.6.9 +Mon, 16 Mar 2026 15:43:06 GMT + +_Version update only_ + +## 4.6.8 +Tue, 28 Oct 2025 09:46:42 GMT + +_Version update only_ + +## 4.6.7 +Tue, 07 Oct 2025 14:53:36 GMT + +### Updates + +- Fix SecurityError when accessing localStorage in restricted browser environments + +## 4.6.6 +Tue, 26 Aug 2025 08:42:28 GMT + +### Updates + +- Unify browser dimension checks to avoid including NaN values +- Truncate browser context hardwareConcurrency value to prevent invalid events + +## 4.6.5 +Wed, 25 Jun 2025 21:16:46 GMT + +_Version update only_ + +## 4.6.4 +Wed, 25 Jun 2025 12:08:50 GMT + +_Version update only_ + +## 4.6.3 +Thu, 29 May 2025 19:52:07 GMT + +### Updates + +- Resume sessions when disabling anonymous tracking that was already tracking session state + +## 4.6.2 +Tue, 20 May 2025 07:39:05 GMT + +_Version update only_ + +## 4.6.1 +Tue, 06 May 2025 13:10:51 GMT + +_Version update only_ + +## 4.6.0 +Thu, 01 May 2025 09:58:59 GMT + +### Updates + +- Add `cookieExtensionService` argument as replacement for `idService`, deprecated `idService` ## 4.5.0 Fri, 04 Apr 2025 09:21:23 GMT diff --git a/libraries/browser-tracker-core/CLAUDE.md b/libraries/browser-tracker-core/CLAUDE.md new file mode 100644 index 000000000..d77dbccd0 --- /dev/null +++ b/libraries/browser-tracker-core/CLAUDE.md @@ -0,0 +1,452 @@ +# Browser Tracker Core Library - CLAUDE.md + +## Module Overview + +The `@snowplow/browser-tracker-core` library provides browser-specific tracking functionality built on top of tracker-core. It handles DOM interactions, browser storage, cookies, and browser-specific event tracking features. + +## Core Responsibilities + +- **Browser Detection**: User agent, viewport, screen detection +- **Storage Management**: Cookies, localStorage, sessionStorage +- **DOM Helpers**: Cross-domain linking, form tracking utilities +- **Session Management**: Session tracking and storage +- **Page View Tracking**: Page view IDs and activity tracking +- **Browser Plugins**: Plugin system for browser features + +## Architecture Patterns + +### Browser Plugin Pattern +```typescript +// ✅ Correct: Typed plugin interface +export interface BrowserPlugin { + activateBrowserPlugin?: (tracker: BrowserTracker) => void; + contexts?: () => Array; + logger?: (logger: Logger) => void; + beforeTrack?: (payloadBuilder: PayloadBuilder) => void; + afterTrack?: (payload: Payload) => void; +} + +// ❌ Wrong: Untyped plugin +const plugin = { activate: (t: any) => {} }; +``` + +### Tracker State Management +```typescript +// ✅ Correct: Shared state pattern +export interface SharedState { + bufferFlushers: Array<(sync?: boolean) => void>; + hasLoaded: boolean; + registeredOnLoadHandlers: Array; + contextProviders: Array; +} + +// ❌ Wrong: Global variables +let trackerState = {}; // Avoid global state +``` + +### Storage Abstraction Pattern +```typescript +// ✅ Correct: Storage interface +export interface Storage { + getItem(key: string): string | null; + setItem(key: string, value: string): void; + removeItem(key: string): void; +} + +// ❌ Wrong: Direct localStorage access +localStorage.setItem('key', 'value'); // Use abstraction +``` + +## Critical Import Patterns + +### Browser-Specific Exports +```typescript +// index.ts - Browser features +export * from './tracker/types'; +export * from './helpers'; +export * from './detectors'; +export * from './proxies'; +export * from './plugins'; +export * from './state'; +export { Tracker } from './tracker'; +``` + +### Helper Utilities +```typescript +// ✅ Correct: Import from helpers +import { getCookieValue, setCookie } from './helpers'; + +// ❌ Wrong: Reimplementing browser utils +function getCookie(name: string) { /* custom */ } +``` + +## Cookie Management + +### Cookie Storage Pattern +```typescript +// ✅ Correct: Use cookie storage abstraction +export class CookieStorage implements Storage { + constructor( + private cookieName: string, + private cookieDomain?: string, + private cookieLifetime?: number + ) {} + + setItem(key: string, value: string): void { + setCookie(this.cookieName, value, this.cookieLifetime); + } +} + +// ❌ Wrong: Direct document.cookie manipulation +document.cookie = `name=value; domain=.example.com`; +``` + +### ID Cookie Pattern +```typescript +// Standard ID cookie structure +interface IdCookie { + userId: string; // Domain user ID + sessionId: string; // Session ID + sessionIndex: number; // Session count + eventIndex: number; // Event count in session + lastActivity: number; // Last activity timestamp +} +``` + +## Session Management + +### Session Storage Pattern +```typescript +// ✅ Correct: Session data structure +export interface SessionData { + sessionId: string; + previousSessionId?: string; + sessionIndex: number; + userId: string; + firstEventId?: string; + firstEventTimestamp?: number; +} + +// ❌ Wrong: Unstructured session data +const session = { id: '123', data: {} }; +``` + +### Activity Tracking +```typescript +// Activity callback configuration +export interface ActivityTrackingConfiguration { + minimumVisitLength: number; + heartbeatDelay: number; + callback?: ActivityCallback; +} +``` + +## DOM Interaction Patterns + +### Cross-Domain Linking +```typescript +// ✅ Correct: Decorator pattern +export function decorateQuerystring( + url: string, + name: string, + value: string +): string { + const [urlPath, anchor] = url.split('#'); + const [basePath, queries] = urlPath.split('?'); + // ... decoration logic + return decorated; +} + +// ❌ Wrong: String concatenation +url += '?_sp=' + value; // Fragile +``` + +### Form Element Helpers +```typescript +// Get form element values safely +export function getElementValue(element: HTMLElement): string | null { + if (element instanceof HTMLInputElement) { + return element.value; + } + if (element instanceof HTMLTextAreaElement) { + return element.value; + } + return null; +} +``` + +## Browser Detection + +### Detector Functions +```typescript +// ✅ Correct: Feature detection +export function hasLocalStorage(): boolean { + try { + const test = 'localStorage'; + localStorage.setItem(test, test); + localStorage.removeItem(test); + return true; + } catch (e) { + return false; + } +} + +// ❌ Wrong: Assume availability +if (localStorage) { /* use it */ } // May throw +``` + +### Browser Properties +```typescript +// Standard browser context +export interface BrowserProperties { + viewport: [number, number]; + documentSize: [number, number]; + resolution: [number, number]; + colorDepth: number; + devicePixelRatio: number; + cookieEnabled: boolean; + online: boolean; + browserLanguage: string; + documentLanguage: string; + webdriver: boolean; +} +``` + +## Event Queue Management + +### Out Queue Pattern +```typescript +// ✅ Correct: Managed queue with retry +export class OutQueue { + constructor( + private readonly maxQueueSize: number, + private readonly eventStore: EventStore + ) {} + + enqueue(event: Payload): void { + if (this.queue.length >= this.maxQueueSize) { + this.flush(); + } + this.queue.push(event); + } +} + +// ❌ Wrong: Unbounded array +const events = []; // No size management +``` + +## Common Patterns + +### Page View ID Generation +```typescript +// ✅ Correct: UUID per page view +import { v4 as uuid } from 'uuid'; +export function generatePageViewId(): string { + return uuid(); +} + +// ❌ Wrong: Sequential IDs +let pvId = 0; +function getPageViewId() { return ++pvId; } +``` + +### Local Storage Event Store +```typescript +// Event persistence pattern +export class LocalStorageEventStore implements EventStore { + constructor(private readonly key: string) {} + + async add(event: EventStorePayload): Promise { + const events = this.getAll(); + events.push(event); + localStorage.setItem(this.key, JSON.stringify(events)); + return events.length; + } +} +``` + +## Testing Patterns + +### Test Directory Structure +``` +test/ +├── tracker/ # Tracker-specific tests +│ ├── cookie_storage.test.ts +│ ├── page_view.test.ts +│ └── session_data.test.ts +├── helpers/ # Helper function tests +├── detectors.test.ts # Browser detection tests +└── __snapshots__/ # Jest snapshots +``` + +### Mock Browser APIs +```typescript +// Mock storage for tests +class MockStorage implements Storage { + private store: Record = {}; + + getItem(key: string): string | null { + return this.store[key] || null; + } + + setItem(key: string, value: string): void { + this.store[key] = value; + } + + clear(): void { + this.store = {}; + } +} + +// Mock document properties +jest.spyOn(document, 'title', 'get').mockReturnValue('Test Page'); +jest.spyOn(document, 'referrer', 'get').mockReturnValue('https://referrer.com'); +``` + +### DOM Testing +```typescript +// ✅ Correct: Setup and teardown DOM +beforeEach(() => { + document.body.innerHTML = ` +
+ + +
+ `; +}); + +afterEach(() => { + document.body.innerHTML = ''; + jest.clearAllMocks(); +}); + +// ❌ Wrong: Leave DOM dirty +beforeEach(() => { + document.body.innerHTML += '
test
'; // Accumulates +}); +``` + +### Testing Browser Detection +```typescript +// ✅ Correct: Mock browser features +describe('Browser detection', () => { + it('detects localStorage support', () => { + const mockSetItem = jest.fn(); + Object.defineProperty(window, 'localStorage', { + value: { setItem: mockSetItem, removeItem: jest.fn() }, + writable: true + }); + + expect(hasLocalStorage()).toBe(true); + }); + + it('handles localStorage errors', () => { + Object.defineProperty(window, 'localStorage', { + value: { + setItem: () => { throw new Error('Quota exceeded'); } + }, + writable: true + }); + + expect(hasLocalStorage()).toBe(false); + }); +}); +``` + +### Cookie Testing +```typescript +// ✅ Correct: Test cookie operations +describe('Cookie management', () => { + beforeEach(() => { + // Clear cookies + document.cookie.split(';').forEach(c => { + document.cookie = c.replace(/^ +/, '') + .replace(/=.*/, '=;expires=' + new Date().toUTCString()); + }); + }); + + it('sets and retrieves cookies', () => { + setCookie('test', 'value', 86400); + expect(getCookieValue('test')).toBe('value'); + }); +}); +``` + +### Testing Helper Pattern +```typescript +// Common test helper in test/helpers.ts +export function createTracker(config?: Partial) { + const eventStore = newInMemoryEventStore(); + return addTracker('sp', 'sp', 'js-test', '', new SharedState(), { + eventStore, + ...config + }); +} + +// Usage in tests +it('tracks page view', () => { + const tracker = createTracker(); + tracker.trackPageView(); + // Assert... +}); +``` + +## File Organization + +``` +browser-tracker-core/ +├── src/ +│ ├── index.ts # Public exports +│ ├── snowplow.ts # Main tracker factory +│ ├── state.ts # Shared state +│ ├── plugins.ts # Plugin system +│ ├── proxies.ts # Proxy tracking +│ ├── detectors.ts # Browser detection +│ ├── helpers/ +│ │ ├── index.ts # Helper exports +│ │ ├── browser_props.ts +│ │ ├── cross_domain.ts +│ │ └── storage.ts +│ └── tracker/ +│ ├── index.ts # Tracker implementation +│ ├── types.ts # TypeScript types +│ ├── cookie_storage.ts +│ ├── id_cookie.ts +│ ├── out_queue.ts +│ └── local_storage_event_store.ts +└── test/ + └── [module].test.ts +``` + +## Quick Reference + +### Essential Imports +```typescript +import { + BrowserTracker, + BrowserPlugin, + SharedState, + ActivityTrackingConfiguration, + PageViewEvent, + getCookieValue, + decorateQuerystring, + hasLocalStorage +} from '@snowplow/browser-tracker-core'; +``` + +### Plugin Development Checklist +- [ ] Implement `BrowserPlugin` interface +- [ ] Store tracker reference in `activateBrowserPlugin` +- [ ] Clean up resources in cleanup hooks +- [ ] Handle browser API failures gracefully +- [ ] Test with different storage configurations + +## Contributing to CLAUDE.md + +When modifying browser-tracker-core: + +1. **Test browser compatibility** across major browsers +2. **Handle storage failures** gracefully +3. **Respect privacy settings** (cookies, storage) +4. **Maintain IE11 compatibility** if required +5. **Document browser-specific behavior** \ No newline at end of file diff --git a/libraries/browser-tracker-core/package.json b/libraries/browser-tracker-core/package.json index 34740d8b4..4300af6c6 100644 --- a/libraries/browser-tracker-core/package.json +++ b/libraries/browser-tracker-core/package.json @@ -1,6 +1,6 @@ { "name": "@snowplow/browser-tracker-core", - "version": "4.5.0", + "version": "4.10.0", "description": "Core functionality for Snowplow Browser trackers", "homepage": "http://bit.ly/sp-js", "bugs": "https://github.com/snowplow/snowplow-javascript-tracker/issues", @@ -23,18 +23,14 @@ }, "dependencies": { "@snowplow/tracker-core": "workspace:*", - "sha1": "^1.1.1", "tslib": "^2.3.1", - "uuid": "^10.0.0" + "uuid": "^11.1.1" }, "devDependencies": { - "@ampproject/rollup-plugin-closure-compiler": "~0.27.0", "@rollup/plugin-commonjs": "~21.0.2", "@rollup/plugin-node-resolve": "~13.1.3", "@types/jest": "~28.1.1", "@types/jsdom": "~16.2.14", - "@types/sha1": "~1.1.3", - "@types/uuid": "^10.0.0", "@typescript-eslint/eslint-plugin": "~5.15.0", "@typescript-eslint/parser": "~5.15.0", "eslint": "~8.11.0", diff --git a/libraries/browser-tracker-core/rollup.config.js b/libraries/browser-tracker-core/rollup.config.js index bc7e0d95b..3f02fc230 100644 --- a/libraries/browser-tracker-core/rollup.config.js +++ b/libraries/browser-tracker-core/rollup.config.js @@ -32,7 +32,6 @@ import { nodeResolve } from '@rollup/plugin-node-resolve'; import commonjs from '@rollup/plugin-commonjs'; import ts from 'rollup-plugin-ts'; // Prefered over @rollup/plugin-typescript as it bundles .d.ts files import { banner } from '../../banner'; -import compiler from '@ampproject/rollup-plugin-closure-compiler'; import { terser } from 'rollup-plugin-terser'; import cleanup from 'rollup-plugin-cleanup'; import pkg from './package.json'; @@ -50,7 +49,7 @@ export default [ }, { input: './src/index.ts', - plugins: [...umdPlugins, compiler(), terser(), cleanup({ comments: 'none' }), banner()], + plugins: [...umdPlugins, terser(), cleanup({ comments: 'none' }), banner()], output: [{ file: pkg.main.replace('.js', '.min.js'), format: 'umd', sourcemap: true, name: umdName }], }, { diff --git a/libraries/browser-tracker-core/src/helpers/browser_props.ts b/libraries/browser-tracker-core/src/helpers/browser_props.ts index 8f332ee6e..6af2b45d7 100644 --- a/libraries/browser-tracker-core/src/helpers/browser_props.ts +++ b/libraries/browser-tracker-core/src/helpers/browser_props.ts @@ -46,8 +46,15 @@ function initializeResizeObserver() { let cachedProperties: BrowserProperties; -/* Separator used for dimension values e.g. widthxheight */ -const DIMENSION_SEPARATOR = 'x'; +/** + * Resets module-level browser property state. Used in tests to prevent state bleed between test cases. + * @internal + */ +export function resetBrowserPropertiesState() { + cachedProperties = undefined as any; + resizeObserverInitialized = false; + readBrowserPropertiesTask = null; +} /** * Gets various browser properties (that are expensive to read!) @@ -58,6 +65,9 @@ const DIMENSION_SEPARATOR = 'x'; */ export function getBrowserProperties() { if (!useResizeObserver()) { + // TODO: per-event forced reflow — each call re-reads layout geometry (offsetWidth, scrollHeight, + // etc.) for browsers without ResizeObserver. ResizeObserver has been in all major browsers since + // 2020 so this is an edge-case path. File a separate ticket to address if needed. return readBrowserProperties(); } @@ -75,9 +85,9 @@ export function getBrowserProperties() { */ function readBrowserProperties(): BrowserProperties { return { - viewport: floorDimensionFields(detectViewport()), - documentSize: floorDimensionFields(detectDocumentSize()), - resolution: floorDimensionFields(detectScreenResolution()), + viewport: detectViewport(), + documentSize: detectDocumentSize(), + resolution: detectScreenResolution(), colorDepth: screen.colorDepth, devicePixelRatio: window.devicePixelRatio, cookiesEnabled: window.navigator.cookieEnabled, @@ -86,7 +96,7 @@ function readBrowserProperties(): BrowserProperties { documentLanguage: document.documentElement.lang, webdriver: window.navigator.webdriver, deviceMemory: (window.navigator as any).deviceMemory, - hardwareConcurrency: (window.navigator as any).hardwareConcurrency, + hardwareConcurrency: Math.floor(window.navigator.hardwareConcurrency) || undefined, }; } @@ -109,7 +119,7 @@ function detectViewport() { height = e['clientHeight']; } - return Math.max(0, width) + DIMENSION_SEPARATOR + Math.max(0, height); + return makeDimension(Math.max(0, width), Math.max(0, height)); } /** @@ -124,21 +134,21 @@ function detectDocumentSize() { be = document.body, // document.body may not have rendered, so check whether be.offsetHeight is null bodyHeight = be ? Math.max(be.offsetHeight, be.scrollHeight) : 0; - var w = Math.max(de.clientWidth, de.offsetWidth, de.scrollWidth); - var h = Math.max(de.clientHeight, de.offsetHeight, de.scrollHeight, bodyHeight); - return isNaN(w) || isNaN(h) ? '' : w + DIMENSION_SEPARATOR + h; + + return makeDimension( + Math.max(de.clientWidth, de.offsetWidth, de.scrollWidth), + Math.max(de.clientHeight, de.offsetHeight, de.scrollHeight, bodyHeight) + ); } function detectScreenResolution() { - return screen.width + DIMENSION_SEPARATOR + screen.height; + return makeDimension(screen.width, screen.height); } -export function floorDimensionFields(field?: string | null) { - return ( - field && - field - .split(DIMENSION_SEPARATOR) - .map((dimension) => Math.floor(Number(dimension))) - .join(DIMENSION_SEPARATOR) - ); +export function makeDimension(width: number, height: number): string | null { + if (isNaN(width) || isNaN(height)) { + return null; + } + + return Math.floor(width) + 'x' + Math.floor(height); } diff --git a/libraries/browser-tracker-core/src/helpers/sha1.ts b/libraries/browser-tracker-core/src/helpers/sha1.ts new file mode 100644 index 000000000..af6a8c5ea --- /dev/null +++ b/libraries/browser-tracker-core/src/helpers/sha1.ts @@ -0,0 +1,98 @@ +/** + * Pure-JS SHA-1 implementation (FIPS 180-4). + * Replaces the `sha1` npm package to avoid pulling in a Node.js `Buffer` + * polyfill (~28 KB) when bundled for the browser. + */ +/** Compute SHA-1 hex digest of a UTF-8 string (FIPS 180-4). */ +export function sha1(message: string): string { + // Encode UTF-8 + const bytes: number[] = []; + for (let i = 0; i < message.length; i++) { + let c = message.charCodeAt(i); + if (c < 0x80) { + bytes.push(c); + } else if (c < 0x800) { + bytes.push(0xc0 | (c >> 6), 0x80 | (c & 0x3f)); + } else if (c >= 0xd800 && c <= 0xdbff && i + 1 < message.length) { + const next = message.charCodeAt(++i); + c = 0x10000 + ((c & 0x3ff) << 10) + (next & 0x3ff); + bytes.push(0xf0 | (c >> 18), 0x80 | ((c >> 12) & 0x3f), 0x80 | ((c >> 6) & 0x3f), 0x80 | (c & 0x3f)); + } else { + bytes.push(0xe0 | (c >> 12), 0x80 | ((c >> 6) & 0x3f), 0x80 | (c & 0x3f)); + } + } + + // Pre-processing: pad to 512-bit blocks + const bitLen = bytes.length * 8; + bytes.push(0x80); + while (bytes.length % 64 !== 56) bytes.push(0); + // Append length as 64-bit big-endian (high 32 bits always 0 for strings < 512 MB) + bytes.push(0, 0, 0, 0); + bytes.push((bitLen >>> 24) & 0xff, (bitLen >>> 16) & 0xff, (bitLen >>> 8) & 0xff, bitLen & 0xff); + + // Initialize hash values + let h0 = 0x67452301; + let h1 = 0xefcdab89; + let h2 = 0x98badcfe; + let h3 = 0x10325476; + let h4 = 0xc3d2e1f0; + + // Process each 512-bit block + const w = new Array(80); + for (let offset = 0; offset < bytes.length; offset += 64) { + for (let i = 0; i < 16; i++) { + w[i] = + (bytes[offset + i * 4] << 24) | + (bytes[offset + i * 4 + 1] << 16) | + (bytes[offset + i * 4 + 2] << 8) | + bytes[offset + i * 4 + 3]; + } + for (let i = 16; i < 80; i++) { + const n = w[i - 3] ^ w[i - 8] ^ w[i - 14] ^ w[i - 16]; + w[i] = (n << 1) | (n >>> 31); + } + + let a = h0, + b = h1, + c = h2, + d = h3, + e = h4; + + for (let i = 0; i < 80; i++) { + let f: number, k: number; + if (i < 20) { + f = (b & c) | (~b & d); + k = 0x5a827999; + } else if (i < 40) { + f = b ^ c ^ d; + k = 0x6ed9eba1; + } else if (i < 60) { + f = (b & c) | (b & d) | (c & d); + k = 0x8f1bbcdc; + } else { + f = b ^ c ^ d; + k = 0xca62c1d6; + } + const temp = (((a << 5) | (a >>> 27)) + f + e + k + w[i]) | 0; + e = d; + d = c; + c = (b << 30) | (b >>> 2); + b = a; + a = temp; + } + + h0 = (h0 + a) | 0; + h1 = (h1 + b) | 0; + h2 = (h2 + c) | 0; + h3 = (h3 + d) | 0; + h4 = (h4 + e) | 0; + } + + // Produce hex digest + let hex = ''; + for (const h of [h0, h1, h2, h3, h4]) { + const part = (h >>> 0).toString(16); + hex += (part.length < 8 ? '00000000'.slice(part.length) : '') + part; + } + return hex; +} diff --git a/libraries/browser-tracker-core/src/tracker/index.ts b/libraries/browser-tracker-core/src/tracker/index.ts index 13934b401..5521ea9a6 100755 --- a/libraries/browser-tracker-core/src/tracker/index.ts +++ b/libraries/browser-tracker-core/src/tracker/index.ts @@ -7,7 +7,7 @@ import { SelfDescribingJson, LOG, } from '@snowplow/tracker-core'; -import hash from 'sha1'; +import { sha1 as hash } from '../helpers/sha1'; import { v4 as uuid } from 'uuid'; import { decorateQuerystring, @@ -35,6 +35,7 @@ import { PageViewEvent, ActivityCallback, ActivityCallbackData, + ActivityMetrics, TrackerConfiguration, BrowserTracker, ActivityTrackingConfiguration, @@ -65,8 +66,14 @@ import { emptyIdCookie, eventIndexFromIdCookie, } from './id_cookie'; -import { CLIENT_SESSION_SCHEMA, WEB_PAGE_SCHEMA, BROWSER_CONTEXT_SCHEMA, APPLICATION_CONTEXT_SCHEMA } from './schemata'; -import { getBrowserProperties } from '../helpers/browser_props'; +import { + CLIENT_SESSION_SCHEMA, + WEB_PAGE_SCHEMA, + BROWSER_CONTEXT_SCHEMA, + APPLICATION_CONTEXT_SCHEMA, + ACTIVITY_METRICS_SCHEMA, +} from './schemata'; +import { getBrowserProperties, makeDimension } from '../helpers/browser_props'; import { asyncCookieStorage, syncCookieStorage } from './cookie_storage'; declare global { @@ -88,6 +95,8 @@ type ActivityConfig = { configHeartBeatTimer: number; /** The setInterval identifier */ activityInterval?: number; + /** Whether activity metrics tracking is enabled for this configuration */ + activityMetrics?: boolean; }; /** The configurations for the two types of Activity Tracking */ @@ -264,6 +273,14 @@ export function Tracker( maxXOffset: number, minYOffset: number, maxYOffset: number, + // Activity metrics tracking state + activityMetricsState = { + metrics: { mouseDistance: 0, scrollDistance: 0, keyPresses: 0, clicks: 0, touches: 0 } as ActivityMetrics, + lastMouseX: undefined as number | undefined, + lastMouseY: undefined as number | undefined, + lastScrollX: undefined as number | undefined, + lastScrollY: undefined as number | undefined, + }, // Domain hash value domainHash: string, // Domain unique user ID @@ -299,6 +316,7 @@ export function Tracker( configurations: {}, }, configSessionContext = trackerConfiguration.contexts?.session ?? false, + configDisableSessionInWebView = trackerConfiguration.disableSessionContextWithinWebView ?? false, toOptoutByCookie: string | boolean, onSessionUpdateCallback = trackerConfiguration.onSessionUpdateCallback, manualSessionUpdateCalled = false, @@ -310,7 +328,10 @@ export function Tracker( configCookieDomain = findRootDomain(configCookieSameSite, configCookieSecure); } - const { browserLanguage, resolution, colorDepth, cookiesEnabled } = getBrowserProperties(); + const cookiesEnabled = window.navigator.cookieEnabled; + const colorDepth = screen.colorDepth; + const browserLanguage = window.navigator.language || (window.navigator as any).userLanguage; + const resolution = makeDimension(screen.width, screen.height); const timeZone = getTimeZone(); // Set up unchanging name-value pairs @@ -346,6 +367,10 @@ export function Tracker( initializeIdsAndCookies(); + if (trackerConfiguration.preserveOriginalReferrer && configReferrerUrl) { + customReferrer = configReferrerUrl; + } + if (trackerConfiguration.crossDomainLinker) { decorateLinks(trackerConfiguration.crossDomainLinker); } @@ -439,10 +464,20 @@ export function Tracker( * Extract scheme/protocol from URL */ function getProtocolScheme(url: string) { - const e = new RegExp('^([a-z]+):'), + // RFC 3986: scheme = ALPHA *( ALPHA / DIGIT / "+" / "-" / "." ), case-insensitive. + // A stricter [a-z]+ pattern misclassifies schemes such as chrome-extension as + // relative references, which then get appended to the base URL. + const e = new RegExp('^([a-z][a-z0-9+\\-.]*):', 'i'), matches = e.exec(url); - return matches ? matches[1] : null; + // The atomic event schema caps the url scheme at 16 characters + // (page_urlscheme / refr_urlscheme, maxLength 16). A longer scheme would only + // produce an event that fails validation downstream, so treat such URLs as + // relative references (the prior behaviour) rather than absolute URLs. + // Ref: com.snowplowanalytics.snowplow/atomic/jsonschema/1-0-0 + const MAX_SCHEME_LENGTH = 16; + + return matches && matches[1].length <= MAX_SCHEME_LENGTH ? matches[1] : null; } /* @@ -514,17 +549,67 @@ export function Tracker( * Process all "activity" events. * For performance, this function must have low overhead. */ - function activityHandler() { + function activityHandler(event?: Event) { const now = new Date(); lastActivityTime = now.getTime(); + + if (isActivityMetricsEnabled() && event) { + switch (event.type) { + case 'mousemove': { + const me = event as MouseEvent; + if (activityMetricsState.lastMouseX !== undefined && activityMetricsState.lastMouseY !== undefined) { + const dx = me.clientX - activityMetricsState.lastMouseX; + const dy = me.clientY - activityMetricsState.lastMouseY; + activityMetricsState.metrics.mouseDistance += Math.sqrt(dx * dx + dy * dy); + } + activityMetricsState.lastMouseX = me.clientX; + activityMetricsState.lastMouseY = me.clientY; + break; + } + case 'click': + activityMetricsState.metrics.clicks++; + break; + case 'keydown': + activityMetricsState.metrics.keyPresses++; + break; + case 'touchstart': + activityMetricsState.metrics.touches++; + break; + // scroll handled in scrollHandler + } + } } /* * Process all "scroll" events. */ function scrollHandler() { - updateMaxScrolls(); activityHandler(); + + const offsets = getPageOffsets(); + + const x = offsets[0]; + if (x < minXOffset) { + minXOffset = x; + } else if (x > maxXOffset) { + maxXOffset = x; + } + + const y = offsets[1]; + if (y < minYOffset) { + minYOffset = y; + } else if (y > maxYOffset) { + maxYOffset = y; + } + + if (isActivityMetricsEnabled()) { + if (activityMetricsState.lastScrollX !== undefined && activityMetricsState.lastScrollY !== undefined) { + activityMetricsState.metrics.scrollDistance += + Math.abs(x - activityMetricsState.lastScrollX) + Math.abs(y - activityMetricsState.lastScrollY); + } + activityMetricsState.lastScrollX = x; + activityMetricsState.lastScrollY = y; + } } /* @@ -555,24 +640,35 @@ export function Tracker( } /* - * Check the max scroll levels, updating as necessary + * Whether activity metrics tracking is enabled for any active configuration */ - function updateMaxScrolls() { - const offsets = getPageOffsets(); + function isActivityMetricsEnabled(): boolean { + return !!( + activityTrackingConfig.configurations.pagePing?.activityMetrics || + activityTrackingConfig.configurations.callback?.activityMetrics + ); + } - const x = offsets[0]; - if (x < minXOffset) { - minXOffset = x; - } else if (x > maxXOffset) { - maxXOffset = x; - } + /* + * Reset activity metrics accumulators and position trackers + */ + function resetActivityMetricsState() { + activityMetricsState.metrics = { mouseDistance: 0, scrollDistance: 0, keyPresses: 0, clicks: 0, touches: 0 }; + activityMetricsState.lastMouseX = undefined; + activityMetricsState.lastMouseY = undefined; + activityMetricsState.lastScrollX = undefined; + activityMetricsState.lastScrollY = undefined; + } - const y = offsets[1]; - if (y < minYOffset) { - minYOffset = y; - } else if (y > maxYOffset) { - maxYOffset = y; - } + /* + * Return a snapshot of current activity metrics + */ + function getActivityMetrics(): ActivityMetrics { + return { + ...activityMetricsState.metrics, + mouseDistance: Math.round(activityMetricsState.metrics.mouseDistance), + scrollDistance: Math.round(activityMetricsState.metrics.scrollDistance), + }; } /* @@ -927,7 +1023,11 @@ export function Tracker( configStateStorageStrategy, configAnonymousTracking ); - if (configSessionContext && (!configAnonymousTracking || configAnonymousSessionTracking)) { + if ( + configSessionContext && + (!configAnonymousTracking || configAnonymousSessionTracking) && + !(configDisableSessionInWebView && isInWebView()) + ) { addSessionContextToPayload(payloadBuilder, clientSession); } @@ -954,6 +1054,21 @@ export function Tracker( }; } + /** + * Returns true when the page is running inside a Snowplow V2 WebView interface. + * Mirrors the three-interface check in @snowplow/webview-tracker without introducing + * a package dependency on browser-tracker-core. + */ + function isInWebView(): boolean { + return !!( + (window as any).SnowplowWebInterfaceV2 || + ((window as any).webkit && + (window as any).webkit.messageHandlers && + (window as any).webkit.messageHandlers.snowplowV2) || + (window as any).ReactNativeWebView + ); + } + function addSessionContextToPayload(payloadBuilder: PayloadBuilder, clientSession: ClientSession) { let sessionContext: SelfDescribingJson = { schema: CLIENT_SESSION_SCHEMA, @@ -1098,6 +1213,7 @@ export function Tracker( // Capture our initial scroll points resetMaxScrolls(); + resetActivityMetricsState(); // Add event handlers; cross-browser compatibility here varies significantly // @see http://quirksmode.org/dom/events @@ -1126,6 +1242,7 @@ export function Tracker( if (activityTrackingConfig.enabled && (resetActivityTrackingOnPageView || installingActivityTracking)) { // Periodic check for activity. lastActivityTime = now.getTime(); + resetActivityMetricsState(); let key: keyof ActivityConfigurations; for (key in activityTrackingConfig.configurations) { @@ -1147,8 +1264,16 @@ export function Tracker( ) { const executePagePing = (cb: ActivityCallback, context: Array) => { refreshUrl(); - cb({ context, pageViewId: getPageViewId(), minXOffset, minYOffset, maxXOffset, maxYOffset }); + let activityMetrics: ActivityMetrics | undefined; + if (isActivityMetricsEnabled()) { + activityMetrics = getActivityMetrics(); + context = context.concat([{ schema: ACTIVITY_METRICS_SCHEMA, data: activityMetrics }]); + } + cb({ context, pageViewId: getPageViewId(), minXOffset, minYOffset, maxXOffset, maxYOffset, activityMetrics }); resetMaxScrolls(); + if (isActivityMetricsEnabled()) { + resetActivityMetricsState(); + } }; const timeout = () => { @@ -1192,6 +1317,7 @@ export function Tracker( configMinimumVisitLength: minimumVisitLength * 1000, configHeartBeatTimer: heartbeatDelay * 1000, callback, + activityMetrics: configuration.activityMetrics, }; } @@ -1232,6 +1358,10 @@ export function Tracker( } activityTrackingConfig.configurations[actionKey] = undefined; + + if (!activityTrackingConfig.configurations.pagePing && !activityTrackingConfig.configurations.callback) { + resetActivityMetricsState(); + } } const apiMethods = { @@ -1261,6 +1391,10 @@ export function Tracker( return loadDomainUserIdCookie(); }, + getDomainSessionId: function () { + return memorizedSessionId || sessionIdFromIdCookie(loadDomainUserIdCookie()); + }, + setReferrerUrl: function (url: string) { customReferrer = url; }, @@ -1379,10 +1513,23 @@ export function Tracker( }, disableAnonymousTracking: function (configuration?: DisableAnonymousTrackingConfiguration) { + /* + Flag for if the state storage strategy has changed and we are currently storing session state (anonymously or not). + Because the strategy changes, the below call to initializeIdsAndCookies will fail to see that a session is currently in progress and start a new one. + Detect this state, and once we've updated settings, bump the session cookie with the new strategy to ensure it exists before loading the ID cookie, which will resume the session. + */ + const shouldResumeSession = + configuration?.stateStorageStrategy && // a new strategy was defined (otherwise will already resume) + configuration.stateStorageStrategy !== configStateStorageStrategy && // new strategy is different to old one (otherwise will already resume) + (!configAnonymousTracking || configAnonymousSessionTracking) && // we were previously tracking session IDs (otherwise nothing to resume) + getSnowplowCookieValue('ses'); // and we currently have a session in progress (otherwise we want a new session anyway) + trackerConfiguration.anonymousTracking = false; toggleAnonymousTracking(configuration); + if (shouldResumeSession) setSessionCookie(); // ensure session cookie exists with new strategy + initializeIdsAndCookies(); outQueue.executeQueue(); // There might be some events in the queue we've been unable to send in anonymous mode diff --git a/libraries/browser-tracker-core/src/tracker/local_storage_event_store.ts b/libraries/browser-tracker-core/src/tracker/local_storage_event_store.ts index 52f7db9aa..b6e554aa4 100644 --- a/libraries/browser-tracker-core/src/tracker/local_storage_event_store.ts +++ b/libraries/browser-tracker-core/src/tracker/local_storage_event_store.ts @@ -21,9 +21,14 @@ export function newLocalStorageEventStore({ function newInMemoryEventStoreFromLocalStorage() { if (useLocalStorage) { - const localStorageQueue = window.localStorage.getItem(queueName); - const events: EventStorePayload[] = localStorageQueue ? JSON.parse(localStorageQueue) : []; - return newInMemoryEventStore({ maxSize: maxLocalStorageQueueSize, events }); + try { + const localStorageQueue = window.localStorage.getItem(queueName); + const events: EventStorePayload[] = localStorageQueue ? JSON.parse(localStorageQueue) : []; + return newInMemoryEventStore({ maxSize: maxLocalStorageQueueSize, events }); + } catch (e) { + console.error('Failed to access localStorage when initializing event store:', e); + return newInMemoryEventStore({ maxSize: maxLocalStorageQueueSize }); + } } else { return newInMemoryEventStore({ maxSize: maxLocalStorageQueueSize }); } @@ -34,7 +39,11 @@ export function newLocalStorageEventStore({ function sync(): Promise { if (useLocalStorage) { return getAll().then((events) => { - window.localStorage.setItem(queueName, JSON.stringify(events)); + try { + window.localStorage.setItem(queueName, JSON.stringify(events)); + } catch (e) { + console.error('Failed to persist events to localStorage:', e); + } }); } else { return Promise.resolve(); diff --git a/libraries/browser-tracker-core/src/tracker/schemata.ts b/libraries/browser-tracker-core/src/tracker/schemata.ts index 9c2ffd85e..2d6019f42 100644 --- a/libraries/browser-tracker-core/src/tracker/schemata.ts +++ b/libraries/browser-tracker-core/src/tracker/schemata.ts @@ -2,3 +2,4 @@ export const WEB_PAGE_SCHEMA = 'iglu:com.snowplowanalytics.snowplow/web_page/jso export const BROWSER_CONTEXT_SCHEMA = 'iglu:com.snowplowanalytics.snowplow/browser_context/jsonschema/2-0-0'; export const CLIENT_SESSION_SCHEMA = 'iglu:com.snowplowanalytics.snowplow/client_session/jsonschema/1-0-2'; export const APPLICATION_CONTEXT_SCHEMA = 'iglu:com.snowplowanalytics.snowplow/application/jsonschema/1-0-0'; +export const ACTIVITY_METRICS_SCHEMA = 'iglu:com.snowplowanalytics.snowplow/activity_metrics/jsonschema/1-0-0'; diff --git a/libraries/browser-tracker-core/src/tracker/types.ts b/libraries/browser-tracker-core/src/tracker/types.ts index 6ebf47660..f2a83b297 100755 --- a/libraries/browser-tracker-core/src/tracker/types.ts +++ b/libraries/browser-tracker-core/src/tracker/types.ts @@ -197,6 +197,26 @@ export type TrackerConfiguration = { */ preservePageViewIdForUrl?: PreservePageViewIdForUrl; + /** + * When enabled, the original external referrer captured at tracker initialisation is frozen and + * used as the referrer for all subsequent page view events in the same session, including + * client-side navigations in single-page applications (SPAs). + * + * Without this option, each SPA navigation sets the referrer to the previous internal route, + * making it difficult to determine how the user originally arrived at the site across their + * session. Enable this option to preserve the original external referrer (e.g. google.com) + * across all `trackPageView` calls. + * + * If `document.referrer` is empty at initialisation (e.g. direct navigation), this option + * has no effect and the default per-navigation referrer chain behaviour applies. + * + * Setting `setReferrerUrl` after initialisation will override this value, as `customReferrer` + * always takes precedence. + * + * @defaultValue false + */ + preserveOriginalReferrer?: boolean; + /** * Whether to write the cookies synchronously. * This can be useful for testing purposes to ensure that the cookies are written before the test continues. @@ -205,6 +225,22 @@ export type TrackerConfiguration = { * @defaultValue false */ synchronousCookieWrite?: boolean; + /** + * When set to `true`, the tracker will not attach the `client_session` context entity to events + * when running inside a mobile WebView (i.e. when a Snowplow V2 WebView interface is detected). + * + * In hybrid native+WebView deployments the mobile SDK already contributes its own `client_session` + * entity. Allowing a second one from the JavaScript tracker causes duplicate-session problems in + * downstream modelling (e.g. dbt-snowplow-unified). Setting this option suppresses the JavaScript + * tracker's copy while the `contexts.session` flag can remain `true`. + * + * Detection uses the same three V2 interface checks as `@snowplow/webview-tracker`: + * `window.SnowplowWebInterfaceV2`, `window.webkit?.messageHandlers?.snowplowV2`, and + * `window.ReactNativeWebView`. + * + * @defaultValue false + */ + disableSessionContextWithinWebView?: boolean; } & EmitterConfigurationBase & LocalStorageEventStoreConfigurationBase; @@ -227,11 +263,30 @@ export type ActivityCallbackData = { maxXOffset: number; /** The maximum Y scroll position for the current page view */ maxYOffset: number; + /** Activity metrics accumulated since the last ping (only when activityMetrics is enabled) */ + activityMetrics?: ActivityMetrics; }; /** The callback for enableActivityTrackingCallback */ export type ActivityCallback = (data: ActivityCallbackData) => void; +/** + * Quantitative activity metrics accumulated between page pings. + * Attached as a context entity when activityMetrics is enabled. + */ +export type ActivityMetrics = { + /** Cumulative Euclidean mouse distance in pixels from mousemove events */ + mouseDistance: number; + /** Cumulative |deltaX|+|deltaY| scroll distance in pixels */ + scrollDistance: number; + /** Count of keydown events */ + keyPresses: number; + /** Count of click events */ + clicks: number; + /** Count of touchstart events */ + touches: number; +}; + /** * The base configuration for activity tracking */ @@ -240,6 +295,8 @@ export interface ActivityTrackingConfiguration { minimumVisitLength: number; /** The interval at which the callback will be fired */ heartbeatDelay: number; + /** Enable activity metrics to attach an activity_metrics entity to each page ping */ + activityMetrics?: boolean; } /** @@ -384,6 +441,13 @@ export interface BrowserTracker { */ getDomainUserInfo: () => ParsedIdCookie; + /** + * Get the current domain session ID (from first party cookie) + * + * @returns Domain session ID + */ + getDomainSessionId: () => string; + /** * Override referrer * diff --git a/libraries/browser-tracker-core/test/browser_props.test.ts b/libraries/browser-tracker-core/test/browser_props.test.ts index 238c99ecb..8e300eed8 100644 --- a/libraries/browser-tracker-core/test/browser_props.test.ts +++ b/libraries/browser-tracker-core/test/browser_props.test.ts @@ -1,23 +1,148 @@ -import { floorDimensionFields, getBrowserProperties } from '../src/helpers/browser_props'; +import { makeDimension, getBrowserProperties, resetBrowserPropertiesState } from '../src/helpers/browser_props'; describe('Browser props', () => { - it('floorDimensionFields correctly floors dimension type values', () => { + it('makeDimension correctly floors dimension type values', () => { const testDimensions = '100x100'; - expect(floorDimensionFields(testDimensions)).toEqual(testDimensions); + expect(makeDimension(100, 100)).toEqual(testDimensions); }); - it('floorDimensionFields correctly floors dimension type values with fractional numbers', () => { - const testFractionalDimensions = '100.2x100.1'; - expect(floorDimensionFields(testFractionalDimensions)).toEqual('100x100'); + it('makeDimension correctly floors dimension type values with fractional numbers', () => { + expect(makeDimension(100.2, 100.1)).toEqual('100x100'); + }); + + it('makeDimension correctly drops invalid values', () => { + expect(makeDimension(undefined as any, 100.1)).toEqual(null); + expect(makeDimension(NaN, 1)).toEqual(null); }); describe('#getBrowserProperties', () => { + describe('caching behavior (modern browsers with ResizeObserver)', () => { + let savedResizeObserver: any; + + beforeEach(() => { + savedResizeObserver = (window as any).ResizeObserver; + // Provide a minimal ResizeObserver so the caching path is exercised + (window as any).ResizeObserver = class MockResizeObserver { + constructor(_cb: ResizeObserverCallback) {} + observe() {} + unobserve() {} + disconnect() {} + }; + resetBrowserPropertiesState(); + }); + + afterEach(() => { + (window as any).ResizeObserver = savedResizeObserver; + resetBrowserPropertiesState(); + jest.restoreAllMocks(); + }); + + it('returns the same cached reference on successive calls', () => { + const first = getBrowserProperties(); + const second = getBrowserProperties(); + expect(second).toBe(first); + }); + + it('reset clears the cache so the next call re-reads browser properties', () => { + getBrowserProperties(); + resetBrowserPropertiesState(); + const fresh = getBrowserProperties(); + expect(fresh).toBeDefined(); + expect(fresh.cookiesEnabled).toBeDefined(); + }); + + it('rAF callback triggered by ResizeObserver updates cachedProperties', () => { + let capturedResizeCallback: ResizeObserverCallback | undefined; + let capturedRafCallback: FrameRequestCallback | undefined; + + // Override the mock to capture the ResizeObserver callback so we can trigger it manually + (window as any).ResizeObserver = class CaptureResizeObserver { + constructor(cb: ResizeObserverCallback) { + capturedResizeCallback = cb; + } + observe() {} + unobserve() {} + disconnect() {} + }; + resetBrowserPropertiesState(); + + jest.spyOn(window, 'requestAnimationFrame').mockImplementation((cb) => { + capturedRafCallback = cb; + return 1; + }); + + const first = getBrowserProperties(); // populates cache + wires up ResizeObserver + + // Trigger the ResizeObserver callback to schedule a rAF + expect(capturedResizeCallback).toBeDefined(); + capturedResizeCallback!([], {} as ResizeObserver); + expect(capturedRafCallback).toBeDefined(); + + // rAF has been scheduled but not yet fired — cache still holds the original value + const beforeRaf = getBrowserProperties(); + expect(beforeRaf).toBe(first); + + // Fire the rAF callback to simulate the cache update + capturedRafCallback!(performance.now()); + + // Cache was refreshed by the rAF callback + const afterRaf = getBrowserProperties(); + expect(afterRaf).toBeDefined(); + }); + }); + + describe('old-browser fallback (no ResizeObserver)', () => { + let savedResizeObserver: any; + + beforeEach(() => { + savedResizeObserver = (window as any).ResizeObserver; + delete (window as any).ResizeObserver; + resetBrowserPropertiesState(); + }); + + afterEach(() => { + (window as any).ResizeObserver = savedResizeObserver; + resetBrowserPropertiesState(); + }); + + it('calls readBrowserProperties on every invocation — no caching', () => { + const first = getBrowserProperties(); + const second = getBrowserProperties(); + // Without ResizeObserver caching each call returns a fresh object + expect(second).not.toBe(first); + }); + }); + describe('with undefined document', () => { + let originalDocument: typeof document; + let savedResizeObserver: any; + beforeAll(() => { + originalDocument = document; + savedResizeObserver = (window as any).ResizeObserver; + + // Ensure the caching path is taken so initializeResizeObserver() guards against undefined document + (window as any).ResizeObserver = class MockResizeObserver { + constructor(_cb: ResizeObserverCallback) {} + observe() {} + unobserve() {} + disconnect() {} + }; + + // Pre-populate cache while document is still available + resetBrowserPropertiesState(); + getBrowserProperties(); + // @ts-expect-error document = undefined; }); - + + afterAll(() => { + document = originalDocument; + (window as any).ResizeObserver = savedResizeObserver; + resetBrowserPropertiesState(); + }); + it('does not invoke the resize observer if the document is null', () => { const browserProperties = getBrowserProperties(); expect(browserProperties).not.toEqual(null); diff --git a/libraries/browser-tracker-core/test/helpers/sha1.test.ts b/libraries/browser-tracker-core/test/helpers/sha1.test.ts new file mode 100644 index 000000000..291ee99a5 --- /dev/null +++ b/libraries/browser-tracker-core/test/helpers/sha1.test.ts @@ -0,0 +1,37 @@ +import { sha1 } from '../../src/helpers/sha1'; + +describe('sha1', () => { + // RFC 3174 test vectors + test('empty string', () => { + expect(sha1('')).toBe('da39a3ee5e6b4b0d3255bfef95601890afd80709'); + }); + + test('"abc"', () => { + expect(sha1('abc')).toBe('a9993e364706816aba3e25717850c26c9cd0d89d'); + }); + + test('"The quick brown fox jumps over the lazy dog"', () => { + expect(sha1('The quick brown fox jumps over the lazy dog')).toBe('2fd4e1c67a2d28fced849ee1bb76e7391b93eb12'); + }); + + test('multi-block message', () => { + expect(sha1('abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq')).toBe( + '84983e441c3bd26ebaae4aa1f95129e5e54670f1' + ); + }); + + // Domain hash use case — must match output of sha1 npm package v1.1.1 + test('domain hash: "example.com/"', () => { + expect(sha1('example.com/')).toBe('880970443b82bdca0439e34c62e6c667277c2b39'); + expect(sha1('example.com/').slice(0, 4)).toBe('8809'); + }); + + test('domain hash: "localhost/"', () => { + expect(sha1('localhost/')).toBe('1fffd42e9a20211889ebfae87a84665b392c19a4'); + expect(sha1('localhost/').slice(0, 4)).toBe('1fff'); + }); + + test('returns 40-char lowercase hex string', () => { + expect(sha1('anything')).toMatch(/^[0-9a-f]{40}$/); + }); +}); diff --git a/libraries/browser-tracker-core/test/id_cookie.test.ts b/libraries/browser-tracker-core/test/id_cookie.test.ts index a3749d608..0638f4b50 100644 --- a/libraries/browser-tracker-core/test/id_cookie.test.ts +++ b/libraries/browser-tracker-core/test/id_cookie.test.ts @@ -31,7 +31,7 @@ import * as uuid from 'uuid'; jest.mock('uuid'); const MOCK_UUID = '123456789'; -jest.spyOn(uuid, 'v4').mockReturnValue(MOCK_UUID); +(jest.spyOn(uuid, 'v4') as jest.SpyInstance).mockReturnValue(MOCK_UUID); import { payloadBuilder } from '@snowplow/tracker-core'; import { @@ -173,7 +173,7 @@ describe('startNewIdCookieSession', () => { let before = sessionIdFromIdCookie(idCookie); - jest.spyOn(uuid, 'v4').mockReturnValueOnce('another_random_uuid'); + (jest.spyOn(uuid, 'v4') as jest.SpyInstance).mockReturnValueOnce('another_random_uuid'); startNewIdCookieSession(idCookie); let after = sessionIdFromIdCookie(idCookie); diff --git a/libraries/browser-tracker-core/test/out_queue.test.ts b/libraries/browser-tracker-core/test/out_queue.test.ts index aae8e4667..dfc2081ae 100644 --- a/libraries/browser-tracker-core/test/out_queue.test.ts +++ b/libraries/browser-tracker-core/test/out_queue.test.ts @@ -193,8 +193,8 @@ describe('OutQueueManager', () => { }); }); - describe('idService requests', () => { - const idServiceEndpoint = 'http://example.com/id'; + describe('cookieExtensionService requests', () => { + const cookieExtensionServiceEndpoint = 'http://example.com/id'; const getQuerystring = (p: object) => '?' + @@ -203,33 +203,33 @@ describe('OutQueueManager', () => { .join('&'); describe('GET requests', () => { - let createGetQueue = () => newOutQueue( - { - endpoint: 'http://example.com', - trackerId: 'sp', - eventMethod: 'get', - useStm: false, - maxLocalStorageQueueSize: maxQueueSize, - eventStore, - customFetch, - idService: idServiceEndpoint, - }, - new SharedState() - ); - + let createGetQueue = () => + newOutQueue( + { + endpoint: 'http://example.com', + trackerId: 'sp', + eventMethod: 'get', + useStm: false, + maxLocalStorageQueueSize: maxQueueSize, + eventStore, + customFetch, + cookieExtensionService: cookieExtensionServiceEndpoint, + }, + new SharedState() + ); - it('should first execute the idService request and in the same `enqueueRequest` the tracking request', async () => { + it('should first execute the cookieExtensionService request and in the same `enqueueRequest` the tracking request', async () => { const request = { e: 'pv', eid: '65cb78de-470c-4764-8c10-02bd79477a3a' }; const getQueue = createGetQueue(); await getQueue.enqueueRequest(request); expect(requests).toHaveLength(2); - expect(requests[0].url).toEqual(idServiceEndpoint); + expect(requests[0].url).toEqual(cookieExtensionServiceEndpoint); expect(requests[1].url).toEqual('http://example.com/i' + getQuerystring(request)); }); - it('should first execute the idService request and in the same `enqueueRequest` the tracking request irregardless of failure of the idService endpoint', async () => { + it('should first execute the cookieExtensionService request and in the same `enqueueRequest` the tracking request irregardless of failure of the cookieExtensionService endpoint', async () => { const request = { e: 'pv', eid: '65cb78de-470c-4764-8c10-02bd79477a3a' }; const getQueue = createGetQueue(); @@ -237,33 +237,34 @@ describe('OutQueueManager', () => { await getQueue.enqueueRequest(request); expect(requests).toHaveLength(2); - expect(requests[0].url).toEqual(idServiceEndpoint); + expect(requests[0].url).toEqual(cookieExtensionServiceEndpoint); expect(requests[1].url).toEqual('http://example.com/i' + getQuerystring(request)); expect(await eventStore.count()).toEqual(1); }); }); describe('POST requests', () => { - let createPostQueue = () => newOutQueue( - { - endpoint: 'http://example.com', - trackerId: 'sp', - eventMethod: 'post', - eventStore, - customFetch, - idService: idServiceEndpoint, - }, - new SharedState() - ); + let createPostQueue = () => + newOutQueue( + { + endpoint: 'http://example.com', + trackerId: 'sp', + eventMethod: 'post', + eventStore, + customFetch, + cookieExtensionService: cookieExtensionServiceEndpoint, + }, + new SharedState() + ); - it('should first execute the idService request and in the same `enqueueRequest` the tracking request irregardless of failure of the idService endpoint', async () => { + it('should first execute the cookieExtensionService request and in the same `enqueueRequest` the tracking request irregardless of failure of the cookieExtensionService endpoint', async () => { const request = { e: 'pv', eid: '65cb78de-470c-4764-8c10-02bd79477a3a' }; const postQueue = createPostQueue(); await postQueue.enqueueRequest(request); expect(requests).toHaveLength(2); - expect(requests[0].url).toEqual(idServiceEndpoint); + expect(requests[0].url).toEqual(cookieExtensionServiceEndpoint); expect(requests[1].url).toEqual('http://example.com/com.snowplowanalytics.snowplow/tp2'); }); }); @@ -271,17 +272,18 @@ describe('OutQueueManager', () => { describe('retryFailures = true', () => { const request = { e: 'pv', eid: '65cb78de-470c-4764-8c10-02bd79477a3a' }; - let createOutQueue = () => newOutQueue( - { - endpoint: 'http://example.com', - trackerId: 'sp', - eventMethod: 'post', - retryFailedRequests: true, - eventStore, - customFetch, - }, - new SharedState() - ); + let createOutQueue = () => + newOutQueue( + { + endpoint: 'http://example.com', + trackerId: 'sp', + eventMethod: 'post', + retryFailedRequests: true, + eventStore, + customFetch, + }, + new SharedState() + ); it('should remain in queue on failure', async () => { let outQueue = createOutQueue(); @@ -295,17 +297,18 @@ describe('OutQueueManager', () => { describe('retryFailures = false', () => { const request = { e: 'pv', eid: '65cb78de-470c-4764-8c10-02bd79477a3a' }; - let createOutQueue = () => newOutQueue( - { - endpoint: 'http://example.com', - trackerId: 'sp', - eventMethod: 'post', - retryFailedRequests: false, - eventStore, - customFetch, - }, - new SharedState() - ); + let createOutQueue = () => + newOutQueue( + { + endpoint: 'http://example.com', + trackerId: 'sp', + eventMethod: 'post', + retryFailedRequests: false, + eventStore, + customFetch, + }, + new SharedState() + ); it('should remove from queue on failure', async () => { let outQueue = createOutQueue(); @@ -441,23 +444,23 @@ describe('OutQueueManager', () => { describe('onRequestFailure', () => { const request = { e: 'pv', eid: '65cb78de-470c-4764-8c10-02bd79477a3a' }; - const createQueue = (args: createQueueArgs) => - newOutQueue( - { - endpoint: 'http://example.com', - trackerId: 'sp', - eventMethod: args.method, - maxPostBytes: args.maxPostBytes, - maxGetBytes: args.maxGetBytes, - maxLocalStorageQueueSize: maxQueueSize, - onRequestSuccess: args.onSuccess, - onRequestFailure: args.onFailure, - dontRetryStatusCodes: [500], - customFetch, - eventStore, - }, - new SharedState() - ); + const createQueue = (args: createQueueArgs) => + newOutQueue( + { + endpoint: 'http://example.com', + trackerId: 'sp', + eventMethod: args.method, + maxPostBytes: args.maxPostBytes, + maxGetBytes: args.maxGetBytes, + maxLocalStorageQueueSize: maxQueueSize, + onRequestSuccess: args.onSuccess, + onRequestFailure: args.onFailure, + dontRetryStatusCodes: [500], + customFetch, + eventStore, + }, + new SharedState() + ); describe('POST requests', () => { const method = 'post'; diff --git a/libraries/browser-tracker-core/test/tracker/activity_metrics.test.ts b/libraries/browser-tracker-core/test/tracker/activity_metrics.test.ts new file mode 100644 index 000000000..ccf3beb36 --- /dev/null +++ b/libraries/browser-tracker-core/test/tracker/activity_metrics.test.ts @@ -0,0 +1,335 @@ +import { createTracker } from '../helpers'; +import { Payload } from '@snowplow/tracker-core'; +import { ActivityCallbackData } from '../../src'; + +jest.useFakeTimers(); + +describe('Activity metrics', () => { + const ACTIVITY_METRICS_SCHEMA = 'iglu:com.snowplowanalytics.snowplow/activity_metrics/jsonschema/1-0-0'; + + beforeAll(() => { + jest.spyOn(document, 'title', 'get').mockReturnValue('Test Page'); + }); + + afterEach(() => { + jest.clearAllTimers(); + }); + + afterAll(() => { + jest.restoreAllMocks(); + }); + + function getTrackedPayloads() { + const payloads: Payload[] = []; + const tracker = createTracker({ + plugins: [ + { + afterTrack: (payload) => { + payloads.push(payload); + }, + }, + ], + }); + return { tracker: tracker!, payloads }; + } + + function getPagePings(payloads: Payload[]) { + return payloads.filter((p) => p.e === 'pp'); + } + + function getContextEntities(payload: Payload): Array<{ schema: string; data: unknown }> { + const co = payload.co as string | undefined; + if (!co) return []; + return JSON.parse(co).data ?? []; + } + + /** + * The heartbeat check is `lastActivityTime + configHeartBeatTimer > now`. + * Activity must happen strictly within the heartbeat window (not at its start). + * We advance 1s, dispatch events (so lastActivityTime is now+1s), then advance the rest. + */ + function simulateActivityInWindow(events: Event[], heartbeatMs: number) { + jest.advanceTimersByTime(1000); + events.forEach((e) => document.dispatchEvent(e)); + jest.advanceTimersByTime(heartbeatMs - 1000); + } + + it('accumulates metrics from simulated DOM events', () => { + const { tracker, payloads } = getTrackedPayloads(); + tracker.enableActivityTracking({ + minimumVisitLength: 0, + heartbeatDelay: 10, + activityMetrics: true, + }); + tracker.trackPageView(); + + simulateActivityInWindow( + [ + new MouseEvent('mousemove', { clientX: 0, clientY: 0 }), + new MouseEvent('mousemove', { clientX: 3, clientY: 4 }), + new MouseEvent('click'), + new MouseEvent('click'), + new KeyboardEvent('keydown'), + new KeyboardEvent('keydown'), + new KeyboardEvent('keydown'), + new Event('touchstart'), + ], + 10_000 + ); + + const pings = getPagePings(payloads); + expect(pings.length).toBe(1); + + const entities = getContextEntities(pings[0]); + const metricsEntity = entities.find((e) => e.schema === ACTIVITY_METRICS_SCHEMA); + expect(metricsEntity).toBeDefined(); + + const data = metricsEntity!.data as Record; + expect(data.mouseDistance).toBe(5); // sqrt(9+16)=5 + expect(data.clicks).toBe(2); + expect(data.keyPresses).toBe(3); + expect(data.touches).toBe(1); + }); + + it('resets metrics after each ping', () => { + const { tracker, payloads } = getTrackedPayloads(); + tracker.enableActivityTracking({ + minimumVisitLength: 0, + heartbeatDelay: 10, + activityMetrics: true, + }); + tracker.trackPageView(); + + // First heartbeat + simulateActivityInWindow([new MouseEvent('click'), new MouseEvent('click')], 10_000); + + // Second heartbeat + simulateActivityInWindow([new MouseEvent('click')], 10_000); + + const pings = getPagePings(payloads); + expect(pings.length).toBe(2); + + const data1 = getContextEntities(pings[0]).find((e) => e.schema === ACTIVITY_METRICS_SCHEMA)!.data as Record< + string, + number + >; + const data2 = getContextEntities(pings[1]).find((e) => e.schema === ACTIVITY_METRICS_SCHEMA)!.data as Record< + string, + number + >; + + expect(data1.clicks).toBe(2); + expect(data2.clicks).toBe(1); + }); + + it('does not attach entity when activityMetrics is not set', () => { + const { tracker, payloads } = getTrackedPayloads(); + tracker.enableActivityTracking({ + minimumVisitLength: 0, + heartbeatDelay: 10, + }); + tracker.trackPageView(); + + simulateActivityInWindow([new MouseEvent('click')], 10_000); + + const pings = getPagePings(payloads); + expect(pings.length).toBe(1); + + const entities = getContextEntities(pings[0]); + const metricsEntity = entities.find((e) => e.schema === ACTIVITY_METRICS_SCHEMA); + expect(metricsEntity).toBeUndefined(); + }); + + it('calculates mouse distance as Euclidean sum', () => { + const { tracker, payloads } = getTrackedPayloads(); + tracker.enableActivityTracking({ + minimumVisitLength: 0, + heartbeatDelay: 10, + activityMetrics: true, + }); + tracker.trackPageView(); + + // Move from (0,0) to (3,4) then to (3,14) + simulateActivityInWindow( + [ + new MouseEvent('mousemove', { clientX: 0, clientY: 0 }), + new MouseEvent('mousemove', { clientX: 3, clientY: 4 }), // distance 5 + new MouseEvent('mousemove', { clientX: 3, clientY: 14 }), // distance 10 + ], + 10_000 + ); + + const pings = getPagePings(payloads); + expect(pings.length).toBe(1); + + const data = getContextEntities(pings[0]).find((e) => e.schema === ACTIVITY_METRICS_SCHEMA)!.data as Record< + string, + number + >; + expect(data.mouseDistance).toBe(15); // 5 + 10 + }); + + it('populates activityMetrics in callback data', () => { + let callbackData: ActivityCallbackData | undefined; + const tracker = createTracker({ + plugins: [{ afterTrack: () => {} }], + }); + + tracker!.enableActivityTrackingCallback({ + minimumVisitLength: 0, + heartbeatDelay: 10, + activityMetrics: true, + callback: (data) => { + callbackData = data; + }, + }); + tracker!.trackPageView(); + + simulateActivityInWindow([new MouseEvent('click'), new MouseEvent('click')], 10_000); + + expect(callbackData).toBeDefined(); + expect(callbackData!.activityMetrics).toBeDefined(); + expect(callbackData!.activityMetrics!.clicks).toBe(2); + }); + + it('resets metrics on new trackPageView', () => { + const { tracker, payloads } = getTrackedPayloads(); + tracker.enableActivityTracking({ + minimumVisitLength: 0, + heartbeatDelay: 10, + activityMetrics: true, + }); + tracker.trackPageView(); + + // Accumulate some clicks (advance a bit so they register in heartbeat) + jest.advanceTimersByTime(1000); + document.dispatchEvent(new MouseEvent('click')); + document.dispatchEvent(new MouseEvent('click')); + + // New page view resets metrics and restarts intervals + tracker.trackPageView(); + + // Only one new click after the new page view + simulateActivityInWindow([new MouseEvent('click')], 10_000); + + const pings = getPagePings(payloads); + expect(pings.length).toBe(1); + + const data = getContextEntities(pings[0]).find((e) => e.schema === ACTIVITY_METRICS_SCHEMA)!.data as Record< + string, + number + >; + expect(data.clicks).toBe(1); + }); + + it('first mousemove sets position but does not add distance', () => { + const { tracker, payloads } = getTrackedPayloads(); + tracker.enableActivityTracking({ + minimumVisitLength: 0, + heartbeatDelay: 10, + activityMetrics: true, + }); + tracker.trackPageView(); + + // Only one mousemove — should set position but not add distance + simulateActivityInWindow([new MouseEvent('mousemove', { clientX: 100, clientY: 200 })], 10_000); + + const pings = getPagePings(payloads); + expect(pings.length).toBe(1); + + const data = getContextEntities(pings[0]).find((e) => e.schema === ACTIVITY_METRICS_SCHEMA)!.data as Record< + string, + number + >; + expect(data.mouseDistance).toBe(0); + }); + + it('updatePageActivity does not fabricate metrics', () => { + const { tracker, payloads } = getTrackedPayloads(); + tracker.enableActivityTracking({ + minimumVisitLength: 0, + heartbeatDelay: 10, + activityMetrics: true, + }); + tracker.trackPageView(); + + // updatePageActivity without a real event — advance partially so heartbeat detects it + jest.advanceTimersByTime(1000); + tracker.updatePageActivity(); + jest.advanceTimersByTime(9000); + + const pings = getPagePings(payloads); + expect(pings.length).toBe(1); + + const data = getContextEntities(pings[0]).find((e) => e.schema === ACTIVITY_METRICS_SCHEMA)!.data as Record< + string, + number + >; + expect(data.mouseDistance).toBe(0); + expect(data.clicks).toBe(0); + expect(data.keyPresses).toBe(0); + expect(data.touches).toBe(0); + expect(data.scrollDistance).toBe(0); + }); + + it('attaches activity_metrics entity to callback context when using activityMetrics', () => { + let callbackData: ActivityCallbackData | undefined; + const tracker = createTracker({ + plugins: [{ afterTrack: () => {} }], + }); + + tracker!.enableActivityTrackingCallback({ + minimumVisitLength: 0, + heartbeatDelay: 10, + activityMetrics: true, + callback: (data) => { + callbackData = data; + }, + }); + tracker!.trackPageView(); + + jest.advanceTimersByTime(1000); + document.dispatchEvent(new MouseEvent('click')); + document.dispatchEvent(new MouseEvent('click')); + jest.advanceTimersByTime(9000); + + expect(callbackData).toBeDefined(); + const metricsEntity = callbackData!.context.find( + (e) => e.schema === ACTIVITY_METRICS_SCHEMA + ); + expect(metricsEntity).toBeDefined(); + expect((metricsEntity!.data as Record).clicks).toBe(2); + }); + + it('does not overcount mouse distance across ping windows', () => { + let callbackData: ActivityCallbackData[] = []; + const tracker = createTracker({ + plugins: [{ afterTrack: () => {} }], + }); + + tracker!.enableActivityTrackingCallback({ + minimumVisitLength: 0, + heartbeatDelay: 10, + activityMetrics: true, + callback: (data) => { + callbackData.push(data); + }, + }); + tracker!.trackPageView(); + + // First window: move from 0 to 10 + jest.advanceTimersByTime(1000); + document.dispatchEvent(new MouseEvent('mousemove', { clientX: 0, clientY: 0 })); + document.dispatchEvent(new MouseEvent('mousemove', { clientX: 10, clientY: 0 })); + jest.advanceTimersByTime(9000); + + // Second window: single move to 20 — after position reset, this sets baseline only + jest.advanceTimersByTime(1000); + document.dispatchEvent(new MouseEvent('mousemove', { clientX: 20, clientY: 0 })); + jest.advanceTimersByTime(9000); + + expect(callbackData.length).toBe(2); + expect(callbackData[0].activityMetrics!.mouseDistance).toBe(10); + expect(callbackData[1].activityMetrics!.mouseDistance).toBe(0); + }); +}); diff --git a/libraries/browser-tracker-core/test/tracker/cross_domain.test.ts b/libraries/browser-tracker-core/test/tracker/cross_domain.test.ts index c069fba6f..68e76fdc6 100644 --- a/libraries/browser-tracker-core/test/tracker/cross_domain.test.ts +++ b/libraries/browser-tracker-core/test/tracker/cross_domain.test.ts @@ -1,7 +1,7 @@ import * as uuid from 'uuid'; jest.mock('uuid'); const MOCK_UUID = '123456789'; -jest.spyOn(uuid, 'v4').mockReturnValue(MOCK_UUID); +(jest.spyOn(uuid, 'v4') as jest.SpyInstance).mockReturnValue(MOCK_UUID); import { createTracker } from '../helpers'; import { getByText, queryByText, waitFor } from '@testing-library/dom'; diff --git a/libraries/browser-tracker-core/test/tracker/local_storage_event_store.test.ts b/libraries/browser-tracker-core/test/tracker/local_storage_event_store.test.ts new file mode 100644 index 000000000..2c1ceebcf --- /dev/null +++ b/libraries/browser-tracker-core/test/tracker/local_storage_event_store.test.ts @@ -0,0 +1,181 @@ +/* + * Copyright (c) 2022 Snowplow Analytics Ltd, 2010 Anthon Pang + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +import { newLocalStorageEventStore } from '../../src/tracker/local_storage_event_store'; + +describe('LocalStorageEventStore', () => { + const trackerId = 'test-tracker'; + + beforeEach(() => { + localStorage.clear(); + }); + + it('should create an event store with useLocalStorage enabled', async () => { + const eventStore = newLocalStorageEventStore({ + trackerId, + useLocalStorage: true, + }); + + expect(await eventStore.count()).toBe(0); + }); + + it('should create an event store with useLocalStorage disabled', async () => { + const eventStore = newLocalStorageEventStore({ + trackerId, + useLocalStorage: false, + }); + + expect(await eventStore.count()).toBe(0); + }); + + it('should add and retrieve events when localStorage is accessible', async () => { + const eventStore = newLocalStorageEventStore({ + trackerId, + useLocalStorage: true, + }); + + const event = { payload: { e: 'pv', eid: 'test-event-id' } }; + await eventStore.add(event); + + expect(await eventStore.count()).toBe(1); + const events = await eventStore.getAllPayloads(); + expect(events[0]).toMatchObject(event.payload); + }); + + it('should handle SecurityError when accessing localStorage.getItem', () => { + const originalGetItem = Storage.prototype.getItem; + Storage.prototype.getItem = jest.fn(() => { + throw new DOMException('The operation is insecure.', 'SecurityError'); + }); + + // Should not throw an error, but should create an empty in-memory store + const eventStore = newLocalStorageEventStore({ + trackerId, + useLocalStorage: true, + }); + + expect(eventStore).toBeDefined(); + expect(eventStore.count).toBeDefined(); + + Storage.prototype.getItem = originalGetItem; + }); + + it('should handle SecurityError when accessing localStorage.setItem', async () => { + const originalSetItem = Storage.prototype.setItem; + Storage.prototype.setItem = jest.fn(() => { + throw new DOMException('The operation is insecure.', 'SecurityError'); + }); + + const eventStore = newLocalStorageEventStore({ + trackerId, + useLocalStorage: true, + }); + + const event = { payload: { e: 'pv', eid: 'test-event-id' } }; + + // Should not throw an error, even though setItem fails + await expect(eventStore.add(event)).resolves.toBeDefined(); + + // Event should still be in the in-memory store + expect(await eventStore.count()).toBe(1); + + Storage.prototype.setItem = originalSetItem; + }); + + it('should gracefully handle errors when both getItem and setItem throw SecurityError', async () => { + const originalGetItem = Storage.prototype.getItem; + const originalSetItem = Storage.prototype.setItem; + + Storage.prototype.getItem = jest.fn(() => { + throw new DOMException('The operation is insecure.', 'SecurityError'); + }); + Storage.prototype.setItem = jest.fn(() => { + throw new DOMException('The operation is insecure.', 'SecurityError'); + }); + + const eventStore = newLocalStorageEventStore({ + trackerId, + useLocalStorage: true, + }); + + const event = { payload: { e: 'pv', eid: 'test-event-id' } }; + await eventStore.add(event); + + // Event should be in the in-memory store + expect(await eventStore.count()).toBe(1); + const events = await eventStore.getAllPayloads(); + expect(events[0]).toMatchObject(event.payload); + + Storage.prototype.getItem = originalGetItem; + Storage.prototype.setItem = originalSetItem; + }); + + it('should persist events to localStorage when accessible', async () => { + const eventStore = newLocalStorageEventStore({ + trackerId, + useLocalStorage: true, + }); + + const event = { payload: { e: 'pv', eid: 'test-event-id' } }; + await eventStore.add(event); + + // Check that the event was persisted to localStorage + const queueName = `snowplowOutQueue_${trackerId}`; + const stored = localStorage.getItem(queueName); + expect(stored).toBeDefined(); + expect(JSON.parse(stored!)).toHaveLength(1); + }); + + it('should load events from localStorage on initialization', () => { + const queueName = `snowplowOutQueue_${trackerId}`; + const events = [{ payload: { e: 'pv', eid: 'event-1' } }, { payload: { e: 'pv', eid: 'event-2' } }]; + localStorage.setItem(queueName, JSON.stringify(events)); + + const eventStore = newLocalStorageEventStore({ + trackerId, + useLocalStorage: true, + }); + + expect(eventStore.count()).resolves.toBe(2); + }); + + it('should not load from localStorage when useLocalStorage is false', () => { + const queueName = `snowplowOutQueue_${trackerId}`; + const events = [{ payload: { e: 'pv', eid: 'event-1' } }, { payload: { e: 'pv', eid: 'event-2' } }]; + localStorage.setItem(queueName, JSON.stringify(events)); + + const eventStore = newLocalStorageEventStore({ + trackerId, + useLocalStorage: false, + }); + + expect(eventStore.count()).resolves.toBe(0); + }); +}); diff --git a/libraries/browser-tracker-core/test/tracker/page_view.test.ts b/libraries/browser-tracker-core/test/tracker/page_view.test.ts index 42d752d2d..0a56c5e97 100644 --- a/libraries/browser-tracker-core/test/tracker/page_view.test.ts +++ b/libraries/browser-tracker-core/test/tracker/page_view.test.ts @@ -28,6 +28,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +import * as browserProps from '../../src/helpers/browser_props'; import { createTracker } from '../helpers'; describe('Tracker API: page views', () => { @@ -55,6 +56,49 @@ describe('Tracker API: page views', () => { expect(titles).toEqual(['Title override', 'Page title 1']); }); + it('setCustomUrl keeps a URL whose scheme contains a hyphen (e.g. a browser extension)', () => { + let urls: string[] = []; + const tracker = createTracker({ + plugins: [ + { + afterTrack: (payload) => { + urls.push(payload.url as string); + }, + }, + ], + }); + + // chrome-extension is 16 chars, which is within the atomic event schema's + // 16-char scheme limit, so it is a real, schema-valid scheme the tracker + // must preserve as an absolute URL rather than resolve against the page. + tracker?.setCustomUrl('chrome-extension://abcdefg/index.html'); + tracker?.trackPageView(); + + expect(urls[0]).toBe('chrome-extension://abcdefg/index.html'); + }); + + it('setCustomUrl does not treat an over-length scheme as absolute (schema caps scheme at 16 chars)', () => { + let urls: string[] = []; + const tracker = createTracker({ + plugins: [ + { + afterTrack: (payload) => { + urls.push(payload.url as string); + }, + }, + ], + }); + + // safari-web-extension is 20 chars, exceeding the atomic event schema's + // 16-char scheme limit. Treating it as absolute would only produce an event + // that fails validation downstream, so it must be handled as a relative + // reference (resolved against the page) instead of preserved verbatim. + tracker?.setCustomUrl('safari-web-extension://abcdefg/index.html'); + tracker?.trackPageView(); + + expect(urls[0]).not.toBe('safari-web-extension://abcdefg/index.html'); + }); + it('Uses custom page title set using setDocumentTitle until overriden again', () => { let titles: string[] = []; const tracker = createTracker({ @@ -100,4 +144,31 @@ describe('Tracker API: page views', () => { expect(titles).toEqual(['Explicit title', 'Page title 1']); }); + + describe('getBrowserProperties deferred init', () => { + let getBrowserPropertiesSpy: jest.SpyInstance; + + beforeEach(() => { + browserProps.resetBrowserPropertiesState(); + getBrowserPropertiesSpy = jest.spyOn(browserProps, 'getBrowserProperties'); + }); + + afterEach(() => { + jest.restoreAllMocks(); + browserProps.resetBrowserPropertiesState(); + }); + + it('does not call getBrowserProperties during tracker construction', () => { + createTracker(); + expect(getBrowserPropertiesSpy).not.toHaveBeenCalled(); + }); + + it('calls getBrowserProperties exactly once on the first trackPageView (default config)', () => { + const tracker = createTracker(); + getBrowserPropertiesSpy.mockClear(); + + tracker?.trackPageView(); + expect(getBrowserPropertiesSpy).toHaveBeenCalledTimes(1); + }); + }); }); diff --git a/libraries/browser-tracker-core/test/tracker/referrer.test.ts b/libraries/browser-tracker-core/test/tracker/referrer.test.ts new file mode 100644 index 000000000..732ae419b --- /dev/null +++ b/libraries/browser-tracker-core/test/tracker/referrer.test.ts @@ -0,0 +1,169 @@ +/* + * Copyright (c) 2022 Snowplow Analytics Ltd, 2010 Anthon Pang + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +import { createTracker } from '../helpers'; + +const EXTERNAL_REFERRER = 'https://www.google.com/search?q=snowplow'; + +/** + * Simulate a SPA client-side navigation by updating window.location + * without a page reload, and advancing the tracker's internal URL state. + */ +function navigateTo(path: string) { + window.history.pushState({}, '', path); +} + +describe('Tracker API: preserveOriginalReferrer', () => { + let referrerSpy: jest.SpyInstance; + + beforeEach(() => { + // Reset URL to a known starting point before each test + window.history.pushState({}, '', '/test/page.html'); + referrerSpy = jest.spyOn(document, 'referrer', 'get').mockReturnValue(EXTERNAL_REFERRER); + }); + + afterEach(() => { + jest.restoreAllMocks(); + }); + + it('freezes the original external referrer across SPA navigations when enabled', () => { + const referrers: string[] = []; + const tracker = createTracker({ + preserveOriginalReferrer: true, + plugins: [ + { + afterTrack: (payload) => { + referrers.push(payload.refr as string); + }, + }, + ], + }); + + // First page view — referrer should be the external referrer + tracker?.trackPageView(); + + // Simulate SPA navigation to a different route + navigateTo('/test/about.html'); + tracker?.trackPageView(); + + // Simulate another SPA navigation + navigateTo('/test/contact.html'); + tracker?.trackPageView(); + + // All three page views should report the original external referrer + expect(referrers).toHaveLength(3); + expect(referrers[0]).toBe(EXTERNAL_REFERRER); + expect(referrers[1]).toBe(EXTERNAL_REFERRER); + expect(referrers[2]).toBe(EXTERNAL_REFERRER); + }); + + it('is a no-op when document.referrer is empty at init (direct navigation)', () => { + // Override the referrer spy to return empty string (direct navigation) + referrerSpy.mockReturnValue(''); + + const referrers: string[] = []; + const tracker = createTracker({ + preserveOriginalReferrer: true, + plugins: [ + { + afterTrack: (payload) => { + referrers.push((payload.refr as string) ?? ''); + }, + }, + ], + }); + + // First page view — no external referrer, so refr is empty + tracker?.trackPageView(); + const firstRefr = referrers[0]; + + // Navigate to a new route — now the previous internal URL becomes the referrer + navigateTo('/test/about.html'); + tracker?.trackPageView(); + + // The second page view should have the previous internal URL as referrer + // (not frozen to empty string), proving the no-op behaviour + expect(referrers).toHaveLength(2); + expect(firstRefr ?? '').toBe(''); + // The second referrer should be set to the previous page's URL (internal chain intact) + expect(referrers[1]).toContain('/test/page.html'); + }); + + it('allows setReferrerUrl to override the preserved referrer after init', () => { + const referrers: string[] = []; + const tracker = createTracker({ + preserveOriginalReferrer: true, + plugins: [ + { + afterTrack: (payload) => { + referrers.push(payload.refr as string); + }, + }, + ], + }); + + // Override with an explicit custom referrer after init + tracker?.setReferrerUrl('https://custom.com/landing'); + tracker?.trackPageView(); + + navigateTo('/test/about.html'); + tracker?.trackPageView(); + + // The explicit setReferrerUrl call wins (last-write-wins on customReferrer) + expect(referrers[0]).toBe('https://custom.com/landing'); + expect(referrers[1]).toBe('https://custom.com/landing'); + }); + + it('does not affect SPA referrer chain when option is absent', () => { + const referrers: string[] = []; + const tracker = createTracker({ + // preserveOriginalReferrer not set — default behaviour + plugins: [ + { + afterTrack: (payload) => { + referrers.push((payload.refr as string) ?? ''); + }, + }, + ], + }); + + // First page view uses document.referrer + tracker?.trackPageView(); + + // Navigate — second page view should use the previous internal URL as referrer + navigateTo('/test/about.html'); + tracker?.trackPageView(); + + expect(referrers).toHaveLength(2); + expect(referrers[0]).toBe(EXTERNAL_REFERRER); + // After SPA navigation the referrer becomes the previous internal URL + expect(referrers[1]).toContain('/test/page.html'); + }); +}); diff --git a/libraries/browser-tracker-core/test/tracker/session_data.test.ts b/libraries/browser-tracker-core/test/tracker/session_data.test.ts index c821818ae..d4b7277db 100644 --- a/libraries/browser-tracker-core/test/tracker/session_data.test.ts +++ b/libraries/browser-tracker-core/test/tracker/session_data.test.ts @@ -31,7 +31,7 @@ import * as uuid from 'uuid'; jest.mock('uuid'); const MOCK_UUID = '123456789'; -jest.spyOn(uuid, 'v4').mockReturnValue(MOCK_UUID); +(jest.spyOn(uuid, 'v4') as jest.SpyInstance).mockReturnValue(MOCK_UUID); import { createTestIdCookie, createTestSessionIdCookie, createTracker } from '../helpers'; @@ -131,6 +131,30 @@ describe('Tracker API: ', () => { expect(tracker?.getDomainSessionIndex()).toEqual(2); }); + it('Returns the current domain session id from an existing session', () => { + const sessionId = 'aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee'; + document.cookie = createTestIdCookie({ sessionId }) + ' ' + createTestSessionIdCookie(); + const tracker = createTracker(); + + expect(tracker?.getDomainSessionId()).toEqual(sessionId); + }); + + it('Returns a newly generated domain session id on a new session', () => { + const tracker = createTracker(); + + expect(tracker?.getDomainSessionId()).toEqual(MOCK_UUID); + }); + + it('Returns the updated domain session id after newSession()', () => { + const sessionId = 'aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee'; + document.cookie = createTestIdCookie({ sessionId }) + ' ' + createTestSessionIdCookie(); + const tracker = createTracker(); + expect(tracker?.getDomainSessionId()).toEqual(sessionId); + + tracker?.newSession(); + expect(tracker?.getDomainSessionId()).toEqual(MOCK_UUID); + }); + it('Adds the client session context entity when enabled', (done) => { const tracker = createTracker({ contexts: { session: true }, @@ -189,6 +213,71 @@ describe('Tracker API: ', () => { tracker?.trackPageView(); }); + describe('disableSessionContextWithinWebView', () => { + afterEach(() => { + delete (window as any).ReactNativeWebView; + }); + + it('Suppresses client_session entity when in WebView and option is enabled', (done) => { + (window as any).ReactNativeWebView = { postMessage: () => {} }; + const tracker = createTracker({ + contexts: { session: true }, + encodeBase64: false, + disableSessionContextWithinWebView: true, + plugins: [ + { + afterTrack: (payload) => { + let context = payload.co as string; + expect(context).not.toContain('client_session'); + done(); + }, + }, + ], + }); + + tracker?.trackPageView(); + }); + + it('Includes client_session entity when in WebView but option is explicitly false', (done) => { + (window as any).ReactNativeWebView = { postMessage: () => {} }; + const tracker = createTracker({ + contexts: { session: true }, + encodeBase64: false, + disableSessionContextWithinWebView: false, + plugins: [ + { + afterTrack: (payload) => { + let context = payload.co as string; + expect(context).toContain('client_session'); + done(); + }, + }, + ], + }); + + tracker?.trackPageView(); + }); + + it('Includes client_session entity when in WebView but option is absent (backward compat)', (done) => { + (window as any).ReactNativeWebView = { postMessage: () => {} }; + const tracker = createTracker({ + contexts: { session: true }, + encodeBase64: false, + plugins: [ + { + afterTrack: (payload) => { + let context = payload.co as string; + expect(context).toContain('client_session'); + done(); + }, + }, + ], + }); + + tracker?.trackPageView(); + }); + }); + describe('onSessionUpdateCallback functionality', () => { beforeEach(() => { const standardDate = new Date('2023-01-01T00:00:00Z'); diff --git a/libraries/tracker-core/CHANGELOG.json b/libraries/tracker-core/CHANGELOG.json index 805a7fd04..c043608d9 100644 --- a/libraries/tracker-core/CHANGELOG.json +++ b/libraries/tracker-core/CHANGELOG.json @@ -1,6 +1,126 @@ { "name": "@snowplow/tracker-core", "entries": [ + { + "version": "4.10.0", + "tag": "@snowplow/tracker-core_v4.10.0", + "date": "Mon, 27 Jul 2026 13:52:14 GMT", + "comments": {} + }, + { + "version": "4.9.0", + "tag": "@snowplow/tracker-core_v4.9.0", + "date": "Tue, 21 Jul 2026 14:53:08 GMT", + "comments": {} + }, + { + "version": "4.8.4", + "tag": "@snowplow/tracker-core_v4.8.4", + "date": "Thu, 02 Jul 2026 10:07:52 GMT", + "comments": {} + }, + { + "version": "4.8.3", + "tag": "@snowplow/tracker-core_v4.8.3", + "date": "Tue, 30 Jun 2026 14:22:03 GMT", + "comments": { + "none": [ + { + "comment": "Update uuid to v11 and remove closure-compiler from the build pipeline" + } + ] + } + }, + { + "version": "4.8.2", + "tag": "@snowplow/tracker-core_v4.8.2", + "date": "Wed, 17 Jun 2026 12:30:12 GMT", + "comments": {} + }, + { + "version": "4.8.1", + "tag": "@snowplow/tracker-core_v4.8.1", + "date": "Wed, 13 May 2026 09:26:05 GMT", + "comments": {} + }, + { + "version": "4.8.0", + "tag": "@snowplow/tracker-core_v4.8.0", + "date": "Tue, 28 Apr 2026 07:56:22 GMT", + "comments": {} + }, + { + "version": "4.7.0", + "tag": "@snowplow/tracker-core_v4.7.0", + "date": "Wed, 01 Apr 2026 12:59:29 GMT", + "comments": {} + }, + { + "version": "4.6.9", + "tag": "@snowplow/tracker-core_v4.6.9", + "date": "Mon, 16 Mar 2026 15:43:06 GMT", + "comments": {} + }, + { + "version": "4.6.8", + "tag": "@snowplow/tracker-core_v4.6.8", + "date": "Tue, 28 Oct 2025 09:46:42 GMT", + "comments": {} + }, + { + "version": "4.6.7", + "tag": "@snowplow/tracker-core_v4.6.7", + "date": "Tue, 07 Oct 2025 14:53:36 GMT", + "comments": {} + }, + { + "version": "4.6.6", + "tag": "@snowplow/tracker-core_v4.6.6", + "date": "Tue, 26 Aug 2025 08:42:28 GMT", + "comments": {} + }, + { + "version": "4.6.5", + "tag": "@snowplow/tracker-core_v4.6.5", + "date": "Wed, 25 Jun 2025 21:16:46 GMT", + "comments": {} + }, + { + "version": "4.6.4", + "tag": "@snowplow/tracker-core_v4.6.4", + "date": "Wed, 25 Jun 2025 12:08:50 GMT", + "comments": {} + }, + { + "version": "4.6.3", + "tag": "@snowplow/tracker-core_v4.6.3", + "date": "Thu, 29 May 2025 19:52:07 GMT", + "comments": {} + }, + { + "version": "4.6.2", + "tag": "@snowplow/tracker-core_v4.6.2", + "date": "Tue, 20 May 2025 07:39:05 GMT", + "comments": {} + }, + { + "version": "4.6.1", + "tag": "@snowplow/tracker-core_v4.6.1", + "date": "Tue, 06 May 2025 13:10:51 GMT", + "comments": {} + }, + { + "version": "4.6.0", + "tag": "@snowplow/tracker-core_v4.6.0", + "date": "Thu, 01 May 2025 09:58:59 GMT", + "comments": { + "none": [ + { + "comment": "Add `cookieExtensionService` argument as replacement for `idService`, deprecate `idService`" + } + ] + } + }, { "version": "4.5.0", "tag": "@snowplow/tracker-core_v4.5.0", diff --git a/libraries/tracker-core/CHANGELOG.md b/libraries/tracker-core/CHANGELOG.md index 2af1ceec4..a129f02ef 100644 --- a/libraries/tracker-core/CHANGELOG.md +++ b/libraries/tracker-core/CHANGELOG.md @@ -1,6 +1,100 @@ # Change Log - @snowplow/tracker-core -This log was last generated on Fri, 04 Apr 2025 09:21:23 GMT and should not be manually modified. +This log was last generated on Mon, 27 Jul 2026 13:52:14 GMT and should not be manually modified. + +## 4.10.0 +Mon, 27 Jul 2026 13:52:14 GMT + +_Version update only_ + +## 4.9.0 +Tue, 21 Jul 2026 14:53:08 GMT + +_Version update only_ + +## 4.8.4 +Thu, 02 Jul 2026 10:07:52 GMT + +_Version update only_ + +## 4.8.3 +Tue, 30 Jun 2026 14:22:03 GMT + +### Updates + +- Update uuid to v11 and remove closure-compiler from the build pipeline + +## 4.8.2 +Wed, 17 Jun 2026 12:30:12 GMT + +_Version update only_ + +## 4.8.1 +Wed, 13 May 2026 09:26:05 GMT + +_Version update only_ + +## 4.8.0 +Tue, 28 Apr 2026 07:56:22 GMT + +_Version update only_ + +## 4.7.0 +Wed, 01 Apr 2026 12:59:29 GMT + +_Version update only_ + +## 4.6.9 +Mon, 16 Mar 2026 15:43:06 GMT + +_Version update only_ + +## 4.6.8 +Tue, 28 Oct 2025 09:46:42 GMT + +_Version update only_ + +## 4.6.7 +Tue, 07 Oct 2025 14:53:36 GMT + +_Version update only_ + +## 4.6.6 +Tue, 26 Aug 2025 08:42:28 GMT + +_Version update only_ + +## 4.6.5 +Wed, 25 Jun 2025 21:16:46 GMT + +_Version update only_ + +## 4.6.4 +Wed, 25 Jun 2025 12:08:50 GMT + +_Version update only_ + +## 4.6.3 +Thu, 29 May 2025 19:52:07 GMT + +_Version update only_ + +## 4.6.2 +Tue, 20 May 2025 07:39:05 GMT + +_Version update only_ + +## 4.6.1 +Tue, 06 May 2025 13:10:51 GMT + +_Version update only_ + +## 4.6.0 +Thu, 01 May 2025 09:58:59 GMT + +### Updates + +- Add `cookieExtensionService` argument as replacement for `idService`, deprecate `idService` ## 4.5.0 Fri, 04 Apr 2025 09:21:23 GMT diff --git a/libraries/tracker-core/CLAUDE.md b/libraries/tracker-core/CLAUDE.md new file mode 100644 index 000000000..02de6dc77 --- /dev/null +++ b/libraries/tracker-core/CLAUDE.md @@ -0,0 +1,384 @@ +# Tracker Core Library - CLAUDE.md + +## Module Overview + +The `@snowplow/tracker-core` library provides platform-agnostic event tracking functionality. It contains the fundamental building blocks for constructing Snowplow events, managing contexts, and handling payloads. This is the foundation that all platform-specific trackers build upon. + +## Core Responsibilities + +- **Event Builders**: Functions to construct typed Snowplow events +- **Payload Management**: JSON and form-encoded payload construction +- **Context Handling**: Global and conditional context providers +- **Plugin System**: Core plugin architecture and lifecycle +- **Emitter Logic**: Event batching and request management + +## Architecture Patterns + +### Event Builder Pattern +All events follow a consistent builder pattern that returns a `PayloadBuilder`: + +```typescript +// ✅ Correct: Use typed builders +export function buildPageView(event: PageViewEvent): PayloadBuilder { + const { pageUrl, pageTitle, referrer } = event; + return payloadBuilder() + .add('e', 'pv') + .add('url', pageUrl) + .add('page', pageTitle) + .add('refr', referrer); +} + +// ❌ Wrong: Manual payload construction +function makePageView(url: string) { + return { e: 'pv', url }; // Don't build manually +} +``` + +### Self-Describing JSON Pattern +```typescript +// ✅ Correct: Strongly typed SDJ +export type SelfDescribingJson> = { + schema: string; + data: T extends any[] ? never : T; +}; + +// ❌ Wrong: Loose typing +type Event = { schema: any; data: any }; +``` + +### Timestamp ADT Pattern +```typescript +// ✅ Correct: Use discriminated union +export type Timestamp = TrueTimestamp | DeviceTimestamp | number; +export interface TrueTimestamp { + readonly type: 'ttm'; + readonly value: number; +} + +// ❌ Wrong: Ambiguous timestamp types +type Timestamp = number | { value: number }; +``` + +## Critical Import Patterns + +### Public API Exports +```typescript +// index.ts - Centralized exports +export * from './core'; +export * from './contexts'; +export * from './payload'; +export * from './emitter'; +export * from './plugins'; +export { buildPageView, buildStructEvent } from './events'; +``` + +### Internal Module Structure +```typescript +// ✅ Correct: Import from sibling modules +import { PayloadBuilder } from './payload'; +import { SelfDescribingJson } from './core'; + +// ❌ Wrong: Circular dependencies +import { something } from '../index'; // Avoid +``` + +## Event Building Standards + +### Standard Event Properties +```typescript +// Every event builder should accept CommonEventProperties +export interface CommonEventProperties> { + context?: Array> | null; + timestamp?: Timestamp | null; +} +``` + +### Event Factory Pattern +```typescript +// Standard event builder structure +export function buildCustomEvent( + event: CustomEventData +): PayloadBuilder { + return payloadBuilder() + .add('e', 'ue') // Event type + .addJson('ue_px', 'ue_pr', { + schema: EVENT_SCHEMA, + data: processEventData(event) + }); +} +``` + +## Context Management + +### Global Context Pattern +```typescript +// ✅ Correct: Conditional context provider +export type ConditionalContextProvider = + [ContextFilter, ContextPrimitive | ContextGenerator]; + +const globalContext: ConditionalContextProvider = [ + (event) => event.eventType === 'pv', // Filter + { schema: '...', data: {...} } // Context +]; + +// ❌ Wrong: Unfiltered global contexts +const context = { schema: '...', data: {...} }; // No filtering +``` + +### Plugin Context Integration +```typescript +// Plugin contexts are merged with global contexts +export function pluginContexts(): PluginContexts { + return { + addPluginContexts: (contexts: Array) => { + // Contexts added by plugins + } + }; +} +``` + +## Emitter Architecture + +### Event Store Pattern +```typescript +// Event storage abstraction +export interface EventStore { + add(payload: EventStorePayload): Promise; + count(): Promise; + getAll(): Promise; + removeHead(count: number): Promise; +} +``` + +### Request Building +```typescript +// Batch request construction +export class EmitterRequest { + constructor( + events: EmitterEvent[], + byteLimit: number + ) { + this.batch = this.buildBatch(events, byteLimit); + } +} +``` + +## Common Patterns + +### UUID Generation +```typescript +// ✅ Correct: Use uuid v4 +import { v4 as uuid } from 'uuid'; +const eventId = uuid(); + +// ❌ Wrong: Custom ID generation +const id = Math.random().toString(36); +``` + +### Base64 Encoding +```typescript +// Use the provided base64 utilities +import { base64urlencode } from './base64'; +const encoded = base64urlencode(jsonString); +``` + +### Logger Pattern +```typescript +// Conditional logging +import { LOG } from './logger'; +LOG.error('Error message', error); +LOG.warn('Warning message'); +``` + +## Testing Patterns + +### Mock Payload Builders +```typescript +// Test helper pattern +function createMockPayloadBuilder(): PayloadBuilder { + return payloadBuilder() + .add('aid', 'test-app') + .add('p', 'web'); +} +``` + +### Event Validation +```typescript +// Validate event structure in tests +expect(event.build()).toMatchObject({ + e: 'ue', + ue_pr: expect.stringContaining('schema') +}); +``` + +## Testing Patterns + +### Test Directory Structure +``` +test/ +├── core.test.ts # Core tracker tests +├── payload.test.ts # Payload builder tests +├── contexts.test.ts # Context management tests +├── emitter/ # Emitter-specific tests +└── __snapshots__/ # Jest snapshots +``` + +### In-Memory Event Store Pattern +```typescript +// ✅ Correct: Use in-memory store for testing +import { newInMemoryEventStore } from '@snowplow/tracker-core'; + +describe('Event tracking', () => { + let eventStore: EventStore; + + beforeEach(() => { + eventStore = newInMemoryEventStore(); + }); + + it('stores events correctly', () => { + const tracker = new TrackerCore({ eventStore }); + tracker.track(buildPageView({ pageUrl: 'test' })); + + const events = eventStore.getEvents(); + expect(events).toHaveLength(1); + expect(events[0].e).toBe('pv'); + }); +}); +``` + +### Payload Builder Testing +```typescript +// ✅ Correct: Test payload construction +describe('PayloadBuilder', () => { + it('builds valid Snowplow payload', () => { + const payload = new PayloadBuilder() + .add('e', 'pv') + .add('url', 'http://example.com') + .add('page', 'Home') + .build(); + + expect(payload).toEqual({ + e: 'pv', + url: 'http://example.com', + page: 'Home' + }); + }); + + it('encodes base64 for self-describing events', () => { + const payload = buildSelfDescribingEvent({ + event: { + schema: 'iglu:com.example/test/jsonschema/1-0-0', + data: { key: 'value' } + } + }); + + const built = payload.build(); + expect(built.ue_pr).toBeDefined(); + const decoded = JSON.parse(Buffer.from(built.ue_pr, 'base64').toString()); + expect(decoded.data.schema).toBe('iglu:com.example/test/jsonschema/1-0-0'); + }); +}); +``` + +### Context Testing +```typescript +// ✅ Correct: Test context providers +describe('Context management', () => { + it('adds global contexts to events', () => { + const contextProvider = () => [{ + schema: 'iglu:com.example/context/jsonschema/1-0-0', + data: { contextKey: 'contextValue' } + }]; + + const tracker = new TrackerCore({ + contextProviders: [contextProvider] + }); + + const payload = tracker.track(buildPageView({ pageUrl: 'test' })); + const contexts = JSON.parse(Buffer.from(payload.co, 'base64').toString()); + + expect(contexts.data).toContainEqual( + expect.objectContaining({ + data: { contextKey: 'contextValue' } + }) + ); + }); +}); +``` + +### Event Builder Testing Pattern +```typescript +// ✅ Correct: Test custom event builders +function buildCustomEvent(data: CustomEventData): PayloadBuilder { + return new PayloadBuilder() + .add('e', 'ue') + .add('ue_pr', buildSelfDescribingJson({ + schema: CUSTOM_EVENT_SCHEMA, + data + })); +} + +describe('Custom event builder', () => { + it('creates valid self-describing event', () => { + const event = buildCustomEvent({ field: 'value' }); + const payload = event.build(); + + expect(payload.e).toBe('ue'); + expect(JSON.parse(Buffer.from(payload.ue_pr, 'base64').toString())) + .toMatchSnapshot(); + }); +}); +``` + +## File Organization + +``` +tracker-core/ +├── src/ +│ ├── index.ts # Public API exports +│ ├── core.ts # Core types and tracker +│ ├── payload.ts # Payload builder +│ ├── contexts.ts # Context management +│ ├── plugins.ts # Plugin system +│ ├── base64.ts # Encoding utilities +│ ├── logger.ts # Logging +│ ├── schemata.ts # Schema constants +│ └── emitter/ +│ ├── index.ts # Emitter exports +│ ├── emitter_event.ts +│ └── emitter_request.ts +└── test/ + └── [module].test.ts +``` + +## Quick Reference + +### Essential Imports +```typescript +import { + PayloadBuilder, + SelfDescribingJson, + CommonEventProperties, + buildSelfDescribingEvent, + buildPageView, + buildStructEvent, + TrackerCore +} from '@snowplow/tracker-core'; +``` + +### Event Builder Checklist +- [ ] Accept event-specific data interface +- [ ] Return `PayloadBuilder` +- [ ] Add event type with `.add('e', 'type')` +- [ ] Handle optional CommonEventProperties +- [ ] Export from index.ts + +## Contributing to CLAUDE.md + +When modifying tracker-core patterns: + +1. **Maintain backward compatibility** - This is a core library +2. **Update type exports** when adding new interfaces +3. **Follow builder pattern** for new event types +4. **Test payload structure** thoroughly +5. **Document schema changes** in schemata.ts \ No newline at end of file diff --git a/libraries/tracker-core/package.json b/libraries/tracker-core/package.json index 2be1c5bc8..2144f8c4c 100644 --- a/libraries/tracker-core/package.json +++ b/libraries/tracker-core/package.json @@ -1,6 +1,6 @@ { "name": "@snowplow/tracker-core", - "version": "4.5.0", + "version": "4.10.0", "description": "Core functionality for Snowplow JavaScript trackers", "keywords": [ "tracking", @@ -45,15 +45,13 @@ }, "dependencies": { "tslib": "^2.3.1", - "uuid": "^10.0.0" + "uuid": "^11.1.1" }, "devDependencies": { - "@ampproject/rollup-plugin-closure-compiler": "~0.27.0", "@rollup/plugin-commonjs": "~21.0.2", "@rollup/plugin-json": "~4.1.0", "@rollup/plugin-node-resolve": "~13.1.3", "@types/node": "~14.6.0", - "@types/uuid": "^10.0.0", "@typescript-eslint/eslint-plugin": "~5.15.0", "@typescript-eslint/parser": "~5.15.0", "ava": "~5.1.1", diff --git a/libraries/tracker-core/rollup.config.js b/libraries/tracker-core/rollup.config.js index 1a7544981..42c391285 100644 --- a/libraries/tracker-core/rollup.config.js +++ b/libraries/tracker-core/rollup.config.js @@ -33,7 +33,6 @@ import commonjs from '@rollup/plugin-commonjs'; import json from '@rollup/plugin-json'; import ts from 'rollup-plugin-ts'; // Prefered over @rollup/plugin-typescript as it bundles .d.ts files import { banner } from '../../banner'; -import compiler from '@ampproject/rollup-plugin-closure-compiler'; import { terser } from 'rollup-plugin-terser'; import cleanup from 'rollup-plugin-cleanup'; import pkg from './package.json'; @@ -51,7 +50,7 @@ export default [ }, { input: './src/index.ts', - plugins: [...umdPlugins, compiler(), terser(), cleanup({ comments: 'none' }), banner()], + plugins: [...umdPlugins, terser(), cleanup({ comments: 'none' }), banner()], output: [{ file: pkg['umd:main'].replace('.js', '.min.js'), format: 'umd', sourcemap: true, name: umdName }], }, { diff --git a/libraries/tracker-core/src/emitter/index.ts b/libraries/tracker-core/src/emitter/index.ts index 0b7bfc783..35e3649e8 100644 --- a/libraries/tracker-core/src/emitter/index.ts +++ b/libraries/tracker-core/src/emitter/index.ts @@ -107,11 +107,15 @@ export interface EmitterConfigurationBase { */ dontRetryStatusCodes?: number[]; /** - * Id service full URL. This URL will be added to the queue and will be called using a GET method. + * Cookie extension service full URL. This URL will be added to the queue and will be called using a GET method. * This option is there to allow the service URL to be called in order to set any required identifiers e.g. extra cookies. * * The request respects the `anonymousTracking` option, including the SP-Anonymous header if needed, and any additional custom headers from the customHeaders option. */ + cookieExtensionService?: string; + /** + * @deprecated Use `cookieExtensionService` instead. + */ idService?: string; /** * Indicates that the request should be allowed to outlive the webpage that initiated it. @@ -208,6 +212,7 @@ export function newEmitter({ serverAnonymization, connectionTimeout, keepalive, + cookieExtensionService, idService, dontRetryStatusCodes = [], retryStatusCodes = [], @@ -219,7 +224,10 @@ export function newEmitter({ eventStore = newInMemoryEventStore({}), credentials, }: EmitterConfiguration): Emitter { - let idServiceCalled = false; + /* `cookieExtensionService` gets priority until `idService` is completely removed. */ + cookieExtensionService = cookieExtensionService || idService; + + let cookieExtensionServiceCalled = false; let flushInProgress = false; const usePost = eventMethod.toLowerCase() === 'post'; dontRetryStatusCodes = dontRetryStatusCodes.concat([400, 401, 403, 410, 422]); @@ -349,10 +357,10 @@ export function newEmitter({ } } - async function callIdService() { - if (idService && !idServiceCalled) { - idServiceCalled = true; - const request = new Request(idService, { method: 'GET' }); + async function callCookieExtensionService() { + if (cookieExtensionService && !cookieExtensionServiceCalled) { + cookieExtensionServiceCalled = true; + const request = new Request(cookieExtensionService, { method: 'GET' }); await customFetch(request); } } @@ -372,7 +380,7 @@ export function newEmitter({ } async function continueFlush() { - await callIdService(); + await callCookieExtensionService(); const request = newEmitterRequestWithConfig(); const eventStoreIterator = eventStore.iterator(); diff --git a/libraries/tracker-core/test/emitter/index.test.ts b/libraries/tracker-core/test/emitter/index.test.ts index 22c10ee23..0371224ef 100644 --- a/libraries/tracker-core/test/emitter/index.test.ts +++ b/libraries/tracker-core/test/emitter/index.test.ts @@ -1,7 +1,7 @@ import test from 'ava'; import { newEmitter, Emitter } from '../../src/emitter'; -import { newInMemoryEventStore } from "../../src/event_store"; +import { newInMemoryEventStore } from '../../src/event_store'; function createMockFetch(status: number, requests: Request[]) { return async (input: Request) => { @@ -15,7 +15,7 @@ test.before(() => { console.error = () => {}; // Silence console.error globally }); -test("input adds an event to the event store", async (t) => { +test('input adds an event to the event store', async (t) => { const requests: Request[] = []; const mockFetch = createMockFetch(200, requests); const eventStore = newInMemoryEventStore({}); @@ -26,7 +26,7 @@ test("input adds an event to the event store", async (t) => { eventStore, }); - await emitter.input({ e: "pv" }); + await emitter.input({ e: 'pv' }); t.is(await eventStore.count(), 1); t.is(requests.length, 0); @@ -288,7 +288,7 @@ test('makes a request to the id service only once', async (t) => { const emitter: Emitter = newEmitter({ endpoint: 'https://example.com', customFetch: mockFetch, - idService: 'https://id-example.com', + cookieExtensionService: 'https://id-example.com', }); await emitter.input({ e: 'pv' }); @@ -325,7 +325,7 @@ test('adds a timeout to the request', async (t) => { endpoint: 'https://example.com', customFetch: mockFetch, connectionTimeout: 100, - eventStore + eventStore, }); await emitter.input({ e: 'pv' }); diff --git a/plugins/CLAUDE.md b/plugins/CLAUDE.md new file mode 100644 index 000000000..a78aba399 --- /dev/null +++ b/plugins/CLAUDE.md @@ -0,0 +1,413 @@ +# Browser Plugins - CLAUDE.md + +## Plugin Architecture Overview + +Browser plugins extend the core tracking functionality with feature-specific capabilities. Each plugin follows a consistent pattern for registration, state management, and API exposure. Plugins are self-contained modules that integrate seamlessly with the tracker lifecycle. + +## Core Plugin Pattern + +### Plugin Structure Template +```typescript +// ✅ Correct: Standard plugin structure +import { BrowserPlugin, BrowserTracker } from '@snowplow/browser-tracker-core'; + +const _trackers: Record = {}; + +export function MyPlugin(): BrowserPlugin { + return { + activateBrowserPlugin: (tracker) => { + _trackers[tracker.id] = tracker; + } + }; +} + +// ❌ Wrong: Global state without cleanup +let tracker: BrowserTracker; // Global leak +``` + +### API Function Pattern +```typescript +// ✅ Correct: Dispatch to registered trackers +export function trackMyEvent( + event: MyEvent & CommonEventProperties, + trackers: Array = Object.keys(_trackers) +) { + dispatchToTrackersInCollection(trackers, _trackers, (t) => { + t.core.track(buildMyEvent(event), event.context, event.timestamp); + }); +} + +// ❌ Wrong: Single tracker assumption +export function trackEvent(event: MyEvent) { + tracker.track(event); // Which tracker? +} +``` + +## Plugin Categories + +### 1. Event Tracking Plugins +Plugins that add new event types: +- `browser-plugin-ad-tracking`: Ad impressions, clicks, conversions +- `browser-plugin-media-tracking`: Video/audio player events +- `browser-plugin-ecommerce`: Transaction and item tracking +- `browser-plugin-error-tracking`: JavaScript error capture + +### 2. Context Enhancement Plugins +Plugins that add contextual data: +- `browser-plugin-client-hints`: Browser client hints +- `browser-plugin-timezone`: Timezone information +- `browser-plugin-geolocation`: Location data +- `browser-plugin-ga-cookies`: Google Analytics cookies + +### 3. Behavior Tracking Plugins +Plugins that track user interactions: +- `browser-plugin-form-tracking`: Form interactions +- `browser-plugin-link-click-tracking`: Link clicks +- `browser-plugin-button-click-tracking`: Button clicks +- `browser-plugin-element-tracking`: General element visibility + +### 4. Performance Plugins +Plugins for performance monitoring: +- `browser-plugin-performance-timing`: Page load performance +- `browser-plugin-web-vitals`: Core Web Vitals +- `browser-plugin-performance-navigation-timing`: Navigation timing + +## Common Plugin Patterns + +### Schema Definition +```typescript +// schemata.ts - Centralized schemas +export const AD_CLICK_SCHEMA = + 'iglu:com.snowplowanalytics.snowplow/ad_click/jsonschema/1-0-0'; +export const AD_IMPRESSION_SCHEMA = + 'iglu:com.snowplowanalytics.snowplow/ad_impression/jsonschema/1-0-0'; +``` + +### Event Builder Integration +```typescript +// ✅ Correct: Use core builders +import { buildSelfDescribingEvent } from '@snowplow/tracker-core'; + +function buildAdClick(event: AdClickEvent): PayloadBuilder { + return buildSelfDescribingEvent({ + event: { + schema: AD_CLICK_SCHEMA, + data: cleanAdClickData(event) + } + }); +} + +// ❌ Wrong: Custom payload construction +function buildAdClick(event: AdClickEvent) { + return { e: 'ue', data: event }; // Non-standard +} +``` + +### Configuration Options +```typescript +// ✅ Correct: Typed configuration +export interface MediaTrackingConfiguration { + captureEvents?: MediaEventType[]; + boundaries?: number[]; + volumeChangeTrackingInterval?: number; +} + +export function MediaTrackingPlugin( + config: MediaTrackingConfiguration = {} +): BrowserPlugin { + const settings = { ...defaultConfig, ...config }; + // Plugin implementation +} + +// ❌ Wrong: Untyped config +export function Plugin(config: any) { } +``` + +### DOM Observer Pattern +```typescript +// ✅ Correct: Managed observers +export function FormTrackingPlugin(): BrowserPlugin { + let observer: MutationObserver | null = null; + + return { + activateBrowserPlugin: (tracker) => { + observer = new MutationObserver(handleMutations); + observer.observe(document, { childList: true }); + }, + contexts: () => { + // Cleanup on context request if needed + observer?.disconnect(); + return []; + } + }; +} + +// ❌ Wrong: Unmanaged observers +new MutationObserver(callback).observe(document, {}); // Leak +``` + +## Plugin State Management + +### Tracker Registry +```typescript +// ✅ Correct: Scoped tracker storage +const _trackers: Record = {}; +const _configurations: WeakMap = new WeakMap(); + +// ❌ Wrong: Global configuration +let globalConfig: Config; // Affects all trackers +``` + +### Element Tracking State +```typescript +// ✅ Correct: WeakMap for DOM references +const elementStates = new WeakMap(); + +// ❌ Wrong: Memory leak potential +const elementStates: Map = new Map(); +``` + +## Event API Standards + +### Standard Event Interface +```typescript +// ✅ Correct: Consistent event structure +export interface MediaPlayerEvent { + currentTime: number; + duration?: number; + ended: boolean; + loop: boolean; + muted: boolean; + paused: boolean; + playbackRate: number; + volume: number; +} + +// ❌ Wrong: Inconsistent naming +export interface VideoData { + time: number; // Should be currentTime + length?: number; // Should be duration +} +``` + +### Optional Properties Pattern +```typescript +// ✅ Correct: Clear optionality +export interface AdClickEvent { + targetUrl: string; + clickId?: string; + costModel?: 'cpa' | 'cpc' | 'cpm'; + cost?: number; + bannerId?: string; + zoneId?: string; + impressionId?: string; + advertiserId?: string; + campaignId?: string; +} + +// ❌ Wrong: Everything optional +export interface AdEvent { + targetUrl?: string; // Required field as optional +} +``` + +## Context Building + +### Dynamic Context Pattern +```typescript +// ✅ Correct: Context from current state +export function getMediaContext(player: HTMLMediaElement): SelfDescribingJson { + return { + schema: MEDIA_PLAYER_SCHEMA, + data: { + currentTime: player.currentTime, + duration: player.duration || null, + ended: player.ended, + paused: player.paused + } + }; +} + +// ❌ Wrong: Stale context +const context = { /* captured once */ }; +``` + +## Testing Plugin Patterns + +### Test File Organization +``` +plugin/test/ +├── events.test.ts # Event tracking tests +├── contexts.test.ts # Context builder tests +├── api.test.ts # Public API tests +└── __snapshots__/ # Jest snapshot files +``` + +### Mock Tracker Setup +```typescript +// Standard test setup with event store +import { addTracker, SharedState } from '@snowplow/browser-tracker-core'; +import { newInMemoryEventStore } from '@snowplow/tracker-core'; + +describe('MyPlugin', () => { + let eventStore = newInMemoryEventStore(); + + beforeEach(() => { + SharedState.clear(); + eventStore = newInMemoryEventStore(); + addTracker('sp', 'sp', 'js-test', '', new SharedState(), { + eventStore, + plugins: [MyPlugin()] + }); + }); +}); +``` + +### Event Extraction Utilities +```typescript +// Common lodash/fp patterns for test assertions +import F from 'lodash/fp'; + +const getUEEvents = F.compose( + F.filter(F.compose(F.eq('ue'), F.get('e'))) +); + +const extractEventProperties = F.map( + F.compose( + F.get('data'), + (cx: string) => JSON.parse(cx), + F.get('ue_pr') + ) +); + +// Extract specific schema events +const extractUeEvent = (schema: string) => ({ + from: F.compose( + F.first, + F.filter(F.compose(F.eq(schema), F.get('schema'))), + F.flatten, + extractEventProperties, + getUEEvents + ) +}); +``` + +### Event Verification Patterns +```typescript +// ✅ Correct: Verify event schema and data +it('tracks ad click with correct schema', () => { + trackAdClick({ targetUrl: 'https://example.com' }); + + const events = eventStore.getEvents(); + const adClickEvent = extractUeEvent(AD_CLICK_SCHEMA).from(events); + + expect(adClickEvent).toMatchObject({ + targetUrl: 'https://example.com' + }); +}); + +// ❌ Wrong: Testing implementation details +it('calls internal function', () => { + expect(internalFunction).toHaveBeenCalled(); // Don't test internals +}); +``` + +### Context Testing +```typescript +// ✅ Correct: Test context generation +it('generates media player context', () => { + const player = document.createElement('video'); + player.currentTime = 30; + player.duration = 100; + + const context = buildMediaContext(player); + expect(context.data).toMatchObject({ + currentTime: 30, + duration: 100 + }); +}); +``` + +### Snapshot Testing for Complex Objects +```typescript +// ✅ Correct: Snapshot for schema validation +it('builds correct event structure', () => { + const event = buildAdClickEvent({ + targetUrl: 'https://example.com', + clickId: '123' + }); + expect(event).toMatchSnapshot(); +}); +``` + +## Plugin Development Checklist + +- [ ] Implement `BrowserPlugin` interface +- [ ] Create tracker registry with `_trackers` +- [ ] Define TypeScript interfaces for events +- [ ] Add schema constants to `schemata.ts` +- [ ] Implement tracking functions with `dispatchToTrackersInCollection` +- [ ] Export both plugin and API functions from index.ts +- [ ] Handle configuration options with defaults +- [ ] Clean up resources (observers, timers) properly +- [ ] Add comprehensive Jest tests +- [ ] Document usage in README.md + +## Common Pitfalls + +### 1. Forgetting Tracker Registration +```typescript +// ❌ Wrong: API without plugin +import { trackAdClick } from '@snowplow/browser-plugin-ad-tracking'; +trackAdClick(event); // Error: _trackers empty + +// ✅ Correct: Register plugin first +import { AdTrackingPlugin } from '@snowplow/browser-plugin-ad-tracking'; +newTracker('sp', 'collector', { plugins: [AdTrackingPlugin()] }); +``` + +### 2. Memory Leaks +```typescript +// ❌ Wrong: Unremoved listeners +element.addEventListener('click', handler); + +// ✅ Correct: Cleanup in plugin lifecycle +return { + activateBrowserPlugin: (tracker) => { + element.addEventListener('click', handler); + }, + contexts: () => { + element.removeEventListener('click', handler); + return []; + } +}; +``` + +## Quick Reference + +### Plugin File Structure +``` +browser-plugin-[name]/ +├── src/ +│ ├── index.ts # Plugin & API exports +│ ├── api.ts # Tracking functions +│ ├── types.ts # TypeScript interfaces +│ ├── schemata.ts # Schema constants +│ └── contexts.ts # Context builders +├── test/ +│ └── [name].test.ts # Jest tests +├── package.json +├── tsconfig.json +├── rollup.config.js +└── README.md +``` + +## Contributing to CLAUDE.md + +When creating or modifying plugins: + +1. **Follow the standard plugin pattern** for consistency +2. **Export all public types** from index.ts +3. **Use workspace protocol** for dependencies +4. **Test with multiple trackers** to ensure isolation +5. **Document configuration options** clearly \ No newline at end of file diff --git a/plugins/browser-plugin-ad-tracking/CHANGELOG.json b/plugins/browser-plugin-ad-tracking/CHANGELOG.json index 284fd38f6..1ea047a89 100644 --- a/plugins/browser-plugin-ad-tracking/CHANGELOG.json +++ b/plugins/browser-plugin-ad-tracking/CHANGELOG.json @@ -1,6 +1,120 @@ { "name": "@snowplow/browser-plugin-ad-tracking", "entries": [ + { + "version": "4.10.0", + "tag": "@snowplow/browser-plugin-ad-tracking_v4.10.0", + "date": "Mon, 27 Jul 2026 13:52:14 GMT", + "comments": {} + }, + { + "version": "4.9.0", + "tag": "@snowplow/browser-plugin-ad-tracking_v4.9.0", + "date": "Tue, 21 Jul 2026 14:53:08 GMT", + "comments": {} + }, + { + "version": "4.8.4", + "tag": "@snowplow/browser-plugin-ad-tracking_v4.8.4", + "date": "Thu, 02 Jul 2026 10:07:52 GMT", + "comments": {} + }, + { + "version": "4.8.3", + "tag": "@snowplow/browser-plugin-ad-tracking_v4.8.3", + "date": "Tue, 30 Jun 2026 14:22:03 GMT", + "comments": { + "none": [ + { + "comment": "Update uuid to v11 and remove closure-compiler from the build pipeline" + } + ] + } + }, + { + "version": "4.8.2", + "tag": "@snowplow/browser-plugin-ad-tracking_v4.8.2", + "date": "Wed, 17 Jun 2026 12:30:12 GMT", + "comments": {} + }, + { + "version": "4.8.1", + "tag": "@snowplow/browser-plugin-ad-tracking_v4.8.1", + "date": "Wed, 13 May 2026 09:26:05 GMT", + "comments": {} + }, + { + "version": "4.8.0", + "tag": "@snowplow/browser-plugin-ad-tracking_v4.8.0", + "date": "Tue, 28 Apr 2026 07:56:22 GMT", + "comments": {} + }, + { + "version": "4.7.0", + "tag": "@snowplow/browser-plugin-ad-tracking_v4.7.0", + "date": "Wed, 01 Apr 2026 12:59:29 GMT", + "comments": {} + }, + { + "version": "4.6.9", + "tag": "@snowplow/browser-plugin-ad-tracking_v4.6.9", + "date": "Mon, 16 Mar 2026 15:43:06 GMT", + "comments": {} + }, + { + "version": "4.6.8", + "tag": "@snowplow/browser-plugin-ad-tracking_v4.6.8", + "date": "Tue, 28 Oct 2025 09:46:42 GMT", + "comments": {} + }, + { + "version": "4.6.7", + "tag": "@snowplow/browser-plugin-ad-tracking_v4.6.7", + "date": "Tue, 07 Oct 2025 14:53:36 GMT", + "comments": {} + }, + { + "version": "4.6.6", + "tag": "@snowplow/browser-plugin-ad-tracking_v4.6.6", + "date": "Tue, 26 Aug 2025 08:42:27 GMT", + "comments": {} + }, + { + "version": "4.6.5", + "tag": "@snowplow/browser-plugin-ad-tracking_v4.6.5", + "date": "Wed, 25 Jun 2025 21:16:46 GMT", + "comments": {} + }, + { + "version": "4.6.4", + "tag": "@snowplow/browser-plugin-ad-tracking_v4.6.4", + "date": "Wed, 25 Jun 2025 12:08:50 GMT", + "comments": {} + }, + { + "version": "4.6.3", + "tag": "@snowplow/browser-plugin-ad-tracking_v4.6.3", + "date": "Thu, 29 May 2025 19:52:07 GMT", + "comments": {} + }, + { + "version": "4.6.2", + "tag": "@snowplow/browser-plugin-ad-tracking_v4.6.2", + "date": "Tue, 20 May 2025 07:39:05 GMT", + "comments": {} + }, + { + "version": "4.6.1", + "tag": "@snowplow/browser-plugin-ad-tracking_v4.6.1", + "date": "Tue, 06 May 2025 13:10:51 GMT", + "comments": {} + }, + { + "version": "4.6.0", + "tag": "@snowplow/browser-plugin-ad-tracking_v4.6.0", + "date": "Thu, 01 May 2025 09:58:59 GMT", + "comments": {} + }, { "version": "4.5.0", "tag": "@snowplow/browser-plugin-ad-tracking_v4.5.0", diff --git a/plugins/browser-plugin-ad-tracking/CHANGELOG.md b/plugins/browser-plugin-ad-tracking/CHANGELOG.md index 325d547b9..1d95c364a 100644 --- a/plugins/browser-plugin-ad-tracking/CHANGELOG.md +++ b/plugins/browser-plugin-ad-tracking/CHANGELOG.md @@ -1,6 +1,98 @@ # Change Log - @snowplow/browser-plugin-ad-tracking -This log was last generated on Fri, 04 Apr 2025 09:21:23 GMT and should not be manually modified. +This log was last generated on Mon, 27 Jul 2026 13:52:14 GMT and should not be manually modified. + +## 4.10.0 +Mon, 27 Jul 2026 13:52:14 GMT + +_Version update only_ + +## 4.9.0 +Tue, 21 Jul 2026 14:53:08 GMT + +_Version update only_ + +## 4.8.4 +Thu, 02 Jul 2026 10:07:52 GMT + +_Version update only_ + +## 4.8.3 +Tue, 30 Jun 2026 14:22:03 GMT + +### Updates + +- Update uuid to v11 and remove closure-compiler from the build pipeline + +## 4.8.2 +Wed, 17 Jun 2026 12:30:12 GMT + +_Version update only_ + +## 4.8.1 +Wed, 13 May 2026 09:26:05 GMT + +_Version update only_ + +## 4.8.0 +Tue, 28 Apr 2026 07:56:22 GMT + +_Version update only_ + +## 4.7.0 +Wed, 01 Apr 2026 12:59:29 GMT + +_Version update only_ + +## 4.6.9 +Mon, 16 Mar 2026 15:43:06 GMT + +_Version update only_ + +## 4.6.8 +Tue, 28 Oct 2025 09:46:42 GMT + +_Version update only_ + +## 4.6.7 +Tue, 07 Oct 2025 14:53:36 GMT + +_Version update only_ + +## 4.6.6 +Tue, 26 Aug 2025 08:42:27 GMT + +_Version update only_ + +## 4.6.5 +Wed, 25 Jun 2025 21:16:46 GMT + +_Version update only_ + +## 4.6.4 +Wed, 25 Jun 2025 12:08:50 GMT + +_Version update only_ + +## 4.6.3 +Thu, 29 May 2025 19:52:07 GMT + +_Version update only_ + +## 4.6.2 +Tue, 20 May 2025 07:39:05 GMT + +_Version update only_ + +## 4.6.1 +Tue, 06 May 2025 13:10:51 GMT + +_Version update only_ + +## 4.6.0 +Thu, 01 May 2025 09:58:59 GMT + +_Version update only_ ## 4.5.0 Fri, 04 Apr 2025 09:21:23 GMT diff --git a/plugins/browser-plugin-ad-tracking/package.json b/plugins/browser-plugin-ad-tracking/package.json index 643f3df8b..b7c614b9b 100644 --- a/plugins/browser-plugin-ad-tracking/package.json +++ b/plugins/browser-plugin-ad-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@snowplow/browser-plugin-ad-tracking", - "version": "4.5.0", + "version": "4.10.0", "description": "Ad tracking for Snowplow", "homepage": "http://bit.ly/sp-js", "bugs": "https://github.com/snowplow/snowplow-javascript-tracker/issues", @@ -27,7 +27,6 @@ "tslib": "^2.3.1" }, "devDependencies": { - "@ampproject/rollup-plugin-closure-compiler": "~0.27.0", "@rollup/plugin-commonjs": "~21.0.2", "@rollup/plugin-node-resolve": "~13.1.3", "@types/jest": "~28.1.1", @@ -50,6 +49,6 @@ "typescript": "~4.6.2" }, "peerDependencies": { - "@snowplow/browser-tracker": "~4.5.0" + "@snowplow/browser-tracker": "~4.10.0" } } diff --git a/plugins/browser-plugin-ad-tracking/rollup.config.js b/plugins/browser-plugin-ad-tracking/rollup.config.js index 396a09090..ed975dc0b 100644 --- a/plugins/browser-plugin-ad-tracking/rollup.config.js +++ b/plugins/browser-plugin-ad-tracking/rollup.config.js @@ -32,7 +32,6 @@ import { nodeResolve } from '@rollup/plugin-node-resolve'; import commonjs from '@rollup/plugin-commonjs'; import ts from 'rollup-plugin-ts'; // Prefered over @rollup/plugin-typescript as it bundles .d.ts files import { banner } from '../../banner'; -import compiler from '@ampproject/rollup-plugin-closure-compiler'; import { terser } from 'rollup-plugin-terser'; import cleanup from 'rollup-plugin-cleanup'; import pkg from './package.json'; @@ -51,7 +50,7 @@ export default [ }, { input: './src/index.ts', - plugins: [...umdPlugins, compiler(), terser(), cleanup({ comments: 'none' }), banner()], + plugins: [...umdPlugins, terser(), cleanup({ comments: 'none' }), banner()], treeshake: { moduleSideEffects: ['sha1'] }, output: [{ file: pkg.main.replace('.js', '.min.js'), format: 'umd', sourcemap: true, name: umdName }], }, diff --git a/plugins/browser-plugin-bot-detection/CHANGELOG.json b/plugins/browser-plugin-bot-detection/CHANGELOG.json new file mode 100644 index 000000000..fa527b37d --- /dev/null +++ b/plugins/browser-plugin-bot-detection/CHANGELOG.json @@ -0,0 +1,65 @@ +{ + "name": "@snowplow/browser-plugin-bot-detection", + "entries": [ + { + "version": "4.10.0", + "tag": "@snowplow/browser-plugin-bot-detection_v4.10.0", + "date": "Mon, 27 Jul 2026 13:52:14 GMT", + "comments": {} + }, + { + "version": "4.9.0", + "tag": "@snowplow/browser-plugin-bot-detection_v4.9.0", + "date": "Tue, 21 Jul 2026 14:53:08 GMT", + "comments": {} + }, + { + "version": "4.8.4", + "tag": "@snowplow/browser-plugin-bot-detection_v4.8.4", + "date": "Thu, 02 Jul 2026 10:07:52 GMT", + "comments": {} + }, + { + "version": "4.8.3", + "tag": "@snowplow/browser-plugin-bot-detection_v4.8.3", + "date": "Tue, 30 Jun 2026 14:22:03 GMT", + "comments": { + "none": [ + { + "comment": "Update uuid to v11 and remove closure-compiler from the build pipeline" + } + ] + } + }, + { + "version": "4.8.2", + "tag": "@snowplow/browser-plugin-bot-detection_v4.8.2", + "date": "Wed, 17 Jun 2026 12:30:12 GMT", + "comments": {} + }, + { + "version": "4.8.1", + "tag": "@snowplow/browser-plugin-bot-detection_v4.8.1", + "date": "Wed, 13 May 2026 09:26:05 GMT", + "comments": {} + }, + { + "version": "4.8.0", + "tag": "@snowplow/browser-plugin-bot-detection_v4.8.0", + "date": "Tue, 28 Apr 2026 07:56:22 GMT", + "comments": {} + }, + { + "version": "4.7.0", + "tag": "@snowplow/browser-plugin-bot-detection_v4.7.0", + "date": "Wed, 01 Apr 2026 12:59:29 GMT", + "comments": { + "minor": [ + { + "comment": "Add browser-plugin-bot-detection plugin wrapping FingerprintJS BotD for client-side bot detection" + } + ] + } + } + ] +} diff --git a/plugins/browser-plugin-bot-detection/CHANGELOG.md b/plugins/browser-plugin-bot-detection/CHANGELOG.md new file mode 100644 index 000000000..c39461923 --- /dev/null +++ b/plugins/browser-plugin-bot-detection/CHANGELOG.md @@ -0,0 +1,48 @@ +# Change Log - @snowplow/browser-plugin-bot-detection + +This log was last generated on Mon, 27 Jul 2026 13:52:14 GMT and should not be manually modified. + +## 4.10.0 +Mon, 27 Jul 2026 13:52:14 GMT + +_Version update only_ + +## 4.9.0 +Tue, 21 Jul 2026 14:53:08 GMT + +_Version update only_ + +## 4.8.4 +Thu, 02 Jul 2026 10:07:52 GMT + +_Version update only_ + +## 4.8.3 +Tue, 30 Jun 2026 14:22:03 GMT + +### Updates + +- Update uuid to v11 and remove closure-compiler from the build pipeline + +## 4.8.2 +Wed, 17 Jun 2026 12:30:12 GMT + +_Version update only_ + +## 4.8.1 +Wed, 13 May 2026 09:26:05 GMT + +_Version update only_ + +## 4.8.0 +Tue, 28 Apr 2026 07:56:22 GMT + +_Version update only_ + +## 4.7.0 +Wed, 01 Apr 2026 12:59:29 GMT + +### Minor changes + +- Add browser-plugin-bot-detection plugin wrapping FingerprintJS BotD for client-side bot detection + diff --git a/plugins/browser-plugin-bot-detection/LICENSE b/plugins/browser-plugin-bot-detection/LICENSE new file mode 100644 index 000000000..76f1946ea --- /dev/null +++ b/plugins/browser-plugin-bot-detection/LICENSE @@ -0,0 +1,29 @@ +BSD 3-Clause License + +Copyright (c) 2022 Snowplow Analytics Ltd, 2010 Anthon Pang +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/plugins/browser-plugin-bot-detection/README.md b/plugins/browser-plugin-bot-detection/README.md new file mode 100644 index 000000000..6a30a4f0a --- /dev/null +++ b/plugins/browser-plugin-bot-detection/README.md @@ -0,0 +1,59 @@ +# Snowplow Bot Detection + +[![npm version][npm-image]][npm-url] +[![License][license-image]](LICENSE) + +Browser Plugin to be used with `@snowplow/browser-tracker`. + +Detects bots client-side using [FingerprintJS BotD](https://github.com/fingerprintjs/BotD) and attaches the result as a `client_side_bot_detection` context entity to all tracked events. + +## Maintainer quick start + +Part of the Snowplow JavaScript Tracker monorepo. +Build with [Node.js](https://nodejs.org/en/) (18 - 20) and [Rush](https://rushjs.io/). + +### Setup repository + +```bash +npm install -g @microsoft/rush +git clone https://github.com/snowplow/snowplow-javascript-tracker.git +rush update +``` + +## Package Installation + +With npm: + +```bash +npm install @snowplow/browser-plugin-bot-detection +``` + +## Usage + +Initialize your tracker with the BotDetectionPlugin: + +```js +import { newTracker } from '@snowplow/browser-tracker'; +import { BotDetectionPlugin } from '@snowplow/browser-plugin-bot-detection'; + +newTracker('sp1', '{{collector}}', { plugins: [ BotDetectionPlugin() ] }); +``` + +Once detection completes, a `client_side_bot_detection` context entity will be attached to all subsequent events with the following fields: + +- `bot` (boolean): Whether a bot was detected. +- `kind` (string | null): The type of bot detected (e.g. `"selenium"`, `"phantomjs"`), or `null` if no bot was found. + +## Copyright and license + +Licensed and distributed under the [BSD 3-Clause License](LICENSE) ([An OSI Approved License][osi]). + +Copyright (c) 2022 Snowplow Analytics Ltd, 2010 Anthon Pang. + +All rights reserved. + +[npm-url]: https://www.npmjs.com/package/@snowplow/browser-plugin-bot-detection +[npm-image]: https://img.shields.io/npm/v/@snowplow/browser-plugin-bot-detection +[docs]: https://docs.snowplowanalytics.com/docs/collecting-data/collecting-from-own-applications/javascript-tracker/ +[osi]: https://opensource.org/licenses/BSD-3-Clause +[license-image]: https://img.shields.io/npm/l/@snowplow/browser-plugin-bot-detection diff --git a/plugins/browser-plugin-bot-detection/jest.config.js b/plugins/browser-plugin-bot-detection/jest.config.js new file mode 100644 index 000000000..87d15da9b --- /dev/null +++ b/plugins/browser-plugin-bot-detection/jest.config.js @@ -0,0 +1,6 @@ +module.exports = { + preset: 'ts-jest', + reporters: ['jest-standard-reporter'], + setupFilesAfterEnv: ['../../setupTestGlobals.ts'], + testEnvironment: 'jest-environment-jsdom-global', +}; diff --git a/plugins/browser-plugin-bot-detection/package.json b/plugins/browser-plugin-bot-detection/package.json new file mode 100644 index 000000000..2caced45d --- /dev/null +++ b/plugins/browser-plugin-bot-detection/package.json @@ -0,0 +1,53 @@ +{ + "name": "@snowplow/browser-plugin-bot-detection", + "version": "4.10.0", + "description": "Detects bots client-side using FingerprintJS BotD and attaches the result as a context entity.", + "homepage": "https://github.com/snowplow/snowplow-javascript-tracker", + "bugs": "https://github.com/snowplow/snowplow-javascript-tracker/issues", + "repository": { + "type": "git", + "url": "https://github.com/snowplow/snowplow-javascript-tracker.git" + }, + "license": "BSD-3-Clause", + "author": "Snowplow Analytics Ltd (https://snowplow.io/)", + "sideEffects": false, + "main": "./dist/index.umd.js", + "module": "./dist/index.module.js", + "types": "./dist/index.module.d.ts", + "files": [ + "dist" + ], + "scripts": { + "build": "rollup -c --silent --failAfterWarnings", + "test": "jest" + }, + "dependencies": { + "@fingerprintjs/botd": "2.0.0", + "@snowplow/browser-tracker-core": "workspace:*", + "@snowplow/tracker-core": "workspace:*", + "tslib": "^2.3.1" + }, + "devDependencies": { + "@rollup/plugin-commonjs": "~21.0.2", + "@rollup/plugin-node-resolve": "~13.1.3", + "@types/jest": "~28.1.1", + "@types/jsdom": "~16.2.14", + "@typescript-eslint/eslint-plugin": "~5.15.0", + "@typescript-eslint/parser": "~5.15.0", + "eslint": "~8.11.0", + "jest": "~28.1.3", + "jest-environment-jsdom": "~28.1.3", + "jest-environment-jsdom-global": "~4.0.0", + "jest-standard-reporter": "~2.0.0", + "rollup": "~2.70.1", + "rollup-plugin-cleanup": "~3.2.1", + "rollup-plugin-license": "~2.6.1", + "rollup-plugin-terser": "~7.0.2", + "rollup-plugin-ts": "~2.0.5", + "ts-jest": "~28.0.8", + "typescript": "~4.6.2" + }, + "peerDependencies": { + "@snowplow/browser-tracker": "~4.10.0" + } +} diff --git a/plugins/browser-plugin-bot-detection/rollup.config.js b/plugins/browser-plugin-bot-detection/rollup.config.js new file mode 100644 index 000000000..f9d815c79 --- /dev/null +++ b/plugins/browser-plugin-bot-detection/rollup.config.js @@ -0,0 +1,36 @@ +import { nodeResolve } from '@rollup/plugin-node-resolve'; +import commonjs from '@rollup/plugin-commonjs'; +import ts from 'rollup-plugin-ts'; // Preferred over @rollup/plugin-typescript as it bundles .d.ts files +import { banner } from '../../banner'; +import { terser } from 'rollup-plugin-terser'; +import cleanup from 'rollup-plugin-cleanup'; +import pkg from './package.json'; +import { builtinModules } from 'module'; + +const umdPlugins = [nodeResolve({ browser: true }), commonjs(), ts()]; +const umdName = 'snowplowBotDetection'; + +export default [ + // CommonJS (for Node) and ES module (for bundlers) build. + { + input: './src/index.ts', + plugins: [...umdPlugins, banner()], + treeshake: { moduleSideEffects: ['sha1'] }, + output: [{ file: pkg.main, format: 'umd', sourcemap: true, name: umdName }], + }, + { + input: './src/index.ts', + plugins: [...umdPlugins, terser(), cleanup({ comments: 'none' }), banner()], + treeshake: { moduleSideEffects: ['sha1'] }, + output: [{ file: pkg.main.replace('.js', '.min.js'), format: 'umd', sourcemap: true, name: umdName }], + }, + { + input: './src/index.ts', + external: [...builtinModules, ...Object.keys(pkg.dependencies), ...Object.keys(pkg.devDependencies)], + plugins: [ + ts(), // so Rollup can convert TypeScript to JavaScript + banner(), + ], + output: [{ file: pkg.module, format: 'es', sourcemap: true }], + }, +]; diff --git a/plugins/browser-plugin-bot-detection/src/index.ts b/plugins/browser-plugin-bot-detection/src/index.ts new file mode 100644 index 000000000..966c4f356 --- /dev/null +++ b/plugins/browser-plugin-bot-detection/src/index.ts @@ -0,0 +1,32 @@ +import { BrowserPlugin } from '@snowplow/browser-tracker-core'; +import { LOG } from '@snowplow/tracker-core'; +import { load } from '@fingerprintjs/botd'; +import { CLIENT_SIDE_BOT_DETECTION_SCHEMA } from './schemata'; +import { BotDetectionContextData } from './types'; + +export { BotDetectionContextData, BotKind } from './types'; + +let contextData: BotDetectionContextData | undefined; +let detectionStarted = false; + +export function BotDetectionPlugin(): BrowserPlugin { + return { + activateBrowserPlugin: () => { + if (!detectionStarted) { + detectionStarted = true; + load() + .then((detector) => detector.detect()) + .then((result) => { + contextData = result.bot ? { bot: true, kind: result.botKind } : { bot: false, kind: null }; + }) + .catch((err) => LOG.error('BotDetectionPlugin: BotD load/detect failed', err)); + } + }, + contexts: () => { + if (contextData) { + return [{ schema: CLIENT_SIDE_BOT_DETECTION_SCHEMA, data: contextData }]; + } + return []; + }, + }; +} diff --git a/plugins/browser-plugin-bot-detection/src/schemata.ts b/plugins/browser-plugin-bot-detection/src/schemata.ts new file mode 100644 index 000000000..af05d9f6a --- /dev/null +++ b/plugins/browser-plugin-bot-detection/src/schemata.ts @@ -0,0 +1,2 @@ +export const CLIENT_SIDE_BOT_DETECTION_SCHEMA = + 'iglu:com.snowplowanalytics.snowplow/client_side_bot_detection/jsonschema/1-0-0'; diff --git a/plugins/browser-plugin-bot-detection/src/types.ts b/plugins/browser-plugin-bot-detection/src/types.ts new file mode 100644 index 000000000..f374b478d --- /dev/null +++ b/plugins/browser-plugin-bot-detection/src/types.ts @@ -0,0 +1,25 @@ +export type BotKind = + | 'awesomium' + | 'cef' + | 'cefsharp' + | 'coachjs' + | 'electron' + | 'fminer' + | 'geb' + | 'nightmarejs' + | 'phantomas' + | 'phantomjs' + | 'rhino' + | 'selenium' + | 'sequentum' + | 'slimerjs' + | 'webdriverio' + | 'webdriver' + | 'headless_chrome' + | 'unknown'; + +export interface BotDetectionContextData { + [key: string]: unknown; + bot: boolean; + kind: BotKind | null; +} diff --git a/plugins/browser-plugin-bot-detection/test/bot-detection.test.ts b/plugins/browser-plugin-bot-detection/test/bot-detection.test.ts new file mode 100644 index 000000000..7b6885879 --- /dev/null +++ b/plugins/browser-plugin-bot-detection/test/bot-detection.test.ts @@ -0,0 +1,149 @@ +import { buildLinkClick, trackerCore } from '@snowplow/tracker-core'; +import { BrowserTracker } from '@snowplow/browser-tracker-core'; +import { setImmediate } from 'timers'; + +const flushPromises = () => new Promise(setImmediate); + +let mockDetectResult: any = { bot: false }; +let mockLoadReject: Error | null = null; +let mockDetectReject: Error | null = null; + +jest.mock('@fingerprintjs/botd', () => ({ + load: () => { + if (mockLoadReject) { + return Promise.reject(mockLoadReject); + } + return Promise.resolve({ + detect: () => { + if (mockDetectReject) { + return Promise.reject(mockDetectReject); + } + return Promise.resolve(mockDetectResult); + }, + }); + }, +})); + +describe('BotDetectionPlugin', () => { + beforeEach(() => { + jest.resetModules(); + mockDetectResult = { bot: false }; + mockLoadReject = null; + mockDetectReject = null; + }); + + it('attaches bot context when a bot is detected', async () => { + mockDetectResult = { bot: true, botKind: 'selenium' }; + + const { BotDetectionPlugin } = require('../src'); + const plugin = BotDetectionPlugin(); + + const core = trackerCore({ + corePlugins: [plugin], + callback: (payloadBuilder) => { + const json = payloadBuilder.getJson().filter((e) => e.keyIfEncoded === 'cx'); + const contexts = json[0]?.json; + expect(contexts).toEqual({ + schema: 'iglu:com.snowplowanalytics.snowplow/contexts/jsonschema/1-0-0', + data: [ + { + schema: 'iglu:com.snowplowanalytics.snowplow/client_side_bot_detection/jsonschema/1-0-0', + data: { bot: true, kind: 'selenium' }, + }, + ], + }); + }, + }); + + plugin.activateBrowserPlugin?.({ core } as BrowserTracker); + await flushPromises(); + + core.track(buildLinkClick({ targetUrl: 'https://example.com' })); + }); + + it('attaches no-bot context when no bot is detected', async () => { + mockDetectResult = { bot: false }; + + const { BotDetectionPlugin } = require('../src'); + const plugin = BotDetectionPlugin(); + + const core = trackerCore({ + corePlugins: [plugin], + callback: (payloadBuilder) => { + const json = payloadBuilder.getJson().filter((e) => e.keyIfEncoded === 'cx'); + const contexts = json[0]?.json; + expect(contexts).toEqual({ + schema: 'iglu:com.snowplowanalytics.snowplow/contexts/jsonschema/1-0-0', + data: [ + { + schema: 'iglu:com.snowplowanalytics.snowplow/client_side_bot_detection/jsonschema/1-0-0', + data: { bot: false, kind: null }, + }, + ], + }); + }, + }); + + plugin.activateBrowserPlugin?.({ core } as BrowserTracker); + await flushPromises(); + + core.track(buildLinkClick({ targetUrl: 'https://example.com' })); + }); + + it('returns empty contexts while detection is pending', () => { + const { BotDetectionPlugin } = require('../src'); + const plugin = BotDetectionPlugin(); + + const core = trackerCore({ + corePlugins: [plugin], + callback: (payloadBuilder) => { + const json = payloadBuilder.getJson().filter((e) => e.keyIfEncoded === 'cx'); + expect(json).toHaveLength(0); + }, + }); + + plugin.activateBrowserPlugin?.({ core } as BrowserTracker); + // Do NOT await — detection is still pending + core.track(buildLinkClick({ targetUrl: 'https://example.com' })); + }); + + it('returns empty contexts when load() fails', async () => { + mockLoadReject = new Error('load failed'); + + const { BotDetectionPlugin } = require('../src'); + const plugin = BotDetectionPlugin(); + + const core = trackerCore({ + corePlugins: [plugin], + callback: (payloadBuilder) => { + const json = payloadBuilder.getJson().filter((e) => e.keyIfEncoded === 'cx'); + expect(json).toHaveLength(0); + }, + }); + + plugin.activateBrowserPlugin?.({ core } as BrowserTracker); + await flushPromises(); + + core.track(buildLinkClick({ targetUrl: 'https://example.com' })); + }); + + it('returns empty contexts when detect() fails', async () => { + mockDetectReject = new Error('detect failed'); + + const { BotDetectionPlugin } = require('../src'); + const plugin = BotDetectionPlugin(); + + const core = trackerCore({ + corePlugins: [plugin], + callback: (payloadBuilder) => { + const json = payloadBuilder.getJson().filter((e) => e.keyIfEncoded === 'cx'); + expect(json).toHaveLength(0); + }, + }); + + plugin.activateBrowserPlugin?.({ core } as BrowserTracker); + await flushPromises(); + + core.track(buildLinkClick({ targetUrl: 'https://example.com' })); + }); +}); diff --git a/plugins/browser-plugin-bot-detection/tsconfig.json b/plugins/browser-plugin-bot-detection/tsconfig.json new file mode 100644 index 000000000..4082f16a5 --- /dev/null +++ b/plugins/browser-plugin-bot-detection/tsconfig.json @@ -0,0 +1,3 @@ +{ + "extends": "../../tsconfig.json" +} diff --git a/plugins/browser-plugin-button-click-tracking/CHANGELOG.json b/plugins/browser-plugin-button-click-tracking/CHANGELOG.json index 75d137fe1..ba033f0d0 100644 --- a/plugins/browser-plugin-button-click-tracking/CHANGELOG.json +++ b/plugins/browser-plugin-button-click-tracking/CHANGELOG.json @@ -1,6 +1,120 @@ { "name": "@snowplow/browser-plugin-button-click-tracking", "entries": [ + { + "version": "4.10.0", + "tag": "@snowplow/browser-plugin-button-click-tracking_v4.10.0", + "date": "Mon, 27 Jul 2026 13:52:14 GMT", + "comments": {} + }, + { + "version": "4.9.0", + "tag": "@snowplow/browser-plugin-button-click-tracking_v4.9.0", + "date": "Tue, 21 Jul 2026 14:53:08 GMT", + "comments": {} + }, + { + "version": "4.8.4", + "tag": "@snowplow/browser-plugin-button-click-tracking_v4.8.4", + "date": "Thu, 02 Jul 2026 10:07:52 GMT", + "comments": {} + }, + { + "version": "4.8.3", + "tag": "@snowplow/browser-plugin-button-click-tracking_v4.8.3", + "date": "Tue, 30 Jun 2026 14:22:03 GMT", + "comments": { + "none": [ + { + "comment": "Update uuid to v11 and remove closure-compiler from the build pipeline" + } + ] + } + }, + { + "version": "4.8.2", + "tag": "@snowplow/browser-plugin-button-click-tracking_v4.8.2", + "date": "Wed, 17 Jun 2026 12:30:12 GMT", + "comments": {} + }, + { + "version": "4.8.1", + "tag": "@snowplow/browser-plugin-button-click-tracking_v4.8.1", + "date": "Wed, 13 May 2026 09:26:05 GMT", + "comments": {} + }, + { + "version": "4.8.0", + "tag": "@snowplow/browser-plugin-button-click-tracking_v4.8.0", + "date": "Tue, 28 Apr 2026 07:56:22 GMT", + "comments": {} + }, + { + "version": "4.7.0", + "tag": "@snowplow/browser-plugin-button-click-tracking_v4.7.0", + "date": "Wed, 01 Apr 2026 12:59:29 GMT", + "comments": {} + }, + { + "version": "4.6.9", + "tag": "@snowplow/browser-plugin-button-click-tracking_v4.6.9", + "date": "Mon, 16 Mar 2026 15:43:06 GMT", + "comments": {} + }, + { + "version": "4.6.8", + "tag": "@snowplow/browser-plugin-button-click-tracking_v4.6.8", + "date": "Tue, 28 Oct 2025 09:46:42 GMT", + "comments": {} + }, + { + "version": "4.6.7", + "tag": "@snowplow/browser-plugin-button-click-tracking_v4.6.7", + "date": "Tue, 07 Oct 2025 14:53:36 GMT", + "comments": {} + }, + { + "version": "4.6.6", + "tag": "@snowplow/browser-plugin-button-click-tracking_v4.6.6", + "date": "Tue, 26 Aug 2025 08:42:27 GMT", + "comments": {} + }, + { + "version": "4.6.5", + "tag": "@snowplow/browser-plugin-button-click-tracking_v4.6.5", + "date": "Wed, 25 Jun 2025 21:16:46 GMT", + "comments": {} + }, + { + "version": "4.6.4", + "tag": "@snowplow/browser-plugin-button-click-tracking_v4.6.4", + "date": "Wed, 25 Jun 2025 12:08:50 GMT", + "comments": {} + }, + { + "version": "4.6.3", + "tag": "@snowplow/browser-plugin-button-click-tracking_v4.6.3", + "date": "Thu, 29 May 2025 19:52:07 GMT", + "comments": {} + }, + { + "version": "4.6.2", + "tag": "@snowplow/browser-plugin-button-click-tracking_v4.6.2", + "date": "Tue, 20 May 2025 07:39:05 GMT", + "comments": {} + }, + { + "version": "4.6.1", + "tag": "@snowplow/browser-plugin-button-click-tracking_v4.6.1", + "date": "Tue, 06 May 2025 13:10:51 GMT", + "comments": {} + }, + { + "version": "4.6.0", + "tag": "@snowplow/browser-plugin-button-click-tracking_v4.6.0", + "date": "Thu, 01 May 2025 09:58:59 GMT", + "comments": {} + }, { "version": "4.5.0", "tag": "@snowplow/browser-plugin-button-click-tracking_v4.5.0", diff --git a/plugins/browser-plugin-button-click-tracking/CHANGELOG.md b/plugins/browser-plugin-button-click-tracking/CHANGELOG.md index 8e88ce781..1e4620f31 100644 --- a/plugins/browser-plugin-button-click-tracking/CHANGELOG.md +++ b/plugins/browser-plugin-button-click-tracking/CHANGELOG.md @@ -1,6 +1,98 @@ # Change Log - @snowplow/browser-plugin-button-click-tracking -This log was last generated on Fri, 04 Apr 2025 09:21:23 GMT and should not be manually modified. +This log was last generated on Mon, 27 Jul 2026 13:52:14 GMT and should not be manually modified. + +## 4.10.0 +Mon, 27 Jul 2026 13:52:14 GMT + +_Version update only_ + +## 4.9.0 +Tue, 21 Jul 2026 14:53:08 GMT + +_Version update only_ + +## 4.8.4 +Thu, 02 Jul 2026 10:07:52 GMT + +_Version update only_ + +## 4.8.3 +Tue, 30 Jun 2026 14:22:03 GMT + +### Updates + +- Update uuid to v11 and remove closure-compiler from the build pipeline + +## 4.8.2 +Wed, 17 Jun 2026 12:30:12 GMT + +_Version update only_ + +## 4.8.1 +Wed, 13 May 2026 09:26:05 GMT + +_Version update only_ + +## 4.8.0 +Tue, 28 Apr 2026 07:56:22 GMT + +_Version update only_ + +## 4.7.0 +Wed, 01 Apr 2026 12:59:29 GMT + +_Version update only_ + +## 4.6.9 +Mon, 16 Mar 2026 15:43:06 GMT + +_Version update only_ + +## 4.6.8 +Tue, 28 Oct 2025 09:46:42 GMT + +_Version update only_ + +## 4.6.7 +Tue, 07 Oct 2025 14:53:36 GMT + +_Version update only_ + +## 4.6.6 +Tue, 26 Aug 2025 08:42:27 GMT + +_Version update only_ + +## 4.6.5 +Wed, 25 Jun 2025 21:16:46 GMT + +_Version update only_ + +## 4.6.4 +Wed, 25 Jun 2025 12:08:50 GMT + +_Version update only_ + +## 4.6.3 +Thu, 29 May 2025 19:52:07 GMT + +_Version update only_ + +## 4.6.2 +Tue, 20 May 2025 07:39:05 GMT + +_Version update only_ + +## 4.6.1 +Tue, 06 May 2025 13:10:51 GMT + +_Version update only_ + +## 4.6.0 +Thu, 01 May 2025 09:58:59 GMT + +_Version update only_ ## 4.5.0 Fri, 04 Apr 2025 09:21:23 GMT diff --git a/plugins/browser-plugin-button-click-tracking/package.json b/plugins/browser-plugin-button-click-tracking/package.json index 674f6df38..a7528766b 100644 --- a/plugins/browser-plugin-button-click-tracking/package.json +++ b/plugins/browser-plugin-button-click-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@snowplow/browser-plugin-button-click-tracking", - "version": "4.5.0", + "version": "4.10.0", "description": "Button Click tracking for Snowplow", "homepage": "https://github.com/snowplow/snowplow-javascript-tracker", "bugs": "https://github.com/snowplow/snowplow-javascript-tracker/issues", @@ -27,7 +27,6 @@ "tslib": "^2.3.1" }, "devDependencies": { - "@ampproject/rollup-plugin-closure-compiler": "~0.27.0", "@rollup/plugin-commonjs": "~21.0.2", "@rollup/plugin-node-resolve": "~13.1.3", "@types/jest": "~28.1.1", @@ -50,6 +49,6 @@ "typescript": "~4.6.2" }, "peerDependencies": { - "@snowplow/browser-tracker": "~4.5.0" + "@snowplow/browser-tracker": "~4.10.0" } } diff --git a/plugins/browser-plugin-button-click-tracking/rollup.config.js b/plugins/browser-plugin-button-click-tracking/rollup.config.js index 5654a26d7..6680f04e5 100644 --- a/plugins/browser-plugin-button-click-tracking/rollup.config.js +++ b/plugins/browser-plugin-button-click-tracking/rollup.config.js @@ -2,7 +2,6 @@ import { nodeResolve } from '@rollup/plugin-node-resolve'; import commonjs from '@rollup/plugin-commonjs'; import ts from 'rollup-plugin-ts'; // Prefered over @rollup/plugin-typescript as it bundles .d.ts files import { banner } from '../../banner'; -import compiler from '@ampproject/rollup-plugin-closure-compiler'; import { terser } from 'rollup-plugin-terser'; import cleanup from 'rollup-plugin-cleanup'; import pkg from './package.json'; @@ -21,7 +20,7 @@ export default [ }, { input: './src/index.ts', - plugins: [...umdPlugins, compiler(), terser(), cleanup({ comments: 'none' }), banner()], + plugins: [...umdPlugins, terser(), cleanup({ comments: 'none' }), banner()], treeshake: { moduleSideEffects: ['sha1'] }, output: [{ file: pkg.main.replace('.js', '.min.js'), format: 'umd', sourcemap: true, name: umdName }], }, diff --git a/plugins/browser-plugin-client-hints/CHANGELOG.json b/plugins/browser-plugin-client-hints/CHANGELOG.json index 85194715d..85f3a6c68 100644 --- a/plugins/browser-plugin-client-hints/CHANGELOG.json +++ b/plugins/browser-plugin-client-hints/CHANGELOG.json @@ -1,6 +1,120 @@ { "name": "@snowplow/browser-plugin-client-hints", "entries": [ + { + "version": "4.10.0", + "tag": "@snowplow/browser-plugin-client-hints_v4.10.0", + "date": "Mon, 27 Jul 2026 13:52:14 GMT", + "comments": {} + }, + { + "version": "4.9.0", + "tag": "@snowplow/browser-plugin-client-hints_v4.9.0", + "date": "Tue, 21 Jul 2026 14:53:08 GMT", + "comments": {} + }, + { + "version": "4.8.4", + "tag": "@snowplow/browser-plugin-client-hints_v4.8.4", + "date": "Thu, 02 Jul 2026 10:07:52 GMT", + "comments": {} + }, + { + "version": "4.8.3", + "tag": "@snowplow/browser-plugin-client-hints_v4.8.3", + "date": "Tue, 30 Jun 2026 14:22:03 GMT", + "comments": { + "none": [ + { + "comment": "Update uuid to v11 and remove closure-compiler from the build pipeline" + } + ] + } + }, + { + "version": "4.8.2", + "tag": "@snowplow/browser-plugin-client-hints_v4.8.2", + "date": "Wed, 17 Jun 2026 12:30:12 GMT", + "comments": {} + }, + { + "version": "4.8.1", + "tag": "@snowplow/browser-plugin-client-hints_v4.8.1", + "date": "Wed, 13 May 2026 09:26:05 GMT", + "comments": {} + }, + { + "version": "4.8.0", + "tag": "@snowplow/browser-plugin-client-hints_v4.8.0", + "date": "Tue, 28 Apr 2026 07:56:22 GMT", + "comments": {} + }, + { + "version": "4.7.0", + "tag": "@snowplow/browser-plugin-client-hints_v4.7.0", + "date": "Wed, 01 Apr 2026 12:59:29 GMT", + "comments": {} + }, + { + "version": "4.6.9", + "tag": "@snowplow/browser-plugin-client-hints_v4.6.9", + "date": "Mon, 16 Mar 2026 15:43:06 GMT", + "comments": {} + }, + { + "version": "4.6.8", + "tag": "@snowplow/browser-plugin-client-hints_v4.6.8", + "date": "Tue, 28 Oct 2025 09:46:42 GMT", + "comments": {} + }, + { + "version": "4.6.7", + "tag": "@snowplow/browser-plugin-client-hints_v4.6.7", + "date": "Tue, 07 Oct 2025 14:53:36 GMT", + "comments": {} + }, + { + "version": "4.6.6", + "tag": "@snowplow/browser-plugin-client-hints_v4.6.6", + "date": "Tue, 26 Aug 2025 08:42:27 GMT", + "comments": {} + }, + { + "version": "4.6.5", + "tag": "@snowplow/browser-plugin-client-hints_v4.6.5", + "date": "Wed, 25 Jun 2025 21:16:46 GMT", + "comments": {} + }, + { + "version": "4.6.4", + "tag": "@snowplow/browser-plugin-client-hints_v4.6.4", + "date": "Wed, 25 Jun 2025 12:08:50 GMT", + "comments": {} + }, + { + "version": "4.6.3", + "tag": "@snowplow/browser-plugin-client-hints_v4.6.3", + "date": "Thu, 29 May 2025 19:52:07 GMT", + "comments": {} + }, + { + "version": "4.6.2", + "tag": "@snowplow/browser-plugin-client-hints_v4.6.2", + "date": "Tue, 20 May 2025 07:39:05 GMT", + "comments": {} + }, + { + "version": "4.6.1", + "tag": "@snowplow/browser-plugin-client-hints_v4.6.1", + "date": "Tue, 06 May 2025 13:10:51 GMT", + "comments": {} + }, + { + "version": "4.6.0", + "tag": "@snowplow/browser-plugin-client-hints_v4.6.0", + "date": "Thu, 01 May 2025 09:58:59 GMT", + "comments": {} + }, { "version": "4.5.0", "tag": "@snowplow/browser-plugin-client-hints_v4.5.0", diff --git a/plugins/browser-plugin-client-hints/CHANGELOG.md b/plugins/browser-plugin-client-hints/CHANGELOG.md index c9b487c4d..eb8863eb2 100644 --- a/plugins/browser-plugin-client-hints/CHANGELOG.md +++ b/plugins/browser-plugin-client-hints/CHANGELOG.md @@ -1,6 +1,98 @@ # Change Log - @snowplow/browser-plugin-client-hints -This log was last generated on Fri, 04 Apr 2025 09:21:23 GMT and should not be manually modified. +This log was last generated on Mon, 27 Jul 2026 13:52:14 GMT and should not be manually modified. + +## 4.10.0 +Mon, 27 Jul 2026 13:52:14 GMT + +_Version update only_ + +## 4.9.0 +Tue, 21 Jul 2026 14:53:08 GMT + +_Version update only_ + +## 4.8.4 +Thu, 02 Jul 2026 10:07:52 GMT + +_Version update only_ + +## 4.8.3 +Tue, 30 Jun 2026 14:22:03 GMT + +### Updates + +- Update uuid to v11 and remove closure-compiler from the build pipeline + +## 4.8.2 +Wed, 17 Jun 2026 12:30:12 GMT + +_Version update only_ + +## 4.8.1 +Wed, 13 May 2026 09:26:05 GMT + +_Version update only_ + +## 4.8.0 +Tue, 28 Apr 2026 07:56:22 GMT + +_Version update only_ + +## 4.7.0 +Wed, 01 Apr 2026 12:59:29 GMT + +_Version update only_ + +## 4.6.9 +Mon, 16 Mar 2026 15:43:06 GMT + +_Version update only_ + +## 4.6.8 +Tue, 28 Oct 2025 09:46:42 GMT + +_Version update only_ + +## 4.6.7 +Tue, 07 Oct 2025 14:53:36 GMT + +_Version update only_ + +## 4.6.6 +Tue, 26 Aug 2025 08:42:27 GMT + +_Version update only_ + +## 4.6.5 +Wed, 25 Jun 2025 21:16:46 GMT + +_Version update only_ + +## 4.6.4 +Wed, 25 Jun 2025 12:08:50 GMT + +_Version update only_ + +## 4.6.3 +Thu, 29 May 2025 19:52:07 GMT + +_Version update only_ + +## 4.6.2 +Tue, 20 May 2025 07:39:05 GMT + +_Version update only_ + +## 4.6.1 +Tue, 06 May 2025 13:10:51 GMT + +_Version update only_ + +## 4.6.0 +Thu, 01 May 2025 09:58:59 GMT + +_Version update only_ ## 4.5.0 Fri, 04 Apr 2025 09:21:23 GMT diff --git a/plugins/browser-plugin-client-hints/package.json b/plugins/browser-plugin-client-hints/package.json index 0d4c3422f..3c2ecb6cc 100644 --- a/plugins/browser-plugin-client-hints/package.json +++ b/plugins/browser-plugin-client-hints/package.json @@ -1,6 +1,6 @@ { "name": "@snowplow/browser-plugin-client-hints", - "version": "4.5.0", + "version": "4.10.0", "description": "Attaches Client Hints to Snowplow events", "homepage": "http://bit.ly/sp-js", "bugs": "https://github.com/snowplow/snowplow-javascript-tracker/issues", @@ -26,7 +26,6 @@ "tslib": "^2.3.1" }, "devDependencies": { - "@ampproject/rollup-plugin-closure-compiler": "~0.27.0", "@rollup/plugin-commonjs": "~21.0.2", "@rollup/plugin-node-resolve": "~13.1.3", "@snowplow/tracker-core": "workspace:*", @@ -48,6 +47,6 @@ "typescript": "~4.6.2" }, "peerDependencies": { - "@snowplow/browser-tracker": "~4.5.0" + "@snowplow/browser-tracker": "~4.10.0" } } diff --git a/plugins/browser-plugin-client-hints/rollup.config.js b/plugins/browser-plugin-client-hints/rollup.config.js index dac6e4d83..f3aa0b7be 100644 --- a/plugins/browser-plugin-client-hints/rollup.config.js +++ b/plugins/browser-plugin-client-hints/rollup.config.js @@ -32,7 +32,6 @@ import { nodeResolve } from '@rollup/plugin-node-resolve'; import commonjs from '@rollup/plugin-commonjs'; import ts from 'rollup-plugin-ts'; // Prefered over @rollup/plugin-typescript as it bundles .d.ts files import { banner } from '../../banner'; -import compiler from '@ampproject/rollup-plugin-closure-compiler'; import { terser } from 'rollup-plugin-terser'; import cleanup from 'rollup-plugin-cleanup'; import pkg from './package.json'; @@ -51,7 +50,7 @@ export default [ }, { input: './src/index.ts', - plugins: [...umdPlugins, compiler(), terser(), cleanup({ comments: 'none' }), banner()], + plugins: [...umdPlugins, terser(), cleanup({ comments: 'none' }), banner()], treeshake: { moduleSideEffects: ['sha1'] }, output: [{ file: pkg.main.replace('.js', '.min.js'), format: 'umd', sourcemap: true, name: umdName }], }, diff --git a/plugins/browser-plugin-debugger/CHANGELOG.json b/plugins/browser-plugin-debugger/CHANGELOG.json index f43b62847..dbd76f9a1 100644 --- a/plugins/browser-plugin-debugger/CHANGELOG.json +++ b/plugins/browser-plugin-debugger/CHANGELOG.json @@ -1,6 +1,120 @@ { "name": "@snowplow/browser-plugin-debugger", "entries": [ + { + "version": "4.10.0", + "tag": "@snowplow/browser-plugin-debugger_v4.10.0", + "date": "Mon, 27 Jul 2026 13:52:14 GMT", + "comments": {} + }, + { + "version": "4.9.0", + "tag": "@snowplow/browser-plugin-debugger_v4.9.0", + "date": "Tue, 21 Jul 2026 14:53:08 GMT", + "comments": {} + }, + { + "version": "4.8.4", + "tag": "@snowplow/browser-plugin-debugger_v4.8.4", + "date": "Thu, 02 Jul 2026 10:07:52 GMT", + "comments": {} + }, + { + "version": "4.8.3", + "tag": "@snowplow/browser-plugin-debugger_v4.8.3", + "date": "Tue, 30 Jun 2026 14:22:03 GMT", + "comments": { + "none": [ + { + "comment": "Update uuid to v11 and remove closure-compiler from the build pipeline" + } + ] + } + }, + { + "version": "4.8.2", + "tag": "@snowplow/browser-plugin-debugger_v4.8.2", + "date": "Wed, 17 Jun 2026 12:30:12 GMT", + "comments": {} + }, + { + "version": "4.8.1", + "tag": "@snowplow/browser-plugin-debugger_v4.8.1", + "date": "Wed, 13 May 2026 09:26:05 GMT", + "comments": {} + }, + { + "version": "4.8.0", + "tag": "@snowplow/browser-plugin-debugger_v4.8.0", + "date": "Tue, 28 Apr 2026 07:56:22 GMT", + "comments": {} + }, + { + "version": "4.7.0", + "tag": "@snowplow/browser-plugin-debugger_v4.7.0", + "date": "Wed, 01 Apr 2026 12:59:29 GMT", + "comments": {} + }, + { + "version": "4.6.9", + "tag": "@snowplow/browser-plugin-debugger_v4.6.9", + "date": "Mon, 16 Mar 2026 15:43:06 GMT", + "comments": {} + }, + { + "version": "4.6.8", + "tag": "@snowplow/browser-plugin-debugger_v4.6.8", + "date": "Tue, 28 Oct 2025 09:46:42 GMT", + "comments": {} + }, + { + "version": "4.6.7", + "tag": "@snowplow/browser-plugin-debugger_v4.6.7", + "date": "Tue, 07 Oct 2025 14:53:36 GMT", + "comments": {} + }, + { + "version": "4.6.6", + "tag": "@snowplow/browser-plugin-debugger_v4.6.6", + "date": "Tue, 26 Aug 2025 08:42:27 GMT", + "comments": {} + }, + { + "version": "4.6.5", + "tag": "@snowplow/browser-plugin-debugger_v4.6.5", + "date": "Wed, 25 Jun 2025 21:16:46 GMT", + "comments": {} + }, + { + "version": "4.6.4", + "tag": "@snowplow/browser-plugin-debugger_v4.6.4", + "date": "Wed, 25 Jun 2025 12:08:50 GMT", + "comments": {} + }, + { + "version": "4.6.3", + "tag": "@snowplow/browser-plugin-debugger_v4.6.3", + "date": "Thu, 29 May 2025 19:52:07 GMT", + "comments": {} + }, + { + "version": "4.6.2", + "tag": "@snowplow/browser-plugin-debugger_v4.6.2", + "date": "Tue, 20 May 2025 07:39:05 GMT", + "comments": {} + }, + { + "version": "4.6.1", + "tag": "@snowplow/browser-plugin-debugger_v4.6.1", + "date": "Tue, 06 May 2025 13:10:51 GMT", + "comments": {} + }, + { + "version": "4.6.0", + "tag": "@snowplow/browser-plugin-debugger_v4.6.0", + "date": "Thu, 01 May 2025 09:58:59 GMT", + "comments": {} + }, { "version": "4.5.0", "tag": "@snowplow/browser-plugin-debugger_v4.5.0", diff --git a/plugins/browser-plugin-debugger/CHANGELOG.md b/plugins/browser-plugin-debugger/CHANGELOG.md index 0e094d418..fb63f5607 100644 --- a/plugins/browser-plugin-debugger/CHANGELOG.md +++ b/plugins/browser-plugin-debugger/CHANGELOG.md @@ -1,6 +1,98 @@ # Change Log - @snowplow/browser-plugin-debugger -This log was last generated on Fri, 04 Apr 2025 09:21:23 GMT and should not be manually modified. +This log was last generated on Mon, 27 Jul 2026 13:52:14 GMT and should not be manually modified. + +## 4.10.0 +Mon, 27 Jul 2026 13:52:14 GMT + +_Version update only_ + +## 4.9.0 +Tue, 21 Jul 2026 14:53:08 GMT + +_Version update only_ + +## 4.8.4 +Thu, 02 Jul 2026 10:07:52 GMT + +_Version update only_ + +## 4.8.3 +Tue, 30 Jun 2026 14:22:03 GMT + +### Updates + +- Update uuid to v11 and remove closure-compiler from the build pipeline + +## 4.8.2 +Wed, 17 Jun 2026 12:30:12 GMT + +_Version update only_ + +## 4.8.1 +Wed, 13 May 2026 09:26:05 GMT + +_Version update only_ + +## 4.8.0 +Tue, 28 Apr 2026 07:56:22 GMT + +_Version update only_ + +## 4.7.0 +Wed, 01 Apr 2026 12:59:29 GMT + +_Version update only_ + +## 4.6.9 +Mon, 16 Mar 2026 15:43:06 GMT + +_Version update only_ + +## 4.6.8 +Tue, 28 Oct 2025 09:46:42 GMT + +_Version update only_ + +## 4.6.7 +Tue, 07 Oct 2025 14:53:36 GMT + +_Version update only_ + +## 4.6.6 +Tue, 26 Aug 2025 08:42:27 GMT + +_Version update only_ + +## 4.6.5 +Wed, 25 Jun 2025 21:16:46 GMT + +_Version update only_ + +## 4.6.4 +Wed, 25 Jun 2025 12:08:50 GMT + +_Version update only_ + +## 4.6.3 +Thu, 29 May 2025 19:52:07 GMT + +_Version update only_ + +## 4.6.2 +Tue, 20 May 2025 07:39:05 GMT + +_Version update only_ + +## 4.6.1 +Tue, 06 May 2025 13:10:51 GMT + +_Version update only_ + +## 4.6.0 +Thu, 01 May 2025 09:58:59 GMT + +_Version update only_ ## 4.5.0 Fri, 04 Apr 2025 09:21:23 GMT diff --git a/plugins/browser-plugin-debugger/package.json b/plugins/browser-plugin-debugger/package.json index 35dbd01e8..be0c6c779 100644 --- a/plugins/browser-plugin-debugger/package.json +++ b/plugins/browser-plugin-debugger/package.json @@ -1,6 +1,6 @@ { "name": "@snowplow/browser-plugin-debugger", - "version": "4.5.0", + "version": "4.10.0", "description": "Debugger for Snowplow", "homepage": "http://bit.ly/sp-js", "bugs": "https://github.com/snowplow/snowplow-javascript-tracker/issues", @@ -28,7 +28,6 @@ "tslib": "^2.3.1" }, "devDependencies": { - "@ampproject/rollup-plugin-closure-compiler": "~0.27.0", "@rollup/plugin-commonjs": "~21.0.2", "@rollup/plugin-node-resolve": "~13.1.3", "@types/jest": "~28.1.1", @@ -50,6 +49,6 @@ "typescript": "~4.6.2" }, "peerDependencies": { - "@snowplow/browser-tracker": "~4.5.0" + "@snowplow/browser-tracker": "~4.10.0" } } diff --git a/plugins/browser-plugin-debugger/rollup.config.js b/plugins/browser-plugin-debugger/rollup.config.js index 28464b11d..6ae9d968b 100644 --- a/plugins/browser-plugin-debugger/rollup.config.js +++ b/plugins/browser-plugin-debugger/rollup.config.js @@ -32,7 +32,6 @@ import { nodeResolve } from '@rollup/plugin-node-resolve'; import commonjs from '@rollup/plugin-commonjs'; import ts from 'rollup-plugin-ts'; // Prefered over @rollup/plugin-typescript as it bundles .d.ts files import { banner } from '../../banner'; -import compiler from '@ampproject/rollup-plugin-closure-compiler'; import { terser } from 'rollup-plugin-terser'; import cleanup from 'rollup-plugin-cleanup'; import pkg from './package.json'; @@ -51,7 +50,7 @@ export default [ }, { input: './src/index.ts', - plugins: [...umdPlugins, compiler(), terser(), cleanup({ comments: 'none' }), banner()], + plugins: [...umdPlugins, terser(), cleanup({ comments: 'none' }), banner()], treeshake: { moduleSideEffects: ['sha1'] }, output: [{ file: pkg.main.replace('.js', '.min.js'), format: 'umd', sourcemap: true, name: umdName }], }, diff --git a/plugins/browser-plugin-element-tracking/CHANGELOG.json b/plugins/browser-plugin-element-tracking/CHANGELOG.json new file mode 100644 index 000000000..3bf0703b6 --- /dev/null +++ b/plugins/browser-plugin-element-tracking/CHANGELOG.json @@ -0,0 +1,137 @@ +{ + "name": "@snowplow/browser-plugin-element-tracking", + "entries": [ + { + "version": "4.10.0", + "tag": "@snowplow/browser-plugin-element-tracking_v4.10.0", + "date": "Mon, 27 Jul 2026 13:52:14 GMT", + "comments": {} + }, + { + "version": "4.9.0", + "tag": "@snowplow/browser-plugin-element-tracking_v4.9.0", + "date": "Tue, 21 Jul 2026 14:53:08 GMT", + "comments": { + "none": [ + { + "comment": "Fix element tracking plugin sending element_index of 0 on expose_element and obscure_element events" + } + ] + } + }, + { + "version": "4.8.4", + "tag": "@snowplow/browser-plugin-element-tracking_v4.8.4", + "date": "Thu, 02 Jul 2026 10:07:52 GMT", + "comments": {} + }, + { + "version": "4.8.3", + "tag": "@snowplow/browser-plugin-element-tracking_v4.8.3", + "date": "Tue, 30 Jun 2026 14:22:03 GMT", + "comments": { + "none": [ + { + "comment": "Update uuid to v11 and remove closure-compiler from the build pipeline" + } + ] + } + }, + { + "version": "4.8.2", + "tag": "@snowplow/browser-plugin-element-tracking_v4.8.2", + "date": "Wed, 17 Jun 2026 12:30:12 GMT", + "comments": {} + }, + { + "version": "4.8.1", + "tag": "@snowplow/browser-plugin-element-tracking_v4.8.1", + "date": "Wed, 13 May 2026 09:26:05 GMT", + "comments": {} + }, + { + "version": "4.8.0", + "tag": "@snowplow/browser-plugin-element-tracking_v4.8.0", + "date": "Tue, 28 Apr 2026 07:56:22 GMT", + "comments": {} + }, + { + "version": "4.7.0", + "tag": "@snowplow/browser-plugin-element-tracking_v4.7.0", + "date": "Wed, 01 Apr 2026 12:59:29 GMT", + "comments": {} + }, + { + "version": "4.6.9", + "tag": "@snowplow/browser-plugin-element-tracking_v4.6.9", + "date": "Mon, 16 Mar 2026 15:43:06 GMT", + "comments": {} + }, + { + "version": "4.6.8", + "tag": "@snowplow/browser-plugin-element-tracking_v4.6.8", + "date": "Tue, 28 Oct 2025 09:46:42 GMT", + "comments": {} + }, + { + "version": "4.6.7", + "tag": "@snowplow/browser-plugin-element-tracking_v4.6.7", + "date": "Tue, 07 Oct 2025 14:53:36 GMT", + "comments": {} + }, + { + "version": "4.6.6", + "tag": "@snowplow/browser-plugin-element-tracking_v4.6.6", + "date": "Tue, 26 Aug 2025 08:42:27 GMT", + "comments": {} + }, + { + "version": "4.6.5", + "tag": "@snowplow/browser-plugin-element-tracking_v4.6.5", + "date": "Wed, 25 Jun 2025 21:16:46 GMT", + "comments": {} + }, + { + "version": "4.6.4", + "tag": "@snowplow/browser-plugin-element-tracking_v4.6.4", + "date": "Wed, 25 Jun 2025 12:08:50 GMT", + "comments": {} + }, + { + "version": "4.6.3", + "tag": "@snowplow/browser-plugin-element-tracking_v4.6.3", + "date": "Thu, 29 May 2025 19:52:07 GMT", + "comments": {} + }, + { + "version": "4.6.2", + "tag": "@snowplow/browser-plugin-element-tracking_v4.6.2", + "date": "Tue, 20 May 2025 07:39:05 GMT", + "comments": { + "none": [ + { + "comment": "Fix element_content schema implementation." + } + ] + } + }, + { + "version": "4.6.1", + "tag": "@snowplow/browser-plugin-element-tracking_v4.6.1", + "date": "Tue, 06 May 2025 13:10:51 GMT", + "comments": {} + }, + { + "version": "4.6.0", + "tag": "@snowplow/browser-plugin-element-tracking_v4.6.0", + "date": "Thu, 01 May 2025 09:58:59 GMT", + "comments": { + "none": [ + { + "comment": "Create element tracking plugin" + } + ] + } + } + ] +} diff --git a/plugins/browser-plugin-element-tracking/CHANGELOG.md b/plugins/browser-plugin-element-tracking/CHANGELOG.md new file mode 100644 index 000000000..545fe47f6 --- /dev/null +++ b/plugins/browser-plugin-element-tracking/CHANGELOG.md @@ -0,0 +1,102 @@ +# Change Log - @snowplow/browser-plugin-element-tracking + +This log was last generated on Mon, 27 Jul 2026 13:52:14 GMT and should not be manually modified. + +## 4.10.0 +Mon, 27 Jul 2026 13:52:14 GMT + +_Version update only_ + +## 4.9.0 +Tue, 21 Jul 2026 14:53:08 GMT + +### Updates + +- Fix element tracking plugin sending element_index of 0 on expose_element and obscure_element events + +## 4.8.4 +Thu, 02 Jul 2026 10:07:52 GMT + +_Version update only_ + +## 4.8.3 +Tue, 30 Jun 2026 14:22:03 GMT + +### Updates + +- Update uuid to v11 and remove closure-compiler from the build pipeline + +## 4.8.2 +Wed, 17 Jun 2026 12:30:12 GMT + +_Version update only_ + +## 4.8.1 +Wed, 13 May 2026 09:26:05 GMT + +_Version update only_ + +## 4.8.0 +Tue, 28 Apr 2026 07:56:22 GMT + +_Version update only_ + +## 4.7.0 +Wed, 01 Apr 2026 12:59:29 GMT + +_Version update only_ + +## 4.6.9 +Mon, 16 Mar 2026 15:43:06 GMT + +_Version update only_ + +## 4.6.8 +Tue, 28 Oct 2025 09:46:42 GMT + +_Version update only_ + +## 4.6.7 +Tue, 07 Oct 2025 14:53:36 GMT + +_Version update only_ + +## 4.6.6 +Tue, 26 Aug 2025 08:42:27 GMT + +_Version update only_ + +## 4.6.5 +Wed, 25 Jun 2025 21:16:46 GMT + +_Version update only_ + +## 4.6.4 +Wed, 25 Jun 2025 12:08:50 GMT + +_Version update only_ + +## 4.6.3 +Thu, 29 May 2025 19:52:07 GMT + +_Version update only_ + +## 4.6.2 +Tue, 20 May 2025 07:39:05 GMT + +### Updates + +- Fix element_content schema implementation. + +## 4.6.1 +Tue, 06 May 2025 13:10:51 GMT + +_Version update only_ + +## 4.6.0 +Thu, 01 May 2025 09:58:59 GMT + +### Updates + +- Create element tracking plugin + diff --git a/plugins/browser-plugin-element-tracking/LICENSE b/plugins/browser-plugin-element-tracking/LICENSE new file mode 100644 index 000000000..a311732d5 --- /dev/null +++ b/plugins/browser-plugin-element-tracking/LICENSE @@ -0,0 +1,29 @@ +BSD 3-Clause License + +Copyright (c) 2023 Snowplow Analytics Ltd, 2010 Anthon Pang +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/plugins/browser-plugin-element-tracking/README.md b/plugins/browser-plugin-element-tracking/README.md new file mode 100644 index 000000000..c87e8931f --- /dev/null +++ b/plugins/browser-plugin-element-tracking/README.md @@ -0,0 +1,195 @@ +# Snowplow Element Tracking Plugin + +[![npm version][npm-image]][npm-url] +[![License][license-image]](LICENSE) + +Browser Plugin to be used with `@snowplow/browser-tracker`. + +This plugin allows tracking the addition/removal and visibility of page elements. + +## Maintainer quick start + +Part of the Snowplow JavaScript Tracker monorepo. +Build with [Node.js](https://nodejs.org/en/) (18 - 20) and [Rush](https://rushjs.io/). + +### Setup repository + +```bash +npm install -g @microsoft/rush +git clone https://github.com/snowplow/snowplow-javascript-tracker.git +rush update +``` + +## Package Installation + +With npm: + +```bash +npm install @snowplow/browser-plugin-element-tracking +``` + +## Usage + +Initialize your tracker with the SnowplowElementTrackingPlugin and then call `startElementTracking`: + +```js +import { newTracker } from '@snowplow/browser-tracker'; +import { SnowplowElementTrackingPlugin, startElementTracking } from '@snowplow/browser-plugin-element-tracking'; + +newTracker('sp1', '{{collector_url}}', { + appId: 'my-app-id', + plugins: [ SnowplowElementTrackingPlugin() ], +}); + +startElementTracking({ + elements: [ + {selector: '.newsletter-signup'} + ] +}); +``` + +### Configuration + +Configuration occurs primarily via the `elements` setting passed to `startElementTracking`. + +You can pass a single configuration or an array of multiple configurations. + +Each configuration requires a `selector`, with a CSS selector describing the elements the configuration applies to. +All other configuration is optional. + +You can label each configuration with the `name` property (if not specified, the `selector` is used as the `name`). +The `name` is used in the event payloads and matches the `element_name` of any entities specific to the target element(s). + +The settings control triggering events for: + +- `expose_element`: When a selected element enters the viewport, becoming visible +- `obscure_element`: When a selected element exists the viewport, no longer being visible +- `create_element`: When a selected element is created or exists in the document +- `destroy_element`: When a selected element is removed from or no longer found in the document + +Each of these events can be enabled, disabled, or configured more specifically. +By default, only `expose_element` is enabled. + +Rather than trigger events, configurations can also define the selected elements as "components", which can be listed as a `component_parents` entity for other events; or can have their current state attached to other events (such as page pings) via `element_statistics` entities. + +The plugin manages the following custom entities: + +- `element`: This is shared between all the above events. It contains the `element_name` from the matching configuration, and data about the element that generated the event. This includes the element's dimensions, position (relative to the viewport and document), how many elements matched it's selector (and the index of the element in question, if you selector matches multiple elements). It will also contain custom attributes you can extract from the element via the `details` configuration. +- `component_parents`: For the element generating the event, provides a list of components (defined by the `component` setting) that are ancestors of that element. +- `element_content`: You can also attach details about child elements of the element that matches your selector. E.g. you can select a recommendations widget, and then extract details about the individual recommendations within it. +- `element_statistics`: This entity can be attached to other events and provides a snapshot of what this plugin has observed at that point; it includes the current/smallest/largest dimensions so far, how long the element has existed since it was first observed, its current/maximum scroll depth, its total time in view, and how many times it has been visible in the viewport. + +A detailed example configuration follows: + +```javascript +snowplow('startElementTracking', { + elements: [ + // can be a single or array of many configurations; additive, can be called multiple times to add more configurations, but doesn't dedupe + { + selector: '.oncreate', // required: selector for element, relative to document scope by default + name: 'created div', // logical name: can be shared across multiple configs; defaults to `selector` if not specified; this is used in event payloads and as a key to reference entities + create: true, // track an event when the element is added to the DOM (or when plugin loads if already on page) (default: false) + destroy: true, // track an event when the element is removed from the DOM (or when plugin loads if already on page) (default: false) + expose: true, // track an event when the element intersects with the viewport (default: true) + obscure: true, // track an event when the element scrolls out of the viewport (default: false) + details: [ + // details can be extracted from the element and included in the entity + function (element) { + return { example: 'from a function' }; + }, // use a function that returns an object + { attributes: ['class'], selector: true }, // or declarative options; either as a single object or array elements if you want config re-use; this is less flexible but will be useful to Google Tag Manager where functions may not be able to reference DOM elements + { attributes: ['class'] }, // attributes: get the static/default attributes originally defined on the element when created + { properties: ['className'] }, // properties: get the dynamic/current attributes defined on the element + { dataset: ['example'] }, // dataset: extract values from dataset attributes + { child_text: { heading: 'h2' } }, // child_text: for each given name:selector pair, extract the textContent of the first child matching selector, if it has text content use that value with the given name; if there's no matching children it will try shadow children + { selector: true }, // selector: attach the matching CSS selector as an attribute; useful if you're using logical names but want to differentiate + { content: { textType: /text (\S+)/ } }, //content (map of regex patterns to match text against, first capture group used if detected); if no innerText, will try shadow innerText + ], + includeStats: ['page_ping'], // you can include a list of event names here; statistics about elements matching this configuration will be attached as entities to those events; event names don't have to be generated by this plugin so can include built-in events like page_pings or custom events + }, + { selector: 'nav', expose: false, component: true }, // `expose` is true by default so may need disabling; `component` means the name/selector is attached to the component_parents entity list for other events triggered on descendants + { + selector: 'div.toggled', // elements that exist but don't yet match the selector will count as created/destroyed if they later are changed to match it + name: 'mutated div', + create: true, + destroy: true, + expose: false, + obscure: false, + }, + { + selector: '.perpage.toggled', + name: 'perpage mutation', + create: { when: 'pageview' }, // for each type of event you can specify frequency caps for when the event will fire: never, always, once, element, pageview + destroy: { when: 'pageview' }, + /* + the frequency options are "per": + - per never will never track the event, effectively disabling the configuration + - per always will track an event every time it is eligible (e.g. every time on screen when scrolled past) + - per once will only track the event a single time for each configuration for the duration of the plugin instance; this reduces volume since only the first matching element will fire the event + - per element is like once, but for each individually matching element instance + - per pageview is like once, but useful for single-page-applications with long-lasting plugin instances where you may want to track the element on each virtual pageview + */ + expose: false, // `false` is equivalent to `when: never`, and `true` is `when: always` + obscure: false, + }, + { + name: 'recommendations', + selector: '.recommendations', + expose: { + // expose has more options than the other events: + minTimeMillis: 5000, // cumulative time in milliseconds that each matching element should be visible for before considered exposed + minPercentage: 0, // the minimum percentage of the element's area that should be visible before considering exposed; range 0.0 - 1.0 + minSize: 0, // the minimum size the element should be before being considered exposed; this can be used to ignore elements with 0 size + boundaryPixels: 0, // arbitrary margins to apply to the element when calculating minPercentage; can be a number to apply to all sides, 2-element array to specify vertical and horizontal, or 4-element array to specify margins for each size individually + }, + obscure: true, + component: true, + details: { child_text: ['h2'] }, + contents: [ + // content information can be extracted + { + name: 'recommendation-item', // contents can be named too + selector: 'li', // selectors are relative to the parent element + details: { content: { item_name: /.+/ } }, // content item details can be captured too + contents: { name: 'recommendation_image', selector: 'img', details: { attributes: ['alt'] } }, // you can descend contents like a tree + }, + ], + }, + { + name: 'shadow', + selector: 'button.shadow', + shadowSelector: 'shadow-host', // elements within custom components/shadow hosts require their hosts' selectors to be specified + shadowOnly: true, // if the selector could erroneously catch elements outside your shadow hosts, you can restrict it to only match in shadows; by default it will match elements in and out of shadow hosts if they match the selector + }, + ], +}); + +snowplow('getComponentListGenerator', function (componentGenerator, componentGeneratorWithDetail) { + // access a context generator aware of the startElementTracking "components" configuration + // this will attach the component_parents entity to events generated by these plugins that show the component hierarchy + snowplow('enableLinkClickTracking', { context: [componentGenerator] }); + snowplow('enableFormTracking', { context: [componentGenerator] }); + + // componentGeneratorWithDetail will also populate element_detail entities for each component, but may not be directly compatible with the above APIs +}); + +snowplow('endElementTracking', {elements: ['names']}); // stop tracking all configurations with given `name`s +snowplow('endElementTracking', {elementIds: ['id']}); // to be more specific, each configuration can also have an ID to remove explicitly +snowplow('endElementTracking', {filter: (config) => true}); // decide for yourself if the configuration should be removed; must explicitly return `true` to remove; "truthy" values will not count +snowplow('endElementTracking'); // stop tracking all elements and remove listeners +``` + + +## Copyright and license + +Licensed and distributed under the [BSD 3-Clause License](LICENSE) ([An OSI Approved License][osi]). + +Copyright (c) 2024 Snowplow Analytics Ltd. + +All rights reserved. + +[npm-url]: https://www.npmjs.com/package/@snowplow/browser-plugin-element-tracking +[npm-image]: https://img.shields.io/npm/v/@snowplow/browser-plugin-element-tracking +[docs]: https://docs.snowplowanalytics.com/docs/collecting-data/collecting-from-own-applications/javascript-tracker/ +[osi]: https://opensource.org/licenses/BSD-3-Clause +[license-image]: https://img.shields.io/npm/l/@snowplow/browser-plugin-element-tracking diff --git a/plugins/browser-plugin-element-tracking/jest.config.js b/plugins/browser-plugin-element-tracking/jest.config.js new file mode 100644 index 000000000..90f99fb5b --- /dev/null +++ b/plugins/browser-plugin-element-tracking/jest.config.js @@ -0,0 +1,6 @@ +module.exports = { + preset: 'ts-jest', + reporters: ['jest-standard-reporter'], + testEnvironment: 'jest-environment-jsdom-global', + setupFilesAfterEnv: ['../../setupTestGlobals.ts'], +}; diff --git a/plugins/browser-plugin-element-tracking/package.json b/plugins/browser-plugin-element-tracking/package.json new file mode 100644 index 000000000..2b3b0c493 --- /dev/null +++ b/plugins/browser-plugin-element-tracking/package.json @@ -0,0 +1,52 @@ +{ + "name": "@snowplow/browser-plugin-element-tracking", + "version": "4.10.0", + "description": "Snowplow element tracking", + "homepage": "https://github.com/snowplow/snowplow-javascript-tracker", + "bugs": "https://github.com/snowplow/snowplow-javascript-tracker/issues", + "repository": { + "type": "git", + "url": "https://github.com/snowplow/snowplow-javascript-tracker.git" + }, + "license": "BSD-3-Clause", + "author": "Snowplow Analytics Ltd (https://snowplow.io/)", + "sideEffects": false, + "main": "./dist/index.umd.js", + "module": "./dist/index.module.js", + "types": "./dist/index.module.d.ts", + "files": [ + "dist" + ], + "scripts": { + "build": "rollup -c --silent --failAfterWarnings", + "test": "jest" + }, + "dependencies": { + "@snowplow/browser-tracker-core": "workspace:*", + "@snowplow/tracker-core": "workspace:*", + "tslib": "^2.3.1" + }, + "devDependencies": { + "@rollup/plugin-commonjs": "~21.0.2", + "@rollup/plugin-node-resolve": "~13.1.3", + "@types/jest": "~28.1.1", + "@types/jsdom": "~16.2.14", + "@typescript-eslint/eslint-plugin": "~5.15.0", + "@typescript-eslint/parser": "~5.15.0", + "eslint": "~8.11.0", + "jest": "~28.1.3", + "jest-environment-jsdom": "~28.1.3", + "jest-environment-jsdom-global": "~4.0.0", + "jest-standard-reporter": "~2.0.0", + "rollup": "~2.70.1", + "rollup-plugin-cleanup": "~3.2.1", + "rollup-plugin-license": "~2.6.1", + "rollup-plugin-terser": "~7.0.2", + "rollup-plugin-ts": "~2.0.5", + "ts-jest": "~28.0.8", + "typescript": "~4.6.2" + }, + "peerDependencies": { + "@snowplow/browser-tracker": "~4.10.0" + } +} diff --git a/plugins/browser-plugin-element-tracking/rollup.config.js b/plugins/browser-plugin-element-tracking/rollup.config.js new file mode 100644 index 000000000..07574f559 --- /dev/null +++ b/plugins/browser-plugin-element-tracking/rollup.config.js @@ -0,0 +1,66 @@ +/* + * Copyright (c) 2022 Snowplow Analytics Ltd, 2010 Anthon Pang + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +import { nodeResolve } from '@rollup/plugin-node-resolve'; +import commonjs from '@rollup/plugin-commonjs'; +import ts from 'rollup-plugin-ts'; // Preferred over @rollup/plugin-typescript as it bundles .d.ts files +import { banner } from '../../banner'; +import { terser } from 'rollup-plugin-terser'; +import cleanup from 'rollup-plugin-cleanup'; +import pkg from './package.json'; +import { builtinModules } from 'module'; + +const umdPlugins = [nodeResolve({ browser: true }), commonjs(), ts()]; +const umdName = 'snowplowElementTracking'; + +export default [ + // CommonJS (for Node) and ES module (for bundlers) build. + { + input: './src/index.ts', + plugins: [...umdPlugins, banner()], + treeshake: { moduleSideEffects: ['sha1'] }, + output: [{ file: pkg.main, format: 'umd', sourcemap: true, name: umdName }], + }, + { + input: './src/index.ts', + plugins: [...umdPlugins, terser(), cleanup({ comments: 'none' }), banner()], + treeshake: { moduleSideEffects: ['sha1'] }, + output: [{ file: pkg.main.replace('.js', '.min.js'), format: 'umd', sourcemap: true, name: umdName }], + }, + { + input: './src/index.ts', + external: [...builtinModules, ...Object.keys(pkg.dependencies), ...Object.keys(pkg.devDependencies)], + plugins: [ + ts(), // so Rollup can convert TypeScript to JavaScript + banner(), + ], + output: [{ file: pkg.module, format: 'es', sourcemap: true }], + }, +]; diff --git a/plugins/browser-plugin-element-tracking/src/api.ts b/plugins/browser-plugin-element-tracking/src/api.ts new file mode 100644 index 000000000..89e41496d --- /dev/null +++ b/plugins/browser-plugin-element-tracking/src/api.ts @@ -0,0 +1,594 @@ +import { + type BrowserPlugin, + type BrowserTracker, + dispatchToTrackersInCollection, +} from '@snowplow/browser-tracker-core'; +import { type Logger, SelfDescribingJson, buildSelfDescribingEvent } from '@snowplow/tracker-core'; + +import { baseComponentGenerator } from './components'; +import { + ConfigurationState, + checkConfig, + createContextMerger, + type Configuration, + type ContextProvider, + type ElementConfiguration, +} from './configuration'; +import { buildContentTree, evaluateDataSelector, getElementDetails } from './data'; +import { ElementStatus, aggregateStats, getState } from './elementsState'; +import { ComponentsEntity, ElementDetailsEntity, Entity, Events, Event } from './schemata'; +import { Frequency, type OneOrMany } from './types'; +import { getMatchingElements, nodeIsElement, shouldTrackExpose } from './util'; + +/** + * Parameters for startElementTracking. + */ +export type ElementTrackingConfiguration = { + /** + * Optional context generator or static contexts to apply/add to any events generated by this batch of element configurations. + */ + context?: ContextProvider; + /** + * Single or array of element configurations to start tracking events for. + */ + elements: OneOrMany; +}; + +/** + * Parameters for endElementTracking. + */ +export type ElementTrackingDisable = + | { + /** + * A list of configuration names to stop tracking. Configurations can share names so this may match multiple cases. + * Configurations with no explicit name use their selector as their name. + */ + elements: OneOrMany; + } + | { + /** + * A list of configuration IDs to stop tracking. Only a single Configuration is allowed to exist per ID so this can be used to target specific instances. + */ + elementIds: OneOrMany>; + } + | { + /** + * Custom predicate to return if each Configuration should be removed (`true`) or kept (`false`). + * @param configuration The filter function to decide if the Configuration should be removed or not. + * @returns + */ + filter: (configuration: Readonly) => boolean; + }; + +const trackers: Record = {}; +const configurations: Configuration[] = []; + +const WeakestSet = typeof WeakSet === 'undefined' ? Set : WeakSet; + +const trackedThisPage: Record> = { + [Events.ELEMENT_CREATE]: new Set(), + [Events.ELEMENT_DESTROY]: new Set(), + [Events.ELEMENT_EXPOSE]: new Set(), + [Events.ELEMENT_OBSCURE]: new Set(), +}; + +const trackedElements: Record> = { + [Events.ELEMENT_CREATE]: new WeakestSet(), + [Events.ELEMENT_DESTROY]: new WeakestSet(), + [Events.ELEMENT_EXPOSE]: new WeakestSet(), + [Events.ELEMENT_OBSCURE]: new WeakestSet(), +}; + +const trackedConfigs: Record> = { + [Events.ELEMENT_CREATE]: new WeakestSet(), + [Events.ELEMENT_DESTROY]: new WeakestSet(), + [Events.ELEMENT_EXPOSE]: new WeakestSet(), + [Events.ELEMENT_OBSCURE]: new WeakestSet(), +}; + +let LOG: Logger | undefined = undefined; +let mutationObserver: MutationObserver | false = false; +let intersectionObserver: IntersectionObserver | false = false; +let currentPageViewId: string = ''; + +/** + * Plugin for tracking the addition and removal of elements to a page and the visibility of those elements. + * @param param0 Plugin configuration. + * @param param0.ignoreNextPageView Only required when use per-pageview frequency configurations and the ordering vs the pageview event matters. Defaults to `true`, which means the next pageview event will be ignored and not count as resetting the per-pageview state; this is correct if you're calling startElementTracking before calling trackPageView. + * @returns + */ +export function SnowplowElementTrackingPlugin({ ignoreNextPageView = true } = {}): BrowserPlugin { + // book keeping for controlling behavior if activated before/after first pageview + // used when tracking `when: pageview` frequency + if (ignoreNextPageView) { + Object.values(trackedThisPage).forEach((trackedThisPage) => { + trackedThisPage.add('initial'); + }); + } + + return { + activateBrowserPlugin(tracker) { + trackers[tracker.id] = tracker; + currentPageViewId = tracker.getPageViewId(); + setupObservers(); + }, + afterTrack(payload) { + if (payload['e'] === 'pv') { + // update originating pageview id + const trackerName = payload['tna']; + if (typeof trackerName === 'string' && trackerName in trackers) { + currentPageViewId = trackers[trackerName].getPageViewId(); + } + + // re-set state for `when: pageview` frequency caps + Object.values(trackedThisPage).forEach((trackedThisPage) => { + // handle book-keeping from above + if (trackedThisPage.has('initial')) { + trackedThisPage.delete('initial'); + } else { + trackedThisPage.clear(); + } + }); + } + }, + beforeTrack(payload) { + // attach stat/component entities for configured events + const e = payload.getPayload()['e']; + let eventName: string; + + if (e === 'pv') eventName = 'page_view'; + else if (e === 'pp') eventName = 'page_ping'; + else if (e === 'se') eventName = 'event'; + else if (e === 'tr') eventName = 'transaction'; + else if (e === 'ti') eventName = 'transaction_item'; + else if (e === 'ue') { + const sdjData = payload.getJson(); + for (const sdjWithKey of sdjData) { + if (sdjWithKey.keyIfEncoded === 'ue_px') { + const schema = (sdjWithKey.json.data as SelfDescribingJson).schema; + eventName = schema.split('/')[1]; + } + } + } else return; + + configurations.forEach((config) => { + if (!config.includeStats.includes(eventName) && !config.includeStats.includes('*')) return; + const elements = getMatchingElements(config); + elements.forEach((elem, i, a) => { + payload.addContextEntity(aggregateStats(config.name, elem, i + 1, a.length)); + }); + }); + }, + logger(logger) { + LOG = logger; + }, + }; +} + +function setupObservers() { + if (!mutationObserver) { + mutationObserver = typeof MutationObserver === 'function' && new MutationObserver(mutationCallback); + if (mutationObserver) + mutationObserver.observe(document.documentElement, { + attributes: true, + childList: true, + subtree: true, + }); + } + intersectionObserver = + intersectionObserver || + (typeof IntersectionObserver === 'function' && new IntersectionObserver(intersectionCallback)); +} + +/** + * Start Element tracking for elements that match the given configuration(s). + * + * Invalid configurations will be ignored, but valid configurations in the same batch will still apply. + * + * You can call this multiple times with different batches of configurations. E.g. section-specific configs, different custom context, different tracker instance destinations. + * Configurations supplied in multiple calls will not be deduped unless an `id` is provided and it collides with previous `id` values. + * + * @param param0 Element Tracking configuration options containing a batch of element configurations and optionally, custom context. + * @param trackers A list of tracker instance names that should receive events generated by this batch of element configurations. If not provided, events go to all trackers the plugin has activated for. + * @returns + */ +export function startElementTracking( + { elements = [], context }: ElementTrackingConfiguration, + trackers?: Array +): void { + const elementConfigs = Array.isArray(elements) ? elements : [elements]; + + // may have stopped observers via `endElementTracking` + if (elementConfigs.length) setupObservers(); + + elementConfigs.forEach((config) => { + try { + const batchContext = createContextMerger(context, config.context); + const valid = checkConfig(config, batchContext, !!intersectionObserver, !!mutationObserver, LOG, trackers); + + // upsert by id if provided + if (valid.id) { + const existing = configurations.findIndex(({ id }) => id === valid.id); + if (existing > -1) { + configurations[existing] = valid; + } else configurations.push(valid); + } else configurations.push(valid); + } catch (e) { + LOG?.error('Failed to process Element Tracking configuration', e, config); + } + }); + + configurations.forEach((config) => { + const { expose, obscure, state } = config; + if (state === ConfigurationState.INITIAL) { + config.state = ConfigurationState.CONFIGURED; + + const elements = getMatchingElements(config); + + elements.forEach((element, i) => { + const state = getState(element, { originalPageViewId: currentPageViewId }); + + state.lastPosition = i; + state.matches.add(config); + + trackEvent(Events.ELEMENT_CREATE, config, element, { position: i + 1, matches: elements.length }); + + if (intersectionObserver && (expose.when !== Frequency.NEVER || obscure.when !== Frequency.NEVER)) { + intersectionObserver.observe(element); + } + }); + } + }); +} + +/** + * Stop tracking events for the configurations with the given names or IDs, or satisfying a custom predicate. + * If no parameters provided, removes all previous configurations. + * All element configurations have names, if not provided the `name` is the `selector` which is required. + * + * No considerations are made for tracker instance destinations. Use IDs or filters if you need specific routing options. + * @param remove Filter information for which element configurations should be removed. Omit to remove all configurations. + */ +export function endElementTracking(remove?: ElementTrackingDisable): void { + if (!remove) { + configurations.length = 0; + } else { + if ('elementIds' in remove) { + const { elementIds } = remove; + const idsToRemove = Array.isArray(elementIds) ? elementIds : [elementIds]; + + const remaining = configurations.filter(({ id }) => { + const shouldRemove = typeof id === 'string' && idsToRemove.includes(id); + return !shouldRemove; + }); + + configurations.splice(0, configurations.length, ...remaining); + } + + if ('elements' in remove) { + const { elements } = remove; + const elsToRemove = Array.isArray(elements) ? elements : [elements]; + + const remaining = configurations.filter(({ name }) => elsToRemove.includes(name)); + + configurations.splice(0, configurations.length, ...remaining); + } + + if ('filter' in remove && typeof remove.filter === 'function') { + const remaining = configurations.filter((config) => { + try { + return remove.filter(config) !== true; + } catch (e) { + return true; + } + }); + configurations.splice(0, configurations.length, ...remaining); + } + } + + if (!configurations.length) { + if (intersectionObserver) intersectionObserver.disconnect(); + if (mutationObserver) mutationObserver.disconnect(); + mutationObserver = intersectionObserver = false; + } +} + +const componentGenerator = baseComponentGenerator.bind(null, false, configurations) as ( + ...args: any[] +) => ComponentsEntity | null; +const detailedComponentGenerator = baseComponentGenerator.bind(null, true, configurations) as ( + ...args: any[] +) => [ComponentsEntity, ...ElementDetailsEntity[]] | null; + +/** + * Obtain access to functions that can determine details about any configured `component`s and return `component_parents` context for given elements. + * + * It returns two generator functions: + * - one returns a single `component_parents` entity, which lists the names of any defined components that are ancestors of the provided element + * - the second returns multiple entities, including `component_parents` plus any element_details information about each matching component + * + * When called, the generators will examine all parameters in order looking for: + * - an element to look for owning components of + * - a string to use as the element_name in the component_parents entity + * + * The functions are suitable for use in Dynamic Context Generator functions used in other plugins such as Link and Form tracking. + * + * If a `cb` function is provided, it is called with the above generators as parameters that it can use in asynchronous situations (such as the JavaScript tracker). + * + * @param cb Callback function to receive the generator callbacks described above asynchronously. + * @returns Array of callbacks described above. + */ +export function getComponentListGenerator( + cb?: (basic: typeof componentGenerator, detailed: typeof detailedComponentGenerator) => void +): [typeof componentGenerator, typeof detailedComponentGenerator] { + if (cb) cb(componentGenerator, detailedComponentGenerator); + return [componentGenerator, detailedComponentGenerator]; +} + +/** + * Do the thing! + * + * - Build the event payload for `schema` + * - Evaluate whether we have been configured to actually send that event + * - Evaluate frequency caps + * - Build entity payloads + * - Dispatch event to trackers + * + * The actual tracking is scheduled in a new task to yield back to the callers quickly, as they may need to be performant. + * @param schema The type of event to generate/track. + * @param config The configuration that matched and triggered this event to generate. This will include any criteria for the preventing the event to fire, and information for which entities are required. + * @param element The element that is the subject of the event; used to generate entity information. + * @param options Other details about the situation; like the bounding rect of the element, its number of siblings/etc. Some of these may be expensive to recalculate if needed, so you can provide them in advance if already available. + * @returns + */ +function trackEvent( + schema: T, + config: Configuration, + element: Element | HTMLElement, + options?: Partial<{ + boundingRect: DOMRect; + position: number; + matches: number; + }> +): void { + const { boundingRect, position, matches } = options ?? {}; + + // core payload + const payload: Event = { + schema, + data: { + element_name: config.name, + }, + }; + + // check custom conditions + const conditions = { + [Events.ELEMENT_CREATE]: config.create.condition, + [Events.ELEMENT_DESTROY]: config.destroy.condition, + [Events.ELEMENT_EXPOSE]: config.expose.condition, + [Events.ELEMENT_OBSCURE]: config.obscure.condition, + }; + + if (conditions[schema]) { + if (!evaluateDataSelector(element, config.selector, conditions[schema]!).length) return; + } + + // check frequency caps + const frequencies = { + [Events.ELEMENT_CREATE]: config.create.when, + [Events.ELEMENT_DESTROY]: config.destroy.when, + [Events.ELEMENT_EXPOSE]: config.expose.when, + [Events.ELEMENT_OBSCURE]: config.obscure.when, + }; + + switch (frequencies[schema]) { + case Frequency.NEVER: + return; // abort + case Frequency.ALWAYS: + break; // continue + case Frequency.ONCE: + if (trackedConfigs[schema].has(config)) return; // once / once per config + trackedConfigs[schema].add(config); + break; + case Frequency.ELEMENT: + if (trackedElements[schema].has(element)) return; // once per element + trackedElements[schema].add(element); + break; + case Frequency.PAGEVIEW: + if (trackedThisPage[schema].has(element)) return; // once per pageview + trackedThisPage[schema].add(element); + break; + } + + // build entities + const context: (Entity | SelfDescribingJson)[] = []; + + context.push(...(config.context(element, config) as Entity[])); + + if (config.details) { + context.push( + getElementDetails( + config, + element, + boundingRect, + position, + matches, + schema === Events.ELEMENT_DESTROY || schema === Events.ELEMENT_OBSCURE + ) + ); + } + + if (config.contents.length) { + context.push(...buildContentTree(config, element, position)); + } + + const components = detailedComponentGenerator(config.name, element); + if (components) context.push(...components); + + // track the event + setTimeout(dispatchToTrackersInCollection, 0, config.trackers, trackers, (tracker: BrowserTracker) => { + const event = buildSelfDescribingEvent({ event: payload }); + tracker.core.track(event, context); + }); +} + +/** + * Handle some boilerplate/book-keeping to track an element as CREATEd. + * Saves use duplicating this logic many times in `mutationCallback`. + */ +function handleCreate(nowTs: number, config: Configuration, node: Node | Element) { + if (nodeIsElement(node) && node.matches(config.selector)) { + const state = getState(node, { originalPageViewId: currentPageViewId }); + state.state = ElementStatus.CREATED; + state.createdTs = nowTs; + state.matches.add(config); + trackEvent(Events.ELEMENT_CREATE, config, node); + if (config.expose.when !== Frequency.NEVER && intersectionObserver) intersectionObserver.observe(node); + } +} + +/** + * Handler for the mutation observer. + * Checks for two mutation types: + * attributes: for existing nodes in the document that may mutate into matching a config when they didn't previously (or vice-versa) + * childList: for node adds/removals, to find new elements added dynamically to the page that may match configurations + * + * For the former, we need to keep track of if we've matched each element against a config before to determine if it's mutated away or not; not matching now isn't enough enough information to know if it previously matched. + * If we determine a matching element has been DESTROYed, we stop observing it for intersections. + * On the other hand, if a CREATE was determined, start observing intersections if that's requested in the configuration. + */ +function mutationCallback(mutations: MutationRecord[]): void { + const nowTs = performance.now() + performance.timeOrigin; + mutations.forEach((record) => { + configurations.forEach((config) => { + const createFn = handleCreate.bind(null, nowTs, config); + + if (record.type === 'attributes') { + if (nodeIsElement(record.target)) { + const element = record.target; + const prevState = getState(element, { originalPageViewId: currentPageViewId }); + + if (prevState.state !== ElementStatus.INITIAL) { + if (!element.matches(config.selector)) { + if (prevState.matches.has(config)) { + if (prevState.state === ElementStatus.EXPOSED) trackEvent(Events.ELEMENT_OBSCURE, config, element); + trackEvent(Events.ELEMENT_DESTROY, config, element); + prevState.matches.delete(config); + if (intersectionObserver) intersectionObserver.unobserve(element); + prevState.state = ElementStatus.DESTROYED; + } + } else { + if (!prevState.matches.has(config)) { + createFn(element); + } + } + } else { + createFn(element); + } + } + } else if (record.type === 'childList') { + const matches = getMatchingElements(config); + record.addedNodes.forEach((node) => { + matches.filter((m) => node.contains(m)).forEach(createFn); + }); + record.removedNodes.forEach((node) => { + if (nodeIsElement(node)) { + const removals = node.matches(config.selector) ? [node] : []; + removals.push(...getMatchingElements(config, node)); + removals.forEach((node) => { + const state = getState(node, { originalPageViewId: currentPageViewId }); + if (state.state === ElementStatus.EXPOSED) trackEvent(Events.ELEMENT_OBSCURE, config, node); + trackEvent(Events.ELEMENT_DESTROY, config, node); + if (intersectionObserver) intersectionObserver.unobserve(node); + state.state = ElementStatus.DESTROYED; + }); + } + }); + } + }); + }); +} + +/** + * Handler for the intersection observer. + * Called when there are intersection updates, and when an element is first observed (the latter when new configs are added, or the mutation observer tries to evaluate visibility). + * + * Each entry is for a specific element, so we need to find if the element matches a config. + * With a config match we can determine if we need to fire EXPOSE/OBSCURE events for that element. + * For intersections, we first put it in a PENDING state in case we need to account for minimum time conditions. + * If time and other conditions are met, we can track the EXPOSE. + * Otherwise, we schedule an unobserve/reobserve in the next animation frame to update time in view, which will repeat until the time condition is met. This feels expensive, but seems to be OK since the layout should all be pretty freshly calculated at these points so it's actually pretty light. + * If no longer visible, consider tracking OBSCURE (unless it was DESTROYED, which would already have tried OBSCURE). + */ +function intersectionCallback(entries: IntersectionObserverEntry[], observer: IntersectionObserver): void { + entries.forEach((entry) => { + let frameRequest: number | undefined = undefined; + const state = getState(entry.target, { lastObservationTs: entry.time, originalPageViewId: currentPageViewId }); + configurations.forEach((config) => { + if (entry.target.matches(config.selector)) { + const siblings = getMatchingElements(config); + const foundIndex = siblings.findIndex((el) => el.isSameNode(entry.target)); + const position = foundIndex !== -1 ? foundIndex + 1 : Math.max(state.lastPosition + 1, 1); + const matchCount = foundIndex !== -1 ? siblings.length : Math.max(siblings.length + 1, position); + + if (foundIndex !== -1) { + state.lastPosition = foundIndex; + } + + if (entry.isIntersecting) { + if (state.state !== ElementStatus.EXPOSED && state.state !== ElementStatus.PENDING) { + Object.assign(state, { + state: ElementStatus.PENDING, + lastObservationTs: entry.time, + views: state.views + 1, + }); + } + + if (state.state === ElementStatus.PENDING) { + // check configured criteria, if any + if (shouldTrackExpose(config, entry)) { + // check time criteria + if (config.expose.minTimeMillis <= state.elapsedVisibleMs) { + state.state = ElementStatus.EXPOSED; + trackEvent(Events.ELEMENT_EXPOSE, config, entry.target, { + boundingRect: entry.boundingClientRect, + position, + matches: matchCount, + }); + } + } + } + + if (state.state === ElementStatus.PENDING || state.state === ElementStatus.EXPOSED) { + const elapsedVisibleMs = state.elapsedVisibleMs + (entry.time - state.lastObservationTs); + Object.assign(state, { + lastObservationTs: entry.time, + elapsedVisibleMs, + }); + + // check visibility time next frame + if (!frameRequest) { + frameRequest = requestAnimationFrame(() => { + observer.unobserve(entry.target); // observe is no-op for already observed elements + observer.observe(entry.target); // for non-observed elements, it immediately generates an entry of current state + }); + } + } + } else { + if (state.state === ElementStatus.EXPOSED) { + trackEvent(Events.ELEMENT_OBSCURE, config, entry.target, { + boundingRect: entry.boundingClientRect, + position, + matches: matchCount, + }); + } + + Object.assign(state, { + state: state.state === ElementStatus.DESTROYED ? ElementStatus.DESTROYED : ElementStatus.OBSCURED, + lastObservationTs: entry.time, + }); + } + } + }); + }); +} diff --git a/plugins/browser-plugin-element-tracking/src/components.ts b/plugins/browser-plugin-element-tracking/src/components.ts new file mode 100644 index 000000000..9c8e9fdb6 --- /dev/null +++ b/plugins/browser-plugin-element-tracking/src/components.ts @@ -0,0 +1,50 @@ +import type { Configuration } from './configuration'; +import { getElementDetails } from './data'; +import { ComponentsEntity, ElementDetailsEntity, Entities } from './schemata'; +import { nodeIsElement } from './util'; + +/** + * Generic callback for providing `component` entities for given Elements. + * Auto discovers element and name from parameters and returns the list of components that encapsulate that element. + * @param withDetails Whether details for each component should be included. + * @param configurations List of configurations that contain component definitions. + * @param params Arbitrary parameters that should include an element and optionally a logical name for that element. + * @returns `component_parents` entity, or if `withDetails` specified, a list of entities containing `component_parents` and the details for each component as `element` entities. + */ +export const baseComponentGenerator = ( + withDetails: boolean, + configurations: Configuration[], + ...params: any[] +): ComponentsEntity | [ComponentsEntity, ...ElementDetailsEntity[]] | null => { + const elementParams = params.filter((arg) => arg instanceof Node && nodeIsElement(arg)); + const elementName = params.find((arg) => typeof arg === 'string'); + + if (!elementParams.length) return null; + + const components: string[] = []; + const details: ElementDetailsEntity[] = []; + + elementParams.forEach((elem) => { + configurations.forEach((config) => { + if (!config.component) return; + + const ancestor = elem.closest(config.selector); + if (ancestor !== null) { + components.push(config.name); + if (withDetails && config.details) { + details.push(getElementDetails(config, ancestor)); + } + } + }); + }); + + const entity: ComponentsEntity = { + schema: Entities.COMPONENT_PARENTS, + data: { + element_name: elementName, + component_list: components, + }, + }; + + return components.length ? (withDetails ? [entity, ...details] : entity) : null; +}; diff --git a/plugins/browser-plugin-element-tracking/src/configuration.ts b/plugins/browser-plugin-element-tracking/src/configuration.ts new file mode 100644 index 000000000..d15db3f3e --- /dev/null +++ b/plugins/browser-plugin-element-tracking/src/configuration.ts @@ -0,0 +1,310 @@ +import type { Logger, SelfDescribingJson } from '@snowplow/tracker-core'; + +import { isDataSelector } from './data'; +import { type DataSelector, Frequency, type OneOrMany, type RequiredExcept } from './types'; + +export enum ConfigurationState { + INITIAL, + CONFIGURED, +} + +/** + * A dynamic context provider for events generated from the plugin. + * + * Can be a static list of Self Describing JSON entities, or a function that returns the same. + * The function will receive the matching element, and matching element configuration as parameters. + */ +export type ContextProvider = + | SelfDescribingJson[] + | ((element: Element | HTMLElement | undefined, match: Configuration) => SelfDescribingJson[]); + +/** + * Options controlling when this type of event should occur. + */ +type BaseOptions = { + /** + * Frequency cap options for how often this should be tracked over the lifetime of the plugin. + */ + when: `${Frequency}`; + /** + * A custom DataSelector defining if an element should trigger the event or not. If the DataSelector returns no result triplets, the event does not trigger. The `match` operation can be used here to do some logic against the other types of operators. + */ + condition?: DataSelector; +}; + +/** + * Additional options for controlling when an EXPOSE event should occur. + */ +type ExposeOptions = BaseOptions & { + /** + * For larger elements, only trigger if at least this proportion of the element is visible on screen; expects: 0.0 - 1.0; default: 0 + */ + minPercentage?: number; + /** + * Only trigger once the element has been in view for at least this many milliseconds. The time is measured cumulatively. After the threshold is met it will re-fire immediately. + */ + minTimeMillis?: number; + /** + * Don't count this element as visible unless its area (height * width) is at least this many pixels. Useful to prohibit empty container elements being tracked as visible. + */ + minSize?: number; + /** + * Add these dimensions (in pixels) to the element size when calculating minPercentage. Used to increase/decrease the size of the actual element before considering it visible. + */ + boundaryPixels?: [number, number, number, number] | [number, number] | number; +}; + +/** + * Input configuration format for describing a set of elements to be tracked with this plugin. + */ +export type ElementConfiguration = { + /** + * Logical name for elements matched by this configuration. This name will be used to describe any matching elements in event payloads and entities, and to associate the data between them. + * If not provided, the `selector` is used as `name`. + */ + name?: string; + /** + * Required. CSS selector to determine the set of elements that match this configuration. + */ + selector: string; + /** + * If `selector` is intended for matching elements within custom elements or shadow DOM hosts, specify a selector for the shadow hosts here; this will be used to identify shadow-elements that match `selector` that would otherwise not be visible. + */ + shadowSelector?: string; + /** + * If using `shadowSelector` to indicate `selector` matches elements in shadow hosts; use this to specify that only elements within shadow hosts matching `shadowSelector` should match; if `false` (default), elements outside shadow hosts (that are not necessarily children of `shadowSelector` hosts) will match the configuration also. + */ + shadowOnly?: boolean; + /** + * Configure when, if ever, element create events should be triggered when detected for elements matching this configuration. + * Defaults to `false`, which is shorthand for `{ when: 'never' }`. + */ + create?: boolean | BaseOptions; + /** + * Configure when, if ever, element destroy events should be triggered when detected for elements matching this configuration. + * Defaults to `false`, which is shorthand for `{ when: 'never' }`. + */ + destroy?: boolean | BaseOptions; + /** + * Configure when, if ever, element expose events should be triggered when detected for elements matching this configuration. + * Also specify additional criteria on relevant for expose events like minimum size or visibility time. + * Defaults to `true`, which is shorthand for `{ when: 'always' }` and `0` for all other options. + */ + expose?: boolean | ExposeOptions; + /** + * Configure when, if ever, element obscure events should be triggered when detected for elements matching this configuration. + * Defaults to `false`, which is shorthand for `{ when: 'never' }`. + */ + obscure?: boolean | BaseOptions; + /** + * Indicate that elements matching this configuration are "components"; their ancestry of other elements will be identified in the component_parents entity if this is set (using this configuration's `name`). + */ + component?: boolean; + /** + * When events occur to elements matching this configuration, extract data from one or more DataSelectors and include them in `attributes` in the `element` entity that describes that element. + */ + details?: OneOrMany; + /** + * When events occur to elements matching this configuration, evaluate one or more nested configurations using the matching element as a root; the `name`, `selector`, `details`, and `contents` will be processed, with other options ignored. The resulting elements (and optionally their `details` will be included as entities on events for this element.) + */ + contents?: OneOrMany; + /** + * Types of events that statistics for the element should be included on, if any. Should be the `event_name` value for events that should have the entity attached. E.g. `page_view`, `page_ping`, `expose_element`, `my_custom_event`. + */ + includeStats?: OneOrMany; + /** + * Provide custom context entities for events generated from this configuration. + */ + context?: ContextProvider; + /** + * An optional ID for this configuration. + * Calls to track configurations with a specific ID will override previous configurations with the same ID. + * No impact on actual tracking or payloads. + */ + id?: string; +}; + +/** + * Parsed valid version of `ElementConfiguration`. + * Removes some ambiguities allowed in that type that are there for a more pleasant configuration API. + */ +export type Configuration = Omit< + RequiredExcept, + 'create' | 'destroy' | 'expose' | 'obscure' | 'details' | 'includeStats' | 'contents' +> & { + trackers?: string[]; + create: BaseOptions; + destroy: BaseOptions; + expose: RequiredExcept; + obscure: BaseOptions; + state: ConfigurationState; + details: DataSelector[]; + includeStats: string[]; + contents: Configuration[]; + context: Extract; +}; + +const DEFAULT_FREQUENCY_OPTIONS: BaseOptions = { when: 'always' }; + +const emptyProvider: ContextProvider = () => []; + +/** + * Create a new ContextProvider that will merge the given `context` into that generated by the plugin or other configuration itself. + * @param context An existing ContextProvider to merge with future unknown context. + * @returns New ContextProvider function that will produce the results of merging its own context with the provided `context`. + */ +export function createContextMerger(batchContext?: ContextProvider, configContext?: ContextProvider): ContextProvider { + return function contextMerger(element, config) { + const result: SelfDescribingJson[] = []; + + for (const contextSrc of [batchContext, configContext]) { + if (contextSrc) { + if (typeof contextSrc === 'function') { + if (contextSrc !== contextMerger) result.push(...contextSrc(element, config)); + } else { + result.push(...contextSrc); + } + } + } + + return result; + }; +} + +/** + * Parse and validate a given `ElementConfiguration`, returning a more concrete `Configuration` if successful. + * @param config Input configuration to evaluate. + * @param contextProvider The context provider to embed into the configuration; this will handle merging any batch-level context into configuration-level context. + * @param trackers A list of trackers the resulting configuration should send events to, if specified. + * @returns Validated Configuration. + */ +export function checkConfig( + config: ElementConfiguration, + contextProvider: ContextProvider, + intersectionPossible: boolean, + mutationPossible: boolean, + logger?: Logger, + trackers?: string[] +): Configuration { + const { selector, name = selector, shadowSelector, shadowOnly = false, id, component = false } = config; + + // essential configs + if (typeof name !== 'string' || !name) throw new Error(`Invalid element name value: ${name}`); + if (typeof selector !== 'string' || !selector) throw new Error(`Invalid element selector value: ${selector}`); + + // these will throw if selectors invalid + document.querySelector(selector); + if (shadowSelector) document.querySelector(shadowSelector); + + // event type frequencies & options + const { create = false, destroy = false, expose = true, obscure = false } = config; + + // simple event configs + const [validCreate, validDestroy, validObscure] = [create, destroy, obscure].map((input) => { + if (!input) return { when: Frequency.NEVER }; + if (typeof input === 'object') { + const { when = 'always', condition } = input; + + if (condition && !isDataSelector(condition)) throw new Error('Invalid data selector provided for condition'); + + if (when.toUpperCase() in Frequency) { + return { + when: when.toLowerCase() as Frequency, + condition, + }; + } else { + throw new Error(`Unknown tracking frequency: ${when}`); + } + } + return DEFAULT_FREQUENCY_OPTIONS; + }); + + if ((validCreate.when !== Frequency.NEVER || validDestroy.when !== Frequency.NEVER) && !mutationPossible) + logger?.warn('MutationObserver API unavailable but required for events in configuration:', config); + + let validExpose: RequiredExcept | null = null; + + // expose has custom options and is more complex + if (expose && typeof expose === 'object') { + const { + when = 'always', + condition, + boundaryPixels = 0, + minPercentage = 0, + minSize = 0, + minTimeMillis = 0, + } = expose; + + if (condition && !isDataSelector(condition)) throw new Error('Invalid data selector provided for condition'); + if ( + (typeof boundaryPixels !== 'number' && !Array.isArray(boundaryPixels)) || + typeof minPercentage !== 'number' || + typeof minSize !== 'number' || + typeof minTimeMillis !== 'number' + ) + throw new Error('Invalid expose options provided'); + + if (when.toUpperCase() in Frequency) { + validExpose = { + when: when.toLowerCase() as Frequency, + condition, + boundaryPixels, + minPercentage, + minSize, + minTimeMillis, + }; + } else { + throw new Error(`Unknown tracking frequency: ${when}`); + } + } else if (expose) { + validExpose = { + ...DEFAULT_FREQUENCY_OPTIONS, + boundaryPixels: 0, + minPercentage: 0, + minSize: 0, + minTimeMillis: 0, + }; + } else { + validExpose = { + when: Frequency.NEVER, + boundaryPixels: 0, + minPercentage: 0, + minSize: 0, + minTimeMillis: 0, + }; + } + + if ((validExpose.when !== Frequency.NEVER || validObscure.when !== Frequency.NEVER) && !intersectionPossible) + logger?.warn('IntersectionObserver API unavailable but required for events in configuration:', config); + + // normalize to arrays (scalars allowed in input for convenience) + let { details = [], contents = [], includeStats = [] } = config; + + if (!Array.isArray(details)) details = details == null ? [] : [details]; + if (!Array.isArray(contents)) contents = contents == null ? [] : [contents]; + if (!Array.isArray(includeStats)) includeStats = includeStats == null ? [] : [includeStats]; + + if (details.length !== details.filter(isDataSelector).length) + throw new Error('Invalid DataSelector given for details'); + + return { + name, + selector, + id, + shadowSelector, + shadowOnly, + create: validCreate, + destroy: validDestroy, + expose: validExpose, + obscure: validObscure, + component: !!component, + details, + includeStats, + contents: contents.map((inner) => + checkConfig(inner, inner.context ?? emptyProvider, intersectionPossible, mutationPossible, logger, trackers) + ), + context: typeof contextProvider === 'function' ? contextProvider : () => contextProvider, + trackers, + state: ConfigurationState.INITIAL, + }; +} diff --git a/plugins/browser-plugin-element-tracking/src/data.ts b/plugins/browser-plugin-element-tracking/src/data.ts new file mode 100644 index 000000000..05315dccc --- /dev/null +++ b/plugins/browser-plugin-element-tracking/src/data.ts @@ -0,0 +1,258 @@ +import { SelfDescribingJson } from '@snowplow/tracker-core'; +import type { Configuration } from './configuration'; +import { getState } from './elementsState'; +import { ElementContentEntity, ElementDetailsEntity, Entities } from './schemata'; +import { AttributeList, type DataSelector } from './types'; +import { getMatchingElements } from './util'; + +/** + * Type guard to determine if `val` is a valid `DataSelector` function or descriptor + */ +export function isDataSelector(val: unknown): val is DataSelector { + if (val == null) return false; + if (typeof val === 'function') return true; + + type KeysOf = T extends Function ? never : keyof T; + type AllOf = Exclude extends never + ? Exclude extends never + ? T + : Exclude + : Exclude; + + const knownKeys = ['match', 'content', 'selector', 'dataset', 'attributes', 'properties', 'child_text'] as const; + const selectorKeys: AllOf, typeof knownKeys> = knownKeys; // type error if we add a new selector without updating knownKeys + + if (typeof val === 'object') return selectorKeys.some((key) => key in val); + return false; +} + +/** + * Combine the results of an array of DataSelectors + * @param element Element to select data from + * @param path The CSS path used to select `element`, which may be requested by the `selector` + * @param selectors The list of DataSelectors to evaluate + * @returns Flattened list of results found processing the element. + */ +export function extractSelectorDetails(element: Element, path: string, selectors: DataSelector[]): AttributeList { + return selectors.reduce((attributes: AttributeList, selector) => { + const result = evaluateDataSelector(element, path, selector); + + if (result.length) { + return attributes.concat(result); + } else if ('match' in selector) return []; + + return attributes; + }, []); +} + +/** + * Combine the results of an array of DataSelectors + * @param element Element to select data from + * @param path The CSS path used to select `element`, which may be requested by the `selector` DataSelector type + * @param selector The single DataSelector to evaluate + * @returns Selector results; list of key/value/source triplets that were extracted from the element + */ +export function evaluateDataSelector( + element: HTMLElement | Element, + path: string, + selector: DataSelector +): AttributeList { + const result: AttributeList = []; + + type DataSelectorType = (T extends T ? keyof T : never) | 'callback'; + let source: DataSelectorType = 'callback'; + + if (typeof selector === 'function') { + try { + const discovered = selector(element); + for (const attribute in discovered) { + if (typeof attribute === 'string' && discovered.hasOwnProperty(attribute)) { + const value = + typeof discovered[attribute] === 'object' + ? JSON.stringify(discovered[attribute]) + : String(discovered[attribute]); + result.push({ source, attribute, value }); + } + } + } catch (e) { + const value = e instanceof Error ? e.message || e.name : String(e); + result.push({ source: 'error', attribute: 'message', value }); + } + + return result; + } + + source = 'attributes'; + if (source in selector && Array.isArray(selector[source])) { + selector[source].forEach((attribute) => { + const value = element.getAttribute(attribute); + + if (value !== null) { + result.push({ source, attribute, value }); + } + }); + } + + source = 'properties'; + if (source in selector && Array.isArray(selector[source])) { + selector[source].forEach((attribute) => { + const value = (element as any)[attribute]; + + if (typeof value !== 'object' && typeof value !== 'undefined') { + result.push({ source, attribute, value: String(value) }); + } + }); + } + + source = 'dataset'; + if (source in selector && Array.isArray(selector[source])) { + selector[source].forEach((attribute) => { + if ('dataset' in element) { + const value = element.dataset[attribute]; + + if (typeof value !== 'undefined') { + result.push({ source, attribute, value: String(value) }); + } + } + }); + } + + source = 'child_text'; + if (source in selector && typeof selector[source] === 'object' && selector[source]) { + Object.entries(selector[source]).forEach(([attribute, selector]) => { + try { + const child = element.querySelector(selector) || element.shadowRoot?.querySelector(selector); + if (child && child.textContent) result.push({ source, attribute, value: child.textContent }); + } catch (e) {} + }); + } + + source = 'content'; + if (source in selector && typeof selector[source] === 'object' && selector[source]) { + Object.entries(selector[source]).forEach(([attribute, pattern]) => { + if (!(pattern instanceof RegExp)) + try { + pattern = new RegExp(pattern); + } catch (e) { + return; + } + + const innerText = element.textContent || element.shadowRoot?.textContent; + if (innerText) { + try { + const match = pattern.exec(innerText); + if (match) { + result.push({ source, attribute, value: match.length > 1 ? match[1] : match[0] }); + } + } catch (e) { + console.error(e); + } + } + }); + } + + source = 'selector'; + if (source in selector && selector[source]) { + result.push({ source, attribute: source, value: path }); + } + + source = 'match'; + if (source in selector && selector[source]) { + const condition = selector[source]; + + for (const [attribute, value] of Object.entries(condition)) { + if ( + !result.some( + (r) => r.attribute === attribute && (typeof value === 'function' ? value(r.value) : r.value === value) + ) + ) + return []; + } + } + + return result; +} + +/** + * Builds a flat list of `element_content` entities describing the matched element and any child configuration matches. + * @param config A root/branch element configuration with nested `contents` configurations. + * @param element The element that matched `config` that will be (and have its children) described. + * @param parentPosition The position of this element amongst its matching sibling elements. Used to de-flatten the tree at analysis time. + * @returns A list of `element_content` entities describing the elements and its content, and the same of its children. + */ +export function buildContentTree( + config: Configuration, + element: Element, + parentPosition: number = 1 +): (ElementContentEntity | SelfDescribingJson)[] { + const context: (ElementContentEntity | SelfDescribingJson)[] = []; + + if (element && config.contents.length) { + config.contents.forEach((contentConfig) => { + const contents = getMatchingElements(contentConfig, element); + + contents.forEach((contentElement, i) => { + const entity: ElementContentEntity = { + schema: Entities.ELEMENT_CONTENT, + data: { + parent_name: config.name, + parent_index: parentPosition, + element_name: contentConfig.name, + element_index: i + 1, + attributes: extractSelectorDetails(contentElement, contentConfig.selector, contentConfig.details), + }, + }; + + context.push(entity); + context.push(...contentConfig.context(contentElement, contentConfig)); + context.push(...buildContentTree(contentConfig, contentElement, i + 1)); + }); + }); + } + + return context; +} + +/** + * Builds an `element` entity. + * @param config Configuration describing any additional data that should be included in the entity. + * @param element The element this entity will describe. + * @param rect The position/dimension information of the element. + * @param position Which match this element is amongst those that match the Configuration's selector. + * @param matches The total number, including this one, of elements that matched the Configuration selector. + * @param usePreviousForEmpty Whether to use the previously seen size instead of the current one. Useful if the node no longer exists (e.g. destroyed). Will only apply if the new size is 0. + * @returns The Element entity SDJ. + */ +export function getElementDetails( + config: Configuration, + element: Element, + rect: DOMRect = element.getBoundingClientRect(), + position?: number, + matches?: number, + usePreviousForEmpty: boolean = false +): ElementDetailsEntity { + const state = getState(element); + + if (usePreviousForEmpty && state.lastKnownSize && (rect.height === 0 || rect.width === 0)) { + rect = state.lastKnownSize; + } + + state.lastKnownSize = rect; + + return { + schema: Entities.ELEMENT_DETAILS, + data: { + element_name: config.name, + width: rect.width, + height: rect.height, + position_x: rect.x, + position_y: rect.y, + doc_position_x: rect.x + window.scrollX, + doc_position_y: rect.y + window.scrollY, + element_index: position, + element_matches: matches, + originating_page_view: state.originalPageViewId, + attributes: extractSelectorDetails(element, config.selector, config.details), + }, + }; +} diff --git a/plugins/browser-plugin-element-tracking/src/elementsState.ts b/plugins/browser-plugin-element-tracking/src/elementsState.ts new file mode 100644 index 000000000..dd1f0ba07 --- /dev/null +++ b/plugins/browser-plugin-element-tracking/src/elementsState.ts @@ -0,0 +1,163 @@ +import type { Configuration } from './configuration'; +import { Entities, type ElementStatisticsEntity } from './schemata'; + +export enum ElementStatus { + INITIAL, + CREATED, + DESTROYED, + EXPOSED, + PENDING, + OBSCURED, +} + +/** + * Keeps track of per-element stuff we need to keep track of. + */ +type ElementState = { + /** + * Last known state for this element. Used to decide if events should be triggered or not when it's otherwise ambiguous. + */ + state: ElementStatus; + /** + * When the element was first seen/deemed "created"; for use in aggregate stats in future version. + */ + createdTs: number; + /** + * Last time we evaluated this element for a state change. Used for a delta to calculate cumulative visible time. + */ + lastObservationTs: number; + /** + * The above mentioned cumulative visible time. + */ + elapsedVisibleMs: number; + /** + * The pageview ID when we first observed this element. + */ + originalPageViewId: string; + /** + * The last position we saw of this element amongst the other matches we saw for this element. + */ + lastPosition: number; + /** + * The last non-0 size information available for this element. + */ + lastKnownSize?: DOMRect; + /** + * The other matches for this element's selector we last saw, of which the element is/was at `lastPosition`-1 position. + */ + matches: Set; + /** + * Smallest size dimensions seen so far for this element. + */ + minSize?: [number, number]; + /** + * Largest size dimensions seen so far for this element. + */ + maxSize?: [number, number]; + /** + * Largest vertical depth seen so far for this element, and the height the element was at that time. + */ + maxDepth?: [number, number]; + /** + * Number of times this element has entered viewport so far. + */ + views: number; +}; + +/** + * Bank of per-element state that needs to be stored. + */ +const elementsState = + typeof WeakMap !== 'undefined' ? new WeakMap() : new Map(); + +/** + * Obtain element state from `elementState`, creating with sane defaults if element is unknown. + * @param target Element to obtain state for. + * @param initial Initial state to include in the state if created. + * @returns State for the target element. + */ +export function getState(target: Element, initial: Partial = {}): ElementState { + if (elementsState.has(target)) { + return elementsState.get(target)!; + } else { + const nowTs = performance.now(); + const state: ElementState = { + state: ElementStatus.INITIAL, + matches: new Set(), + originalPageViewId: '', + createdTs: nowTs + performance.timeOrigin, + lastPosition: -1, + lastObservationTs: nowTs, + elapsedVisibleMs: 0, + views: 0, + ...initial, + }; + elementsState.set(target, state); + return state; + } +} + +const stateLabels: Record = { + [ElementStatus.CREATED]: 'exists', + [ElementStatus.DESTROYED]: 'destroyed', + [ElementStatus.EXPOSED]: 'on screen', + [ElementStatus.INITIAL]: 'unknown', + [ElementStatus.OBSCURED]: 'off screen', + [ElementStatus.PENDING]: 'awaiting time criteria', +}; + +const compareSize = (a: [number, number], b?: [number, number]) => { + if (b === undefined) return 0; + const asize = a[0] * a[1]; + const bsize = b[0] * b[1]; + return asize - bsize; +}; + +export function aggregateStats( + element_name: string, + target: Element, + index: number, + matches: number +): ElementStatisticsEntity { + const state = getState(target); + const stateLabel = stateLabels[state.state]; + + const rect = target.getBoundingClientRect(); + const curSize: [number, number] = [rect.width, rect.height]; + const minSize = compareSize(curSize, state.minSize) <= 0 ? curSize : state.minSize!; + const maxSize = compareSize(curSize, state.maxSize) < 0 ? state.maxSize! : curSize; + + const vpBottom = window.visualViewport + ? window.visualViewport.height + window.visualViewport.pageTop + : window.innerHeight + window.scrollY; + const curDepth: [number, number] = [Math.min(vpBottom, rect.top + rect.height) - rect.top, rect.height]; + const maxDepth = + state.maxDepth === undefined || state.maxDepth[1] === 0 + ? curDepth + : curDepth[1] === 0 + ? state.maxDepth + : curDepth[0] / curDepth[1] > state.maxDepth[0] / state.maxDepth[1] + ? curDepth + : state.maxDepth; + + Object.assign(state, { minSize, maxSize, maxDepth }); + + return { + schema: Entities.ELEMENT_STATISTICS, + data: { + element_name, + element_index: index, + element_matches: matches, + current_state: stateLabel, + min_size: minSize.join('x'), + current_size: curSize.join('x'), + max_size: maxSize.join('x'), + y_depth_ratio: curDepth[1] === 0 ? null : curDepth[0] / curDepth[1], + max_y_depth_ratio: maxDepth[1] === 0 ? null : maxDepth[0] / maxDepth[1], + max_y_depth: maxDepth.join('/'), + element_age_ms: Math.floor(performance.now() - (state.createdTs - performance.timeOrigin)), + times_in_view: state.views, + total_time_visible_ms: Math.floor(state.elapsedVisibleMs), + }, + }; +} diff --git a/plugins/browser-plugin-element-tracking/src/index.ts b/plugins/browser-plugin-element-tracking/src/index.ts new file mode 100644 index 000000000..b1c13e734 --- /dev/null +++ b/plugins/browser-plugin-element-tracking/src/index.ts @@ -0,0 +1 @@ +export * from './api'; diff --git a/plugins/browser-plugin-element-tracking/src/schemata.ts b/plugins/browser-plugin-element-tracking/src/schemata.ts new file mode 100644 index 000000000..2da3375a5 --- /dev/null +++ b/plugins/browser-plugin-element-tracking/src/schemata.ts @@ -0,0 +1,107 @@ +import { SelfDescribingJson } from '@snowplow/tracker-core'; + +import type { AttributeList } from './types'; + +export enum Events { + ELEMENT_CREATE = 'iglu:com.snowplowanalytics.snowplow/create_element/jsonschema/1-0-0', + ELEMENT_DESTROY = 'iglu:com.snowplowanalytics.snowplow/destroy_element/jsonschema/1-0-0', + ELEMENT_EXPOSE = 'iglu:com.snowplowanalytics.snowplow/expose_element/jsonschema/1-0-0', + ELEMENT_OBSCURE = 'iglu:com.snowplowanalytics.snowplow/obscure_element/jsonschema/1-0-0', +} + +export enum Entities { + ELEMENT_DETAILS = 'iglu:com.snowplowanalytics.snowplow/element/jsonschema/1-0-0', + ELEMENT_CONTENT = 'iglu:com.snowplowanalytics.snowplow/element_content/jsonschema/1-0-0', + ELEMENT_STATISTICS = 'iglu:com.snowplowanalytics.snowplow/element_statistics/jsonschema/1-0-0', + COMPONENT_PARENTS = 'iglu:com.snowplowanalytics.snowplow/component_parents/jsonschema/1-0-0', +} + +export type SDJ> = SelfDescribingJson & { + schema: S; +}; + +export type Event> = SDJ; +export type Entity> = SDJ; + +export type ElementCreateEvent = SDJ< + Events.ELEMENT_CREATE, + { + element_name: string; + } +>; + +export type ElementDestroyEvent = SDJ< + Events.ELEMENT_DESTROY, + { + element_name: string; + } +>; + +export type ElementExposeEvent = SDJ< + Events.ELEMENT_EXPOSE, + { + element_name: string; + } +>; + +export type ElementObscureEvent = SDJ< + Events.ELEMENT_OBSCURE, + { + element_name: string; + } +>; + +export type ElementContentEntity = SDJ< + Entities.ELEMENT_CONTENT, + { + parent_name: string; + parent_index: number; + element_name: string; + element_index: number; + attributes?: AttributeList; + } +>; + +export type ElementDetailsEntity = SDJ< + Entities.ELEMENT_DETAILS, + { + element_name: string; + height: number; + width: number; + position_x: number; + position_y: number; + doc_position_x: number; + doc_position_y: number; + element_index?: number; + element_matches?: number; + originating_page_view: string; + attributes?: AttributeList; + } +>; + +export type ComponentsEntity = SDJ< + Entities.COMPONENT_PARENTS, + { + element_name?: string; + component_list: string[]; + } +>; + +export type ElementStatisticsEntity = SDJ< + Entities.ELEMENT_STATISTICS, + { + element_name: string; + element_index: number; + element_matches: number; + current_state: string; + min_size: string; + current_size: string; + max_size: string; + y_depth_ratio: number | null; + max_y_depth_ratio: number | null; + max_y_depth: string; + element_age_ms: number; + times_in_view: number; + total_time_visible_ms: number; + } +>; diff --git a/plugins/browser-plugin-element-tracking/src/types.ts b/plugins/browser-plugin-element-tracking/src/types.ts new file mode 100644 index 000000000..1f046bfe3 --- /dev/null +++ b/plugins/browser-plugin-element-tracking/src/types.ts @@ -0,0 +1,76 @@ +/** + * Like `Required`, but any keys in `E` are optional instead of required. + */ +export type RequiredExcept = { + [P in Exclude]-?: Exclude; +} & { + [P in E]?: T[P]; +}; + +/** + * A thing, or an array of thing. Just a neater interface for the user writing configuration. + */ +export type OneOrMany = T | T[]; + +/** + * An attribute list details the results of running DataSelectors on an element. + * + * It's a list of key-value pairs along with a label for the source DataSelector to remove ambiguity. + * The list of objects is chosen for BigQuery compat, as it doesn't really support arbitrary "map" types. + */ +export type AttributeList = { + source: string; + attribute: string; + value: string; +}[]; + +/** + * A DataSelector defines information to extract from an element. + * + * It can be a custom function returning arbitrary key/values as an object. Non-string values will be cast to string or cast to JSON strings. If exceptions are thrown, the error information is captured. + * Alternatively there are several declarative options that can be specified as object properties. + * + * The properties allowed are: + * - attributes: Return the values of a list of attributes of the element + * - properties: Return the values of a list of property names of the element's DOM node; this is similar to attributes in some cases but different in others. E.g. `class` as an attribute needs to be `className` as a property; some attributes will reflect their initial value rather than what has been updated via JavaScript + * - dataset: Return the values of a list of data-* attributes; uses the camelCase name rather than the kebab-case name of the attribute + * - selector: Specify `true` to attach the CSS selector used to match the element; can be used to differentiate elements with the same `name` + * - content: Provide an object mapping names to RegExp patterns to run on the element's text content. If it matches it is included. The first group in the pattern will be prioritized if specified. + * - child_text: Provide an object mapping names to CSS selectors; the selectors are evaluated against the element and the first matching element's text content is the value. + * - match: Logical operator for use when used as a condition; always evaluated last. Look at existing matches so far, comparing each key/value to the provided object. Alternatively supply a predicate function that determines if this matches or not. If there are no matches, discard any matches found to this point. + */ +export type DataSelector = + | ((element: Element) => Record) + | { attributes: string[] } + | { properties: string[] } + | { dataset: string[] } + | { selector: boolean } + | { content: Record } + | { child_text: Record } + | { match: Record boolean)> }; + +/** + * When this type of event should actually be tracked after it has been detected. + */ +export enum Frequency { + /** + * Track this event every time it occurs; e.g. EXPOSE every time it scrolls into/out of view. + */ + ALWAYS = 'always', + /** + * Track this event at most once per element that matches the selector for the lifetime of the plugin. + */ + ELEMENT = 'element', + /** + * Only track the event the first time it occurs per configuration. Even if other elements would trigger the event, ignore them after the first time it occurs. + */ + ONCE = 'once', + /** + * Never track this event, effectively disabling a configuration. + */ + NEVER = 'never', + /** + * Track each event only once per element until the next pageview is seen, allowing it to be tracked again. Mostly useful for Single Page Applications. + */ + PAGEVIEW = 'pageview', +} diff --git a/plugins/browser-plugin-element-tracking/src/util.ts b/plugins/browser-plugin-element-tracking/src/util.ts new file mode 100644 index 000000000..030fc3d46 --- /dev/null +++ b/plugins/browser-plugin-element-tracking/src/util.ts @@ -0,0 +1,85 @@ +import { Configuration } from './configuration'; +import { Frequency } from './types'; + +/** + * Parses custom boundaries config. + * @param boundaryPixels Input format boundaries. + * @returns Object describing the input boundary configuration. + */ +export function defineBoundaries(boundaryPixels: number | [number, number] | [number, number, number, number]) { + let boundTop: number, boundRight: number, boundBottom: number, boundLeft: number; + if (typeof boundaryPixels === 'number') { + boundTop = boundRight = boundBottom = boundLeft = boundaryPixels; + } else if (Array.isArray(boundaryPixels)) { + if (boundaryPixels.length === 2) { + boundTop = boundBottom = boundaryPixels[0]; + boundRight = boundLeft = boundaryPixels[1]; + } else if (boundaryPixels.length === 4) { + [boundTop, boundRight, boundBottom, boundLeft] = boundaryPixels; + } else { + boundTop = boundRight = boundBottom = boundLeft = 0; + } + } else { + boundTop = boundRight = boundBottom = boundLeft = 0; + } + + return { boundTop, boundRight, boundBottom, boundLeft }; +} + +/** + * Gets descendent elements of `target` (`document` by default) that match the selector info in `config`. + * This is usually a wrapper around `querySelectorAll`, but accounts for shadow roots that can be specified in `config`. + * @param config The configuration containing the selector and other details that influence how elements will be found. + * @param target The root to start finding descendent elements from; defaults to `document` + * @returns Array of elements within `target` that matched the configuration in `config`. + */ +export function getMatchingElements(config: Configuration, target: ParentNode = document) { + const { selector, shadowOnly, shadowSelector } = config; + const elements: Element[] = shadowOnly ? [] : Array.from(target.querySelectorAll(selector)); + + if (shadowSelector) { + Array.from(target.querySelectorAll(shadowSelector), (host) => { + if (host.shadowRoot) { + // these will have been skipped in the above check but should be included if we're recursing + if (shadowOnly) elements.push(...Array.from(host.shadowRoot.querySelectorAll(selector))); + // look for nested shadow elements + elements.push(...getMatchingElements(config, host.shadowRoot)); + } + }); + } + + return elements; +} + +/** + * Type guard to check that `Node` is an `Element` + * @param node Node to check. + * @returns If `node` is an Element. + */ +export function nodeIsElement(node: Node): node is Element { + return node.nodeType === Node.ELEMENT_NODE; +} + +/** + * Evaluates whether the current intersection is eligible for firing an EXPOSE event against the given configuration. + * Mostly this handles "disabled" config (when: never), minimum size/intersection checks and custom boundaries. + */ +export function shouldTrackExpose(config: Configuration, entry: IntersectionObserverEntry): boolean { + if (config.expose.when === Frequency.NEVER) return false; + if (!entry.isIntersecting) return false; + + const { boundaryPixels, minPercentage, minSize } = config.expose; + + const { boundTop, boundRight, boundBottom, boundLeft } = defineBoundaries(boundaryPixels); + + const { boundingClientRect } = entry; + if (boundingClientRect.height * boundingClientRect.width < minSize) return false; + + const intersectionArea = entry.intersectionRect.height * entry.intersectionRect.width; + const boundingHeight = entry.boundingClientRect.height + boundTop + boundBottom; + const boundingWidth = entry.boundingClientRect.width + boundLeft + boundRight; + const boundingArea = boundingHeight * boundingWidth; + if (minPercentage > intersectionArea / boundingArea) return false; + + return true; +} diff --git a/plugins/browser-plugin-element-tracking/test/api.test.ts b/plugins/browser-plugin-element-tracking/test/api.test.ts new file mode 100644 index 000000000..4fd77b224 --- /dev/null +++ b/plugins/browser-plugin-element-tracking/test/api.test.ts @@ -0,0 +1,624 @@ +import { addTracker, BrowserTracker, SharedState } from '@snowplow/browser-tracker-core'; +import type { Logger } from '@snowplow/tracker-core'; + +import { SnowplowElementTrackingPlugin, endElementTracking, startElementTracking } from '../src'; +import { AttributeList } from '../src/types'; + +/** + * Note: jsdom does not support IntersectionObserver so unit tests can only cover create/destroy events. + * + * https://github.com/jsdom/jsdom/issues/2032 + */ + +/** + * The plugin performs asynchronously when possible for performance. + * To actually see generated events, we need to check for them in a new task. + * This fn handles boilerplate for that. + * @param cb Callback making actual assertions + * @returns Promise resolving after callback succeeds after executing in new task. Rejects if `cb` throws to avoid timeouts. + */ +const inNewTask = (cb: () => void) => + new Promise((resolve, reject) => { + expect.hasAssertions(); + setTimeout(() => { + try { + resolve(cb()); + } catch (e) { + reject(e); + } + }, 50); + }); + +const eventSDJ = ( + field: string, + evt: { evt: Record }, + schema: string +): Record | Record[] | undefined => { + try { + const payloadString = evt.evt[field] as string; + const payload = JSON.parse(payloadString); + + if (/^ue_p[rx]$/.test(field)) { + if (payload.data.schema.split('/').includes(schema)) return payload.data; + } else if (/^c[ox]$/.test(field)) { + return payload.data.filter((e: any) => e.schema.split('/').includes(schema)).map((e: any) => e.data); + } + } catch (e) {} + return; +}; + +const unstructOf = eventSDJ.bind(null, 'ue_pr'); +const entityOf = eventSDJ.bind(null, 'co'); + +const FAKE_CONTEXT_SCHEMA = 'iglu:com.example/custom_entity/jsonschema/1-0-0'; + +describe('Element Tracking Plugin API', () => { + const eventQueue: { evt: Record }[] = []; + const secondEventQueue: { evt: Record }[] = []; + let warnLog: jest.SpyInstance>; + let tracker: BrowserTracker; + + beforeAll(() => { + const state = new SharedState(); + const plugin = SnowplowElementTrackingPlugin({ ignoreNextPageView: false }); + + const activateBrowserPlugin = jest.spyOn(plugin, 'activateBrowserPlugin'); + const logger = jest.spyOn(plugin, 'logger'); + + tracker = addTracker('test', 'test', 'js-test', '', state, { + stateStorageStrategy: 'cookie', + encodeBase64: false, + plugins: [ + plugin, + { + beforeTrack: (pb) => { + eventQueue.push({ evt: pb.build() }); + }, + }, + ], + customFetch: async () => new Response(null, { status: 200 }), + })!; + + expect(activateBrowserPlugin).toHaveBeenCalled(); + expect(logger).toHaveBeenCalledTimes(1); + + addTracker('test2', 'test2', 'js-test', '', state, { + stateStorageStrategy: 'cookie', + encodeBase64: false, + plugins: [ + plugin, + { + beforeTrack: (pb) => { + secondEventQueue.push({ evt: pb.build() }); + }, + }, + ], + customFetch: async () => new Response(null, { status: 200 }), + }); + + warnLog = jest.spyOn(logger.mock.calls[0][0], 'warn'); + }); + + afterEach(() => { + endElementTracking(); + document.body.replaceChildren(); + warnLog.mockReset(); + eventQueue.length = 0; + secondEventQueue.length = 0; + }); + + describe('startElementTracking', () => { + it('warns for unavailable observer', () => { + expect(typeof IntersectionObserver).toBe('undefined'); + + startElementTracking({ elements: { selector: 'div', expose: true } }); + + return inNewTask(() => { + expect(warnLog).toHaveBeenCalled(); + expect(eventQueue).toHaveLength(0); + }); + }); + + it('silent when not requesting unavailable observer', () => { + expect(typeof IntersectionObserver).toBe('undefined'); + expect(typeof MutationObserver).toBe('function'); + + startElementTracking({ elements: { selector: 'div', expose: false, create: true } }); + + return inNewTask(() => { + expect(warnLog).not.toHaveBeenCalled(); + expect(eventQueue).toHaveLength(0); + }); + }); + + it('tracks element creation', () => { + startElementTracking({ elements: { selector: '.newelement', expose: false, create: true } }); + + const div = document.createElement('div'); + div.classList.add('newelement'); + document.body.appendChild(div); + + return inNewTask(() => { + expect(eventQueue).toHaveLength(1); + expect(unstructOf(eventQueue[0], 'create_element')).toBeDefined(); + expect(entityOf(eventQueue[0], 'element')).toHaveLength(1); + }); + }); + + it('tracks element removal', () => { + const div = document.createElement('div'); + div.classList.add('existing'); + document.body.appendChild(div); + + startElementTracking({ elements: [{ selector: '.existing', expose: false, destroy: true }] }); + + document.body.removeChild(div); + + return inNewTask(() => { + expect(eventQueue).toHaveLength(1); + expect(unstructOf(eventQueue[0], 'destroy_element')).toBeDefined(); + expect(entityOf(eventQueue[0], 'element')).toHaveLength(1); + }); + }); + + it('tracks element mutation', () => { + const div = document.createElement('div'); + document.body.appendChild(div); + + startElementTracking({ elements: [{ selector: '.mutated', expose: false, create: true, destroy: true }] }); + + // we split these changes into microtasks or else the double toggle can't actually be observed + return Promise.resolve() + .then(() => { + div.classList.toggle('mutated'); + }) + .then(() => { + div.classList.toggle('mutated'); + }) + .then(() => { + div.classList.toggle('mutated'); + }) + .then(() => + inNewTask(() => { + expect(eventQueue).toHaveLength(3); + expect(unstructOf(eventQueue[0], 'create_element')).toBeDefined(); + expect(unstructOf(eventQueue[1], 'destroy_element')).toBeDefined(); + expect(unstructOf(eventQueue[2], 'create_element')).toBeDefined(); + }) + ); + }); + + it('includes advanced details', () => { + startElementTracking({ + elements: [ + { + selector: 'body', + component: true, + }, + { + selector: '.advanced', + expose: false, + create: { + when: 'always', + }, + details: { properties: ['className'] }, + contents: { selector: 'h1', details: { content: { heading_text: '.+' } } }, + context: () => [{ schema: FAKE_CONTEXT_SCHEMA, data: { from: 'config' } }], + }, + ], + context: [{ schema: FAKE_CONTEXT_SCHEMA, data: { from: 'batch' } }], + }); + + const div = document.createElement('div'); + div.classList.add('advanced'); + const heading = document.createElement('h1'); + heading.replaceChildren('Heading'); + div.replaceChildren(heading); + document.body.appendChild(div); + + return inNewTask(() => { + expect(eventQueue).toHaveLength(1); + expect(unstructOf(eventQueue[0], 'create_element')).toBeDefined(); + + expect(entityOf(eventQueue[0], 'element')).toHaveLength(2); // .advanced and body component + const elementEntities = entityOf(eventQueue[0], 'element'); + const elementEntity = Array.isArray(elementEntities) ? elementEntities[0] : (undefined as never); + const attributeList = elementEntity.attributes as AttributeList; + expect(attributeList).toHaveLength(1); + expect(attributeList).toEqual([ + { + source: 'properties', + attribute: 'className', + value: 'advanced', + }, + ]); + + expect(entityOf(eventQueue[0], 'component_parents')).toEqual([ + { + element_name: '.advanced', + component_list: ['body'], + }, + ]); + expect(entityOf(eventQueue[0], 'element_content')).toEqual([ + { + parent_name: '.advanced', + parent_index: 1, + element_name: 'h1', + element_index: 1, + attributes: [ + { + source: 'content', + attribute: 'heading_text', + value: 'Heading', + }, + ], + }, + ]); + expect(entityOf(eventQueue[0], 'custom_entity')).toEqual([{ from: 'batch' }, { from: 'config' }]); + }); + }); + + it('frequency: once', () => { + const div = document.createElement('div'); + document.body.appendChild(div); + const div2 = document.createElement('div'); + document.body.appendChild(div2); + + startElementTracking({ elements: [{ selector: '.mutated', expose: false, create: { when: 'once' } }] }); + + // we split these changes into microtasks or else the double toggle can't actually be observed + return Promise.resolve() + .then(() => { + div.classList.toggle('mutated'); + }) + .then(() => { + div.classList.toggle('mutated'); + }) + .then(() => { + div.classList.toggle('mutated'); // this create should be skipped + }) + .then(() => { + div2.classList.toggle('mutated'); // second div should skip too + }) + .then(() => + inNewTask(() => { + expect(eventQueue).toHaveLength(1); + expect(unstructOf(eventQueue[0], 'create_element')).toBeDefined(); + }) + ); + }); + + it('frequency: element', () => { + const div = document.createElement('div'); + document.body.appendChild(div); + const div2 = document.createElement('div'); + document.body.appendChild(div2); + + startElementTracking({ + elements: [{ selector: '.mutated', expose: false, create: { when: 'element' }, destroy: true }], + }); + + // we split these changes into microtasks or else the double toggle can't actually be observed + return Promise.resolve() + .then(() => { + div.classList.toggle('mutated'); + }) + .then(() => { + div.classList.toggle('mutated'); + }) + .then(() => { + div.classList.toggle('mutated'); // this create should be skipped + }) + .then(() => { + div.classList.toggle('mutated'); + }) + .then(() => { + div2.classList.toggle('mutated'); // but not for div2 + }) + .then(() => + inNewTask(() => { + expect(eventQueue).toHaveLength(4); + expect(unstructOf(eventQueue[0], 'create_element')).toBeDefined(); + expect(unstructOf(eventQueue[1], 'destroy_element')).toBeDefined(); + expect(unstructOf(eventQueue[2], 'destroy_element')).toBeDefined(); + expect(unstructOf(eventQueue[3], 'create_element')).toBeDefined(); + }) + ); + }); + + it('frequency: pageview', () => { + const div = document.createElement('div'); + document.body.appendChild(div); + + startElementTracking({ + elements: [{ selector: '.mutated', expose: false, create: { when: 'pageview' }, destroy: true }], + }); + + // we split these changes into microtasks or else the double toggle can't actually be observed + return Promise.resolve() + .then(() => { + div.classList.toggle('mutated'); + }) + .then(() => { + div.classList.toggle('mutated'); + }) + .then(() => { + div.classList.toggle('mutated'); // this create should be skipped + }) + .then(() => { + div.classList.toggle('mutated'); + }) + .then(() => + inNewTask(() => { + tracker.trackPageView(); // new task or the order is weird + }) + ) + .then(() => { + div.classList.toggle('mutated'); // new pv, don't skip this one + }) + .then(() => + inNewTask(() => { + expect(eventQueue).toHaveLength(5); + expect(unstructOf(eventQueue[0], 'create_element')).toBeDefined(); + expect(unstructOf(eventQueue[1], 'destroy_element')).toBeDefined(); + expect(unstructOf(eventQueue[2], 'destroy_element')).toBeDefined(); + expect(eventQueue[3].evt.e).toBe('pv'); + expect(unstructOf(eventQueue[4], 'create_element')).toBeDefined(); + }) + ); + }); + + it('evaluates conditions', () => { + startElementTracking({ + elements: { + selector: 'div', + expose: false, + create: { + when: 'always', + condition: { dataset: ['fake'] }, + }, + }, + }); + + const div = document.createElement('div'); + document.body.appendChild(div); + + return inNewTask(() => { + expect(eventQueue).toHaveLength(0); + }); + }); + + it('dedupes by id', () => { + startElementTracking({ + elements: { + id: 'test', + selector: 'span', + expose: false, + create: true, + }, + }); + + startElementTracking({ + elements: { + id: 'test', + selector: 'div', + expose: false, + create: true, + }, + }); + + for (const nodeName of ['div', 'span']) { + const element = document.createElement(nodeName); + document.body.appendChild(element); + } + + return inNewTask(() => { + expect(eventQueue).toHaveLength(1); + }); + }); + + it('adds element stats', () => { + startElementTracking({ + elements: { selector: '.newelement', expose: false, create: false, includeStats: 'page_view' }, + }); + + const div = document.createElement('div'); + div.classList.add('newelement'); + document.body.appendChild(div); + + tracker.trackPageView(); + tracker.trackPageView(); + + return inNewTask(() => { + expect(eventQueue).toHaveLength(2); + expect(entityOf(eventQueue[0], 'element_statistics')).toHaveLength(1); + expect(entityOf(eventQueue[1], 'element_statistics')).toHaveLength(1); + }); + }); + }); + + describe('multiple tracker', () => { + it('works with multiple trackers', () => { + startElementTracking({ elements: { selector: '.newelement', expose: false, create: true } }); + + const div = document.createElement('div'); + div.classList.add('newelement'); + document.body.appendChild(div); + + return inNewTask(() => { + expect(eventQueue).toHaveLength(1); + expect(secondEventQueue).toHaveLength(1); + expect(unstructOf(eventQueue[0], 'create_element')).toBeDefined(); + expect(unstructOf(secondEventQueue[0], 'create_element')).toBeDefined(); + expect(entityOf(eventQueue[0], 'element')).toHaveLength(1); + expect(entityOf(secondEventQueue[0], 'element')).toHaveLength(1); + }); + }); + + it('works with selective trackers', () => { + startElementTracking({ elements: { selector: '.newelement', expose: false, create: true } }, ['test']); + + const div = document.createElement('div'); + div.classList.add('newelement'); + document.body.appendChild(div); + + return inNewTask(() => { + expect(eventQueue).toHaveLength(1); + expect(secondEventQueue).toHaveLength(0); + expect(unstructOf(eventQueue[0], 'create_element')).toBeDefined(); + expect(entityOf(eventQueue[0], 'element')).toHaveLength(1); + }); + }); + }); + + describe('endElementTracking', () => { + it('untracks by id', () => { + startElementTracking({ + elements: { + id: 'test', + selector: 'div', + expose: false, + create: true, + }, + }); + + endElementTracking({ elementIds: ['test'] }); + + const div = document.createElement('div'); + document.body.appendChild(div); + + return inNewTask(() => { + expect(eventQueue).toHaveLength(0); + }); + }); + + it('untracks by name', () => { + startElementTracking({ + elements: [ + { + selector: 'div', + expose: false, + create: true, + }, + { + selector: 'span', + expose: false, + create: true, + }, + ], + }); + + endElementTracking({ elements: ['span'] }); + + for (const nodeName of ['div', 'span']) { + const element = document.createElement(nodeName); + document.body.appendChild(element); + } + + return inNewTask(() => { + expect(eventQueue).toHaveLength(1); + }); + }); + + it('untracks by filter', () => { + startElementTracking({ + elements: [ + { + selector: 'div', + expose: false, + create: true, + }, + { + selector: 'span', + expose: false, + create: true, + }, + ], + }); + + endElementTracking({ filter: (config) => config.create.when === 'always' }); + + for (const nodeName of ['div', 'span']) { + const element = document.createElement(nodeName); + document.body.appendChild(element); + } + + return inNewTask(() => { + expect(eventQueue).toHaveLength(0); + }); + }); + }); + + describe('intersectionCallback position fallback', () => { + let intersectionCallback: IntersectionObserverCallback; + + beforeAll(() => { + // Mock IntersectionObserver to capture the callback + (globalThis as any).IntersectionObserver = class { + constructor(cb: IntersectionObserverCallback) { + intersectionCallback = cb; + } + observe() {} + unobserve() {} + disconnect() {} + }; + }); + + afterAll(() => { + delete (globalThis as any).IntersectionObserver; + }); + + it('uses last-known position when element is no longer in DOM during intersection callback', () => { + // Create two matching elements so position > 1 is testable + const div1 = document.createElement('div'); + div1.classList.add('disappearing'); + document.body.appendChild(div1); + + const div2 = document.createElement('div'); + div2.classList.add('disappearing'); + document.body.appendChild(div2); + + startElementTracking({ + elements: { + selector: '.disappearing', + expose: true, + }, + }); + + // Remove div2 from DOM before firing intersection + document.body.removeChild(div2); + + // Simulate intersection callback for the now-removed div2 + const fakeEntry = { + target: div2, + isIntersecting: true, + intersectionRatio: 1, + intersectionRect: { height: 100, width: 100 } as DOMRect, + boundingClientRect: { x: 0, y: 0, width: 100, height: 100 } as DOMRect, + rootBounds: null, + time: performance.now(), + } as IntersectionObserverEntry; + + intersectionCallback([fakeEntry], { + unobserve() {}, + observe() {}, + disconnect() {}, + } as unknown as IntersectionObserver); + + return inNewTask(() => { + expect(eventQueue.length).toBeGreaterThanOrEqual(1); + + const exposeEvent = eventQueue.find((e) => unstructOf(e, 'expose_element')); + expect(exposeEvent).toBeDefined(); + + const elementEntities = entityOf(exposeEvent!, 'element') as Record[]; + expect(elementEntities).toBeDefined(); + expect(elementEntities.length).toBeGreaterThanOrEqual(1); + + // element_index must be >= 1, never 0 + const elementEntity = elementEntities[0]; + expect(elementEntity.element_index).toBeGreaterThanOrEqual(1); + }); + }); + }); +}); diff --git a/plugins/browser-plugin-element-tracking/test/components.test.ts b/plugins/browser-plugin-element-tracking/test/components.test.ts new file mode 100644 index 000000000..6dabfb996 --- /dev/null +++ b/plugins/browser-plugin-element-tracking/test/components.test.ts @@ -0,0 +1,43 @@ +import { baseComponentGenerator } from '../src/components'; +import { Entities } from '../src/schemata'; +import { Configuration } from '../src/configuration'; + +describe('component detection', () => { + let container: HTMLElement; + const config: Configuration = { + name: 'template', + selector: 'body', + shadowOnly: false, + component: true, + context: () => [], + trackers: [], + create: { when: 'never' }, + destroy: { when: 'never' }, + expose: { when: 'never', minPercentage: 0, boundaryPixels: 0, minSize: 0, minTimeMillis: 0 }, + obscure: { when: 'never' }, + state: 0, + details: [], + contents: [], + includeStats: [], + }; + + beforeAll(() => { + container = document.createElement('div'); + document.body.appendChild(container); + }); + + it('no-ops without target element', () => { + expect(baseComponentGenerator(true, [config])).toBeNull(); + }); + + it('finds components from child target', () => { + expect(baseComponentGenerator(false, [config], container)).toEqual({ + schema: Entities.COMPONENT_PARENTS, + data: { + component_list: [config.name], + }, + }); + + expect(baseComponentGenerator(true, [config], container)).toHaveLength(2); + }); +}); diff --git a/plugins/browser-plugin-element-tracking/test/configuration.test.ts b/plugins/browser-plugin-element-tracking/test/configuration.test.ts new file mode 100644 index 000000000..b1818d1de --- /dev/null +++ b/plugins/browser-plugin-element-tracking/test/configuration.test.ts @@ -0,0 +1,128 @@ +import { + Configuration, + type ContextProvider, + ElementConfiguration, + checkConfig, + createContextMerger, +} from '../src/configuration'; + +describe('configuration parsing', () => { + const emptyMerger = createContextMerger(); + + // Accept valid configs + it.each<{ note: string; input: ElementConfiguration; expected?: Partial }>([ + { + note: 'minimal configuration', + input: { selector: '.oncreate' }, + }, + { + note: 'use selector when no name', + input: { selector: 'unnamed' }, + expected: { selector: 'unnamed', name: 'unnamed' }, + }, + { + note: 'custom name', + input: { selector: '.selector', name: 'named' }, + expected: { selector: '.selector', name: 'named' }, + }, + { + note: 'default event frequencies', + input: { selector: 'unnamed' }, + expected: { + create: { when: 'never' }, + destroy: { when: 'never' }, + expose: { when: 'always', boundaryPixels: 0, minPercentage: 0, minSize: 0, minTimeMillis: 0 }, + obscure: { when: 'never' }, + component: false, + contents: [], + details: [], + }, + }, + { + note: 'custom frequencies', + input: { selector: 'unnamed', expose: false, create: true }, + expected: { + create: { when: 'always' }, + expose: { when: 'never', boundaryPixels: 0, minPercentage: 0, minSize: 0, minTimeMillis: 0 }, + }, + }, + { + note: 'mis-cased frequencies', + input: { selector: 'unnamed', create: { when: 'ALWAYs' as any }, expose: { when: 'Never' as any } }, + expected: { + create: { when: 'always' }, + expose: { when: 'never' } as any, + }, + }, + { + note: 'context provider', + input: { selector: 'unnamed', context: [] }, + expected: { + context: emptyMerger as Extract, + }, + }, + { + note: 'contents recursion', + input: { selector: 'unnamed', contents: { selector: 'inner' } }, + }, + ])('accepts valid config: $note', ({ input, expected }) => { + const result = checkConfig(input, emptyMerger, true, true); + expect(result).toBeDefined(); + if (expected) expect(result).toMatchObject(expected); + }); + + // Reject invalid configs + it.each<{ note: string; input: ElementConfiguration }>([ + { + note: 'invalid name', + input: { selector: 'a', name: '' }, + }, + { + note: 'empty selector', + input: { selector: '' }, + }, + { + note: 'invalid selector', + input: { selector: ':asdf' }, + }, + { + note: 'mistyped selector', + input: { selector: 1 as any }, + }, + { + note: 'good name, bad selector', + input: { selector: '', name: 'named' }, + }, + { + note: 'bad expose condition', + input: { selector: '.good', name: 'named', expose: { condition: {} } as any }, + }, + { + note: 'bad other condition', + input: { selector: '.good', name: 'named', create: { condition: true } as any }, + }, + { + note: 'bad expose frequency', + input: { selector: '.good', name: 'named', expose: { when: 'fail' } }, + }, + { + note: 'bad other frequency', + input: { selector: '.good', name: 'named', create: { when: 'fail' } }, + }, + { + note: 'bad boundaries', + input: { selector: '.good', name: 'named', expose: { when: 'always', boundaryPixels: '1em' } }, + }, + { + note: 'bad details request', + input: { selector: '.good', name: 'named', details: {} as any }, + }, + ])('rejects invalid config: $note', ({ input }) => { + expect.hasAssertions(); + try { + checkConfig(input, emptyMerger, true, true); + } catch (e) { + expect(e).toBeDefined(); + } + }); +}); diff --git a/plugins/browser-plugin-element-tracking/test/data.test.ts b/plugins/browser-plugin-element-tracking/test/data.test.ts new file mode 100644 index 000000000..cb0b2552a --- /dev/null +++ b/plugins/browser-plugin-element-tracking/test/data.test.ts @@ -0,0 +1,139 @@ +import { evaluateDataSelector, extractSelectorDetails, isDataSelector } from '../src/data'; +import type { DataSelector } from '../src/types'; + +describe('DataSelector behavior', () => { + const fake_selector = 'css_path_val'; + let elem: HTMLDivElement; + + beforeAll(() => { + // sample element we'll be selecting from + elem = document.createElement('div'); + + elem.textContent = 'text_content_val\n'; + elem.setAttribute('id', 'id_attr'); + elem.className = 'class_prop'; + elem.dataset.dsAttr = 'ds_val'; + + const child = document.createElement('span'); + child.textContent = 'child_text_val'; + elem.appendChild(child); + }); + + it.each([ + ['attributes', ['id'], 'id_attr'], + ['properties', ['className'], 'class_prop'], + ['dataset', ['dsAttr'], 'ds_val'], + ['child_text', { inner: 'span' }, 'child_text_val'], + ['content', { inner: 'text_content\\S+' }, 'text_content_val'], + ['selector', true, fake_selector], + ])('extracts %p', (source, params, value) => { + const selector = { [source]: params } as DataSelector; + expect(isDataSelector(selector)).toBe(true); + + const result = evaluateDataSelector(elem, fake_selector, selector); + + const expected = Array.isArray(params) ? params : params === true ? [source] : Object.keys(params); + + expect(result).toEqual( + expected.map((attribute) => ({ + source, + attribute, + value, + })) + ); + }); + + it('handles callbacks', () => { + const sel = jest.fn().mockReturnValueOnce({ attribute: 'value', complex: { nested: 'data' } }); + + expect(isDataSelector(sel)).toBe(true); + + const result = evaluateDataSelector(elem, fake_selector, sel); + + expect(sel).toBeCalledWith(elem); + expect(result).toEqual([ + { + source: 'callback', + attribute: 'attribute', + value: 'value', + }, + { + source: 'callback', + attribute: 'complex', + value: '{"nested":"data"}', + }, + ]); + }); + + it('handles callback failures', () => { + const sel = jest.fn, Element[]>(() => { + throw new Error('deliberate failure'); + }); + + expect(isDataSelector(sel)).toBe(true); + + const result = evaluateDataSelector(elem, fake_selector, sel); + + expect(sel).toBeCalledWith(elem); + expect(result).toEqual([ + { + source: 'error', + attribute: 'message', + value: 'deliberate failure', + }, + ]); + }); + + it('flattens correctly', () => { + const result = extractSelectorDetails(elem, fake_selector, [ + { attributes: ['id'] }, + { properties: ['className'] }, + { properties: ['DOES_NOT_EXIST'] }, + ]); + + expect(result).toHaveLength(2); + }); + + it('doesnt mix properties and attributes', () => { + const result = evaluateDataSelector(elem, fake_selector, { + attributes: ['className', 'class'], + properties: ['className', 'class'], + }); + + expect(result).toHaveLength(2); + + expect(result).toContainEqual({ + source: 'properties', + attribute: 'className', + value: 'class_prop', + }); + + expect(result).toContainEqual({ + source: 'attributes', + attribute: 'class', + value: 'class_prop', + }); + }); + + it('produces successful matches', () => { + const result = evaluateDataSelector(elem, fake_selector, { + attributes: ['id'], + match: { id: 'id_attr' }, + }); + + expect(result).toHaveLength(1); + }); + + it('filters unsuccessful matches', () => { + const result = evaluateDataSelector(elem, fake_selector, { + attributes: ['id'], + match: { id: 'NOT_REAL_VALUE' }, + }); + + expect(result).toHaveLength(0); + }); + + it.each([null, {}, { notASelector: [] }])('ignores empty: %j', (invalid) => { + expect(isDataSelector(invalid)).toBe(false); + }); +}); diff --git a/plugins/browser-plugin-element-tracking/test/util.test.ts b/plugins/browser-plugin-element-tracking/test/util.test.ts new file mode 100644 index 000000000..6325ab74e --- /dev/null +++ b/plugins/browser-plugin-element-tracking/test/util.test.ts @@ -0,0 +1,246 @@ +import { defineBoundaries, getMatchingElements, nodeIsElement, shouldTrackExpose } from '../src/util'; +import type { Configuration } from '../src/configuration'; + +const TEMPLATE_CONFIG: Configuration = { + name: 'template', + selector: '', + shadowOnly: false, + component: false, + context: () => [], + trackers: [], + create: { when: 'never' }, + destroy: { when: 'never' }, + expose: { when: 'never', minPercentage: 0, boundaryPixels: 0, minSize: 0, minTimeMillis: 0 }, + obscure: { when: 'never' }, + state: 0, + details: [], + contents: [], + includeStats: [], +}; + +const TEMPLATE_DOMRECT: DOMRectReadOnly = { + bottom: 0, + top: 0, + left: 0, + right: 0, + height: 0, + width: 0, + x: 0, + y: 0, + toJSON() {}, +}; + +const TEMPLATE_INTERSECTION: IntersectionObserverEntry = { + time: 0, + isIntersecting: true, + target: document.body, + rootBounds: null, + boundingClientRect: TEMPLATE_DOMRECT, + intersectionRatio: 0, + intersectionRect: TEMPLATE_DOMRECT, +}; + +describe('utils', () => { + describe('defineBoundaries', () => { + it.each([ + [0, [0, 0, 0, 0]], + [1, [1, 1, 1, 1]], + [[0, 1] as [number, number], [0, 1, 0, 1]], + [[2, 2, 2, 2] as [number, number, number, number], [2, 2, 2, 2]], + [[2, 2, 2] as any as [number, number, number, number], [0, 0, 0, 0]], // silent error + [{} as any as number, [0, 0, 0, 0]], // silent error + ])('interprets: %j', (provided, expected) => { + const [boundTop, boundRight, boundBottom, boundLeft] = expected; + expect(defineBoundaries(provided)).toEqual({ + boundTop, + boundRight, + boundBottom, + boundLeft, + }); + }); + }); + + describe('getMatchingElements', () => { + it('queries for nodes', () => { + const config: Configuration = { ...TEMPLATE_CONFIG, selector: 'body' }; + const results = getMatchingElements(config); + expect(results).toHaveLength(1); + expect(results[0]).toBe(document.body); + expect(nodeIsElement(results[0])).toBe(true); + + const explicitTarget = getMatchingElements(config, document); + expect(results).toEqual(explicitTarget); + }); + + describe('shadow host support', () => { + const elements: Element[] = []; + const config: Configuration = { ...TEMPLATE_CONFIG, selector: 'span' }; + + beforeAll(() => { + const host = document.createElement('div'); + host.id = 'shadowHost'; + const shadow = host.attachShadow({ mode: 'open' }); + document.body.appendChild(host); + + for (let i = 5; i > 0; i--) { + const el = document.createElement('span'); + shadow.appendChild(el); + elements.push(el); + } + }); + + afterAll(() => { + document.body.replaceChildren(); + }); + + it('should not find from shadow roots by default', () => { + expect(getMatchingElements(config)).toHaveLength(0); + }); + + it('should descend shadow hosts matching shadowSelector', () => { + const shadowConfig: Configuration = { + ...config, + shadowSelector: '#shadowHost', + }; + + expect(getMatchingElements(shadowConfig)).toEqual(elements); + }); + + it('should respect shadowOnly setting', () => { + const shadowConfig: Configuration = { + ...config, + shadowSelector: '#shadowHost', + shadowOnly: false, + }; + + let results = getMatchingElements(shadowConfig); + + expect(results).toEqual(elements); + + // with shadowOnly: false, should find a non-shadow span, too + const addition = document.createElement('span'); + document.body.appendChild(addition); + + results = getMatchingElements(shadowConfig); + expect(results).not.toEqual(elements); + expect(results).toHaveLength(elements.length + 1); + expect(results).toEqual(elements.concat([addition])); + + // with shadowOnly: true, should ignore the non-shadow span + results = getMatchingElements({ ...shadowConfig, shadowOnly: true }); + expect(results).toEqual(elements); + }); + + it('should find nested shadow targets', () => { + const shadowConfig: Configuration = { + ...config, + shadowSelector: '#shadowHost', + shadowOnly: true, + }; + + let results = getMatchingElements(shadowConfig); + + expect(results).toEqual(elements); + + const host = document.querySelector('#shadowHost')!.shadowRoot!; + const addition = document.createElement('span'); + host.appendChild(addition); + + results = getMatchingElements(shadowConfig); + expect(results).not.toEqual(elements); + expect(results).toHaveLength(elements.length + 1); + expect(results).toEqual(elements.concat([addition])); + }); + }); + }); + + describe('shouldTrackExpose', () => { + it.each([ + ['frequency: never', { when: 'never' as const }, {}, false], + ['not intersecting', { when: 'always' as const }, { isIntersecting: false }, false], + ['intersecting', { when: 'always' as const }, { isIntersecting: true }, true], + ['zero-size', { when: 'always' as const, minSize: 1 }, { isIntersecting: true }, false], + [ + 'partial view', + { when: 'always' as const, minPercentage: 1 }, + { + intersectionRatio: (100 * 100) / (200 * 200), + intersectionRect: { ...TEMPLATE_DOMRECT, width: 100, height: 100 }, + boundingClientRect: { ...TEMPLATE_DOMRECT, width: 200, height: 200 }, + }, + false, + ], + [ + 'sufficent view', + { when: 'always' as const, minPercentage: (200 * 160) / (200 * 200) }, + { + intersectionRatio: (200 * 160) / (200 * 200), + intersectionRect: { ...TEMPLATE_DOMRECT, width: 200, height: 160 }, + boundingClientRect: { ...TEMPLATE_DOMRECT, width: 200, height: 200 }, + }, + true, + ], + [ + 'insufficent view', + { when: 'always' as const, minPercentage: (200 * 160) / (200 * 200) }, + { + intersectionRatio: (200 * 159) / (200 * 200), + intersectionRect: { ...TEMPLATE_DOMRECT, width: 200, height: 159 }, + boundingClientRect: { ...TEMPLATE_DOMRECT, width: 200, height: 200 }, + }, + false, + ], + [ + 'shrunken element', + { when: 'always' as const, minPercentage: (200 * 160) / (200 * 200), boundaryPixels: -100 }, + { + intersectionRatio: (200 * 159) / (200 * 200), + intersectionRect: { ...TEMPLATE_DOMRECT, width: 200, height: 159 }, + boundingClientRect: { ...TEMPLATE_DOMRECT, width: 200, height: 200 }, + }, + true, + ], + [ + 'enlarged element - possible', + { when: 'always' as const, minPercentage: 0.1, boundaryPixels: 100 }, + { + intersectionRatio: (200 * 200) / (200 * 200), + intersectionRect: { ...TEMPLATE_DOMRECT, width: 200, height: 200 }, + boundingClientRect: { ...TEMPLATE_DOMRECT, width: 200, height: 200 }, + }, + true, + ], + [ + 'enlarged element - impossible', + { when: 'always' as const, minPercentage: 1, boundaryPixels: 100 }, + { + intersectionRatio: (200 * 200) / (200 * 200), + intersectionRect: { ...TEMPLATE_DOMRECT, width: 200, height: 200 }, + boundingClientRect: { ...TEMPLATE_DOMRECT, width: 200, height: 200 }, + }, + false, + ], + ])( + '%s', + ( + _: string, + expose: Partial, + entry: Partial, + shouldPass: boolean + ) => { + expect( + shouldTrackExpose( + { + ...TEMPLATE_CONFIG, + expose: { ...TEMPLATE_CONFIG.expose, ...expose }, + }, + { + ...TEMPLATE_INTERSECTION, + ...entry, + } + ) + ).toBe(shouldPass); + } + ); + }); +}); diff --git a/plugins/browser-plugin-element-tracking/tsconfig.json b/plugins/browser-plugin-element-tracking/tsconfig.json new file mode 100644 index 000000000..4082f16a5 --- /dev/null +++ b/plugins/browser-plugin-element-tracking/tsconfig.json @@ -0,0 +1,3 @@ +{ + "extends": "../../tsconfig.json" +} diff --git a/plugins/browser-plugin-enhanced-consent/CHANGELOG.json b/plugins/browser-plugin-enhanced-consent/CHANGELOG.json index 6ae0937c1..2680d876b 100644 --- a/plugins/browser-plugin-enhanced-consent/CHANGELOG.json +++ b/plugins/browser-plugin-enhanced-consent/CHANGELOG.json @@ -1,6 +1,120 @@ { "name": "@snowplow/browser-plugin-enhanced-consent", "entries": [ + { + "version": "4.10.0", + "tag": "@snowplow/browser-plugin-enhanced-consent_v4.10.0", + "date": "Mon, 27 Jul 2026 13:52:14 GMT", + "comments": {} + }, + { + "version": "4.9.0", + "tag": "@snowplow/browser-plugin-enhanced-consent_v4.9.0", + "date": "Tue, 21 Jul 2026 14:53:08 GMT", + "comments": {} + }, + { + "version": "4.8.4", + "tag": "@snowplow/browser-plugin-enhanced-consent_v4.8.4", + "date": "Thu, 02 Jul 2026 10:07:52 GMT", + "comments": {} + }, + { + "version": "4.8.3", + "tag": "@snowplow/browser-plugin-enhanced-consent_v4.8.3", + "date": "Tue, 30 Jun 2026 14:22:03 GMT", + "comments": { + "none": [ + { + "comment": "Update uuid to v11 and remove closure-compiler from the build pipeline" + } + ] + } + }, + { + "version": "4.8.2", + "tag": "@snowplow/browser-plugin-enhanced-consent_v4.8.2", + "date": "Wed, 17 Jun 2026 12:30:12 GMT", + "comments": {} + }, + { + "version": "4.8.1", + "tag": "@snowplow/browser-plugin-enhanced-consent_v4.8.1", + "date": "Wed, 13 May 2026 09:26:05 GMT", + "comments": {} + }, + { + "version": "4.8.0", + "tag": "@snowplow/browser-plugin-enhanced-consent_v4.8.0", + "date": "Tue, 28 Apr 2026 07:56:22 GMT", + "comments": {} + }, + { + "version": "4.7.0", + "tag": "@snowplow/browser-plugin-enhanced-consent_v4.7.0", + "date": "Wed, 01 Apr 2026 12:59:29 GMT", + "comments": {} + }, + { + "version": "4.6.9", + "tag": "@snowplow/browser-plugin-enhanced-consent_v4.6.9", + "date": "Mon, 16 Mar 2026 15:43:06 GMT", + "comments": {} + }, + { + "version": "4.6.8", + "tag": "@snowplow/browser-plugin-enhanced-consent_v4.6.8", + "date": "Tue, 28 Oct 2025 09:46:42 GMT", + "comments": {} + }, + { + "version": "4.6.7", + "tag": "@snowplow/browser-plugin-enhanced-consent_v4.6.7", + "date": "Tue, 07 Oct 2025 14:53:36 GMT", + "comments": {} + }, + { + "version": "4.6.6", + "tag": "@snowplow/browser-plugin-enhanced-consent_v4.6.6", + "date": "Tue, 26 Aug 2025 08:42:27 GMT", + "comments": {} + }, + { + "version": "4.6.5", + "tag": "@snowplow/browser-plugin-enhanced-consent_v4.6.5", + "date": "Wed, 25 Jun 2025 21:16:46 GMT", + "comments": {} + }, + { + "version": "4.6.4", + "tag": "@snowplow/browser-plugin-enhanced-consent_v4.6.4", + "date": "Wed, 25 Jun 2025 12:08:50 GMT", + "comments": {} + }, + { + "version": "4.6.3", + "tag": "@snowplow/browser-plugin-enhanced-consent_v4.6.3", + "date": "Thu, 29 May 2025 19:52:07 GMT", + "comments": {} + }, + { + "version": "4.6.2", + "tag": "@snowplow/browser-plugin-enhanced-consent_v4.6.2", + "date": "Tue, 20 May 2025 07:39:05 GMT", + "comments": {} + }, + { + "version": "4.6.1", + "tag": "@snowplow/browser-plugin-enhanced-consent_v4.6.1", + "date": "Tue, 06 May 2025 13:10:51 GMT", + "comments": {} + }, + { + "version": "4.6.0", + "tag": "@snowplow/browser-plugin-enhanced-consent_v4.6.0", + "date": "Thu, 01 May 2025 09:58:59 GMT", + "comments": {} + }, { "version": "4.5.0", "tag": "@snowplow/browser-plugin-enhanced-consent_v4.5.0", diff --git a/plugins/browser-plugin-enhanced-consent/CHANGELOG.md b/plugins/browser-plugin-enhanced-consent/CHANGELOG.md index fdddefd4f..1afa17057 100644 --- a/plugins/browser-plugin-enhanced-consent/CHANGELOG.md +++ b/plugins/browser-plugin-enhanced-consent/CHANGELOG.md @@ -1,6 +1,98 @@ # Change Log - @snowplow/browser-plugin-enhanced-consent -This log was last generated on Fri, 04 Apr 2025 09:21:23 GMT and should not be manually modified. +This log was last generated on Mon, 27 Jul 2026 13:52:14 GMT and should not be manually modified. + +## 4.10.0 +Mon, 27 Jul 2026 13:52:14 GMT + +_Version update only_ + +## 4.9.0 +Tue, 21 Jul 2026 14:53:08 GMT + +_Version update only_ + +## 4.8.4 +Thu, 02 Jul 2026 10:07:52 GMT + +_Version update only_ + +## 4.8.3 +Tue, 30 Jun 2026 14:22:03 GMT + +### Updates + +- Update uuid to v11 and remove closure-compiler from the build pipeline + +## 4.8.2 +Wed, 17 Jun 2026 12:30:12 GMT + +_Version update only_ + +## 4.8.1 +Wed, 13 May 2026 09:26:05 GMT + +_Version update only_ + +## 4.8.0 +Tue, 28 Apr 2026 07:56:22 GMT + +_Version update only_ + +## 4.7.0 +Wed, 01 Apr 2026 12:59:29 GMT + +_Version update only_ + +## 4.6.9 +Mon, 16 Mar 2026 15:43:06 GMT + +_Version update only_ + +## 4.6.8 +Tue, 28 Oct 2025 09:46:42 GMT + +_Version update only_ + +## 4.6.7 +Tue, 07 Oct 2025 14:53:36 GMT + +_Version update only_ + +## 4.6.6 +Tue, 26 Aug 2025 08:42:27 GMT + +_Version update only_ + +## 4.6.5 +Wed, 25 Jun 2025 21:16:46 GMT + +_Version update only_ + +## 4.6.4 +Wed, 25 Jun 2025 12:08:50 GMT + +_Version update only_ + +## 4.6.3 +Thu, 29 May 2025 19:52:07 GMT + +_Version update only_ + +## 4.6.2 +Tue, 20 May 2025 07:39:05 GMT + +_Version update only_ + +## 4.6.1 +Tue, 06 May 2025 13:10:51 GMT + +_Version update only_ + +## 4.6.0 +Thu, 01 May 2025 09:58:59 GMT + +_Version update only_ ## 4.5.0 Fri, 04 Apr 2025 09:21:23 GMT diff --git a/plugins/browser-plugin-enhanced-consent/package.json b/plugins/browser-plugin-enhanced-consent/package.json index a6b5f98d1..c3ebfc814 100644 --- a/plugins/browser-plugin-enhanced-consent/package.json +++ b/plugins/browser-plugin-enhanced-consent/package.json @@ -1,6 +1,6 @@ { "name": "@snowplow/browser-plugin-enhanced-consent", - "version": "4.5.0", + "version": "4.10.0", "description": "Consent tracking for Snowplow", "bugs": "https://github.com/snowplow/snowplow-javascript-tracker/issues", "repository": { @@ -26,7 +26,6 @@ "tslib": "^2.3.1" }, "devDependencies": { - "@ampproject/rollup-plugin-closure-compiler": "~0.27.0", "@rollup/plugin-commonjs": "~21.0.2", "@rollup/plugin-node-resolve": "~13.1.3", "@types/jest": "~28.1.1", @@ -49,6 +48,6 @@ "typescript": "~4.6.2" }, "peerDependencies": { - "@snowplow/browser-tracker": "~4.5.0" + "@snowplow/browser-tracker": "~4.10.0" } } diff --git a/plugins/browser-plugin-enhanced-consent/rollup.config.js b/plugins/browser-plugin-enhanced-consent/rollup.config.js index 93b14595b..fc20df5fe 100644 --- a/plugins/browser-plugin-enhanced-consent/rollup.config.js +++ b/plugins/browser-plugin-enhanced-consent/rollup.config.js @@ -32,7 +32,6 @@ import { nodeResolve } from '@rollup/plugin-node-resolve'; import commonjs from '@rollup/plugin-commonjs'; import ts from 'rollup-plugin-ts'; // Prefered over @rollup/plugin-typescript as it bundles .d.ts files import { banner } from '../../banner'; -import compiler from '@ampproject/rollup-plugin-closure-compiler'; import { terser } from 'rollup-plugin-terser'; import cleanup from 'rollup-plugin-cleanup'; import pkg from './package.json'; @@ -51,7 +50,7 @@ export default [ }, { input: './src/index.ts', - plugins: [...umdPlugins, compiler(), terser(), cleanup({ comments: 'none' }), banner()], + plugins: [...umdPlugins, terser(), cleanup({ comments: 'none' }), banner()], treeshake: { moduleSideEffects: ['sha1'] }, output: [{ file: pkg.main.replace('.js', '.min.js'), format: 'umd', sourcemap: true, name: umdName }], }, diff --git a/plugins/browser-plugin-enhanced-ecommerce/CHANGELOG.json b/plugins/browser-plugin-enhanced-ecommerce/CHANGELOG.json index dd0084f61..84c61b885 100644 --- a/plugins/browser-plugin-enhanced-ecommerce/CHANGELOG.json +++ b/plugins/browser-plugin-enhanced-ecommerce/CHANGELOG.json @@ -1,6 +1,120 @@ { "name": "@snowplow/browser-plugin-enhanced-ecommerce", "entries": [ + { + "version": "4.10.0", + "tag": "@snowplow/browser-plugin-enhanced-ecommerce_v4.10.0", + "date": "Mon, 27 Jul 2026 13:52:14 GMT", + "comments": {} + }, + { + "version": "4.9.0", + "tag": "@snowplow/browser-plugin-enhanced-ecommerce_v4.9.0", + "date": "Tue, 21 Jul 2026 14:53:08 GMT", + "comments": {} + }, + { + "version": "4.8.4", + "tag": "@snowplow/browser-plugin-enhanced-ecommerce_v4.8.4", + "date": "Thu, 02 Jul 2026 10:07:52 GMT", + "comments": {} + }, + { + "version": "4.8.3", + "tag": "@snowplow/browser-plugin-enhanced-ecommerce_v4.8.3", + "date": "Tue, 30 Jun 2026 14:22:03 GMT", + "comments": { + "none": [ + { + "comment": "Update uuid to v11 and remove closure-compiler from the build pipeline" + } + ] + } + }, + { + "version": "4.8.2", + "tag": "@snowplow/browser-plugin-enhanced-ecommerce_v4.8.2", + "date": "Wed, 17 Jun 2026 12:30:12 GMT", + "comments": {} + }, + { + "version": "4.8.1", + "tag": "@snowplow/browser-plugin-enhanced-ecommerce_v4.8.1", + "date": "Wed, 13 May 2026 09:26:05 GMT", + "comments": {} + }, + { + "version": "4.8.0", + "tag": "@snowplow/browser-plugin-enhanced-ecommerce_v4.8.0", + "date": "Tue, 28 Apr 2026 07:56:22 GMT", + "comments": {} + }, + { + "version": "4.7.0", + "tag": "@snowplow/browser-plugin-enhanced-ecommerce_v4.7.0", + "date": "Wed, 01 Apr 2026 12:59:29 GMT", + "comments": {} + }, + { + "version": "4.6.9", + "tag": "@snowplow/browser-plugin-enhanced-ecommerce_v4.6.9", + "date": "Mon, 16 Mar 2026 15:43:06 GMT", + "comments": {} + }, + { + "version": "4.6.8", + "tag": "@snowplow/browser-plugin-enhanced-ecommerce_v4.6.8", + "date": "Tue, 28 Oct 2025 09:46:42 GMT", + "comments": {} + }, + { + "version": "4.6.7", + "tag": "@snowplow/browser-plugin-enhanced-ecommerce_v4.6.7", + "date": "Tue, 07 Oct 2025 14:53:36 GMT", + "comments": {} + }, + { + "version": "4.6.6", + "tag": "@snowplow/browser-plugin-enhanced-ecommerce_v4.6.6", + "date": "Tue, 26 Aug 2025 08:42:27 GMT", + "comments": {} + }, + { + "version": "4.6.5", + "tag": "@snowplow/browser-plugin-enhanced-ecommerce_v4.6.5", + "date": "Wed, 25 Jun 2025 21:16:46 GMT", + "comments": {} + }, + { + "version": "4.6.4", + "tag": "@snowplow/browser-plugin-enhanced-ecommerce_v4.6.4", + "date": "Wed, 25 Jun 2025 12:08:50 GMT", + "comments": {} + }, + { + "version": "4.6.3", + "tag": "@snowplow/browser-plugin-enhanced-ecommerce_v4.6.3", + "date": "Thu, 29 May 2025 19:52:07 GMT", + "comments": {} + }, + { + "version": "4.6.2", + "tag": "@snowplow/browser-plugin-enhanced-ecommerce_v4.6.2", + "date": "Tue, 20 May 2025 07:39:05 GMT", + "comments": {} + }, + { + "version": "4.6.1", + "tag": "@snowplow/browser-plugin-enhanced-ecommerce_v4.6.1", + "date": "Tue, 06 May 2025 13:10:51 GMT", + "comments": {} + }, + { + "version": "4.6.0", + "tag": "@snowplow/browser-plugin-enhanced-ecommerce_v4.6.0", + "date": "Thu, 01 May 2025 09:58:59 GMT", + "comments": {} + }, { "version": "4.5.0", "tag": "@snowplow/browser-plugin-enhanced-ecommerce_v4.5.0", diff --git a/plugins/browser-plugin-enhanced-ecommerce/CHANGELOG.md b/plugins/browser-plugin-enhanced-ecommerce/CHANGELOG.md index 816c61f59..df0fafd2d 100644 --- a/plugins/browser-plugin-enhanced-ecommerce/CHANGELOG.md +++ b/plugins/browser-plugin-enhanced-ecommerce/CHANGELOG.md @@ -1,6 +1,98 @@ # Change Log - @snowplow/browser-plugin-enhanced-ecommerce -This log was last generated on Fri, 04 Apr 2025 09:21:23 GMT and should not be manually modified. +This log was last generated on Mon, 27 Jul 2026 13:52:14 GMT and should not be manually modified. + +## 4.10.0 +Mon, 27 Jul 2026 13:52:14 GMT + +_Version update only_ + +## 4.9.0 +Tue, 21 Jul 2026 14:53:08 GMT + +_Version update only_ + +## 4.8.4 +Thu, 02 Jul 2026 10:07:52 GMT + +_Version update only_ + +## 4.8.3 +Tue, 30 Jun 2026 14:22:03 GMT + +### Updates + +- Update uuid to v11 and remove closure-compiler from the build pipeline + +## 4.8.2 +Wed, 17 Jun 2026 12:30:12 GMT + +_Version update only_ + +## 4.8.1 +Wed, 13 May 2026 09:26:05 GMT + +_Version update only_ + +## 4.8.0 +Tue, 28 Apr 2026 07:56:22 GMT + +_Version update only_ + +## 4.7.0 +Wed, 01 Apr 2026 12:59:29 GMT + +_Version update only_ + +## 4.6.9 +Mon, 16 Mar 2026 15:43:06 GMT + +_Version update only_ + +## 4.6.8 +Tue, 28 Oct 2025 09:46:42 GMT + +_Version update only_ + +## 4.6.7 +Tue, 07 Oct 2025 14:53:36 GMT + +_Version update only_ + +## 4.6.6 +Tue, 26 Aug 2025 08:42:27 GMT + +_Version update only_ + +## 4.6.5 +Wed, 25 Jun 2025 21:16:46 GMT + +_Version update only_ + +## 4.6.4 +Wed, 25 Jun 2025 12:08:50 GMT + +_Version update only_ + +## 4.6.3 +Thu, 29 May 2025 19:52:07 GMT + +_Version update only_ + +## 4.6.2 +Tue, 20 May 2025 07:39:05 GMT + +_Version update only_ + +## 4.6.1 +Tue, 06 May 2025 13:10:51 GMT + +_Version update only_ + +## 4.6.0 +Thu, 01 May 2025 09:58:59 GMT + +_Version update only_ ## 4.5.0 Fri, 04 Apr 2025 09:21:23 GMT diff --git a/plugins/browser-plugin-enhanced-ecommerce/package.json b/plugins/browser-plugin-enhanced-ecommerce/package.json index ce669f289..4717fed7d 100644 --- a/plugins/browser-plugin-enhanced-ecommerce/package.json +++ b/plugins/browser-plugin-enhanced-ecommerce/package.json @@ -1,6 +1,6 @@ { "name": "@snowplow/browser-plugin-enhanced-ecommerce", - "version": "4.5.0", + "version": "4.10.0", "description": "Enhanced Ecommerce tracking for Snowplow", "homepage": "http://bit.ly/sp-js", "bugs": "https://github.com/snowplow/snowplow-javascript-tracker/issues", @@ -27,7 +27,6 @@ "tslib": "^2.3.1" }, "devDependencies": { - "@ampproject/rollup-plugin-closure-compiler": "~0.27.0", "@rollup/plugin-commonjs": "~21.0.2", "@rollup/plugin-node-resolve": "~13.1.3", "@types/jest": "~28.1.1", @@ -50,6 +49,6 @@ "typescript": "~4.6.2" }, "peerDependencies": { - "@snowplow/browser-tracker": "~4.5.0" + "@snowplow/browser-tracker": "~4.10.0" } } diff --git a/plugins/browser-plugin-enhanced-ecommerce/rollup.config.js b/plugins/browser-plugin-enhanced-ecommerce/rollup.config.js index f6bc4733e..fe36add47 100644 --- a/plugins/browser-plugin-enhanced-ecommerce/rollup.config.js +++ b/plugins/browser-plugin-enhanced-ecommerce/rollup.config.js @@ -32,7 +32,6 @@ import { nodeResolve } from '@rollup/plugin-node-resolve'; import commonjs from '@rollup/plugin-commonjs'; import ts from 'rollup-plugin-ts'; // Prefered over @rollup/plugin-typescript as it bundles .d.ts files import { banner } from '../../banner'; -import compiler from '@ampproject/rollup-plugin-closure-compiler'; import { terser } from 'rollup-plugin-terser'; import cleanup from 'rollup-plugin-cleanup'; import pkg from './package.json'; @@ -51,7 +50,7 @@ export default [ }, { input: './src/index.ts', - plugins: [...umdPlugins, compiler(), terser(), cleanup({ comments: 'none' }), banner()], + plugins: [...umdPlugins, terser(), cleanup({ comments: 'none' }), banner()], treeshake: { moduleSideEffects: ['sha1'] }, output: [{ file: pkg.main.replace('.js', '.min.js'), format: 'umd', sourcemap: true, name: umdName }], }, diff --git a/plugins/browser-plugin-error-tracking/CHANGELOG.json b/plugins/browser-plugin-error-tracking/CHANGELOG.json index 93778a2e7..2c7b5871b 100644 --- a/plugins/browser-plugin-error-tracking/CHANGELOG.json +++ b/plugins/browser-plugin-error-tracking/CHANGELOG.json @@ -1,6 +1,126 @@ { "name": "@snowplow/browser-plugin-error-tracking", "entries": [ + { + "version": "4.10.0", + "tag": "@snowplow/browser-plugin-error-tracking_v4.10.0", + "date": "Mon, 27 Jul 2026 13:52:14 GMT", + "comments": {} + }, + { + "version": "4.9.0", + "tag": "@snowplow/browser-plugin-error-tracking_v4.9.0", + "date": "Tue, 21 Jul 2026 14:53:08 GMT", + "comments": {} + }, + { + "version": "4.8.4", + "tag": "@snowplow/browser-plugin-error-tracking_v4.8.4", + "date": "Thu, 02 Jul 2026 10:07:52 GMT", + "comments": {} + }, + { + "version": "4.8.3", + "tag": "@snowplow/browser-plugin-error-tracking_v4.8.3", + "date": "Tue, 30 Jun 2026 14:22:03 GMT", + "comments": { + "none": [ + { + "comment": "Update uuid to v11 and remove closure-compiler from the build pipeline" + } + ] + } + }, + { + "version": "4.8.2", + "tag": "@snowplow/browser-plugin-error-tracking_v4.8.2", + "date": "Wed, 17 Jun 2026 12:30:12 GMT", + "comments": {} + }, + { + "version": "4.8.1", + "tag": "@snowplow/browser-plugin-error-tracking_v4.8.1", + "date": "Wed, 13 May 2026 09:26:05 GMT", + "comments": {} + }, + { + "version": "4.8.0", + "tag": "@snowplow/browser-plugin-error-tracking_v4.8.0", + "date": "Tue, 28 Apr 2026 07:56:22 GMT", + "comments": {} + }, + { + "version": "4.7.0", + "tag": "@snowplow/browser-plugin-error-tracking_v4.7.0", + "date": "Wed, 01 Apr 2026 12:59:29 GMT", + "comments": {} + }, + { + "version": "4.6.9", + "tag": "@snowplow/browser-plugin-error-tracking_v4.6.9", + "date": "Mon, 16 Mar 2026 15:43:06 GMT", + "comments": { + "none": [ + { + "comment": "Truncate fileName property in application_error events to max 1024 characters to avoid validation errors" + } + ] + } + }, + { + "version": "4.6.8", + "tag": "@snowplow/browser-plugin-error-tracking_v4.6.8", + "date": "Tue, 28 Oct 2025 09:46:42 GMT", + "comments": {} + }, + { + "version": "4.6.7", + "tag": "@snowplow/browser-plugin-error-tracking_v4.6.7", + "date": "Tue, 07 Oct 2025 14:53:36 GMT", + "comments": {} + }, + { + "version": "4.6.6", + "tag": "@snowplow/browser-plugin-error-tracking_v4.6.6", + "date": "Tue, 26 Aug 2025 08:42:27 GMT", + "comments": {} + }, + { + "version": "4.6.5", + "tag": "@snowplow/browser-plugin-error-tracking_v4.6.5", + "date": "Wed, 25 Jun 2025 21:16:46 GMT", + "comments": {} + }, + { + "version": "4.6.4", + "tag": "@snowplow/browser-plugin-error-tracking_v4.6.4", + "date": "Wed, 25 Jun 2025 12:08:50 GMT", + "comments": {} + }, + { + "version": "4.6.3", + "tag": "@snowplow/browser-plugin-error-tracking_v4.6.3", + "date": "Thu, 29 May 2025 19:52:07 GMT", + "comments": {} + }, + { + "version": "4.6.2", + "tag": "@snowplow/browser-plugin-error-tracking_v4.6.2", + "date": "Tue, 20 May 2025 07:39:05 GMT", + "comments": {} + }, + { + "version": "4.6.1", + "tag": "@snowplow/browser-plugin-error-tracking_v4.6.1", + "date": "Tue, 06 May 2025 13:10:51 GMT", + "comments": {} + }, + { + "version": "4.6.0", + "tag": "@snowplow/browser-plugin-error-tracking_v4.6.0", + "date": "Thu, 01 May 2025 09:58:59 GMT", + "comments": {} + }, { "version": "4.5.0", "tag": "@snowplow/browser-plugin-error-tracking_v4.5.0", diff --git a/plugins/browser-plugin-error-tracking/CHANGELOG.md b/plugins/browser-plugin-error-tracking/CHANGELOG.md index 43744c0d1..257e8f02d 100644 --- a/plugins/browser-plugin-error-tracking/CHANGELOG.md +++ b/plugins/browser-plugin-error-tracking/CHANGELOG.md @@ -1,6 +1,100 @@ # Change Log - @snowplow/browser-plugin-error-tracking -This log was last generated on Fri, 04 Apr 2025 09:21:23 GMT and should not be manually modified. +This log was last generated on Mon, 27 Jul 2026 13:52:14 GMT and should not be manually modified. + +## 4.10.0 +Mon, 27 Jul 2026 13:52:14 GMT + +_Version update only_ + +## 4.9.0 +Tue, 21 Jul 2026 14:53:08 GMT + +_Version update only_ + +## 4.8.4 +Thu, 02 Jul 2026 10:07:52 GMT + +_Version update only_ + +## 4.8.3 +Tue, 30 Jun 2026 14:22:03 GMT + +### Updates + +- Update uuid to v11 and remove closure-compiler from the build pipeline + +## 4.8.2 +Wed, 17 Jun 2026 12:30:12 GMT + +_Version update only_ + +## 4.8.1 +Wed, 13 May 2026 09:26:05 GMT + +_Version update only_ + +## 4.8.0 +Tue, 28 Apr 2026 07:56:22 GMT + +_Version update only_ + +## 4.7.0 +Wed, 01 Apr 2026 12:59:29 GMT + +_Version update only_ + +## 4.6.9 +Mon, 16 Mar 2026 15:43:06 GMT + +### Updates + +- Truncate fileName property in application_error events to max 1024 characters to avoid validation errors + +## 4.6.8 +Tue, 28 Oct 2025 09:46:42 GMT + +_Version update only_ + +## 4.6.7 +Tue, 07 Oct 2025 14:53:36 GMT + +_Version update only_ + +## 4.6.6 +Tue, 26 Aug 2025 08:42:27 GMT + +_Version update only_ + +## 4.6.5 +Wed, 25 Jun 2025 21:16:46 GMT + +_Version update only_ + +## 4.6.4 +Wed, 25 Jun 2025 12:08:50 GMT + +_Version update only_ + +## 4.6.3 +Thu, 29 May 2025 19:52:07 GMT + +_Version update only_ + +## 4.6.2 +Tue, 20 May 2025 07:39:05 GMT + +_Version update only_ + +## 4.6.1 +Tue, 06 May 2025 13:10:51 GMT + +_Version update only_ + +## 4.6.0 +Thu, 01 May 2025 09:58:59 GMT + +_Version update only_ ## 4.5.0 Fri, 04 Apr 2025 09:21:23 GMT diff --git a/plugins/browser-plugin-error-tracking/package.json b/plugins/browser-plugin-error-tracking/package.json index db9e4e2b7..42bf1af57 100644 --- a/plugins/browser-plugin-error-tracking/package.json +++ b/plugins/browser-plugin-error-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@snowplow/browser-plugin-error-tracking", - "version": "4.5.0", + "version": "4.10.0", "description": "Error tracking for Snowplow", "homepage": "http://bit.ly/sp-js", "bugs": "https://github.com/snowplow/snowplow-javascript-tracker/issues", @@ -27,7 +27,6 @@ "tslib": "^2.3.1" }, "devDependencies": { - "@ampproject/rollup-plugin-closure-compiler": "~0.27.0", "@rollup/plugin-commonjs": "~21.0.2", "@rollup/plugin-node-resolve": "~13.1.3", "@types/jest": "~28.1.1", @@ -50,6 +49,6 @@ "typescript": "~4.6.2" }, "peerDependencies": { - "@snowplow/browser-tracker": "~4.5.0" + "@snowplow/browser-tracker": "~4.10.0" } } diff --git a/plugins/browser-plugin-error-tracking/rollup.config.js b/plugins/browser-plugin-error-tracking/rollup.config.js index 500087175..9d4e4080e 100644 --- a/plugins/browser-plugin-error-tracking/rollup.config.js +++ b/plugins/browser-plugin-error-tracking/rollup.config.js @@ -32,7 +32,6 @@ import { nodeResolve } from '@rollup/plugin-node-resolve'; import commonjs from '@rollup/plugin-commonjs'; import ts from 'rollup-plugin-ts'; // Prefered over @rollup/plugin-typescript as it bundles .d.ts files import { banner } from '../../banner'; -import compiler from '@ampproject/rollup-plugin-closure-compiler'; import { terser } from 'rollup-plugin-terser'; import cleanup from 'rollup-plugin-cleanup'; import pkg from './package.json'; @@ -51,7 +50,7 @@ export default [ }, { input: './src/index.ts', - plugins: [...umdPlugins, compiler(), terser(), cleanup({ comments: 'none' }), banner()], + plugins: [...umdPlugins, terser(), cleanup({ comments: 'none' }), banner()], treeshake: { moduleSideEffects: ['sha1'] }, output: [{ file: pkg.main.replace('.js', '.min.js'), format: 'umd', sourcemap: true, name: umdName }], }, diff --git a/plugins/browser-plugin-error-tracking/src/index.ts b/plugins/browser-plugin-error-tracking/src/index.ts index e0d239412..eb4238587 100644 --- a/plugins/browser-plugin-error-tracking/src/index.ts +++ b/plugins/browser-plugin-error-tracking/src/index.ts @@ -76,7 +76,8 @@ export function trackError( ) { const { message, filename, lineno, colno, error, context, timestamp } = event, stack = error && truncateString(error.stack, 8192), - truncatedMessage = message && truncateString(message, 2048); + truncatedMessage = message && truncateString(message, 2048), + truncatedFilename = truncateString(filename, 1024); dispatchToTrackersInCollection(trackers, _trackers, (t) => { t.core.track( @@ -89,7 +90,7 @@ export function trackError( stackTrace: stack, lineNumber: lineno, lineColumn: colno, - fileName: filename, + fileName: truncatedFilename, }, }, }), diff --git a/plugins/browser-plugin-error-tracking/test/events.test.ts b/plugins/browser-plugin-error-tracking/test/events.test.ts index 857e761df..2d2b0d0f4 100644 --- a/plugins/browser-plugin-error-tracking/test/events.test.ts +++ b/plugins/browser-plugin-error-tracking/test/events.test.ts @@ -53,6 +53,7 @@ describe('ErrorTrackingPlugin', () => { const eventStore3 = newInMemoryEventStore({}); const eventStore4 = newInMemoryEventStore({}); const eventStore5 = newInMemoryEventStore({}); + const eventStore6 = newInMemoryEventStore({}); const state = new SharedState(); addTracker('sp1', 'sp1', 'js-3.0.0', '', state, { @@ -85,6 +86,12 @@ describe('ErrorTrackingPlugin', () => { eventStore: eventStore5, customFetch: async () => new Response(null, { status: 500 }), }); + addTracker('sp6', 'sp6', 'js-3.0.0', '', state, { + encodeBase64: false, + plugins: [ErrorTrackingPlugin()], + eventStore: eventStore6, + customFetch: async () => new Response(null, { status: 500 }), + }); const error = new Error('this is an error'); error.stack = 'stacktrace-1'; @@ -92,6 +99,7 @@ describe('ErrorTrackingPlugin', () => { const oversizedError = new Error('this is a longer error'); oversizedError.stack = 'x'.repeat(10000); const oversizedMessage = 'y'.repeat(10000); + const oversizedFilename = 'z'.repeat(2000); trackError( { @@ -126,6 +134,14 @@ describe('ErrorTrackingPlugin', () => { ['sp4'] ); + trackError( + { + message: 'message-6', + filename: oversizedFilename, + }, + ['sp6'] + ); + enableErrorTracking({}, ['sp5']); it('trackError adds the expected application error event to the queue', async () => { @@ -186,6 +202,19 @@ describe('ErrorTrackingPlugin', () => { }); }); + it('trackError truncates long fileName to 1024 characters', async () => { + expect( + extractUeEvent('iglu:com.snowplowanalytics.snowplow/application_error/jsonschema/1-0-1').from( + await eventStore6.getAllPayloads() + ) + ).toMatchObject({ + schema: 'iglu:com.snowplowanalytics.snowplow/application_error/jsonschema/1-0-1', + data: { + fileName: 'z'.repeat(1024), + }, + }); + }); + it('trackError should be called by listener for resource errors', async () => { const resourceUrl = '/fake-should-404.js'; diff --git a/plugins/browser-plugin-event-specifications/CHANGELOG.json b/plugins/browser-plugin-event-specifications/CHANGELOG.json index d52ec0470..15a948ef1 100644 --- a/plugins/browser-plugin-event-specifications/CHANGELOG.json +++ b/plugins/browser-plugin-event-specifications/CHANGELOG.json @@ -1,6 +1,120 @@ { "name": "@snowplow/browser-plugin-event-specifications", "entries": [ + { + "version": "4.10.0", + "tag": "@snowplow/browser-plugin-event-specifications_v4.10.0", + "date": "Mon, 27 Jul 2026 13:52:14 GMT", + "comments": {} + }, + { + "version": "4.9.0", + "tag": "@snowplow/browser-plugin-event-specifications_v4.9.0", + "date": "Tue, 21 Jul 2026 14:53:08 GMT", + "comments": {} + }, + { + "version": "4.8.4", + "tag": "@snowplow/browser-plugin-event-specifications_v4.8.4", + "date": "Thu, 02 Jul 2026 10:07:52 GMT", + "comments": {} + }, + { + "version": "4.8.3", + "tag": "@snowplow/browser-plugin-event-specifications_v4.8.3", + "date": "Tue, 30 Jun 2026 14:22:03 GMT", + "comments": { + "none": [ + { + "comment": "Update uuid to v11 and remove closure-compiler from the build pipeline" + } + ] + } + }, + { + "version": "4.8.2", + "tag": "@snowplow/browser-plugin-event-specifications_v4.8.2", + "date": "Wed, 17 Jun 2026 12:30:12 GMT", + "comments": {} + }, + { + "version": "4.8.1", + "tag": "@snowplow/browser-plugin-event-specifications_v4.8.1", + "date": "Wed, 13 May 2026 09:26:05 GMT", + "comments": {} + }, + { + "version": "4.8.0", + "tag": "@snowplow/browser-plugin-event-specifications_v4.8.0", + "date": "Tue, 28 Apr 2026 07:56:22 GMT", + "comments": {} + }, + { + "version": "4.7.0", + "tag": "@snowplow/browser-plugin-event-specifications_v4.7.0", + "date": "Wed, 01 Apr 2026 12:59:29 GMT", + "comments": {} + }, + { + "version": "4.6.9", + "tag": "@snowplow/browser-plugin-event-specifications_v4.6.9", + "date": "Mon, 16 Mar 2026 15:43:06 GMT", + "comments": {} + }, + { + "version": "4.6.8", + "tag": "@snowplow/browser-plugin-event-specifications_v4.6.8", + "date": "Tue, 28 Oct 2025 09:46:42 GMT", + "comments": {} + }, + { + "version": "4.6.7", + "tag": "@snowplow/browser-plugin-event-specifications_v4.6.7", + "date": "Tue, 07 Oct 2025 14:53:36 GMT", + "comments": {} + }, + { + "version": "4.6.6", + "tag": "@snowplow/browser-plugin-event-specifications_v4.6.6", + "date": "Tue, 26 Aug 2025 08:42:27 GMT", + "comments": {} + }, + { + "version": "4.6.5", + "tag": "@snowplow/browser-plugin-event-specifications_v4.6.5", + "date": "Wed, 25 Jun 2025 21:16:46 GMT", + "comments": {} + }, + { + "version": "4.6.4", + "tag": "@snowplow/browser-plugin-event-specifications_v4.6.4", + "date": "Wed, 25 Jun 2025 12:08:50 GMT", + "comments": {} + }, + { + "version": "4.6.3", + "tag": "@snowplow/browser-plugin-event-specifications_v4.6.3", + "date": "Thu, 29 May 2025 19:52:07 GMT", + "comments": {} + }, + { + "version": "4.6.2", + "tag": "@snowplow/browser-plugin-event-specifications_v4.6.2", + "date": "Tue, 20 May 2025 07:39:05 GMT", + "comments": {} + }, + { + "version": "4.6.1", + "tag": "@snowplow/browser-plugin-event-specifications_v4.6.1", + "date": "Tue, 06 May 2025 13:10:51 GMT", + "comments": {} + }, + { + "version": "4.6.0", + "tag": "@snowplow/browser-plugin-event-specifications_v4.6.0", + "date": "Thu, 01 May 2025 09:58:59 GMT", + "comments": {} + }, { "version": "4.5.0", "tag": "@snowplow/browser-plugin-event-specifications_v4.5.0", diff --git a/plugins/browser-plugin-event-specifications/CHANGELOG.md b/plugins/browser-plugin-event-specifications/CHANGELOG.md index 54a192186..275ced3d8 100644 --- a/plugins/browser-plugin-event-specifications/CHANGELOG.md +++ b/plugins/browser-plugin-event-specifications/CHANGELOG.md @@ -1,6 +1,98 @@ # Change Log - @snowplow/browser-plugin-event-specifications -This log was last generated on Fri, 04 Apr 2025 09:21:23 GMT and should not be manually modified. +This log was last generated on Mon, 27 Jul 2026 13:52:14 GMT and should not be manually modified. + +## 4.10.0 +Mon, 27 Jul 2026 13:52:14 GMT + +_Version update only_ + +## 4.9.0 +Tue, 21 Jul 2026 14:53:08 GMT + +_Version update only_ + +## 4.8.4 +Thu, 02 Jul 2026 10:07:52 GMT + +_Version update only_ + +## 4.8.3 +Tue, 30 Jun 2026 14:22:03 GMT + +### Updates + +- Update uuid to v11 and remove closure-compiler from the build pipeline + +## 4.8.2 +Wed, 17 Jun 2026 12:30:12 GMT + +_Version update only_ + +## 4.8.1 +Wed, 13 May 2026 09:26:05 GMT + +_Version update only_ + +## 4.8.0 +Tue, 28 Apr 2026 07:56:22 GMT + +_Version update only_ + +## 4.7.0 +Wed, 01 Apr 2026 12:59:29 GMT + +_Version update only_ + +## 4.6.9 +Mon, 16 Mar 2026 15:43:06 GMT + +_Version update only_ + +## 4.6.8 +Tue, 28 Oct 2025 09:46:42 GMT + +_Version update only_ + +## 4.6.7 +Tue, 07 Oct 2025 14:53:36 GMT + +_Version update only_ + +## 4.6.6 +Tue, 26 Aug 2025 08:42:27 GMT + +_Version update only_ + +## 4.6.5 +Wed, 25 Jun 2025 21:16:46 GMT + +_Version update only_ + +## 4.6.4 +Wed, 25 Jun 2025 12:08:50 GMT + +_Version update only_ + +## 4.6.3 +Thu, 29 May 2025 19:52:07 GMT + +_Version update only_ + +## 4.6.2 +Tue, 20 May 2025 07:39:05 GMT + +_Version update only_ + +## 4.6.1 +Tue, 06 May 2025 13:10:51 GMT + +_Version update only_ + +## 4.6.0 +Thu, 01 May 2025 09:58:59 GMT + +_Version update only_ ## 4.5.0 Fri, 04 Apr 2025 09:21:23 GMT diff --git a/plugins/browser-plugin-event-specifications/package.json b/plugins/browser-plugin-event-specifications/package.json index 8a4ca95fc..a07e56bfe 100644 --- a/plugins/browser-plugin-event-specifications/package.json +++ b/plugins/browser-plugin-event-specifications/package.json @@ -1,6 +1,6 @@ { "name": "@snowplow/browser-plugin-event-specifications", - "version": "4.5.0", + "version": "4.10.0", "description": "Automatically adds Event Specifications context to event specifications of a Data Product template.", "homepage": "https://github.com/snowplow/snowplow-javascript-tracker", "bugs": "https://github.com/snowplow/snowplow-javascript-tracker/issues", @@ -27,7 +27,6 @@ "tslib": "^2.3.1" }, "devDependencies": { - "@ampproject/rollup-plugin-closure-compiler": "~0.27.0", "@rollup/plugin-commonjs": "~21.0.2", "@rollup/plugin-node-resolve": "~13.1.3", "@types/jest": "~28.1.1", @@ -48,6 +47,6 @@ "typescript": "~4.6.2" }, "peerDependencies": { - "@snowplow/browser-tracker": "~4.5.0" + "@snowplow/browser-tracker": "~4.10.0" } } diff --git a/plugins/browser-plugin-event-specifications/rollup.config.js b/plugins/browser-plugin-event-specifications/rollup.config.js index 5b5b37e67..2fdaec972 100644 --- a/plugins/browser-plugin-event-specifications/rollup.config.js +++ b/plugins/browser-plugin-event-specifications/rollup.config.js @@ -2,7 +2,6 @@ import { nodeResolve } from '@rollup/plugin-node-resolve'; import commonjs from '@rollup/plugin-commonjs'; import ts from 'rollup-plugin-ts'; // Preferred over @rollup/plugin-typescript as it bundles .d.ts files import { banner } from '../../banner'; -import compiler from '@ampproject/rollup-plugin-closure-compiler'; import { terser } from 'rollup-plugin-terser'; import cleanup from 'rollup-plugin-cleanup'; import pkg from './package.json'; @@ -21,7 +20,7 @@ export default [ }, { input: './src/index.ts', - plugins: [...umdPlugins, compiler(), terser(), cleanup({ comments: 'none' }), banner()], + plugins: [...umdPlugins, terser(), cleanup({ comments: 'none' }), banner()], treeshake: { moduleSideEffects: ['sha1'] }, output: [{ file: pkg.main.replace('.js', '.min.js'), format: 'umd', sourcemap: true, name: umdName }], }, diff --git a/plugins/browser-plugin-focalmeter/CHANGELOG.json b/plugins/browser-plugin-focalmeter/CHANGELOG.json index c5fcef93f..6997bd19b 100644 --- a/plugins/browser-plugin-focalmeter/CHANGELOG.json +++ b/plugins/browser-plugin-focalmeter/CHANGELOG.json @@ -1,6 +1,120 @@ { "name": "@snowplow/browser-plugin-focalmeter", "entries": [ + { + "version": "4.10.0", + "tag": "@snowplow/browser-plugin-focalmeter_v4.10.0", + "date": "Mon, 27 Jul 2026 13:52:14 GMT", + "comments": {} + }, + { + "version": "4.9.0", + "tag": "@snowplow/browser-plugin-focalmeter_v4.9.0", + "date": "Tue, 21 Jul 2026 14:53:08 GMT", + "comments": {} + }, + { + "version": "4.8.4", + "tag": "@snowplow/browser-plugin-focalmeter_v4.8.4", + "date": "Thu, 02 Jul 2026 10:07:52 GMT", + "comments": {} + }, + { + "version": "4.8.3", + "tag": "@snowplow/browser-plugin-focalmeter_v4.8.3", + "date": "Tue, 30 Jun 2026 14:22:03 GMT", + "comments": { + "none": [ + { + "comment": "Update uuid to v11 and remove closure-compiler from the build pipeline" + } + ] + } + }, + { + "version": "4.8.2", + "tag": "@snowplow/browser-plugin-focalmeter_v4.8.2", + "date": "Wed, 17 Jun 2026 12:30:12 GMT", + "comments": {} + }, + { + "version": "4.8.1", + "tag": "@snowplow/browser-plugin-focalmeter_v4.8.1", + "date": "Wed, 13 May 2026 09:26:05 GMT", + "comments": {} + }, + { + "version": "4.8.0", + "tag": "@snowplow/browser-plugin-focalmeter_v4.8.0", + "date": "Tue, 28 Apr 2026 07:56:22 GMT", + "comments": {} + }, + { + "version": "4.7.0", + "tag": "@snowplow/browser-plugin-focalmeter_v4.7.0", + "date": "Wed, 01 Apr 2026 12:59:29 GMT", + "comments": {} + }, + { + "version": "4.6.9", + "tag": "@snowplow/browser-plugin-focalmeter_v4.6.9", + "date": "Mon, 16 Mar 2026 15:43:06 GMT", + "comments": {} + }, + { + "version": "4.6.8", + "tag": "@snowplow/browser-plugin-focalmeter_v4.6.8", + "date": "Tue, 28 Oct 2025 09:46:42 GMT", + "comments": {} + }, + { + "version": "4.6.7", + "tag": "@snowplow/browser-plugin-focalmeter_v4.6.7", + "date": "Tue, 07 Oct 2025 14:53:36 GMT", + "comments": {} + }, + { + "version": "4.6.6", + "tag": "@snowplow/browser-plugin-focalmeter_v4.6.6", + "date": "Tue, 26 Aug 2025 08:42:27 GMT", + "comments": {} + }, + { + "version": "4.6.5", + "tag": "@snowplow/browser-plugin-focalmeter_v4.6.5", + "date": "Wed, 25 Jun 2025 21:16:46 GMT", + "comments": {} + }, + { + "version": "4.6.4", + "tag": "@snowplow/browser-plugin-focalmeter_v4.6.4", + "date": "Wed, 25 Jun 2025 12:08:50 GMT", + "comments": {} + }, + { + "version": "4.6.3", + "tag": "@snowplow/browser-plugin-focalmeter_v4.6.3", + "date": "Thu, 29 May 2025 19:52:07 GMT", + "comments": {} + }, + { + "version": "4.6.2", + "tag": "@snowplow/browser-plugin-focalmeter_v4.6.2", + "date": "Tue, 20 May 2025 07:39:05 GMT", + "comments": {} + }, + { + "version": "4.6.1", + "tag": "@snowplow/browser-plugin-focalmeter_v4.6.1", + "date": "Tue, 06 May 2025 13:10:51 GMT", + "comments": {} + }, + { + "version": "4.6.0", + "tag": "@snowplow/browser-plugin-focalmeter_v4.6.0", + "date": "Thu, 01 May 2025 09:58:59 GMT", + "comments": {} + }, { "version": "4.5.0", "tag": "@snowplow/browser-plugin-focalmeter_v4.5.0", diff --git a/plugins/browser-plugin-focalmeter/CHANGELOG.md b/plugins/browser-plugin-focalmeter/CHANGELOG.md index 3f8aacc86..5a8378490 100644 --- a/plugins/browser-plugin-focalmeter/CHANGELOG.md +++ b/plugins/browser-plugin-focalmeter/CHANGELOG.md @@ -1,6 +1,98 @@ # Change Log - @snowplow/browser-plugin-focalmeter -This log was last generated on Fri, 04 Apr 2025 09:21:23 GMT and should not be manually modified. +This log was last generated on Mon, 27 Jul 2026 13:52:14 GMT and should not be manually modified. + +## 4.10.0 +Mon, 27 Jul 2026 13:52:14 GMT + +_Version update only_ + +## 4.9.0 +Tue, 21 Jul 2026 14:53:08 GMT + +_Version update only_ + +## 4.8.4 +Thu, 02 Jul 2026 10:07:52 GMT + +_Version update only_ + +## 4.8.3 +Tue, 30 Jun 2026 14:22:03 GMT + +### Updates + +- Update uuid to v11 and remove closure-compiler from the build pipeline + +## 4.8.2 +Wed, 17 Jun 2026 12:30:12 GMT + +_Version update only_ + +## 4.8.1 +Wed, 13 May 2026 09:26:05 GMT + +_Version update only_ + +## 4.8.0 +Tue, 28 Apr 2026 07:56:22 GMT + +_Version update only_ + +## 4.7.0 +Wed, 01 Apr 2026 12:59:29 GMT + +_Version update only_ + +## 4.6.9 +Mon, 16 Mar 2026 15:43:06 GMT + +_Version update only_ + +## 4.6.8 +Tue, 28 Oct 2025 09:46:42 GMT + +_Version update only_ + +## 4.6.7 +Tue, 07 Oct 2025 14:53:36 GMT + +_Version update only_ + +## 4.6.6 +Tue, 26 Aug 2025 08:42:27 GMT + +_Version update only_ + +## 4.6.5 +Wed, 25 Jun 2025 21:16:46 GMT + +_Version update only_ + +## 4.6.4 +Wed, 25 Jun 2025 12:08:50 GMT + +_Version update only_ + +## 4.6.3 +Thu, 29 May 2025 19:52:07 GMT + +_Version update only_ + +## 4.6.2 +Tue, 20 May 2025 07:39:05 GMT + +_Version update only_ + +## 4.6.1 +Tue, 06 May 2025 13:10:51 GMT + +_Version update only_ + +## 4.6.0 +Thu, 01 May 2025 09:58:59 GMT + +_Version update only_ ## 4.5.0 Fri, 04 Apr 2025 09:21:23 GMT diff --git a/plugins/browser-plugin-focalmeter/package.json b/plugins/browser-plugin-focalmeter/package.json index 201a7ad22..4595b87d3 100644 --- a/plugins/browser-plugin-focalmeter/package.json +++ b/plugins/browser-plugin-focalmeter/package.json @@ -1,6 +1,6 @@ { "name": "@snowplow/browser-plugin-focalmeter", - "version": "4.5.0", + "version": "4.10.0", "description": "Kantar FocalMeter integration for Snowplow", "homepage": "http://bit.ly/sp-js", "bugs": "https://github.com/snowplow/snowplow-javascript-tracker/issues", @@ -27,7 +27,6 @@ "tslib": "^2.3.1" }, "devDependencies": { - "@ampproject/rollup-plugin-closure-compiler": "~0.27.0", "@rollup/plugin-commonjs": "~21.0.2", "@rollup/plugin-node-resolve": "~13.1.3", "@types/jest": "~28.1.1", @@ -48,6 +47,6 @@ "typescript": "~4.6.2" }, "peerDependencies": { - "@snowplow/browser-tracker": "~4.5.0" + "@snowplow/browser-tracker": "~4.10.0" } } diff --git a/plugins/browser-plugin-focalmeter/rollup.config.js b/plugins/browser-plugin-focalmeter/rollup.config.js index dfef86c7b..659f9438b 100644 --- a/plugins/browser-plugin-focalmeter/rollup.config.js +++ b/plugins/browser-plugin-focalmeter/rollup.config.js @@ -32,7 +32,6 @@ import { nodeResolve } from '@rollup/plugin-node-resolve'; import commonjs from '@rollup/plugin-commonjs'; import ts from 'rollup-plugin-ts'; // Prefered over @rollup/plugin-typescript as it bundles .d.ts files import { banner } from '../../banner'; -import compiler from '@ampproject/rollup-plugin-closure-compiler'; import { terser } from 'rollup-plugin-terser'; import cleanup from 'rollup-plugin-cleanup'; import pkg from './package.json'; @@ -51,7 +50,7 @@ export default [ }, { input: './src/index.ts', - plugins: [...umdPlugins, compiler(), terser(), cleanup({ comments: 'none' }), banner()], + plugins: [...umdPlugins, terser(), cleanup({ comments: 'none' }), banner()], treeshake: { moduleSideEffects: ['sha1'] }, output: [{ file: pkg.main.replace('.js', '.min.js'), format: 'umd', sourcemap: true, name: umdName }], }, diff --git a/plugins/browser-plugin-form-tracking/CHANGELOG.json b/plugins/browser-plugin-form-tracking/CHANGELOG.json index 6c4bf936d..d7035cb5b 100644 --- a/plugins/browser-plugin-form-tracking/CHANGELOG.json +++ b/plugins/browser-plugin-form-tracking/CHANGELOG.json @@ -1,6 +1,126 @@ { "name": "@snowplow/browser-plugin-form-tracking", "entries": [ + { + "version": "4.10.0", + "tag": "@snowplow/browser-plugin-form-tracking_v4.10.0", + "date": "Mon, 27 Jul 2026 13:52:14 GMT", + "comments": {} + }, + { + "version": "4.9.0", + "tag": "@snowplow/browser-plugin-form-tracking_v4.9.0", + "date": "Tue, 21 Jul 2026 14:53:08 GMT", + "comments": {} + }, + { + "version": "4.8.4", + "tag": "@snowplow/browser-plugin-form-tracking_v4.8.4", + "date": "Thu, 02 Jul 2026 10:07:52 GMT", + "comments": {} + }, + { + "version": "4.8.3", + "tag": "@snowplow/browser-plugin-form-tracking_v4.8.3", + "date": "Tue, 30 Jun 2026 14:22:03 GMT", + "comments": { + "none": [ + { + "comment": "Update uuid to v11 and remove closure-compiler from the build pipeline" + } + ] + } + }, + { + "version": "4.8.2", + "tag": "@snowplow/browser-plugin-form-tracking_v4.8.2", + "date": "Wed, 17 Jun 2026 12:30:12 GMT", + "comments": {} + }, + { + "version": "4.8.1", + "tag": "@snowplow/browser-plugin-form-tracking_v4.8.1", + "date": "Wed, 13 May 2026 09:26:05 GMT", + "comments": {} + }, + { + "version": "4.8.0", + "tag": "@snowplow/browser-plugin-form-tracking_v4.8.0", + "date": "Tue, 28 Apr 2026 07:56:22 GMT", + "comments": {} + }, + { + "version": "4.7.0", + "tag": "@snowplow/browser-plugin-form-tracking_v4.7.0", + "date": "Wed, 01 Apr 2026 12:59:29 GMT", + "comments": {} + }, + { + "version": "4.6.9", + "tag": "@snowplow/browser-plugin-form-tracking_v4.6.9", + "date": "Mon, 16 Mar 2026 15:43:06 GMT", + "comments": {} + }, + { + "version": "4.6.8", + "tag": "@snowplow/browser-plugin-form-tracking_v4.6.8", + "date": "Tue, 28 Oct 2025 09:46:42 GMT", + "comments": { + "none": [ + { + "comment": "Allow opt-in bubble-phase listeners for change/submit" + } + ] + } + }, + { + "version": "4.6.7", + "tag": "@snowplow/browser-plugin-form-tracking_v4.6.7", + "date": "Tue, 07 Oct 2025 14:53:36 GMT", + "comments": {} + }, + { + "version": "4.6.6", + "tag": "@snowplow/browser-plugin-form-tracking_v4.6.6", + "date": "Tue, 26 Aug 2025 08:42:27 GMT", + "comments": {} + }, + { + "version": "4.6.5", + "tag": "@snowplow/browser-plugin-form-tracking_v4.6.5", + "date": "Wed, 25 Jun 2025 21:16:46 GMT", + "comments": {} + }, + { + "version": "4.6.4", + "tag": "@snowplow/browser-plugin-form-tracking_v4.6.4", + "date": "Wed, 25 Jun 2025 12:08:50 GMT", + "comments": {} + }, + { + "version": "4.6.3", + "tag": "@snowplow/browser-plugin-form-tracking_v4.6.3", + "date": "Thu, 29 May 2025 19:52:07 GMT", + "comments": {} + }, + { + "version": "4.6.2", + "tag": "@snowplow/browser-plugin-form-tracking_v4.6.2", + "date": "Tue, 20 May 2025 07:39:05 GMT", + "comments": {} + }, + { + "version": "4.6.1", + "tag": "@snowplow/browser-plugin-form-tracking_v4.6.1", + "date": "Tue, 06 May 2025 13:10:51 GMT", + "comments": {} + }, + { + "version": "4.6.0", + "tag": "@snowplow/browser-plugin-form-tracking_v4.6.0", + "date": "Thu, 01 May 2025 09:58:59 GMT", + "comments": {} + }, { "version": "4.5.0", "tag": "@snowplow/browser-plugin-form-tracking_v4.5.0", diff --git a/plugins/browser-plugin-form-tracking/CHANGELOG.md b/plugins/browser-plugin-form-tracking/CHANGELOG.md index 5c558d928..3ed1d5a32 100644 --- a/plugins/browser-plugin-form-tracking/CHANGELOG.md +++ b/plugins/browser-plugin-form-tracking/CHANGELOG.md @@ -1,6 +1,100 @@ # Change Log - @snowplow/browser-plugin-form-tracking -This log was last generated on Fri, 04 Apr 2025 09:21:23 GMT and should not be manually modified. +This log was last generated on Mon, 27 Jul 2026 13:52:14 GMT and should not be manually modified. + +## 4.10.0 +Mon, 27 Jul 2026 13:52:14 GMT + +_Version update only_ + +## 4.9.0 +Tue, 21 Jul 2026 14:53:08 GMT + +_Version update only_ + +## 4.8.4 +Thu, 02 Jul 2026 10:07:52 GMT + +_Version update only_ + +## 4.8.3 +Tue, 30 Jun 2026 14:22:03 GMT + +### Updates + +- Update uuid to v11 and remove closure-compiler from the build pipeline + +## 4.8.2 +Wed, 17 Jun 2026 12:30:12 GMT + +_Version update only_ + +## 4.8.1 +Wed, 13 May 2026 09:26:05 GMT + +_Version update only_ + +## 4.8.0 +Tue, 28 Apr 2026 07:56:22 GMT + +_Version update only_ + +## 4.7.0 +Wed, 01 Apr 2026 12:59:29 GMT + +_Version update only_ + +## 4.6.9 +Mon, 16 Mar 2026 15:43:06 GMT + +_Version update only_ + +## 4.6.8 +Tue, 28 Oct 2025 09:46:42 GMT + +### Updates + +- Allow opt-in bubble-phase listeners for change/submit + +## 4.6.7 +Tue, 07 Oct 2025 14:53:36 GMT + +_Version update only_ + +## 4.6.6 +Tue, 26 Aug 2025 08:42:27 GMT + +_Version update only_ + +## 4.6.5 +Wed, 25 Jun 2025 21:16:46 GMT + +_Version update only_ + +## 4.6.4 +Wed, 25 Jun 2025 12:08:50 GMT + +_Version update only_ + +## 4.6.3 +Thu, 29 May 2025 19:52:07 GMT + +_Version update only_ + +## 4.6.2 +Tue, 20 May 2025 07:39:05 GMT + +_Version update only_ + +## 4.6.1 +Tue, 06 May 2025 13:10:51 GMT + +_Version update only_ + +## 4.6.0 +Thu, 01 May 2025 09:58:59 GMT + +_Version update only_ ## 4.5.0 Fri, 04 Apr 2025 09:21:23 GMT diff --git a/plugins/browser-plugin-form-tracking/package.json b/plugins/browser-plugin-form-tracking/package.json index 87c6dd3dd..23afb48b3 100644 --- a/plugins/browser-plugin-form-tracking/package.json +++ b/plugins/browser-plugin-form-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@snowplow/browser-plugin-form-tracking", - "version": "4.5.0", + "version": "4.10.0", "description": "Form tracking for Snowplow", "homepage": "http://bit.ly/sp-js", "bugs": "https://github.com/snowplow/snowplow-javascript-tracker/issues", @@ -27,7 +27,6 @@ "tslib": "^2.3.1" }, "devDependencies": { - "@ampproject/rollup-plugin-closure-compiler": "~0.27.0", "@rollup/plugin-commonjs": "~21.0.2", "@rollup/plugin-node-resolve": "~13.1.3", "@types/jest": "~28.1.1", @@ -48,6 +47,6 @@ "typescript": "~4.6.2" }, "peerDependencies": { - "@snowplow/browser-tracker": "~4.5.0" + "@snowplow/browser-tracker": "~4.10.0" } } diff --git a/plugins/browser-plugin-form-tracking/rollup.config.js b/plugins/browser-plugin-form-tracking/rollup.config.js index 2396a31d0..48aa953de 100644 --- a/plugins/browser-plugin-form-tracking/rollup.config.js +++ b/plugins/browser-plugin-form-tracking/rollup.config.js @@ -32,7 +32,6 @@ import { nodeResolve } from '@rollup/plugin-node-resolve'; import commonjs from '@rollup/plugin-commonjs'; import ts from 'rollup-plugin-ts'; // Prefered over @rollup/plugin-typescript as it bundles .d.ts files import { banner } from '../../banner'; -import compiler from '@ampproject/rollup-plugin-closure-compiler'; import { terser } from 'rollup-plugin-terser'; import cleanup from 'rollup-plugin-cleanup'; import pkg from './package.json'; @@ -51,7 +50,7 @@ export default [ }, { input: './src/index.ts', - plugins: [...umdPlugins, compiler(), terser(), cleanup({ comments: 'none' }), banner()], + plugins: [...umdPlugins, terser(), cleanup({ comments: 'none' }), banner()], treeshake: { moduleSideEffects: ['sha1'] }, output: [{ file: pkg.main.replace('.js', '.min.js'), format: 'umd', sourcemap: true, name: umdName }], }, diff --git a/plugins/browser-plugin-form-tracking/src/helpers.ts b/plugins/browser-plugin-form-tracking/src/helpers.ts index d7d0e7309..6153fee67 100644 --- a/plugins/browser-plugin-form-tracking/src/helpers.ts +++ b/plugins/browser-plugin-form-tracking/src/helpers.ts @@ -40,6 +40,8 @@ const defaultFormTrackingEvents = [ /** Form tracking plugin options to determine which events to fire and the elements to listen for */ interface FormTrackingOptions { + /** Whether to handle events in the capture phase or the bubbling phase. Capture is usually more reliable, but may trigger early if you need changes from other submit handlers in your transforms, filters, or context generators. Defaults to true. */ + useCapture?: boolean; /** List of `form` elements that are allowed to generate events, or criteria for deciding that when the event listener handles the event */ forms?: | FilterCriterion @@ -86,6 +88,7 @@ const _focusListeners: Record = {}; const _changeListeners: Record = {}; const _submitListeners: Record = {}; const _targets: Record = {}; +const _captures: Record = {}; /** * Add submission/focus/change event listeners to page for forms and elements according to `configuration` @@ -99,19 +102,21 @@ export function addFormListeners(tracker: BrowserTracker, configuration: FormTra const events = options?.events ?? defaultFormTrackingEvents; + const useCapture = (_captures[tracker.id] = options?.useCapture ?? true); + const targets = (_targets[tracker.id] = getTargetList(options?.targets, config.forms)); if (events.indexOf(FormTrackingEvent.FOCUS_FORM) !== -1) { _focusListeners[tracker.id] = getFormChangeListener(tracker, config, FormTrackingEvent.FOCUS_FORM, context); - targets.forEach((target) => addEventListener(target, 'focus', _focusListeners[tracker.id], true)); + targets.forEach((target) => addEventListener(target, 'focus', _focusListeners[tracker.id], true)); // focus does not bubble } if (events.indexOf(FormTrackingEvent.CHANGE_FORM) !== -1) { _changeListeners[tracker.id] = getFormChangeListener(tracker, config, FormTrackingEvent.CHANGE_FORM, context); - targets.forEach((target) => addEventListener(target, 'change', _changeListeners[tracker.id], true)); + targets.forEach((target) => addEventListener(target, 'change', _changeListeners[tracker.id], useCapture)); } if (events.indexOf(FormTrackingEvent.SUBMIT_FORM) !== -1) { _submitListeners[tracker.id] = getFormSubmissionListener(tracker, config, context); - targets.forEach((target) => addEventListener(target, 'submit', _submitListeners[tracker.id], true)); + targets.forEach((target) => addEventListener(target, 'submit', _submitListeners[tracker.id], useCapture)); } } @@ -145,10 +150,11 @@ function getTargetList(configTargets: EventTarget[] | undefined, forms: FormConf */ export function removeFormListeners(tracker: BrowserTracker) { const targets = _targets[tracker.id] ?? [document]; + const useCapture = _captures[tracker.id] ?? true; targets.forEach((target) => { - if (_focusListeners[tracker.id]) target.removeEventListener('focus', _focusListeners[tracker.id], true); - if (_changeListeners[tracker.id]) target.removeEventListener('change', _changeListeners[tracker.id], true); - if (_submitListeners[tracker.id]) target.removeEventListener('submit', _submitListeners[tracker.id], true); + if (_focusListeners[tracker.id]) target.removeEventListener('focus', _focusListeners[tracker.id], true); // focus does not bubble + if (_changeListeners[tracker.id]) target.removeEventListener('change', _changeListeners[tracker.id], useCapture); + if (_submitListeners[tracker.id]) target.removeEventListener('submit', _submitListeners[tracker.id], useCapture); }); } @@ -363,10 +369,13 @@ function getFormChangeListener( // bind late to the forms/field directly on field focus in this case if (target !== e.target && e.composed && isTrackableElement(target)) { if (target.form) { - if (_changeListeners[tracker.id]) addEventListener(target.form, 'change', _changeListeners[tracker.id], true); - if (_submitListeners[tracker.id]) addEventListener(target.form, 'submit', _submitListeners[tracker.id], true); + if (_changeListeners[tracker.id]) + addEventListener(target.form, 'change', _changeListeners[tracker.id], _captures[tracker.id]); + if (_submitListeners[tracker.id]) + addEventListener(target.form, 'submit', _submitListeners[tracker.id], _captures[tracker.id]); } else { - if (_changeListeners[tracker.id]) addEventListener(target, 'change', _changeListeners[tracker.id], true); + if (_changeListeners[tracker.id]) + addEventListener(target, 'change', _changeListeners[tracker.id], _captures[tracker.id]); } } diff --git a/plugins/browser-plugin-ga-cookies/CHANGELOG.json b/plugins/browser-plugin-ga-cookies/CHANGELOG.json index c20c0f82d..71375c2c5 100644 --- a/plugins/browser-plugin-ga-cookies/CHANGELOG.json +++ b/plugins/browser-plugin-ga-cookies/CHANGELOG.json @@ -1,6 +1,120 @@ { "name": "@snowplow/browser-plugin-ga-cookies", "entries": [ + { + "version": "4.10.0", + "tag": "@snowplow/browser-plugin-ga-cookies_v4.10.0", + "date": "Mon, 27 Jul 2026 13:52:14 GMT", + "comments": {} + }, + { + "version": "4.9.0", + "tag": "@snowplow/browser-plugin-ga-cookies_v4.9.0", + "date": "Tue, 21 Jul 2026 14:53:08 GMT", + "comments": {} + }, + { + "version": "4.8.4", + "tag": "@snowplow/browser-plugin-ga-cookies_v4.8.4", + "date": "Thu, 02 Jul 2026 10:07:52 GMT", + "comments": {} + }, + { + "version": "4.8.3", + "tag": "@snowplow/browser-plugin-ga-cookies_v4.8.3", + "date": "Tue, 30 Jun 2026 14:22:03 GMT", + "comments": { + "none": [ + { + "comment": "Update uuid to v11 and remove closure-compiler from the build pipeline" + } + ] + } + }, + { + "version": "4.8.2", + "tag": "@snowplow/browser-plugin-ga-cookies_v4.8.2", + "date": "Wed, 17 Jun 2026 12:30:12 GMT", + "comments": {} + }, + { + "version": "4.8.1", + "tag": "@snowplow/browser-plugin-ga-cookies_v4.8.1", + "date": "Wed, 13 May 2026 09:26:05 GMT", + "comments": {} + }, + { + "version": "4.8.0", + "tag": "@snowplow/browser-plugin-ga-cookies_v4.8.0", + "date": "Tue, 28 Apr 2026 07:56:22 GMT", + "comments": {} + }, + { + "version": "4.7.0", + "tag": "@snowplow/browser-plugin-ga-cookies_v4.7.0", + "date": "Wed, 01 Apr 2026 12:59:29 GMT", + "comments": {} + }, + { + "version": "4.6.9", + "tag": "@snowplow/browser-plugin-ga-cookies_v4.6.9", + "date": "Mon, 16 Mar 2026 15:43:06 GMT", + "comments": {} + }, + { + "version": "4.6.8", + "tag": "@snowplow/browser-plugin-ga-cookies_v4.6.8", + "date": "Tue, 28 Oct 2025 09:46:42 GMT", + "comments": {} + }, + { + "version": "4.6.7", + "tag": "@snowplow/browser-plugin-ga-cookies_v4.6.7", + "date": "Tue, 07 Oct 2025 14:53:36 GMT", + "comments": {} + }, + { + "version": "4.6.6", + "tag": "@snowplow/browser-plugin-ga-cookies_v4.6.6", + "date": "Tue, 26 Aug 2025 08:42:27 GMT", + "comments": {} + }, + { + "version": "4.6.5", + "tag": "@snowplow/browser-plugin-ga-cookies_v4.6.5", + "date": "Wed, 25 Jun 2025 21:16:46 GMT", + "comments": {} + }, + { + "version": "4.6.4", + "tag": "@snowplow/browser-plugin-ga-cookies_v4.6.4", + "date": "Wed, 25 Jun 2025 12:08:50 GMT", + "comments": {} + }, + { + "version": "4.6.3", + "tag": "@snowplow/browser-plugin-ga-cookies_v4.6.3", + "date": "Thu, 29 May 2025 19:52:07 GMT", + "comments": {} + }, + { + "version": "4.6.2", + "tag": "@snowplow/browser-plugin-ga-cookies_v4.6.2", + "date": "Tue, 20 May 2025 07:39:05 GMT", + "comments": {} + }, + { + "version": "4.6.1", + "tag": "@snowplow/browser-plugin-ga-cookies_v4.6.1", + "date": "Tue, 06 May 2025 13:10:51 GMT", + "comments": {} + }, + { + "version": "4.6.0", + "tag": "@snowplow/browser-plugin-ga-cookies_v4.6.0", + "date": "Thu, 01 May 2025 09:58:59 GMT", + "comments": {} + }, { "version": "4.5.0", "tag": "@snowplow/browser-plugin-ga-cookies_v4.5.0", diff --git a/plugins/browser-plugin-ga-cookies/CHANGELOG.md b/plugins/browser-plugin-ga-cookies/CHANGELOG.md index ac3250060..3c3e4bb63 100644 --- a/plugins/browser-plugin-ga-cookies/CHANGELOG.md +++ b/plugins/browser-plugin-ga-cookies/CHANGELOG.md @@ -1,6 +1,98 @@ # Change Log - @snowplow/browser-plugin-ga-cookies -This log was last generated on Fri, 04 Apr 2025 09:21:23 GMT and should not be manually modified. +This log was last generated on Mon, 27 Jul 2026 13:52:14 GMT and should not be manually modified. + +## 4.10.0 +Mon, 27 Jul 2026 13:52:14 GMT + +_Version update only_ + +## 4.9.0 +Tue, 21 Jul 2026 14:53:08 GMT + +_Version update only_ + +## 4.8.4 +Thu, 02 Jul 2026 10:07:52 GMT + +_Version update only_ + +## 4.8.3 +Tue, 30 Jun 2026 14:22:03 GMT + +### Updates + +- Update uuid to v11 and remove closure-compiler from the build pipeline + +## 4.8.2 +Wed, 17 Jun 2026 12:30:12 GMT + +_Version update only_ + +## 4.8.1 +Wed, 13 May 2026 09:26:05 GMT + +_Version update only_ + +## 4.8.0 +Tue, 28 Apr 2026 07:56:22 GMT + +_Version update only_ + +## 4.7.0 +Wed, 01 Apr 2026 12:59:29 GMT + +_Version update only_ + +## 4.6.9 +Mon, 16 Mar 2026 15:43:06 GMT + +_Version update only_ + +## 4.6.8 +Tue, 28 Oct 2025 09:46:42 GMT + +_Version update only_ + +## 4.6.7 +Tue, 07 Oct 2025 14:53:36 GMT + +_Version update only_ + +## 4.6.6 +Tue, 26 Aug 2025 08:42:27 GMT + +_Version update only_ + +## 4.6.5 +Wed, 25 Jun 2025 21:16:46 GMT + +_Version update only_ + +## 4.6.4 +Wed, 25 Jun 2025 12:08:50 GMT + +_Version update only_ + +## 4.6.3 +Thu, 29 May 2025 19:52:07 GMT + +_Version update only_ + +## 4.6.2 +Tue, 20 May 2025 07:39:05 GMT + +_Version update only_ + +## 4.6.1 +Tue, 06 May 2025 13:10:51 GMT + +_Version update only_ + +## 4.6.0 +Thu, 01 May 2025 09:58:59 GMT + +_Version update only_ ## 4.5.0 Fri, 04 Apr 2025 09:21:23 GMT diff --git a/plugins/browser-plugin-ga-cookies/package.json b/plugins/browser-plugin-ga-cookies/package.json index 358f171dc..49aefdb36 100644 --- a/plugins/browser-plugin-ga-cookies/package.json +++ b/plugins/browser-plugin-ga-cookies/package.json @@ -1,6 +1,6 @@ { "name": "@snowplow/browser-plugin-ga-cookies", - "version": "4.5.0", + "version": "4.10.0", "description": "Attaches GA cookie data to Snowplow events", "homepage": "http://bit.ly/sp-js", "bugs": "https://github.com/snowplow/snowplow-javascript-tracker/issues", @@ -27,7 +27,6 @@ "tslib": "^2.3.1" }, "devDependencies": { - "@ampproject/rollup-plugin-closure-compiler": "~0.27.0", "@rollup/plugin-commonjs": "~21.0.2", "@rollup/plugin-node-resolve": "~13.1.3", "@types/jest": "~28.1.1", @@ -48,6 +47,6 @@ "typescript": "~4.6.2" }, "peerDependencies": { - "@snowplow/browser-tracker": "~4.5.0" + "@snowplow/browser-tracker": "~4.10.0" } } diff --git a/plugins/browser-plugin-ga-cookies/rollup.config.js b/plugins/browser-plugin-ga-cookies/rollup.config.js index 837ac7417..4748aabab 100644 --- a/plugins/browser-plugin-ga-cookies/rollup.config.js +++ b/plugins/browser-plugin-ga-cookies/rollup.config.js @@ -32,7 +32,6 @@ import { nodeResolve } from '@rollup/plugin-node-resolve'; import commonjs from '@rollup/plugin-commonjs'; import ts from 'rollup-plugin-ts'; // Prefered over @rollup/plugin-typescript as it bundles .d.ts files import { banner } from '../../banner'; -import compiler from '@ampproject/rollup-plugin-closure-compiler'; import { terser } from 'rollup-plugin-terser'; import cleanup from 'rollup-plugin-cleanup'; import pkg from './package.json'; @@ -51,7 +50,7 @@ export default [ }, { input: './src/index.ts', - plugins: [...umdPlugins, compiler(), terser(), cleanup({ comments: 'none' }), banner()], + plugins: [...umdPlugins, terser(), cleanup({ comments: 'none' }), banner()], treeshake: { moduleSideEffects: ['sha1'] }, output: [{ file: pkg.main.replace('.js', '.min.js'), format: 'umd', sourcemap: true, name: umdName }], }, diff --git a/plugins/browser-plugin-geolocation/CHANGELOG.json b/plugins/browser-plugin-geolocation/CHANGELOG.json index 18b3b12b1..7ef792ae1 100644 --- a/plugins/browser-plugin-geolocation/CHANGELOG.json +++ b/plugins/browser-plugin-geolocation/CHANGELOG.json @@ -1,6 +1,120 @@ { "name": "@snowplow/browser-plugin-geolocation", "entries": [ + { + "version": "4.10.0", + "tag": "@snowplow/browser-plugin-geolocation_v4.10.0", + "date": "Mon, 27 Jul 2026 13:52:14 GMT", + "comments": {} + }, + { + "version": "4.9.0", + "tag": "@snowplow/browser-plugin-geolocation_v4.9.0", + "date": "Tue, 21 Jul 2026 14:53:08 GMT", + "comments": {} + }, + { + "version": "4.8.4", + "tag": "@snowplow/browser-plugin-geolocation_v4.8.4", + "date": "Thu, 02 Jul 2026 10:07:52 GMT", + "comments": {} + }, + { + "version": "4.8.3", + "tag": "@snowplow/browser-plugin-geolocation_v4.8.3", + "date": "Tue, 30 Jun 2026 14:22:03 GMT", + "comments": { + "none": [ + { + "comment": "Update uuid to v11 and remove closure-compiler from the build pipeline" + } + ] + } + }, + { + "version": "4.8.2", + "tag": "@snowplow/browser-plugin-geolocation_v4.8.2", + "date": "Wed, 17 Jun 2026 12:30:12 GMT", + "comments": {} + }, + { + "version": "4.8.1", + "tag": "@snowplow/browser-plugin-geolocation_v4.8.1", + "date": "Wed, 13 May 2026 09:26:05 GMT", + "comments": {} + }, + { + "version": "4.8.0", + "tag": "@snowplow/browser-plugin-geolocation_v4.8.0", + "date": "Tue, 28 Apr 2026 07:56:22 GMT", + "comments": {} + }, + { + "version": "4.7.0", + "tag": "@snowplow/browser-plugin-geolocation_v4.7.0", + "date": "Wed, 01 Apr 2026 12:59:29 GMT", + "comments": {} + }, + { + "version": "4.6.9", + "tag": "@snowplow/browser-plugin-geolocation_v4.6.9", + "date": "Mon, 16 Mar 2026 15:43:06 GMT", + "comments": {} + }, + { + "version": "4.6.8", + "tag": "@snowplow/browser-plugin-geolocation_v4.6.8", + "date": "Tue, 28 Oct 2025 09:46:42 GMT", + "comments": {} + }, + { + "version": "4.6.7", + "tag": "@snowplow/browser-plugin-geolocation_v4.6.7", + "date": "Tue, 07 Oct 2025 14:53:36 GMT", + "comments": {} + }, + { + "version": "4.6.6", + "tag": "@snowplow/browser-plugin-geolocation_v4.6.6", + "date": "Tue, 26 Aug 2025 08:42:27 GMT", + "comments": {} + }, + { + "version": "4.6.5", + "tag": "@snowplow/browser-plugin-geolocation_v4.6.5", + "date": "Wed, 25 Jun 2025 21:16:46 GMT", + "comments": {} + }, + { + "version": "4.6.4", + "tag": "@snowplow/browser-plugin-geolocation_v4.6.4", + "date": "Wed, 25 Jun 2025 12:08:50 GMT", + "comments": {} + }, + { + "version": "4.6.3", + "tag": "@snowplow/browser-plugin-geolocation_v4.6.3", + "date": "Thu, 29 May 2025 19:52:07 GMT", + "comments": {} + }, + { + "version": "4.6.2", + "tag": "@snowplow/browser-plugin-geolocation_v4.6.2", + "date": "Tue, 20 May 2025 07:39:05 GMT", + "comments": {} + }, + { + "version": "4.6.1", + "tag": "@snowplow/browser-plugin-geolocation_v4.6.1", + "date": "Tue, 06 May 2025 13:10:51 GMT", + "comments": {} + }, + { + "version": "4.6.0", + "tag": "@snowplow/browser-plugin-geolocation_v4.6.0", + "date": "Thu, 01 May 2025 09:58:59 GMT", + "comments": {} + }, { "version": "4.5.0", "tag": "@snowplow/browser-plugin-geolocation_v4.5.0", diff --git a/plugins/browser-plugin-geolocation/CHANGELOG.md b/plugins/browser-plugin-geolocation/CHANGELOG.md index 465842fb0..1f2a78159 100644 --- a/plugins/browser-plugin-geolocation/CHANGELOG.md +++ b/plugins/browser-plugin-geolocation/CHANGELOG.md @@ -1,6 +1,98 @@ # Change Log - @snowplow/browser-plugin-geolocation -This log was last generated on Fri, 04 Apr 2025 09:21:23 GMT and should not be manually modified. +This log was last generated on Mon, 27 Jul 2026 13:52:14 GMT and should not be manually modified. + +## 4.10.0 +Mon, 27 Jul 2026 13:52:14 GMT + +_Version update only_ + +## 4.9.0 +Tue, 21 Jul 2026 14:53:08 GMT + +_Version update only_ + +## 4.8.4 +Thu, 02 Jul 2026 10:07:52 GMT + +_Version update only_ + +## 4.8.3 +Tue, 30 Jun 2026 14:22:03 GMT + +### Updates + +- Update uuid to v11 and remove closure-compiler from the build pipeline + +## 4.8.2 +Wed, 17 Jun 2026 12:30:12 GMT + +_Version update only_ + +## 4.8.1 +Wed, 13 May 2026 09:26:05 GMT + +_Version update only_ + +## 4.8.0 +Tue, 28 Apr 2026 07:56:22 GMT + +_Version update only_ + +## 4.7.0 +Wed, 01 Apr 2026 12:59:29 GMT + +_Version update only_ + +## 4.6.9 +Mon, 16 Mar 2026 15:43:06 GMT + +_Version update only_ + +## 4.6.8 +Tue, 28 Oct 2025 09:46:42 GMT + +_Version update only_ + +## 4.6.7 +Tue, 07 Oct 2025 14:53:36 GMT + +_Version update only_ + +## 4.6.6 +Tue, 26 Aug 2025 08:42:27 GMT + +_Version update only_ + +## 4.6.5 +Wed, 25 Jun 2025 21:16:46 GMT + +_Version update only_ + +## 4.6.4 +Wed, 25 Jun 2025 12:08:50 GMT + +_Version update only_ + +## 4.6.3 +Thu, 29 May 2025 19:52:07 GMT + +_Version update only_ + +## 4.6.2 +Tue, 20 May 2025 07:39:05 GMT + +_Version update only_ + +## 4.6.1 +Tue, 06 May 2025 13:10:51 GMT + +_Version update only_ + +## 4.6.0 +Thu, 01 May 2025 09:58:59 GMT + +_Version update only_ ## 4.5.0 Fri, 04 Apr 2025 09:21:23 GMT diff --git a/plugins/browser-plugin-geolocation/package.json b/plugins/browser-plugin-geolocation/package.json index f93d6a183..901ab6d62 100644 --- a/plugins/browser-plugin-geolocation/package.json +++ b/plugins/browser-plugin-geolocation/package.json @@ -1,6 +1,6 @@ { "name": "@snowplow/browser-plugin-geolocation", - "version": "4.5.0", + "version": "4.10.0", "description": "Attaches Geolocation data to Snowplow events", "homepage": "http://bit.ly/sp-js", "bugs": "https://github.com/snowplow/snowplow-javascript-tracker/issues", @@ -27,7 +27,6 @@ "tslib": "^2.3.1" }, "devDependencies": { - "@ampproject/rollup-plugin-closure-compiler": "~0.27.0", "@rollup/plugin-commonjs": "~21.0.2", "@rollup/plugin-node-resolve": "~13.1.3", "@types/jest": "~28.1.1", @@ -48,6 +47,6 @@ "typescript": "~4.6.2" }, "peerDependencies": { - "@snowplow/browser-tracker": "~4.5.0" + "@snowplow/browser-tracker": "~4.10.0" } } diff --git a/plugins/browser-plugin-geolocation/rollup.config.js b/plugins/browser-plugin-geolocation/rollup.config.js index 762f93b25..ae1d93d44 100644 --- a/plugins/browser-plugin-geolocation/rollup.config.js +++ b/plugins/browser-plugin-geolocation/rollup.config.js @@ -32,7 +32,6 @@ import { nodeResolve } from '@rollup/plugin-node-resolve'; import commonjs from '@rollup/plugin-commonjs'; import ts from 'rollup-plugin-ts'; // Prefered over @rollup/plugin-typescript as it bundles .d.ts files import { banner } from '../../banner'; -import compiler from '@ampproject/rollup-plugin-closure-compiler'; import { terser } from 'rollup-plugin-terser'; import cleanup from 'rollup-plugin-cleanup'; import pkg from './package.json'; @@ -51,7 +50,7 @@ export default [ }, { input: './src/index.ts', - plugins: [...umdPlugins, compiler(), terser(), cleanup({ comments: 'none' }), banner()], + plugins: [...umdPlugins, terser(), cleanup({ comments: 'none' }), banner()], treeshake: { moduleSideEffects: ['sha1'] }, output: [{ file: pkg.main.replace('.js', '.min.js'), format: 'umd', sourcemap: true, name: umdName }], }, diff --git a/plugins/browser-plugin-link-click-tracking/CHANGELOG.json b/plugins/browser-plugin-link-click-tracking/CHANGELOG.json index 925fa5ad7..d46303677 100644 --- a/plugins/browser-plugin-link-click-tracking/CHANGELOG.json +++ b/plugins/browser-plugin-link-click-tracking/CHANGELOG.json @@ -1,6 +1,120 @@ { "name": "@snowplow/browser-plugin-link-click-tracking", "entries": [ + { + "version": "4.10.0", + "tag": "@snowplow/browser-plugin-link-click-tracking_v4.10.0", + "date": "Mon, 27 Jul 2026 13:52:14 GMT", + "comments": {} + }, + { + "version": "4.9.0", + "tag": "@snowplow/browser-plugin-link-click-tracking_v4.9.0", + "date": "Tue, 21 Jul 2026 14:53:08 GMT", + "comments": {} + }, + { + "version": "4.8.4", + "tag": "@snowplow/browser-plugin-link-click-tracking_v4.8.4", + "date": "Thu, 02 Jul 2026 10:07:52 GMT", + "comments": {} + }, + { + "version": "4.8.3", + "tag": "@snowplow/browser-plugin-link-click-tracking_v4.8.3", + "date": "Tue, 30 Jun 2026 14:22:03 GMT", + "comments": { + "none": [ + { + "comment": "Update uuid to v11 and remove closure-compiler from the build pipeline" + } + ] + } + }, + { + "version": "4.8.2", + "tag": "@snowplow/browser-plugin-link-click-tracking_v4.8.2", + "date": "Wed, 17 Jun 2026 12:30:12 GMT", + "comments": {} + }, + { + "version": "4.8.1", + "tag": "@snowplow/browser-plugin-link-click-tracking_v4.8.1", + "date": "Wed, 13 May 2026 09:26:05 GMT", + "comments": {} + }, + { + "version": "4.8.0", + "tag": "@snowplow/browser-plugin-link-click-tracking_v4.8.0", + "date": "Tue, 28 Apr 2026 07:56:22 GMT", + "comments": {} + }, + { + "version": "4.7.0", + "tag": "@snowplow/browser-plugin-link-click-tracking_v4.7.0", + "date": "Wed, 01 Apr 2026 12:59:29 GMT", + "comments": {} + }, + { + "version": "4.6.9", + "tag": "@snowplow/browser-plugin-link-click-tracking_v4.6.9", + "date": "Mon, 16 Mar 2026 15:43:06 GMT", + "comments": {} + }, + { + "version": "4.6.8", + "tag": "@snowplow/browser-plugin-link-click-tracking_v4.6.8", + "date": "Tue, 28 Oct 2025 09:46:42 GMT", + "comments": {} + }, + { + "version": "4.6.7", + "tag": "@snowplow/browser-plugin-link-click-tracking_v4.6.7", + "date": "Tue, 07 Oct 2025 14:53:36 GMT", + "comments": {} + }, + { + "version": "4.6.6", + "tag": "@snowplow/browser-plugin-link-click-tracking_v4.6.6", + "date": "Tue, 26 Aug 2025 08:42:27 GMT", + "comments": {} + }, + { + "version": "4.6.5", + "tag": "@snowplow/browser-plugin-link-click-tracking_v4.6.5", + "date": "Wed, 25 Jun 2025 21:16:46 GMT", + "comments": {} + }, + { + "version": "4.6.4", + "tag": "@snowplow/browser-plugin-link-click-tracking_v4.6.4", + "date": "Wed, 25 Jun 2025 12:08:50 GMT", + "comments": {} + }, + { + "version": "4.6.3", + "tag": "@snowplow/browser-plugin-link-click-tracking_v4.6.3", + "date": "Thu, 29 May 2025 19:52:07 GMT", + "comments": {} + }, + { + "version": "4.6.2", + "tag": "@snowplow/browser-plugin-link-click-tracking_v4.6.2", + "date": "Tue, 20 May 2025 07:39:05 GMT", + "comments": {} + }, + { + "version": "4.6.1", + "tag": "@snowplow/browser-plugin-link-click-tracking_v4.6.1", + "date": "Tue, 06 May 2025 13:10:51 GMT", + "comments": {} + }, + { + "version": "4.6.0", + "tag": "@snowplow/browser-plugin-link-click-tracking_v4.6.0", + "date": "Thu, 01 May 2025 09:58:59 GMT", + "comments": {} + }, { "version": "4.5.0", "tag": "@snowplow/browser-plugin-link-click-tracking_v4.5.0", diff --git a/plugins/browser-plugin-link-click-tracking/CHANGELOG.md b/plugins/browser-plugin-link-click-tracking/CHANGELOG.md index 54138739c..1de7ae1d8 100644 --- a/plugins/browser-plugin-link-click-tracking/CHANGELOG.md +++ b/plugins/browser-plugin-link-click-tracking/CHANGELOG.md @@ -1,6 +1,98 @@ # Change Log - @snowplow/browser-plugin-link-click-tracking -This log was last generated on Fri, 04 Apr 2025 09:21:23 GMT and should not be manually modified. +This log was last generated on Mon, 27 Jul 2026 13:52:14 GMT and should not be manually modified. + +## 4.10.0 +Mon, 27 Jul 2026 13:52:14 GMT + +_Version update only_ + +## 4.9.0 +Tue, 21 Jul 2026 14:53:08 GMT + +_Version update only_ + +## 4.8.4 +Thu, 02 Jul 2026 10:07:52 GMT + +_Version update only_ + +## 4.8.3 +Tue, 30 Jun 2026 14:22:03 GMT + +### Updates + +- Update uuid to v11 and remove closure-compiler from the build pipeline + +## 4.8.2 +Wed, 17 Jun 2026 12:30:12 GMT + +_Version update only_ + +## 4.8.1 +Wed, 13 May 2026 09:26:05 GMT + +_Version update only_ + +## 4.8.0 +Tue, 28 Apr 2026 07:56:22 GMT + +_Version update only_ + +## 4.7.0 +Wed, 01 Apr 2026 12:59:29 GMT + +_Version update only_ + +## 4.6.9 +Mon, 16 Mar 2026 15:43:06 GMT + +_Version update only_ + +## 4.6.8 +Tue, 28 Oct 2025 09:46:42 GMT + +_Version update only_ + +## 4.6.7 +Tue, 07 Oct 2025 14:53:36 GMT + +_Version update only_ + +## 4.6.6 +Tue, 26 Aug 2025 08:42:27 GMT + +_Version update only_ + +## 4.6.5 +Wed, 25 Jun 2025 21:16:46 GMT + +_Version update only_ + +## 4.6.4 +Wed, 25 Jun 2025 12:08:50 GMT + +_Version update only_ + +## 4.6.3 +Thu, 29 May 2025 19:52:07 GMT + +_Version update only_ + +## 4.6.2 +Tue, 20 May 2025 07:39:05 GMT + +_Version update only_ + +## 4.6.1 +Tue, 06 May 2025 13:10:51 GMT + +_Version update only_ + +## 4.6.0 +Thu, 01 May 2025 09:58:59 GMT + +_Version update only_ ## 4.5.0 Fri, 04 Apr 2025 09:21:23 GMT diff --git a/plugins/browser-plugin-link-click-tracking/package.json b/plugins/browser-plugin-link-click-tracking/package.json index 3a89a3ce5..00be780d0 100644 --- a/plugins/browser-plugin-link-click-tracking/package.json +++ b/plugins/browser-plugin-link-click-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@snowplow/browser-plugin-link-click-tracking", - "version": "4.5.0", + "version": "4.10.0", "description": "Link Click tracking for Snowplow", "homepage": "http://bit.ly/sp-js", "bugs": "https://github.com/snowplow/snowplow-javascript-tracker/issues", @@ -27,7 +27,6 @@ "tslib": "^2.3.1" }, "devDependencies": { - "@ampproject/rollup-plugin-closure-compiler": "~0.27.0", "@rollup/plugin-commonjs": "~21.0.2", "@rollup/plugin-node-resolve": "~13.1.3", "@types/jest": "~28.1.1", @@ -50,6 +49,6 @@ "typescript": "~4.6.2" }, "peerDependencies": { - "@snowplow/browser-tracker": "~4.5.0" + "@snowplow/browser-tracker": "~4.10.0" } } diff --git a/plugins/browser-plugin-link-click-tracking/rollup.config.js b/plugins/browser-plugin-link-click-tracking/rollup.config.js index afc39459d..132b51fdb 100644 --- a/plugins/browser-plugin-link-click-tracking/rollup.config.js +++ b/plugins/browser-plugin-link-click-tracking/rollup.config.js @@ -32,7 +32,6 @@ import { nodeResolve } from '@rollup/plugin-node-resolve'; import commonjs from '@rollup/plugin-commonjs'; import ts from 'rollup-plugin-ts'; // Prefered over @rollup/plugin-typescript as it bundles .d.ts files import { banner } from '../../banner'; -import compiler from '@ampproject/rollup-plugin-closure-compiler'; import { terser } from 'rollup-plugin-terser'; import cleanup from 'rollup-plugin-cleanup'; import pkg from './package.json'; @@ -51,7 +50,7 @@ export default [ }, { input: './src/index.ts', - plugins: [...umdPlugins, compiler(), terser(), cleanup({ comments: 'none' }), banner()], + plugins: [...umdPlugins, terser(), cleanup({ comments: 'none' }), banner()], treeshake: { moduleSideEffects: ['sha1'] }, output: [{ file: pkg.main.replace('.js', '.min.js'), format: 'umd', sourcemap: true, name: umdName }], }, diff --git a/plugins/browser-plugin-media-tracking/CHANGELOG.json b/plugins/browser-plugin-media-tracking/CHANGELOG.json index 0f9b8ae62..d712cff36 100644 --- a/plugins/browser-plugin-media-tracking/CHANGELOG.json +++ b/plugins/browser-plugin-media-tracking/CHANGELOG.json @@ -1,6 +1,132 @@ { "name": "@snowplow/browser-plugin-media-tracking", "entries": [ + { + "version": "4.10.0", + "tag": "@snowplow/browser-plugin-media-tracking_v4.10.0", + "date": "Mon, 27 Jul 2026 13:52:14 GMT", + "comments": {} + }, + { + "version": "4.9.0", + "tag": "@snowplow/browser-plugin-media-tracking_v4.9.0", + "date": "Tue, 21 Jul 2026 14:53:08 GMT", + "comments": {} + }, + { + "version": "4.8.4", + "tag": "@snowplow/browser-plugin-media-tracking_v4.8.4", + "date": "Thu, 02 Jul 2026 10:07:52 GMT", + "comments": {} + }, + { + "version": "4.8.3", + "tag": "@snowplow/browser-plugin-media-tracking_v4.8.3", + "date": "Tue, 30 Jun 2026 14:22:03 GMT", + "comments": { + "none": [ + { + "comment": "Update uuid to v11 and remove closure-compiler from the build pipeline" + } + ] + } + }, + { + "version": "4.8.2", + "tag": "@snowplow/browser-plugin-media-tracking_v4.8.2", + "date": "Wed, 17 Jun 2026 12:30:12 GMT", + "comments": {} + }, + { + "version": "4.8.1", + "tag": "@snowplow/browser-plugin-media-tracking_v4.8.1", + "date": "Wed, 13 May 2026 09:26:05 GMT", + "comments": {} + }, + { + "version": "4.8.0", + "tag": "@snowplow/browser-plugin-media-tracking_v4.8.0", + "date": "Tue, 28 Apr 2026 07:56:22 GMT", + "comments": {} + }, + { + "version": "4.7.0", + "tag": "@snowplow/browser-plugin-media-tracking_v4.7.0", + "date": "Wed, 01 Apr 2026 12:59:29 GMT", + "comments": {} + }, + { + "version": "4.6.9", + "tag": "@snowplow/browser-plugin-media-tracking_v4.6.9", + "date": "Mon, 16 Mar 2026 15:43:06 GMT", + "comments": {} + }, + { + "version": "4.6.8", + "tag": "@snowplow/browser-plugin-media-tracking_v4.6.8", + "date": "Tue, 28 Oct 2025 09:46:42 GMT", + "comments": {} + }, + { + "version": "4.6.7", + "tag": "@snowplow/browser-plugin-media-tracking_v4.6.7", + "date": "Tue, 07 Oct 2025 14:53:36 GMT", + "comments": {} + }, + { + "version": "4.6.6", + "tag": "@snowplow/browser-plugin-media-tracking_v4.6.6", + "date": "Tue, 26 Aug 2025 08:42:27 GMT", + "comments": { + "none": [ + { + "comment": "Allow using a CSS selector to find media elements" + } + ] + } + }, + { + "version": "4.6.5", + "tag": "@snowplow/browser-plugin-media-tracking_v4.6.5", + "date": "Wed, 25 Jun 2025 21:16:46 GMT", + "comments": {} + }, + { + "version": "4.6.4", + "tag": "@snowplow/browser-plugin-media-tracking_v4.6.4", + "date": "Wed, 25 Jun 2025 12:08:50 GMT", + "comments": {} + }, + { + "version": "4.6.3", + "tag": "@snowplow/browser-plugin-media-tracking_v4.6.3", + "date": "Thu, 29 May 2025 19:52:07 GMT", + "comments": {} + }, + { + "version": "4.6.2", + "tag": "@snowplow/browser-plugin-media-tracking_v4.6.2", + "date": "Tue, 20 May 2025 07:39:05 GMT", + "comments": {} + }, + { + "version": "4.6.1", + "tag": "@snowplow/browser-plugin-media-tracking_v4.6.1", + "date": "Tue, 06 May 2025 13:10:51 GMT", + "comments": { + "none": [ + { + "comment": "Add a default 0 value for start and end in the media_element entity time ranges" + } + ] + } + }, + { + "version": "4.6.0", + "tag": "@snowplow/browser-plugin-media-tracking_v4.6.0", + "date": "Thu, 01 May 2025 09:58:59 GMT", + "comments": {} + }, { "version": "4.5.0", "tag": "@snowplow/browser-plugin-media-tracking_v4.5.0", diff --git a/plugins/browser-plugin-media-tracking/CHANGELOG.md b/plugins/browser-plugin-media-tracking/CHANGELOG.md index 4848c200e..4e1c3549e 100644 --- a/plugins/browser-plugin-media-tracking/CHANGELOG.md +++ b/plugins/browser-plugin-media-tracking/CHANGELOG.md @@ -1,6 +1,102 @@ # Change Log - @snowplow/browser-plugin-media-tracking -This log was last generated on Fri, 04 Apr 2025 09:21:23 GMT and should not be manually modified. +This log was last generated on Mon, 27 Jul 2026 13:52:14 GMT and should not be manually modified. + +## 4.10.0 +Mon, 27 Jul 2026 13:52:14 GMT + +_Version update only_ + +## 4.9.0 +Tue, 21 Jul 2026 14:53:08 GMT + +_Version update only_ + +## 4.8.4 +Thu, 02 Jul 2026 10:07:52 GMT + +_Version update only_ + +## 4.8.3 +Tue, 30 Jun 2026 14:22:03 GMT + +### Updates + +- Update uuid to v11 and remove closure-compiler from the build pipeline + +## 4.8.2 +Wed, 17 Jun 2026 12:30:12 GMT + +_Version update only_ + +## 4.8.1 +Wed, 13 May 2026 09:26:05 GMT + +_Version update only_ + +## 4.8.0 +Tue, 28 Apr 2026 07:56:22 GMT + +_Version update only_ + +## 4.7.0 +Wed, 01 Apr 2026 12:59:29 GMT + +_Version update only_ + +## 4.6.9 +Mon, 16 Mar 2026 15:43:06 GMT + +_Version update only_ + +## 4.6.8 +Tue, 28 Oct 2025 09:46:42 GMT + +_Version update only_ + +## 4.6.7 +Tue, 07 Oct 2025 14:53:36 GMT + +_Version update only_ + +## 4.6.6 +Tue, 26 Aug 2025 08:42:27 GMT + +### Updates + +- Allow using a CSS selector to find media elements + +## 4.6.5 +Wed, 25 Jun 2025 21:16:46 GMT + +_Version update only_ + +## 4.6.4 +Wed, 25 Jun 2025 12:08:50 GMT + +_Version update only_ + +## 4.6.3 +Thu, 29 May 2025 19:52:07 GMT + +_Version update only_ + +## 4.6.2 +Tue, 20 May 2025 07:39:05 GMT + +_Version update only_ + +## 4.6.1 +Tue, 06 May 2025 13:10:51 GMT + +### Updates + +- Add a default 0 value for start and end in the media_element entity time ranges + +## 4.6.0 +Thu, 01 May 2025 09:58:59 GMT + +_Version update only_ ## 4.5.0 Fri, 04 Apr 2025 09:21:23 GMT diff --git a/plugins/browser-plugin-media-tracking/README.md b/plugins/browser-plugin-media-tracking/README.md index 3aeaa63b2..7b32eba4f 100644 --- a/plugins/browser-plugin-media-tracking/README.md +++ b/plugins/browser-plugin-media-tracking/README.md @@ -9,13 +9,13 @@ Adds HTML5 Video and Audio tracking events to your Snowplow tracking. ## Maintainer quick start -Part of the Snowplow JavaScript Tracker monorepo. +Part of the Snowplow JavaScript Tracker monorepo. Build with [Node.js](https://nodejs.org/en/) (18 - 20) and [Rush](https://rushjs.io/). ### Setup repository ```bash -npm install -g @microsoft/rush +npm install -g @microsoft/rush git clone https://github.com/snowplow/snowplow-javascript-tracker.git rush update ``` @@ -34,24 +34,23 @@ Initialize your tracker with the MediaTrackingPlugin: ```js import { newTracker } from '@snowplow/browser-tracker'; -import { MediaTrackingPlugin } from 'snowplow-browser-media-tracker'; +import { MediaTrackingPlugin, startHtml5MediaTracking, endHtml5MediaTracking } from '@snowplow/browser-plugin-media-tracking'; newTracker('sp2', '{{collector}}', { plugins: [ MediaTrackingPlugin() ] }); // Also stores reference at module level ``` -Then, use the `enableMediaTracking` function described below to produce events from your HTML5 Video/Audio element(s). +Then, use the `startHtml5MediaTracking` function described below to produce events from your HTML5 Video/Audio element(s). ```js -enableMediaTracking({ id, options?: { label?, captureEvents?, boundaries?, volumeChangeTrackingInterval? } }) +startHtml5MediaTracking({ video, id }) ``` -| Parameter | Type | Default | Description | Required | -| -------------------------------------- | ---------- | ------------------- | --------------------------------------------------------- | -------- | -| `id` | `string` | - | The HTML id attribute of the media element | Yes | -| `options.label` | `string` | - | An identifiable custom label sent with the event | No | -| `options.captureEvents` | `string[]` | `['DefaultEvents']` | The name(s) of the events to capture | No | -| `options.boundaries` | `number[]` | `[10, 25, 50, 75]` | The progress percentages to fire an event at (if enabled) | No | -| `options.volumeChangeTrackingInterval` | `number` | `250` | The rate at which volume events can be sent | No | +| Parameter | Type | Description | Required | +| ----------| ------------------------ | -------------------------------------------------------------------------------------- | -------- | +| `id` | `string` | A UUID identifier to use as the media session ID | Yes | +| `video` | `string` / `HTMLElement` | The HTML id attribute, CSS selector, or actual media element to track media events for | Yes | + +See the [full documentation](https://docs.snowplow.io/docs/sources/trackers/web-trackers/tracking-events/media/html5/#starthtml5mediatracking) for optional parameters. ## Example Usage @@ -62,20 +61,23 @@ enableMediaTracking({ id, options?: { label?, captureEvents?, boundaries?, volum ``` ```js -import { enableMediaTracking } from '@snowplow/browser-plugin-media-tracking' - -enableMediaTracking({ - id: 'my-video', - options: { - label: "My Custom Video Label", - captureEvents: ["DefaultEvents"], - boundaries: [10, 25, 50, 75], - volumeChangeTrackingInterval: 250, - } -}) +import { startHtml5MediaTracking, endHtml5MediaTracking } from '@snowplow/browser-plugin-media-tracking'; + +const sessionId = crypto.randomUUID(); + +startHtml5MediaTracking({ + id: sessionId, + video: 'my-video', + label: "My Custom Video Label", + boundaries: [10, 25, 50, 75], +}); + +/* ... */ + +endHtml5MediaTracking(sessionId); ``` - For a full list of trackable events, head over to the [docs page](https://docs.snowplowanalytics.com/docs/collecting-data/collecting-from-own-applications/javascript-trackers/browser-tracker/browser-tracker-v3-reference/media-tracking/) + For a full list of parameters and trackable events, head over to the [docs page](https://docs.snowplow.io/docs/sources/trackers/web-trackers/tracking-events/media/html5/#events). ## Copyright and license diff --git a/plugins/browser-plugin-media-tracking/package.json b/plugins/browser-plugin-media-tracking/package.json index 4f4b99ef7..1936da501 100644 --- a/plugins/browser-plugin-media-tracking/package.json +++ b/plugins/browser-plugin-media-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@snowplow/browser-plugin-media-tracking", - "version": "4.5.0", + "version": "4.10.0", "description": "Audio/Video tracking for Snowplow", "homepage": "http://bit.ly/sp-js", "bugs": "https://github.com/snowplow/snowplow-javascript-tracker/issues", @@ -25,15 +25,13 @@ "@snowplow/browser-tracker-core": "workspace:*", "@snowplow/tracker-core": "workspace:*", "tslib": "^2.3.1", - "uuid": "^10.0.0" + "uuid": "^11.1.1" }, "devDependencies": { - "@ampproject/rollup-plugin-closure-compiler": "~0.27.0", "@rollup/plugin-commonjs": "~21.0.2", "@rollup/plugin-node-resolve": "~13.1.3", "@types/jest": "~28.1.1", "@types/jsdom": "~16.2.14", - "@types/uuid": "^10.0.0", "@typescript-eslint/eslint-plugin": "~5.15.0", "@typescript-eslint/parser": "~5.15.0", "eslint": "~8.11.0", @@ -50,6 +48,6 @@ "typescript": "~4.6.2" }, "peerDependencies": { - "@snowplow/browser-tracker": "~4.5.0" + "@snowplow/browser-tracker": "~4.10.0" } } diff --git a/plugins/browser-plugin-media-tracking/rollup.config.js b/plugins/browser-plugin-media-tracking/rollup.config.js index 576bbf899..1003a0d5b 100644 --- a/plugins/browser-plugin-media-tracking/rollup.config.js +++ b/plugins/browser-plugin-media-tracking/rollup.config.js @@ -32,7 +32,6 @@ import { nodeResolve } from '@rollup/plugin-node-resolve'; import commonjs from '@rollup/plugin-commonjs'; import ts from 'rollup-plugin-ts'; import { banner } from '../../banner'; -import compiler from '@ampproject/rollup-plugin-closure-compiler'; import { terser } from 'rollup-plugin-terser'; import cleanup from 'rollup-plugin-cleanup'; import pkg from './package.json'; @@ -51,7 +50,7 @@ export default [ }, { input: './src/index.ts', - plugins: [...umdPlugins, compiler(), terser(), cleanup({ comments: 'none' }), banner(true)], + plugins: [...umdPlugins, terser(), cleanup({ comments: 'none' }), banner(true)], treeshake: { moduleSideEffects: ['sha1'] }, output: [{ file: pkg.main.replace('.js', '.min.js'), format: 'umd', sourcemap: true, name: umdName }], }, diff --git a/plugins/browser-plugin-media-tracking/src/entities.ts b/plugins/browser-plugin-media-tracking/src/entities.ts index dcb88ad36..76e1dac9b 100644 --- a/plugins/browser-plugin-media-tracking/src/entities.ts +++ b/plugins/browser-plugin-media-tracking/src/entities.ts @@ -18,7 +18,7 @@ export function buildHTMLMediaElementEntity(el: HTMLAudioElement | HTMLVideoElem autoPlay: el.autoplay, buffered: timeRangesToObjectArray(el.buffered), controls: el.controls, - currentSrc: el.currentSrc, + currentSrc: el.currentSrc || el.src, defaultMuted: el.defaultMuted || false, defaultPlaybackRate: el.defaultPlaybackRate, error: el.error ? { code: el.error?.code, message: el.error?.message } : null, diff --git a/plugins/browser-plugin-media-tracking/src/findElem.ts b/plugins/browser-plugin-media-tracking/src/findElem.ts index 6fffe2e00..542bf0525 100644 --- a/plugins/browser-plugin-media-tracking/src/findElem.ts +++ b/plugins/browser-plugin-media-tracking/src/findElem.ts @@ -43,9 +43,15 @@ export function waitForElement(config: StringConfig, callback: (element: Element } export function findMediaElement(id: string): SearchResult { - let el: HTMLElement | null = document.getElementById(id); + let el: HTMLElement | null = null; - if (!el) return { err: SEARCH_ERROR.NOT_FOUND }; + try { + el = document.getElementById(id) ?? document.querySelector(id); + } catch (e) {} + + if (!el) { + return { err: SEARCH_ERROR.NOT_FOUND }; + } if (isHtmlAudioElement(el)) return { el }; if (isHtmlVideoElement(el)) { diff --git a/plugins/browser-plugin-media-tracking/src/helperFunctions.ts b/plugins/browser-plugin-media-tracking/src/helperFunctions.ts index d5d025a2e..4fa7ebfb3 100644 --- a/plugins/browser-plugin-media-tracking/src/helperFunctions.ts +++ b/plugins/browser-plugin-media-tracking/src/helperFunctions.ts @@ -53,7 +53,11 @@ type TimeRange = { start: number; end: number }; export function timeRangesToObjectArray(t: TimeRanges): TimeRange[] { const out: TimeRange[] = []; for (let i = 0; i < t.length; i++) { - out.push({ start: t.start(i), end: t.end(i) }); + const start = t.start(i); + const end = t.end(i); + if (isFinite(start) && isFinite(end)) { + out.push({ start: start || 0, end: end || 0 }); + } } return out; } diff --git a/plugins/browser-plugin-media-tracking/tests/media.test.ts b/plugins/browser-plugin-media-tracking/tests/media.test.ts index 8d1f2fe9e..3266fc8e3 100644 --- a/plugins/browser-plugin-media-tracking/tests/media.test.ts +++ b/plugins/browser-plugin-media-tracking/tests/media.test.ts @@ -41,6 +41,12 @@ describe('element searcher', () => { const output = findMediaElement('parentElem'); expect(output).toStrictEqual({ err: 'More than one media element in the provided node' }); }); + + it('falls back to css selector if can not find by id', () => { + document.body.innerHTML = '
'; + const output = findMediaElement('#parentElem > video'); + expect(output.el?.tagName).toBe('VIDEO'); + }); }); describe('dataUrlHandler', () => { diff --git a/plugins/browser-plugin-media/CHANGELOG.json b/plugins/browser-plugin-media/CHANGELOG.json index 56d8efeb1..a77afc59b 100644 --- a/plugins/browser-plugin-media/CHANGELOG.json +++ b/plugins/browser-plugin-media/CHANGELOG.json @@ -1,6 +1,132 @@ { "name": "@snowplow/browser-plugin-media", "entries": [ + { + "version": "4.10.0", + "tag": "@snowplow/browser-plugin-media_v4.10.0", + "date": "Mon, 27 Jul 2026 13:52:14 GMT", + "comments": {} + }, + { + "version": "4.9.0", + "tag": "@snowplow/browser-plugin-media_v4.9.0", + "date": "Tue, 21 Jul 2026 14:53:08 GMT", + "comments": {} + }, + { + "version": "4.8.4", + "tag": "@snowplow/browser-plugin-media_v4.8.4", + "date": "Thu, 02 Jul 2026 10:07:52 GMT", + "comments": {} + }, + { + "version": "4.8.3", + "tag": "@snowplow/browser-plugin-media_v4.8.3", + "date": "Tue, 30 Jun 2026 14:22:03 GMT", + "comments": { + "none": [ + { + "comment": "Update uuid to v11 and remove closure-compiler from the build pipeline" + } + ] + } + }, + { + "version": "4.8.2", + "tag": "@snowplow/browser-plugin-media_v4.8.2", + "date": "Wed, 17 Jun 2026 12:30:12 GMT", + "comments": { + "none": [ + { + "comment": "Prevent empty values in media entity" + } + ] + } + }, + { + "version": "4.8.1", + "tag": "@snowplow/browser-plugin-media_v4.8.1", + "date": "Wed, 13 May 2026 09:26:05 GMT", + "comments": {} + }, + { + "version": "4.8.0", + "tag": "@snowplow/browser-plugin-media_v4.8.0", + "date": "Tue, 28 Apr 2026 07:56:22 GMT", + "comments": {} + }, + { + "version": "4.7.0", + "tag": "@snowplow/browser-plugin-media_v4.7.0", + "date": "Wed, 01 Apr 2026 12:59:29 GMT", + "comments": {} + }, + { + "version": "4.6.9", + "tag": "@snowplow/browser-plugin-media_v4.6.9", + "date": "Mon, 16 Mar 2026 15:43:06 GMT", + "comments": { + "none": [ + { + "comment": "Fix crashes due to large content time jumps in updateDurationStats in media tracking" + } + ] + } + }, + { + "version": "4.6.8", + "tag": "@snowplow/browser-plugin-media_v4.6.8", + "date": "Tue, 28 Oct 2025 09:46:42 GMT", + "comments": {} + }, + { + "version": "4.6.7", + "tag": "@snowplow/browser-plugin-media_v4.6.7", + "date": "Tue, 07 Oct 2025 14:53:36 GMT", + "comments": {} + }, + { + "version": "4.6.6", + "tag": "@snowplow/browser-plugin-media_v4.6.6", + "date": "Tue, 26 Aug 2025 08:42:27 GMT", + "comments": {} + }, + { + "version": "4.6.5", + "tag": "@snowplow/browser-plugin-media_v4.6.5", + "date": "Wed, 25 Jun 2025 21:16:46 GMT", + "comments": {} + }, + { + "version": "4.6.4", + "tag": "@snowplow/browser-plugin-media_v4.6.4", + "date": "Wed, 25 Jun 2025 12:08:50 GMT", + "comments": {} + }, + { + "version": "4.6.3", + "tag": "@snowplow/browser-plugin-media_v4.6.3", + "date": "Thu, 29 May 2025 19:52:07 GMT", + "comments": {} + }, + { + "version": "4.6.2", + "tag": "@snowplow/browser-plugin-media_v4.6.2", + "date": "Tue, 20 May 2025 07:39:05 GMT", + "comments": {} + }, + { + "version": "4.6.1", + "tag": "@snowplow/browser-plugin-media_v4.6.1", + "date": "Tue, 06 May 2025 13:10:51 GMT", + "comments": {} + }, + { + "version": "4.6.0", + "tag": "@snowplow/browser-plugin-media_v4.6.0", + "date": "Thu, 01 May 2025 09:58:59 GMT", + "comments": {} + }, { "version": "4.5.0", "tag": "@snowplow/browser-plugin-media_v4.5.0", diff --git a/plugins/browser-plugin-media/CHANGELOG.md b/plugins/browser-plugin-media/CHANGELOG.md index e90e1cb6e..1fa6268b0 100644 --- a/plugins/browser-plugin-media/CHANGELOG.md +++ b/plugins/browser-plugin-media/CHANGELOG.md @@ -1,6 +1,102 @@ # Change Log - @snowplow/browser-plugin-media -This log was last generated on Fri, 04 Apr 2025 09:21:23 GMT and should not be manually modified. +This log was last generated on Mon, 27 Jul 2026 13:52:14 GMT and should not be manually modified. + +## 4.10.0 +Mon, 27 Jul 2026 13:52:14 GMT + +_Version update only_ + +## 4.9.0 +Tue, 21 Jul 2026 14:53:08 GMT + +_Version update only_ + +## 4.8.4 +Thu, 02 Jul 2026 10:07:52 GMT + +_Version update only_ + +## 4.8.3 +Tue, 30 Jun 2026 14:22:03 GMT + +### Updates + +- Update uuid to v11 and remove closure-compiler from the build pipeline + +## 4.8.2 +Wed, 17 Jun 2026 12:30:12 GMT + +### Updates + +- Prevent empty values in media entity + +## 4.8.1 +Wed, 13 May 2026 09:26:05 GMT + +_Version update only_ + +## 4.8.0 +Tue, 28 Apr 2026 07:56:22 GMT + +_Version update only_ + +## 4.7.0 +Wed, 01 Apr 2026 12:59:29 GMT + +_Version update only_ + +## 4.6.9 +Mon, 16 Mar 2026 15:43:06 GMT + +### Updates + +- Fix crashes due to large content time jumps in updateDurationStats in media tracking + +## 4.6.8 +Tue, 28 Oct 2025 09:46:42 GMT + +_Version update only_ + +## 4.6.7 +Tue, 07 Oct 2025 14:53:36 GMT + +_Version update only_ + +## 4.6.6 +Tue, 26 Aug 2025 08:42:27 GMT + +_Version update only_ + +## 4.6.5 +Wed, 25 Jun 2025 21:16:46 GMT + +_Version update only_ + +## 4.6.4 +Wed, 25 Jun 2025 12:08:50 GMT + +_Version update only_ + +## 4.6.3 +Thu, 29 May 2025 19:52:07 GMT + +_Version update only_ + +## 4.6.2 +Tue, 20 May 2025 07:39:05 GMT + +_Version update only_ + +## 4.6.1 +Tue, 06 May 2025 13:10:51 GMT + +_Version update only_ + +## 4.6.0 +Thu, 01 May 2025 09:58:59 GMT + +_Version update only_ ## 4.5.0 Fri, 04 Apr 2025 09:21:23 GMT diff --git a/plugins/browser-plugin-media/package.json b/plugins/browser-plugin-media/package.json index c6b1f2554..79a8b76ae 100644 --- a/plugins/browser-plugin-media/package.json +++ b/plugins/browser-plugin-media/package.json @@ -1,6 +1,6 @@ { "name": "@snowplow/browser-plugin-media", - "version": "4.5.0", + "version": "4.10.0", "description": "Snowplow media tracking", "homepage": "https://github.com/snowplow/snowplow-javascript-tracker", "bugs": "https://github.com/snowplow/snowplow-javascript-tracker/issues", @@ -25,15 +25,13 @@ "@snowplow/browser-tracker-core": "workspace:*", "@snowplow/tracker-core": "workspace:*", "tslib": "^2.3.1", - "uuid": "^10.0.0" + "uuid": "^11.1.1" }, "devDependencies": { - "@ampproject/rollup-plugin-closure-compiler": "~0.27.0", "@rollup/plugin-commonjs": "~21.0.2", "@rollup/plugin-node-resolve": "~13.1.3", "@types/jest": "~28.1.1", "@types/jsdom": "~16.2.14", - "@types/uuid": "^10.0.0", "@typescript-eslint/eslint-plugin": "~5.15.0", "@typescript-eslint/parser": "~5.15.0", "eslint": "~8.11.0", @@ -50,6 +48,6 @@ "typescript": "~4.6.2" }, "peerDependencies": { - "@snowplow/browser-tracker": "~4.5.0" + "@snowplow/browser-tracker": "~4.10.0" } } diff --git a/plugins/browser-plugin-media/rollup.config.js b/plugins/browser-plugin-media/rollup.config.js index 67bc856d7..dd69f312d 100644 --- a/plugins/browser-plugin-media/rollup.config.js +++ b/plugins/browser-plugin-media/rollup.config.js @@ -32,7 +32,6 @@ import { nodeResolve } from '@rollup/plugin-node-resolve'; import commonjs from '@rollup/plugin-commonjs'; import ts from 'rollup-plugin-ts'; // Prefered over @rollup/plugin-typescript as it bundles .d.ts files import { banner } from '../../banner'; -import compiler from '@ampproject/rollup-plugin-closure-compiler'; import { terser } from 'rollup-plugin-terser'; import cleanup from 'rollup-plugin-cleanup'; import pkg from './package.json'; @@ -51,7 +50,7 @@ export default [ }, { input: './src/index.ts', - plugins: [...umdPlugins, compiler(), terser(), cleanup({ comments: 'none' }), banner()], + plugins: [...umdPlugins, terser(), cleanup({ comments: 'none' }), banner()], treeshake: { moduleSideEffects: ['sha1'] }, output: [{ file: pkg.main.replace('.js', '.min.js'), format: 'umd', sourcemap: true, name: umdName }], }, diff --git a/plugins/browser-plugin-media/src/core.ts b/plugins/browser-plugin-media/src/core.ts index 54f9da276..d1b67ea7e 100644 --- a/plugins/browser-plugin-media/src/core.ts +++ b/plugins/browser-plugin-media/src/core.ts @@ -16,9 +16,14 @@ export function buildMediaPlayerEvent(event: MediaEvent): SelfDescribingJson { } export function buildMediaPlayerEntity(mediaPlayer: MediaPlayer): SelfDescribingJson { + const player = { ...mediaPlayer }; + if (player.label === '') delete player.label; + if (player.playerType === '') delete player.playerType; + if (player.quality === '') delete player.quality; + return { schema: MEDIA_PLAYER_SCHEMA, - data: removeEmptyProperties(mediaPlayer), + data: removeEmptyProperties(player), }; } diff --git a/plugins/browser-plugin-media/src/sessionStats.ts b/plugins/browser-plugin-media/src/sessionStats.ts index edbf32b20..172b13efd 100644 --- a/plugins/browser-plugin-media/src/sessionStats.ts +++ b/plugins/browser-plugin-media/src/sessionStats.ts @@ -17,6 +17,12 @@ type Log = { linearAd: boolean; }; +/** Maximum content-time gap (seconds) for which intermediate seconds are filled into playedSeconds. + * Beyond this threshold only the current second is recorded, preventing unbounded iteration + * for live streams or large VOD seeks where currentTime can be a huge offset. + */ +const MAX_CONTENT_TIME_STEP = 3600; + const adStartTypes = [MediaEventType.AdStart, MediaEventType.AdResume]; const adProgressTypes = [ MediaEventType.AdClick, @@ -134,9 +140,13 @@ export class MediaSessionTrackingStats { } if (!log.paused) { - for (let i = Math.floor(this.lastLog.contentTime); i < log.contentTime; i++) { - this.playedSeconds.add(i); + const gap = log.contentTime - this.lastLog.contentTime; + if (gap <= MAX_CONTENT_TIME_STEP) { + for (let i = Math.floor(this.lastLog.contentTime); i < log.contentTime; i++) { + this.playedSeconds.add(i); + } } + // gap > MAX_CONTENT_TIME_STEP: skip loop, only current second is recorded below } } } diff --git a/plugins/browser-plugin-media/test/api.test.ts b/plugins/browser-plugin-media/test/api.test.ts index 2229243b9..47ab34441 100644 --- a/plugins/browser-plugin-media/test/api.test.ts +++ b/plugins/browser-plugin-media/test/api.test.ts @@ -316,6 +316,38 @@ describe('Media Tracking API', () => { ]); }); + it('strips empty string values from optional media player fields', () => { + startMediaTracking({ + id, + session: false, + player: { label: '', playerType: '', quality: '' }, + }); + + trackMediaPlay({ id }); + + const playerContext = eventQueue[0].context[0].data; + expect(playerContext).not.toHaveProperty('label'); + expect(playerContext).not.toHaveProperty('playerType'); + expect(playerContext).not.toHaveProperty('quality'); + }); + + it('preserves non-empty string values for optional media player fields', () => { + startMediaTracking({ + id, + session: false, + player: { label: 'My Video', playerType: 'html5', quality: '1080p' }, + }); + + trackMediaPlay({ id }); + + const playerContext = eventQueue[0].context[0].data; + expect(playerContext).toMatchObject({ + label: 'My Video', + playerType: 'html5', + quality: '1080p', + }); + }); + it('tracks error event', () => { startMediaTracking({ id, session: false }); diff --git a/plugins/browser-plugin-media/test/sessionStats.test.ts b/plugins/browser-plugin-media/test/sessionStats.test.ts index 1987b46ef..4af9d2ae8 100644 --- a/plugins/browser-plugin-media/test/sessionStats.test.ts +++ b/plugins/browser-plugin-media/test/sessionStats.test.ts @@ -188,6 +188,46 @@ describe('MediaSessionTrackingStats', () => { expect(entity.timePlayedMuted).toBe(30); }); + it('does not crash when content time jump exceeds MAX_CONTENT_TIME_STEP', () => { + let session = new MediaSessionTrackingStats(); + + session.update(MediaEventType.Play, { ...mediaPlayerDefaults, currentTime: 0 }); + + jest.advanceTimersByTime(1000); + session.update(MediaEventType.SeekEnd, { ...mediaPlayerDefaults, currentTime: 7200 }); + + expect(() => session.toSessionContextEntity()).not.toThrow(); + let entity = session.toSessionContextEntity(); + // Loop is skipped; only the start second (0) and the landed second (7200) are recorded + expect(entity.contentWatched).toBeLessThanOrEqual(3); + }); + + it('does not crash when livestream currentTime is a large Unix-epoch offset', () => { + let session = new MediaSessionTrackingStats(); + + const epochBase = 1_700_000_000; + + session.update(MediaEventType.Play, { ...mediaPlayerDefaults, livestream: true, currentTime: epochBase }); + + jest.advanceTimersByTime(1000); + // Jump larger than MAX_CONTENT_TIME_STEP — simulates stream discontinuity + session.update(MediaEventType.Ping, { ...mediaPlayerDefaults, livestream: true, currentTime: epochBase + 7200 }); + + expect(() => session.toSessionContextEntity()).not.toThrow(); + }); + + it('still fills intermediate seconds for gaps within MAX_CONTENT_TIME_STEP', () => { + let session = new MediaSessionTrackingStats(); + + session.update(MediaEventType.Play, { ...mediaPlayerDefaults, currentTime: 0 }); + + jest.advanceTimersByTime(30 * 1000); + session.update(MediaEventType.End, { ...mediaPlayerDefaults, currentTime: 30 }); + + let entity = session.toSessionContextEntity(); + expect(entity.contentWatched).toBe(31); + }); + it('calculates buffering time', () => { let session = new MediaSessionTrackingStats(); diff --git a/plugins/browser-plugin-optimizely-x/CHANGELOG.json b/plugins/browser-plugin-optimizely-x/CHANGELOG.json index 1cca41b58..bcc878688 100644 --- a/plugins/browser-plugin-optimizely-x/CHANGELOG.json +++ b/plugins/browser-plugin-optimizely-x/CHANGELOG.json @@ -1,6 +1,126 @@ { "name": "@snowplow/browser-plugin-optimizely-x", "entries": [ + { + "version": "4.10.0", + "tag": "@snowplow/browser-plugin-optimizely-x_v4.10.0", + "date": "Mon, 27 Jul 2026 13:52:14 GMT", + "comments": {} + }, + { + "version": "4.9.0", + "tag": "@snowplow/browser-plugin-optimizely-x_v4.9.0", + "date": "Tue, 21 Jul 2026 14:53:08 GMT", + "comments": {} + }, + { + "version": "4.8.4", + "tag": "@snowplow/browser-plugin-optimizely-x_v4.8.4", + "date": "Thu, 02 Jul 2026 10:07:52 GMT", + "comments": {} + }, + { + "version": "4.8.3", + "tag": "@snowplow/browser-plugin-optimizely-x_v4.8.3", + "date": "Tue, 30 Jun 2026 14:22:03 GMT", + "comments": { + "none": [ + { + "comment": "Update uuid to v11 and remove closure-compiler from the build pipeline" + } + ] + } + }, + { + "version": "4.8.2", + "tag": "@snowplow/browser-plugin-optimizely-x_v4.8.2", + "date": "Wed, 17 Jun 2026 12:30:12 GMT", + "comments": {} + }, + { + "version": "4.8.1", + "tag": "@snowplow/browser-plugin-optimizely-x_v4.8.1", + "date": "Wed, 13 May 2026 09:26:05 GMT", + "comments": {} + }, + { + "version": "4.8.0", + "tag": "@snowplow/browser-plugin-optimizely-x_v4.8.0", + "date": "Tue, 28 Apr 2026 07:56:22 GMT", + "comments": { + "none": [ + { + "comment": "Fix optimizely personalization campaign attribution" + } + ] + } + }, + { + "version": "4.7.0", + "tag": "@snowplow/browser-plugin-optimizely-x_v4.7.0", + "date": "Wed, 01 Apr 2026 12:59:29 GMT", + "comments": {} + }, + { + "version": "4.6.9", + "tag": "@snowplow/browser-plugin-optimizely-x_v4.6.9", + "date": "Mon, 16 Mar 2026 15:43:06 GMT", + "comments": {} + }, + { + "version": "4.6.8", + "tag": "@snowplow/browser-plugin-optimizely-x_v4.6.8", + "date": "Tue, 28 Oct 2025 09:46:42 GMT", + "comments": {} + }, + { + "version": "4.6.7", + "tag": "@snowplow/browser-plugin-optimizely-x_v4.6.7", + "date": "Tue, 07 Oct 2025 14:53:36 GMT", + "comments": {} + }, + { + "version": "4.6.6", + "tag": "@snowplow/browser-plugin-optimizely-x_v4.6.6", + "date": "Tue, 26 Aug 2025 08:42:27 GMT", + "comments": {} + }, + { + "version": "4.6.5", + "tag": "@snowplow/browser-plugin-optimizely-x_v4.6.5", + "date": "Wed, 25 Jun 2025 21:16:46 GMT", + "comments": {} + }, + { + "version": "4.6.4", + "tag": "@snowplow/browser-plugin-optimizely-x_v4.6.4", + "date": "Wed, 25 Jun 2025 12:08:50 GMT", + "comments": {} + }, + { + "version": "4.6.3", + "tag": "@snowplow/browser-plugin-optimizely-x_v4.6.3", + "date": "Thu, 29 May 2025 19:52:07 GMT", + "comments": {} + }, + { + "version": "4.6.2", + "tag": "@snowplow/browser-plugin-optimizely-x_v4.6.2", + "date": "Tue, 20 May 2025 07:39:05 GMT", + "comments": {} + }, + { + "version": "4.6.1", + "tag": "@snowplow/browser-plugin-optimizely-x_v4.6.1", + "date": "Tue, 06 May 2025 13:10:51 GMT", + "comments": {} + }, + { + "version": "4.6.0", + "tag": "@snowplow/browser-plugin-optimizely-x_v4.6.0", + "date": "Thu, 01 May 2025 09:58:59 GMT", + "comments": {} + }, { "version": "4.5.0", "tag": "@snowplow/browser-plugin-optimizely-x_v4.5.0", diff --git a/plugins/browser-plugin-optimizely-x/CHANGELOG.md b/plugins/browser-plugin-optimizely-x/CHANGELOG.md index f9b420cf4..8c06b772e 100644 --- a/plugins/browser-plugin-optimizely-x/CHANGELOG.md +++ b/plugins/browser-plugin-optimizely-x/CHANGELOG.md @@ -1,6 +1,100 @@ # Change Log - @snowplow/browser-plugin-optimizely-x -This log was last generated on Fri, 04 Apr 2025 09:21:23 GMT and should not be manually modified. +This log was last generated on Mon, 27 Jul 2026 13:52:14 GMT and should not be manually modified. + +## 4.10.0 +Mon, 27 Jul 2026 13:52:14 GMT + +_Version update only_ + +## 4.9.0 +Tue, 21 Jul 2026 14:53:08 GMT + +_Version update only_ + +## 4.8.4 +Thu, 02 Jul 2026 10:07:52 GMT + +_Version update only_ + +## 4.8.3 +Tue, 30 Jun 2026 14:22:03 GMT + +### Updates + +- Update uuid to v11 and remove closure-compiler from the build pipeline + +## 4.8.2 +Wed, 17 Jun 2026 12:30:12 GMT + +_Version update only_ + +## 4.8.1 +Wed, 13 May 2026 09:26:05 GMT + +_Version update only_ + +## 4.8.0 +Tue, 28 Apr 2026 07:56:22 GMT + +### Updates + +- Fix optimizely personalization campaign attribution + +## 4.7.0 +Wed, 01 Apr 2026 12:59:29 GMT + +_Version update only_ + +## 4.6.9 +Mon, 16 Mar 2026 15:43:06 GMT + +_Version update only_ + +## 4.6.8 +Tue, 28 Oct 2025 09:46:42 GMT + +_Version update only_ + +## 4.6.7 +Tue, 07 Oct 2025 14:53:36 GMT + +_Version update only_ + +## 4.6.6 +Tue, 26 Aug 2025 08:42:27 GMT + +_Version update only_ + +## 4.6.5 +Wed, 25 Jun 2025 21:16:46 GMT + +_Version update only_ + +## 4.6.4 +Wed, 25 Jun 2025 12:08:50 GMT + +_Version update only_ + +## 4.6.3 +Thu, 29 May 2025 19:52:07 GMT + +_Version update only_ + +## 4.6.2 +Tue, 20 May 2025 07:39:05 GMT + +_Version update only_ + +## 4.6.1 +Tue, 06 May 2025 13:10:51 GMT + +_Version update only_ + +## 4.6.0 +Thu, 01 May 2025 09:58:59 GMT + +_Version update only_ ## 4.5.0 Fri, 04 Apr 2025 09:21:23 GMT diff --git a/plugins/browser-plugin-optimizely-x/package.json b/plugins/browser-plugin-optimizely-x/package.json index ce659386d..8671e087b 100644 --- a/plugins/browser-plugin-optimizely-x/package.json +++ b/plugins/browser-plugin-optimizely-x/package.json @@ -1,6 +1,6 @@ { "name": "@snowplow/browser-plugin-optimizely-x", - "version": "4.5.0", + "version": "4.10.0", "description": "Attaches OptimizelyX data to Snowplow events", "homepage": "http://bit.ly/sp-js", "bugs": "https://github.com/snowplow/snowplow-javascript-tracker/issues", @@ -27,7 +27,6 @@ "tslib": "^2.3.1" }, "devDependencies": { - "@ampproject/rollup-plugin-closure-compiler": "~0.27.0", "@rollup/plugin-commonjs": "~21.0.2", "@rollup/plugin-node-resolve": "~13.1.3", "@types/jest": "~28.1.1", @@ -48,6 +47,6 @@ "typescript": "~4.6.2" }, "peerDependencies": { - "@snowplow/browser-tracker": "~4.5.0" + "@snowplow/browser-tracker": "~4.10.0" } } diff --git a/plugins/browser-plugin-optimizely-x/rollup.config.js b/plugins/browser-plugin-optimizely-x/rollup.config.js index f2f698d48..5fc40253c 100644 --- a/plugins/browser-plugin-optimizely-x/rollup.config.js +++ b/plugins/browser-plugin-optimizely-x/rollup.config.js @@ -32,7 +32,6 @@ import { nodeResolve } from '@rollup/plugin-node-resolve'; import commonjs from '@rollup/plugin-commonjs'; import ts from 'rollup-plugin-ts'; // Prefered over @rollup/plugin-typescript as it bundles .d.ts files import { banner } from '../../banner'; -import compiler from '@ampproject/rollup-plugin-closure-compiler'; import { terser } from 'rollup-plugin-terser'; import cleanup from 'rollup-plugin-cleanup'; import pkg from './package.json'; @@ -51,7 +50,7 @@ export default [ }, { input: './src/index.ts', - plugins: [...umdPlugins, compiler(), terser(), cleanup({ comments: 'none' }), banner()], + plugins: [...umdPlugins, terser(), cleanup({ comments: 'none' }), banner()], treeshake: { moduleSideEffects: ['sha1'] }, output: [{ file: pkg.main.replace('.js', '.min.js'), format: 'umd', sourcemap: true, name: umdName }], }, diff --git a/plugins/browser-plugin-optimizely-x/src/contexts.ts b/plugins/browser-plugin-optimizely-x/src/contexts.ts index 6b37a46e2..cf195a974 100644 --- a/plugins/browser-plugin-optimizely-x/src/contexts.ts +++ b/plugins/browser-plugin-optimizely-x/src/contexts.ts @@ -32,6 +32,7 @@ * Schema for an Optimizely X summary context */ export interface OptimizelyxSummary { + campaignId?: number | null; experimentId?: number | null; variationName?: string | null; variation?: number | null; diff --git a/plugins/browser-plugin-optimizely-x/src/index.ts b/plugins/browser-plugin-optimizely-x/src/index.ts index b2233bf8d..a57c1257f 100644 --- a/plugins/browser-plugin-optimizely-x/src/index.ts +++ b/plugins/browser-plugin-optimizely-x/src/index.ts @@ -48,7 +48,7 @@ declare global { } /** - * Adds Opimizely X context to events + * Adds Optimizely X context to events */ export function OptimizelyXPlugin(): BrowserPlugin { /** @@ -66,24 +66,32 @@ export function OptimizelyXPlugin(): BrowserPlugin { } /** - * Get data for OptimizelyX contexts - active experiments on current page + * Get data for OptimizelyX contexts - active campaigns on current page. + * Uses getCampaignStates() instead of getActiveExperimentIds() to correctly + * capture campaignId (layerId) for both Web Experimentation and Personalization + * campaigns. For Personalization campaigns, experimentId will reflect the + * experience ID (the sub-unit within the campaign). * - * @returns Array content of lite optimizely lite context + * @returns Array content of optimizely summary context */ function getOptimizelyXSummary(): OptimizelyxSummary[] { const state = getOptimizelyXData('state'); - if (state == null) return []; - var experiment_ids = state.getActiveExperimentIds() || []; - var variationMap = state.getVariationMap(); - var visitor = getOptimizelyXData('visitor'); + if (state == null || typeof state.getCampaignStates !== 'function') return []; + + const campaignStates = state.getCampaignStates({ isActive: true }) || {}; + const visitor = getOptimizelyXData('visitor'); + const visitorId = (visitor && visitor.visitorId && visitor.visitorId.toString()) || null; + + return Object.keys(campaignStates).map((campaignId: string) => { + const campaign = campaignStates[campaignId]; + const experimentId = campaign.experiment && campaign.experiment.id; + const variationId = campaign.variation && campaign.variation.id; + const variationName = + (campaign.variation && campaign.variation.name && campaign.variation.name.toString()) || null; - return experiment_ids.map((activeExperiment: string) => { - var variation = variationMap[activeExperiment]; - var variationName = (variation && variation.name && variation.name.toString()) || null; - var variationId = variation && variation.id; - var visitorId = (visitor && visitor.visitorId && visitor.visitorId.toString()) || null; return { - experimentId: parseAndValidateInt(activeExperiment) || null, + campaignId: parseAndValidateInt(campaignId) || null, + experimentId: parseAndValidateInt(experimentId) || null, variationName: variationName, variation: parseAndValidateInt(variationId) || null, visitorId: visitorId, @@ -100,7 +108,7 @@ export function OptimizelyXPlugin(): BrowserPlugin { function getOptimizelyXSummaryContexts() { return getOptimizelyXSummary().map(function (experiment) { return { - schema: 'iglu:com.optimizely.optimizelyx/summary/jsonschema/1-0-0', + schema: 'iglu:com.optimizely.optimizelyx/summary/jsonschema/1-1-0', data: experiment, }; }); diff --git a/plugins/browser-plugin-performance-navigation-timing/CHANGELOG.json b/plugins/browser-plugin-performance-navigation-timing/CHANGELOG.json index 2b79dd3e2..55e97b9f3 100644 --- a/plugins/browser-plugin-performance-navigation-timing/CHANGELOG.json +++ b/plugins/browser-plugin-performance-navigation-timing/CHANGELOG.json @@ -1,6 +1,120 @@ { "name": "@snowplow/browser-plugin-performance-navigation-timing", "entries": [ + { + "version": "4.10.0", + "tag": "@snowplow/browser-plugin-performance-navigation-timing_v4.10.0", + "date": "Mon, 27 Jul 2026 13:52:14 GMT", + "comments": {} + }, + { + "version": "4.9.0", + "tag": "@snowplow/browser-plugin-performance-navigation-timing_v4.9.0", + "date": "Tue, 21 Jul 2026 14:53:08 GMT", + "comments": {} + }, + { + "version": "4.8.4", + "tag": "@snowplow/browser-plugin-performance-navigation-timing_v4.8.4", + "date": "Thu, 02 Jul 2026 10:07:52 GMT", + "comments": {} + }, + { + "version": "4.8.3", + "tag": "@snowplow/browser-plugin-performance-navigation-timing_v4.8.3", + "date": "Tue, 30 Jun 2026 14:22:03 GMT", + "comments": { + "none": [ + { + "comment": "Update uuid to v11 and remove closure-compiler from the build pipeline" + } + ] + } + }, + { + "version": "4.8.2", + "tag": "@snowplow/browser-plugin-performance-navigation-timing_v4.8.2", + "date": "Wed, 17 Jun 2026 12:30:12 GMT", + "comments": {} + }, + { + "version": "4.8.1", + "tag": "@snowplow/browser-plugin-performance-navigation-timing_v4.8.1", + "date": "Wed, 13 May 2026 09:26:05 GMT", + "comments": {} + }, + { + "version": "4.8.0", + "tag": "@snowplow/browser-plugin-performance-navigation-timing_v4.8.0", + "date": "Tue, 28 Apr 2026 07:56:22 GMT", + "comments": {} + }, + { + "version": "4.7.0", + "tag": "@snowplow/browser-plugin-performance-navigation-timing_v4.7.0", + "date": "Wed, 01 Apr 2026 12:59:29 GMT", + "comments": {} + }, + { + "version": "4.6.9", + "tag": "@snowplow/browser-plugin-performance-navigation-timing_v4.6.9", + "date": "Mon, 16 Mar 2026 15:43:06 GMT", + "comments": {} + }, + { + "version": "4.6.8", + "tag": "@snowplow/browser-plugin-performance-navigation-timing_v4.6.8", + "date": "Tue, 28 Oct 2025 09:46:42 GMT", + "comments": {} + }, + { + "version": "4.6.7", + "tag": "@snowplow/browser-plugin-performance-navigation-timing_v4.6.7", + "date": "Tue, 07 Oct 2025 14:53:36 GMT", + "comments": {} + }, + { + "version": "4.6.6", + "tag": "@snowplow/browser-plugin-performance-navigation-timing_v4.6.6", + "date": "Tue, 26 Aug 2025 08:42:27 GMT", + "comments": {} + }, + { + "version": "4.6.5", + "tag": "@snowplow/browser-plugin-performance-navigation-timing_v4.6.5", + "date": "Wed, 25 Jun 2025 21:16:46 GMT", + "comments": {} + }, + { + "version": "4.6.4", + "tag": "@snowplow/browser-plugin-performance-navigation-timing_v4.6.4", + "date": "Wed, 25 Jun 2025 12:08:50 GMT", + "comments": {} + }, + { + "version": "4.6.3", + "tag": "@snowplow/browser-plugin-performance-navigation-timing_v4.6.3", + "date": "Thu, 29 May 2025 19:52:07 GMT", + "comments": {} + }, + { + "version": "4.6.2", + "tag": "@snowplow/browser-plugin-performance-navigation-timing_v4.6.2", + "date": "Tue, 20 May 2025 07:39:05 GMT", + "comments": {} + }, + { + "version": "4.6.1", + "tag": "@snowplow/browser-plugin-performance-navigation-timing_v4.6.1", + "date": "Tue, 06 May 2025 13:10:51 GMT", + "comments": {} + }, + { + "version": "4.6.0", + "tag": "@snowplow/browser-plugin-performance-navigation-timing_v4.6.0", + "date": "Thu, 01 May 2025 09:58:59 GMT", + "comments": {} + }, { "version": "4.5.0", "tag": "@snowplow/browser-plugin-performance-navigation-timing_v4.5.0", diff --git a/plugins/browser-plugin-performance-navigation-timing/CHANGELOG.md b/plugins/browser-plugin-performance-navigation-timing/CHANGELOG.md index 49daded51..30f497dff 100644 --- a/plugins/browser-plugin-performance-navigation-timing/CHANGELOG.md +++ b/plugins/browser-plugin-performance-navigation-timing/CHANGELOG.md @@ -1,6 +1,98 @@ # Change Log - @snowplow/browser-plugin-performance-navigation-timing -This log was last generated on Fri, 04 Apr 2025 09:21:23 GMT and should not be manually modified. +This log was last generated on Mon, 27 Jul 2026 13:52:14 GMT and should not be manually modified. + +## 4.10.0 +Mon, 27 Jul 2026 13:52:14 GMT + +_Version update only_ + +## 4.9.0 +Tue, 21 Jul 2026 14:53:08 GMT + +_Version update only_ + +## 4.8.4 +Thu, 02 Jul 2026 10:07:52 GMT + +_Version update only_ + +## 4.8.3 +Tue, 30 Jun 2026 14:22:03 GMT + +### Updates + +- Update uuid to v11 and remove closure-compiler from the build pipeline + +## 4.8.2 +Wed, 17 Jun 2026 12:30:12 GMT + +_Version update only_ + +## 4.8.1 +Wed, 13 May 2026 09:26:05 GMT + +_Version update only_ + +## 4.8.0 +Tue, 28 Apr 2026 07:56:22 GMT + +_Version update only_ + +## 4.7.0 +Wed, 01 Apr 2026 12:59:29 GMT + +_Version update only_ + +## 4.6.9 +Mon, 16 Mar 2026 15:43:06 GMT + +_Version update only_ + +## 4.6.8 +Tue, 28 Oct 2025 09:46:42 GMT + +_Version update only_ + +## 4.6.7 +Tue, 07 Oct 2025 14:53:36 GMT + +_Version update only_ + +## 4.6.6 +Tue, 26 Aug 2025 08:42:27 GMT + +_Version update only_ + +## 4.6.5 +Wed, 25 Jun 2025 21:16:46 GMT + +_Version update only_ + +## 4.6.4 +Wed, 25 Jun 2025 12:08:50 GMT + +_Version update only_ + +## 4.6.3 +Thu, 29 May 2025 19:52:07 GMT + +_Version update only_ + +## 4.6.2 +Tue, 20 May 2025 07:39:05 GMT + +_Version update only_ + +## 4.6.1 +Tue, 06 May 2025 13:10:51 GMT + +_Version update only_ + +## 4.6.0 +Thu, 01 May 2025 09:58:59 GMT + +_Version update only_ ## 4.5.0 Fri, 04 Apr 2025 09:21:23 GMT diff --git a/plugins/browser-plugin-performance-navigation-timing/package.json b/plugins/browser-plugin-performance-navigation-timing/package.json index 250d45ead..0477cf797 100644 --- a/plugins/browser-plugin-performance-navigation-timing/package.json +++ b/plugins/browser-plugin-performance-navigation-timing/package.json @@ -1,6 +1,6 @@ { "name": "@snowplow/browser-plugin-performance-navigation-timing", - "version": "4.5.0", + "version": "4.10.0", "description": "Attaches Performance Navigation Timing data to Snowplow events", "homepage": "https://docs.snowplow.io/", "bugs": "https://github.com/snowplow/snowplow-javascript-tracker/issues", @@ -27,7 +27,6 @@ "tslib": "^2.3.1" }, "devDependencies": { - "@ampproject/rollup-plugin-closure-compiler": "~0.27.0", "@rollup/plugin-commonjs": "~21.0.2", "@rollup/plugin-node-resolve": "~13.1.3", "@types/jest": "~28.1.1", @@ -48,6 +47,6 @@ "typescript": "~4.6.2" }, "peerDependencies": { - "@snowplow/browser-tracker": "~4.5.0" + "@snowplow/browser-tracker": "~4.10.0" } } diff --git a/plugins/browser-plugin-performance-navigation-timing/rollup.config.js b/plugins/browser-plugin-performance-navigation-timing/rollup.config.js index b20e36f3b..661f032a4 100644 --- a/plugins/browser-plugin-performance-navigation-timing/rollup.config.js +++ b/plugins/browser-plugin-performance-navigation-timing/rollup.config.js @@ -2,7 +2,6 @@ import { nodeResolve } from '@rollup/plugin-node-resolve'; import commonjs from '@rollup/plugin-commonjs'; import ts from 'rollup-plugin-ts'; // Preferred over @rollup/plugin-typescript as it bundles .d.ts files import { banner } from '../../banner'; -import compiler from '@ampproject/rollup-plugin-closure-compiler'; import { terser } from 'rollup-plugin-terser'; import cleanup from 'rollup-plugin-cleanup'; import pkg from './package.json'; @@ -21,7 +20,7 @@ export default [ }, { input: './src/index.ts', - plugins: [...umdPlugins, compiler(), terser(), cleanup({ comments: 'none' }), banner()], + plugins: [...umdPlugins, terser(), cleanup({ comments: 'none' }), banner()], treeshake: { moduleSideEffects: ['sha1'] }, output: [{ file: pkg.main.replace('.js', '.min.js'), format: 'umd', sourcemap: true, name: umdName }], }, diff --git a/plugins/browser-plugin-performance-timing/CHANGELOG.json b/plugins/browser-plugin-performance-timing/CHANGELOG.json index 448538733..3514d9023 100644 --- a/plugins/browser-plugin-performance-timing/CHANGELOG.json +++ b/plugins/browser-plugin-performance-timing/CHANGELOG.json @@ -1,6 +1,120 @@ { "name": "@snowplow/browser-plugin-performance-timing", "entries": [ + { + "version": "4.10.0", + "tag": "@snowplow/browser-plugin-performance-timing_v4.10.0", + "date": "Mon, 27 Jul 2026 13:52:14 GMT", + "comments": {} + }, + { + "version": "4.9.0", + "tag": "@snowplow/browser-plugin-performance-timing_v4.9.0", + "date": "Tue, 21 Jul 2026 14:53:08 GMT", + "comments": {} + }, + { + "version": "4.8.4", + "tag": "@snowplow/browser-plugin-performance-timing_v4.8.4", + "date": "Thu, 02 Jul 2026 10:07:52 GMT", + "comments": {} + }, + { + "version": "4.8.3", + "tag": "@snowplow/browser-plugin-performance-timing_v4.8.3", + "date": "Tue, 30 Jun 2026 14:22:03 GMT", + "comments": { + "none": [ + { + "comment": "Update uuid to v11 and remove closure-compiler from the build pipeline" + } + ] + } + }, + { + "version": "4.8.2", + "tag": "@snowplow/browser-plugin-performance-timing_v4.8.2", + "date": "Wed, 17 Jun 2026 12:30:12 GMT", + "comments": {} + }, + { + "version": "4.8.1", + "tag": "@snowplow/browser-plugin-performance-timing_v4.8.1", + "date": "Wed, 13 May 2026 09:26:05 GMT", + "comments": {} + }, + { + "version": "4.8.0", + "tag": "@snowplow/browser-plugin-performance-timing_v4.8.0", + "date": "Tue, 28 Apr 2026 07:56:22 GMT", + "comments": {} + }, + { + "version": "4.7.0", + "tag": "@snowplow/browser-plugin-performance-timing_v4.7.0", + "date": "Wed, 01 Apr 2026 12:59:29 GMT", + "comments": {} + }, + { + "version": "4.6.9", + "tag": "@snowplow/browser-plugin-performance-timing_v4.6.9", + "date": "Mon, 16 Mar 2026 15:43:06 GMT", + "comments": {} + }, + { + "version": "4.6.8", + "tag": "@snowplow/browser-plugin-performance-timing_v4.6.8", + "date": "Tue, 28 Oct 2025 09:46:42 GMT", + "comments": {} + }, + { + "version": "4.6.7", + "tag": "@snowplow/browser-plugin-performance-timing_v4.6.7", + "date": "Tue, 07 Oct 2025 14:53:36 GMT", + "comments": {} + }, + { + "version": "4.6.6", + "tag": "@snowplow/browser-plugin-performance-timing_v4.6.6", + "date": "Tue, 26 Aug 2025 08:42:27 GMT", + "comments": {} + }, + { + "version": "4.6.5", + "tag": "@snowplow/browser-plugin-performance-timing_v4.6.5", + "date": "Wed, 25 Jun 2025 21:16:46 GMT", + "comments": {} + }, + { + "version": "4.6.4", + "tag": "@snowplow/browser-plugin-performance-timing_v4.6.4", + "date": "Wed, 25 Jun 2025 12:08:50 GMT", + "comments": {} + }, + { + "version": "4.6.3", + "tag": "@snowplow/browser-plugin-performance-timing_v4.6.3", + "date": "Thu, 29 May 2025 19:52:07 GMT", + "comments": {} + }, + { + "version": "4.6.2", + "tag": "@snowplow/browser-plugin-performance-timing_v4.6.2", + "date": "Tue, 20 May 2025 07:39:05 GMT", + "comments": {} + }, + { + "version": "4.6.1", + "tag": "@snowplow/browser-plugin-performance-timing_v4.6.1", + "date": "Tue, 06 May 2025 13:10:51 GMT", + "comments": {} + }, + { + "version": "4.6.0", + "tag": "@snowplow/browser-plugin-performance-timing_v4.6.0", + "date": "Thu, 01 May 2025 09:58:59 GMT", + "comments": {} + }, { "version": "4.5.0", "tag": "@snowplow/browser-plugin-performance-timing_v4.5.0", diff --git a/plugins/browser-plugin-performance-timing/CHANGELOG.md b/plugins/browser-plugin-performance-timing/CHANGELOG.md index a47ca3196..cbdab8a5a 100644 --- a/plugins/browser-plugin-performance-timing/CHANGELOG.md +++ b/plugins/browser-plugin-performance-timing/CHANGELOG.md @@ -1,6 +1,98 @@ # Change Log - @snowplow/browser-plugin-performance-timing -This log was last generated on Fri, 04 Apr 2025 09:21:23 GMT and should not be manually modified. +This log was last generated on Mon, 27 Jul 2026 13:52:14 GMT and should not be manually modified. + +## 4.10.0 +Mon, 27 Jul 2026 13:52:14 GMT + +_Version update only_ + +## 4.9.0 +Tue, 21 Jul 2026 14:53:08 GMT + +_Version update only_ + +## 4.8.4 +Thu, 02 Jul 2026 10:07:52 GMT + +_Version update only_ + +## 4.8.3 +Tue, 30 Jun 2026 14:22:03 GMT + +### Updates + +- Update uuid to v11 and remove closure-compiler from the build pipeline + +## 4.8.2 +Wed, 17 Jun 2026 12:30:12 GMT + +_Version update only_ + +## 4.8.1 +Wed, 13 May 2026 09:26:05 GMT + +_Version update only_ + +## 4.8.0 +Tue, 28 Apr 2026 07:56:22 GMT + +_Version update only_ + +## 4.7.0 +Wed, 01 Apr 2026 12:59:29 GMT + +_Version update only_ + +## 4.6.9 +Mon, 16 Mar 2026 15:43:06 GMT + +_Version update only_ + +## 4.6.8 +Tue, 28 Oct 2025 09:46:42 GMT + +_Version update only_ + +## 4.6.7 +Tue, 07 Oct 2025 14:53:36 GMT + +_Version update only_ + +## 4.6.6 +Tue, 26 Aug 2025 08:42:27 GMT + +_Version update only_ + +## 4.6.5 +Wed, 25 Jun 2025 21:16:46 GMT + +_Version update only_ + +## 4.6.4 +Wed, 25 Jun 2025 12:08:50 GMT + +_Version update only_ + +## 4.6.3 +Thu, 29 May 2025 19:52:07 GMT + +_Version update only_ + +## 4.6.2 +Tue, 20 May 2025 07:39:05 GMT + +_Version update only_ + +## 4.6.1 +Tue, 06 May 2025 13:10:51 GMT + +_Version update only_ + +## 4.6.0 +Thu, 01 May 2025 09:58:59 GMT + +_Version update only_ ## 4.5.0 Fri, 04 Apr 2025 09:21:23 GMT diff --git a/plugins/browser-plugin-performance-timing/package.json b/plugins/browser-plugin-performance-timing/package.json index efc4121f1..a68192bd0 100644 --- a/plugins/browser-plugin-performance-timing/package.json +++ b/plugins/browser-plugin-performance-timing/package.json @@ -1,6 +1,6 @@ { "name": "@snowplow/browser-plugin-performance-timing", - "version": "4.5.0", + "version": "4.10.0", "description": "Attaches Performance Timing data to Snowplow events", "homepage": "http://bit.ly/sp-js", "bugs": "https://github.com/snowplow/snowplow-javascript-tracker/issues", @@ -27,7 +27,6 @@ "tslib": "^2.3.1" }, "devDependencies": { - "@ampproject/rollup-plugin-closure-compiler": "~0.27.0", "@rollup/plugin-commonjs": "~21.0.2", "@rollup/plugin-node-resolve": "~13.1.3", "@types/jest": "~28.1.1", @@ -48,6 +47,6 @@ "typescript": "~4.6.2" }, "peerDependencies": { - "@snowplow/browser-tracker": "~4.5.0" + "@snowplow/browser-tracker": "~4.10.0" } } diff --git a/plugins/browser-plugin-performance-timing/rollup.config.js b/plugins/browser-plugin-performance-timing/rollup.config.js index d521628e7..a4f9a4981 100644 --- a/plugins/browser-plugin-performance-timing/rollup.config.js +++ b/plugins/browser-plugin-performance-timing/rollup.config.js @@ -32,7 +32,6 @@ import { nodeResolve } from '@rollup/plugin-node-resolve'; import commonjs from '@rollup/plugin-commonjs'; import ts from 'rollup-plugin-ts'; // Prefered over @rollup/plugin-typescript as it bundles .d.ts files import { banner } from '../../banner'; -import compiler from '@ampproject/rollup-plugin-closure-compiler'; import { terser } from 'rollup-plugin-terser'; import cleanup from 'rollup-plugin-cleanup'; import pkg from './package.json'; @@ -51,7 +50,7 @@ export default [ }, { input: './src/index.ts', - plugins: [...umdPlugins, compiler(), terser(), cleanup({ comments: 'none' }), banner()], + plugins: [...umdPlugins, terser(), cleanup({ comments: 'none' }), banner()], treeshake: { moduleSideEffects: ['sha1'] }, output: [{ file: pkg.main.replace('.js', '.min.js'), format: 'umd', sourcemap: true, name: umdName }], }, diff --git a/plugins/browser-plugin-privacy-sandbox/CHANGELOG.json b/plugins/browser-plugin-privacy-sandbox/CHANGELOG.json index c9b9007e1..cab4ee625 100644 --- a/plugins/browser-plugin-privacy-sandbox/CHANGELOG.json +++ b/plugins/browser-plugin-privacy-sandbox/CHANGELOG.json @@ -1,6 +1,120 @@ { "name": "@snowplow/browser-plugin-privacy-sandbox", "entries": [ + { + "version": "4.10.0", + "tag": "@snowplow/browser-plugin-privacy-sandbox_v4.10.0", + "date": "Mon, 27 Jul 2026 13:52:14 GMT", + "comments": {} + }, + { + "version": "4.9.0", + "tag": "@snowplow/browser-plugin-privacy-sandbox_v4.9.0", + "date": "Tue, 21 Jul 2026 14:53:08 GMT", + "comments": {} + }, + { + "version": "4.8.4", + "tag": "@snowplow/browser-plugin-privacy-sandbox_v4.8.4", + "date": "Thu, 02 Jul 2026 10:07:52 GMT", + "comments": {} + }, + { + "version": "4.8.3", + "tag": "@snowplow/browser-plugin-privacy-sandbox_v4.8.3", + "date": "Tue, 30 Jun 2026 14:22:03 GMT", + "comments": { + "none": [ + { + "comment": "Update uuid to v11 and remove closure-compiler from the build pipeline" + } + ] + } + }, + { + "version": "4.8.2", + "tag": "@snowplow/browser-plugin-privacy-sandbox_v4.8.2", + "date": "Wed, 17 Jun 2026 12:30:12 GMT", + "comments": {} + }, + { + "version": "4.8.1", + "tag": "@snowplow/browser-plugin-privacy-sandbox_v4.8.1", + "date": "Wed, 13 May 2026 09:26:05 GMT", + "comments": {} + }, + { + "version": "4.8.0", + "tag": "@snowplow/browser-plugin-privacy-sandbox_v4.8.0", + "date": "Tue, 28 Apr 2026 07:56:22 GMT", + "comments": {} + }, + { + "version": "4.7.0", + "tag": "@snowplow/browser-plugin-privacy-sandbox_v4.7.0", + "date": "Wed, 01 Apr 2026 12:59:29 GMT", + "comments": {} + }, + { + "version": "4.6.9", + "tag": "@snowplow/browser-plugin-privacy-sandbox_v4.6.9", + "date": "Mon, 16 Mar 2026 15:43:06 GMT", + "comments": {} + }, + { + "version": "4.6.8", + "tag": "@snowplow/browser-plugin-privacy-sandbox_v4.6.8", + "date": "Tue, 28 Oct 2025 09:46:42 GMT", + "comments": {} + }, + { + "version": "4.6.7", + "tag": "@snowplow/browser-plugin-privacy-sandbox_v4.6.7", + "date": "Tue, 07 Oct 2025 14:53:36 GMT", + "comments": {} + }, + { + "version": "4.6.6", + "tag": "@snowplow/browser-plugin-privacy-sandbox_v4.6.6", + "date": "Tue, 26 Aug 2025 08:42:27 GMT", + "comments": {} + }, + { + "version": "4.6.5", + "tag": "@snowplow/browser-plugin-privacy-sandbox_v4.6.5", + "date": "Wed, 25 Jun 2025 21:16:46 GMT", + "comments": {} + }, + { + "version": "4.6.4", + "tag": "@snowplow/browser-plugin-privacy-sandbox_v4.6.4", + "date": "Wed, 25 Jun 2025 12:08:50 GMT", + "comments": {} + }, + { + "version": "4.6.3", + "tag": "@snowplow/browser-plugin-privacy-sandbox_v4.6.3", + "date": "Thu, 29 May 2025 19:52:07 GMT", + "comments": {} + }, + { + "version": "4.6.2", + "tag": "@snowplow/browser-plugin-privacy-sandbox_v4.6.2", + "date": "Tue, 20 May 2025 07:39:05 GMT", + "comments": {} + }, + { + "version": "4.6.1", + "tag": "@snowplow/browser-plugin-privacy-sandbox_v4.6.1", + "date": "Tue, 06 May 2025 13:10:51 GMT", + "comments": {} + }, + { + "version": "4.6.0", + "tag": "@snowplow/browser-plugin-privacy-sandbox_v4.6.0", + "date": "Thu, 01 May 2025 09:58:59 GMT", + "comments": {} + }, { "version": "4.5.0", "tag": "@snowplow/browser-plugin-privacy-sandbox_v4.5.0", diff --git a/plugins/browser-plugin-privacy-sandbox/CHANGELOG.md b/plugins/browser-plugin-privacy-sandbox/CHANGELOG.md index 01c7a2912..37f7aa1bc 100644 --- a/plugins/browser-plugin-privacy-sandbox/CHANGELOG.md +++ b/plugins/browser-plugin-privacy-sandbox/CHANGELOG.md @@ -1,6 +1,98 @@ # Change Log - @snowplow/browser-plugin-privacy-sandbox -This log was last generated on Fri, 04 Apr 2025 09:21:23 GMT and should not be manually modified. +This log was last generated on Mon, 27 Jul 2026 13:52:14 GMT and should not be manually modified. + +## 4.10.0 +Mon, 27 Jul 2026 13:52:14 GMT + +_Version update only_ + +## 4.9.0 +Tue, 21 Jul 2026 14:53:08 GMT + +_Version update only_ + +## 4.8.4 +Thu, 02 Jul 2026 10:07:52 GMT + +_Version update only_ + +## 4.8.3 +Tue, 30 Jun 2026 14:22:03 GMT + +### Updates + +- Update uuid to v11 and remove closure-compiler from the build pipeline + +## 4.8.2 +Wed, 17 Jun 2026 12:30:12 GMT + +_Version update only_ + +## 4.8.1 +Wed, 13 May 2026 09:26:05 GMT + +_Version update only_ + +## 4.8.0 +Tue, 28 Apr 2026 07:56:22 GMT + +_Version update only_ + +## 4.7.0 +Wed, 01 Apr 2026 12:59:29 GMT + +_Version update only_ + +## 4.6.9 +Mon, 16 Mar 2026 15:43:06 GMT + +_Version update only_ + +## 4.6.8 +Tue, 28 Oct 2025 09:46:42 GMT + +_Version update only_ + +## 4.6.7 +Tue, 07 Oct 2025 14:53:36 GMT + +_Version update only_ + +## 4.6.6 +Tue, 26 Aug 2025 08:42:27 GMT + +_Version update only_ + +## 4.6.5 +Wed, 25 Jun 2025 21:16:46 GMT + +_Version update only_ + +## 4.6.4 +Wed, 25 Jun 2025 12:08:50 GMT + +_Version update only_ + +## 4.6.3 +Thu, 29 May 2025 19:52:07 GMT + +_Version update only_ + +## 4.6.2 +Tue, 20 May 2025 07:39:05 GMT + +_Version update only_ + +## 4.6.1 +Tue, 06 May 2025 13:10:51 GMT + +_Version update only_ + +## 4.6.0 +Thu, 01 May 2025 09:58:59 GMT + +_Version update only_ ## 4.5.0 Fri, 04 Apr 2025 09:21:23 GMT diff --git a/plugins/browser-plugin-privacy-sandbox/package.json b/plugins/browser-plugin-privacy-sandbox/package.json index 8a2688bb7..21d0984a5 100644 --- a/plugins/browser-plugin-privacy-sandbox/package.json +++ b/plugins/browser-plugin-privacy-sandbox/package.json @@ -1,6 +1,6 @@ { "name": "@snowplow/browser-plugin-privacy-sandbox", - "version": "4.5.0", + "version": "4.10.0", "description": "Allows for the collection of Privacy Sandbox specific data.", "homepage": "https://docs.snowplow.io/", "bugs": "https://github.com/snowplow/snowplow-javascript-tracker/issues", @@ -27,7 +27,6 @@ "tslib": "^2.3.1" }, "devDependencies": { - "@ampproject/rollup-plugin-closure-compiler": "~0.27.0", "@rollup/plugin-commonjs": "~21.0.2", "@rollup/plugin-node-resolve": "~13.1.3", "@types/jest": "~28.1.1", @@ -48,6 +47,6 @@ "typescript": "~4.6.2" }, "peerDependencies": { - "@snowplow/browser-tracker": "~4.5.0" + "@snowplow/browser-tracker": "~4.10.0" } } diff --git a/plugins/browser-plugin-privacy-sandbox/rollup.config.js b/plugins/browser-plugin-privacy-sandbox/rollup.config.js index 6c968d34c..a6bb93344 100644 --- a/plugins/browser-plugin-privacy-sandbox/rollup.config.js +++ b/plugins/browser-plugin-privacy-sandbox/rollup.config.js @@ -2,7 +2,6 @@ import { nodeResolve } from '@rollup/plugin-node-resolve'; import commonjs from '@rollup/plugin-commonjs'; import ts from 'rollup-plugin-ts'; // Preferred over @rollup/plugin-typescript as it bundles .d.ts files import { banner } from '../../banner'; -import compiler from '@ampproject/rollup-plugin-closure-compiler'; import { terser } from 'rollup-plugin-terser'; import cleanup from 'rollup-plugin-cleanup'; import pkg from './package.json'; @@ -21,7 +20,7 @@ export default [ }, { input: './src/index.ts', - plugins: [...umdPlugins, compiler(), terser(), cleanup({ comments: 'none' }), banner()], + plugins: [...umdPlugins, terser(), cleanup({ comments: 'none' }), banner()], treeshake: { moduleSideEffects: ['sha1'] }, output: [{ file: pkg.main.replace('.js', '.min.js'), format: 'umd', sourcemap: true, name: umdName }], }, diff --git a/plugins/browser-plugin-screen-tracking/CHANGELOG.json b/plugins/browser-plugin-screen-tracking/CHANGELOG.json index 46c984e69..3b71081d9 100644 --- a/plugins/browser-plugin-screen-tracking/CHANGELOG.json +++ b/plugins/browser-plugin-screen-tracking/CHANGELOG.json @@ -1,6 +1,120 @@ { "name": "@snowplow/browser-plugin-screen-tracking", "entries": [ + { + "version": "4.10.0", + "tag": "@snowplow/browser-plugin-screen-tracking_v4.10.0", + "date": "Mon, 27 Jul 2026 13:52:14 GMT", + "comments": {} + }, + { + "version": "4.9.0", + "tag": "@snowplow/browser-plugin-screen-tracking_v4.9.0", + "date": "Tue, 21 Jul 2026 14:53:08 GMT", + "comments": {} + }, + { + "version": "4.8.4", + "tag": "@snowplow/browser-plugin-screen-tracking_v4.8.4", + "date": "Thu, 02 Jul 2026 10:07:52 GMT", + "comments": {} + }, + { + "version": "4.8.3", + "tag": "@snowplow/browser-plugin-screen-tracking_v4.8.3", + "date": "Tue, 30 Jun 2026 14:22:03 GMT", + "comments": { + "none": [ + { + "comment": "Update uuid to v11 and remove closure-compiler from the build pipeline" + } + ] + } + }, + { + "version": "4.8.2", + "tag": "@snowplow/browser-plugin-screen-tracking_v4.8.2", + "date": "Wed, 17 Jun 2026 12:30:12 GMT", + "comments": {} + }, + { + "version": "4.8.1", + "tag": "@snowplow/browser-plugin-screen-tracking_v4.8.1", + "date": "Wed, 13 May 2026 09:26:05 GMT", + "comments": {} + }, + { + "version": "4.8.0", + "tag": "@snowplow/browser-plugin-screen-tracking_v4.8.0", + "date": "Tue, 28 Apr 2026 07:56:22 GMT", + "comments": {} + }, + { + "version": "4.7.0", + "tag": "@snowplow/browser-plugin-screen-tracking_v4.7.0", + "date": "Wed, 01 Apr 2026 12:59:29 GMT", + "comments": {} + }, + { + "version": "4.6.9", + "tag": "@snowplow/browser-plugin-screen-tracking_v4.6.9", + "date": "Mon, 16 Mar 2026 15:43:06 GMT", + "comments": {} + }, + { + "version": "4.6.8", + "tag": "@snowplow/browser-plugin-screen-tracking_v4.6.8", + "date": "Tue, 28 Oct 2025 09:46:42 GMT", + "comments": {} + }, + { + "version": "4.6.7", + "tag": "@snowplow/browser-plugin-screen-tracking_v4.6.7", + "date": "Tue, 07 Oct 2025 14:53:36 GMT", + "comments": {} + }, + { + "version": "4.6.6", + "tag": "@snowplow/browser-plugin-screen-tracking_v4.6.6", + "date": "Tue, 26 Aug 2025 08:42:27 GMT", + "comments": {} + }, + { + "version": "4.6.5", + "tag": "@snowplow/browser-plugin-screen-tracking_v4.6.5", + "date": "Wed, 25 Jun 2025 21:16:46 GMT", + "comments": {} + }, + { + "version": "4.6.4", + "tag": "@snowplow/browser-plugin-screen-tracking_v4.6.4", + "date": "Wed, 25 Jun 2025 12:08:50 GMT", + "comments": {} + }, + { + "version": "4.6.3", + "tag": "@snowplow/browser-plugin-screen-tracking_v4.6.3", + "date": "Thu, 29 May 2025 19:52:07 GMT", + "comments": {} + }, + { + "version": "4.6.2", + "tag": "@snowplow/browser-plugin-screen-tracking_v4.6.2", + "date": "Tue, 20 May 2025 07:39:05 GMT", + "comments": {} + }, + { + "version": "4.6.1", + "tag": "@snowplow/browser-plugin-screen-tracking_v4.6.1", + "date": "Tue, 06 May 2025 13:10:51 GMT", + "comments": {} + }, + { + "version": "4.6.0", + "tag": "@snowplow/browser-plugin-screen-tracking_v4.6.0", + "date": "Thu, 01 May 2025 09:58:59 GMT", + "comments": {} + }, { "version": "4.5.0", "tag": "@snowplow/browser-plugin-screen-tracking_v4.5.0", diff --git a/plugins/browser-plugin-screen-tracking/CHANGELOG.md b/plugins/browser-plugin-screen-tracking/CHANGELOG.md index a037165b9..362c77d45 100644 --- a/plugins/browser-plugin-screen-tracking/CHANGELOG.md +++ b/plugins/browser-plugin-screen-tracking/CHANGELOG.md @@ -1,6 +1,98 @@ # Change Log - @snowplow/browser-plugin-screen-tracking -This log was last generated on Fri, 04 Apr 2025 09:21:23 GMT and should not be manually modified. +This log was last generated on Mon, 27 Jul 2026 13:52:14 GMT and should not be manually modified. + +## 4.10.0 +Mon, 27 Jul 2026 13:52:14 GMT + +_Version update only_ + +## 4.9.0 +Tue, 21 Jul 2026 14:53:08 GMT + +_Version update only_ + +## 4.8.4 +Thu, 02 Jul 2026 10:07:52 GMT + +_Version update only_ + +## 4.8.3 +Tue, 30 Jun 2026 14:22:03 GMT + +### Updates + +- Update uuid to v11 and remove closure-compiler from the build pipeline + +## 4.8.2 +Wed, 17 Jun 2026 12:30:12 GMT + +_Version update only_ + +## 4.8.1 +Wed, 13 May 2026 09:26:05 GMT + +_Version update only_ + +## 4.8.0 +Tue, 28 Apr 2026 07:56:22 GMT + +_Version update only_ + +## 4.7.0 +Wed, 01 Apr 2026 12:59:29 GMT + +_Version update only_ + +## 4.6.9 +Mon, 16 Mar 2026 15:43:06 GMT + +_Version update only_ + +## 4.6.8 +Tue, 28 Oct 2025 09:46:42 GMT + +_Version update only_ + +## 4.6.7 +Tue, 07 Oct 2025 14:53:36 GMT + +_Version update only_ + +## 4.6.6 +Tue, 26 Aug 2025 08:42:27 GMT + +_Version update only_ + +## 4.6.5 +Wed, 25 Jun 2025 21:16:46 GMT + +_Version update only_ + +## 4.6.4 +Wed, 25 Jun 2025 12:08:50 GMT + +_Version update only_ + +## 4.6.3 +Thu, 29 May 2025 19:52:07 GMT + +_Version update only_ + +## 4.6.2 +Tue, 20 May 2025 07:39:05 GMT + +_Version update only_ + +## 4.6.1 +Tue, 06 May 2025 13:10:51 GMT + +_Version update only_ + +## 4.6.0 +Thu, 01 May 2025 09:58:59 GMT + +_Version update only_ ## 4.5.0 Fri, 04 Apr 2025 09:21:23 GMT diff --git a/plugins/browser-plugin-screen-tracking/package.json b/plugins/browser-plugin-screen-tracking/package.json index 86052ec13..f4df9c91d 100644 --- a/plugins/browser-plugin-screen-tracking/package.json +++ b/plugins/browser-plugin-screen-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@snowplow/browser-plugin-screen-tracking", - "version": "4.5.0", + "version": "4.10.0", "description": "Snowplow screen tracking", "homepage": "http://bit.ly/sp-js", "bugs": "https://github.com/snowplow/snowplow-javascript-tracker/issues", @@ -25,16 +25,14 @@ "@snowplow/browser-tracker-core": "workspace:*", "@snowplow/tracker-core": "workspace:*", "tslib": "^2.3.1", - "uuid": "^10.0.0" + "uuid": "^11.1.1" }, "devDependencies": { - "@ampproject/rollup-plugin-closure-compiler": "~0.27.0", "@rollup/plugin-commonjs": "~21.0.2", "@rollup/plugin-node-resolve": "~13.1.3", "@types/jest": "~28.1.1", "@types/jsdom": "~16.2.14", "@types/lodash": "~4.14.180", - "@types/uuid": "^10.0.0", "@typescript-eslint/eslint-plugin": "~5.15.0", "@typescript-eslint/parser": "~5.15.0", "eslint": "~8.11.0", @@ -52,6 +50,6 @@ "typescript": "~4.6.2" }, "peerDependencies": { - "@snowplow/browser-tracker": "~4.5.0" + "@snowplow/browser-tracker": "~4.10.0" } } diff --git a/plugins/browser-plugin-screen-tracking/rollup.config.js b/plugins/browser-plugin-screen-tracking/rollup.config.js index 817d14255..078114499 100644 --- a/plugins/browser-plugin-screen-tracking/rollup.config.js +++ b/plugins/browser-plugin-screen-tracking/rollup.config.js @@ -32,7 +32,6 @@ import { nodeResolve } from '@rollup/plugin-node-resolve'; import commonjs from '@rollup/plugin-commonjs'; import ts from 'rollup-plugin-ts'; // Prefered over @rollup/plugin-typescript as it bundles .d.ts files import { banner } from '../../banner'; -import compiler from '@ampproject/rollup-plugin-closure-compiler'; import { terser } from 'rollup-plugin-terser'; import cleanup from 'rollup-plugin-cleanup'; import pkg from './package.json'; @@ -51,7 +50,7 @@ export default [ }, { input: './src/index.ts', - plugins: [...umdPlugins, compiler(), terser(), cleanup({ comments: 'none' }), banner()], + plugins: [...umdPlugins, terser(), cleanup({ comments: 'none' }), banner()], treeshake: { moduleSideEffects: ['sha1'] }, output: [{ file: pkg.main.replace('.js', '.min.js'), format: 'umd', sourcemap: true, name: umdName }], }, diff --git a/plugins/browser-plugin-site-tracking/CHANGELOG.json b/plugins/browser-plugin-site-tracking/CHANGELOG.json index fcab9db80..4bf371e17 100644 --- a/plugins/browser-plugin-site-tracking/CHANGELOG.json +++ b/plugins/browser-plugin-site-tracking/CHANGELOG.json @@ -1,6 +1,120 @@ { "name": "@snowplow/browser-plugin-site-tracking", "entries": [ + { + "version": "4.10.0", + "tag": "@snowplow/browser-plugin-site-tracking_v4.10.0", + "date": "Mon, 27 Jul 2026 13:52:14 GMT", + "comments": {} + }, + { + "version": "4.9.0", + "tag": "@snowplow/browser-plugin-site-tracking_v4.9.0", + "date": "Tue, 21 Jul 2026 14:53:08 GMT", + "comments": {} + }, + { + "version": "4.8.4", + "tag": "@snowplow/browser-plugin-site-tracking_v4.8.4", + "date": "Thu, 02 Jul 2026 10:07:52 GMT", + "comments": {} + }, + { + "version": "4.8.3", + "tag": "@snowplow/browser-plugin-site-tracking_v4.8.3", + "date": "Tue, 30 Jun 2026 14:22:03 GMT", + "comments": { + "none": [ + { + "comment": "Update uuid to v11 and remove closure-compiler from the build pipeline" + } + ] + } + }, + { + "version": "4.8.2", + "tag": "@snowplow/browser-plugin-site-tracking_v4.8.2", + "date": "Wed, 17 Jun 2026 12:30:12 GMT", + "comments": {} + }, + { + "version": "4.8.1", + "tag": "@snowplow/browser-plugin-site-tracking_v4.8.1", + "date": "Wed, 13 May 2026 09:26:05 GMT", + "comments": {} + }, + { + "version": "4.8.0", + "tag": "@snowplow/browser-plugin-site-tracking_v4.8.0", + "date": "Tue, 28 Apr 2026 07:56:22 GMT", + "comments": {} + }, + { + "version": "4.7.0", + "tag": "@snowplow/browser-plugin-site-tracking_v4.7.0", + "date": "Wed, 01 Apr 2026 12:59:29 GMT", + "comments": {} + }, + { + "version": "4.6.9", + "tag": "@snowplow/browser-plugin-site-tracking_v4.6.9", + "date": "Mon, 16 Mar 2026 15:43:06 GMT", + "comments": {} + }, + { + "version": "4.6.8", + "tag": "@snowplow/browser-plugin-site-tracking_v4.6.8", + "date": "Tue, 28 Oct 2025 09:46:42 GMT", + "comments": {} + }, + { + "version": "4.6.7", + "tag": "@snowplow/browser-plugin-site-tracking_v4.6.7", + "date": "Tue, 07 Oct 2025 14:53:36 GMT", + "comments": {} + }, + { + "version": "4.6.6", + "tag": "@snowplow/browser-plugin-site-tracking_v4.6.6", + "date": "Tue, 26 Aug 2025 08:42:27 GMT", + "comments": {} + }, + { + "version": "4.6.5", + "tag": "@snowplow/browser-plugin-site-tracking_v4.6.5", + "date": "Wed, 25 Jun 2025 21:16:46 GMT", + "comments": {} + }, + { + "version": "4.6.4", + "tag": "@snowplow/browser-plugin-site-tracking_v4.6.4", + "date": "Wed, 25 Jun 2025 12:08:50 GMT", + "comments": {} + }, + { + "version": "4.6.3", + "tag": "@snowplow/browser-plugin-site-tracking_v4.6.3", + "date": "Thu, 29 May 2025 19:52:07 GMT", + "comments": {} + }, + { + "version": "4.6.2", + "tag": "@snowplow/browser-plugin-site-tracking_v4.6.2", + "date": "Tue, 20 May 2025 07:39:05 GMT", + "comments": {} + }, + { + "version": "4.6.1", + "tag": "@snowplow/browser-plugin-site-tracking_v4.6.1", + "date": "Tue, 06 May 2025 13:10:51 GMT", + "comments": {} + }, + { + "version": "4.6.0", + "tag": "@snowplow/browser-plugin-site-tracking_v4.6.0", + "date": "Thu, 01 May 2025 09:58:59 GMT", + "comments": {} + }, { "version": "4.5.0", "tag": "@snowplow/browser-plugin-site-tracking_v4.5.0", diff --git a/plugins/browser-plugin-site-tracking/CHANGELOG.md b/plugins/browser-plugin-site-tracking/CHANGELOG.md index fa08e57bb..f043bfe17 100644 --- a/plugins/browser-plugin-site-tracking/CHANGELOG.md +++ b/plugins/browser-plugin-site-tracking/CHANGELOG.md @@ -1,6 +1,98 @@ # Change Log - @snowplow/browser-plugin-site-tracking -This log was last generated on Fri, 04 Apr 2025 09:21:23 GMT and should not be manually modified. +This log was last generated on Mon, 27 Jul 2026 13:52:14 GMT and should not be manually modified. + +## 4.10.0 +Mon, 27 Jul 2026 13:52:14 GMT + +_Version update only_ + +## 4.9.0 +Tue, 21 Jul 2026 14:53:08 GMT + +_Version update only_ + +## 4.8.4 +Thu, 02 Jul 2026 10:07:52 GMT + +_Version update only_ + +## 4.8.3 +Tue, 30 Jun 2026 14:22:03 GMT + +### Updates + +- Update uuid to v11 and remove closure-compiler from the build pipeline + +## 4.8.2 +Wed, 17 Jun 2026 12:30:12 GMT + +_Version update only_ + +## 4.8.1 +Wed, 13 May 2026 09:26:05 GMT + +_Version update only_ + +## 4.8.0 +Tue, 28 Apr 2026 07:56:22 GMT + +_Version update only_ + +## 4.7.0 +Wed, 01 Apr 2026 12:59:29 GMT + +_Version update only_ + +## 4.6.9 +Mon, 16 Mar 2026 15:43:06 GMT + +_Version update only_ + +## 4.6.8 +Tue, 28 Oct 2025 09:46:42 GMT + +_Version update only_ + +## 4.6.7 +Tue, 07 Oct 2025 14:53:36 GMT + +_Version update only_ + +## 4.6.6 +Tue, 26 Aug 2025 08:42:27 GMT + +_Version update only_ + +## 4.6.5 +Wed, 25 Jun 2025 21:16:46 GMT + +_Version update only_ + +## 4.6.4 +Wed, 25 Jun 2025 12:08:50 GMT + +_Version update only_ + +## 4.6.3 +Thu, 29 May 2025 19:52:07 GMT + +_Version update only_ + +## 4.6.2 +Tue, 20 May 2025 07:39:05 GMT + +_Version update only_ + +## 4.6.1 +Tue, 06 May 2025 13:10:51 GMT + +_Version update only_ + +## 4.6.0 +Thu, 01 May 2025 09:58:59 GMT + +_Version update only_ ## 4.5.0 Fri, 04 Apr 2025 09:21:23 GMT diff --git a/plugins/browser-plugin-site-tracking/package.json b/plugins/browser-plugin-site-tracking/package.json index 99883c057..d3e29fdfd 100644 --- a/plugins/browser-plugin-site-tracking/package.json +++ b/plugins/browser-plugin-site-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@snowplow/browser-plugin-site-tracking", - "version": "4.5.0", + "version": "4.10.0", "description": "Site tracking for Snowplow", "homepage": "http://bit.ly/sp-js", "bugs": "https://github.com/snowplow/snowplow-javascript-tracker/issues", @@ -27,7 +27,6 @@ "tslib": "^2.3.1" }, "devDependencies": { - "@ampproject/rollup-plugin-closure-compiler": "~0.27.0", "@rollup/plugin-commonjs": "~21.0.2", "@rollup/plugin-node-resolve": "~13.1.3", "@types/jest": "~28.1.1", @@ -50,6 +49,6 @@ "typescript": "~4.6.2" }, "peerDependencies": { - "@snowplow/browser-tracker": "~4.5.0" + "@snowplow/browser-tracker": "~4.10.0" } } diff --git a/plugins/browser-plugin-site-tracking/rollup.config.js b/plugins/browser-plugin-site-tracking/rollup.config.js index ed8d2fa44..71cebc6a2 100644 --- a/plugins/browser-plugin-site-tracking/rollup.config.js +++ b/plugins/browser-plugin-site-tracking/rollup.config.js @@ -32,7 +32,6 @@ import { nodeResolve } from '@rollup/plugin-node-resolve'; import commonjs from '@rollup/plugin-commonjs'; import ts from 'rollup-plugin-ts'; // Prefered over @rollup/plugin-typescript as it bundles .d.ts files import { banner } from '../../banner'; -import compiler from '@ampproject/rollup-plugin-closure-compiler'; import { terser } from 'rollup-plugin-terser'; import cleanup from 'rollup-plugin-cleanup'; import pkg from './package.json'; @@ -51,7 +50,7 @@ export default [ }, { input: './src/index.ts', - plugins: [...umdPlugins, compiler(), terser(), cleanup({ comments: 'none' }), banner()], + plugins: [...umdPlugins, terser(), cleanup({ comments: 'none' }), banner()], treeshake: { moduleSideEffects: ['sha1'] }, output: [{ file: pkg.main.replace('.js', '.min.js'), format: 'umd', sourcemap: true, name: umdName }], }, diff --git a/plugins/browser-plugin-snowplow-ecommerce/CHANGELOG.json b/plugins/browser-plugin-snowplow-ecommerce/CHANGELOG.json index 8e3f10608..0f189a91d 100644 --- a/plugins/browser-plugin-snowplow-ecommerce/CHANGELOG.json +++ b/plugins/browser-plugin-snowplow-ecommerce/CHANGELOG.json @@ -1,6 +1,126 @@ { "name": "@snowplow/browser-plugin-snowplow-ecommerce", "entries": [ + { + "version": "4.10.0", + "tag": "@snowplow/browser-plugin-snowplow-ecommerce_v4.10.0", + "date": "Mon, 27 Jul 2026 13:52:14 GMT", + "comments": {} + }, + { + "version": "4.9.0", + "tag": "@snowplow/browser-plugin-snowplow-ecommerce_v4.9.0", + "date": "Tue, 21 Jul 2026 14:53:08 GMT", + "comments": {} + }, + { + "version": "4.8.4", + "tag": "@snowplow/browser-plugin-snowplow-ecommerce_v4.8.4", + "date": "Thu, 02 Jul 2026 10:07:52 GMT", + "comments": {} + }, + { + "version": "4.8.3", + "tag": "@snowplow/browser-plugin-snowplow-ecommerce_v4.8.3", + "date": "Tue, 30 Jun 2026 14:22:03 GMT", + "comments": { + "none": [ + { + "comment": "Update uuid to v11 and remove closure-compiler from the build pipeline" + } + ] + } + }, + { + "version": "4.8.2", + "tag": "@snowplow/browser-plugin-snowplow-ecommerce_v4.8.2", + "date": "Wed, 17 Jun 2026 12:30:12 GMT", + "comments": {} + }, + { + "version": "4.8.1", + "tag": "@snowplow/browser-plugin-snowplow-ecommerce_v4.8.1", + "date": "Wed, 13 May 2026 09:26:05 GMT", + "comments": {} + }, + { + "version": "4.8.0", + "tag": "@snowplow/browser-plugin-snowplow-ecommerce_v4.8.0", + "date": "Tue, 28 Apr 2026 07:56:22 GMT", + "comments": {} + }, + { + "version": "4.7.0", + "tag": "@snowplow/browser-plugin-snowplow-ecommerce_v4.7.0", + "date": "Wed, 01 Apr 2026 12:59:29 GMT", + "comments": {} + }, + { + "version": "4.6.9", + "tag": "@snowplow/browser-plugin-snowplow-ecommerce_v4.6.9", + "date": "Mon, 16 Mar 2026 15:43:06 GMT", + "comments": {} + }, + { + "version": "4.6.8", + "tag": "@snowplow/browser-plugin-snowplow-ecommerce_v4.6.8", + "date": "Tue, 28 Oct 2025 09:46:42 GMT", + "comments": {} + }, + { + "version": "4.6.7", + "tag": "@snowplow/browser-plugin-snowplow-ecommerce_v4.6.7", + "date": "Tue, 07 Oct 2025 14:53:36 GMT", + "comments": {} + }, + { + "version": "4.6.6", + "tag": "@snowplow/browser-plugin-snowplow-ecommerce_v4.6.6", + "date": "Tue, 26 Aug 2025 08:42:27 GMT", + "comments": {} + }, + { + "version": "4.6.5", + "tag": "@snowplow/browser-plugin-snowplow-ecommerce_v4.6.5", + "date": "Wed, 25 Jun 2025 21:16:46 GMT", + "comments": {} + }, + { + "version": "4.6.4", + "tag": "@snowplow/browser-plugin-snowplow-ecommerce_v4.6.4", + "date": "Wed, 25 Jun 2025 12:08:50 GMT", + "comments": { + "none": [ + { + "comment": "Fixing GA4 Ecommerce functions to use finalCartValue within ecommerce object" + } + ] + } + }, + { + "version": "4.6.3", + "tag": "@snowplow/browser-plugin-snowplow-ecommerce_v4.6.3", + "date": "Thu, 29 May 2025 19:52:07 GMT", + "comments": {} + }, + { + "version": "4.6.2", + "tag": "@snowplow/browser-plugin-snowplow-ecommerce_v4.6.2", + "date": "Tue, 20 May 2025 07:39:05 GMT", + "comments": {} + }, + { + "version": "4.6.1", + "tag": "@snowplow/browser-plugin-snowplow-ecommerce_v4.6.1", + "date": "Tue, 06 May 2025 13:10:51 GMT", + "comments": {} + }, + { + "version": "4.6.0", + "tag": "@snowplow/browser-plugin-snowplow-ecommerce_v4.6.0", + "date": "Thu, 01 May 2025 09:58:59 GMT", + "comments": {} + }, { "version": "4.5.0", "tag": "@snowplow/browser-plugin-snowplow-ecommerce_v4.5.0", diff --git a/plugins/browser-plugin-snowplow-ecommerce/CHANGELOG.md b/plugins/browser-plugin-snowplow-ecommerce/CHANGELOG.md index 0d53fe27a..b7558a9c0 100644 --- a/plugins/browser-plugin-snowplow-ecommerce/CHANGELOG.md +++ b/plugins/browser-plugin-snowplow-ecommerce/CHANGELOG.md @@ -1,6 +1,100 @@ # Change Log - @snowplow/browser-plugin-snowplow-ecommerce -This log was last generated on Fri, 04 Apr 2025 09:21:23 GMT and should not be manually modified. +This log was last generated on Mon, 27 Jul 2026 13:52:14 GMT and should not be manually modified. + +## 4.10.0 +Mon, 27 Jul 2026 13:52:14 GMT + +_Version update only_ + +## 4.9.0 +Tue, 21 Jul 2026 14:53:08 GMT + +_Version update only_ + +## 4.8.4 +Thu, 02 Jul 2026 10:07:52 GMT + +_Version update only_ + +## 4.8.3 +Tue, 30 Jun 2026 14:22:03 GMT + +### Updates + +- Update uuid to v11 and remove closure-compiler from the build pipeline + +## 4.8.2 +Wed, 17 Jun 2026 12:30:12 GMT + +_Version update only_ + +## 4.8.1 +Wed, 13 May 2026 09:26:05 GMT + +_Version update only_ + +## 4.8.0 +Tue, 28 Apr 2026 07:56:22 GMT + +_Version update only_ + +## 4.7.0 +Wed, 01 Apr 2026 12:59:29 GMT + +_Version update only_ + +## 4.6.9 +Mon, 16 Mar 2026 15:43:06 GMT + +_Version update only_ + +## 4.6.8 +Tue, 28 Oct 2025 09:46:42 GMT + +_Version update only_ + +## 4.6.7 +Tue, 07 Oct 2025 14:53:36 GMT + +_Version update only_ + +## 4.6.6 +Tue, 26 Aug 2025 08:42:27 GMT + +_Version update only_ + +## 4.6.5 +Wed, 25 Jun 2025 21:16:46 GMT + +_Version update only_ + +## 4.6.4 +Wed, 25 Jun 2025 12:08:50 GMT + +### Updates + +- Fixing GA4 Ecommerce functions to use finalCartValue within ecommerce object + +## 4.6.3 +Thu, 29 May 2025 19:52:07 GMT + +_Version update only_ + +## 4.6.2 +Tue, 20 May 2025 07:39:05 GMT + +_Version update only_ + +## 4.6.1 +Tue, 06 May 2025 13:10:51 GMT + +_Version update only_ + +## 4.6.0 +Thu, 01 May 2025 09:58:59 GMT + +_Version update only_ ## 4.5.0 Fri, 04 Apr 2025 09:21:23 GMT diff --git a/plugins/browser-plugin-snowplow-ecommerce/package.json b/plugins/browser-plugin-snowplow-ecommerce/package.json index 68c49b5c8..93a980687 100644 --- a/plugins/browser-plugin-snowplow-ecommerce/package.json +++ b/plugins/browser-plugin-snowplow-ecommerce/package.json @@ -1,6 +1,6 @@ { "name": "@snowplow/browser-plugin-snowplow-ecommerce", - "version": "4.5.0", + "version": "4.10.0", "description": "Snowplow ecommerce tracking", "homepage": "http://bit.ly/sp-js", "bugs": "https://github.com/snowplow/snowplow-javascript-tracker/issues", @@ -27,7 +27,6 @@ "tslib": "^2.3.1" }, "devDependencies": { - "@ampproject/rollup-plugin-closure-compiler": "~0.27.0", "@rollup/plugin-commonjs": "~21.0.2", "@rollup/plugin-node-resolve": "~13.1.3", "@types/jest": "~28.1.1", @@ -50,6 +49,6 @@ "typescript": "~4.6.2" }, "peerDependencies": { - "@snowplow/browser-tracker": "~4.5.0" + "@snowplow/browser-tracker": "~4.10.0" } } diff --git a/plugins/browser-plugin-snowplow-ecommerce/rollup.config.js b/plugins/browser-plugin-snowplow-ecommerce/rollup.config.js index 7184f0fa3..e2fef0d06 100644 --- a/plugins/browser-plugin-snowplow-ecommerce/rollup.config.js +++ b/plugins/browser-plugin-snowplow-ecommerce/rollup.config.js @@ -32,7 +32,6 @@ import { nodeResolve } from '@rollup/plugin-node-resolve'; import commonjs from '@rollup/plugin-commonjs'; import ts from 'rollup-plugin-ts'; // Prefered over @rollup/plugin-typescript as it bundles .d.ts files import { banner } from '../../banner'; -import compiler from '@ampproject/rollup-plugin-closure-compiler'; import { terser } from 'rollup-plugin-terser'; import cleanup from 'rollup-plugin-cleanup'; import pkg from './package.json'; @@ -51,7 +50,7 @@ export default [ }, { input: './src/index.ts', - plugins: [...umdPlugins, compiler(), terser(), cleanup({ comments: 'none' }), banner()], + plugins: [...umdPlugins, terser(), cleanup({ comments: 'none' }), banner()], treeshake: { moduleSideEffects: ['sha1'] }, output: [{ file: pkg.main.replace('.js', '.min.js'), format: 'umd', sourcemap: true, name: umdName }], }, diff --git a/plugins/browser-plugin-snowplow-ecommerce/src/ga4/api.ts b/plugins/browser-plugin-snowplow-ecommerce/src/ga4/api.ts index 21d74d93c..c2a25284f 100644 --- a/plugins/browser-plugin-snowplow-ecommerce/src/ga4/api.ts +++ b/plugins/browser-plugin-snowplow-ecommerce/src/ga4/api.ts @@ -33,21 +33,23 @@ export function trackGA4SelectPromotion(ecommerce: GA4EcommerceObject & Promotio } export function trackGA4AddToCart( - ecommerce: GA4EcommerceObject & Currency, + ecommerce: GA4EcommerceObject & Currency & { finalCartValue?: number }, opts: Options & { finalCartValue: number } ) { const currency = (ecommerce.currency || opts.currency)!; + const finalCartValue = ecommerce.finalCartValue ?? opts.finalCartValue; const products = transformG4ItemsToSPProducts(ecommerce, currency); - trackAddToCart({ products, total_value: opts.finalCartValue, currency }); + trackAddToCart({ products, total_value: finalCartValue, currency }); } export function trackGA4RemoveFromCart( - ecommerce: GA4EcommerceObject & Currency, + ecommerce: GA4EcommerceObject & Currency & { finalCartValue?: number }, opts: Options & { finalCartValue: number } ) { const currency = (ecommerce.currency || opts.currency)!; + const finalCartValue = ecommerce.finalCartValue ?? opts.finalCartValue; const products = transformG4ItemsToSPProducts(ecommerce, currency); - trackRemoveFromCart({ products, total_value: opts.finalCartValue, currency }); + trackRemoveFromCart({ products, total_value: finalCartValue, currency }); } export function trackGA4ViewItem(ecommerce: GA4EcommerceObject, opts: Options = {}) { diff --git a/plugins/browser-plugin-timezone/CHANGELOG.json b/plugins/browser-plugin-timezone/CHANGELOG.json index 6eb2a6c86..64dc8e9d8 100644 --- a/plugins/browser-plugin-timezone/CHANGELOG.json +++ b/plugins/browser-plugin-timezone/CHANGELOG.json @@ -1,6 +1,120 @@ { "name": "@snowplow/browser-plugin-timezone", "entries": [ + { + "version": "4.10.0", + "tag": "@snowplow/browser-plugin-timezone_v4.10.0", + "date": "Mon, 27 Jul 2026 13:52:14 GMT", + "comments": {} + }, + { + "version": "4.9.0", + "tag": "@snowplow/browser-plugin-timezone_v4.9.0", + "date": "Tue, 21 Jul 2026 14:53:08 GMT", + "comments": {} + }, + { + "version": "4.8.4", + "tag": "@snowplow/browser-plugin-timezone_v4.8.4", + "date": "Thu, 02 Jul 2026 10:07:52 GMT", + "comments": {} + }, + { + "version": "4.8.3", + "tag": "@snowplow/browser-plugin-timezone_v4.8.3", + "date": "Tue, 30 Jun 2026 14:22:03 GMT", + "comments": { + "none": [ + { + "comment": "Update uuid to v11 and remove closure-compiler from the build pipeline" + } + ] + } + }, + { + "version": "4.8.2", + "tag": "@snowplow/browser-plugin-timezone_v4.8.2", + "date": "Wed, 17 Jun 2026 12:30:12 GMT", + "comments": {} + }, + { + "version": "4.8.1", + "tag": "@snowplow/browser-plugin-timezone_v4.8.1", + "date": "Wed, 13 May 2026 09:26:05 GMT", + "comments": {} + }, + { + "version": "4.8.0", + "tag": "@snowplow/browser-plugin-timezone_v4.8.0", + "date": "Tue, 28 Apr 2026 07:56:22 GMT", + "comments": {} + }, + { + "version": "4.7.0", + "tag": "@snowplow/browser-plugin-timezone_v4.7.0", + "date": "Wed, 01 Apr 2026 12:59:29 GMT", + "comments": {} + }, + { + "version": "4.6.9", + "tag": "@snowplow/browser-plugin-timezone_v4.6.9", + "date": "Mon, 16 Mar 2026 15:43:06 GMT", + "comments": {} + }, + { + "version": "4.6.8", + "tag": "@snowplow/browser-plugin-timezone_v4.6.8", + "date": "Tue, 28 Oct 2025 09:46:42 GMT", + "comments": {} + }, + { + "version": "4.6.7", + "tag": "@snowplow/browser-plugin-timezone_v4.6.7", + "date": "Tue, 07 Oct 2025 14:53:36 GMT", + "comments": {} + }, + { + "version": "4.6.6", + "tag": "@snowplow/browser-plugin-timezone_v4.6.6", + "date": "Tue, 26 Aug 2025 08:42:27 GMT", + "comments": {} + }, + { + "version": "4.6.5", + "tag": "@snowplow/browser-plugin-timezone_v4.6.5", + "date": "Wed, 25 Jun 2025 21:16:46 GMT", + "comments": {} + }, + { + "version": "4.6.4", + "tag": "@snowplow/browser-plugin-timezone_v4.6.4", + "date": "Wed, 25 Jun 2025 12:08:50 GMT", + "comments": {} + }, + { + "version": "4.6.3", + "tag": "@snowplow/browser-plugin-timezone_v4.6.3", + "date": "Thu, 29 May 2025 19:52:07 GMT", + "comments": {} + }, + { + "version": "4.6.2", + "tag": "@snowplow/browser-plugin-timezone_v4.6.2", + "date": "Tue, 20 May 2025 07:39:05 GMT", + "comments": {} + }, + { + "version": "4.6.1", + "tag": "@snowplow/browser-plugin-timezone_v4.6.1", + "date": "Tue, 06 May 2025 13:10:51 GMT", + "comments": {} + }, + { + "version": "4.6.0", + "tag": "@snowplow/browser-plugin-timezone_v4.6.0", + "date": "Thu, 01 May 2025 09:58:59 GMT", + "comments": {} + }, { "version": "4.5.0", "tag": "@snowplow/browser-plugin-timezone_v4.5.0", diff --git a/plugins/browser-plugin-timezone/CHANGELOG.md b/plugins/browser-plugin-timezone/CHANGELOG.md index 9a616fa0c..f0ccfc585 100644 --- a/plugins/browser-plugin-timezone/CHANGELOG.md +++ b/plugins/browser-plugin-timezone/CHANGELOG.md @@ -1,6 +1,98 @@ # Change Log - @snowplow/browser-plugin-timezone -This log was last generated on Fri, 04 Apr 2025 09:21:23 GMT and should not be manually modified. +This log was last generated on Mon, 27 Jul 2026 13:52:14 GMT and should not be manually modified. + +## 4.10.0 +Mon, 27 Jul 2026 13:52:14 GMT + +_Version update only_ + +## 4.9.0 +Tue, 21 Jul 2026 14:53:08 GMT + +_Version update only_ + +## 4.8.4 +Thu, 02 Jul 2026 10:07:52 GMT + +_Version update only_ + +## 4.8.3 +Tue, 30 Jun 2026 14:22:03 GMT + +### Updates + +- Update uuid to v11 and remove closure-compiler from the build pipeline + +## 4.8.2 +Wed, 17 Jun 2026 12:30:12 GMT + +_Version update only_ + +## 4.8.1 +Wed, 13 May 2026 09:26:05 GMT + +_Version update only_ + +## 4.8.0 +Tue, 28 Apr 2026 07:56:22 GMT + +_Version update only_ + +## 4.7.0 +Wed, 01 Apr 2026 12:59:29 GMT + +_Version update only_ + +## 4.6.9 +Mon, 16 Mar 2026 15:43:06 GMT + +_Version update only_ + +## 4.6.8 +Tue, 28 Oct 2025 09:46:42 GMT + +_Version update only_ + +## 4.6.7 +Tue, 07 Oct 2025 14:53:36 GMT + +_Version update only_ + +## 4.6.6 +Tue, 26 Aug 2025 08:42:27 GMT + +_Version update only_ + +## 4.6.5 +Wed, 25 Jun 2025 21:16:46 GMT + +_Version update only_ + +## 4.6.4 +Wed, 25 Jun 2025 12:08:50 GMT + +_Version update only_ + +## 4.6.3 +Thu, 29 May 2025 19:52:07 GMT + +_Version update only_ + +## 4.6.2 +Tue, 20 May 2025 07:39:05 GMT + +_Version update only_ + +## 4.6.1 +Tue, 06 May 2025 13:10:51 GMT + +_Version update only_ + +## 4.6.0 +Thu, 01 May 2025 09:58:59 GMT + +_Version update only_ ## 4.5.0 Fri, 04 Apr 2025 09:21:23 GMT diff --git a/plugins/browser-plugin-timezone/package.json b/plugins/browser-plugin-timezone/package.json index 4c9b84fdb..64a190911 100644 --- a/plugins/browser-plugin-timezone/package.json +++ b/plugins/browser-plugin-timezone/package.json @@ -1,6 +1,6 @@ { "name": "@snowplow/browser-plugin-timezone", - "version": "4.5.0", + "version": "4.10.0", "description": "Attaches timezone to Snowplow events", "homepage": "http://bit.ly/sp-js", "bugs": "https://github.com/snowplow/snowplow-javascript-tracker/issues", @@ -28,7 +28,6 @@ "tslib": "^2.3.1" }, "devDependencies": { - "@ampproject/rollup-plugin-closure-compiler": "~0.27.0", "@rollup/plugin-commonjs": "~21.0.2", "@rollup/plugin-node-resolve": "~13.1.3", "@types/jest": "~28.1.1", @@ -51,6 +50,6 @@ "typescript": "~4.6.2" }, "peerDependencies": { - "@snowplow/browser-tracker": "~4.5.0" + "@snowplow/browser-tracker": "~4.10.0" } } diff --git a/plugins/browser-plugin-timezone/rollup.config.js b/plugins/browser-plugin-timezone/rollup.config.js index bc665d362..6a08dff32 100644 --- a/plugins/browser-plugin-timezone/rollup.config.js +++ b/plugins/browser-plugin-timezone/rollup.config.js @@ -32,7 +32,6 @@ import { nodeResolve } from '@rollup/plugin-node-resolve'; import commonjs from '@rollup/plugin-commonjs'; import ts from 'rollup-plugin-ts'; // Prefered over @rollup/plugin-typescript as it bundles .d.ts files import { banner } from '../../banner'; -import compiler from '@ampproject/rollup-plugin-closure-compiler'; import { terser } from 'rollup-plugin-terser'; import cleanup from 'rollup-plugin-cleanup'; import pkg from './package.json'; @@ -51,7 +50,7 @@ export default [ }, { input: './src/index.ts', - plugins: [...umdPlugins, compiler(), terser(), cleanup({ comments: 'none' }), banner()], + plugins: [...umdPlugins, terser(), cleanup({ comments: 'none' }), banner()], treeshake: { moduleSideEffects: ['sha1'] }, output: [{ file: pkg.main.replace('.js', '.min.js'), format: 'umd', sourcemap: true, name: umdName }], }, diff --git a/plugins/browser-plugin-vimeo-tracking/CHANGELOG.json b/plugins/browser-plugin-vimeo-tracking/CHANGELOG.json index fa91e4114..657eedfa8 100644 --- a/plugins/browser-plugin-vimeo-tracking/CHANGELOG.json +++ b/plugins/browser-plugin-vimeo-tracking/CHANGELOG.json @@ -1,6 +1,120 @@ { "name": "@snowplow/browser-plugin-vimeo-tracking", "entries": [ + { + "version": "4.10.0", + "tag": "@snowplow/browser-plugin-vimeo-tracking_v4.10.0", + "date": "Mon, 27 Jul 2026 13:52:14 GMT", + "comments": {} + }, + { + "version": "4.9.0", + "tag": "@snowplow/browser-plugin-vimeo-tracking_v4.9.0", + "date": "Tue, 21 Jul 2026 14:53:08 GMT", + "comments": {} + }, + { + "version": "4.8.4", + "tag": "@snowplow/browser-plugin-vimeo-tracking_v4.8.4", + "date": "Thu, 02 Jul 2026 10:07:52 GMT", + "comments": {} + }, + { + "version": "4.8.3", + "tag": "@snowplow/browser-plugin-vimeo-tracking_v4.8.3", + "date": "Tue, 30 Jun 2026 14:22:03 GMT", + "comments": { + "none": [ + { + "comment": "Update uuid to v11 and remove closure-compiler from the build pipeline" + } + ] + } + }, + { + "version": "4.8.2", + "tag": "@snowplow/browser-plugin-vimeo-tracking_v4.8.2", + "date": "Wed, 17 Jun 2026 12:30:12 GMT", + "comments": {} + }, + { + "version": "4.8.1", + "tag": "@snowplow/browser-plugin-vimeo-tracking_v4.8.1", + "date": "Wed, 13 May 2026 09:26:05 GMT", + "comments": {} + }, + { + "version": "4.8.0", + "tag": "@snowplow/browser-plugin-vimeo-tracking_v4.8.0", + "date": "Tue, 28 Apr 2026 07:56:22 GMT", + "comments": {} + }, + { + "version": "4.7.0", + "tag": "@snowplow/browser-plugin-vimeo-tracking_v4.7.0", + "date": "Wed, 01 Apr 2026 12:59:29 GMT", + "comments": {} + }, + { + "version": "4.6.9", + "tag": "@snowplow/browser-plugin-vimeo-tracking_v4.6.9", + "date": "Mon, 16 Mar 2026 15:43:06 GMT", + "comments": {} + }, + { + "version": "4.6.8", + "tag": "@snowplow/browser-plugin-vimeo-tracking_v4.6.8", + "date": "Tue, 28 Oct 2025 09:46:42 GMT", + "comments": {} + }, + { + "version": "4.6.7", + "tag": "@snowplow/browser-plugin-vimeo-tracking_v4.6.7", + "date": "Tue, 07 Oct 2025 14:53:36 GMT", + "comments": {} + }, + { + "version": "4.6.6", + "tag": "@snowplow/browser-plugin-vimeo-tracking_v4.6.6", + "date": "Tue, 26 Aug 2025 08:42:28 GMT", + "comments": {} + }, + { + "version": "4.6.5", + "tag": "@snowplow/browser-plugin-vimeo-tracking_v4.6.5", + "date": "Wed, 25 Jun 2025 21:16:46 GMT", + "comments": {} + }, + { + "version": "4.6.4", + "tag": "@snowplow/browser-plugin-vimeo-tracking_v4.6.4", + "date": "Wed, 25 Jun 2025 12:08:50 GMT", + "comments": {} + }, + { + "version": "4.6.3", + "tag": "@snowplow/browser-plugin-vimeo-tracking_v4.6.3", + "date": "Thu, 29 May 2025 19:52:07 GMT", + "comments": {} + }, + { + "version": "4.6.2", + "tag": "@snowplow/browser-plugin-vimeo-tracking_v4.6.2", + "date": "Tue, 20 May 2025 07:39:05 GMT", + "comments": {} + }, + { + "version": "4.6.1", + "tag": "@snowplow/browser-plugin-vimeo-tracking_v4.6.1", + "date": "Tue, 06 May 2025 13:10:51 GMT", + "comments": {} + }, + { + "version": "4.6.0", + "tag": "@snowplow/browser-plugin-vimeo-tracking_v4.6.0", + "date": "Thu, 01 May 2025 09:58:59 GMT", + "comments": {} + }, { "version": "4.5.0", "tag": "@snowplow/browser-plugin-vimeo-tracking_v4.5.0", diff --git a/plugins/browser-plugin-vimeo-tracking/CHANGELOG.md b/plugins/browser-plugin-vimeo-tracking/CHANGELOG.md index bca9650ea..101e8d814 100644 --- a/plugins/browser-plugin-vimeo-tracking/CHANGELOG.md +++ b/plugins/browser-plugin-vimeo-tracking/CHANGELOG.md @@ -1,6 +1,98 @@ # Change Log - @snowplow/browser-plugin-vimeo-tracking -This log was last generated on Fri, 04 Apr 2025 09:21:23 GMT and should not be manually modified. +This log was last generated on Mon, 27 Jul 2026 13:52:14 GMT and should not be manually modified. + +## 4.10.0 +Mon, 27 Jul 2026 13:52:14 GMT + +_Version update only_ + +## 4.9.0 +Tue, 21 Jul 2026 14:53:08 GMT + +_Version update only_ + +## 4.8.4 +Thu, 02 Jul 2026 10:07:52 GMT + +_Version update only_ + +## 4.8.3 +Tue, 30 Jun 2026 14:22:03 GMT + +### Updates + +- Update uuid to v11 and remove closure-compiler from the build pipeline + +## 4.8.2 +Wed, 17 Jun 2026 12:30:12 GMT + +_Version update only_ + +## 4.8.1 +Wed, 13 May 2026 09:26:05 GMT + +_Version update only_ + +## 4.8.0 +Tue, 28 Apr 2026 07:56:22 GMT + +_Version update only_ + +## 4.7.0 +Wed, 01 Apr 2026 12:59:29 GMT + +_Version update only_ + +## 4.6.9 +Mon, 16 Mar 2026 15:43:06 GMT + +_Version update only_ + +## 4.6.8 +Tue, 28 Oct 2025 09:46:42 GMT + +_Version update only_ + +## 4.6.7 +Tue, 07 Oct 2025 14:53:36 GMT + +_Version update only_ + +## 4.6.6 +Tue, 26 Aug 2025 08:42:28 GMT + +_Version update only_ + +## 4.6.5 +Wed, 25 Jun 2025 21:16:46 GMT + +_Version update only_ + +## 4.6.4 +Wed, 25 Jun 2025 12:08:50 GMT + +_Version update only_ + +## 4.6.3 +Thu, 29 May 2025 19:52:07 GMT + +_Version update only_ + +## 4.6.2 +Tue, 20 May 2025 07:39:05 GMT + +_Version update only_ + +## 4.6.1 +Tue, 06 May 2025 13:10:51 GMT + +_Version update only_ + +## 4.6.0 +Thu, 01 May 2025 09:58:59 GMT + +_Version update only_ ## 4.5.0 Fri, 04 Apr 2025 09:21:23 GMT diff --git a/plugins/browser-plugin-vimeo-tracking/package.json b/plugins/browser-plugin-vimeo-tracking/package.json index 55cca072c..895da65d2 100644 --- a/plugins/browser-plugin-vimeo-tracking/package.json +++ b/plugins/browser-plugin-vimeo-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@snowplow/browser-plugin-vimeo-tracking", - "version": "4.5.0", + "version": "4.10.0", "description": "Vimeo tracking for Snowplow", "homepage": "https://github.com/snowplow/snowplow-javascript-tracker", "bugs": "https://github.com/snowplow/snowplow-javascript-tracker/issues", @@ -28,7 +28,6 @@ "@vimeo/player": "2.16.4" }, "devDependencies": { - "@ampproject/rollup-plugin-closure-compiler": "~0.27.0", "@rollup/plugin-commonjs": "~21.0.2", "@rollup/plugin-node-resolve": "~13.1.3", "@types/jest": "~28.1.1", @@ -50,6 +49,6 @@ "typescript": "~4.6.2" }, "peerDependencies": { - "@snowplow/browser-tracker": "~4.5.0" + "@snowplow/browser-tracker": "~4.10.0" } } diff --git a/plugins/browser-plugin-vimeo-tracking/rollup.config.js b/plugins/browser-plugin-vimeo-tracking/rollup.config.js index 474f254a8..ed22079ee 100644 --- a/plugins/browser-plugin-vimeo-tracking/rollup.config.js +++ b/plugins/browser-plugin-vimeo-tracking/rollup.config.js @@ -2,7 +2,6 @@ import { nodeResolve } from '@rollup/plugin-node-resolve'; import commonjs from '@rollup/plugin-commonjs'; import ts from 'rollup-plugin-ts'; // Prefered over @rollup/plugin-typescript as it bundles .d.ts files import { banner } from '../../banner'; -import compiler from '@ampproject/rollup-plugin-closure-compiler'; import { terser } from 'rollup-plugin-terser'; import cleanup from 'rollup-plugin-cleanup'; import pkg from './package.json'; @@ -21,7 +20,7 @@ export default [ }, { input: './src/index.ts', - plugins: [...umdPlugins, compiler(), terser(), cleanup({ comments: 'none' }), banner()], + plugins: [...umdPlugins, terser(), cleanup({ comments: 'none' }), banner()], treeshake: { moduleSideEffects: ['sha1'] }, output: [{ file: pkg.main.replace('.js', '.min.js'), format: 'umd', sourcemap: true, name: umdName }], }, diff --git a/plugins/browser-plugin-web-vitals/CHANGELOG.json b/plugins/browser-plugin-web-vitals/CHANGELOG.json index 3b293c488..a09262dbb 100644 --- a/plugins/browser-plugin-web-vitals/CHANGELOG.json +++ b/plugins/browser-plugin-web-vitals/CHANGELOG.json @@ -1,6 +1,120 @@ { "name": "@snowplow/browser-plugin-web-vitals", "entries": [ + { + "version": "4.10.0", + "tag": "@snowplow/browser-plugin-web-vitals_v4.10.0", + "date": "Mon, 27 Jul 2026 13:52:14 GMT", + "comments": {} + }, + { + "version": "4.9.0", + "tag": "@snowplow/browser-plugin-web-vitals_v4.9.0", + "date": "Tue, 21 Jul 2026 14:53:08 GMT", + "comments": {} + }, + { + "version": "4.8.4", + "tag": "@snowplow/browser-plugin-web-vitals_v4.8.4", + "date": "Thu, 02 Jul 2026 10:07:52 GMT", + "comments": {} + }, + { + "version": "4.8.3", + "tag": "@snowplow/browser-plugin-web-vitals_v4.8.3", + "date": "Tue, 30 Jun 2026 14:22:03 GMT", + "comments": { + "none": [ + { + "comment": "Update uuid to v11 and remove closure-compiler from the build pipeline" + } + ] + } + }, + { + "version": "4.8.2", + "tag": "@snowplow/browser-plugin-web-vitals_v4.8.2", + "date": "Wed, 17 Jun 2026 12:30:12 GMT", + "comments": {} + }, + { + "version": "4.8.1", + "tag": "@snowplow/browser-plugin-web-vitals_v4.8.1", + "date": "Wed, 13 May 2026 09:26:05 GMT", + "comments": {} + }, + { + "version": "4.8.0", + "tag": "@snowplow/browser-plugin-web-vitals_v4.8.0", + "date": "Tue, 28 Apr 2026 07:56:22 GMT", + "comments": {} + }, + { + "version": "4.7.0", + "tag": "@snowplow/browser-plugin-web-vitals_v4.7.0", + "date": "Wed, 01 Apr 2026 12:59:29 GMT", + "comments": {} + }, + { + "version": "4.6.9", + "tag": "@snowplow/browser-plugin-web-vitals_v4.6.9", + "date": "Mon, 16 Mar 2026 15:43:06 GMT", + "comments": {} + }, + { + "version": "4.6.8", + "tag": "@snowplow/browser-plugin-web-vitals_v4.6.8", + "date": "Tue, 28 Oct 2025 09:46:42 GMT", + "comments": {} + }, + { + "version": "4.6.7", + "tag": "@snowplow/browser-plugin-web-vitals_v4.6.7", + "date": "Tue, 07 Oct 2025 14:53:36 GMT", + "comments": {} + }, + { + "version": "4.6.6", + "tag": "@snowplow/browser-plugin-web-vitals_v4.6.6", + "date": "Tue, 26 Aug 2025 08:42:28 GMT", + "comments": {} + }, + { + "version": "4.6.5", + "tag": "@snowplow/browser-plugin-web-vitals_v4.6.5", + "date": "Wed, 25 Jun 2025 21:16:46 GMT", + "comments": {} + }, + { + "version": "4.6.4", + "tag": "@snowplow/browser-plugin-web-vitals_v4.6.4", + "date": "Wed, 25 Jun 2025 12:08:50 GMT", + "comments": {} + }, + { + "version": "4.6.3", + "tag": "@snowplow/browser-plugin-web-vitals_v4.6.3", + "date": "Thu, 29 May 2025 19:52:07 GMT", + "comments": {} + }, + { + "version": "4.6.2", + "tag": "@snowplow/browser-plugin-web-vitals_v4.6.2", + "date": "Tue, 20 May 2025 07:39:05 GMT", + "comments": {} + }, + { + "version": "4.6.1", + "tag": "@snowplow/browser-plugin-web-vitals_v4.6.1", + "date": "Tue, 06 May 2025 13:10:51 GMT", + "comments": {} + }, + { + "version": "4.6.0", + "tag": "@snowplow/browser-plugin-web-vitals_v4.6.0", + "date": "Thu, 01 May 2025 09:58:59 GMT", + "comments": {} + }, { "version": "4.5.0", "tag": "@snowplow/browser-plugin-web-vitals_v4.5.0", diff --git a/plugins/browser-plugin-web-vitals/CHANGELOG.md b/plugins/browser-plugin-web-vitals/CHANGELOG.md index f1f3a7d61..b7f296cbe 100644 --- a/plugins/browser-plugin-web-vitals/CHANGELOG.md +++ b/plugins/browser-plugin-web-vitals/CHANGELOG.md @@ -1,6 +1,98 @@ # Change Log - @snowplow/browser-plugin-web-vitals -This log was last generated on Fri, 04 Apr 2025 09:21:23 GMT and should not be manually modified. +This log was last generated on Mon, 27 Jul 2026 13:52:14 GMT and should not be manually modified. + +## 4.10.0 +Mon, 27 Jul 2026 13:52:14 GMT + +_Version update only_ + +## 4.9.0 +Tue, 21 Jul 2026 14:53:08 GMT + +_Version update only_ + +## 4.8.4 +Thu, 02 Jul 2026 10:07:52 GMT + +_Version update only_ + +## 4.8.3 +Tue, 30 Jun 2026 14:22:03 GMT + +### Updates + +- Update uuid to v11 and remove closure-compiler from the build pipeline + +## 4.8.2 +Wed, 17 Jun 2026 12:30:12 GMT + +_Version update only_ + +## 4.8.1 +Wed, 13 May 2026 09:26:05 GMT + +_Version update only_ + +## 4.8.0 +Tue, 28 Apr 2026 07:56:22 GMT + +_Version update only_ + +## 4.7.0 +Wed, 01 Apr 2026 12:59:29 GMT + +_Version update only_ + +## 4.6.9 +Mon, 16 Mar 2026 15:43:06 GMT + +_Version update only_ + +## 4.6.8 +Tue, 28 Oct 2025 09:46:42 GMT + +_Version update only_ + +## 4.6.7 +Tue, 07 Oct 2025 14:53:36 GMT + +_Version update only_ + +## 4.6.6 +Tue, 26 Aug 2025 08:42:28 GMT + +_Version update only_ + +## 4.6.5 +Wed, 25 Jun 2025 21:16:46 GMT + +_Version update only_ + +## 4.6.4 +Wed, 25 Jun 2025 12:08:50 GMT + +_Version update only_ + +## 4.6.3 +Thu, 29 May 2025 19:52:07 GMT + +_Version update only_ + +## 4.6.2 +Tue, 20 May 2025 07:39:05 GMT + +_Version update only_ + +## 4.6.1 +Tue, 06 May 2025 13:10:51 GMT + +_Version update only_ + +## 4.6.0 +Thu, 01 May 2025 09:58:59 GMT + +_Version update only_ ## 4.5.0 Fri, 04 Apr 2025 09:21:23 GMT diff --git a/plugins/browser-plugin-web-vitals/package.json b/plugins/browser-plugin-web-vitals/package.json index a458fc434..15ce1f000 100644 --- a/plugins/browser-plugin-web-vitals/package.json +++ b/plugins/browser-plugin-web-vitals/package.json @@ -1,6 +1,6 @@ { "name": "@snowplow/browser-plugin-web-vitals", - "version": "4.5.0", + "version": "4.10.0", "description": "Adds the capability to track web performance metrics categorized as Web Vitals.", "homepage": "https://github.com/snowplow/snowplow-javascript-tracker", "bugs": "https://github.com/snowplow/snowplow-javascript-tracker/issues", @@ -28,7 +28,6 @@ "web-vitals": "~4.2.4" }, "devDependencies": { - "@ampproject/rollup-plugin-closure-compiler": "~0.27.0", "@rollup/plugin-commonjs": "~21.0.2", "@rollup/plugin-node-resolve": "~13.1.3", "@types/jest": "~28.1.1", @@ -49,6 +48,6 @@ "typescript": "~4.6.2" }, "peerDependencies": { - "@snowplow/browser-tracker": "~4.5.0" + "@snowplow/browser-tracker": "~4.10.0" } } diff --git a/plugins/browser-plugin-web-vitals/rollup.config.js b/plugins/browser-plugin-web-vitals/rollup.config.js index 48d2287f5..16fe5d140 100644 --- a/plugins/browser-plugin-web-vitals/rollup.config.js +++ b/plugins/browser-plugin-web-vitals/rollup.config.js @@ -2,7 +2,6 @@ import { nodeResolve } from '@rollup/plugin-node-resolve'; import commonjs from '@rollup/plugin-commonjs'; import ts from 'rollup-plugin-ts'; // Preferred over @rollup/plugin-typescript as it bundles .d.ts files import { banner } from '../../banner'; -import compiler from '@ampproject/rollup-plugin-closure-compiler'; import { terser } from 'rollup-plugin-terser'; import cleanup from 'rollup-plugin-cleanup'; import pkg from './package.json'; @@ -21,7 +20,7 @@ export default [ }, { input: './src/index.ts', - plugins: [...umdPlugins, compiler(), terser(), cleanup({ comments: 'none' }), banner()], + plugins: [...umdPlugins, terser(), cleanup({ comments: 'none' }), banner()], treeshake: { moduleSideEffects: ['sha1'] }, output: [{ file: pkg.main.replace('.js', '.min.js'), format: 'umd', sourcemap: true, name: umdName }], }, diff --git a/plugins/browser-plugin-webview/CHANGELOG.json b/plugins/browser-plugin-webview/CHANGELOG.json index 699da4c5e..d77af85c6 100644 --- a/plugins/browser-plugin-webview/CHANGELOG.json +++ b/plugins/browser-plugin-webview/CHANGELOG.json @@ -1,6 +1,126 @@ { "name": "@snowplow/browser-plugin-webview", "entries": [ + { + "version": "4.10.0", + "tag": "@snowplow/browser-plugin-webview_v4.10.0", + "date": "Mon, 27 Jul 2026 13:52:14 GMT", + "comments": { + "none": [ + { + "comment": "Add test coverage for disableSessionContextWithinWebView option suppressing client_session entity in hybrid native+WebView deployments" + } + ] + } + }, + { + "version": "4.9.0", + "tag": "@snowplow/browser-plugin-webview_v4.9.0", + "date": "Tue, 21 Jul 2026 14:53:08 GMT", + "comments": {} + }, + { + "version": "4.8.4", + "tag": "@snowplow/browser-plugin-webview_v4.8.4", + "date": "Thu, 02 Jul 2026 10:07:52 GMT", + "comments": {} + }, + { + "version": "4.8.3", + "tag": "@snowplow/browser-plugin-webview_v4.8.3", + "date": "Tue, 30 Jun 2026 14:22:03 GMT", + "comments": { + "none": [ + { + "comment": "Update uuid to v11 and remove closure-compiler from the build pipeline" + } + ] + } + }, + { + "version": "4.8.2", + "tag": "@snowplow/browser-plugin-webview_v4.8.2", + "date": "Wed, 17 Jun 2026 12:30:12 GMT", + "comments": {} + }, + { + "version": "4.8.1", + "tag": "@snowplow/browser-plugin-webview_v4.8.1", + "date": "Wed, 13 May 2026 09:26:05 GMT", + "comments": {} + }, + { + "version": "4.8.0", + "tag": "@snowplow/browser-plugin-webview_v4.8.0", + "date": "Tue, 28 Apr 2026 07:56:22 GMT", + "comments": {} + }, + { + "version": "4.7.0", + "tag": "@snowplow/browser-plugin-webview_v4.7.0", + "date": "Wed, 01 Apr 2026 12:59:29 GMT", + "comments": {} + }, + { + "version": "4.6.9", + "tag": "@snowplow/browser-plugin-webview_v4.6.9", + "date": "Mon, 16 Mar 2026 15:43:06 GMT", + "comments": {} + }, + { + "version": "4.6.8", + "tag": "@snowplow/browser-plugin-webview_v4.6.8", + "date": "Tue, 28 Oct 2025 09:46:42 GMT", + "comments": {} + }, + { + "version": "4.6.7", + "tag": "@snowplow/browser-plugin-webview_v4.6.7", + "date": "Tue, 07 Oct 2025 14:53:36 GMT", + "comments": {} + }, + { + "version": "4.6.6", + "tag": "@snowplow/browser-plugin-webview_v4.6.6", + "date": "Tue, 26 Aug 2025 08:42:28 GMT", + "comments": {} + }, + { + "version": "4.6.5", + "tag": "@snowplow/browser-plugin-webview_v4.6.5", + "date": "Wed, 25 Jun 2025 21:16:46 GMT", + "comments": {} + }, + { + "version": "4.6.4", + "tag": "@snowplow/browser-plugin-webview_v4.6.4", + "date": "Wed, 25 Jun 2025 12:08:50 GMT", + "comments": {} + }, + { + "version": "4.6.3", + "tag": "@snowplow/browser-plugin-webview_v4.6.3", + "date": "Thu, 29 May 2025 19:52:07 GMT", + "comments": {} + }, + { + "version": "4.6.2", + "tag": "@snowplow/browser-plugin-webview_v4.6.2", + "date": "Tue, 20 May 2025 07:39:05 GMT", + "comments": {} + }, + { + "version": "4.6.1", + "tag": "@snowplow/browser-plugin-webview_v4.6.1", + "date": "Tue, 06 May 2025 13:10:51 GMT", + "comments": {} + }, + { + "version": "4.6.0", + "tag": "@snowplow/browser-plugin-webview_v4.6.0", + "date": "Thu, 01 May 2025 09:58:59 GMT", + "comments": {} + }, { "version": "4.5.0", "tag": "@snowplow/browser-plugin-webview_v4.5.0", diff --git a/plugins/browser-plugin-webview/CHANGELOG.md b/plugins/browser-plugin-webview/CHANGELOG.md index 874a3d32a..12343cc28 100644 --- a/plugins/browser-plugin-webview/CHANGELOG.md +++ b/plugins/browser-plugin-webview/CHANGELOG.md @@ -1,6 +1,100 @@ # Change Log - @snowplow/browser-plugin-webview -This log was last generated on Fri, 04 Apr 2025 09:21:23 GMT and should not be manually modified. +This log was last generated on Mon, 27 Jul 2026 13:52:14 GMT and should not be manually modified. + +## 4.10.0 +Mon, 27 Jul 2026 13:52:14 GMT + +### Updates + +- Add test coverage for disableSessionContextWithinWebView option suppressing client_session entity in hybrid native+WebView deployments + +## 4.9.0 +Tue, 21 Jul 2026 14:53:08 GMT + +_Version update only_ + +## 4.8.4 +Thu, 02 Jul 2026 10:07:52 GMT + +_Version update only_ + +## 4.8.3 +Tue, 30 Jun 2026 14:22:03 GMT + +### Updates + +- Update uuid to v11 and remove closure-compiler from the build pipeline + +## 4.8.2 +Wed, 17 Jun 2026 12:30:12 GMT + +_Version update only_ + +## 4.8.1 +Wed, 13 May 2026 09:26:05 GMT + +_Version update only_ + +## 4.8.0 +Tue, 28 Apr 2026 07:56:22 GMT + +_Version update only_ + +## 4.7.0 +Wed, 01 Apr 2026 12:59:29 GMT + +_Version update only_ + +## 4.6.9 +Mon, 16 Mar 2026 15:43:06 GMT + +_Version update only_ + +## 4.6.8 +Tue, 28 Oct 2025 09:46:42 GMT + +_Version update only_ + +## 4.6.7 +Tue, 07 Oct 2025 14:53:36 GMT + +_Version update only_ + +## 4.6.6 +Tue, 26 Aug 2025 08:42:28 GMT + +_Version update only_ + +## 4.6.5 +Wed, 25 Jun 2025 21:16:46 GMT + +_Version update only_ + +## 4.6.4 +Wed, 25 Jun 2025 12:08:50 GMT + +_Version update only_ + +## 4.6.3 +Thu, 29 May 2025 19:52:07 GMT + +_Version update only_ + +## 4.6.2 +Tue, 20 May 2025 07:39:05 GMT + +_Version update only_ + +## 4.6.1 +Tue, 06 May 2025 13:10:51 GMT + +_Version update only_ + +## 4.6.0 +Thu, 01 May 2025 09:58:59 GMT + +_Version update only_ ## 4.5.0 Fri, 04 Apr 2025 09:21:23 GMT diff --git a/plugins/browser-plugin-webview/package.json b/plugins/browser-plugin-webview/package.json index 3c3611b3c..144399f90 100644 --- a/plugins/browser-plugin-webview/package.json +++ b/plugins/browser-plugin-webview/package.json @@ -1,6 +1,6 @@ { "name": "@snowplow/browser-plugin-webview", - "version": "4.5.0", + "version": "4.10.0", "description": "Automatically forwards events to Snowplow mobile trackers running in a WebView.", "homepage": "https://github.com/snowplow/snowplow-javascript-tracker", "bugs": "https://github.com/snowplow/snowplow-javascript-tracker/issues", @@ -28,7 +28,6 @@ "@snowplow/webview-tracker": "^0.3.1" }, "devDependencies": { - "@ampproject/rollup-plugin-closure-compiler": "~0.27.0", "@rollup/plugin-commonjs": "~21.0.2", "@rollup/plugin-node-resolve": "~13.1.3", "@types/jest": "~28.1.1", @@ -49,6 +48,6 @@ "typescript": "~4.6.2" }, "peerDependencies": { - "@snowplow/browser-tracker": "~4.5.0" + "@snowplow/browser-tracker": "~4.10.0" } } diff --git a/plugins/browser-plugin-webview/rollup.config.js b/plugins/browser-plugin-webview/rollup.config.js index 1787590e2..7bf700326 100644 --- a/plugins/browser-plugin-webview/rollup.config.js +++ b/plugins/browser-plugin-webview/rollup.config.js @@ -2,7 +2,6 @@ import { nodeResolve } from '@rollup/plugin-node-resolve'; import commonjs from '@rollup/plugin-commonjs'; import ts from 'rollup-plugin-ts'; // Preferred over @rollup/plugin-typescript as it bundles .d.ts files import { banner } from '../../banner'; -import compiler from '@ampproject/rollup-plugin-closure-compiler'; import { terser } from 'rollup-plugin-terser'; import cleanup from 'rollup-plugin-cleanup'; import pkg from './package.json'; @@ -21,7 +20,7 @@ export default [ }, { input: './src/index.ts', - plugins: [...umdPlugins, compiler(), terser(), cleanup({ comments: 'none' }), banner()], + plugins: [...umdPlugins, terser(), cleanup({ comments: 'none' }), banner()], treeshake: { moduleSideEffects: ['sha1'] }, output: [{ file: pkg.main.replace('.js', '.min.js'), format: 'umd', sourcemap: true, name: umdName }], }, diff --git a/plugins/browser-plugin-webview/test/webview.test.ts b/plugins/browser-plugin-webview/test/webview.test.ts index 21ec35114..9b33e93f8 100644 --- a/plugins/browser-plugin-webview/test/webview.test.ts +++ b/plugins/browser-plugin-webview/test/webview.test.ts @@ -181,6 +181,33 @@ describe('WebView plugin', () => { }); }); + it('Does not forward client_session entity when disableSessionContextWithinWebView is true', async () => { + mockHasMobileInterface.mockImplementation(() => true); + (window as any).ReactNativeWebView = { postMessage: () => {} }; + + eventStore = newInMemoryEventStore({}); + const customFetch = async () => new Response(null, { status: 500 }); + tracker = addTracker(`sp${idx++}`, `sp${idx++}`, 'js-4.0.0', '', new SharedState(), { + plugins: [WebViewPlugin()], + eventStore, + customFetch, + contexts: { session: true }, + stateStorageStrategy: 'cookieAndLocalStorage', + encodeBase64: false, + disableSessionContextWithinWebView: true, + }); + + tracker?.trackPageView(); + + let calls = mockTrackWebViewEvent.mock.calls; + expect(calls).toHaveLength(1); + const forwardedContext: Array<{ schema: string }> = calls[0][0].context; + const hasClientSession = forwardedContext.some((entity) => entity.schema.includes('client_session')); + expect(hasClientSession).toBe(false); + + delete (window as any).ReactNativeWebView; + }); + it('Passes a configured list of tracker namespaces', async () => { mockHasMobileInterface.mockImplementation(() => { return true; diff --git a/plugins/browser-plugin-youtube-tracking/CHANGELOG.json b/plugins/browser-plugin-youtube-tracking/CHANGELOG.json index 276a9f413..b83582d6d 100644 --- a/plugins/browser-plugin-youtube-tracking/CHANGELOG.json +++ b/plugins/browser-plugin-youtube-tracking/CHANGELOG.json @@ -1,6 +1,120 @@ { "name": "@snowplow/browser-plugin-youtube-tracking", "entries": [ + { + "version": "4.10.0", + "tag": "@snowplow/browser-plugin-youtube-tracking_v4.10.0", + "date": "Mon, 27 Jul 2026 13:52:14 GMT", + "comments": {} + }, + { + "version": "4.9.0", + "tag": "@snowplow/browser-plugin-youtube-tracking_v4.9.0", + "date": "Tue, 21 Jul 2026 14:53:08 GMT", + "comments": {} + }, + { + "version": "4.8.4", + "tag": "@snowplow/browser-plugin-youtube-tracking_v4.8.4", + "date": "Thu, 02 Jul 2026 10:07:52 GMT", + "comments": {} + }, + { + "version": "4.8.3", + "tag": "@snowplow/browser-plugin-youtube-tracking_v4.8.3", + "date": "Tue, 30 Jun 2026 14:22:03 GMT", + "comments": { + "none": [ + { + "comment": "Update uuid to v11 and remove closure-compiler from the build pipeline" + } + ] + } + }, + { + "version": "4.8.2", + "tag": "@snowplow/browser-plugin-youtube-tracking_v4.8.2", + "date": "Wed, 17 Jun 2026 12:30:12 GMT", + "comments": {} + }, + { + "version": "4.8.1", + "tag": "@snowplow/browser-plugin-youtube-tracking_v4.8.1", + "date": "Wed, 13 May 2026 09:26:05 GMT", + "comments": {} + }, + { + "version": "4.8.0", + "tag": "@snowplow/browser-plugin-youtube-tracking_v4.8.0", + "date": "Tue, 28 Apr 2026 07:56:22 GMT", + "comments": {} + }, + { + "version": "4.7.0", + "tag": "@snowplow/browser-plugin-youtube-tracking_v4.7.0", + "date": "Wed, 01 Apr 2026 12:59:29 GMT", + "comments": {} + }, + { + "version": "4.6.9", + "tag": "@snowplow/browser-plugin-youtube-tracking_v4.6.9", + "date": "Mon, 16 Mar 2026 15:43:06 GMT", + "comments": {} + }, + { + "version": "4.6.8", + "tag": "@snowplow/browser-plugin-youtube-tracking_v4.6.8", + "date": "Tue, 28 Oct 2025 09:46:42 GMT", + "comments": {} + }, + { + "version": "4.6.7", + "tag": "@snowplow/browser-plugin-youtube-tracking_v4.6.7", + "date": "Tue, 07 Oct 2025 14:53:36 GMT", + "comments": {} + }, + { + "version": "4.6.6", + "tag": "@snowplow/browser-plugin-youtube-tracking_v4.6.6", + "date": "Tue, 26 Aug 2025 08:42:28 GMT", + "comments": {} + }, + { + "version": "4.6.5", + "tag": "@snowplow/browser-plugin-youtube-tracking_v4.6.5", + "date": "Wed, 25 Jun 2025 21:16:46 GMT", + "comments": {} + }, + { + "version": "4.6.4", + "tag": "@snowplow/browser-plugin-youtube-tracking_v4.6.4", + "date": "Wed, 25 Jun 2025 12:08:50 GMT", + "comments": {} + }, + { + "version": "4.6.3", + "tag": "@snowplow/browser-plugin-youtube-tracking_v4.6.3", + "date": "Thu, 29 May 2025 19:52:07 GMT", + "comments": {} + }, + { + "version": "4.6.2", + "tag": "@snowplow/browser-plugin-youtube-tracking_v4.6.2", + "date": "Tue, 20 May 2025 07:39:05 GMT", + "comments": {} + }, + { + "version": "4.6.1", + "tag": "@snowplow/browser-plugin-youtube-tracking_v4.6.1", + "date": "Tue, 06 May 2025 13:10:51 GMT", + "comments": {} + }, + { + "version": "4.6.0", + "tag": "@snowplow/browser-plugin-youtube-tracking_v4.6.0", + "date": "Thu, 01 May 2025 09:58:59 GMT", + "comments": {} + }, { "version": "4.5.0", "tag": "@snowplow/browser-plugin-youtube-tracking_v4.5.0", diff --git a/plugins/browser-plugin-youtube-tracking/CHANGELOG.md b/plugins/browser-plugin-youtube-tracking/CHANGELOG.md index 4d6b4db6f..d0c70dd43 100644 --- a/plugins/browser-plugin-youtube-tracking/CHANGELOG.md +++ b/plugins/browser-plugin-youtube-tracking/CHANGELOG.md @@ -1,6 +1,98 @@ # Change Log - @snowplow/browser-plugin-youtube-tracking -This log was last generated on Fri, 04 Apr 2025 09:21:23 GMT and should not be manually modified. +This log was last generated on Mon, 27 Jul 2026 13:52:14 GMT and should not be manually modified. + +## 4.10.0 +Mon, 27 Jul 2026 13:52:14 GMT + +_Version update only_ + +## 4.9.0 +Tue, 21 Jul 2026 14:53:08 GMT + +_Version update only_ + +## 4.8.4 +Thu, 02 Jul 2026 10:07:52 GMT + +_Version update only_ + +## 4.8.3 +Tue, 30 Jun 2026 14:22:03 GMT + +### Updates + +- Update uuid to v11 and remove closure-compiler from the build pipeline + +## 4.8.2 +Wed, 17 Jun 2026 12:30:12 GMT + +_Version update only_ + +## 4.8.1 +Wed, 13 May 2026 09:26:05 GMT + +_Version update only_ + +## 4.8.0 +Tue, 28 Apr 2026 07:56:22 GMT + +_Version update only_ + +## 4.7.0 +Wed, 01 Apr 2026 12:59:29 GMT + +_Version update only_ + +## 4.6.9 +Mon, 16 Mar 2026 15:43:06 GMT + +_Version update only_ + +## 4.6.8 +Tue, 28 Oct 2025 09:46:42 GMT + +_Version update only_ + +## 4.6.7 +Tue, 07 Oct 2025 14:53:36 GMT + +_Version update only_ + +## 4.6.6 +Tue, 26 Aug 2025 08:42:28 GMT + +_Version update only_ + +## 4.6.5 +Wed, 25 Jun 2025 21:16:46 GMT + +_Version update only_ + +## 4.6.4 +Wed, 25 Jun 2025 12:08:50 GMT + +_Version update only_ + +## 4.6.3 +Thu, 29 May 2025 19:52:07 GMT + +_Version update only_ + +## 4.6.2 +Tue, 20 May 2025 07:39:05 GMT + +_Version update only_ + +## 4.6.1 +Tue, 06 May 2025 13:10:51 GMT + +_Version update only_ + +## 4.6.0 +Thu, 01 May 2025 09:58:59 GMT + +_Version update only_ ## 4.5.0 Fri, 04 Apr 2025 09:21:23 GMT diff --git a/plugins/browser-plugin-youtube-tracking/package.json b/plugins/browser-plugin-youtube-tracking/package.json index 0c31a3659..0a8cafb27 100644 --- a/plugins/browser-plugin-youtube-tracking/package.json +++ b/plugins/browser-plugin-youtube-tracking/package.json @@ -1,6 +1,6 @@ { "name": "@snowplow/browser-plugin-youtube-tracking", - "version": "4.5.0", + "version": "4.10.0", "description": "YouTube tracking for Snowplow", "homepage": "http://bit.ly/sp-js", "bugs": "https://github.com/snowplow/snowplow-javascript-tracker/issues", @@ -25,15 +25,13 @@ "@snowplow/tracker-core": "workspace:*", "@snowplow/browser-plugin-media": "workspace:*", "tslib": "^2.3.1", - "uuid": "^10.0.0" + "uuid": "^11.1.1" }, "devDependencies": { - "@ampproject/rollup-plugin-closure-compiler": "~0.27.0", "@rollup/plugin-commonjs": "~21.0.2", "@rollup/plugin-node-resolve": "~13.1.3", "@types/jest": "~28.1.1", "@types/jsdom": "~16.2.14", - "@types/uuid": "^10.0.0", "@types/youtube": "~0.0.46", "@typescript-eslint/eslint-plugin": "~5.15.0", "@typescript-eslint/parser": "~5.15.0", @@ -51,6 +49,6 @@ "typescript": "~4.6.2" }, "peerDependencies": { - "@snowplow/browser-tracker": "~4.5.0" + "@snowplow/browser-tracker": "~4.10.0" } } diff --git a/plugins/browser-plugin-youtube-tracking/rollup.config.js b/plugins/browser-plugin-youtube-tracking/rollup.config.js index e75485d15..bf6095639 100644 --- a/plugins/browser-plugin-youtube-tracking/rollup.config.js +++ b/plugins/browser-plugin-youtube-tracking/rollup.config.js @@ -32,7 +32,6 @@ import { nodeResolve } from '@rollup/plugin-node-resolve'; import commonjs from '@rollup/plugin-commonjs'; import ts from 'rollup-plugin-ts'; import { banner } from '../../banner'; -import compiler from '@ampproject/rollup-plugin-closure-compiler'; import { terser } from 'rollup-plugin-terser'; import cleanup from 'rollup-plugin-cleanup'; import pkg from './package.json'; @@ -51,7 +50,7 @@ export default [ }, { input: './src/index.ts', - plugins: [...umdPlugins, compiler(), terser(), cleanup({ comments: 'none' }), banner(true)], + plugins: [...umdPlugins, terser(), cleanup({ comments: 'none' }), banner(true)], treeshake: { moduleSideEffects: ['sha1'] }, output: [{ file: pkg.main.replace('.js', '.min.js'), format: 'umd', sourcemap: true, name: umdName }], }, diff --git a/rush.json b/rush.json index 625dc3dae..2bd623727 100644 --- a/rush.json +++ b/rush.json @@ -118,7 +118,7 @@ * Specify a SemVer range to ensure developers use a Node.js version that is appropriate * for your repo. */ - "nodeSupportedVersionRange": ">=18.0.0 <25.0.0", + "nodeSupportedVersionRange": ">=20.19.0 <25.0.0", /** * Odd-numbered major versions of Node.js are experimental. Even-numbered releases @@ -427,6 +427,12 @@ "reviewCategory": "plugins", "versionPolicyName": "tracker" }, + { + "packageName": "@snowplow/browser-plugin-element-tracking", + "projectFolder": "plugins/browser-plugin-element-tracking", + "reviewCategory": "plugins", + "versionPolicyName": "tracker" + }, { "packageName": "@snowplow/browser-plugin-form-tracking", "projectFolder": "plugins/browser-plugin-form-tracking", @@ -457,6 +463,12 @@ "reviewCategory": "plugins", "versionPolicyName": "tracker" }, + { + "packageName": "@snowplow/browser-plugin-bot-detection", + "projectFolder": "plugins/browser-plugin-bot-detection", + "reviewCategory": "plugins", + "versionPolicyName": "tracker" + }, { "packageName": "@snowplow/browser-plugin-site-tracking", "projectFolder": "plugins/browser-plugin-site-tracking", diff --git a/trackers/CLAUDE.md b/trackers/CLAUDE.md new file mode 100644 index 000000000..90ce98560 --- /dev/null +++ b/trackers/CLAUDE.md @@ -0,0 +1,474 @@ +# Platform Trackers - CLAUDE.md + +## Tracker Implementations Overview + +The `trackers/` directory contains platform-specific implementations that build upon the core libraries. Each tracker is optimized for its target environment while maintaining API consistency across platforms. + +## Tracker Types + +### 1. Browser Tracker (`browser-tracker`) +Modern browser tracking with full TypeScript support and tree-shaking: +```typescript +// ✅ Correct: Modern import syntax +import { newTracker, trackPageView } from '@snowplow/browser-tracker'; + +// ❌ Wrong: Legacy global access +window.snowplow('newTracker', ...); // Use imports +``` + +### 2. JavaScript Tracker (`javascript-tracker`) +Legacy SP.js compatible tracker for backward compatibility: +```typescript +// Legacy API maintained for compatibility +window.snowplow('newTracker', 'sp', 'collector.example.com'); +window.snowplow('trackPageView'); +``` + +### 3. Node Tracker (`node-tracker`) +Server-side tracking for Node.js applications: +```typescript +// ✅ Correct: Node-specific implementation +import { tracker } from '@snowplow/node-tracker'; +const t = tracker(emitters, 'namespace', 'appId'); + +// ❌ Wrong: Browser APIs in Node +window.snowplow(...); // Not available in Node +``` + +### 4. React Native Tracker (`react-native-tracker`) +Mobile app tracking with React Native specific features: +```typescript +// ✅ Correct: React Native patterns +import { createTracker } from '@snowplow/react-native-tracker'; +const t = createTracker('namespace', { + endpoint: 'collector.example.com', + method: 'post' +}); +``` + +## Browser Tracker Patterns + +### Initialization Pattern +```typescript +// ✅ Correct: Typed configuration +import { newTracker, BrowserTracker } from '@snowplow/browser-tracker'; + +newTracker('sp1', 'collector.example.com', { + appId: 'my-app', + platform: 'web', + cookieDomain: '.example.com', + discoverRootDomain: true, + plugins: [/* plugins */] +}); + +// ❌ Wrong: Untyped config +newTracker('sp1', 'collector.example.com', { + someOption: 'value' // Type error +}); +``` + +### Plugin Integration +```typescript +// ✅ Correct: Plugin array in config +import { PerformanceTimingPlugin } from '@snowplow/browser-plugin-performance-timing'; +import { ErrorTrackingPlugin } from '@snowplow/browser-plugin-error-tracking'; + +newTracker('sp', 'collector.example.com', { + plugins: [ + PerformanceTimingPlugin(), + ErrorTrackingPlugin() + ] +}); + +// ❌ Wrong: Adding plugins after initialization +const t = newTracker('sp', 'collector.example.com'); +t.addPlugin(plugin); // Not supported +``` + +### Multi-Tracker Pattern +```typescript +// ✅ Correct: Named trackers with specific targeting +newTracker('marketing', 'marketing.collector.com'); +newTracker('product', 'product.collector.com'); + +trackPageView({}, ['marketing']); // Only marketing +trackPageView({}, ['product']); // Only product +trackPageView({}); // All trackers + +// ❌ Wrong: Assuming single tracker +trackPageView(); // Which tracker? +``` + +## JavaScript Tracker (Legacy) + +### Global Queue Pattern +```typescript +// ✅ Correct: Queue-based API +window.snowplow = window.snowplow || []; +window.snowplow.push(['newTracker', 'sp', 'collector.example.com']); +window.snowplow.push(['trackPageView']); + +// ❌ Wrong: Direct function calls before load +window.snowplow('trackPageView'); // May not be ready +``` + +### Async Loading Pattern +```typescript +// ✅ Correct: Async script loading +(function(p,l,o,w,i,n,g){if(!p[i]){p.GlobalSnowplowNamespace=p.GlobalSnowplowNamespace||[]; +p.GlobalSnowplowNamespace.push(i);p[i]=function(){(p[i].q=p[i].q||[]).push(arguments)}; +p[i].q=p[i].q||[];n=l.createElement(o);g=l.getElementsByTagName(o)[0];n.async=1; +n.src=w;g.parentNode.insertBefore(n,g)}}(window,document,'script','//cdn.jsdelivr.net/npm/@snowplow/javascript-tracker@latest/dist/sp.js','snowplow')); +``` + +### Bundle Size Optimization +```typescript +// sp.js - Full bundle with common plugins +// sp.lite.js - Minimal bundle, add plugins as needed + + +``` + +## Node Tracker Patterns + +### Emitter Configuration +```typescript +// ✅ Correct: Node-specific emitter +import { gotEmitter, tracker } from '@snowplow/node-tracker'; + +const emitter = gotEmitter({ + endpoint: 'collector.example.com', + protocol: 'https', + bufferSize: 5, + retries: 3 +}); + +const t = tracker(emitter, 'namespace', 'appId'); + +// ❌ Wrong: Browser emitter in Node +import { Emitter } from '@snowplow/browser-tracker-core'; +``` + +### Server-Side Events +```typescript +// ✅ Correct: Server context +t.track(buildPageView({ + pageUrl: req.url, + referrer: req.headers.referer, + userAgent: req.headers['user-agent'] +}), [{ + schema: 'iglu:com.example/server_context/jsonschema/1-0-0', + data: { + requestId: req.id, + serverTime: Date.now() + } +}]); + +// ❌ Wrong: Browser APIs +t.track(buildPageView({ + pageUrl: window.location.href // Not available +})); +``` + +## React Native Tracker Patterns + +### Platform-Specific Plugins +```typescript +// ✅ Correct: Mobile-specific plugins +import { + InstallTracker, + ScreenViewTracker, + AppLifecycleTracker +} from '@snowplow/react-native-tracker'; + +const tracker = createTracker('namespace', config, { + plugins: [ + InstallTracker(), + ScreenViewTracker(), + AppLifecycleTracker() + ] +}); + +// ❌ Wrong: Browser plugins in React Native +import { LinkClickTracking } from '@snowplow/browser-plugin-link-click-tracking'; +``` + +### Native Bridge Pattern +```typescript +// ✅ Correct: Platform detection +import { Platform } from 'react-native'; + +const config = { + endpoint: 'collector.example.com', + method: Platform.OS === 'ios' ? 'post' : 'get' +}; + +// ❌ Wrong: Assuming platform +const config = { method: 'post' }; // What about Android? +``` + +### Async Storage Integration +```typescript +// ✅ Correct: React Native storage +import AsyncStorage from '@react-native-async-storage/async-storage'; + +const tracker = createTracker('namespace', { + endpoint: 'collector.example.com', + sessionContext: true, + applicationContext: true, + platformContext: true +}); + +// ❌ Wrong: Browser storage +localStorage.setItem(...); // Not available +``` + +## Common Tracker Patterns + +### Event Context Pattern +```typescript +// ✅ Correct: Structured contexts +trackStructEvent({ + category: 'video', + action: 'play', + label: 'tutorial', + property: 'intro', + value: 1.5 +}, [{ + schema: 'iglu:com.example/video_context/jsonschema/1-0-0', + data: { videoId: '123', duration: 120 } +}]); + +// ❌ Wrong: Unstructured data +trackEvent('video', 'play', { videoId: '123' }); +``` + +### Batch Configuration +```typescript +// ✅ Correct: Platform-appropriate batching +// Browser - smaller batches, more frequent +{ bufferSize: 1, maxPostBytes: 40000 } + +// Node - larger batches, less frequent +{ bufferSize: 10, maxPostBytes: 100000 } + +// React Native - mobile-optimized +{ bufferSize: 5, maxPostBytes: 50000 } +``` + +## Testing Patterns + +### Test Organization by Tracker Type +``` +trackers/ +├── browser-tracker/test/ +│ ├── unit/ # Unit tests +│ └── integration/ # Integration tests +├── javascript-tracker/test/ +│ ├── integration/ # Snowplow Micro tests +│ └── functional/ # Browser automation tests +├── node-tracker/test/ +│ └── *.test.ts # Node-specific tests +└── react-native-tracker/test/ + └── *.test.ts # RN-specific tests +``` + +### Browser Tracker Tests +```typescript +// ✅ Correct: Complete browser environment mock +import { JSDOM } from 'jsdom'; + +const dom = new JSDOM('', { + url: 'http://localhost', + referrer: 'http://example.com', + contentType: 'text/html' +}); + +global.window = dom.window; +global.document = window.document; +global.navigator = window.navigator; + +// ❌ Wrong: Partial mocks +global.window = { location: {} }; // Missing properties +``` + +### Integration Testing with Snowplow Micro +```typescript +// ✅ Correct: Test against local collector +describe('Snowplow Micro integration', () => { + const microUrl = 'http://localhost:9090'; + + beforeAll(async () => { + // Ensure Micro is running + await fetch(`${microUrl}/micro/all`); + }); + + it('sends events to collector', async () => { + newTracker('sp', `${microUrl}`, { bufferSize: 1 }); + trackPageView(); + + // Wait for event to be sent + await new Promise(r => setTimeout(r, 100)); + + // Verify in Micro + const response = await fetch(`${microUrl}/micro/all`); + const data = await response.json(); + expect(data.total).toBeGreaterThan(0); + }); +}); +``` + +### Functional/E2E Browser Tests +```typescript +// ✅ Correct: WebdriverIO test pattern +describe('Activity tracking', () => { + it('tracks time on page', async () => { + await browser.url('/test-page.html'); + + // Enable activity tracking + await browser.execute(() => { + window.snowplow('enableActivityTracking', { + minimumVisitLength: 10, + heartbeatDelay: 10 + }); + }); + + // Wait for activity + await browser.pause(11000); + + // Check for ping event + const events = await browser.execute(() => window.capturedEvents); + const pingEvent = events.find(e => e.e === 'pp'); + expect(pingEvent).toBeDefined(); + }); +}); +``` + +### Node Tracker Tests +```typescript +// ✅ Correct: Mock HTTP with nock +import nock from 'nock'; +import { tracker, gotEmitter } from '@snowplow/node-tracker'; + +describe('Node tracker', () => { + let scope: nock.Scope; + + beforeEach(() => { + scope = nock('https://collector.example.com') + .post('/com.snowplowanalytics.snowplow/tp2') + .reply(200); + }); + + afterEach(() => { + nock.cleanAll(); + }); + + it('sends batch of events', async () => { + const emitter = gotEmitter({ + endpoint: 'collector.example.com', + bufferSize: 2 + }); + const t = tracker(emitter, 'namespace', 'appId'); + + t.trackPageView({ pageUrl: 'http://example.com' }); + t.trackPageView({ pageUrl: 'http://example.com/page2' }); + + await t.flush(); + expect(scope.isDone()).toBe(true); + }); +}); +``` + +### React Native Tests +```typescript +// ✅ Correct: Mock RN dependencies +jest.mock('@react-native-async-storage/async-storage', () => ({ + getItem: jest.fn(), + setItem: jest.fn(), + removeItem: jest.fn() +})); + +jest.mock('react-native', () => ({ + Platform: { + OS: 'ios', + select: jest.fn(obj => obj.ios) + }, + Dimensions: { + get: () => ({ width: 375, height: 812 }) + } +})); + +describe('React Native tracker', () => { + it('uses mobile-specific configuration', () => { + const tracker = createTracker('namespace', { + endpoint: 'collector.example.com' + }); + + expect(tracker.getSubjectData()).toMatchObject({ + platform: 'mob' + }); + }); +}); +``` + +### Performance Testing +```typescript +// ✅ Correct: Measure bundle impact +it('keeps bundle size under limit', () => { + const stats = require('../dist/stats.json'); + const maxSize = 50 * 1024; // 50KB + + expect(stats.bundleSize).toBeLessThan(maxSize); +}); +``` + +## Performance Optimization + +### Tree Shaking (Browser Tracker) +```typescript +// ✅ Correct: Named imports for tree shaking +import { trackPageView, trackStructEvent } from '@snowplow/browser-tracker'; + +// ❌ Wrong: Importing everything +import * as snowplow from '@snowplow/browser-tracker'; +``` + +### Code Splitting (JavaScript Tracker) +```typescript +// ✅ Correct: Load plugins on demand +if (needsMediaTracking) { + import('@snowplow/browser-plugin-media-tracking').then(({ MediaTrackingPlugin }) => { + // Use plugin + }); +} +``` + +## Quick Reference + +### Tracker Initialization +```typescript +// Browser Tracker +import { newTracker } from '@snowplow/browser-tracker'; +newTracker('sp', 'collector.com', config); + +// JavaScript Tracker +window.snowplow('newTracker', 'sp', 'collector.com', config); + +// Node Tracker +import { tracker, gotEmitter } from '@snowplow/node-tracker'; +const t = tracker(gotEmitter(config), 'namespace', 'appId'); + +// React Native Tracker +import { createTracker } from '@snowplow/react-native-tracker'; +const t = createTracker('namespace', config); +``` + +## Contributing to CLAUDE.md + +When working with trackers: + +1. **Maintain platform separation** - Don't mix browser/node APIs +2. **Use appropriate storage** for each platform +3. **Test with platform-specific mocks** +4. **Optimize for platform constraints** (bundle size, network, battery) +5. **Document platform-specific behavior** clearly \ No newline at end of file diff --git a/trackers/browser-tracker/CHANGELOG.json b/trackers/browser-tracker/CHANGELOG.json index 97523ab9f..c9ce591d3 100644 --- a/trackers/browser-tracker/CHANGELOG.json +++ b/trackers/browser-tracker/CHANGELOG.json @@ -1,6 +1,132 @@ { "name": "@snowplow/browser-tracker", "entries": [ + { + "version": "4.10.0", + "tag": "@snowplow/browser-tracker_v4.10.0", + "date": "Mon, 27 Jul 2026 13:52:14 GMT", + "comments": {} + }, + { + "version": "4.9.0", + "tag": "@snowplow/browser-tracker_v4.9.0", + "date": "Tue, 21 Jul 2026 14:53:08 GMT", + "comments": { + "none": [ + { + "comment": "Add getDomainSessionId method" + } + ] + } + }, + { + "version": "4.8.4", + "tag": "@snowplow/browser-tracker_v4.8.4", + "date": "Thu, 02 Jul 2026 10:07:52 GMT", + "comments": {} + }, + { + "version": "4.8.3", + "tag": "@snowplow/browser-tracker_v4.8.3", + "date": "Tue, 30 Jun 2026 14:22:03 GMT", + "comments": { + "none": [ + { + "comment": "Update uuid to v11 and remove closure-compiler from the build pipeline" + } + ] + } + }, + { + "version": "4.8.2", + "tag": "@snowplow/browser-tracker_v4.8.2", + "date": "Wed, 17 Jun 2026 12:30:12 GMT", + "comments": {} + }, + { + "version": "4.8.1", + "tag": "@snowplow/browser-tracker_v4.8.1", + "date": "Wed, 13 May 2026 09:26:05 GMT", + "comments": {} + }, + { + "version": "4.8.0", + "tag": "@snowplow/browser-tracker_v4.8.0", + "date": "Tue, 28 Apr 2026 07:56:22 GMT", + "comments": { + "none": [ + { + "comment": "Add opt-in activity metrics tracking with activity_metrics entity" + } + ] + } + }, + { + "version": "4.7.0", + "tag": "@snowplow/browser-tracker_v4.7.0", + "date": "Wed, 01 Apr 2026 12:59:29 GMT", + "comments": {} + }, + { + "version": "4.6.9", + "tag": "@snowplow/browser-tracker_v4.6.9", + "date": "Mon, 16 Mar 2026 15:43:06 GMT", + "comments": {} + }, + { + "version": "4.6.8", + "tag": "@snowplow/browser-tracker_v4.6.8", + "date": "Tue, 28 Oct 2025 09:46:42 GMT", + "comments": {} + }, + { + "version": "4.6.7", + "tag": "@snowplow/browser-tracker_v4.6.7", + "date": "Tue, 07 Oct 2025 14:53:36 GMT", + "comments": {} + }, + { + "version": "4.6.6", + "tag": "@snowplow/browser-tracker_v4.6.6", + "date": "Tue, 26 Aug 2025 08:42:28 GMT", + "comments": {} + }, + { + "version": "4.6.5", + "tag": "@snowplow/browser-tracker_v4.6.5", + "date": "Wed, 25 Jun 2025 21:16:46 GMT", + "comments": {} + }, + { + "version": "4.6.4", + "tag": "@snowplow/browser-tracker_v4.6.4", + "date": "Wed, 25 Jun 2025 12:08:50 GMT", + "comments": {} + }, + { + "version": "4.6.3", + "tag": "@snowplow/browser-tracker_v4.6.3", + "date": "Thu, 29 May 2025 19:52:07 GMT", + "comments": {} + }, + { + "version": "4.6.2", + "tag": "@snowplow/browser-tracker_v4.6.2", + "date": "Tue, 20 May 2025 07:39:05 GMT", + "comments": {} + }, + { + "version": "4.6.1", + "tag": "@snowplow/browser-tracker_v4.6.1", + "date": "Tue, 06 May 2025 13:10:51 GMT", + "comments": {} + }, + { + "version": "4.6.0", + "tag": "@snowplow/browser-tracker_v4.6.0", + "date": "Thu, 01 May 2025 09:58:59 GMT", + "comments": {} + }, { "version": "4.5.0", "tag": "@snowplow/browser-tracker_v4.5.0", diff --git a/trackers/browser-tracker/CHANGELOG.md b/trackers/browser-tracker/CHANGELOG.md index 341223abc..56b6ecd60 100644 --- a/trackers/browser-tracker/CHANGELOG.md +++ b/trackers/browser-tracker/CHANGELOG.md @@ -1,6 +1,102 @@ # Change Log - @snowplow/browser-tracker -This log was last generated on Fri, 04 Apr 2025 09:21:23 GMT and should not be manually modified. +This log was last generated on Mon, 27 Jul 2026 13:52:14 GMT and should not be manually modified. + +## 4.10.0 +Mon, 27 Jul 2026 13:52:14 GMT + +_Version update only_ + +## 4.9.0 +Tue, 21 Jul 2026 14:53:08 GMT + +### Updates + +- Add getDomainSessionId method + +## 4.8.4 +Thu, 02 Jul 2026 10:07:52 GMT + +_Version update only_ + +## 4.8.3 +Tue, 30 Jun 2026 14:22:03 GMT + +### Updates + +- Update uuid to v11 and remove closure-compiler from the build pipeline + +## 4.8.2 +Wed, 17 Jun 2026 12:30:12 GMT + +_Version update only_ + +## 4.8.1 +Wed, 13 May 2026 09:26:05 GMT + +_Version update only_ + +## 4.8.0 +Tue, 28 Apr 2026 07:56:22 GMT + +### Updates + +- Add opt-in activity metrics tracking with activity_metrics entity + +## 4.7.0 +Wed, 01 Apr 2026 12:59:29 GMT + +_Version update only_ + +## 4.6.9 +Mon, 16 Mar 2026 15:43:06 GMT + +_Version update only_ + +## 4.6.8 +Tue, 28 Oct 2025 09:46:42 GMT + +_Version update only_ + +## 4.6.7 +Tue, 07 Oct 2025 14:53:36 GMT + +_Version update only_ + +## 4.6.6 +Tue, 26 Aug 2025 08:42:28 GMT + +_Version update only_ + +## 4.6.5 +Wed, 25 Jun 2025 21:16:46 GMT + +_Version update only_ + +## 4.6.4 +Wed, 25 Jun 2025 12:08:50 GMT + +_Version update only_ + +## 4.6.3 +Thu, 29 May 2025 19:52:07 GMT + +_Version update only_ + +## 4.6.2 +Tue, 20 May 2025 07:39:05 GMT + +_Version update only_ + +## 4.6.1 +Tue, 06 May 2025 13:10:51 GMT + +_Version update only_ + +## 4.6.0 +Thu, 01 May 2025 09:58:59 GMT + +_Version update only_ ## 4.5.0 Fri, 04 Apr 2025 09:21:23 GMT diff --git a/trackers/browser-tracker/package.json b/trackers/browser-tracker/package.json index 362526f4a..64f08ce15 100644 --- a/trackers/browser-tracker/package.json +++ b/trackers/browser-tracker/package.json @@ -1,6 +1,6 @@ { "name": "@snowplow/browser-tracker", - "version": "4.5.0", + "version": "4.10.0", "description": "Browser tracker for Snowplow", "keywords": [ "tracking", @@ -41,7 +41,6 @@ "tslib": "^2.3.1" }, "devDependencies": { - "@ampproject/rollup-plugin-closure-compiler": "~0.27.0", "@rollup/plugin-commonjs": "~21.0.2", "@rollup/plugin-node-resolve": "~13.1.3", "@types/jest": "~28.1.1", diff --git a/trackers/browser-tracker/rollup.config.js b/trackers/browser-tracker/rollup.config.js index 1825f4fe5..316285a1c 100644 --- a/trackers/browser-tracker/rollup.config.js +++ b/trackers/browser-tracker/rollup.config.js @@ -32,7 +32,7 @@ import { nodeResolve } from '@rollup/plugin-node-resolve'; import ts from 'rollup-plugin-ts'; // Prefered over @rollup/plugin-typescript as it bundles .d.ts files import commonjs from '@rollup/plugin-commonjs'; import { banner } from '../../banner'; -import compiler from '@ampproject/rollup-plugin-closure-compiler'; +import { terser } from 'rollup-plugin-terser'; import cleanup from 'rollup-plugin-cleanup'; import pkg from './package.json'; @@ -56,7 +56,7 @@ export default [ }, { input: './src/index.ts', - plugins: [...umdPlugins, compiler(), cleanup({ comments: 'none' }), banner()], + plugins: [...umdPlugins, terser(), cleanup({ comments: 'none' }), banner()], treeshake: { moduleSideEffects: ['jstimezonedetect'] }, output: [{ file: pkg.main.replace('.js', '.min.js'), format: 'umd', name: umdName, sourcemap: true }], }, diff --git a/trackers/browser-tracker/src/api.ts b/trackers/browser-tracker/src/api.ts index 4a69c3687..1916e48b9 100644 --- a/trackers/browser-tracker/src/api.ts +++ b/trackers/browser-tracker/src/api.ts @@ -30,10 +30,13 @@ import { dispatchToTrackers, + getTracker, + allTrackerNames, ActivityTrackingConfiguration, ActivityTrackingConfigurationCallback, ActivityCallback, ActivityCallbackData, + ActivityMetrics, BrowserPlugin, BrowserPluginConfiguration, BuiltInContexts, @@ -69,6 +72,7 @@ export { ActivityTrackingConfigurationCallback, ActivityCallback, ActivityCallbackData, + ActivityMetrics, BrowserPlugin, BrowserPluginConfiguration, BuiltInContexts, @@ -106,6 +110,20 @@ export function newSession(trackers?: Array) { }); } +/** + * Get the domain session ID (from the first-party cookie) for a tracker. + * + * @param trackerId - The tracker identifier which the domain session ID will be retrieved from. + * Defaults to the first initialised tracker. + * @returns The domain session ID, or undefined if no matching tracker is found + */ +export function getDomainSessionId(trackerId?: string): string | undefined { + const resolvedTrackerId = trackerId ?? allTrackerNames()[0]; + if (!resolvedTrackerId) return undefined; + const tracker = getTracker(resolvedTrackerId); + return tracker ? tracker.getDomainSessionId() : undefined; +} + /** * Override referrer * diff --git a/trackers/browser-tracker/test/api.test.ts b/trackers/browser-tracker/test/api.test.ts new file mode 100644 index 000000000..06aa2f6de --- /dev/null +++ b/trackers/browser-tracker/test/api.test.ts @@ -0,0 +1,68 @@ +/* + * Copyright (c) 2022 Snowplow Analytics Ltd, 2010 Anthon Pang + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +import { newTracker, getDomainSessionId } from '../src'; + +describe('Browser Tracker API: #getDomainSessionId', () => { + let cookieJar: string; + + beforeAll(() => { + cookieJar = ''; + jest.spyOn(document, 'cookie', 'set').mockImplementation((cookie) => { + cookieJar += cookie; + }); + jest.spyOn(document, 'cookie', 'get').mockImplementation(() => cookieJar); + }); + + afterEach(() => { + cookieJar = ''; + }); + + afterAll(() => { + jest.restoreAllMocks(); + }); + + it('exposes the domain session id of a named tracker', () => { + const tracker = newTracker('sp-api-1', '', { stateStorageStrategy: 'cookie' }); + const sessionId = tracker?.getDomainSessionId(); + + expect(sessionId).toMatch(/^[0-9a-f-]+$/); + expect(getDomainSessionId('sp-api-1')).toEqual(sessionId); + }); + + it('defaults to the first initialised tracker when no id is provided', () => { + // 'sp-api-1' is the only/first tracker registered in this module + expect(getDomainSessionId()).toEqual(getDomainSessionId('sp-api-1')); + }); + + it('returns undefined for an unknown tracker id', () => { + expect(getDomainSessionId('missing-tracker')).toBeUndefined(); + }); +}); diff --git a/trackers/javascript-tracker/CHANGELOG.json b/trackers/javascript-tracker/CHANGELOG.json index bc2f14da3..6db4313a9 100644 --- a/trackers/javascript-tracker/CHANGELOG.json +++ b/trackers/javascript-tracker/CHANGELOG.json @@ -1,6 +1,138 @@ { "name": "@snowplow/javascript-tracker", "entries": [ + { + "version": "4.10.0", + "tag": "@snowplow/javascript-tracker_v4.10.0", + "date": "Mon, 27 Jul 2026 13:52:14 GMT", + "comments": { + "minor": [ + { + "comment": "Add WebView plugin as opt-in build-time feature flag (webView, default false)" + } + ] + } + }, + { + "version": "4.9.0", + "tag": "@snowplow/javascript-tracker_v4.9.0", + "date": "Tue, 21 Jul 2026 14:53:08 GMT", + "comments": {} + }, + { + "version": "4.8.4", + "tag": "@snowplow/javascript-tracker_v4.8.4", + "date": "Thu, 02 Jul 2026 10:07:52 GMT", + "comments": {} + }, + { + "version": "4.8.3", + "tag": "@snowplow/javascript-tracker_v4.8.3", + "date": "Tue, 30 Jun 2026 14:22:03 GMT", + "comments": { + "none": [ + { + "comment": "Update uuid to v11 and remove closure-compiler from the build pipeline" + } + ] + } + }, + { + "version": "4.8.2", + "tag": "@snowplow/javascript-tracker_v4.8.2", + "date": "Wed, 17 Jun 2026 12:30:12 GMT", + "comments": {} + }, + { + "version": "4.8.1", + "tag": "@snowplow/javascript-tracker_v4.8.1", + "date": "Wed, 13 May 2026 09:26:05 GMT", + "comments": {} + }, + { + "version": "4.8.0", + "tag": "@snowplow/javascript-tracker_v4.8.0", + "date": "Tue, 28 Apr 2026 07:56:22 GMT", + "comments": {} + }, + { + "version": "4.7.0", + "tag": "@snowplow/javascript-tracker_v4.7.0", + "date": "Wed, 01 Apr 2026 12:59:29 GMT", + "comments": {} + }, + { + "version": "4.6.9", + "tag": "@snowplow/javascript-tracker_v4.6.9", + "date": "Mon, 16 Mar 2026 15:43:06 GMT", + "comments": {} + }, + { + "version": "4.6.8", + "tag": "@snowplow/javascript-tracker_v4.6.8", + "date": "Tue, 28 Oct 2025 09:46:42 GMT", + "comments": {} + }, + { + "version": "4.6.7", + "tag": "@snowplow/javascript-tracker_v4.6.7", + "date": "Tue, 07 Oct 2025 14:53:36 GMT", + "comments": {} + }, + { + "version": "4.6.6", + "tag": "@snowplow/javascript-tracker_v4.6.6", + "date": "Tue, 26 Aug 2025 08:42:28 GMT", + "comments": {} + }, + { + "version": "4.6.5", + "tag": "@snowplow/javascript-tracker_v4.6.5", + "date": "Wed, 25 Jun 2025 21:16:46 GMT", + "comments": {} + }, + { + "version": "4.6.4", + "tag": "@snowplow/javascript-tracker_v4.6.4", + "date": "Wed, 25 Jun 2025 12:08:50 GMT", + "comments": {} + }, + { + "version": "4.6.3", + "tag": "@snowplow/javascript-tracker_v4.6.3", + "date": "Thu, 29 May 2025 19:52:07 GMT", + "comments": { + "none": [ + { + "comment": "Resume sessions when disabling anonymous tracking that was already tracking session state" + } + ] + } + }, + { + "version": "4.6.2", + "tag": "@snowplow/javascript-tracker_v4.6.2", + "date": "Tue, 20 May 2025 07:39:05 GMT", + "comments": {} + }, + { + "version": "4.6.1", + "tag": "@snowplow/javascript-tracker_v4.6.1", + "date": "Tue, 06 May 2025 13:10:51 GMT", + "comments": {} + }, + { + "version": "4.6.0", + "tag": "@snowplow/javascript-tracker_v4.6.0", + "date": "Thu, 01 May 2025 09:58:59 GMT", + "comments": { + "none": [ + { + "comment": "Add support for element tracking plugin" + } + ] + } + }, { "version": "4.5.0", "tag": "@snowplow/javascript-tracker_v4.5.0", diff --git a/trackers/javascript-tracker/CHANGELOG.md b/trackers/javascript-tracker/CHANGELOG.md index df1e1246a..b17f6e2d3 100644 --- a/trackers/javascript-tracker/CHANGELOG.md +++ b/trackers/javascript-tracker/CHANGELOG.md @@ -1,6 +1,104 @@ # Change Log - @snowplow/javascript-tracker -This log was last generated on Fri, 04 Apr 2025 09:21:23 GMT and should not be manually modified. +This log was last generated on Mon, 27 Jul 2026 13:52:14 GMT and should not be manually modified. + +## 4.10.0 +Mon, 27 Jul 2026 13:52:14 GMT + +### Minor changes + +- Add WebView plugin as opt-in build-time feature flag (webView, default false) + +## 4.9.0 +Tue, 21 Jul 2026 14:53:08 GMT + +_Version update only_ + +## 4.8.4 +Thu, 02 Jul 2026 10:07:52 GMT + +_Version update only_ + +## 4.8.3 +Tue, 30 Jun 2026 14:22:03 GMT + +### Updates + +- Update uuid to v11 and remove closure-compiler from the build pipeline + +## 4.8.2 +Wed, 17 Jun 2026 12:30:12 GMT + +_Version update only_ + +## 4.8.1 +Wed, 13 May 2026 09:26:05 GMT + +_Version update only_ + +## 4.8.0 +Tue, 28 Apr 2026 07:56:22 GMT + +_Version update only_ + +## 4.7.0 +Wed, 01 Apr 2026 12:59:29 GMT + +_Version update only_ + +## 4.6.9 +Mon, 16 Mar 2026 15:43:06 GMT + +_Version update only_ + +## 4.6.8 +Tue, 28 Oct 2025 09:46:42 GMT + +_Version update only_ + +## 4.6.7 +Tue, 07 Oct 2025 14:53:36 GMT + +_Version update only_ + +## 4.6.6 +Tue, 26 Aug 2025 08:42:28 GMT + +_Version update only_ + +## 4.6.5 +Wed, 25 Jun 2025 21:16:46 GMT + +_Version update only_ + +## 4.6.4 +Wed, 25 Jun 2025 12:08:50 GMT + +_Version update only_ + +## 4.6.3 +Thu, 29 May 2025 19:52:07 GMT + +### Updates + +- Resume sessions when disabling anonymous tracking that was already tracking session state + +## 4.6.2 +Tue, 20 May 2025 07:39:05 GMT + +_Version update only_ + +## 4.6.1 +Tue, 06 May 2025 13:10:51 GMT + +_Version update only_ + +## 4.6.0 +Thu, 01 May 2025 09:58:59 GMT + +### Updates + +- Add support for element tracking plugin ## 4.5.0 Fri, 04 Apr 2025 09:21:23 GMT diff --git a/trackers/javascript-tracker/package.json b/trackers/javascript-tracker/package.json index 9bcbc32a5..6a7532599 100644 --- a/trackers/javascript-tracker/package.json +++ b/trackers/javascript-tracker/package.json @@ -1,6 +1,6 @@ { "name": "@snowplow/javascript-tracker", - "version": "4.5.0", + "version": "4.10.0", "description": "Web analytics for Snowplow", "keywords": [ "tracking", @@ -41,6 +41,7 @@ "dependencies": { "@snowplow/browser-plugin-ad-tracking": "workspace:*", "@snowplow/browser-plugin-client-hints": "workspace:*", + "@snowplow/browser-plugin-element-tracking": "workspace:*", "@snowplow/browser-plugin-enhanced-ecommerce": "workspace:*", "@snowplow/browser-plugin-error-tracking": "workspace:*", "@snowplow/browser-plugin-form-tracking": "workspace:*", @@ -65,10 +66,10 @@ "@snowplow/browser-plugin-enhanced-consent": "workspace:*", "@snowplow/browser-plugin-privacy-sandbox": "workspace:*", "@snowplow/browser-plugin-button-click-tracking": "workspace:*", - "@snowplow/browser-plugin-event-specifications": "workspace:*" + "@snowplow/browser-plugin-event-specifications": "workspace:*", + "@snowplow/browser-plugin-webview": "workspace:*" }, "devDependencies": { - "@ampproject/rollup-plugin-closure-compiler": "~0.27.0", "@rollup/plugin-alias": "~3.1.9", "@rollup/plugin-commonjs": "~21.0.2", "@rollup/plugin-json": "~4.1.0", diff --git a/trackers/javascript-tracker/rollup.config.js b/trackers/javascript-tracker/rollup.config.js index 6b7c7ddf2..65ee9df18 100644 --- a/trackers/javascript-tracker/rollup.config.js +++ b/trackers/javascript-tracker/rollup.config.js @@ -34,7 +34,6 @@ import commonjs from '@rollup/plugin-commonjs'; import json from '@rollup/plugin-json'; import { banner } from '../../banner'; import { whitelabelBuild } from './build-config/index'; -import compiler from '@ampproject/rollup-plugin-closure-compiler'; import { terser } from 'rollup-plugin-terser'; import cleanup from 'rollup-plugin-cleanup'; import sizes from 'rollup-plugin-sizes'; @@ -48,7 +47,6 @@ export default (cmdlineArgs) => { nodeResolve({ browser: true }), commonjs(), ts(), - compiler(), terser(), cleanup({ comments: 'none' }), banner(), diff --git a/trackers/javascript-tracker/src/features.ts b/trackers/javascript-tracker/src/features.ts index a667a772e..182b7ad74 100644 --- a/trackers/javascript-tracker/src/features.ts +++ b/trackers/javascript-tracker/src/features.ts @@ -24,6 +24,8 @@ import * as ButtonClickTracking from '@snowplow/browser-plugin-button-click-trac import * as EventSpecifications from '@snowplow/browser-plugin-event-specifications'; import * as PerformanceNavigationTiming from '@snowplow/browser-plugin-performance-navigation-timing'; import * as WebVitals from '@snowplow/browser-plugin-web-vitals'; +import * as ElementTracking from '@snowplow/browser-plugin-element-tracking'; +import * as WebViewTracking from '@snowplow/browser-plugin-webview'; /** * Calculates the required plugins to intialise per tracker @@ -153,5 +155,15 @@ export function Plugins(configuration: JavaScriptTrackerConfiguration) { activatedPlugins.push([WebVitalsPlugin(typeof webVitals === 'object' ? webVitals : undefined), apiMethods]); } + if (plugins.elementTracking) { + const { SnowplowElementTrackingPlugin, ...apiMethods } = ElementTracking; + activatedPlugins.push([SnowplowElementTrackingPlugin(), apiMethods]); + } + + if (plugins.webView) { + const { WebViewPlugin, ...apiMethods } = WebViewTracking; + activatedPlugins.push([WebViewPlugin(), apiMethods]); + } + return activatedPlugins; } diff --git a/trackers/javascript-tracker/test/integration/sessionStorage.test.ts b/trackers/javascript-tracker/test/integration/sessionStorage.test.ts index 04d3046aa..db538de02 100644 --- a/trackers/javascript-tracker/test/integration/sessionStorage.test.ts +++ b/trackers/javascript-tracker/test/integration/sessionStorage.test.ts @@ -181,7 +181,20 @@ describe('Sessions', () => { log ) ) - ).toBe(3); + ).toBe(4); + expect( + F.size( + F.uniqBy( + F.get('event.domain_sessionid'), + F.filter( + (e) => + F.get('event.name_tracker', e) === 'anonymousSessionTracker' && + F.get('event.app_id', e) === 'session-integration-' + testIdentifier, + log + ) + ) + ) + ).toBe(2); }); it('should only increment domain_sessionidx outside of session timeout (cookie storage)', () => { diff --git a/trackers/javascript-tracker/test/pages/form-tracking.html b/trackers/javascript-tracker/test/pages/form-tracking.html index 728b8ceb0..1404f5e4c 100644 --- a/trackers/javascript-tracker/test/pages/form-tracking.html +++ b/trackers/javascript-tracker/test/pages/form-tracking.html @@ -144,14 +144,15 @@ switch (parseQuery().filter) { case 'exclude': - snowplow('enableFormTracking', { options: { fields: { denylist: ['fname'] } } }); + snowplow('enableFormTracking', { options: { useCapture: true, fields: { denylist: ['fname'] } } }); break; case 'include': - snowplow('enableFormTracking', { options: { fields: { allowlist: ['lname'] } } }); + snowplow('enableFormTracking', { options: { useCapture: false, fields: { allowlist: ['lname'] } } }); break; case 'filter': snowplow('enableFormTracking', { options: { + useCapture: undefined, forms: { allowlist: ['formy-mcformface'] }, fields: { filter: formFilter }, }, @@ -160,22 +161,23 @@ case 'transform': snowplow('enableFormTracking', { options: { + useCapture: true, fields: { transform: redactPII }, }, }); break; case 'excludedForm': - snowplow('enableFormTracking', { options: { forms: { denylist: ['excluded-form'] } } }); + snowplow('enableFormTracking', { options: { useCapture: false, forms: { denylist: ['excluded-form'] } } }); break; case 'onlyFocus': - snowplow('enableFormTracking', { options: { events: ['focus_form'] } }); + snowplow('enableFormTracking', { options: { useCapture: undefined, events: ['focus_form'] } }); break; case 'iframeForm': var forms = iframe.contentWindow.document.getElementsByTagName('form'); - snowplow('enableFormTracking', { options: { forms: forms } }); + snowplow('enableFormTracking', { options: { useCapture: true, forms: forms } }); break; case 'shadow': - snowplow('enableFormTracking', { options: { forms: { allowlist: ['shadow-form'] } } }); + snowplow('enableFormTracking', { options: { useCapture: false, forms: { allowlist: ['shadow-form'] } } }); break; default: snowplow('enableFormTracking', { diff --git a/trackers/javascript-tracker/test/pages/session-integration.html b/trackers/javascript-tracker/test/pages/session-integration.html index c63d738ea..f517ca369 100644 --- a/trackers/javascript-tracker/test/pages/session-integration.html +++ b/trackers/javascript-tracker/test/pages/session-integration.html @@ -52,7 +52,7 @@ window.snowplow('newTracker', 'anonymousSessionTracker', collector_endpoint, { appId: 'session-integration-' + testIdentifier, - cookieName: testIdentifier, + cookieName: testIdentifier + 'anon', sessionCookieTimeout: 1, stateStorageStrategy: 'localStorage', anonymousTracking: { withSessionTracking: true }, @@ -60,13 +60,17 @@ const currentUrl = window.location.href; const url = new URL(currentUrl); - if (url.searchParams.has("delayed")) { + if (url.searchParams.has('delayed')) { setTimeout(function () { window.snowplow('trackPageView:cookieSessionTracker'); window.snowplow('trackPageView:localStorageSessionTracker'); window.snowplow('trackPageView:anonymousSessionTracker'); + window.snowplow('disableAnonymousTracking:anonymousSessionTracker', { + stateStorageStrategy: 'cookieAndLocalStorage', + }); + window.snowplow('trackPageView:anonymousSessionTracker'); }, 0); } else { setTimeout(function () { @@ -81,7 +85,7 @@ }, 0); setTimeout(function () { - url.searchParams.set("delayed", "1"); + url.searchParams.set('delayed', '1'); window.location.href = url.toString(); }, 3000); } diff --git a/trackers/javascript-tracker/test/unit/plugin_features.test.ts b/trackers/javascript-tracker/test/unit/plugin_features.test.ts index ce75881b9..7db97287f 100644 --- a/trackers/javascript-tracker/test/unit/plugin_features.test.ts +++ b/trackers/javascript-tracker/test/unit/plugin_features.test.ts @@ -59,3 +59,39 @@ describe('Performance Navigation Timing', () => { expect(hasPerformanceNavigationTimingContext(plugins)).toBe(false); }); }); + +describe('WebView plugin', () => { + it('WebViewPlugin is not activated when webView flag is false', () => { + jest.isolateModules(() => { + const mockWebViewPlugin = jest.fn(() => ({})); + jest.mock('@snowplow/browser-plugin-webview', () => ({ + WebViewPlugin: mockWebViewPlugin, + })); + jest.mock('../../tracker.config', () => ({ webView: false })); + // Vimeo player crashes on fresh module load in jsdom; mock it to prevent that + jest.mock('@snowplow/browser-plugin-vimeo-tracking', () => ({ + VimeoTrackingPlugin: jest.fn(() => ({})), + })); + const { Plugins: PluginsFresh } = require('../../src/features'); + PluginsFresh({}); + expect(mockWebViewPlugin).not.toHaveBeenCalled(); + }); + }); + + it('WebViewPlugin is activated when webView flag is true', () => { + jest.isolateModules(() => { + const mockWebViewPlugin = jest.fn(() => ({})); + jest.mock('@snowplow/browser-plugin-webview', () => ({ + WebViewPlugin: mockWebViewPlugin, + })); + jest.mock('../../tracker.config', () => ({ webView: true })); + // Vimeo player crashes on fresh module load in jsdom; mock it to prevent that + jest.mock('@snowplow/browser-plugin-vimeo-tracking', () => ({ + VimeoTrackingPlugin: jest.fn(() => ({})), + })); + const { Plugins: PluginsFresh } = require('../../src/features'); + PluginsFresh({}); + expect(mockWebViewPlugin).toHaveBeenCalled(); + }); + }); +}); diff --git a/trackers/javascript-tracker/test/wdio.sauce.conf.ts b/trackers/javascript-tracker/test/wdio.sauce.conf.ts index c0de2fea3..c61153523 100644 --- a/trackers/javascript-tracker/test/wdio.sauce.conf.ts +++ b/trackers/javascript-tracker/test/wdio.sauce.conf.ts @@ -64,14 +64,6 @@ export const config: Partial = { build: buildName, }, }, - { - browserName: 'safari', - browserVersion: '12.1', - platformName: 'macOS 10.13', - 'sauce:options': { - build: buildName, - }, - }, ], services: [ [ diff --git a/trackers/javascript-tracker/tracker.config.ts b/trackers/javascript-tracker/tracker.config.ts index db9e10ab6..7d73397df 100644 --- a/trackers/javascript-tracker/tracker.config.ts +++ b/trackers/javascript-tracker/tracker.config.ts @@ -22,6 +22,8 @@ export const privacySandbox = false; export const eventSpecifications = false; export const geolocation = false; export const timezone = false; +export const elementTracking = false; +export const webView = false; /* Deprecated */ export const enhancedEcommerce = false; diff --git a/trackers/javascript-tracker/tracker.lite.config.ts b/trackers/javascript-tracker/tracker.lite.config.ts index 0bac546e3..5e212e838 100644 --- a/trackers/javascript-tracker/tracker.lite.config.ts +++ b/trackers/javascript-tracker/tracker.lite.config.ts @@ -21,3 +21,5 @@ export const privacySandbox = false; export const buttonClickTracking = false; export const eventSpecifications = false; export const webVitals = false; +export const elementTracking = false; +export const webView = false; diff --git a/trackers/javascript-tracker/tracker.test.config.ts b/trackers/javascript-tracker/tracker.test.config.ts index 0aed42800..a6c3d24d3 100644 --- a/trackers/javascript-tracker/tracker.test.config.ts +++ b/trackers/javascript-tracker/tracker.test.config.ts @@ -21,3 +21,5 @@ export const privacySandbox = false; export const buttonClickTracking = true; export const eventSpecifications = false; export const webVitals = false; +export const elementTracking = true; +export const webView = true; diff --git a/trackers/node-tracker/CHANGELOG.json b/trackers/node-tracker/CHANGELOG.json index ad21241b9..86065eca3 100644 --- a/trackers/node-tracker/CHANGELOG.json +++ b/trackers/node-tracker/CHANGELOG.json @@ -1,6 +1,114 @@ { "name": "@snowplow/node-tracker", "entries": [ + { + "version": "4.10.0", + "tag": "@snowplow/node-tracker_v4.10.0", + "date": "Mon, 27 Jul 2026 13:52:14 GMT", + "comments": {} + }, + { + "version": "4.9.0", + "tag": "@snowplow/node-tracker_v4.9.0", + "date": "Tue, 21 Jul 2026 14:53:08 GMT", + "comments": {} + }, + { + "version": "4.8.4", + "tag": "@snowplow/node-tracker_v4.8.4", + "date": "Thu, 02 Jul 2026 10:07:52 GMT", + "comments": {} + }, + { + "version": "4.8.3", + "tag": "@snowplow/node-tracker_v4.8.3", + "date": "Tue, 30 Jun 2026 14:22:03 GMT", + "comments": {} + }, + { + "version": "4.8.2", + "tag": "@snowplow/node-tracker_v4.8.2", + "date": "Wed, 17 Jun 2026 12:30:12 GMT", + "comments": {} + }, + { + "version": "4.8.1", + "tag": "@snowplow/node-tracker_v4.8.1", + "date": "Wed, 13 May 2026 09:26:05 GMT", + "comments": {} + }, + { + "version": "4.8.0", + "tag": "@snowplow/node-tracker_v4.8.0", + "date": "Tue, 28 Apr 2026 07:56:22 GMT", + "comments": {} + }, + { + "version": "4.7.0", + "tag": "@snowplow/node-tracker_v4.7.0", + "date": "Wed, 01 Apr 2026 12:59:29 GMT", + "comments": {} + }, + { + "version": "4.6.9", + "tag": "@snowplow/node-tracker_v4.6.9", + "date": "Mon, 16 Mar 2026 15:43:06 GMT", + "comments": {} + }, + { + "version": "4.6.8", + "tag": "@snowplow/node-tracker_v4.6.8", + "date": "Tue, 28 Oct 2025 09:46:42 GMT", + "comments": {} + }, + { + "version": "4.6.7", + "tag": "@snowplow/node-tracker_v4.6.7", + "date": "Tue, 07 Oct 2025 14:53:36 GMT", + "comments": {} + }, + { + "version": "4.6.6", + "tag": "@snowplow/node-tracker_v4.6.6", + "date": "Tue, 26 Aug 2025 08:42:28 GMT", + "comments": {} + }, + { + "version": "4.6.5", + "tag": "@snowplow/node-tracker_v4.6.5", + "date": "Wed, 25 Jun 2025 21:16:46 GMT", + "comments": {} + }, + { + "version": "4.6.4", + "tag": "@snowplow/node-tracker_v4.6.4", + "date": "Wed, 25 Jun 2025 12:08:50 GMT", + "comments": {} + }, + { + "version": "4.6.3", + "tag": "@snowplow/node-tracker_v4.6.3", + "date": "Thu, 29 May 2025 19:52:07 GMT", + "comments": {} + }, + { + "version": "4.6.2", + "tag": "@snowplow/node-tracker_v4.6.2", + "date": "Tue, 20 May 2025 07:39:05 GMT", + "comments": {} + }, + { + "version": "4.6.1", + "tag": "@snowplow/node-tracker_v4.6.1", + "date": "Tue, 06 May 2025 13:10:51 GMT", + "comments": {} + }, + { + "version": "4.6.0", + "tag": "@snowplow/node-tracker_v4.6.0", + "date": "Thu, 01 May 2025 09:58:59 GMT", + "comments": {} + }, { "version": "4.5.0", "tag": "@snowplow/node-tracker_v4.5.0", diff --git a/trackers/node-tracker/CHANGELOG.md b/trackers/node-tracker/CHANGELOG.md index 832aa25a3..c80b6ecaf 100644 --- a/trackers/node-tracker/CHANGELOG.md +++ b/trackers/node-tracker/CHANGELOG.md @@ -1,6 +1,96 @@ # Change Log - @snowplow/node-tracker -This log was last generated on Fri, 04 Apr 2025 09:21:23 GMT and should not be manually modified. +This log was last generated on Mon, 27 Jul 2026 13:52:14 GMT and should not be manually modified. + +## 4.10.0 +Mon, 27 Jul 2026 13:52:14 GMT + +_Version update only_ + +## 4.9.0 +Tue, 21 Jul 2026 14:53:08 GMT + +_Version update only_ + +## 4.8.4 +Thu, 02 Jul 2026 10:07:52 GMT + +_Version update only_ + +## 4.8.3 +Tue, 30 Jun 2026 14:22:03 GMT + +_Version update only_ + +## 4.8.2 +Wed, 17 Jun 2026 12:30:12 GMT + +_Version update only_ + +## 4.8.1 +Wed, 13 May 2026 09:26:05 GMT + +_Version update only_ + +## 4.8.0 +Tue, 28 Apr 2026 07:56:22 GMT + +_Version update only_ + +## 4.7.0 +Wed, 01 Apr 2026 12:59:29 GMT + +_Version update only_ + +## 4.6.9 +Mon, 16 Mar 2026 15:43:06 GMT + +_Version update only_ + +## 4.6.8 +Tue, 28 Oct 2025 09:46:42 GMT + +_Version update only_ + +## 4.6.7 +Tue, 07 Oct 2025 14:53:36 GMT + +_Version update only_ + +## 4.6.6 +Tue, 26 Aug 2025 08:42:28 GMT + +_Version update only_ + +## 4.6.5 +Wed, 25 Jun 2025 21:16:46 GMT + +_Version update only_ + +## 4.6.4 +Wed, 25 Jun 2025 12:08:50 GMT + +_Version update only_ + +## 4.6.3 +Thu, 29 May 2025 19:52:07 GMT + +_Version update only_ + +## 4.6.2 +Tue, 20 May 2025 07:39:05 GMT + +_Version update only_ + +## 4.6.1 +Tue, 06 May 2025 13:10:51 GMT + +_Version update only_ + +## 4.6.0 +Thu, 01 May 2025 09:58:59 GMT + +_Version update only_ ## 4.5.0 Fri, 04 Apr 2025 09:21:23 GMT diff --git a/trackers/node-tracker/package.json b/trackers/node-tracker/package.json index 5879b3379..cca2125d7 100644 --- a/trackers/node-tracker/package.json +++ b/trackers/node-tracker/package.json @@ -1,6 +1,6 @@ { "name": "@snowplow/node-tracker", - "version": "4.5.0", + "version": "4.10.0", "description": "Node tracker for Snowplow", "keywords": [ "snowplow", diff --git a/trackers/react-native-tracker/CHANGELOG.json b/trackers/react-native-tracker/CHANGELOG.json index 7ad4cae18..f6d789b94 100644 --- a/trackers/react-native-tracker/CHANGELOG.json +++ b/trackers/react-native-tracker/CHANGELOG.json @@ -1,6 +1,153 @@ { "name": "@snowplow/react-native-tracker", "entries": [ + { + "version": "4.10.0", + "tag": "@snowplow/react-native-tracker_v4.10.0", + "date": "Mon, 27 Jul 2026 13:52:14 GMT", + "comments": {} + }, + { + "version": "4.9.0", + "tag": "@snowplow/react-native-tracker_v4.9.0", + "date": "Tue, 21 Jul 2026 14:53:08 GMT", + "comments": {} + }, + { + "version": "4.8.4", + "tag": "@snowplow/react-native-tracker_v4.8.4", + "date": "Thu, 02 Jul 2026 10:07:52 GMT", + "comments": { + "none": [ + { + "comment": "Widen react-native-get-random-values peer dependency range to allow v2.0.0 for React Native 0.81+ compatibility" + } + ] + } + }, + { + "version": "4.8.3", + "tag": "@snowplow/react-native-tracker_v4.8.3", + "date": "Tue, 30 Jun 2026 14:22:03 GMT", + "comments": { + "none": [ + { + "comment": "Update uuid to v11 and remove closure-compiler from the build pipeline" + } + ] + } + }, + { + "version": "4.8.2", + "tag": "@snowplow/react-native-tracker_v4.8.2", + "date": "Wed, 17 Jun 2026 12:30:12 GMT", + "comments": { + "none": [ + { + "comment": "Emit .d.ts files with .js extensions for nodenext type resolution by upgrading react-native-builder-bob to 0.42.1" + } + ] + } + }, + { + "version": "4.8.1", + "tag": "@snowplow/react-native-tracker_v4.8.1", + "date": "Wed, 13 May 2026 09:26:05 GMT", + "comments": { + "patch": [ + { + "comment": "Widen @react-native-async-storage/async-storage peer dependency range to ^2.0.0 to support React Native 0.80" + } + ] + } + }, + { + "version": "4.8.0", + "tag": "@snowplow/react-native-tracker_v4.8.0", + "date": "Tue, 28 Apr 2026 07:56:22 GMT", + "comments": {} + }, + { + "version": "4.7.0", + "tag": "@snowplow/react-native-tracker_v4.7.0", + "date": "Wed, 01 Apr 2026 12:59:29 GMT", + "comments": {} + }, + { + "version": "4.6.9", + "tag": "@snowplow/react-native-tracker_v4.6.9", + "date": "Mon, 16 Mar 2026 15:43:06 GMT", + "comments": {} + }, + { + "version": "4.6.8", + "tag": "@snowplow/react-native-tracker_v4.6.8", + "date": "Tue, 28 Oct 2025 09:46:42 GMT", + "comments": {} + }, + { + "version": "4.6.7", + "tag": "@snowplow/react-native-tracker_v4.6.7", + "date": "Tue, 07 Oct 2025 14:53:36 GMT", + "comments": { + "none": [ + { + "comment": "Add TypeScript definitions to \"package.json\" for \"react-native-tracker\"" + } + ] + } + }, + { + "version": "4.6.6", + "tag": "@snowplow/react-native-tracker_v4.6.6", + "date": "Tue, 26 Aug 2025 08:42:28 GMT", + "comments": { + "none": [ + { + "comment": "Make mobile_context values more consistent with v2 tracker" + }, + { + "comment": "Extract WebViewMessageHandler type to fix API documentation" + } + ] + } + }, + { + "version": "4.6.5", + "tag": "@snowplow/react-native-tracker_v4.6.5", + "date": "Wed, 25 Jun 2025 21:16:46 GMT", + "comments": {} + }, + { + "version": "4.6.4", + "tag": "@snowplow/react-native-tracker_v4.6.4", + "date": "Wed, 25 Jun 2025 12:08:50 GMT", + "comments": {} + }, + { + "version": "4.6.3", + "tag": "@snowplow/react-native-tracker_v4.6.3", + "date": "Thu, 29 May 2025 19:52:07 GMT", + "comments": {} + }, + { + "version": "4.6.2", + "tag": "@snowplow/react-native-tracker_v4.6.2", + "date": "Tue, 20 May 2025 07:39:05 GMT", + "comments": {} + }, + { + "version": "4.6.1", + "tag": "@snowplow/react-native-tracker_v4.6.1", + "date": "Tue, 06 May 2025 13:10:51 GMT", + "comments": {} + }, + { + "version": "4.6.0", + "tag": "@snowplow/react-native-tracker_v4.6.0", + "date": "Thu, 01 May 2025 09:58:59 GMT", + "comments": {} + }, { "version": "4.5.0", "tag": "@snowplow/react-native-tracker_v4.5.0", diff --git a/trackers/react-native-tracker/CHANGELOG.md b/trackers/react-native-tracker/CHANGELOG.md index 34ae48e62..10c3805b5 100644 --- a/trackers/react-native-tracker/CHANGELOG.md +++ b/trackers/react-native-tracker/CHANGELOG.md @@ -1,6 +1,109 @@ # Change Log - @snowplow/react-native-tracker -This log was last generated on Fri, 04 Apr 2025 09:21:23 GMT and should not be manually modified. +This log was last generated on Mon, 27 Jul 2026 13:52:14 GMT and should not be manually modified. + +## 4.10.0 +Mon, 27 Jul 2026 13:52:14 GMT + +_Version update only_ + +## 4.9.0 +Tue, 21 Jul 2026 14:53:08 GMT + +_Version update only_ + +## 4.8.4 +Thu, 02 Jul 2026 10:07:52 GMT + +### Updates + +- Widen react-native-get-random-values peer dependency range to allow v2.0.0 for React Native 0.81+ compatibility + +## 4.8.3 +Tue, 30 Jun 2026 14:22:03 GMT + +### Updates + +- Update uuid to v11 and remove closure-compiler from the build pipeline + +## 4.8.2 +Wed, 17 Jun 2026 12:30:12 GMT + +### Updates + +- Emit .d.ts files with .js extensions for nodenext type resolution by upgrading react-native-builder-bob to 0.42.1 + +## 4.8.1 +Wed, 13 May 2026 09:26:05 GMT + +### Patches + +- Widen @react-native-async-storage/async-storage peer dependency range to ^2.0.0 to support React Native 0.80 + +## 4.8.0 +Tue, 28 Apr 2026 07:56:22 GMT + +_Version update only_ + +## 4.7.0 +Wed, 01 Apr 2026 12:59:29 GMT + +_Version update only_ + +## 4.6.9 +Mon, 16 Mar 2026 15:43:06 GMT + +_Version update only_ + +## 4.6.8 +Tue, 28 Oct 2025 09:46:42 GMT + +_Version update only_ + +## 4.6.7 +Tue, 07 Oct 2025 14:53:36 GMT + +### Updates + +- Add TypeScript definitions to "package.json" for "react-native-tracker" + +## 4.6.6 +Tue, 26 Aug 2025 08:42:28 GMT + +### Updates + +- Make mobile_context values more consistent with v2 tracker +- Extract WebViewMessageHandler type to fix API documentation + +## 4.6.5 +Wed, 25 Jun 2025 21:16:46 GMT + +_Version update only_ + +## 4.6.4 +Wed, 25 Jun 2025 12:08:50 GMT + +_Version update only_ + +## 4.6.3 +Thu, 29 May 2025 19:52:07 GMT + +_Version update only_ + +## 4.6.2 +Tue, 20 May 2025 07:39:05 GMT + +_Version update only_ + +## 4.6.1 +Tue, 06 May 2025 13:10:51 GMT + +_Version update only_ + +## 4.6.0 +Thu, 01 May 2025 09:58:59 GMT + +_Version update only_ ## 4.5.0 Fri, 04 Apr 2025 09:21:23 GMT diff --git a/trackers/react-native-tracker/package.json b/trackers/react-native-tracker/package.json index cae3e4225..659506092 100644 --- a/trackers/react-native-tracker/package.json +++ b/trackers/react-native-tracker/package.json @@ -1,6 +1,6 @@ { "name": "@snowplow/react-native-tracker", - "version": "4.5.0", + "version": "4.10.0", "description": "React Native tracker for Snowplow", "keywords": [ "snowplow", @@ -23,6 +23,7 @@ "source": "./src/index.tsx", "main": "./dist/commonjs/index.js", "module": "./dist/module/index.js", + "types": "./dist/typescript/module/src/index.d.ts", "exports": { ".": { "import": { @@ -43,20 +44,20 @@ "test": "jest" }, "peerDependencies": { - "@react-native-async-storage/async-storage": "~2.0.0", + "@react-native-async-storage/async-storage": "^2.0.0", "react": "*", "react-native": "*", - "react-native-get-random-values": "^1.11.0" + "react-native-get-random-values": "^1.11.0 || ^2.0.0" }, "dependencies": { "@snowplow/tracker-core": "workspace:*", "@snowplow/browser-tracker-core": "workspace:*", "@snowplow/browser-plugin-screen-tracking": "workspace:*", "tslib": "^2.3.1", - "uuid": "^10.0.0" + "uuid": "^11.1.1" }, "devDependencies": { - "@react-native-async-storage/async-storage": "~2.0.0", + "@react-native-async-storage/async-storage": "^2.0.0", "@snowplow/browser-plugin-snowplow-ecommerce": "workspace:*", "@typescript-eslint/eslint-plugin": "~5.15.0", "@typescript-eslint/parser": "~5.15.0", @@ -64,15 +65,14 @@ "typescript": "~4.6.2", "@types/jest": "~28.1.1", "@types/node": "~14.6.0", - "@types/uuid": "^10.0.0", "jest": "~28.1.3", "react": "18.2.0", "ts-jest": "~28.0.8", "@types/react": "^18.2.44", "react-native": "0.74.5", "node-fetch": "~3.3.2", - "react-native-builder-bob": "^0.30.3", - "react-native-get-random-values": "^1.11.0" + "react-native-builder-bob": "^0.42.1", + "react-native-get-random-values": "^1.11.0 || ^2.0.0" }, "resolutions": { "@types/react": "^18.2.44" @@ -97,8 +97,7 @@ [ "typescript", { - "project": "tsconfig.build.json", - "esm": true + "project": "tsconfig.build.json" } ] ] diff --git a/trackers/react-native-tracker/src/plugins.ts b/trackers/react-native-tracker/src/plugins.ts index 607ec3171..05741e32f 100644 --- a/trackers/react-native-tracker/src/plugins.ts +++ b/trackers/react-native-tracker/src/plugins.ts @@ -26,6 +26,7 @@ function toBrowserTracker(namespace: string, core: TrackerCore): BrowserTracker getUserId: () => undefined, getDomainUserId: () => '', getDomainUserInfo: (): ParsedIdCookie => ['', '', 0, 0, 0, undefined, '', '', '', undefined, 0], + getDomainSessionId: () => '', setReferrerUrl: () => notImplemented, setCustomUrl: () => notImplemented, setDocumentTitle: () => notImplemented, diff --git a/trackers/react-native-tracker/src/plugins/platform_context/index.ts b/trackers/react-native-tracker/src/plugins/platform_context/index.ts index bc2ae2982..1ae3145ba 100644 --- a/trackers/react-native-tracker/src/plugins/platform_context/index.ts +++ b/trackers/react-native-tracker/src/plugins/platform_context/index.ts @@ -1,7 +1,14 @@ import { CorePluginConfiguration } from '@snowplow/tracker-core'; import { PlatformContextConfiguration, PlatformContextProperty } from '../../types'; import { MOBILE_CONTEXT_SCHEMA } from '../../constants'; -import { Platform, PlatformIOSStatic, PlatformConstants, Dimensions, PixelRatio, NativeModules } from 'react-native'; +import { + Platform, + PlatformAndroidStatic, + PlatformIOSStatic, + Dimensions, + PixelRatio, + NativeModules, +} from 'react-native'; import { removeEmptyProperties } from '@snowplow/tracker-core'; export interface PlatformContextPlugin extends CorePluginConfiguration { @@ -10,7 +17,6 @@ export interface PlatformContextPlugin extends CorePluginConfiguration { refreshPlatformContext: () => Promise; } - function getIOSConstants() { // Example Platform info on iOS: // { @@ -38,24 +44,12 @@ function getIOSConstants() { // "AppleLocale": "en_GB" // } - const constants = Platform.constants as PlatformConstants & { - osVersion: string; - systemName: string; - isMacCatalyst?: boolean | undefined; - }; + const { isPad, isTV, isVision, isMacCatalyst, constants } = Platform as PlatformIOSStatic; return { osType: constants.systemName, - deviceManufacturer: 'Apple', + deviceManufacturer: 'Apple Inc.', osVersion: constants.osVersion, - deviceModel: (Platform as PlatformIOSStatic).isPad - ? 'iPad' - : Platform.isTV - ? 'Apple TV' - : (Platform as PlatformIOSStatic).isVision - ? 'Vision' - : (Platform as PlatformIOSStatic).isMacCatalyst - ? 'Mac' - : 'iPhone', + deviceModel: isPad ? 'iPad' : isTV ? 'Apple TV' : isVision ? 'Vision' : isMacCatalyst ? 'Mac' : 'iPhone', language: NativeModules.SettingsManager?.settings?.AppleLocale || NativeModules.SettingsManager?.settings?.AppleLanguages[0], //iOS 13 @@ -78,15 +72,11 @@ function getAndroidConstants() { // Example NativeModules.I18nManager info on Android: // { "localeIdentifier": "en_US" } - const constants = Platform.constants as PlatformConstants & { - Version: number; - Model: string; - Manufacturer: string; - }; + const constants = Platform.constants as PlatformAndroidStatic['constants']; return { - osType: 'Android', + osType: 'android', deviceManufacturer: constants.Manufacturer, - osVersion: String(constants.Version), + osVersion: constants.Release, deviceModel: constants.Model, language: NativeModules.I18nManager?.localeIdentifier, }; @@ -238,12 +228,13 @@ export async function newPlatformContextPlugin({ ? await platformContextRetriever?.getScale() : PixelRatio.get() : undefined; - language = + language = ( platformContextProperties?.includes(PlatformContextProperty.Language) ?? true ? platformContextRetriever?.getLanguage ? await platformContextRetriever?.getLanguage() : constants?.language - : undefined; + : undefined + )?.substring(0, 8); appSetId = platformContextProperties?.includes(PlatformContextProperty.AppSetId) ?? true ? platformContextRetriever?.getAppSetId diff --git a/trackers/react-native-tracker/src/types.ts b/trackers/react-native-tracker/src/types.ts index 34f74bf6a..e9681b7fa 100755 --- a/trackers/react-native-tracker/src/types.ts +++ b/trackers/react-native-tracker/src/types.ts @@ -61,6 +61,11 @@ export interface SessionConfiguration { sessionContext?: boolean; } +/** + * A callback to be used for the `onMessage` prop of a `WebView` component. + */ +export type WebViewMessageHandler = (message: { nativeEvent: { data: string } }) => void; + /** * Configuration for app lifecycle tracking */ diff --git a/trackers/react-native-tracker/src/web_view_interface.ts b/trackers/react-native-tracker/src/web_view_interface.ts index de6d9d1c5..d831a76f7 100644 --- a/trackers/react-native-tracker/src/web_view_interface.ts +++ b/trackers/react-native-tracker/src/web_view_interface.ts @@ -10,6 +10,7 @@ import type { TrackerCore, PayloadBuilder, Payload, + WebViewMessageHandler, } from './types'; /** @@ -110,13 +111,12 @@ function webViewPayloadBuilder(pb: PayloadBuilder): PayloadBuilder { * Enables tracking events from apps rendered in react-native-webview components. * The apps need to use the Snowplow WebView tracker to track the events. * - * To subscribe for the events, set the `onMessage` attribute: - * `` + * To subscribe for the events, use as the `onMessage` prop for a `WebView` component. * * @returns Callback to subscribe for events from Web views tracked using the Snowplow WebView tracker. */ -export function getWebViewCallback() { - return (message: { nativeEvent: { data: string } }): void => { +export function getWebViewCallback(): WebViewMessageHandler { + return (message) => { const data = JSON.parse(message.nativeEvent.data) as WebViewMessage; switch (data.command) { case 'trackSelfDescribingEvent': diff --git a/trackers/react-native-tracker/test/plugins/platform_context_android.test.ts b/trackers/react-native-tracker/test/plugins/platform_context_android.test.ts index e238a0769..c7597886e 100644 --- a/trackers/react-native-tracker/test/plugins/platform_context_android.test.ts +++ b/trackers/react-native-tracker/test/plugins/platform_context_android.test.ts @@ -48,11 +48,34 @@ describe('PlatformContextPlugin on Android', () => { const [payload] = payloads; expect(payload?.co).toBeDefined(); expect(payload?.co).toContain(MOBILE_CONTEXT_SCHEMA); - expect(payload?.co).toContain('"33"'); + expect(payload?.co).toContain('"13"'); expect(payload?.co).toContain('"sdk_gphone64_arm64"'); expect(payload?.co).toContain('"Google"'); expect(payload?.co).toContain('"Google"'); expect(payload?.co).toContain('"en-GB"'); expect(payload?.co).toContain('"123x89"'); }); + + it('truncates language to 8 characters', async () => { + const sessionPlugin = await newPlatformContextPlugin({ + platformContextRetriever: { + getLanguage: () => Promise.resolve('1234567890'), + }, + }); + + const payloads: Payload[] = []; + const tracker = trackerCore({ + corePlugins: [sessionPlugin.plugin], + callback: (pb) => payloads.push(pb.build()), + base64: false, + }); + tracker.track(buildPageView({ pageUrl: 'http://localhost' })); + + expect(payloads.length).toBe(1); + const [payload] = payloads; + expect(payload?.co).toBeDefined(); + const entities = JSON.parse(payload?.co as string).data; + const mobileContext = entities.find((entity: any) => entity.schema === MOBILE_CONTEXT_SCHEMA); + expect(mobileContext?.data.language).toBe('12345678'); + }); }); diff --git a/trackers/react-native-tracker/test/plugins/platform_context_ios.test.ts b/trackers/react-native-tracker/test/plugins/platform_context_ios.test.ts index e63cc3da9..3a239377e 100644 --- a/trackers/react-native-tracker/test/plugins/platform_context_ios.test.ts +++ b/trackers/react-native-tracker/test/plugins/platform_context_ios.test.ts @@ -167,4 +167,27 @@ describe('PlatformContextPlugin on iOS', () => { appSetIdScope: 'my-app-set-scope', }); }); + + it('truncates language to 8 characters', async () => { + const sessionPlugin = await newPlatformContextPlugin({ + platformContextRetriever: { + getLanguage: () => Promise.resolve('1234567890'), + }, + }); + + const payloads: Payload[] = []; + const tracker = trackerCore({ + corePlugins: [sessionPlugin.plugin], + callback: (pb) => payloads.push(pb.build()), + base64: false, + }); + tracker.track(buildPageView({ pageUrl: 'http://localhost' })); + + expect(payloads.length).toBe(1); + const [payload] = payloads; + expect(payload?.co).toBeDefined(); + const entities = JSON.parse(payload?.co as string).data; + const mobileContext = entities.find((entity: any) => entity.schema === MOBILE_CONTEXT_SCHEMA); + expect(mobileContext?.data.language).toBe('12345678'); + }); });